@astrale-os/kernel-client 0.2.4 → 0.3.1

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 (279) hide show
  1. package/dist/auth/addressing.d.ts +32 -0
  2. package/dist/auth/addressing.d.ts.map +1 -0
  3. package/dist/auth/addressing.js +36 -0
  4. package/dist/auth/addressing.js.map +1 -0
  5. package/dist/auth/api.d.ts +69 -0
  6. package/dist/auth/api.d.ts.map +1 -0
  7. package/dist/auth/api.js +24 -0
  8. package/dist/auth/api.js.map +1 -0
  9. package/dist/auth/batch.d.ts +18 -0
  10. package/dist/auth/batch.d.ts.map +1 -0
  11. package/dist/auth/batch.js +25 -0
  12. package/dist/auth/batch.js.map +1 -0
  13. package/dist/auth/composition.d.ts +27 -0
  14. package/dist/auth/composition.d.ts.map +1 -0
  15. package/dist/auth/composition.js +83 -0
  16. package/dist/auth/composition.js.map +1 -0
  17. package/dist/auth/index.d.ts +14 -0
  18. package/dist/auth/index.d.ts.map +1 -0
  19. package/dist/auth/index.js +9 -0
  20. package/dist/auth/index.js.map +1 -0
  21. package/dist/auth/minting.d.ts +35 -0
  22. package/dist/auth/minting.d.ts.map +1 -0
  23. package/dist/auth/minting.js +35 -0
  24. package/dist/auth/minting.js.map +1 -0
  25. package/dist/auth/permissions.d.ts +55 -0
  26. package/dist/auth/permissions.d.ts.map +1 -0
  27. package/dist/auth/permissions.js +47 -0
  28. package/dist/auth/permissions.js.map +1 -0
  29. package/dist/auth/principal.d.ts +19 -0
  30. package/dist/auth/principal.d.ts.map +1 -0
  31. package/dist/auth/principal.js +46 -0
  32. package/dist/auth/principal.js.map +1 -0
  33. package/dist/errors/errors.d.ts +53 -0
  34. package/dist/errors/errors.d.ts.map +1 -1
  35. package/dist/errors/errors.js +69 -1
  36. package/dist/errors/errors.js.map +1 -1
  37. package/dist/errors/guards.d.ts +39 -0
  38. package/dist/errors/guards.d.ts.map +1 -0
  39. package/dist/errors/guards.js +127 -0
  40. package/dist/errors/guards.js.map +1 -0
  41. package/dist/errors/index.d.ts +4 -2
  42. package/dist/errors/index.d.ts.map +1 -1
  43. package/dist/errors/index.js +2 -1
  44. package/dist/errors/index.js.map +1 -1
  45. package/dist/graph/api.d.ts +82 -0
  46. package/dist/graph/api.d.ts.map +1 -0
  47. package/dist/graph/api.js +64 -0
  48. package/dist/graph/api.js.map +1 -0
  49. package/dist/graph/index.d.ts +24 -0
  50. package/dist/graph/index.d.ts.map +1 -0
  51. package/dist/graph/index.js +20 -0
  52. package/dist/graph/index.js.map +1 -0
  53. package/dist/graph/mutate/builder.d.ts +108 -0
  54. package/dist/graph/mutate/builder.d.ts.map +1 -0
  55. package/dist/graph/mutate/builder.js +127 -0
  56. package/dist/graph/mutate/builder.js.map +1 -0
  57. package/dist/graph/mutate/index.d.ts +5 -0
  58. package/dist/graph/mutate/index.d.ts.map +1 -0
  59. package/dist/graph/mutate/index.js +3 -0
  60. package/dist/graph/mutate/index.js.map +1 -0
  61. package/dist/graph/mutate/shorthands.d.ts +42 -0
  62. package/dist/graph/mutate/shorthands.d.ts.map +1 -0
  63. package/dist/graph/mutate/shorthands.js +65 -0
  64. package/dist/graph/mutate/shorthands.js.map +1 -0
  65. package/dist/graph/named.d.ts +38 -0
  66. package/dist/graph/named.d.ts.map +1 -0
  67. package/dist/graph/named.js +47 -0
  68. package/dist/graph/named.js.map +1 -0
  69. package/dist/graph/query/builder.d.ts +116 -0
  70. package/dist/graph/query/builder.d.ts.map +1 -0
  71. package/dist/graph/query/builder.js +136 -0
  72. package/dist/graph/query/builder.js.map +1 -0
  73. package/dist/graph/query/edge-ref.d.ts +13 -0
  74. package/dist/graph/query/edge-ref.d.ts.map +1 -0
  75. package/dist/graph/query/edge-ref.js +56 -0
  76. package/dist/graph/query/edge-ref.js.map +1 -0
  77. package/dist/graph/query/edges.d.ts +10 -0
  78. package/dist/graph/query/edges.d.ts.map +1 -0
  79. package/dist/graph/query/edges.js +11 -0
  80. package/dist/graph/query/edges.js.map +1 -0
  81. package/dist/graph/query/errors.d.ts +31 -0
  82. package/dist/graph/query/errors.d.ts.map +1 -0
  83. package/dist/graph/query/errors.js +28 -0
  84. package/dist/graph/query/errors.js.map +1 -0
  85. package/dist/graph/query/filter.d.ts +50 -0
  86. package/dist/graph/query/filter.d.ts.map +1 -0
  87. package/dist/graph/query/filter.js +32 -0
  88. package/dist/graph/query/filter.js.map +1 -0
  89. package/dist/graph/query/index.d.ts +12 -0
  90. package/dist/graph/query/index.d.ts.map +1 -0
  91. package/dist/graph/query/index.js +7 -0
  92. package/dist/graph/query/index.js.map +1 -0
  93. package/dist/graph/query/lower.d.ts +30 -0
  94. package/dist/graph/query/lower.d.ts.map +1 -0
  95. package/dist/graph/query/lower.js +171 -0
  96. package/dist/graph/query/lower.js.map +1 -0
  97. package/dist/graph/query/shorthands.d.ts +34 -0
  98. package/dist/graph/query/shorthands.d.ts.map +1 -0
  99. package/dist/graph/query/shorthands.js +71 -0
  100. package/dist/graph/query/shorthands.js.map +1 -0
  101. package/dist/graph/query/traverse.d.ts +59 -0
  102. package/dist/graph/query/traverse.d.ts.map +1 -0
  103. package/dist/graph/query/traverse.js +144 -0
  104. package/dist/graph/query/traverse.js.map +1 -0
  105. package/dist/graph/result/envelope.d.ts +37 -0
  106. package/dist/graph/result/envelope.d.ts.map +1 -0
  107. package/dist/graph/result/envelope.js +59 -0
  108. package/dist/graph/result/envelope.js.map +1 -0
  109. package/dist/graph/result/index.d.ts +6 -0
  110. package/dist/graph/result/index.d.ts.map +1 -0
  111. package/dist/graph/result/index.js +4 -0
  112. package/dist/graph/result/index.js.map +1 -0
  113. package/dist/graph/result/next.d.ts +16 -0
  114. package/dist/graph/result/next.d.ts.map +1 -0
  115. package/dist/graph/result/next.js +77 -0
  116. package/dist/graph/result/next.js.map +1 -0
  117. package/dist/graph/result/paged.d.ts +30 -0
  118. package/dist/graph/result/paged.d.ts.map +1 -0
  119. package/dist/graph/result/paged.js +41 -0
  120. package/dist/graph/result/paged.js.map +1 -0
  121. package/dist/graph/wire.d.ts +33 -0
  122. package/dist/graph/wire.d.ts.map +1 -0
  123. package/dist/graph/wire.js +16 -0
  124. package/dist/graph/wire.js.map +1 -0
  125. package/dist/index.d.ts +11 -3
  126. package/dist/index.d.ts.map +1 -1
  127. package/dist/index.js +10 -1
  128. package/dist/index.js.map +1 -1
  129. package/dist/schema/bound/binder.d.ts +49 -0
  130. package/dist/schema/bound/binder.d.ts.map +1 -0
  131. package/dist/schema/bound/binder.js +192 -0
  132. package/dist/schema/bound/binder.js.map +1 -0
  133. package/dist/schema/bound/bound-node.d.ts +89 -0
  134. package/dist/schema/bound/bound-node.d.ts.map +1 -0
  135. package/dist/schema/bound/bound-node.js +77 -0
  136. package/dist/schema/bound/bound-node.js.map +1 -0
  137. package/dist/schema/bound/index.d.ts +10 -0
  138. package/dist/schema/bound/index.d.ts.map +1 -0
  139. package/dist/schema/bound/index.js +5 -0
  140. package/dist/schema/bound/index.js.map +1 -0
  141. package/dist/schema/bound/view.d.ts +48 -0
  142. package/dist/schema/bound/view.d.ts.map +1 -0
  143. package/dist/schema/bound/view.js +90 -0
  144. package/dist/schema/bound/view.js.map +1 -0
  145. package/dist/schema/bound/write-props.d.ts +38 -0
  146. package/dist/schema/bound/write-props.d.ts.map +1 -0
  147. package/dist/schema/bound/write-props.js +2 -0
  148. package/dist/schema/bound/write-props.js.map +1 -0
  149. package/dist/schema/extract.d.ts +12 -0
  150. package/dist/schema/extract.d.ts.map +1 -1
  151. package/dist/schema/extract.js +16 -0
  152. package/dist/schema/extract.js.map +1 -1
  153. package/dist/schema/index.d.ts +7 -3
  154. package/dist/schema/index.d.ts.map +1 -1
  155. package/dist/schema/index.js +4 -2
  156. package/dist/schema/index.js.map +1 -1
  157. package/dist/schema/node-proxy.d.ts +9 -0
  158. package/dist/schema/node-proxy.d.ts.map +1 -1
  159. package/dist/schema/node-proxy.js +31 -1
  160. package/dist/schema/node-proxy.js.map +1 -1
  161. package/dist/{persistence → schema}/persistence.d.ts +1 -22
  162. package/dist/schema/persistence.d.ts.map +1 -0
  163. package/dist/schema/persistence.js +2 -0
  164. package/dist/schema/persistence.js.map +1 -0
  165. package/dist/schema/proxy-types.d.ts +28 -22
  166. package/dist/schema/proxy-types.d.ts.map +1 -1
  167. package/dist/schema/registry.d.ts +1 -2
  168. package/dist/schema/registry.d.ts.map +1 -1
  169. package/dist/schema/registry.js +1 -2
  170. package/dist/schema/registry.js.map +1 -1
  171. package/dist/session/bound.d.ts.map +1 -1
  172. package/dist/session/bound.js +15 -2
  173. package/dist/session/bound.js.map +1 -1
  174. package/dist/session/client-session.d.ts +1 -1
  175. package/dist/session/client-session.d.ts.map +1 -1
  176. package/dist/session/client-session.js +5 -5
  177. package/dist/session/client-session.js.map +1 -1
  178. package/dist/session/config.d.ts +8 -4
  179. package/dist/session/config.d.ts.map +1 -1
  180. package/dist/{delegation → session/delegation}/cache.d.ts +3 -4
  181. package/dist/session/delegation/cache.d.ts.map +1 -0
  182. package/dist/session/delegation/cache.js.map +1 -0
  183. package/dist/{delegation → session/delegation}/errors.d.ts +1 -1
  184. package/dist/session/delegation/errors.d.ts.map +1 -0
  185. package/dist/{delegation → session/delegation}/errors.js +1 -1
  186. package/dist/session/delegation/errors.js.map +1 -0
  187. package/dist/session/delegation/policy.d.ts.map +1 -0
  188. package/dist/{delegation → session/delegation}/policy.js +1 -1
  189. package/dist/session/delegation/policy.js.map +1 -0
  190. package/dist/session/delegation-mint.d.ts +13 -0
  191. package/dist/session/delegation-mint.d.ts.map +1 -0
  192. package/dist/session/delegation-mint.js +31 -0
  193. package/dist/session/delegation-mint.js.map +1 -0
  194. package/dist/session/errors/index.d.ts +2 -2
  195. package/dist/session/errors/index.d.ts.map +1 -1
  196. package/dist/session/errors/index.js +2 -2
  197. package/dist/session/errors/index.js.map +1 -1
  198. package/dist/session/helpers.js +2 -2
  199. package/dist/session/helpers.js.map +1 -1
  200. package/dist/session/index.d.ts +9 -1
  201. package/dist/session/index.d.ts.map +1 -1
  202. package/dist/session/index.js +6 -1
  203. package/dist/session/index.js.map +1 -1
  204. package/dist/{redirect → session/redirect}/errors.d.ts +1 -1
  205. package/dist/session/redirect/errors.d.ts.map +1 -0
  206. package/dist/{redirect → session/redirect}/errors.js +1 -1
  207. package/dist/session/redirect/errors.js.map +1 -0
  208. package/dist/session/redirect/policy.d.ts.map +1 -0
  209. package/dist/{redirect → session/redirect}/policy.js +1 -1
  210. package/dist/session/redirect/policy.js.map +1 -0
  211. package/dist/session/types.d.ts +13 -2
  212. package/dist/session/types.d.ts.map +1 -1
  213. package/dist/store/canonicalize.d.ts +44 -0
  214. package/dist/store/canonicalize.d.ts.map +1 -0
  215. package/dist/store/canonicalize.js +0 -0
  216. package/dist/store/canonicalize.js.map +1 -0
  217. package/dist/store/entities.d.ts +81 -0
  218. package/dist/store/entities.d.ts.map +1 -0
  219. package/dist/store/entities.js +202 -0
  220. package/dist/store/entities.js.map +1 -0
  221. package/dist/store/index.d.ts +26 -0
  222. package/dist/store/index.d.ts.map +1 -0
  223. package/dist/store/index.js +19 -0
  224. package/dist/store/index.js.map +1 -0
  225. package/dist/store/invalidate.d.ts +66 -0
  226. package/dist/store/invalidate.d.ts.map +1 -0
  227. package/dist/store/invalidate.js +117 -0
  228. package/dist/store/invalidate.js.map +1 -0
  229. package/dist/store/memory.d.ts +97 -0
  230. package/dist/store/memory.d.ts.map +1 -0
  231. package/dist/store/memory.js +790 -0
  232. package/dist/store/memory.js.map +1 -0
  233. package/dist/store/overlay.d.ts +118 -0
  234. package/dist/store/overlay.d.ts.map +1 -0
  235. package/dist/store/overlay.js +237 -0
  236. package/dist/store/overlay.js.map +1 -0
  237. package/dist/store/schedule.d.ts +31 -0
  238. package/dist/store/schedule.d.ts.map +1 -0
  239. package/dist/store/schedule.js +76 -0
  240. package/dist/store/schedule.js.map +1 -0
  241. package/dist/store/shapes.d.ts +92 -0
  242. package/dist/store/shapes.d.ts.map +1 -0
  243. package/dist/store/shapes.js +369 -0
  244. package/dist/store/shapes.js.map +1 -0
  245. package/dist/store/types.d.ts +168 -0
  246. package/dist/store/types.d.ts.map +1 -0
  247. package/dist/store/types.js +7 -0
  248. package/dist/store/types.js.map +1 -0
  249. package/dist/transport/fetch.d.ts +1 -1
  250. package/dist/transport/fetch.js +1 -1
  251. package/package.json +17 -33
  252. package/dist/delegation/cache.d.ts.map +0 -1
  253. package/dist/delegation/cache.js.map +0 -1
  254. package/dist/delegation/errors.d.ts.map +0 -1
  255. package/dist/delegation/errors.js.map +0 -1
  256. package/dist/delegation/index.d.ts +0 -6
  257. package/dist/delegation/index.d.ts.map +0 -1
  258. package/dist/delegation/index.js +0 -4
  259. package/dist/delegation/index.js.map +0 -1
  260. package/dist/delegation/policy.d.ts.map +0 -1
  261. package/dist/delegation/policy.js.map +0 -1
  262. package/dist/persistence/index.d.ts +0 -3
  263. package/dist/persistence/index.d.ts.map +0 -1
  264. package/dist/persistence/index.js +0 -2
  265. package/dist/persistence/index.js.map +0 -1
  266. package/dist/persistence/persistence.d.ts.map +0 -1
  267. package/dist/persistence/persistence.js +0 -32
  268. package/dist/persistence/persistence.js.map +0 -1
  269. package/dist/redirect/errors.d.ts.map +0 -1
  270. package/dist/redirect/errors.js.map +0 -1
  271. package/dist/redirect/index.d.ts +0 -4
  272. package/dist/redirect/index.d.ts.map +0 -1
  273. package/dist/redirect/index.js +0 -3
  274. package/dist/redirect/index.js.map +0 -1
  275. package/dist/redirect/policy.d.ts.map +0 -1
  276. package/dist/redirect/policy.js.map +0 -1
  277. /package/dist/{delegation → session/delegation}/cache.js +0 -0
  278. /package/dist/{delegation → session/delegation}/policy.d.ts +0 -0
  279. /package/dist/{redirect → session/redirect}/policy.d.ts +0 -0
@@ -0,0 +1,89 @@
1
+ import type { AbsolutePath, Node, NodeId } from '@astrale-os/kernel-core';
2
+ import type { ClassPath } from '@astrale-os/kernel-core/domain';
3
+ import type { ExtractFullProperties, Schema } from '@astrale-os/kernel-dsl';
4
+ import type { DefOf, InstanceDispatch, TypeNames } from '../proxy-types';
5
+ import type { BindCtx, NodeBinder } from './binder';
6
+ /** Inert value for pure `core/` functions — no session, no methods. */
7
+ export interface BoundSnapshot<D> {
8
+ readonly id: NodeId;
9
+ readonly path: AbsolutePath;
10
+ readonly typeName: string;
11
+ readonly props: ExtractFullProperties<D>;
12
+ readonly raw: Node;
13
+ }
14
+ /**
15
+ * A client capability wrapping a PURE kernel-core `Node` (`raw`, never mutated).
16
+ * A snapshot, never live — `refresh()` mints a new one.
17
+ *
18
+ * `D` is the def (class or interface) it was bound as; `S` is the schema's type
19
+ * universe, needed by `is`/`out`/`in`. `S` defaults so SDK/docs can say `BoundNode<D>`.
20
+ */
21
+ export interface BoundNode<D, S extends Schema = Schema> {
22
+ readonly id: NodeId;
23
+ readonly path: AbsolutePath;
24
+ readonly class: ClassPath;
25
+ /** The schema key this node was bound as — class OR interface name. */
26
+ readonly typeName: string;
27
+ /** SHORT-keyed, schema-typed. Missing required prop = typed-undefined + `console.warn`. */
28
+ readonly props: ExtractFullProperties<D>;
29
+ /** The untouched pure value. Qualified wire prop keys live here. */
30
+ readonly raw: Node;
31
+ /** Typed instance dispatch on this node — address-only, no read. */
32
+ readonly call: InstanceDispatch<D>;
33
+ /** Typed partial prop update through the standard `updateNode` mutate shorthand. */
34
+ update(props: Partial<ExtractFullProperties<D>>): Promise<void>;
35
+ is<T extends TypeNames<S>>(type: T): this is BoundNode<DefOf<S, T>, S>;
36
+ /** Own-schema edge name → endpoint + cardinality typed. */
37
+ out<E extends EdgeNames<S>>(edge: E): Promise<EndpointsOf<S, E, 'to'>>;
38
+ /** Foreign/kernel edge — `K.$.c('extends_with').path.class`. Honest widening. */
39
+ out(edge: ClassPath): Promise<AnyBoundNode<S>[]>;
40
+ in<E extends EdgeNames<S>>(edge: E): Promise<EndpointsOf<S, E, 'from'>>;
41
+ in(edge: ClassPath): Promise<AnyBoundNode<S>[]>;
42
+ snapshot(): BoundSnapshot<D>;
43
+ /** Explicit re-fetch → NEW BoundNode; this one is immutable. */
44
+ refresh(): Promise<BoundNode<D, S>>;
45
+ }
46
+ /**
47
+ * ONE concrete classless type — deliberately NOT the all-classes union.
48
+ * `is()` is the only door back into typed land.
49
+ */
50
+ export interface AnyBoundNode<S extends Schema = Schema> {
51
+ readonly id: NodeId;
52
+ readonly path: AbsolutePath;
53
+ readonly class: ClassPath;
54
+ readonly typeName: string;
55
+ readonly props: Readonly<Record<string, unknown>>;
56
+ readonly raw: Node;
57
+ is<T extends TypeNames<S>>(type: T): this is BoundNode<DefOf<S, T>, S>;
58
+ }
59
+ /** Edge-class keys of S — what the typed `out`/`in` overload accepts. */
60
+ export type EdgeNames<S extends Schema> = {
61
+ [K in keyof S['classes'] & string]: S['classes'][K] extends {
62
+ readonly __kind: 'edge-class';
63
+ } ? K : never;
64
+ }[keyof S['classes'] & string];
65
+ type BindEndpoint<S extends Schema, T> = T extends S['classes'][keyof S['classes']] ? BoundNode<T, S> : AnyBoundNode<S>;
66
+ /**
67
+ * Result of typed traversal. `Side`='to' for `out()`, 'from' for `in()`.
68
+ * `'1'`/`'0..1'` cardinality → single|null (masking outranks cardinality).
69
+ */
70
+ export type EndpointsOf<S extends Schema, E extends EdgeNames<S>, Side extends 'from' | 'to'> = S['classes'][E] extends {
71
+ readonly [K in Side]: {
72
+ readonly types: readonly (infer T)[];
73
+ readonly cardinality?: infer C;
74
+ };
75
+ } ? C extends '1' | '0..1' ? BindEndpoint<S, T> | null : BindEndpoint<S, T>[] : AnyBoundNode<S>[];
76
+ /** Everything the binder resolves once and hands to a fresh BoundNode. */
77
+ export interface BindEntry {
78
+ readonly typeName: string;
79
+ readonly kind: 'class' | 'interface';
80
+ readonly methods: ReadonlySet<string>;
81
+ readonly props: Record<string, unknown>;
82
+ }
83
+ /**
84
+ * Mint a BoundNode / AnyBoundNode over a pure Node. One impl serves both — the
85
+ * static type is the narrowing; the runtime is always honest by concrete class.
86
+ */
87
+ export declare function createBoundNode<D, S extends Schema>(binder: NodeBinder<S>, entry: BindEntry, node: Node, ctx: BindCtx): BoundNode<D, S>;
88
+ export {};
89
+ //# sourceMappingURL=bound-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bound-node.d.ts","sourceRoot":"","sources":["../../../src/schema/bound/bound-node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { resolveNeighbors } from '../../graph/query/traverse';
2
+ import { createInstanceProxy } from '../node-proxy';
3
+ const NO_CALLER = () => Promise.reject(new Error('BoundNode.call is unavailable — this view has no dispatch capability'));
4
+ const noRead = () => {
5
+ throw new Error('BoundNode traversal/refresh is unavailable — this view has no read capability');
6
+ };
7
+ const noWrite = () => {
8
+ throw new Error('BoundNode.update is unavailable — this view has no write capability');
9
+ };
10
+ /** The address a node dispatches / re-reads by: `@id` when identified, else its path. */
11
+ function nodeRef(node) {
12
+ return node.id ? `@${node.id}` : node.path.raw;
13
+ }
14
+ /**
15
+ * Mint a BoundNode / AnyBoundNode over a pure Node. One impl serves both — the
16
+ * static type is the narrowing; the runtime is always honest by concrete class.
17
+ */
18
+ export function createBoundNode(binder, entry, node, ctx) {
19
+ const props = Object.freeze(entry.props);
20
+ let callProxy;
21
+ const traverse = async (edge, direction) => {
22
+ if (ctx.read === null)
23
+ return noRead();
24
+ const edgeClass = typeof edge === 'string' ? binder.edgeClassPath(edge).raw : edge.raw;
25
+ const found = await resolveNeighbors(node, edgeClass, direction, {
26
+ read: ctx.read,
27
+ envelope: ctx.envelope,
28
+ gathered: ctx.gathered,
29
+ });
30
+ const bound = found.map((n) => binder.bindEndpoint(n, ctx));
31
+ if (typeof edge !== 'string')
32
+ return bound;
33
+ return binder.isSingle(edge, direction) ? (bound[0] ?? null) : bound;
34
+ };
35
+ const self = {
36
+ id: node.id,
37
+ path: node.path,
38
+ class: node.class,
39
+ typeName: entry.typeName,
40
+ props: props,
41
+ raw: node,
42
+ get call() {
43
+ return (callProxy ??= createInstanceProxy(ctx.caller ?? NO_CALLER, nodeRef(node), entry.methods, entry.kind === 'class' ? entry.typeName : undefined));
44
+ },
45
+ async update(updateProps) {
46
+ if (!ctx.write)
47
+ return noWrite();
48
+ const { write } = binder.resolveWriteProps(node.class, updateProps);
49
+ await ctx.write.updateNode(node.class, nodeRef(node), write);
50
+ },
51
+ is(type) {
52
+ return binder.implementsType(node.class, type);
53
+ },
54
+ out: ((edge) => traverse(edge, 'out')),
55
+ in: ((edge) => traverse(edge, 'in')),
56
+ snapshot() {
57
+ return {
58
+ id: node.id,
59
+ path: node.path,
60
+ typeName: entry.typeName,
61
+ props: props,
62
+ raw: node,
63
+ };
64
+ },
65
+ async refresh() {
66
+ if (ctx.read === null)
67
+ return noRead();
68
+ const fresh = await ctx.read.get(nodeRef(node));
69
+ if (fresh === null) {
70
+ throw new Error(`refresh() failed — ${nodeRef(node)} is no longer readable`);
71
+ }
72
+ return binder.bind(entry.typeName, fresh, ctx);
73
+ },
74
+ };
75
+ return self;
76
+ }
77
+ //# sourceMappingURL=bound-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bound-node.js","sourceRoot":"","sources":["../../../src/schema/bound/bound-node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export { createBoundNode } from './bound-node';
2
+ export type { AnyBoundNode, BoundNode, BoundSnapshot, EdgeNames, EndpointsOf } from './bound-node';
3
+ export { BindTypeMismatchError, createNodeBinder } from './binder';
4
+ export type { BindCtx, BindOptions, NodeBinder } from './binder';
5
+ export { resolveNeighbors } from '../../graph/query/traverse';
6
+ export { createSchemaBoundView, defaultCaller, normalizeRef } from './view';
7
+ export type { CreateSchemaBoundViewOpts, NodeRefInput, SchemaBoundView } from './view';
8
+ export type { DefOf, TypeNames } from '../proxy-types';
9
+ export type { CreatableClassNames, CreateProps } from './write-props';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schema/bound/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAClG,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAClE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAC3E,YAAY,EAAE,yBAAyB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AACtF,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACtD,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,5 @@
1
+ export { createBoundNode } from './bound-node';
2
+ export { BindTypeMismatchError, createNodeBinder } from './binder';
3
+ export { resolveNeighbors } from '../../graph/query/traverse';
4
+ export { createSchemaBoundView, defaultCaller, normalizeRef } from './view';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schema/bound/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA"}
@@ -0,0 +1,48 @@
1
+ import type { CredentialInput, Node, PathLike } from '@astrale-os/kernel-core';
2
+ import type { Schema } from '@astrale-os/kernel-dsl';
3
+ import type { FnMap } from '../../client/fn-map';
4
+ import type { BoundClientSessionView } from '../../session/types';
5
+ import type { ClassNames, DefOf, InstanceDispatch, ProxyCaller, StaticDispatch, TypeNames } from '../proxy-types';
6
+ import type { BindOptions } from './binder';
7
+ import type { AnyBoundNode, BoundNode } from './bound-node';
8
+ import type { CreatableClassNames, CreateProps } from './write-props';
9
+ /** `@id`, a tree path, a typed Path — or a bare node id (interpreted as `@<id>`). */
10
+ export type NodeRefInput = PathLike;
11
+ /**
12
+ * The callable schema-bound surface. The BARE CALL is dispatch:
13
+ * view(type) → statics (concrete classes only — wire needs a class path)
14
+ * view(type, ref) → instance methods, read-free (interfaces allowed — wire is `@id::method`)
15
+ */
16
+ export interface SchemaBoundView<S extends Schema, M extends FnMap = FnMap> {
17
+ <T extends ClassNames<S>>(type: T): StaticDispatch<DefOf<S, T>>;
18
+ <T extends TypeNames<S>>(type: T, ref: NodeRefInput): InstanceDispatch<DefOf<S, T>>;
19
+ /** Typed read. ALWAYS two-arg — `raw.get` is the untyped read shorthand. */
20
+ node<T extends TypeNames<S>>(type: T, ref: NodeRefInput, opts?: BindOptions): Promise<BoundNode<DefOf<S, T>, S> | null>;
21
+ /** Batched multi-ref read — ONE `function.get`, order-preserving, `null` per miss. */
22
+ node<T extends TypeNames<S>>(type: T, refs: readonly NodeRefInput[], opts?: BindOptions): Promise<(BoundNode<DefOf<S, T>, S> | null)[]>;
23
+ /** Typed create for concrete node classes; returns a bound node without an extra read. */
24
+ create<T extends CreatableClassNames<S>>(type: T, at: NodeRefInput, props: CreateProps<DefOf<S, T>>): Promise<BoundNode<DefOf<S, T>, S>>;
25
+ /** Adopt a Node in hand — zero reads. Class mismatch throws `BindTypeMismatchError`. */
26
+ bind<T extends TypeNames<S>>(type: T, node: Node, opts?: BindOptions): BoundNode<DefOf<S, T>, S>;
27
+ /** Classless adoption; `.is()` to upgrade. */
28
+ bindAny(node: Node): AnyBoundNode<S>;
29
+ /** The untyped `BoundClientSessionView` — COMPOSED, not extended. No name collisions. */
30
+ readonly raw: BoundClientSessionView<M>;
31
+ readonly schema: S;
32
+ /** Fresh view, one principal, welded. Never mutates. */
33
+ as(credential: CredentialInput | (() => CredentialInput)): SchemaBoundView<S, M>;
34
+ }
35
+ export type CreateSchemaBoundViewOpts<M extends FnMap> = {
36
+ /** SDK injection seam for audience-aware routing. Defaults to dispatch through the view. */
37
+ makeDispatch?: (raw: BoundClientSessionView<M>) => ProxyCaller;
38
+ };
39
+ /** A `ProxyCaller` that dispatches through a bound view's `call`. */
40
+ export declare function defaultCaller<M extends FnMap>(view: BoundClientSessionView<M>): ProxyCaller;
41
+ /** `@id`/tree-path/`:member` verbatim; a typed Path → its raw; anything else → `@<id>`. */
42
+ export declare function normalizeRef(ref: NodeRefInput): string;
43
+ /**
44
+ * Assemble the callable `SchemaBoundView` over a bound session view. The bare
45
+ * call is dispatch; `node/bind/bindAny/raw/schema/as` are named members.
46
+ */
47
+ export declare function createSchemaBoundView<S extends Schema, M extends FnMap>(view: BoundClientSessionView<M>, schema: S, opts?: CreateSchemaBoundViewOpts<M>): SchemaBoundView<S, M>;
48
+ //# sourceMappingURL=view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/schema/bound/view.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ import { AbsolutePath, rawOf } from '@astrale-os/kernel-core';
2
+ import { createClassProxy } from '../class-proxy';
3
+ import { extractMethodsByType } from '../extract';
4
+ import { createInstanceProxy } from '../node-proxy';
5
+ import { createNodeBinder } from './binder';
6
+ /** A `ProxyCaller` that dispatches through a bound view's `call`. */
7
+ export function defaultCaller(view) {
8
+ return (method, params, credential, callOpts) => {
9
+ const opts = {};
10
+ if (callOpts?.timeout !== undefined)
11
+ opts.timeout = callOpts.timeout;
12
+ if (callOpts?.signal !== undefined)
13
+ opts.signal = callOpts.signal;
14
+ if (callOpts?.class !== undefined)
15
+ opts.class = callOpts.class;
16
+ if (callOpts?.correlationId !== undefined)
17
+ opts.correlationId = callOpts.correlationId;
18
+ if (callOpts?.url !== undefined)
19
+ opts.url = callOpts.url;
20
+ if (credential !== undefined)
21
+ opts.credential = credential;
22
+ return view.call(method, params, opts);
23
+ };
24
+ }
25
+ /** `@id`/tree-path/`:member` verbatim; a typed Path → its raw; anything else → `@<id>`. */
26
+ export function normalizeRef(ref) {
27
+ if (typeof ref !== 'string')
28
+ return rawOf(ref);
29
+ return ref.startsWith('/') || ref.startsWith('@') || ref.startsWith(':') ? ref : `@${ref}`;
30
+ }
31
+ /**
32
+ * Assemble the callable `SchemaBoundView` over a bound session view. The bare
33
+ * call is dispatch; `node/bind/bindAny/raw/schema/as` are named members.
34
+ */
35
+ export function createSchemaBoundView(view, schema, opts) {
36
+ const caller = opts?.makeDispatch?.(view) ?? defaultCaller(view);
37
+ const binder = createNodeBinder(schema);
38
+ const methodsByType = extractMethodsByType(schema);
39
+ const hasWrite = typeof view.createNode === 'function' && typeof view.updateNode === 'function';
40
+ const ctx = { caller, read: view, write: hasWrite ? view : null };
41
+ const methodsOf = (type) => methodsByType.get(type)?.methods;
42
+ const classHintOf = (type) => methodsByType.get(type)?.kind === 'class' ? type : undefined;
43
+ const dispatch = (type, ref) => ref === undefined
44
+ ? createClassProxy(caller, schema.domain, type, asSet(methodsOf(type)))
45
+ : createInstanceProxy(caller, normalizeRef(ref), methodsOf(type), classHintOf(type));
46
+ async function node(type, refOrRefs, bindOpts) {
47
+ if (Array.isArray(refOrRefs)) {
48
+ const refs = refOrRefs.map(normalizeRef);
49
+ const { graph } = await view.query((q) => q.from(...refs));
50
+ return refs.map((ref) => {
51
+ const found = graph.nodes.get(ref);
52
+ return found ? binder.bind(type, found, ctx, bindOpts) : null;
53
+ });
54
+ }
55
+ const found = await view.get(normalizeRef(refOrRefs));
56
+ return found ? binder.bind(type, found, ctx, bindOpts) : null;
57
+ }
58
+ async function create(type, at, createProps) {
59
+ if (!ctx.write) {
60
+ throw new Error('SchemaBoundView.create is unavailable — this view has no write capability');
61
+ }
62
+ const classPath = binder.nodeClassPath(type);
63
+ const props = binder.resolveWriteProps(classPath, createProps);
64
+ const rawAt = rawOf(at);
65
+ const path = AbsolutePath.parse(rawAt);
66
+ const id = await ctx.write.createNode(classPath, at, props.write);
67
+ const node = {
68
+ id: id,
69
+ class: classPath,
70
+ path,
71
+ props: props.wire,
72
+ };
73
+ return binder.bind(type, node, ctx);
74
+ }
75
+ const members = {
76
+ node,
77
+ create,
78
+ bind: (type, n, bindOpts) => binder.bind(type, n, ctx, bindOpts),
79
+ bindAny: (n) => binder.bindAny(n, ctx),
80
+ raw: view,
81
+ schema,
82
+ as: (credential) => createSchemaBoundView(view.as(credential), schema, opts),
83
+ };
84
+ return Object.assign(dispatch, members);
85
+ }
86
+ // `createClassProxy` still takes a mutable `Set`; the allow-list is read-only here.
87
+ function asSet(methods) {
88
+ return methods ? new Set(methods) : undefined;
89
+ }
90
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/schema/bound/view.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { z } from '@astrale-os/kernel-core';
2
+ import type { AnyDef, ExtractInherits, ExtractProperties, PropertyDef, Schema } from '@astrale-os/kernel-dsl';
3
+ /** Concrete node classes that can be lowered through `createNode`. */
4
+ export type CreatableClassNames<S extends Schema> = {
5
+ [K in keyof S['classes'] & string]: S['classes'][K] extends {
6
+ readonly __kind: 'edge-class';
7
+ } ? never : K;
8
+ }[keyof S['classes'] & string];
9
+ type Simplify<T> = {
10
+ [K in keyof T]: T[K];
11
+ };
12
+ type PropSchema<P> = P extends PropertyDef<infer S> ? S : P;
13
+ type PropValue<P> = PropSchema<P> extends z.ZodType<infer O> ? O : never;
14
+ type AnyZod = z.ZodType;
15
+ type IsOptionalSchema<S> = S extends z.ZodOptional<AnyZod> | z.ZodDefault<AnyZod> ? true : S extends z.ZodNullable<infer Inner extends AnyZod> ? IsOptionalSchema<Inner> : false;
16
+ type IsOptionalProp<P> = IsOptionalSchema<PropSchema<P>>;
17
+ type RequiredPropKeys<P> = {
18
+ [K in keyof P]-?: IsOptionalProp<P[K]> extends true ? never : K;
19
+ }[keyof P];
20
+ type OptionalPropKeys<P> = {
21
+ [K in keyof P]-?: IsOptionalProp<P[K]> extends true ? K : never;
22
+ }[keyof P];
23
+ type OwnCreateProps<D> = Simplify<{
24
+ [K in RequiredPropKeys<ExtractProperties<D>>]: PropValue<ExtractProperties<D>[K]>;
25
+ } & {
26
+ [K in OptionalPropKeys<ExtractProperties<D>>]?: PropValue<ExtractProperties<D>[K]>;
27
+ }>;
28
+ type CollectAncestorCreateProps<T, Acc = unknown> = T extends readonly [
29
+ infer Head extends AnyDef,
30
+ ...infer Tail extends readonly AnyDef[]
31
+ ] ? CollectAncestorCreateProps<[...ExtractInherits<Head>, ...Tail], Acc & OwnCreateProps<Head>> : Acc;
32
+ /**
33
+ * Create-time props for a concrete class: required Zod props required,
34
+ * `z.optional()`/`z.default()` props optional, inherited props included.
35
+ */
36
+ export type CreateProps<D> = D extends AnyDef ? Simplify<Omit<CollectAncestorCreateProps<ExtractInherits<D>>, keyof OwnCreateProps<D>> & OwnCreateProps<D>> : never;
37
+ export {};
38
+ //# sourceMappingURL=write-props.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-props.d.ts","sourceRoot":"","sources":["../../../src/schema/bound/write-props.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=write-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-props.js","sourceRoot":"","sources":["../../../src/schema/bound/write-props.ts"],"names":[],"mappings":""}
@@ -6,4 +6,16 @@ import type { Schema } from '@astrale-os/kernel-dsl';
6
6
  * that appear in this set produce call thunks on the proxy.
7
7
  */
8
8
  export declare function extractMethodsByClass(schema: Schema): Map<string, Set<string>>;
9
+ /** Per-type method allow-list, keyed by class OR interface name. */
10
+ export interface TypeMethods {
11
+ readonly kind: 'class' | 'interface';
12
+ readonly methods: ReadonlySet<string>;
13
+ }
14
+ /**
15
+ * Method names per type name — classes AND interfaces (the def-keyed allow-list
16
+ * for interface dispatch, `is()`, and `BoundNode.call`). Interfaces are inserted
17
+ * FIRST, classes second, so a homonym class shadows its interface — matching
18
+ * {@link DefOf}'s class-first resolution.
19
+ */
20
+ export declare function extractMethodsByType(schema: Schema): Map<string, TypeMethods>;
9
21
  //# sourceMappingURL=extract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/schema/extract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAIpD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAS9E"}
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/schema/extract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAIpD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAS9E;AAED,oEAAoE;AACpE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAA;IACpC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CACtC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAW7E"}
@@ -13,4 +13,20 @@ export function extractMethodsByClass(schema) {
13
13
  }
14
14
  return methodsByClass;
15
15
  }
16
+ /**
17
+ * Method names per type name — classes AND interfaces (the def-keyed allow-list
18
+ * for interface dispatch, `is()`, and `BoundNode.call`). Interfaces are inserted
19
+ * FIRST, classes second, so a homonym class shadows its interface — matching
20
+ * {@link DefOf}'s class-first resolution.
21
+ */
22
+ export function extractMethodsByType(schema) {
23
+ const byType = new Map();
24
+ for (const [name, def] of Object.entries(schema.interfaces)) {
25
+ byType.set(name, { kind: 'interface', methods: new Set(Object.keys(resolveAllMethods(def))) });
26
+ }
27
+ for (const [name, def] of Object.entries(schema.classes)) {
28
+ byType.set(name, { kind: 'class', methods: new Set(Object.keys(resolveAllMethods(def))) });
29
+ }
30
+ return byType;
31
+ }
16
32
  //# sourceMappingURL=extract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/schema/extract.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE1D;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAA;IAErD,KAAK,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9D,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;QACtC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO,cAAc,CAAA;AACvB,CAAC"}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/schema/extract.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE1D;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAA;IAErD,KAAK,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9D,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;QACtC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO,cAAc,CAAA;AACvB,CAAC;AAQD;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAA;IAE7C,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5D,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAChG,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC5F,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -1,11 +1,15 @@
1
1
  export { SCHEMA_REGISTRY_BRAND, SchemaRegistry } from './registry';
2
2
  export { createSchemaClient } from './typed-client';
3
3
  export { createClassProxy } from './class-proxy';
4
- export { createNodeProxy } from './node-proxy';
4
+ export { createNodeProxy, createInstanceProxy } from './node-proxy';
5
5
  export { resolveMethodKey } from './resolve';
6
6
  export { resolveCallArgs } from './call-args';
7
- export { extractMethodsByClass } from './extract';
7
+ export { extractMethodsByClass, extractMethodsByType } from './extract';
8
+ export type { TypeMethods } from './extract';
8
9
  export { toFunctionSchemas } from './from-entries';
9
10
  export type { FunctionSchema } from './types';
10
- export type { ClassNames, ClassProxy, NodeProxy, ProxyCallOptions, ProxyCaller, SchemaTypedClient, } from './proxy-types';
11
+ export type { SchemaPersistence } from './persistence';
12
+ export type { ClassNames, ClassProxy, DefOf, InstanceDispatch, NodeProxy, ProxyCallOptions, ProxyCaller, SchemaTypedClient, StaticDispatch, TypeNames, } from './proxy-types';
13
+ export { BindTypeMismatchError, createBoundNode, createNodeBinder, createSchemaBoundView, defaultCaller, resolveNeighbors, normalizeRef, } from './bound';
14
+ export type { AnyBoundNode, BindCtx, BindOptions, BoundNode, BoundSnapshot, CreatableClassNames, CreateProps, CreateSchemaBoundViewOpts, EdgeNames, EndpointsOf, NodeBinder, NodeRefInput, SchemaBoundView, } from './bound';
11
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,YAAY,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,iBAAiB,GAClB,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AACvE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACtD,YAAY,EACV,UAAU,EACV,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,SAAS,GACV,MAAM,eAAe,CAAA;AAGtB,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,YAAY,GACb,MAAM,SAAS,CAAA;AAChB,YAAY,EACV,YAAY,EACZ,OAAO,EACP,WAAW,EACX,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,yBAAyB,EACzB,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,eAAe,GAChB,MAAM,SAAS,CAAA"}
@@ -1,9 +1,11 @@
1
1
  export { SCHEMA_REGISTRY_BRAND, SchemaRegistry } from './registry';
2
2
  export { createSchemaClient } from './typed-client';
3
3
  export { createClassProxy } from './class-proxy';
4
- export { createNodeProxy } from './node-proxy';
4
+ export { createNodeProxy, createInstanceProxy } from './node-proxy';
5
5
  export { resolveMethodKey } from './resolve';
6
6
  export { resolveCallArgs } from './call-args';
7
- export { extractMethodsByClass } from './extract';
7
+ export { extractMethodsByClass, extractMethodsByType } from './extract';
8
8
  export { toFunctionSchemas } from './from-entries';
9
+ // ─── Schema-bound surface (SchemaBoundView / BoundNode / binder) ────────────
10
+ export { BindTypeMismatchError, createBoundNode, createNodeBinder, createSchemaBoundView, defaultCaller, resolveNeighbors, normalizeRef, } from './bound';
9
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAgBlD,+EAA+E;AAC/E,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,YAAY,GACb,MAAM,SAAS,CAAA"}
@@ -6,4 +6,13 @@ import type { ProxyCaller } from './proxy-types';
6
6
  * on the class produce call thunks. Everything else returns undefined.
7
7
  */
8
8
  export declare function createNodeProxy(caller: ProxyCaller, className: string, nodeId: string, knownMethods?: Set<string>): unknown;
9
+ /**
10
+ * Create a typed Proxy for instance methods addressed by a resolved ref raw
11
+ * (`@id`, a tree path, or any parseable `Path`). The wire address is
12
+ * `<selfRaw>::method` — class-free, so interface-keyed dispatch is legal.
13
+ *
14
+ * `classHint` is threaded onto the call opts only when known (concrete class);
15
+ * interface dispatch omits it, exactly as the wire allows.
16
+ */
17
+ export declare function createInstanceProxy(caller: ProxyCaller, selfRaw: string, knownMethods?: ReadonlySet<string>, classHint?: string): unknown;
9
18
  //# sourceMappingURL=node-proxy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-proxy.d.ts","sourceRoot":"","sources":["../../src/schema/node-proxy.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAoB,WAAW,EAAE,MAAM,eAAe,CAAA;AAIlE;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,OAAO,CAsBT"}
1
+ {"version":3,"file":"node-proxy.d.ts","sourceRoot":"","sources":["../../src/schema/node-proxy.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAoB,WAAW,EAAE,MAAM,eAAe,CAAA;AAIlE;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,OAAO,CAsBT;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,EAClC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAsBT"}
@@ -1,4 +1,4 @@
1
- import { IdPath } from '@astrale-os/kernel-core';
1
+ import { IdPath, toPath } from '@astrale-os/kernel-core';
2
2
  import { InstanceMethodPath } from '@astrale-os/kernel-core/domain';
3
3
  import { resolveCallArgs } from './call-args';
4
4
  /**
@@ -29,4 +29,34 @@ export function createNodeProxy(caller, className, nodeId, knownMethods) {
29
29
  },
30
30
  });
31
31
  }
32
+ /**
33
+ * Create a typed Proxy for instance methods addressed by a resolved ref raw
34
+ * (`@id`, a tree path, or any parseable `Path`). The wire address is
35
+ * `<selfRaw>::method` — class-free, so interface-keyed dispatch is legal.
36
+ *
37
+ * `classHint` is threaded onto the call opts only when known (concrete class);
38
+ * interface dispatch omits it, exactly as the wire allows.
39
+ */
40
+ export function createInstanceProxy(caller, selfRaw, knownMethods, classHint) {
41
+ const source = toPath(selfRaw);
42
+ return new Proxy(Object.create(null), {
43
+ get(_target, prop) {
44
+ if (typeof prop !== 'string')
45
+ return undefined;
46
+ if (knownMethods && !knownMethods.has(prop))
47
+ return undefined;
48
+ return (paramsOrOpts, maybeOpts) => {
49
+ const wirePath = InstanceMethodPath.from(source, prop).raw;
50
+ const [params, opts] = resolveCallArgs(paramsOrOpts, maybeOpts);
51
+ return caller(wirePath, params, opts?.credential, {
52
+ timeout: opts?.timeout,
53
+ signal: opts?.signal,
54
+ ...(classHint !== undefined ? { class: classHint } : {}),
55
+ correlationId: opts?.correlationId,
56
+ url: opts?.url,
57
+ });
58
+ };
59
+ },
60
+ });
61
+ }
32
62
  //# sourceMappingURL=node-proxy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-proxy.js","sourceRoot":"","sources":["../../src/schema/node-proxy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAInE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAmB,EACnB,SAAiB,EACjB,MAAc,EACd,YAA0B;IAE1B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAgB,CAAC,CAAA;IAE5C,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACpC,GAAG,CAAC,OAAO,EAAE,IAAI;YACf,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAA;YAC9C,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAA;YAE7D,OAAO,CAAC,YAAsB,EAAE,SAA4B,EAAE,EAAE;gBAC9D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,CAAA;gBAC1D,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,eAAe,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;gBAE/D,OAAO,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;oBAChD,OAAO,EAAE,IAAI,EAAE,OAAO;oBACtB,MAAM,EAAE,IAAI,EAAE,MAAM;oBACpB,KAAK,EAAE,SAAS;oBAChB,aAAa,EAAE,IAAI,EAAE,aAAa;oBAClC,GAAG,EAAE,IAAI,EAAE,GAAG;iBACf,CAAC,CAAA;YACJ,CAAC,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"node-proxy.js","sourceRoot":"","sources":["../../src/schema/node-proxy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAInE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAmB,EACnB,SAAiB,EACjB,MAAc,EACd,YAA0B;IAE1B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAgB,CAAC,CAAA;IAE5C,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACpC,GAAG,CAAC,OAAO,EAAE,IAAI;YACf,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAA;YAC9C,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAA;YAE7D,OAAO,CAAC,YAAsB,EAAE,SAA4B,EAAE,EAAE;gBAC9D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,CAAA;gBAC1D,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,eAAe,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;gBAE/D,OAAO,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;oBAChD,OAAO,EAAE,IAAI,EAAE,OAAO;oBACtB,MAAM,EAAE,IAAI,EAAE,MAAM;oBACpB,KAAK,EAAE,SAAS;oBAChB,aAAa,EAAE,IAAI,EAAE,aAAa;oBAClC,GAAG,EAAE,IAAI,EAAE,GAAG;iBACf,CAAC,CAAA;YACJ,CAAC,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAmB,EACnB,OAAe,EACf,YAAkC,EAClC,SAAkB;IAElB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAE9B,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACpC,GAAG,CAAC,OAAO,EAAE,IAAI;YACf,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAA;YAC9C,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAA;YAE7D,OAAO,CAAC,YAAsB,EAAE,SAA4B,EAAE,EAAE;gBAC9D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,CAAA;gBAC1D,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,eAAe,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;gBAE/D,OAAO,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;oBAChD,OAAO,EAAE,IAAI,EAAE,OAAO;oBACtB,MAAM,EAAE,IAAI,EAAE,MAAM;oBACpB,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxD,aAAa,EAAE,IAAI,EAAE,aAAa;oBAClC,GAAG,EAAE,IAAI,EAAE,GAAG;iBACf,CAAC,CAAA;YACJ,CAAC,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}