@astrale-os/kernel-core 0.4.3 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/methods/jwt/jwt.method.d.ts +1 -1
- package/dist/auth/methods/jwt/jwt.method.d.ts.map +1 -1
- package/dist/auth/methods/jwt/jwt.method.js +1 -1
- package/dist/auth/methods/jwt/jwt.method.js.map +1 -1
- package/dist/domain/addressing/layout/build.d.ts +2 -0
- package/dist/domain/addressing/layout/build.d.ts.map +1 -1
- package/dist/domain/addressing/layout/build.js +6 -0
- package/dist/domain/addressing/layout/build.js.map +1 -1
- package/dist/domain/addressing/layout/default.d.ts +18 -3
- package/dist/domain/addressing/layout/default.d.ts.map +1 -1
- package/dist/domain/addressing/layout/default.js +28 -3
- package/dist/domain/addressing/layout/default.js.map +1 -1
- package/dist/domain/addressing/namespace.d.ts +7 -1
- package/dist/domain/addressing/namespace.d.ts.map +1 -1
- package/dist/domain/addressing/namespace.js +13 -1
- package/dist/domain/addressing/namespace.js.map +1 -1
- package/dist/domain/addressing/paths/constants.d.ts +4 -0
- package/dist/domain/addressing/paths/constants.d.ts.map +1 -1
- package/dist/domain/addressing/paths/constants.js +4 -0
- package/dist/domain/addressing/paths/constants.js.map +1 -1
- package/dist/domain/addressing/paths/domain.js +5 -2
- package/dist/domain/addressing/paths/domain.js.map +1 -1
- package/dist/domain/addressing/paths/function.d.ts +63 -0
- package/dist/domain/addressing/paths/function.d.ts.map +1 -0
- package/dist/domain/addressing/paths/function.js +161 -0
- package/dist/domain/addressing/paths/function.js.map +1 -0
- package/dist/domain/addressing/paths/index.d.ts +4 -2
- package/dist/domain/addressing/paths/index.d.ts.map +1 -1
- package/dist/domain/addressing/paths/index.js +4 -2
- package/dist/domain/addressing/paths/index.js.map +1 -1
- package/dist/domain/addressing/paths/parse.d.ts.map +1 -1
- package/dist/domain/addressing/paths/parse.js +4 -0
- package/dist/domain/addressing/paths/parse.js.map +1 -1
- package/dist/domain/addressing/paths/view.d.ts +62 -0
- package/dist/domain/addressing/paths/view.d.ts.map +1 -0
- package/dist/domain/addressing/paths/view.js +160 -0
- package/dist/domain/addressing/paths/view.js.map +1 -0
- package/dist/domain/addressing/paths/zod.d.ts +5 -1
- package/dist/domain/addressing/paths/zod.d.ts.map +1 -1
- package/dist/domain/addressing/paths/zod.js +5 -1
- package/dist/domain/addressing/paths/zod.js.map +1 -1
- package/dist/domain/addressing/refs/build.d.ts +3 -1
- package/dist/domain/addressing/refs/build.d.ts.map +1 -1
- package/dist/domain/addressing/refs/build.js +37 -47
- package/dist/domain/addressing/refs/build.js.map +1 -1
- package/dist/domain/addressing/refs/iterate.d.ts +2 -1
- package/dist/domain/addressing/refs/iterate.d.ts.map +1 -1
- package/dist/domain/addressing/refs/iterate.js +17 -11
- package/dist/domain/addressing/refs/iterate.js.map +1 -1
- package/dist/domain/addressing/refs/semantic-path.d.ts +38 -0
- package/dist/domain/addressing/refs/semantic-path.d.ts.map +1 -0
- package/dist/domain/addressing/refs/semantic-path.js +51 -0
- package/dist/domain/addressing/refs/semantic-path.js.map +1 -0
- package/dist/domain/addressing/refs/types.d.ts +38 -0
- package/dist/domain/addressing/refs/types.d.ts.map +1 -1
- package/dist/domain/compile/compile.d.ts +3 -1
- package/dist/domain/compile/compile.d.ts.map +1 -1
- package/dist/domain/compile/compile.js +2 -2
- package/dist/domain/compile/compile.js.map +1 -1
- package/dist/domain/compile/function/types.d.ts +23 -0
- package/dist/domain/compile/function/types.d.ts.map +1 -0
- package/dist/domain/compile/function/types.js +2 -0
- package/dist/domain/compile/function/types.js.map +1 -0
- package/dist/domain/compile/view/serialized.d.ts +28 -0
- package/dist/domain/compile/view/serialized.d.ts.map +1 -0
- package/dist/domain/compile/view/serialized.js +12 -0
- package/dist/domain/compile/view/serialized.js.map +1 -0
- package/dist/domain/compile/view/types.d.ts +21 -0
- package/dist/domain/compile/view/types.d.ts.map +1 -0
- package/dist/domain/compile/view/types.js +2 -0
- package/dist/domain/compile/view/types.js.map +1 -0
- package/dist/domain/deserialize/deserialize.d.ts.map +1 -1
- package/dist/domain/deserialize/deserialize.js +91 -69
- package/dist/domain/deserialize/deserialize.js.map +1 -1
- package/dist/domain/identity/resolve-callables.d.ts +16 -10
- package/dist/domain/identity/resolve-callables.d.ts.map +1 -1
- package/dist/domain/identity/resolve-callables.js +34 -5
- package/dist/domain/identity/resolve-callables.js.map +1 -1
- package/dist/domain/index.d.ts +3 -0
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js.map +1 -1
- package/dist/domain/install-bundle.d.ts +1 -1
- package/dist/domain/install-bundle.d.ts.map +1 -1
- package/dist/domain/install-bundle.js +1 -1
- package/dist/domain/install-bundle.js.map +1 -1
- package/dist/domain/origin.d.ts +2 -0
- package/dist/domain/origin.d.ts.map +1 -1
- package/dist/domain/origin.js +6 -2
- package/dist/domain/origin.js.map +1 -1
- package/dist/domain/serialize/schema.d.ts +2 -0
- package/dist/domain/serialize/schema.d.ts.map +1 -1
- package/dist/domain/serialize/schema.js +128 -11
- package/dist/domain/serialize/schema.js.map +1 -1
- package/dist/domain/serialize/serialize.d.ts +7 -0
- package/dist/domain/serialize/serialize.d.ts.map +1 -1
- package/dist/domain/serialize/serialize.js.map +1 -1
- package/dist/graph/nav/path/kinds/registry.d.ts +20 -16
- package/dist/graph/nav/path/kinds/registry.d.ts.map +1 -1
- package/dist/graph/nav/path/kinds/registry.js +23 -19
- package/dist/graph/nav/path/kinds/registry.js.map +1 -1
- package/dist/graph/sync/reconcile/resolve.d.ts.map +1 -1
- package/dist/graph/sync/reconcile/resolve.js +1 -1
- package/dist/graph/sync/reconcile/resolve.js.map +1 -1
- package/dist/kernel.d.ts +78 -15
- package/dist/kernel.d.ts.map +1 -1
- package/dist/path-dsl.d.ts +4 -1
- package/dist/path-dsl.d.ts.map +1 -1
- package/dist/path-dsl.js +8 -1
- package/dist/path-dsl.js.map +1 -1
- package/dist/schema/classes/edges/calls.class.d.ts +6 -1
- package/dist/schema/classes/edges/calls.class.d.ts.map +1 -1
- package/dist/schema/classes/edges/constrained-by.class.d.ts +6 -1
- package/dist/schema/classes/edges/constrained-by.class.d.ts.map +1 -1
- package/dist/schema/classes/edges/excluded-from.class.d.ts +6 -1
- package/dist/schema/classes/edges/excluded-from.class.d.ts.map +1 -1
- package/dist/schema/classes/edges/extends-with.class.d.ts +6 -1
- package/dist/schema/classes/edges/extends-with.class.d.ts.map +1 -1
- package/dist/schema/classes/edges/extends.class.d.ts +6 -1
- package/dist/schema/classes/edges/extends.class.d.ts.map +1 -1
- package/dist/schema/classes/edges/from.class.d.ts +4 -1
- package/dist/schema/classes/edges/from.class.d.ts.map +1 -1
- package/dist/schema/classes/edges/has-parent.class.d.ts +11 -1
- package/dist/schema/classes/edges/has-parent.class.d.ts.map +1 -1
- package/dist/schema/classes/edges/has-perm.class.d.ts +12 -1
- package/dist/schema/classes/edges/has-perm.class.d.ts.map +1 -1
- package/dist/schema/classes/edges/implements.class.d.ts +5 -1
- package/dist/schema/classes/edges/implements.class.d.ts.map +1 -1
- package/dist/schema/classes/edges/installed-in.class.d.ts +3 -1
- package/dist/schema/classes/edges/installed-in.class.d.ts.map +1 -1
- package/dist/schema/classes/edges/instance-of.class.d.ts +4 -1
- package/dist/schema/classes/edges/instance-of.class.d.ts.map +1 -1
- package/dist/schema/classes/edges/method-of.class.d.ts +3 -1
- package/dist/schema/classes/edges/method-of.class.d.ts.map +1 -1
- package/dist/schema/classes/edges/of-domain.class.d.ts +3 -1
- package/dist/schema/classes/edges/of-domain.class.d.ts.map +1 -1
- package/dist/schema/classes/edges/to.class.d.ts +4 -1
- package/dist/schema/classes/edges/to.class.d.ts.map +1 -1
- package/dist/schema/classes/edges/view-for.class.d.ts +3 -1
- package/dist/schema/classes/edges/view-for.class.d.ts.map +1 -1
- package/dist/schema/definitions/edge-class.d.ts +13 -2
- package/dist/schema/definitions/edge-class.d.ts.map +1 -1
- package/dist/schema/definitions/edge-class.js +4 -1
- package/dist/schema/definitions/edge-class.js.map +1 -1
- package/dist/schema/interfaces/generics/Sluggable.interface.d.ts.map +1 -1
- package/dist/schema/interfaces/generics/Sluggable.interface.js +1 -1
- package/dist/schema/interfaces/generics/Sluggable.interface.js.map +1 -1
- package/dist/schema/schema.d.ts +79 -15
- package/dist/schema/schema.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { type JWK } from 'jose';
|
|
1
2
|
import type { CredentialEnvelope } from '#auth/credentials/envelope';
|
|
2
3
|
import type { DecodedCredentialClaims, VerifiedCredential } from '#auth/credentials/types';
|
|
3
4
|
import type { PublicKey } from '#auth/jwks';
|
|
4
5
|
import type { CredentialMethod, ResolveTrustedKeys } from '#auth/methods/registry';
|
|
5
|
-
import { type JWK } from 'jose';
|
|
6
6
|
export declare function deriveAllowedAlgorithms(jwk: JWK): string[];
|
|
7
7
|
export declare class JwtMethod implements CredentialMethod {
|
|
8
8
|
readonly kind = "jwt";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.method.d.ts","sourceRoot":"","sources":["../../../../auth/methods/jwt/jwt.method.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"jwt.method.d.ts","sourceRoot":"","sources":["../../../../auth/methods/jwt/jwt.method.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,GAAG,EAET,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AA8ClF,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE,CAa1D;AA6ID,qBAAa,SAAU,YAAW,gBAAgB;IAChD,QAAQ,CAAC,IAAI,SAAQ;IAEf,MAAM,CACV,QAAQ,EAAE,kBAAkB,EAC5B,kBAAkB,EAAE,kBAAkB,GACrC,OAAO,CAAC,kBAAkB,CAAC,CA4B7B;IAEK,aAAa,CACjB,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,kBAAkB,CAAC,CAG7B;IAED,MAAM,CAAC,QAAQ,EAAE,kBAAkB,GAAG,uBAAuB,CAO5D;CACF;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAWlE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { createRemoteJWKSet, decodeJwt, decodeProtectedHeader, importJWK, jwtVerify, } from 'jose';
|
|
1
2
|
import { toDecodedClaims } from '#auth/credentials/envelope';
|
|
2
3
|
import { canonicalizeIssuer } from '#auth/issuers';
|
|
3
4
|
import { AlgNotAllowedError, CredentialNotYetValidError, CredentialVerificationError, ExpiredCredentialError, IssuerUnreachableError, MalformedCredentialError, SignatureVerificationError, SigningKeyNotFoundError, } from '#auth/methods/errors';
|
|
4
|
-
import { createRemoteJWKSet, decodeJwt, decodeProtectedHeader, importJWK, jwtVerify, } from 'jose';
|
|
5
5
|
const JWT_BASE64URL_SEGMENT = /^[A-Za-z0-9_-]+$/;
|
|
6
6
|
const MAX_LIKELY_JWT_LENGTH = 16 * 1024;
|
|
7
7
|
const EC_CURVE_ALGORITHMS = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.method.js","sourceRoot":"","sources":["../../../../auth/methods/jwt/jwt.method.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"jwt.method.js","sourceRoot":"","sources":["../../../../auth/methods/jwt/jwt.method.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
* class.Author → /origin/class.Author/self
|
|
6
6
|
* class.Author.method.x → /origin/class.Author/x
|
|
7
7
|
* interface.Named → /origin/interface.Named/self
|
|
8
|
+
* function.postInstall → /origin/functions/postInstall
|
|
9
|
+
* view.dashboard → /origin/views/dashboard
|
|
8
10
|
* core.alice → /origin/core/alice
|
|
9
11
|
* core.posts.laptop → /origin/core/posts/laptop
|
|
10
12
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../domain/addressing/layout/build.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../domain/addressing/layout/build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAIrC;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAiB1D"}
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
* class.Author → /origin/class.Author/self
|
|
6
6
|
* class.Author.method.x → /origin/class.Author/x
|
|
7
7
|
* interface.Named → /origin/interface.Named/self
|
|
8
|
+
* function.postInstall → /origin/functions/postInstall
|
|
9
|
+
* view.dashboard → /origin/views/dashboard
|
|
8
10
|
* core.alice → /origin/core/alice
|
|
9
11
|
* core.posts.laptop → /origin/core/posts/laptop
|
|
10
12
|
*/
|
|
@@ -23,6 +25,10 @@ export function defaultLayout(origin) {
|
|
|
23
25
|
switch (ref.namespace) {
|
|
24
26
|
case 'interface':
|
|
25
27
|
return dp.interface(ref.member);
|
|
28
|
+
case 'function':
|
|
29
|
+
return dp.function(ref.member);
|
|
30
|
+
case 'view':
|
|
31
|
+
return dp.view(ref.member);
|
|
26
32
|
case 'core':
|
|
27
33
|
return dp.coreAnchor().append(...ref.member.split('.'));
|
|
28
34
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../domain/addressing/layout/build.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../domain/addressing/layout/build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,MAAoB;IAChD,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;IAClC,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,IAAI,GAAG,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,KAAM,CAAC,CAAA;QAC7D,QAAQ,GAAG,CAAC,SAAS,EAAE,CAAC;YACtB,KAAK,WAAW;gBACd,OAAO,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACjC,KAAK,UAAU;gBACb,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAChC,KAAK,MAAM;gBACT,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC5B,KAAK,MAAM;gBACT,OAAO,EAAE,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;YACzD;gBACE,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -9,17 +9,24 @@
|
|
|
9
9
|
* /<origin>/class.Author/deactivate — Function (method) node
|
|
10
10
|
* /<origin>/interface.Named — Folder node
|
|
11
11
|
* /<origin>/interface.Named/self — Interface self node
|
|
12
|
+
* /<origin>/functions — Standalone-function folder (kernel Folder)
|
|
13
|
+
* /<origin>/functions/seed — Function member node (a callable)
|
|
14
|
+
* /<origin>/views — View-member folder (kernel Folder)
|
|
15
|
+
* /<origin>/views/dashboard — View member node (an iframe UI)
|
|
12
16
|
* /<origin>/core — User core anchor (kernel Folder)
|
|
13
17
|
* /<origin>/core/alice — Core instance node
|
|
14
18
|
*
|
|
15
|
-
* Schema folder slugs use namespace prefix (class./interface.).
|
|
16
|
-
*
|
|
17
|
-
*
|
|
19
|
+
* Schema folder slugs use namespace prefix (class./interface.). Standalone
|
|
20
|
+
* functions and views live under reserved single-segment `functions` / `views`
|
|
21
|
+
* folders (slug children, no `/self`); the user core lives under a reserved
|
|
22
|
+
* `core` anchor. All give purely structural discrimination at deserialize time.
|
|
18
23
|
*/
|
|
19
24
|
import { CORE_ANCHOR_SLUG } from '@astrale-os/kernel-dsl';
|
|
20
25
|
import type { DomainOrigin } from '#domain/origin';
|
|
21
26
|
import { AbsolutePath } from '#graph/tree';
|
|
22
27
|
export { CORE_ANCHOR_SLUG };
|
|
28
|
+
export declare const FUNCTIONS_FOLDER_SLUG: 'functions';
|
|
29
|
+
export declare const VIEWS_FOLDER_SLUG: 'views';
|
|
23
30
|
export declare class DomainPaths {
|
|
24
31
|
readonly origin: DomainOrigin;
|
|
25
32
|
private readonly _root;
|
|
@@ -37,6 +44,14 @@ export declare class DomainPaths {
|
|
|
37
44
|
interface(name: string): AbsolutePath;
|
|
38
45
|
/** Function (method) node: `/<origin>/{namespace}.{TypeName}/{methodName}` */
|
|
39
46
|
method(folderRef: string, methodName: string): AbsolutePath;
|
|
47
|
+
/** Standalone-function folder: `/<origin>/functions` */
|
|
48
|
+
functionsFolder(): AbsolutePath;
|
|
49
|
+
/** Standalone-function member node: `/<origin>/functions/{name}` (no `/self`). */
|
|
50
|
+
function(name: string): AbsolutePath;
|
|
51
|
+
/** View-member folder: `/<origin>/views` */
|
|
52
|
+
viewsFolder(): AbsolutePath;
|
|
53
|
+
/** View member node: `/<origin>/views/{name}` (no `/self`). */
|
|
54
|
+
view(name: string): AbsolutePath;
|
|
40
55
|
/** User core anchor folder: `/<origin>/core` */
|
|
41
56
|
coreAnchor(): AbsolutePath;
|
|
42
57
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../domain/addressing/layout/default.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../domain/addressing/layout/default.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAGlD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI1C,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAE3B,eAAO,MAAM,qBAAqB,EAAG,WAAoB,CAAA;AAEzD,eAAO,MAAM,iBAAiB,EAAG,OAAgB,CAAA;AAEjD,qBAAa,WAAW;IACtB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IAEpC,YAAY,MAAM,EAAE,YAAY,EAI/B;IAED,6CAA6C;IAC7C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAErC;IAID,wCAAwC;IACxC,IAAI,IAAI,YAAY,CAEnB;IAID,4EAA4E;IAC5E,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAEhC;IAED,qDAAqD;IACrD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAEhC;IAED,6DAA6D;IAC7D,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAEpC;IAED,8EAA8E;IAC9E,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CAE1D;IAID,wDAAwD;IACxD,eAAe,IAAI,YAAY,CAE9B;IAED,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAEnC;IAID,4CAA4C;IAC5C,WAAW,IAAI,YAAY,CAE1B;IAED,+DAA+D;IAC/D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAE/B;IAID,gDAAgD;IAChD,UAAU,IAAI,YAAY,CAEzB;IAED;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAGlC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG3B;IAED,OAAO,CAAC,kBAAkB;IAW1B;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,CAI3D;IAED,0CAA0C;IAC1C,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAE7C;CACF"}
|
|
@@ -9,18 +9,25 @@
|
|
|
9
9
|
* /<origin>/class.Author/deactivate — Function (method) node
|
|
10
10
|
* /<origin>/interface.Named — Folder node
|
|
11
11
|
* /<origin>/interface.Named/self — Interface self node
|
|
12
|
+
* /<origin>/functions — Standalone-function folder (kernel Folder)
|
|
13
|
+
* /<origin>/functions/seed — Function member node (a callable)
|
|
14
|
+
* /<origin>/views — View-member folder (kernel Folder)
|
|
15
|
+
* /<origin>/views/dashboard — View member node (an iframe UI)
|
|
12
16
|
* /<origin>/core — User core anchor (kernel Folder)
|
|
13
17
|
* /<origin>/core/alice — Core instance node
|
|
14
18
|
*
|
|
15
|
-
* Schema folder slugs use namespace prefix (class./interface.).
|
|
16
|
-
*
|
|
17
|
-
*
|
|
19
|
+
* Schema folder slugs use namespace prefix (class./interface.). Standalone
|
|
20
|
+
* functions and views live under reserved single-segment `functions` / `views`
|
|
21
|
+
* folders (slug children, no `/self`); the user core lives under a reserved
|
|
22
|
+
* `core` anchor. All give purely structural discrimination at deserialize time.
|
|
18
23
|
*/
|
|
19
24
|
import { CORE_ANCHOR_SLUG } from '@astrale-os/kernel-dsl';
|
|
20
25
|
import { Ref } from '#domain/addressing/refs/ref';
|
|
21
26
|
import { AbsolutePath } from '#graph/tree';
|
|
22
27
|
import { LayoutError } from './errors';
|
|
23
28
|
export { CORE_ANCHOR_SLUG };
|
|
29
|
+
export const FUNCTIONS_FOLDER_SLUG = 'functions';
|
|
30
|
+
export const VIEWS_FOLDER_SLUG = 'views';
|
|
24
31
|
export class DomainPaths {
|
|
25
32
|
origin;
|
|
26
33
|
_root;
|
|
@@ -56,6 +63,24 @@ export class DomainPaths {
|
|
|
56
63
|
method(folderRef, methodName) {
|
|
57
64
|
return this._root.append(folderRef, methodName);
|
|
58
65
|
}
|
|
66
|
+
// ── Standalone-function members ──────────────────────────────
|
|
67
|
+
/** Standalone-function folder: `/<origin>/functions` */
|
|
68
|
+
functionsFolder() {
|
|
69
|
+
return this._root.append(FUNCTIONS_FOLDER_SLUG);
|
|
70
|
+
}
|
|
71
|
+
/** Standalone-function member node: `/<origin>/functions/{name}` (no `/self`). */
|
|
72
|
+
function(name) {
|
|
73
|
+
return this._root.append(FUNCTIONS_FOLDER_SLUG, name);
|
|
74
|
+
}
|
|
75
|
+
// ── View members ─────────────────────────────────────────────
|
|
76
|
+
/** View-member folder: `/<origin>/views` */
|
|
77
|
+
viewsFolder() {
|
|
78
|
+
return this._root.append(VIEWS_FOLDER_SLUG);
|
|
79
|
+
}
|
|
80
|
+
/** View member node: `/<origin>/views/{name}` (no `/self`). */
|
|
81
|
+
view(name) {
|
|
82
|
+
return this._root.append(VIEWS_FOLDER_SLUG, name);
|
|
83
|
+
}
|
|
59
84
|
// ── Core paths ───────────────────────────────────────────────
|
|
60
85
|
/** User core anchor folder: `/<origin>/core` */
|
|
61
86
|
coreAnchor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../../../domain/addressing/layout/default.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../../../domain/addressing/layout/default.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,19 @@
|
|
|
4
4
|
* A Namespace determines the node kind and the prefix in refs and edge slugs:
|
|
5
5
|
* - 'class' → Class node (Definition, has Kind)
|
|
6
6
|
* - 'interface' → Interface node (Definition, no Kind)
|
|
7
|
+
* - 'function' → Function node — a standalone callable attached to the domain
|
|
8
|
+
* via its own `of_domain` edge (not a Definition, no methods)
|
|
9
|
+
* - 'view' → View node — an iframe-mountable UI attached to the domain via
|
|
10
|
+
* its own `of_domain` edge (slug `view.<slug>`); a first-class
|
|
11
|
+
* member like 'function', but a View-class node (carries
|
|
12
|
+
* `UI.handshake` + `view_for` edges), not a Definition
|
|
7
13
|
* - 'core' → Folder node (not a Definition)
|
|
8
14
|
*
|
|
9
15
|
* A Definition is a member that carries type semantics (Class | Interface).
|
|
10
16
|
* A Kind is the sub-classification of a Class definition ('node' | 'edge').
|
|
11
17
|
*/
|
|
12
18
|
/** The classification of a domain member. Determines the node kind and the prefix in refs and edge slugs. */
|
|
13
|
-
export type Namespace = 'class' | 'interface' | 'core';
|
|
19
|
+
export type Namespace = 'class' | 'interface' | 'core' | 'function' | 'view';
|
|
14
20
|
/** All valid namespaces — the canonical ordered list. */
|
|
15
21
|
export declare const ALL_NAMESPACES: readonly Namespace[];
|
|
16
22
|
/** Runtime validation set for namespace strings. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../domain/addressing/namespace.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../domain/addressing/namespace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,6GAA6G;AAC7G,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAA;AAE5E,yDAAyD;AACzD,eAAO,MAAM,cAAc,EAAE,SAAS,SAAS,EAMrC,CAAA;AAEV,oDAAoD;AACpD,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,MAAM,CAAmC,CAAA;AAEjF,gDAAgD;AAChD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,SAAS,CAErD;AAID,sFAAsF;AACtF,eAAO,MAAM,qBAAqB,EAAE,SAAS,CAAC,OAAO,GAAG,WAAW,CAAC,EAG1D,CAAA;AAEV,oDAAoD;AACpD,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,WAAW,CAAA;AAEvD,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,SAAS,GAAG,EAAE,IAAI,mBAAmB,CAE9E;AAID,uFAAuF;AACvF,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA"}
|
|
@@ -4,13 +4,25 @@
|
|
|
4
4
|
* A Namespace determines the node kind and the prefix in refs and edge slugs:
|
|
5
5
|
* - 'class' → Class node (Definition, has Kind)
|
|
6
6
|
* - 'interface' → Interface node (Definition, no Kind)
|
|
7
|
+
* - 'function' → Function node — a standalone callable attached to the domain
|
|
8
|
+
* via its own `of_domain` edge (not a Definition, no methods)
|
|
9
|
+
* - 'view' → View node — an iframe-mountable UI attached to the domain via
|
|
10
|
+
* its own `of_domain` edge (slug `view.<slug>`); a first-class
|
|
11
|
+
* member like 'function', but a View-class node (carries
|
|
12
|
+
* `UI.handshake` + `view_for` edges), not a Definition
|
|
7
13
|
* - 'core' → Folder node (not a Definition)
|
|
8
14
|
*
|
|
9
15
|
* A Definition is a member that carries type semantics (Class | Interface).
|
|
10
16
|
* A Kind is the sub-classification of a Class definition ('node' | 'edge').
|
|
11
17
|
*/
|
|
12
18
|
/** All valid namespaces — the canonical ordered list. */
|
|
13
|
-
export const ALL_NAMESPACES = [
|
|
19
|
+
export const ALL_NAMESPACES = [
|
|
20
|
+
'class',
|
|
21
|
+
'interface',
|
|
22
|
+
'core',
|
|
23
|
+
'function',
|
|
24
|
+
'view',
|
|
25
|
+
];
|
|
14
26
|
/** Runtime validation set for namespace strings. */
|
|
15
27
|
export const NAMESPACE_SET = new Set(ALL_NAMESPACES);
|
|
16
28
|
/** Type guard: narrow a string to Namespace. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../domain/addressing/namespace.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../../domain/addressing/namespace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,yDAAyD;AACzD,MAAM,CAAC,MAAM,cAAc,GAAyB;IAClD,OAAO;IACP,WAAW;IACX,MAAM;IACN,UAAU;IACV,MAAM;CACE,CAAA;AAEV,oDAAoD;AACpD,MAAM,CAAC,MAAM,aAAa,GAAwB,IAAI,GAAG,CAAS,cAAc,CAAC,CAAA;AAEjF,gDAAgD;AAChD,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAC7B,CAAC;AAED,4EAA4E;AAE5E,sFAAsF;AACtF,MAAM,CAAC,MAAM,qBAAqB,GAAuC;IACvE,OAAO;IACP,WAAW;CACH,CAAA;AAKV,oFAAoF;AACpF,MAAM,UAAU,qBAAqB,CAAC,EAAa;IACjD,OAAO,EAAE,KAAK,OAAO,IAAI,EAAE,KAAK,WAAW,CAAA;AAC7C,CAAC"}
|
|
@@ -2,4 +2,8 @@
|
|
|
2
2
|
export declare const CLASS_PREFIX: 'class.';
|
|
3
3
|
/** Slug prefix that marks an interface member. */
|
|
4
4
|
export declare const INTERFACE_PREFIX: 'interface.';
|
|
5
|
+
/** Slug prefix that marks a function member. */
|
|
6
|
+
export declare const FUNCTION_PREFIX: 'function.';
|
|
7
|
+
/** Slug prefix that marks a view member. */
|
|
8
|
+
export declare const VIEW_PREFIX: 'view.';
|
|
5
9
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../domain/addressing/paths/constants.ts"],"names":[],"mappings":"AAMA,6CAA6C;AAC7C,eAAO,MAAM,YAAY,EAAG,QAAiB,CAAA;AAE7C,kDAAkD;AAClD,eAAO,MAAM,gBAAgB,EAAG,YAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../domain/addressing/paths/constants.ts"],"names":[],"mappings":"AAMA,6CAA6C;AAC7C,eAAO,MAAM,YAAY,EAAG,QAAiB,CAAA;AAE7C,kDAAkD;AAClD,eAAO,MAAM,gBAAgB,EAAG,YAAqB,CAAA;AAErD,gDAAgD;AAChD,eAAO,MAAM,eAAe,EAAG,WAAoB,CAAA;AAEnD,4CAA4C;AAC5C,eAAO,MAAM,WAAW,EAAG,OAAgB,CAAA"}
|
|
@@ -7,4 +7,8 @@
|
|
|
7
7
|
export const CLASS_PREFIX = 'class.';
|
|
8
8
|
/** Slug prefix that marks an interface member. */
|
|
9
9
|
export const INTERFACE_PREFIX = 'interface.';
|
|
10
|
+
/** Slug prefix that marks a function member. */
|
|
11
|
+
export const FUNCTION_PREFIX = 'function.';
|
|
12
|
+
/** Slug prefix that marks a view member. */
|
|
13
|
+
export const VIEW_PREFIX = 'view.';
|
|
10
14
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../domain/addressing/paths/constants.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,iEAAiE;AACjE,mEAAmE;AACnE,qEAAqE;AACrE,6CAA6C;AAE7C,6CAA6C;AAC7C,MAAM,CAAC,MAAM,YAAY,GAAG,QAAiB,CAAA;AAE7C,kDAAkD;AAClD,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../domain/addressing/paths/constants.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,iEAAiE;AACjE,mEAAmE;AACnE,qEAAqE;AACrE,6CAA6C;AAE7C,6CAA6C;AAC7C,MAAM,CAAC,MAAM,YAAY,GAAG,QAAiB,CAAA;AAE7C,kDAAkD;AAClD,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAqB,CAAA;AAErD,gDAAgD;AAChD,MAAM,CAAC,MAAM,eAAe,GAAG,WAAoB,CAAA;AAEnD,4CAA4C;AAC5C,MAAM,CAAC,MAAM,WAAW,GAAG,OAAgB,CAAA"}
|
|
@@ -5,7 +5,7 @@ import { METHOD_OF, OF_DOMAIN } from '../edges';
|
|
|
5
5
|
import { KERNEL_META_PATH_GRAMMARS } from '../grammar/set';
|
|
6
6
|
import { DOMAIN_SEP } from '../grammar/tokens';
|
|
7
7
|
import { installedInSegment } from '../segments/installed-in';
|
|
8
|
-
import { CLASS_PREFIX, INTERFACE_PREFIX } from './constants';
|
|
8
|
+
import { CLASS_PREFIX, FUNCTION_PREFIX, INTERFACE_PREFIX } from './constants';
|
|
9
9
|
const SEGMENTS = [absoluteSegment, installedInSegment];
|
|
10
10
|
/**
|
|
11
11
|
* Composed address: a tree mount path followed by `:<domain>` —
|
|
@@ -130,8 +130,11 @@ function matchesDomainShape(steps) {
|
|
|
130
130
|
if (s.edgeClass !== expectedEdge)
|
|
131
131
|
return false;
|
|
132
132
|
const v = s.predicate.value;
|
|
133
|
-
if (v.startsWith(CLASS_PREFIX) ||
|
|
133
|
+
if (v.startsWith(CLASS_PREFIX) ||
|
|
134
|
+
v.startsWith(INTERFACE_PREFIX) ||
|
|
135
|
+
v.startsWith(FUNCTION_PREFIX)) {
|
|
134
136
|
return false;
|
|
137
|
+
}
|
|
135
138
|
}
|
|
136
139
|
return true;
|
|
137
140
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../../../../domain/addressing/paths/domain.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAEzF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../../../../domain/addressing/paths/domain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { CompiledDomain } from '#domain/compile/types';
|
|
2
|
+
import type { PathType } from '#graph/nav/path';
|
|
3
|
+
import type { Step } from '#graph/nav/path/step';
|
|
4
|
+
import { Path } from '#graph/nav/path';
|
|
5
|
+
import { AbsolutePath } from '#graph/tree/path/absolute';
|
|
6
|
+
export interface FunctionFields {
|
|
7
|
+
readonly domain: string;
|
|
8
|
+
readonly functionName: string;
|
|
9
|
+
}
|
|
10
|
+
export interface FunctionFromOptions {
|
|
11
|
+
readonly mount?: AbsolutePath;
|
|
12
|
+
/** Alias for `mount`. */
|
|
13
|
+
readonly parent?: AbsolutePath;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Composed address for a standalone Function — a callable `Function` node
|
|
17
|
+
* attached to its domain by its own `of_domain` edge (slug `function.<name>`)
|
|
18
|
+
* rather than `method_of` a class. Same `[absolute, installed_in, of_domain]`
|
|
19
|
+
* shape as {@link ClassPath} / {@link InterfacePath}; the discriminator is the
|
|
20
|
+
* of_domain slug prefix (`function.` instead of `class.` / `interface.`).
|
|
21
|
+
*
|
|
22
|
+
* Resolves to the Function node directly (which carries the callable's
|
|
23
|
+
* `binding`), so `/:<domain>:function.<name>` dispatches the same node reached
|
|
24
|
+
* via its tree path — the resolver is node-centric and never branches on the
|
|
25
|
+
* path family.
|
|
26
|
+
*/
|
|
27
|
+
export declare class FunctionPath extends Path {
|
|
28
|
+
readonly mount: AbsolutePath;
|
|
29
|
+
readonly domain: string;
|
|
30
|
+
readonly functionName: string;
|
|
31
|
+
constructor(steps: readonly Step[], raw: string, mount: AbsolutePath, domain: string, functionName: string);
|
|
32
|
+
/** @internal Narrow a base Path into FunctionPath without re-parsing. */
|
|
33
|
+
static _fromPath(path: Path): FunctionPath;
|
|
34
|
+
static parse(raw: string): FunctionPath;
|
|
35
|
+
static tryParse(raw: string): FunctionPath | null;
|
|
36
|
+
/** Build a FunctionPath from typed fields. */
|
|
37
|
+
static from(fields: FunctionFields, options?: FunctionFromOptions): FunctionPath;
|
|
38
|
+
/** Qualified `of_domain` slug — `function.${functionName}`. */
|
|
39
|
+
get member(): string;
|
|
40
|
+
/** Alias of {@link mount}. */
|
|
41
|
+
get parent(): AbsolutePath;
|
|
42
|
+
get isMounted(): boolean;
|
|
43
|
+
get isRelative(): false;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Build a {@link PathType} for `FunctionPath` bound to `d`, claiming `d`'s
|
|
47
|
+
* `Function` meta-class. The Function class is addressable by TWO shapes — a
|
|
48
|
+
* `MethodPath` (a `method_of` a class) and this `FunctionPath` (a standalone
|
|
49
|
+
* function's own `of_domain` edge) — and the registry indexes both under the
|
|
50
|
+
* class (see PathTypeRegistry). Reverse projection (get-tree) tries each and
|
|
51
|
+
* keeps the one whose hops resolve, so a standalone Function recovers its
|
|
52
|
+
* `/:<origin>:function.<name>` form just as a method recovers its MethodPath.
|
|
53
|
+
*/
|
|
54
|
+
export declare function makeFunctionPathType(d: CompiledDomain): PathType<FunctionPath>;
|
|
55
|
+
/**
|
|
56
|
+
* Parse-type for {@link FunctionPath}. `class: null` here (the parse-only set in
|
|
57
|
+
* `paths/parse.ts`, used by `extractDomainSlug`, dispatches on segment/shape, not
|
|
58
|
+
* class); the global registry registers the class-bound {@link makeFunctionPathType}
|
|
59
|
+
* variant. Detection is shape-driven (the `function.` slug prefix), so the null
|
|
60
|
+
* class here never shadows MethodPath.
|
|
61
|
+
*/
|
|
62
|
+
export declare const functionPathParseType: PathType<FunctionPath>;
|
|
63
|
+
//# sourceMappingURL=function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../../../../domain/addressing/paths/function.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAGhD,OAAO,EAA2B,IAAI,EAAkB,MAAM,iBAAiB,CAAA;AAC/E,OAAO,EAAmB,YAAY,EAAkB,MAAM,2BAA2B,CAAA;AAQzF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAA;IAC7B,yBAAyB;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAA;CAC/B;AAID;;;;;;;;;;;GAWG;AACH,qBAAa,YAAa,SAAQ,IAAI;IACpC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAE7B,YACE,KAAK,EAAE,SAAS,IAAI,EAAE,EACtB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EAMrB;IAID,yEAAyE;IACzE,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,CAEzC;IAID,OAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAQ/C;IAED,OAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAMzD;IAED,8CAA8C;IAC9C,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,YAAY,CAa/E;IAED,+DAA+D;IAC/D,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,8BAA8B;IAC9B,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,UAAU,IAAI,KAAK,CAEtB;CACF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,cAAc,GAAG,QAAQ,CAAC,YAAY,CAAC,CAK9E;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,YAAY,CAMxD,CAAA"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { parseStepsWith } from '#graph/nav/grammar';
|
|
2
|
+
import { matchesChain, parsePath, Path, PathParseError } from '#graph/nav/path';
|
|
3
|
+
import { absoluteSegment, AbsolutePath, SEPARATOR_CHAR } from '#graph/tree/path/absolute';
|
|
4
|
+
import { KERNEL_META_PATH_GRAMMARS } from '../grammar/set';
|
|
5
|
+
import { DOMAIN_SEP } from '../grammar/tokens';
|
|
6
|
+
import { installedInSegment } from '../segments/installed-in';
|
|
7
|
+
import { ofDomainSegment } from '../segments/of-domain';
|
|
8
|
+
import { FUNCTION_PREFIX } from './constants';
|
|
9
|
+
const SEGMENTS = [absoluteSegment, installedInSegment, ofDomainSegment];
|
|
10
|
+
/**
|
|
11
|
+
* Composed address for a standalone Function — a callable `Function` node
|
|
12
|
+
* attached to its domain by its own `of_domain` edge (slug `function.<name>`)
|
|
13
|
+
* rather than `method_of` a class. Same `[absolute, installed_in, of_domain]`
|
|
14
|
+
* shape as {@link ClassPath} / {@link InterfacePath}; the discriminator is the
|
|
15
|
+
* of_domain slug prefix (`function.` instead of `class.` / `interface.`).
|
|
16
|
+
*
|
|
17
|
+
* Resolves to the Function node directly (which carries the callable's
|
|
18
|
+
* `binding`), so `/:<domain>:function.<name>` dispatches the same node reached
|
|
19
|
+
* via its tree path — the resolver is node-centric and never branches on the
|
|
20
|
+
* path family.
|
|
21
|
+
*/
|
|
22
|
+
export class FunctionPath extends Path {
|
|
23
|
+
mount;
|
|
24
|
+
domain;
|
|
25
|
+
functionName;
|
|
26
|
+
constructor(steps, raw, mount, domain, functionName) {
|
|
27
|
+
super(steps, raw);
|
|
28
|
+
this.mount = mount;
|
|
29
|
+
this.domain = domain;
|
|
30
|
+
this.functionName = functionName;
|
|
31
|
+
}
|
|
32
|
+
// ─── Internal hooks ──────────────────────────────────────
|
|
33
|
+
/** @internal Narrow a base Path into FunctionPath without re-parsing. */
|
|
34
|
+
static _fromPath(path) {
|
|
35
|
+
return buildFunctionPath(path.steps, path.raw);
|
|
36
|
+
}
|
|
37
|
+
// ─── Static factories ────────────────────────────────────
|
|
38
|
+
static parse(raw) {
|
|
39
|
+
const p = parsePath(raw);
|
|
40
|
+
if (!(p instanceof FunctionPath)) {
|
|
41
|
+
throw new PathParseError(raw, [
|
|
42
|
+
{ kind: 'not-function', message: 'Path is not a function path', position: 0 },
|
|
43
|
+
]);
|
|
44
|
+
}
|
|
45
|
+
return p;
|
|
46
|
+
}
|
|
47
|
+
static tryParse(raw) {
|
|
48
|
+
try {
|
|
49
|
+
return FunctionPath.parse(raw);
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/** Build a FunctionPath from typed fields. */
|
|
56
|
+
static from(fields, options) {
|
|
57
|
+
const mount = options?.mount ?? options?.parent ?? AbsolutePath.root();
|
|
58
|
+
const raw = serializeFromParts(mount.slugs, fields.domain, fields.functionName);
|
|
59
|
+
// Lex against the kernel-meta grammar set explicitly — bypasses
|
|
60
|
+
// both the global GrammarRegistry and PathTypeRegistry. Lets this
|
|
61
|
+
// run during bootstrap *before* the kernel-meta navigation has
|
|
62
|
+
// been registered (compileDomain produces these refs while still
|
|
63
|
+
// assembling the kernel-meta domain).
|
|
64
|
+
const result = parseStepsWith(raw, KERNEL_META_PATH_GRAMMARS);
|
|
65
|
+
if (result.errors.length > 0) {
|
|
66
|
+
throw new PathParseError(raw, result.errors);
|
|
67
|
+
}
|
|
68
|
+
return buildFunctionPath(result.steps, raw);
|
|
69
|
+
}
|
|
70
|
+
/** Qualified `of_domain` slug — `function.${functionName}`. */
|
|
71
|
+
get member() {
|
|
72
|
+
return `${FUNCTION_PREFIX}${this.functionName}`;
|
|
73
|
+
}
|
|
74
|
+
/** Alias of {@link mount}. */
|
|
75
|
+
get parent() {
|
|
76
|
+
return this.mount;
|
|
77
|
+
}
|
|
78
|
+
get isMounted() {
|
|
79
|
+
return !this.mount.isRoot;
|
|
80
|
+
}
|
|
81
|
+
get isRelative() {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Build a {@link PathType} for `FunctionPath` bound to `d`, claiming `d`'s
|
|
87
|
+
* `Function` meta-class. The Function class is addressable by TWO shapes — a
|
|
88
|
+
* `MethodPath` (a `method_of` a class) and this `FunctionPath` (a standalone
|
|
89
|
+
* function's own `of_domain` edge) — and the registry indexes both under the
|
|
90
|
+
* class (see PathTypeRegistry). Reverse projection (get-tree) tries each and
|
|
91
|
+
* keeps the one whose hops resolve, so a standalone Function recovers its
|
|
92
|
+
* `/:<origin>:function.<name>` form just as a method recovers its MethodPath.
|
|
93
|
+
*/
|
|
94
|
+
export function makeFunctionPathType(d) {
|
|
95
|
+
return {
|
|
96
|
+
...functionPathParseType,
|
|
97
|
+
class: d.$.c('Function').path.class.raw,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Parse-type for {@link FunctionPath}. `class: null` here (the parse-only set in
|
|
102
|
+
* `paths/parse.ts`, used by `extractDomainSlug`, dispatches on segment/shape, not
|
|
103
|
+
* class); the global registry registers the class-bound {@link makeFunctionPathType}
|
|
104
|
+
* variant. Detection is shape-driven (the `function.` slug prefix), so the null
|
|
105
|
+
* class here never shadows MethodPath.
|
|
106
|
+
*/
|
|
107
|
+
export const functionPathParseType = {
|
|
108
|
+
name: 'FunctionPath',
|
|
109
|
+
class: null,
|
|
110
|
+
segments: SEGMENTS,
|
|
111
|
+
matches: matchesFunctionShape,
|
|
112
|
+
build: buildFunctionPath,
|
|
113
|
+
};
|
|
114
|
+
function matchesFunctionShape(steps) {
|
|
115
|
+
if (!matchesChain(SEGMENTS, steps))
|
|
116
|
+
return false;
|
|
117
|
+
const last = steps[steps.length - 1];
|
|
118
|
+
if (!last || last.kind !== 'traversal' || last.predicate?.kind !== 'property')
|
|
119
|
+
return false;
|
|
120
|
+
const v = last.predicate.value;
|
|
121
|
+
if (!v.startsWith(FUNCTION_PREFIX))
|
|
122
|
+
return false;
|
|
123
|
+
const name = v.slice(FUNCTION_PREFIX.length);
|
|
124
|
+
return name.length > 0 && !name.includes('.');
|
|
125
|
+
}
|
|
126
|
+
function buildFunctionPath(steps, raw) {
|
|
127
|
+
const ofDomainStep = steps[steps.length - 1];
|
|
128
|
+
const installedStep = steps[steps.length - 2];
|
|
129
|
+
if (!ofDomainStep ||
|
|
130
|
+
ofDomainStep.kind !== 'traversal' ||
|
|
131
|
+
ofDomainStep.predicate?.kind !== 'property' ||
|
|
132
|
+
!installedStep ||
|
|
133
|
+
installedStep.kind !== 'traversal' ||
|
|
134
|
+
installedStep.predicate?.kind !== 'property') {
|
|
135
|
+
throw new PathParseError(raw, [
|
|
136
|
+
{ kind: 'not-function', message: 'FunctionPath shape mismatch', position: 0 },
|
|
137
|
+
]);
|
|
138
|
+
}
|
|
139
|
+
const functionName = ofDomainStep.predicate.value.slice(FUNCTION_PREFIX.length);
|
|
140
|
+
const domain = installedStep.predicate.value;
|
|
141
|
+
const mountSlugs = extractMountSlugs(steps);
|
|
142
|
+
const mount = mountSlugs.length === 0 ? AbsolutePath.root() : AbsolutePath.from(...mountSlugs);
|
|
143
|
+
const finalRaw = raw || serializeFromParts(mountSlugs, domain, functionName);
|
|
144
|
+
return new FunctionPath(steps, finalRaw, mount, domain, functionName);
|
|
145
|
+
}
|
|
146
|
+
function extractMountSlugs(steps) {
|
|
147
|
+
const slugs = [];
|
|
148
|
+
for (let i = 0; i < steps.length - 2; i++) {
|
|
149
|
+
const s = steps[i];
|
|
150
|
+
if (s.kind !== 'traversal')
|
|
151
|
+
continue;
|
|
152
|
+
if (s.predicate?.kind === 'property')
|
|
153
|
+
slugs.push(s.predicate.value);
|
|
154
|
+
}
|
|
155
|
+
return slugs;
|
|
156
|
+
}
|
|
157
|
+
function serializeFromParts(mountSlugs, domain, functionName) {
|
|
158
|
+
const tail = `${DOMAIN_SEP}${domain}${DOMAIN_SEP}${FUNCTION_PREFIX}${functionName}`;
|
|
159
|
+
return SEPARATOR_CHAR + [...mountSlugs, tail].join(SEPARATOR_CHAR);
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=function.js.map
|