@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
@@ -1,10 +1,10 @@
1
1
  import type { NodeId } from '@astrale-os/kernel-core/graph/node';
2
2
  import type { NodePath, PathLike } from '@astrale-os/kernel-core/path';
3
- import type { schema } from '@astrale-os/kernel-dsl/v1';
3
+ import type { PolicyRef } from '@astrale-os/kernel-dsl/v1';
4
4
  import type { RequestOptions } from '../transport/index.js';
5
5
  import type { AuthCall } from './auth.js';
6
6
  export interface PolicyDecisionInput {
7
- readonly policy: PathLike | schema.PolicyRef;
7
+ readonly policy: PathLike | PolicyRef;
8
8
  readonly object: NodeId;
9
9
  }
10
10
  export declare const IDENTITY_CAN_PATH: NodePath;
@@ -1 +1 @@
1
- {"version":3,"file":"authorization.d.ts","sourceRoot":"","sources":["../../auth/authorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAA;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAKvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAA;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAID,eAAO,MAAM,iBAAiB,EAAE,QAAkE,CAAA;AAElG,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ;eAE1B,mBAAmB,YAAY,cAAc;GASjE"}
1
+ {"version":3,"file":"authorization.d.ts","sourceRoot":"","sources":["../../auth/authorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAA;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAK1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAID,eAAO,MAAM,iBAAiB,EAAE,QAAkE,CAAA;AAElG,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ;eAE1B,mBAAmB,YAAY,cAAc;GASjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"authorization.js","sourceRoot":"","sources":["../../auth/authorization.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,2DAA2D,CAAA;AAUpF,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAEzD,MAAM,CAAC,MAAM,iBAAiB,GAAa,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAA;AAElG,MAAM,UAAU,gBAAgB,CAAC,IAAc;IAC7C,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK,CAAC,GAAG,CAAC,KAA0B,EAAE,OAAwB;YAC5D,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CACxB,iBAAiB,EACjB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EACzE,OAAO,CACR,CAAkC,CAAA;YACnC,OAAO,MAAM,CAAC,OAAO,CAAA;QACvB,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAkC;IACpD,OAAO,KAAK,YAAY,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QACvD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG;QACtB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAA;AAC7B,CAAC"}
1
+ {"version":3,"file":"authorization.js","sourceRoot":"","sources":["../../auth/authorization.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,2DAA2D,CAAA;AAUpF,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAEzD,MAAM,CAAC,MAAM,iBAAiB,GAAa,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAA;AAElG,MAAM,UAAU,gBAAgB,CAAC,IAAc;IAC7C,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK,CAAC,GAAG,CAAC,KAA0B,EAAE,OAAwB;YAC5D,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CACxB,iBAAiB,EACjB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EACzE,OAAO,CACR,CAAkC,CAAA;YACnC,OAAO,MAAM,CAAC,OAAO,CAAA;QACvB,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAA2B;IAC7C,OAAO,KAAK,YAAY,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QACvD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG;QACtB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAA;AAC7B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { BinaryResult, CallableResult } from '@astrale-os/kernel-core/domain';
1
+ import type { BinaryResult, CallableResult } from '@astrale-os/kernel-core/callable';
2
2
  import type { Value } from '@astrale-os/kernel-dsl/value';
3
3
  import type { invocation as protocol } from '@astrale-os/kernel-protocol';
4
4
  /** Caller-visible value accepted from one admitted remote invocation. */
@@ -1 +1 @@
1
- {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../client/result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAClF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AACzD,OAAO,KAAK,EAAE,UAAU,IAAI,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAIzE,yEAAyE;AACzE,MAAM,MAAM,KAAK,GAAG,KAAK,CAAA;AAEzB,6CAA6C;AAC7C,MAAM,MAAM,MAAM,GAAG,YAAY,CAAA;AAEjC,kCAAkC;AAClC,MAAM,WAAW,MAAO,SAAQ,aAAa,CAAC,KAAK,CAAC;IAClD,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACvC;AAED,yEAAyE;AACzE,KAAK,UAAU,CAAC,MAAM,IAAI,MAAM,GAAG;IAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAA;CAAE,CAAA;AACjF,KAAK,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAE7C,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,CAAA;AACnF,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC,CAAA;AACrF,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC,CAAA;AACvF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAA;IACvC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAA;CAC3C;AACD,MAAM,MAAM,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,cAAc,GAAG,cAAc,CAAA;AAEjF,wBAAsB,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAIhF;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAIlF;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAIpF"}
1
+ {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../client/result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACpF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AACzD,OAAO,KAAK,EAAE,UAAU,IAAI,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAIzE,yEAAyE;AACzE,MAAM,MAAM,KAAK,GAAG,KAAK,CAAA;AAEzB,6CAA6C;AAC7C,MAAM,MAAM,MAAM,GAAG,YAAY,CAAA;AAEjC,kCAAkC;AAClC,MAAM,WAAW,MAAO,SAAQ,aAAa,CAAC,KAAK,CAAC;IAClD,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACvC;AAED,yEAAyE;AACzE,KAAK,UAAU,CAAC,MAAM,IAAI,MAAM,GAAG;IAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAA;CAAE,CAAA;AACjF,KAAK,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAE7C,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,CAAA;AACnF,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC,CAAA;AACrF,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC,CAAA;AACvF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAA;IACvC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAA;CAC3C;AACD,MAAM,MAAM,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,cAAc,GAAG,cAAc,CAAA;AAEjF,wBAAsB,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAIhF;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAIlF;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAIpF"}
@@ -1 +1 @@
1
- {"version":3,"file":"client-error.d.ts","sourceRoot":"","sources":["../../errors/client-error.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,EAGlD;CACF"}
1
+ {"version":3,"file":"client-error.d.ts","sourceRoot":"","sources":["../../errors/client-error.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,EAIlD;CACF"}
@@ -1,5 +1,7 @@
1
1
  export class ClientError extends Error {
2
2
  constructor(message, options) {
3
+ if (message.trim() === '')
4
+ throw new TypeError('Client error message must be non-blank.');
3
5
  super(message, options);
4
6
  this.name = 'ClientError';
5
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client-error.js","sourceRoot":"","sources":["../../errors/client-error.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAA;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"client-error.js","sourceRoot":"","sources":["../../errors/client-error.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe,EAAE,OAAsB;QACjD,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAA;QACzF,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAA;IAC3B,CAAC;CACF"}
@@ -1,7 +1,8 @@
1
- export { ClientError } from './client-error.js';
2
- export { MissError } from './miss-error.js';
3
- export { ProtocolError, type ProtocolErrorOptions } from './protocol-error.js';
4
- export { ResponseError } from './response-error.js';
5
- export { StaleRouteError } from './stale-route-error.js';
6
- export { TransportError, type TransportDelivery, type TransportErrorOptions, type TransportPhase, } from './transport-error.js';
1
+ export * from './client-error.js';
2
+ export * from './miss-error.js';
3
+ export * from './protocol-error.js';
4
+ export * from './response-error.js';
5
+ export * from './session-error.js';
6
+ export * from './stale-route-error.js';
7
+ export * from './transport-error.js';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EACL,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,GACpB,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA"}
@@ -1,7 +1,8 @@
1
- export { ClientError } from './client-error.js';
2
- export { MissError } from './miss-error.js';
3
- export { ProtocolError } from './protocol-error.js';
4
- export { ResponseError } from './response-error.js';
5
- export { StaleRouteError } from './stale-route-error.js';
6
- export { TransportError, } from './transport-error.js';
1
+ export * from './client-error.js';
2
+ export * from './miss-error.js';
3
+ export * from './protocol-error.js';
4
+ export * from './response-error.js';
5
+ export * from './session-error.js';
6
+ export * from './stale-route-error.js';
7
+ export * from './transport-error.js';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAA6B,MAAM,qBAAqB,CAAA;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EACL,cAAc,GAIf,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { ClientError } from './client-error.js';
2
+ export type SessionFailure = 'cancelled' | 'closed' | 'timeout';
3
+ export interface SessionErrorOptions extends ErrorOptions {
4
+ readonly failure: SessionFailure;
5
+ }
6
+ export declare class SessionError extends ClientError {
7
+ readonly failure: SessionFailure;
8
+ constructor(message: string, options: SessionErrorOptions);
9
+ }
10
+ //# sourceMappingURL=session-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-error.d.ts","sourceRoot":"","sources":["../../errors/session-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE/D,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;CACjC;AAED,qBAAa,YAAa,SAAQ,WAAW;IAC3C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;IAEhC,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAIxD;CACF"}
@@ -0,0 +1,10 @@
1
+ import { ClientError } from './client-error.js';
2
+ export class SessionError extends ClientError {
3
+ failure;
4
+ constructor(message, options) {
5
+ super(message, options);
6
+ this.name = 'SessionError';
7
+ this.failure = options.failure;
8
+ }
9
+ }
10
+ //# sourceMappingURL=session-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-error.js","sourceRoot":"","sources":["../../errors/session-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAQ/C,MAAM,OAAO,YAAa,SAAQ,WAAW;IAClC,OAAO,CAAgB;IAEhC,YAAY,OAAe,EAAE,OAA4B;QACvD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAA;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAChC,CAAC;CACF"}
@@ -3,16 +3,29 @@ import { ClientError } from './client-error.js';
3
3
  /** Whether an invocation is proven not to have crossed the transport boundary. */
4
4
  export type TransportDelivery = 'not-sent' | 'unknown';
5
5
  /** Observable transport phase in which communication stopped. */
6
- export type TransportPhase = 'connect' | 'send' | 'receive' | 'timeout' | 'closed';
7
- export interface TransportErrorOptions extends ErrorOptions {
8
- readonly phase: TransportPhase;
6
+ export type TransportPhase = 'connect' | 'send' | 'receive' | 'timeout' | 'closed' | 'unknown';
7
+ export type TransportContext = {
8
+ readonly kind: 'acquisition';
9
+ readonly resource: 'publication' | 'bundle';
10
+ } | {
11
+ readonly kind: 'invocation';
9
12
  readonly delivery: TransportDelivery;
10
13
  readonly invocation?: protocol.InvocationId;
14
+ };
15
+ export interface AcquisitionTransportErrorOptions extends ErrorOptions {
16
+ readonly phase: TransportPhase;
17
+ readonly resource: 'publication' | 'bundle';
11
18
  }
12
- export declare class TransportError extends ClientError {
19
+ export interface InvocationTransportErrorOptions extends ErrorOptions {
13
20
  readonly phase: TransportPhase;
14
21
  readonly delivery: TransportDelivery;
15
22
  readonly invocation?: protocol.InvocationId;
16
- constructor(message: string, options: TransportErrorOptions);
23
+ }
24
+ export declare class TransportError extends ClientError {
25
+ readonly phase: TransportPhase;
26
+ readonly context: TransportContext;
27
+ private constructor();
28
+ static acquisition(message: string, options: AcquisitionTransportErrorOptions): TransportError;
29
+ static invocation(message: string, options: InvocationTransportErrorOptions): TransportError;
17
30
  }
18
31
  //# sourceMappingURL=transport-error.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transport-error.d.ts","sourceRoot":"","sources":["../../errors/transport-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,IAAI,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAEzE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,kFAAkF;AAClF,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,SAAS,CAAA;AAEtD,iEAAiE;AACjE,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;AAElF,MAAM,WAAW,qBAAsB,SAAQ,YAAY;IACzD,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAA;CAC5C;AAED,qBAAa,cAAe,SAAQ,WAAW;IAC7C,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAA;IAE3C,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAM1D;CACF"}
1
+ {"version":3,"file":"transport-error.d.ts","sourceRoot":"","sources":["../../errors/transport-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,IAAI,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAEzE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,kFAAkF;AAClF,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,SAAS,CAAA;AAEtD,iEAAiE;AACjE,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE9F,MAAM,MAAM,gBAAgB,GACxB;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,QAAQ,CAAA;CAC5C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAA;CAC5C,CAAA;AAEL,MAAM,WAAW,gCAAiC,SAAQ,YAAY;IACpE,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,QAAQ,CAAA;CAC5C;AAED,MAAM,WAAW,+BAAgC,SAAQ,YAAY;IACnE,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAA;CAC5C;AAED,qBAAa,cAAe,SAAQ,WAAW;IAG3C,QAAQ,CAAC,KAAK,EAAE,cAAc;IAC9B,QAAQ,CAAC,OAAO,EAAE,gBAAgB;IAHpC,OAAO,eASN;IAED,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gCAAgC,GAAG,cAAc,CAO7F;IAED,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,+BAA+B,GAAG,cAAc,CAO3F;CACF"}
@@ -1,14 +1,19 @@
1
1
  import { ClientError } from './client-error.js';
2
2
  export class TransportError extends ClientError {
3
3
  phase;
4
- delivery;
5
- invocation;
6
- constructor(message, options) {
4
+ context;
5
+ constructor(message, phase, context, options) {
7
6
  super(message, options);
7
+ this.phase = phase;
8
+ this.context = context;
8
9
  this.name = 'TransportError';
9
- this.phase = options.phase;
10
- this.delivery = options.delivery;
11
- this.invocation = options.invocation;
10
+ Object.freeze(context);
11
+ }
12
+ static acquisition(message, options) {
13
+ return new TransportError(message, options.phase, { kind: 'acquisition', resource: options.resource }, options);
14
+ }
15
+ static invocation(message, options) {
16
+ return new TransportError(message, options.phase, { kind: 'invocation', delivery: options.delivery, invocation: options.invocation }, options);
12
17
  }
13
18
  }
14
19
  //# sourceMappingURL=transport-error.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transport-error.js","sourceRoot":"","sources":["../../errors/transport-error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAc/C,MAAM,OAAO,cAAe,SAAQ,WAAW;IACpC,KAAK,CAAgB;IACrB,QAAQ,CAAmB;IAC3B,UAAU,CAAwB;IAE3C,YAAY,OAAe,EAAE,OAA8B;QACzD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAChC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;IACtC,CAAC;CACF"}
1
+ {"version":3,"file":"transport-error.js","sourceRoot":"","sources":["../../errors/transport-error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AA8B/C,MAAM,OAAO,cAAe,SAAQ,WAAW;IAGlC,KAAK;IACL,OAAO;IAHlB,YACE,OAAe,EACN,KAAqB,EACrB,OAAyB,EAClC,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;qBAJd,KAAK;uBACL,OAAO;QAIhB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;QAC5B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACxB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,OAAe,EAAE,OAAyC;QAC3E,OAAO,IAAI,cAAc,CACvB,OAAO,EACP,OAAO,CAAC,KAAK,EACb,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,EACnD,OAAO,CACR,CAAA;IACH,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,OAAe,EAAE,OAAwC;QACzE,OAAO,IAAI,cAAc,CACvB,OAAO,EACP,OAAO,CAAC,KAAK,EACb,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,EAClF,OAAO,CACR,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,23 @@
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, QuerySingleSourceClassOf } from '@astrale-os/kernel-core/graph/query';
4
+ import type { Domain } from '@astrale-os/kernel-dsl/v1/domain';
5
+ import type { AnyResolvedClass, ResolvedClass } from '@astrale-os/kernel-dsl/v1/language';
6
+ import type { GraphApi, GraphQueryOptions } from '../graph.js';
7
+ import type { BoundEdge, BoundNode } from './model.js';
8
+ import type { BoundQueryPage } from './page.js';
9
+ import type { MethodCall } from './project.js';
10
+ export type DomainQueryOptions = Omit<GraphQueryOptions, 'expected'>;
11
+ type AdmittedSourceClasses<Query extends QueryAST> = [QuerySingleSourceClassOf<Query>] extends [
12
+ never
13
+ ] ? never : QuerySingleSourceClassOf<Query> extends AnyResolvedClass ? unknown : never;
14
+ export interface DomainBinding<DomainValue extends Domain = Domain> {
15
+ readonly domain: DomainValue;
16
+ readonly graph: GraphApi;
17
+ query<Query extends QueryAST>(query: Query & AdmittedSourceClasses<Query>, options: DomainQueryOptions): Promise<BoundQueryPage<Query>>;
18
+ wrapNode<Class extends ResolvedClass<'node'>>(selected: Class, node: Node): BoundNode<Class>;
19
+ wrapEdge<Class extends ResolvedClass<'edge'>>(selected: Class, edge: Edge): BoundEdge<Class>;
20
+ }
21
+ export declare function createDomainBinding<DomainValue extends Domain>(domain: DomainValue, graph: GraphApi, call: MethodCall): DomainBinding<DomainValue>;
22
+ export {};
23
+ //# sourceMappingURL=binding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../../../graph/domain/binding.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,QAAQ,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAA;AAC7F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAKzF,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAQ9C,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAA;AACpE,KAAK,qBAAqB,CAAC,KAAK,SAAS,QAAQ,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,SAAS;IAC7F,KAAK;CACN,GACG,KAAK,GACL,wBAAwB,CAAC,KAAK,CAAC,SAAS,gBAAgB,GACtD,OAAO,GACP,KAAK,CAAA;AAEX,MAAM,WAAW,aAAa,CAAC,WAAW,SAAS,MAAM,GAAG,MAAM;IAChE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;IACxB,KAAK,CAAC,KAAK,SAAS,QAAQ,EAC1B,KAAK,EAAE,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,EAC3C,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;IACjC,QAAQ,CAAC,KAAK,SAAS,aAAa,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAC5F,QAAQ,CAAC,KAAK,SAAS,aAAa,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;CAC7F;AAED,wBAAgB,mBAAmB,CAAC,WAAW,SAAS,MAAM,EAC5D,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,UAAU,GACf,aAAa,CAAC,WAAW,CAAC,CAwE5B"}
@@ -0,0 +1,124 @@
1
+ import { ClassKey } from '@astrale-os/kernel-dsl/v1/addressing';
2
+ import { isDomain } from '@astrale-os/kernel-dsl/v1/domain';
3
+ import { provenanceOfGraphValue, provenanceOfResponse } from '../provenance.js';
4
+ import { selectedEdges, selectedNodes } from './page.js';
5
+ import { projectEdge, projectNode } from './project.js';
6
+ import { provenanceOfProjectedValue, sameClosure } from './provenance.js';
7
+ export function createDomainBinding(domain, graph, call) {
8
+ if (!isDomain(domain))
9
+ throw new TypeError('Domain binding requires an admitted DSL Domain.');
10
+ const wrapNode = (selected, node) => {
11
+ requireOwnedClass(domain, selected);
12
+ const provenance = requireProvenance(domain, node);
13
+ const exact = requireExactClass(domain, node.class, 'node');
14
+ if (!exact.satisfies(selected))
15
+ throw new TypeError(`${exact.key} does not satisfy ${selected.key}.`);
16
+ const diagnostics = exact.validateProperties(node.props);
17
+ if (diagnostics.length > 0)
18
+ throw new TypeError(`Node ${node.id} has invalid exact Properties.`);
19
+ return projectNode(selected, node, provenance, call);
20
+ };
21
+ const wrapEdge = (selected, edge) => {
22
+ requireOwnedClass(domain, selected);
23
+ const provenance = requireProvenance(domain, edge);
24
+ const exact = requireExactClass(domain, edge.class, 'edge');
25
+ if (!exact.satisfies(selected))
26
+ throw new TypeError(`${exact.key} does not satisfy ${selected.key}.`);
27
+ const diagnostics = exact.validateProperties(edge.props);
28
+ if (diagnostics.length > 0)
29
+ throw new TypeError('Edge has invalid exact Properties.');
30
+ return projectEdge(selected, edge, provenance);
31
+ };
32
+ return Object.freeze({
33
+ domain,
34
+ graph,
35
+ async query(query, options) {
36
+ const selected = selectedSourceClass(domain, query);
37
+ const response = await graph.query(query, { ...options, expected: domain.closure });
38
+ const provenance = provenanceOfResponse(response);
39
+ if (provenance === undefined || !sameClosure(provenance.closure, domain.closure)) {
40
+ throw new TypeError('Authenticated query provenance was not retained.');
41
+ }
42
+ const next = response.page.next === undefined
43
+ ? undefined
44
+ : () => this.query(query, {
45
+ ...options,
46
+ page: { ...options.page, after: response.page.next },
47
+ });
48
+ if (selected.kind === 'node') {
49
+ const nodes = selectedNodes(response).map((node) => wrapNode(selected, node));
50
+ return Object.freeze({
51
+ nodes: Object.freeze(nodes),
52
+ raw: response,
53
+ ...(next === undefined ? {} : { next }),
54
+ refine: (value, target) => refineNode(domain, call, value, target, provenance),
55
+ });
56
+ }
57
+ const edges = selectedEdges(response).map((edge) => wrapEdge(selected, edge));
58
+ return Object.freeze({
59
+ edges: Object.freeze(edges),
60
+ raw: response,
61
+ ...(next === undefined ? {} : { next }),
62
+ refine: (value, target) => refineEdge(domain, value, target, provenance),
63
+ });
64
+ },
65
+ wrapNode,
66
+ wrapEdge,
67
+ });
68
+ }
69
+ function selectedSourceClass(domain, query) {
70
+ if (query.steps.some((step) => step.op === 'expand')) {
71
+ throw new TypeError('Rich Domain queries do not yet project expanded bindings.');
72
+ }
73
+ if (query.source.terms.length !== 1 || query.source.terms[0]?.kind !== 'class') {
74
+ throw new TypeError('Rich Domain queries require one exact Class source term.');
75
+ }
76
+ const sourceBinding = query.source.kind === 'node' ? query.source.binding : query.source.bindings.edge;
77
+ if (query.select.binding !== sourceBinding) {
78
+ throw new TypeError('Rich Domain queries must select their original source binding.');
79
+ }
80
+ const selected = domain.definition(query.source.terms[0].class);
81
+ if (selected?.ref.kind !== 'class' || selected.kind !== query.source.kind) {
82
+ throw new TypeError('Query source Class is absent or has the wrong graph kind.');
83
+ }
84
+ return selected;
85
+ }
86
+ function refineNode(domain, call, value, target, page) {
87
+ requireOwnedClass(domain, target);
88
+ const provenance = requirePageProvenance(value, page);
89
+ const exact = requireExactClass(domain, value.class, 'node');
90
+ return exact.satisfies(target) ? projectNode(target, value, provenance, call) : undefined;
91
+ }
92
+ function refineEdge(domain, value, target, page) {
93
+ requireOwnedClass(domain, target);
94
+ const provenance = requirePageProvenance(value, page);
95
+ const exact = requireExactClass(domain, value.class, 'edge');
96
+ return exact.satisfies(target) ? projectEdge(target, value, provenance) : undefined;
97
+ }
98
+ function requirePageProvenance(value, page) {
99
+ const provenance = provenanceOfProjectedValue(value);
100
+ if (provenance?.page !== page.page) {
101
+ throw new TypeError('Refinement requires a value from this exact result page.');
102
+ }
103
+ return provenance;
104
+ }
105
+ function requireOwnedClass(domain, selected) {
106
+ if (domain.definition(selected.key) !== selected) {
107
+ throw new TypeError('Selected Class does not belong to the bound Domain closure.');
108
+ }
109
+ }
110
+ function requireProvenance(domain, value) {
111
+ const provenance = provenanceOfGraphValue(value);
112
+ if (provenance === undefined || !sameClosure(provenance.closure, domain.closure)) {
113
+ throw new TypeError('Graph value lacks matching authenticated query provenance.');
114
+ }
115
+ return provenance;
116
+ }
117
+ function requireExactClass(domain, key, kind) {
118
+ const exact = domain.definition(ClassKey.ref(ClassKey(key)));
119
+ if (exact?.ref.kind !== 'class' || exact.kind !== kind || exact.abstract) {
120
+ throw new TypeError(`Exact ${kind} Class ${key} is not active and concrete.`);
121
+ }
122
+ return exact;
123
+ }
124
+ //# sourceMappingURL=binding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding.js","sourceRoot":"","sources":["../../../graph/domain/binding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=domain.typecheck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.typecheck.d.ts","sourceRoot":"","sources":["../../../graph/domain/domain.typecheck.ts"],"names":[],"mappings":""}
@@ -0,0 +1,128 @@
1
+ import { NodeId } from '@astrale-os/kernel-core/graph/node';
2
+ import { Query, QueryAST } from '@astrale-os/kernel-core/graph/query';
3
+ import { Path } from '@astrale-os/kernel-core/path';
4
+ import { schema } from '@astrale-os/kernel-dsl/v1';
5
+ import { defineSchema, edgeClass, method, nodeClass, property, valueSchema, } from '@astrale-os/kernel-dsl/v1/builder';
6
+ const Resource = nodeClass({
7
+ abstract: true,
8
+ properties: {
9
+ title: property(valueSchema()({ type: 'string' }), { required: true }),
10
+ },
11
+ methods: {
12
+ rename: method({
13
+ auth: 'authenticated',
14
+ input: valueSchema()({
15
+ type: 'object',
16
+ properties: { title: { type: 'string' } },
17
+ required: ['title'],
18
+ additionalProperties: false,
19
+ }),
20
+ output: valueSchema()({ type: 'string' }),
21
+ }),
22
+ },
23
+ });
24
+ const Document = nodeClass({
25
+ extends: [Resource],
26
+ properties: { body: property(valueSchema()({ type: 'string' })) },
27
+ });
28
+ const MethodlessParent = nodeClass({
29
+ abstract: true,
30
+ properties: {},
31
+ });
32
+ const MethodlessChild = nodeClass({
33
+ extends: [MethodlessParent],
34
+ properties: {},
35
+ });
36
+ const PrototypeMembers = nodeClass({
37
+ properties: {
38
+ toString: property(valueSchema()({ type: 'string' }), { required: true }),
39
+ },
40
+ methods: {
41
+ constructor: method({
42
+ auth: 'authenticated',
43
+ input: valueSchema()({ type: 'string' }),
44
+ output: valueSchema()({ type: 'string' }),
45
+ }),
46
+ },
47
+ });
48
+ const Work = schema.resolve(defineSchema('client-binding-types.example', {
49
+ classes: {
50
+ Resource,
51
+ Document,
52
+ MethodlessParent,
53
+ MethodlessChild,
54
+ PrototypeMembers,
55
+ Related: edgeClass.directed({
56
+ source: { as: 'source', accepts: [Resource], outgoing: '0..*' },
57
+ target: { as: 'target', accepts: [Resource], incoming: '0..*' },
58
+ }),
59
+ },
60
+ }));
61
+ const source = Query.from({ nodes: [Work.classes.Resource] });
62
+ const query = source.select({ kind: 'nodes', projection: { kind: 'value' } });
63
+ const prototypeSource = Query.from({ nodes: [Work.classes.PrototypeMembers] });
64
+ const prototypeQuery = prototypeSource.select({ kind: 'nodes', projection: { kind: 'value' } });
65
+ const resourceAcceptsDocument = documentProjection;
66
+ void resourceAcceptsDocument;
67
+ const resourceReceiverAcceptsDocument = documentProjection;
68
+ void resourceReceiverAcceptsDocument;
69
+ // @ts-expect-error A projection selected for another unrelated Class is not a Resource projection.
70
+ const resourceRejectsPrototype = prototypeProjection;
71
+ void resourceRejectsPrototype;
72
+ // @ts-expect-error Receiver evidence selected for an unrelated Class is not accepted.
73
+ const resourceReceiverRejectsPrototype = prototypeProjection;
74
+ void resourceReceiverRejectsPrototype;
75
+ const methodlessParentAcceptsChild = methodlessChildProjection;
76
+ void methodlessParentAcceptsChild;
77
+ // @ts-expect-error Selected ancestor provenance cannot be widened into a child projection.
78
+ const documentRejectsResource = resourceProjection;
79
+ void documentRejectsResource;
80
+ async function typeProof() {
81
+ const page = await binding.query(query, { page: { size: 10 } });
82
+ const resource = page.nodes[0];
83
+ const title = resource.title;
84
+ const renamed = await resource.rename({ title: 'next' });
85
+ // @ts-expect-error Ancestor projection does not expose child-only Properties.
86
+ resource.body;
87
+ const document = page.refine(resource, Work.classes.Document);
88
+ const body = document?.body;
89
+ const detached = QueryAST.decode(query);
90
+ // @ts-expect-error Decoding destroys the authoring Class provenance required for rich projection.
91
+ await binding.query(detached, { page: { size: 10 } });
92
+ const multipleClasses = Query.from({
93
+ nodes: [Work.classes.Resource, Work.classes.Document],
94
+ }).select({ kind: 'nodes', projection: { kind: 'value' } });
95
+ // @ts-expect-error Multiple Class terms do not establish one rich selected-Class contract.
96
+ await binding.query(multipleClasses, { page: { size: 10 } });
97
+ const mixedSource = Query.from({
98
+ nodes: [NodeId('document'), Work.classes.Resource],
99
+ }).select({ kind: 'nodes', projection: { kind: 'value' } });
100
+ // @ts-expect-error Path and Class terms do not establish one rich selected-Class contract.
101
+ await binding.query(mixedSource, { page: { size: 10 } });
102
+ const prototypePage = await binding.query(prototypeQuery, { page: { size: 1 } });
103
+ const prototype = prototypePage.nodes[0];
104
+ const toString = prototype.toString;
105
+ const constructed = await prototype.constructor('input');
106
+ const structural = Path.project(Work.classes.Resource.ref).raw;
107
+ await graph.get(structural);
108
+ await graph.getOrThrow(structural);
109
+ await graph.neighbors(structural, Work.classes.Related, {
110
+ direction: 'outgoing',
111
+ page: { size: 1 },
112
+ });
113
+ const exact = NodeId('document');
114
+ await graph.get(exact);
115
+ await graph.getOrThrow(exact);
116
+ await graph.neighbors(exact, Work.classes.Related, {
117
+ direction: 'outgoing',
118
+ page: { size: 1 },
119
+ });
120
+ // @ts-expect-error Neighbor traversal requires Edge Classes, not Node Classes.
121
+ await graph.neighbors(exact, Work.classes.Resource, {
122
+ direction: 'outgoing',
123
+ page: { size: 1 },
124
+ });
125
+ return { title, renamed, body, toString, constructed };
126
+ }
127
+ void typeProof;
128
+ //# sourceMappingURL=domain.typecheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.typecheck.js","sourceRoot":"","sources":["../../../graph/domain/domain.typecheck.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export type { DomainBinding, DomainQueryOptions } from './binding.js';
2
+ export type { BoundEdge, BoundGraphValue, BoundNode, BoundNodeFor } from './model.js';
3
+ export type { BoundEdgePage, BoundNodePage, BoundQueryPage } from './page.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../graph/domain/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACrE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACrF,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../graph/domain/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
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 { DefinitionKey, Key } from '@astrale-os/kernel-dsl/v1/addressing';
4
+ import type { AnyResolvedClass, BoundMethodShortcutsOf, ClassSatisfactionKeysOf, MethodAccessOf, PropertyAccessOf, PropertyShortcutsOf, ResolvedClass } from '@astrale-os/kernel-dsl/v1/language';
5
+ import type { Binary } from '../../client/index.js';
6
+ type NodeReserved = keyof Node | 'property' | 'method';
7
+ type EdgeReserved = keyof Edge | 'property';
8
+ declare const BOUND_CLASS: unique symbol;
9
+ /** Node evidence selected as one exact Class key, without duplicating its rich projection. */
10
+ export type BoundNodeFor<ClassKey extends DefinitionKey<Key.Origin, 'class'> = DefinitionKey<Key.Origin, 'class'>> = Node & {
11
+ readonly [BOUND_CLASS]: Readonly<Record<ClassKey, true>>;
12
+ };
13
+ /** One selected-Class view over an exact admitted Node. */
14
+ export type BoundNode<Class extends ResolvedClass<'node'> = ResolvedClass<'node'>, BinaryValue = Binary> = BoundNodeFor<ClassSatisfactionKeysOf<Class>> & PropertyShortcutsOf<Class, NodeReserved> & BoundMethodShortcutsOf<Class, BinaryValue, NodeReserved> & PropertyAccessOf<Class> & MethodAccessOf<Class, BinaryValue>;
15
+ /** One selected-Class view over an exact admitted Edge. */
16
+ export type BoundEdge<Class extends ResolvedClass<'edge'> = ResolvedClass<'edge'>> = Edge & PropertyShortcutsOf<Class, EdgeReserved> & PropertyAccessOf<Class>;
17
+ export type BoundGraphValue<Class extends AnyResolvedClass> = Class extends ResolvedClass<'node'> ? BoundNode<Class> : Class extends ResolvedClass<'edge'> ? BoundEdge<Class> : never;
18
+ export {};
19
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../graph/domain/model.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,aAAa,EAAE,GAAG,EAAE,MAAM,sCAAsC,CAAA;AAC9E,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACd,MAAM,oCAAoC,CAAA;AAE3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAEnD,KAAK,YAAY,GAAG,MAAM,IAAI,GAAG,UAAU,GAAG,QAAQ,CAAA;AACtD,KAAK,YAAY,GAAG,MAAM,IAAI,GAAG,UAAU,CAAA;AAC3C,OAAO,CAAC,MAAM,WAAW,EAAE,OAAO,MAAM,CAAA;AAExC,8FAA8F;AAC9F,MAAM,MAAM,YAAY,CACtB,QAAQ,SAAS,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IACtF,IAAI,GAAG;IACT,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;CACzD,CAAA;AAED,2DAA2D;AAC3D,MAAM,MAAM,SAAS,CACnB,KAAK,SAAS,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,EAC3D,WAAW,GAAG,MAAM,IAClB,YAAY,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,GAC9C,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,GACxC,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,CAAC,GACxD,gBAAgB,CAAC,KAAK,CAAC,GACvB,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;AAEpC,2DAA2D;AAC3D,MAAM,MAAM,SAAS,CAAC,KAAK,SAAS,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,IAAI,GACvF,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,GACxC,gBAAgB,CAAC,KAAK,CAAC,CAAA;AAEzB,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,gBAAgB,IACxD,KAAK,SAAS,aAAa,CAAC,MAAM,CAAC,GAC/B,SAAS,CAAC,KAAK,CAAC,GAChB,KAAK,SAAS,aAAa,CAAC,MAAM,CAAC,GACjC,SAAS,CAAC,KAAK,CAAC,GAChB,KAAK,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../graph/domain/model.ts"],"names":[],"mappings":""}