@astrale-os/kernel-client 0.6.0-beta.8 → 0.6.0-beta.9

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.
Files changed (160) hide show
  1. package/dist/auth/authorization.d.ts +2 -2
  2. package/dist/auth/authorization.d.ts.map +1 -1
  3. package/dist/auth/authorization.js.map +1 -1
  4. package/dist/client/result.d.ts +1 -1
  5. package/dist/client/result.d.ts.map +1 -1
  6. package/dist/errors/client-error.d.ts.map +1 -1
  7. package/dist/errors/client-error.js +2 -0
  8. package/dist/errors/client-error.js.map +1 -1
  9. package/dist/errors/index.d.ts +7 -6
  10. package/dist/errors/index.d.ts.map +1 -1
  11. package/dist/errors/index.js +7 -6
  12. package/dist/errors/index.js.map +1 -1
  13. package/dist/errors/session-error.d.ts +10 -0
  14. package/dist/errors/session-error.d.ts.map +1 -0
  15. package/dist/errors/session-error.js +10 -0
  16. package/dist/errors/session-error.js.map +1 -0
  17. package/dist/errors/transport-error.d.ts +18 -5
  18. package/dist/errors/transport-error.d.ts.map +1 -1
  19. package/dist/errors/transport-error.js +11 -6
  20. package/dist/errors/transport-error.js.map +1 -1
  21. package/dist/graph/domain/binding.d.ts +23 -0
  22. package/dist/graph/domain/binding.d.ts.map +1 -0
  23. package/dist/graph/domain/binding.js +124 -0
  24. package/dist/graph/domain/binding.js.map +1 -0
  25. package/dist/graph/domain/domain.typecheck.d.ts +2 -0
  26. package/dist/graph/domain/domain.typecheck.d.ts.map +1 -0
  27. package/dist/graph/domain/domain.typecheck.js +128 -0
  28. package/dist/graph/domain/domain.typecheck.js.map +1 -0
  29. package/dist/graph/domain/index.d.ts +4 -0
  30. package/dist/graph/domain/index.d.ts.map +1 -0
  31. package/dist/graph/domain/index.js +2 -0
  32. package/dist/graph/domain/index.js.map +1 -0
  33. package/dist/graph/domain/model.d.ts +19 -0
  34. package/dist/graph/domain/model.d.ts.map +1 -0
  35. package/dist/graph/domain/model.js +2 -0
  36. package/dist/graph/domain/model.js.map +1 -0
  37. package/dist/graph/domain/page.d.ts +24 -0
  38. package/dist/graph/domain/page.d.ts.map +1 -0
  39. package/dist/graph/domain/page.js +43 -0
  40. package/dist/graph/domain/page.js.map +1 -0
  41. package/dist/graph/domain/project.d.ts +9 -0
  42. package/dist/graph/domain/project.d.ts.map +1 -0
  43. package/dist/graph/domain/project.js +121 -0
  44. package/dist/graph/domain/project.js.map +1 -0
  45. package/dist/graph/domain/provenance.d.ts +7 -0
  46. package/dist/graph/domain/provenance.d.ts.map +1 -0
  47. package/dist/graph/domain/provenance.js +12 -0
  48. package/dist/graph/domain/provenance.js.map +1 -0
  49. package/dist/graph/errors.d.ts +2 -2
  50. package/dist/graph/errors.d.ts.map +1 -1
  51. package/dist/graph/errors.js +2 -1
  52. package/dist/graph/errors.js.map +1 -1
  53. package/dist/graph/graph.d.ts +7 -5
  54. package/dist/graph/graph.d.ts.map +1 -1
  55. package/dist/graph/graph.js.map +1 -1
  56. package/dist/graph/index.d.ts +1 -0
  57. package/dist/graph/index.d.ts.map +1 -1
  58. package/dist/graph/index.js +1 -0
  59. package/dist/graph/index.js.map +1 -1
  60. package/dist/graph/page/neighbors.d.ts +4 -4
  61. package/dist/graph/page/neighbors.d.ts.map +1 -1
  62. package/dist/graph/page/neighbors.js +6 -6
  63. package/dist/graph/page/neighbors.js.map +1 -1
  64. package/dist/graph/page/page.d.ts +5 -1
  65. package/dist/graph/page/page.d.ts.map +1 -1
  66. package/dist/graph/page/page.js.map +1 -1
  67. package/dist/graph/page-contract.d.ts +1 -1
  68. package/dist/graph/page-contract.d.ts.map +1 -1
  69. package/dist/graph/provenance.d.ts +13 -0
  70. package/dist/graph/provenance.d.ts.map +1 -0
  71. package/dist/graph/provenance.js +38 -0
  72. package/dist/graph/provenance.js.map +1 -0
  73. package/dist/graph/query.d.ts.map +1 -1
  74. package/dist/graph/query.js +23 -10
  75. package/dist/graph/query.js.map +1 -1
  76. package/dist/graph/read.d.ts +3 -3
  77. package/dist/graph/read.d.ts.map +1 -1
  78. package/dist/graph/read.js +1 -1
  79. package/dist/graph/read.js.map +1 -1
  80. package/dist/index.d.ts +1 -1
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +1 -1
  83. package/dist/index.js.map +1 -1
  84. package/dist/schema/admission.d.ts +1 -1
  85. package/dist/schema/admission.d.ts.map +1 -1
  86. package/dist/schema/admission.js.map +1 -1
  87. package/dist/schema/contracts.d.ts +6 -15
  88. package/dist/schema/contracts.d.ts.map +1 -1
  89. package/dist/schema/introspection.d.ts +1 -1
  90. package/dist/schema/introspection.d.ts.map +1 -1
  91. package/dist/schema/introspection.js +1 -1
  92. package/dist/schema/introspection.js.map +1 -1
  93. package/dist/schema/operation.js +1 -1
  94. package/dist/schema/operation.js.map +1 -1
  95. package/dist/schema/schema.d.ts +1 -1
  96. package/dist/schema/schema.d.ts.map +1 -1
  97. package/dist/session/bound.d.ts +45 -0
  98. package/dist/session/bound.d.ts.map +1 -0
  99. package/dist/session/bound.js +76 -0
  100. package/dist/session/bound.js.map +1 -0
  101. package/dist/session/context/operation.d.ts.map +1 -1
  102. package/dist/session/context/operation.js +19 -16
  103. package/dist/session/context/operation.js.map +1 -1
  104. package/dist/session/discovery/bundle.d.ts.map +1 -1
  105. package/dist/session/discovery/bundle.js +4 -3
  106. package/dist/session/discovery/bundle.js.map +1 -1
  107. package/dist/session/discovery/publication.d.ts.map +1 -1
  108. package/dist/session/discovery/publication.js +4 -3
  109. package/dist/session/discovery/publication.js.map +1 -1
  110. package/dist/session/discovery/transport.d.ts +7 -0
  111. package/dist/session/discovery/transport.d.ts.map +1 -0
  112. package/dist/session/discovery/transport.js +14 -0
  113. package/dist/session/discovery/transport.js.map +1 -0
  114. package/dist/session/index.d.ts +3 -0
  115. package/dist/session/index.d.ts.map +1 -1
  116. package/dist/session/index.js +2 -0
  117. package/dist/session/index.js.map +1 -1
  118. package/dist/session/reference.d.ts +12 -2
  119. package/dist/session/reference.d.ts.map +1 -1
  120. package/dist/session/reference.js +28 -7
  121. package/dist/session/reference.js.map +1 -1
  122. package/dist/session/routing/expectation.d.ts +2 -2
  123. package/dist/session/routing/expectation.d.ts.map +1 -1
  124. package/dist/session/session.d.ts +7 -1
  125. package/dist/session/session.d.ts.map +1 -1
  126. package/dist/session/session.js +27 -3
  127. package/dist/session/session.js.map +1 -1
  128. package/dist/session/session.typecheck.js +23 -1
  129. package/dist/session/session.typecheck.js.map +1 -1
  130. package/dist/session/views/catalog.d.ts.map +1 -1
  131. package/dist/session/views/catalog.js +12 -4
  132. package/dist/session/views/catalog.js.map +1 -1
  133. package/dist/store/store.typecheck.js +3 -3
  134. package/dist/store/store.typecheck.js.map +1 -1
  135. package/dist/transport/auto/fallback.d.ts.map +1 -1
  136. package/dist/transport/auto/fallback.js +8 -9
  137. package/dist/transport/auto/fallback.js.map +1 -1
  138. package/dist/transport/auto/transport.d.ts.map +1 -1
  139. package/dist/transport/auto/transport.js +5 -5
  140. package/dist/transport/auto/transport.js.map +1 -1
  141. package/dist/transport/failure.d.ts +8 -0
  142. package/dist/transport/failure.d.ts.map +1 -0
  143. package/dist/transport/failure.js +10 -0
  144. package/dist/transport/failure.js.map +1 -0
  145. package/dist/transport/http/stream.d.ts.map +1 -1
  146. package/dist/transport/http/stream.js +7 -6
  147. package/dist/transport/http/stream.js.map +1 -1
  148. package/dist/transport/http/transport.d.ts.map +1 -1
  149. package/dist/transport/http/transport.js +4 -5
  150. package/dist/transport/http/transport.js.map +1 -1
  151. package/dist/transport/websocket/connection.d.ts.map +1 -1
  152. package/dist/transport/websocket/connection.js +11 -23
  153. package/dist/transport/websocket/connection.js.map +1 -1
  154. package/dist/transport/websocket/exchange.d.ts.map +1 -1
  155. package/dist/transport/websocket/exchange.js +5 -8
  156. package/dist/transport/websocket/exchange.js.map +1 -1
  157. package/dist/transport/websocket/transport.d.ts.map +1 -1
  158. package/dist/transport/websocket/transport.js +6 -18
  159. package/dist/transport/websocket/transport.js.map +1 -1
  160. package/package.json +9 -9
@@ -0,0 +1,24 @@
1
+ import type { Edge } from '@astrale-os/kernel-core/graph/edge';
2
+ import type { Node } from '@astrale-os/kernel-core/graph/node';
3
+ import type { QueryAST, QueryEdgeGraphResult, QueryEdgeResult, QueryNodeGraphResult, QueryNodeResult, QueryResultFor, QuerySingleSourceClassOf } from '@astrale-os/kernel-core/graph/query';
4
+ import type { AnyResolvedClass, ResolvedClass } from '@astrale-os/kernel-dsl/v1/language';
5
+ import type { QueryResponse } from '../page-contract.js';
6
+ import type { BoundEdge, BoundNode } from './model.js';
7
+ type SourceClass<Query> = Extract<QuerySingleSourceClassOf<Query>, AnyResolvedClass>;
8
+ export interface BoundNodePage<Query extends QueryAST = QueryAST, Class extends ResolvedClass<'node'> = Extract<SourceClass<Query>, ResolvedClass<'node'>>> {
9
+ readonly nodes: readonly BoundNode<Class>[];
10
+ readonly raw: QueryResponse<QueryResultFor<Query>>;
11
+ readonly next?: () => Promise<BoundNodePage<Query, Class>>;
12
+ refine<Target extends ResolvedClass<'node'>>(value: BoundNode<Class>, target: Target): BoundNode<Target> | undefined;
13
+ }
14
+ export interface BoundEdgePage<Query extends QueryAST = QueryAST, Class extends ResolvedClass<'edge'> = Extract<SourceClass<Query>, ResolvedClass<'edge'>>> {
15
+ readonly edges: readonly BoundEdge<Class>[];
16
+ readonly raw: QueryResponse<QueryResultFor<Query>>;
17
+ readonly next?: () => Promise<BoundEdgePage<Query, Class>>;
18
+ refine<Target extends ResolvedClass<'edge'>>(value: BoundEdge<Class>, target: Target): BoundEdge<Target> | undefined;
19
+ }
20
+ export type BoundQueryPage<Query extends QueryAST> = QueryResultFor<Query> extends QueryNodeGraphResult | QueryNodeResult ? BoundNodePage<Query> : QueryResultFor<Query> extends QueryEdgeGraphResult | QueryEdgeResult ? BoundEdgePage<Query> : never;
21
+ export declare function selectedNodes(response: QueryResponse): readonly Node[];
22
+ export declare function selectedEdges(response: QueryResponse): readonly Edge[];
23
+ export {};
24
+ //# sourceMappingURL=page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../graph/domain/page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAC9D,OAAO,KAAK,EACV,QAAQ,EACR,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,wBAAwB,EACzB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAIzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtD,KAAK,WAAW,CAAC,KAAK,IAAI,OAAO,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAA;AAEpF,MAAM,WAAW,aAAa,CAC5B,KAAK,SAAS,QAAQ,GAAG,QAAQ,EACjC,KAAK,SAAS,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAExF,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,CAAC,KAAK,CAAC,EAAE,CAAA;IAC3C,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;IAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;IAC1D,MAAM,CAAC,MAAM,SAAS,aAAa,CAAC,MAAM,CAAC,EACzC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EACvB,MAAM,EAAE,MAAM,GACb,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;CACjC;AAED,MAAM,WAAW,aAAa,CAC5B,KAAK,SAAS,QAAQ,GAAG,QAAQ,EACjC,KAAK,SAAS,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAExF,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,CAAC,KAAK,CAAC,EAAE,CAAA;IAC3C,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;IAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;IAC1D,MAAM,CAAC,MAAM,SAAS,aAAa,CAAC,MAAM,CAAC,EACzC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EACvB,MAAM,EAAE,MAAM,GACb,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;CACjC;AAED,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,QAAQ,IAC/C,cAAc,CAAC,KAAK,CAAC,SAAS,oBAAoB,GAAG,eAAe,GAChE,aAAa,CAAC,KAAK,CAAC,GACpB,cAAc,CAAC,KAAK,CAAC,SAAS,oBAAoB,GAAG,eAAe,GAClE,aAAa,CAAC,KAAK,CAAC,GACpB,KAAK,CAAA;AAEb,wBAAgB,aAAa,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,IAAI,EAAE,CAgBtE;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,IAAI,EAAE,CAgBtE"}
@@ -0,0 +1,43 @@
1
+ import { edgeKeyOf, equalEdgeKeys } from '@astrale-os/kernel-core/graph/edge';
2
+ export function selectedNodes(response) {
3
+ const result = response.result;
4
+ if (result.kind === 'graph') {
5
+ if (result.selection.kind !== 'node')
6
+ throw new TypeError('Query did not select Nodes.');
7
+ const byId = new Map(result.graph.nodes.map((node) => [node.id, node]));
8
+ return result.selection.ids.map((id) => {
9
+ const node = byId.get(id);
10
+ if (node === undefined)
11
+ throw new TypeError(`Selected Node ${id} is absent.`);
12
+ return node;
13
+ });
14
+ }
15
+ if (result.kind !== 'nodes')
16
+ throw new TypeError('Query did not select Nodes.');
17
+ return result.nodes.map((item) => {
18
+ if (item.kind !== 'value')
19
+ throw new TypeError('Rich Node queries require value projection.');
20
+ return item.value;
21
+ });
22
+ }
23
+ export function selectedEdges(response) {
24
+ const result = response.result;
25
+ if (result.kind === 'graph') {
26
+ if (result.selection.kind !== 'edge')
27
+ throw new TypeError('Query did not select Edges.');
28
+ return result.selection.keys.map((key) => {
29
+ const edge = result.graph.edges.find((candidate) => equalEdgeKeys(edgeKeyOf(candidate), key));
30
+ if (edge === undefined)
31
+ throw new TypeError('Selected Edge is absent.');
32
+ return edge;
33
+ });
34
+ }
35
+ if (result.kind !== 'edges')
36
+ throw new TypeError('Query did not select Edges.');
37
+ return result.edges.map((item) => {
38
+ if (item.edge.kind !== 'value')
39
+ throw new TypeError('Rich Edge queries require value projection.');
40
+ return item.edge.value;
41
+ });
42
+ }
43
+ //# sourceMappingURL=page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../../graph/domain/page.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAwC7E,MAAM,UAAU,aAAa,CAAC,QAAuB;IACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;IAC9B,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM;YAAE,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAA;QACxF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;QACvE,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACzB,IAAI,IAAI,KAAK,SAAS;gBAAE,MAAM,IAAI,SAAS,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAA;YAC7E,OAAO,IAAI,CAAA;QACb,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAA;IAC/E,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAA;QAC7F,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAuB;IACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;IAC9B,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM;YAAE,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAA;QACxF,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACvC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;YAC7F,IAAI,IAAI,KAAK,SAAS;gBAAE,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAA;YACvE,OAAO,IAAI,CAAA;QACb,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAA;IAC/E,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO;YAC5B,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAA;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA;IACxB,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Edge } from '@astrale-os/kernel-core/graph/edge';
2
+ import type { Node } from '@astrale-os/kernel-core/graph/node';
3
+ import type { ResolvedClass, ResolvedMethod } from '@astrale-os/kernel-dsl/v1/language';
4
+ import type { BoundEdge, BoundNode } from './model.js';
5
+ import type { QueryProvenance } from './provenance.js';
6
+ export type MethodCall = (node: Node, method: ResolvedMethod, input: unknown) => Promise<unknown>;
7
+ export declare function projectNode<Class extends ResolvedClass<'node'>>(selected: Class, node: Node, provenance: QueryProvenance, call: MethodCall): BoundNode<Class>;
8
+ export declare function projectEdge<Class extends ResolvedClass<'edge'>>(selected: Class, edge: Edge, provenance: QueryProvenance): BoundEdge<Class>;
9
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../graph/domain/project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAC9D,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EAEf,MAAM,oCAAoC,CAAA;AAI3C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAItD,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAEjG,wBAAgB,WAAW,CAAC,KAAK,SAAS,aAAa,CAAC,MAAM,CAAC,EAC7D,QAAQ,EAAE,KAAK,EACf,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,UAAU,GACf,SAAS,CAAC,KAAK,CAAC,CAelB;AAED,wBAAgB,WAAW,CAAC,KAAK,SAAS,aAAa,CAAC,MAAM,CAAC,EAC7D,QAAQ,EAAE,KAAK,EACf,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,eAAe,GAC1B,SAAS,CAAC,KAAK,CAAC,CAalB"}
@@ -0,0 +1,121 @@
1
+ import { MethodKey, PropertyKey } from '@astrale-os/kernel-dsl/v1/addressing';
2
+ import { retainProjectedProvenance } from './provenance.js';
3
+ export function projectNode(selected, node, provenance, call) {
4
+ const property = propertyAccessor(selected, node.props);
5
+ const method = methodAccessor(selected, node, call);
6
+ const value = {
7
+ id: node.id,
8
+ class: node.class,
9
+ props: node.props,
10
+ property,
11
+ method,
12
+ };
13
+ installPropertyShortcuts(value, selected, node.props, NODE_RESERVED);
14
+ installMethodShortcuts(value, selected, node, call, NODE_RESERVED);
15
+ const projected = Object.freeze(value);
16
+ retainProjectedProvenance(projected, provenance);
17
+ return projected;
18
+ }
19
+ export function projectEdge(selected, edge, provenance) {
20
+ const value = {
21
+ source: edge.source,
22
+ target: edge.target,
23
+ class: edge.class,
24
+ ...(edge.slug === undefined ? {} : { slug: edge.slug }),
25
+ props: edge.props,
26
+ property: propertyAccessor(selected, edge.props),
27
+ };
28
+ installPropertyShortcuts(value, selected, edge.props, EDGE_RESERVED);
29
+ const projected = Object.freeze(value);
30
+ retainProjectedProvenance(projected, provenance);
31
+ return projected;
32
+ }
33
+ const NODE_RESERVED = new Set(['id', 'class', 'props', 'property', 'method']);
34
+ const EDGE_RESERVED = new Set(['source', 'target', 'class', 'slug', 'props', 'property']);
35
+ function propertyAccessor(selected, props) {
36
+ return (input) => {
37
+ const property = resolveProperty(selected, input);
38
+ return props[property.key];
39
+ };
40
+ }
41
+ function methodAccessor(selected, node, call) {
42
+ return (input) => {
43
+ const method = resolveMethod(selected, input);
44
+ if (method.inheritance === 'abstract') {
45
+ throw new TypeError(`Abstract Method ${method.key} cannot be invoked.`);
46
+ }
47
+ return (value) => call(node, method, value);
48
+ };
49
+ }
50
+ function resolveProperty(selected, input) {
51
+ if (typeof input !== 'string') {
52
+ const member = selected.properties.get(input.key);
53
+ if (member !== input)
54
+ throw new TypeError('Property does not belong to the selected Class.');
55
+ return member;
56
+ }
57
+ if (PropertyKey.is(input)) {
58
+ const member = selected.properties.get(input);
59
+ if (member === undefined)
60
+ throw new TypeError(`Property ${input} is not effective.`);
61
+ return member;
62
+ }
63
+ const member = named(selected.properties, input);
64
+ if (member === undefined || typeof member !== 'object') {
65
+ throw new TypeError(`Property name ${JSON.stringify(input)} is absent or ambiguous.`);
66
+ }
67
+ return member;
68
+ }
69
+ function resolveMethod(selected, input) {
70
+ if (typeof input !== 'string') {
71
+ const member = selected.methods.get(input.key);
72
+ if (member !== input)
73
+ throw new TypeError('Method does not belong to the selected Class.');
74
+ return member;
75
+ }
76
+ if (MethodKey.is(input)) {
77
+ const member = selected.methods.get(input);
78
+ if (member === undefined)
79
+ throw new TypeError(`Method ${input} is not effective.`);
80
+ return member;
81
+ }
82
+ const member = named(selected.methods, input);
83
+ if (member === undefined || typeof member !== 'object') {
84
+ throw new TypeError(`Method name ${JSON.stringify(input)} is absent or ambiguous.`);
85
+ }
86
+ return member;
87
+ }
88
+ function installPropertyShortcuts(target, selected, props, reserved) {
89
+ for (const property of selected.properties) {
90
+ if (reserved.has(property.name) || hasOwn(target, property.name))
91
+ continue;
92
+ if (named(selected.properties, property.name) !== property)
93
+ continue;
94
+ if (selected.kind === 'node' && named(selected.methods, property.name) !== undefined)
95
+ continue;
96
+ install(target, property.name, props[property.key]);
97
+ }
98
+ }
99
+ function installMethodShortcuts(target, selected, node, call, reserved) {
100
+ for (const member of selected.methods) {
101
+ if (member.inheritance === 'abstract' ||
102
+ reserved.has(member.name) ||
103
+ hasOwn(target, member.name))
104
+ continue;
105
+ if (named(selected.methods, member.name) !== member)
106
+ continue;
107
+ if (named(selected.properties, member.name) !== undefined)
108
+ continue;
109
+ install(target, member.name, (input) => call(node, member, input));
110
+ }
111
+ }
112
+ function named(collection, name) {
113
+ return hasOwn(collection, name) ? Reflect.get(collection, name) : undefined;
114
+ }
115
+ function hasOwn(value, name) {
116
+ return Object.prototype.hasOwnProperty.call(value, name);
117
+ }
118
+ function install(target, name, value) {
119
+ Object.defineProperty(target, name, { enumerable: true, value });
120
+ }
121
+ //# sourceMappingURL=project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../../graph/domain/project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Domain } from '@astrale-os/kernel-dsl/v1/domain';
2
+ import type { QueryProvenance } from '../provenance.js';
3
+ export declare function retainProjectedProvenance(value: object, provenance: QueryProvenance): void;
4
+ export declare function provenanceOfProjectedValue(value: object): QueryProvenance | undefined;
5
+ export declare function sameClosure(left: Domain['closure'], right: Domain['closure']): boolean;
6
+ export type { QueryProvenance };
7
+ //# sourceMappingURL=provenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../../graph/domain/provenance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AAE9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAIvD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI,CAE1F;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAErF;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,OAAO,CAQtF;AAED,YAAY,EAAE,eAAe,EAAE,CAAA"}
@@ -0,0 +1,12 @@
1
+ const projectedValues = new WeakMap();
2
+ export function retainProjectedProvenance(value, provenance) {
3
+ projectedValues.set(value, provenance);
4
+ }
5
+ export function provenanceOfProjectedValue(value) {
6
+ return projectedValues.get(value);
7
+ }
8
+ export function sameClosure(left, right) {
9
+ return (left.length === right.length &&
10
+ left.every((identity, index) => identity.origin === right[index]?.origin && identity.revision === right[index]?.revision));
11
+ }
12
+ //# sourceMappingURL=provenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../../graph/domain/provenance.ts"],"names":[],"mappings":"AAIA,MAAM,eAAe,GAAG,IAAI,OAAO,EAA2B,CAAA;AAE9D,MAAM,UAAU,yBAAyB,CAAC,KAAa,EAAE,UAA2B;IAClF,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAuB,EAAE,KAAwB;IAC3E,OAAO,CACL,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAC5B,IAAI,CAAC,KAAK,CACR,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAClB,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,QAAQ,CAAC,QAAQ,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,CAC3F,CACF,CAAA;AACH,CAAC"}
@@ -1,9 +1,9 @@
1
- import type { NodePath, PathLike } from '@astrale-os/kernel-core/path';
1
+ import type { NodePath, NodeTarget } from '@astrale-os/kernel-core/path';
2
2
  import { ClientError } from '../errors/index.js';
3
3
  /** Required point read whose absence and authorization masking are intentionally indistinguishable. */
4
4
  export declare class NodeUnavailableError extends ClientError {
5
5
  readonly code: 'NODE_UNAVAILABLE';
6
6
  readonly path: NodePath;
7
- constructor(path: PathLike);
7
+ constructor(path: NodeTarget);
8
8
  }
9
9
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../graph/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAItE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,uGAAuG;AACvG,qBAAa,oBAAqB,SAAQ,WAAW;IACnD,QAAQ,CAAC,IAAI,EAAG,kBAAkB,CAAS;IAC3C,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IAEvB,YAAY,IAAI,EAAE,QAAQ,EAKzB;CACF"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../graph/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAKxE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,uGAAuG;AACvG,qBAAa,oBAAqB,SAAQ,WAAW;IACnD,QAAQ,CAAC,IAAI,EAAG,kBAAkB,CAAS;IAC3C,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IAEvB,YAAY,IAAI,EAAE,UAAU,EAK3B;CACF"}
@@ -1,3 +1,4 @@
1
+ import { isNodeId } from '@astrale-os/kernel-core/graph/node';
1
2
  import { Path } from '@astrale-os/kernel-core/path';
2
3
  import { ClientError } from '../errors/index.js';
3
4
  /** Required point read whose absence and authorization masking are intentionally indistinguishable. */
@@ -5,7 +6,7 @@ export class NodeUnavailableError extends ClientError {
5
6
  code = 'NODE_UNAVAILABLE';
6
7
  path;
7
8
  constructor(path) {
8
- const admitted = Path.from(path).raw;
9
+ const admitted = isNodeId(path) ? Path.id(path).raw : Path.from(path).raw;
9
10
  super(`Node ${JSON.stringify(admitted)} is unavailable.`);
10
11
  this.name = 'NodeUnavailableError';
11
12
  this.path = admitted;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../graph/errors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAA;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,uGAAuG;AACvG,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IAC1C,IAAI,GAAG,kBAA2B,CAAA;IAClC,IAAI,CAAU;IAEvB,YAAY,IAAc;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAA;QACpC,KAAK,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;QACzD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;QAClC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAA;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../graph/errors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAA;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,uGAAuG;AACvG,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IAC1C,IAAI,GAAG,kBAA2B,CAAA;IAClC,IAAI,CAAU;IAEvB,YAAY,IAAgB;QAC1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAA;QACzE,KAAK,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;QACzD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;QAClC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAA;IACtB,CAAC;CACF"}
@@ -1,14 +1,16 @@
1
1
  import type { GraphSpec } from '@astrale-os/kernel-core/graph/graph';
2
2
  import type { MutationAST as MutationASTValue, MutationBuilder, MutationInput, MutationResult as MutationResultValue } from '@astrale-os/kernel-core/graph/mutate';
3
3
  import type { Node } from '@astrale-os/kernel-core/graph/node';
4
- import type { QueryAST as QueryASTValue, QueryDefinitionRef, QueryResultFor } from '@astrale-os/kernel-core/graph/query';
5
- import type { PathLike } from '@astrale-os/kernel-core/path';
4
+ import type { QueryAST as QueryASTValue, QueryEdgeClassInput, QueryResultFor } from '@astrale-os/kernel-core/graph/query';
5
+ import type { NodeTarget } from '@astrale-os/kernel-core/path';
6
+ import type { DomainDependency } from '@astrale-os/kernel-dsl/v1/schema';
6
7
  import type { Call, Input } from '../client/index.js';
7
8
  import type { RequestOptions } from '../transport/index.js';
8
9
  import type { QueryPageRequest, QueryResponse } from './page-contract.js';
9
10
  import type { NeighborsOptions, NodePage } from './page/index.js';
10
11
  export type GraphCall = (call: Call, options?: RequestOptions) => Promise<Input>;
11
12
  export interface GraphQueryOptions extends RequestOptions {
13
+ readonly expected?: readonly DomainDependency[];
12
14
  readonly page: QueryPageRequest;
13
15
  }
14
16
  export type MutationAuthor = (mutation: MutationBuilder) => undefined;
@@ -16,9 +18,9 @@ export interface GraphApi {
16
18
  query<Query extends QueryASTValue>(ast: Query, options: GraphQueryOptions): Promise<QueryResponse<QueryResultFor<Query>>>;
17
19
  mutate(author: MutationAuthor, options?: RequestOptions): Promise<MutationResultValue>;
18
20
  mutate(ast: MutationASTValue | MutationInput | GraphSpec, options?: RequestOptions): Promise<MutationResultValue>;
19
- get(target: PathLike, options?: RequestOptions): Promise<Node | null>;
20
- getOrThrow(target: PathLike, options?: RequestOptions): Promise<Node>;
21
- neighbors(source: PathLike, via: QueryDefinitionRef | readonly [QueryDefinitionRef, ...QueryDefinitionRef[]], options: NeighborsOptions): Promise<NodePage>;
21
+ get(target: NodeTarget, options?: RequestOptions): Promise<Node | null>;
22
+ getOrThrow(target: NodeTarget, options?: RequestOptions): Promise<Node>;
23
+ neighbors(source: NodeTarget, via: QueryEdgeClassInput | readonly [QueryEdgeClassInput, ...QueryEdgeClassInput[]], options: NeighborsOptions): Promise<NodePage>;
22
24
  }
23
25
  /** Bind Core's canonical graph documents to one caller-scoped value-call capability. */
24
26
  export declare function createGraph(call: GraphCall): GraphApi;
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../graph/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,KAAK,EACV,WAAW,IAAI,gBAAgB,EAC/B,eAAe,EACf,aAAa,EACb,cAAc,IAAI,mBAAmB,EACtC,MAAM,sCAAsC,CAAA;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAC9D,OAAO,KAAK,EACV,QAAQ,IAAI,aAAa,EACzB,kBAAkB,EAClB,cAAc,EACf,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAE5D,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAOjE,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,KAAK,CAAC,CAAA;AAEhF,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAChC;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,eAAe,KAAK,SAAS,CAAA;AAErE,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,KAAK,SAAS,aAAa,EAC/B,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAChD,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACtF,MAAM,CACJ,GAAG,EAAE,gBAAgB,GAAG,aAAa,GAAG,SAAS,EACjD,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC/B,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACrE,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACrE,SAAS,CACP,MAAM,EAAE,QAAQ,EAChB,GAAG,EAAE,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,CAAC,EAChF,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,QAAQ,CAAC,CAAA;CACrB;AAED,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,CAmBrD"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../graph/graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,KAAK,EACV,WAAW,IAAI,gBAAgB,EAC/B,eAAe,EACf,aAAa,EACb,cAAc,IAAI,mBAAmB,EACtC,MAAM,sCAAsC,CAAA;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAC9D,OAAO,KAAK,EACV,QAAQ,IAAI,aAAa,EACzB,mBAAmB,EACnB,cAAc,EACf,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAExE,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAOjE,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,KAAK,CAAC,CAAA;AAEhF,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC/C,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAChC;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,eAAe,KAAK,SAAS,CAAA;AAErE,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,KAAK,SAAS,aAAa,EAC/B,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAChD,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACtF,MAAM,CACJ,GAAG,EAAE,gBAAgB,GAAG,aAAa,GAAG,SAAS,EACjD,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC/B,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACvE,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvE,SAAS,CACP,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,mBAAmB,GAAG,SAAS,CAAC,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CAAC,EACnF,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,QAAQ,CAAC,CAAA;CACrB;AAED,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,CAoBrD"}
@@ -1 +1 @@
1
- {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../graph/graph.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AA6BhD,wFAAwF;AACxF,MAAM,UAAU,WAAW,CAAC,IAAe;IACzC,IAAI,OAAO,IAAI,KAAK,UAAU;QAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAA;IACxF,MAAM,KAAK,GAAG,CAA8B,GAAU,EAAE,OAA0B,EAAE,EAAE,CACpF,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IAChC,MAAM,MAAM,GAAG,CACb,KAAoE,EACpE,OAAwB,EACxB,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IACtC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK;QACL,MAAM;QACN,GAAG,EAAE,CAAC,MAAgB,EAAE,OAAwB,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC;QACnF,UAAU,EAAE,CAAC,MAAgB,EAAE,OAAwB,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC;QAC9F,SAAS,EAAE,CACT,MAAgB,EAChB,GAAgF,EAChF,OAAyB,EACzB,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC;KAChD,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../graph/graph.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AA8BhD,wFAAwF;AACxF,MAAM,UAAU,WAAW,CAAC,IAAe;IACzC,IAAI,OAAO,IAAI,KAAK,UAAU;QAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAA;IACxF,MAAM,KAAK,GAAG,CAA8B,GAAU,EAAE,OAA0B,EAAE,EAAE,CACpF,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IAChC,MAAM,MAAM,GAAG,CACb,KAAoE,EACpE,OAAwB,EACxB,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IACtC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK;QACL,MAAM;QACN,GAAG,EAAE,CAAC,MAAkB,EAAE,OAAwB,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC;QACrF,UAAU,EAAE,CAAC,MAAkB,EAAE,OAAwB,EAAE,EAAE,CAC3D,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC;QACpC,SAAS,EAAE,CACT,MAAkB,EAClB,GAAmF,EACnF,OAAyB,EACzB,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC;KAChD,CAAC,CAAA;AACJ,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export { createGraph, type GraphApi, type GraphCall, type GraphQueryOptions, type MutationAuthor, } from './graph.js';
2
2
  export type { QueryPageRequest, QueryResponse } from './page-contract.js';
3
+ export { type BoundEdge, type BoundEdgePage, type BoundGraphValue, type BoundNode, type BoundNodeFor, type BoundNodePage, type BoundQueryPage, type DomainBinding, type DomainQueryOptions, } from './domain/index.js';
3
4
  export { NodeUnavailableError } from './errors.js';
4
5
  export type { NeighborsOptions, NodePage } from './page/index.js';
5
6
  export { LocalBinding, type GraphSpec } from '@astrale-os/kernel-core/graph/graph';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../graph/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAClD,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAEjE,OAAO,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAClF,OAAO,EACL,WAAW,EACX,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../graph/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAClD,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAEjE,OAAO,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAClF,OAAO,EACL,WAAW,EACX,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export { createGraph, } from './graph.js';
2
+ export {} from './domain/index.js';
2
3
  export { NodeUnavailableError } from './errors.js';
3
4
  export { LocalBinding } from '@astrale-os/kernel-core/graph/graph';
4
5
  export { MutationAST, MutationResult, } from '@astrale-os/kernel-core/graph/mutate';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../graph/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,GAKZ,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAGlD,OAAO,EAAE,YAAY,EAAkB,MAAM,qCAAqC,CAAA;AAClF,OAAO,EACL,WAAW,EACX,cAAc,GAGf,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../graph/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,GAKZ,MAAM,YAAY,CAAA;AAEnB,OAAO,EAUN,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAGlD,OAAO,EAAE,YAAY,EAAkB,MAAM,qCAAqC,CAAA;AAClF,OAAO,EACL,WAAW,EACX,cAAc,GAGf,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA"}
@@ -1,10 +1,10 @@
1
- import type { QueryDefinitionRef, QueryDirection } from '@astrale-os/kernel-core/graph/query';
2
- import type { PathLike } from '@astrale-os/kernel-core/path';
1
+ import type { QueryDirection, QueryEdgeClassInput } from '@astrale-os/kernel-core/graph/query';
2
+ import type { NodeTarget } from '@astrale-os/kernel-core/path';
3
3
  import type { NodePage, PageQuery, PageQueryOptions } from './page.js';
4
4
  export interface NeighborsOptions extends PageQueryOptions {
5
5
  readonly direction: QueryDirection;
6
6
  }
7
- export type NeighborSource = PathLike;
8
- export type NeighborVia = QueryDefinitionRef | readonly [QueryDefinitionRef, ...QueryDefinitionRef[]];
7
+ export type NeighborSource = NodeTarget;
8
+ export type NeighborVia = QueryEdgeClassInput | readonly [QueryEdgeClassInput, ...QueryEdgeClassInput[]];
9
9
  export declare function readNeighbors(query: PageQuery, source: NeighborSource, via: NeighborVia, options: NeighborsOptions): Promise<NodePage>;
10
10
  //# sourceMappingURL=neighbors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"neighbors.d.ts","sourceRoot":"","sources":["../../../graph/page/neighbors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAC7F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAI5D,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAItE,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAA;CACnC;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAA;AACrC,MAAM,MAAM,WAAW,GACnB,kBAAkB,GAClB,SAAS,CAAC,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,CAAC,CAAA;AAE1D,wBAAsB,aAAa,CACjC,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,QAAQ,CAAC,CA8BnB"}
1
+ {"version":3,"file":"neighbors.d.ts","sourceRoot":"","sources":["../../../graph/page/neighbors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AAC9F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAI9D,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAItE,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAA;CACnC;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,CAAA;AACvC,MAAM,MAAM,WAAW,GACnB,mBAAmB,GACnB,SAAS,CAAC,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CAAC,CAAA;AAE5D,wBAAsB,aAAa,CACjC,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,QAAQ,CAAC,CA6BnB"}
@@ -4,10 +4,10 @@ export async function readNeighbors(query, source, via, options) {
4
4
  if (options === null || typeof options !== 'object') {
5
5
  throw new TypeError('Neighbor read options are invalid.');
6
6
  }
7
- const definitions = Array.isArray(via) ? via : [via];
8
- const [definition, ...additionalDefinitions] = definitions;
9
- if (definition === undefined)
10
- throw new TypeError('Neighbor read requires at least one Definition.');
7
+ const classes = Array.isArray(via) ? via : [via];
8
+ const [classInput, ...additionalClasses] = classes;
9
+ if (classInput === undefined)
10
+ throw new TypeError('Neighbor read requires at least one Class.');
11
11
  const direction = options.direction === 'outgoing'
12
12
  ? options.direction
13
13
  : options.direction === 'incoming'
@@ -15,8 +15,8 @@ export async function readNeighbors(query, source, via, options) {
15
15
  : options.direction === 'incident'
16
16
  ? options.direction
17
17
  : invalidDirection(options.direction);
18
- const ast = Query.from({ kind: 'node', paths: [source] })
19
- .expand({ via: [definition, ...additionalDefinitions], direction })
18
+ const ast = Query.from({ nodes: [source] })
19
+ .expand({ via: [classInput, ...additionalClasses], direction })
20
20
  .select({ kind: 'graph' });
21
21
  const { direction: _, page, ...request } = options;
22
22
  const { idempotencyKey: ___, ...basis } = request;
@@ -1 +1 @@
1
- {"version":3,"file":"neighbors.js","sourceRoot":"","sources":["../../../graph/page/neighbors.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAA;AAI3D,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAW1C,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAgB,EAChB,MAAsB,EACtB,GAAgB,EAChB,OAAyB;IAEzB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpD,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAA;IAC3D,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACpD,MAAM,CAAC,UAAU,EAAE,GAAG,qBAAqB,CAAC,GAAG,WAAW,CAAA;IAC1D,IAAI,UAAU,KAAK,SAAS;QAC1B,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAA;IAExE,MAAM,SAAS,GACb,OAAO,CAAC,SAAS,KAAK,UAAU;QAC9B,CAAC,CAAC,OAAO,CAAC,SAAS;QACnB,CAAC,CAAC,OAAO,CAAC,SAAS,KAAK,UAAU;YAChC,CAAC,CAAC,OAAO,CAAC,SAAS;YACnB,CAAC,CAAC,OAAO,CAAC,SAAS,KAAK,UAAU;gBAChC,CAAC,CAAC,OAAO,CAAC,SAAS;gBACnB,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;SACtD,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,GAAG,qBAAqB,CAAC,EAAE,SAAS,EAAE,CAAC;SAClE,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAC5B,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,CAAA;IAClD,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,CAAA;IACjD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,GAAG,OAAO;QACV,IAAI;KACL,CAAC,CAAA;IACF,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAClF,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC,CAAA;IACzE,CAAC;IACD,OAAO,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;AAC/D,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAY;IACpC,MAAM,IAAI,SAAS,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AACjF,CAAC"}
1
+ {"version":3,"file":"neighbors.js","sourceRoot":"","sources":["../../../graph/page/neighbors.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAA;AAI3D,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAW1C,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAgB,EAChB,MAAsB,EACtB,GAAgB,EAChB,OAAyB;IAEzB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpD,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAA;IAC3D,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAChD,MAAM,CAAC,UAAU,EAAE,GAAG,iBAAiB,CAAC,GAAG,OAAO,CAAA;IAClD,IAAI,UAAU,KAAK,SAAS;QAAE,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAA;IAE/F,MAAM,SAAS,GACb,OAAO,CAAC,SAAS,KAAK,UAAU;QAC9B,CAAC,CAAC,OAAO,CAAC,SAAS;QACnB,CAAC,CAAC,OAAO,CAAC,SAAS,KAAK,UAAU;YAChC,CAAC,CAAC,OAAO,CAAC,SAAS;YACnB,CAAC,CAAC,OAAO,CAAC,SAAS,KAAK,UAAU;gBAChC,CAAC,CAAC,OAAO,CAAC,SAAS;gBACnB,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;SACxC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,GAAG,iBAAiB,CAAC,EAAE,SAAS,EAAE,CAAC;SAC9D,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAC5B,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,CAAA;IAClD,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,CAAA;IACjD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,GAAG,OAAO;QACV,IAAI;KACL,CAAC,CAAA;IACF,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAClF,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC,CAAA;IACzE,CAAC;IACD,OAAO,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;AAC/D,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAY;IACpC,MAAM,IAAI,SAAS,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AACjF,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { GraphData } from '@astrale-os/kernel-core/graph/graph';
2
2
  import type { Node, NodeCollection } from '@astrale-os/kernel-core/graph/node';
3
3
  import type { NodeBinding, QueryAST, QueryGraphSelect, QueryNodeGraphResult, QueryResultFor } from '@astrale-os/kernel-core/graph/query';
4
+ import type { DomainDependency } from '@astrale-os/kernel-dsl/v1/schema';
4
5
  import type { RequestOptions } from '../../transport/index.js';
5
6
  import type { QueryPageRequest, QueryResponse } from '../page-contract.js';
6
7
  export interface NodePage {
@@ -23,8 +24,11 @@ export interface NodePage {
23
24
  readonly cursor: string | null;
24
25
  }>;
25
26
  }
26
- type PageBasis = Pick<RequestOptions, 'signal' | 'timeoutMs'>;
27
+ type PageBasis = Pick<RequestOptions, 'signal' | 'timeoutMs'> & {
28
+ readonly expected?: readonly DomainDependency[];
29
+ };
27
30
  export interface PageQueryOptions extends RequestOptions {
31
+ readonly expected?: readonly DomainDependency[];
28
32
  readonly page: QueryPageRequest;
29
33
  }
30
34
  export type PageQuery = <Query extends QueryAST>(ast: Query, options: PageQueryOptions) => Promise<QueryResponse<QueryResultFor<Query>>>;
@@ -1 +1 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../graph/page/page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AAC9E,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACf,MAAM,qCAAqC,CAAA;AAE5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAE1E,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAE9B,IAAI,CAAC,OAAO,CAAC,EAAE;QACb,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;QAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAC5B,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IAE5B,OAAO,CAAC,OAAO,EAAE;QACf,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;QAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;QAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAC5B,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAA;CAChF;AAED,KAAK,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAA;AAE7D,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAChC;AACD,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,SAAS,QAAQ,EAC7C,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAElD,KAAK,iBAAiB,GAAG,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAA;AAEhE,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,iBAAiB,EACtB,QAAQ,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAC7C,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,GACX,QAAQ,CAiDV"}
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../graph/page/page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AAC9E,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACf,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAE1E,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAE9B,IAAI,CAAC,OAAO,CAAC,EAAE;QACb,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;QAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAC5B,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IAE5B,OAAO,CAAC,OAAO,EAAE;QACf,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;QAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;QAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAC5B,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAA;CAChF;AAED,KAAK,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,WAAW,CAAC,GAAG;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAA;CAChD,CAAA;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC/C,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAChC;AACD,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,SAAS,QAAQ,EAC7C,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAElD,KAAK,iBAAiB,GAAG,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAA;AAEhE,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,iBAAiB,EACtB,QAAQ,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAC7C,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,GACX,QAAQ,CAiDV"}
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","sourceRoot":"","sources":["../../../graph/page/page.ts"],"names":[],"mappings":"AA6CA,MAAM,UAAU,cAAc,CAC5B,KAAgB,EAChB,GAAsB,EACtB,QAA6C,EAC7C,KAAgB,EAChB,IAAY;IAEZ,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAA;IAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAA;IAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAA;IAEzC,MAAM,IAAI,GAAG,KAAK,EAAE,QAAuB,EAA4B,EAAE;QACvE,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAChC,MAAM,OAAO,GAAqB;YAChC,GAAG,KAAK;YACR,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;YACtE,GAAG,CAAC,QAAQ,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;YAC/E,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;SACtD,CAAA;QACD,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAC9C,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1F,MAAM,IAAI,SAAS,CAAC,0DAA0D,CAAC,CAAA;QACjF,CAAC;QACD,OAAO,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,CAAA;IAChF,CAAC,CAAA;IAED,MAAM,IAAI,GAAa;QACrB,KAAK;QACL,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM;QACN,IAAI;QACJ,KAAK,CAAC,OAAO,CAAC,OAAO;YACnB,mBAAmB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;YACzC,MAAM,SAAS,GAAW,CAAC,GAAG,KAAK,CAAC,CAAA;YACpC,IAAI,OAAO,GAAa,IAAI,CAAA;YAC5B,IAAI,KAAK,GAAG,CAAC,CAAA;YACb,OAAO,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;gBAC/D,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;oBACtC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;oBAC7D,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;oBACnE,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;iBAC7E,CAAC,CAAA;gBACF,IAAI,YAAY,KAAK,IAAI;oBAAE,MAAK;gBAChC,SAAS,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;gBACrC,OAAO,GAAG,YAAY,CAAA;gBACtB,KAAK,IAAI,CAAC,CAAA;YACZ,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC/B,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,SAAS,CAAC,wDAAwD,CAAC,CAAA;IAC/E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../../graph/page/page.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ export interface QueryPageRequest {
4
4
  readonly size: number;
5
5
  readonly after?: string;
6
6
  }
7
- /** Admitted graph result and its optional opaque continuation. */
7
+ /** Decoded graph result and its optional opaque continuation. */
8
8
  export interface QueryResponse<Result extends QueryResult = QueryResult> {
9
9
  readonly result: Result;
10
10
  readonly page: {
@@ -1 +1 @@
1
- {"version":3,"file":"page-contract.d.ts","sourceRoot":"","sources":["../../graph/page-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAEtE,wEAAwE;AACxE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,kEAAkE;AAClE,MAAM,WAAW,aAAa,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1C"}
1
+ {"version":3,"file":"page-contract.d.ts","sourceRoot":"","sources":["../../graph/page-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAEtE,wEAAwE;AACxE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,iEAAiE;AACjE,MAAM,WAAW,aAAa,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1C"}
@@ -0,0 +1,13 @@
1
+ import type { Edge } from '@astrale-os/kernel-core/graph/edge';
2
+ import type { Node } from '@astrale-os/kernel-core/graph/node';
3
+ import type { DomainDependency } from '@astrale-os/kernel-dsl/v1/schema';
4
+ import type { QueryResponse } from './page-contract.js';
5
+ export interface QueryProvenance {
6
+ readonly closure: readonly DomainDependency[];
7
+ readonly page: object;
8
+ }
9
+ /** Retain authenticated query provenance without adding serialized response metadata. */
10
+ export declare function retainQueryProvenance(response: QueryResponse, closure: readonly DomainDependency[]): QueryResponse;
11
+ export declare function provenanceOfGraphValue(value: Node | Edge): QueryProvenance | undefined;
12
+ export declare function provenanceOfResponse(value: QueryResponse): QueryProvenance | undefined;
13
+ //# sourceMappingURL=provenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../graph/provenance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAExE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAKD,yFAAyF;AACzF,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,SAAS,gBAAgB,EAAE,GACnC,aAAa,CAmBf;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,eAAe,GAAG,SAAS,CAEtF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,GAAG,SAAS,CAEtF"}
@@ -0,0 +1,38 @@
1
+ const graphValues = new WeakMap();
2
+ const responses = new WeakMap();
3
+ /** Retain authenticated query provenance without adding serialized response metadata. */
4
+ export function retainQueryProvenance(response, closure) {
5
+ const provenance = Object.freeze({ closure, page: Object.freeze({}) });
6
+ responses.set(response, provenance);
7
+ const { result } = response;
8
+ if (result.kind === 'graph') {
9
+ for (const node of result.graph.nodes)
10
+ graphValues.set(node, provenance);
11
+ for (const edge of result.graph.edges)
12
+ graphValues.set(edge, provenance);
13
+ }
14
+ else if (result.kind === 'nodes') {
15
+ for (const item of result.nodes) {
16
+ if (item.kind === 'value')
17
+ graphValues.set(item.value, provenance);
18
+ }
19
+ }
20
+ else {
21
+ for (const item of result.edges) {
22
+ if (item.edge.kind === 'value')
23
+ graphValues.set(item.edge.value, provenance);
24
+ if (item.source.kind === 'value')
25
+ graphValues.set(item.source.value, provenance);
26
+ if (item.target.kind === 'value')
27
+ graphValues.set(item.target.value, provenance);
28
+ }
29
+ }
30
+ return response;
31
+ }
32
+ export function provenanceOfGraphValue(value) {
33
+ return graphValues.get(value);
34
+ }
35
+ export function provenanceOfResponse(value) {
36
+ return responses.get(value);
37
+ }
38
+ //# sourceMappingURL=provenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../graph/provenance.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,GAAG,IAAI,OAAO,EAA2B,CAAA;AAC1D,MAAM,SAAS,GAAG,IAAI,OAAO,EAA2B,CAAA;AAExD,yFAAyF;AACzF,MAAM,UAAU,qBAAqB,CACnC,QAAuB,EACvB,OAAoC;IAEpC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACtE,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IACnC,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAA;IAC3B,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK;YAAE,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QACxE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK;YAAE,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAC1E,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;gBAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;QACpE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO;gBAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;YAC5E,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;gBAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;YAChF,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;gBAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;QAClF,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAkB;IACvD,OAAO,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAoB;IACvD,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAC7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../graph/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,aAAa,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAOpG,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAMvD,wBAAsB,UAAU,CAAC,KAAK,SAAS,aAAa,EAC1D,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAS/C"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../graph/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,aAAa,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAQpG,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAOvD,wBAAsB,UAAU,CAAC,KAAK,SAAS,aAAa,EAC1D,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAoB/C"}