@fougere/core 0.17.4-alpha.0 → 0.19.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/README.md +1 -1
  2. package/dist/BootRefusal.d.ts +9 -0
  3. package/dist/BootRefusal.d.ts.map +1 -0
  4. package/dist/BootRefusal.js +12 -0
  5. package/dist/BootRefusal.js.map +1 -0
  6. package/dist/CallIdentity.d.ts.map +1 -1
  7. package/dist/CallIdentity.js +2 -1
  8. package/dist/CallIdentity.js.map +1 -1
  9. package/dist/Declared.d.ts +2 -5
  10. package/dist/Declared.d.ts.map +1 -1
  11. package/dist/DeclaredHandler.d.ts +3 -8
  12. package/dist/DeclaredHandler.d.ts.map +1 -1
  13. package/dist/DeclaredSubject.d.ts +2 -5
  14. package/dist/DeclaredSubject.d.ts.map +1 -1
  15. package/dist/EffectiveOperation.d.ts +7 -6
  16. package/dist/EffectiveOperation.d.ts.map +1 -1
  17. package/dist/EffectiveOperationModel.d.ts.map +1 -1
  18. package/dist/EffectiveOperationModel.js +9 -6
  19. package/dist/EffectiveOperationModel.js.map +1 -1
  20. package/dist/FrondConfig.d.ts +0 -2
  21. package/dist/FrondConfig.d.ts.map +1 -1
  22. package/dist/FrondConfig.js.map +1 -1
  23. package/dist/FrondDeclaration.d.ts +3 -8
  24. package/dist/FrondDeclaration.d.ts.map +1 -1
  25. package/dist/FrondDeclaration.js +2 -1
  26. package/dist/FrondDeclaration.js.map +1 -1
  27. package/dist/OperationOverride.d.ts +5 -3
  28. package/dist/OperationOverride.d.ts.map +1 -1
  29. package/dist/SourceView.d.ts +10 -8
  30. package/dist/SourceView.d.ts.map +1 -1
  31. package/dist/SourceView.js +10 -1
  32. package/dist/SourceView.js.map +1 -1
  33. package/dist/boot/AppLifecycle.d.ts.map +1 -1
  34. package/dist/boot/AppLifecycle.js +2 -1
  35. package/dist/boot/AppLifecycle.js.map +1 -1
  36. package/dist/boot/Emissions.d.ts +8 -1
  37. package/dist/boot/Emissions.d.ts.map +1 -1
  38. package/dist/boot/Emissions.js +16 -11
  39. package/dist/boot/Emissions.js.map +1 -1
  40. package/dist/boot/bootstrap.d.ts.map +1 -1
  41. package/dist/boot/bootstrap.js +27 -15
  42. package/dist/boot/bootstrap.js.map +1 -1
  43. package/dist/boot/card.d.ts.map +1 -1
  44. package/dist/boot/card.js.map +1 -1
  45. package/dist/boot/install.d.ts.map +1 -1
  46. package/dist/boot/install.js +1 -0
  47. package/dist/boot/install.js.map +1 -1
  48. package/dist/boot/ownership.d.ts.map +1 -1
  49. package/dist/boot/ownership.js +26 -14
  50. package/dist/boot/ownership.js.map +1 -1
  51. package/dist/boot/unregistered.d.ts +4 -2
  52. package/dist/boot/unregistered.d.ts.map +1 -1
  53. package/dist/boot/unregistered.js +30 -30
  54. package/dist/boot/unregistered.js.map +1 -1
  55. package/dist/contract.d.ts +3 -0
  56. package/dist/contract.d.ts.map +1 -1
  57. package/dist/contract.js +3 -0
  58. package/dist/contract.js.map +1 -1
  59. package/dist/descriptor/CollectorEntry.d.ts +2 -7
  60. package/dist/descriptor/CollectorEntry.d.ts.map +1 -1
  61. package/dist/descriptor/FrondDescriptor.d.ts +5 -23
  62. package/dist/descriptor/FrondDescriptor.d.ts.map +1 -1
  63. package/dist/descriptor/FrondDescriptor.js.map +1 -1
  64. package/dist/descriptor/HandlerEntry.d.ts +2 -7
  65. package/dist/descriptor/HandlerEntry.d.ts.map +1 -1
  66. package/dist/descriptor/MiddlewareEntry.d.ts +2 -7
  67. package/dist/descriptor/MiddlewareEntry.d.ts.map +1 -1
  68. package/dist/descriptor/PresenterEntry.d.ts +2 -7
  69. package/dist/descriptor/PresenterEntry.d.ts.map +1 -1
  70. package/dist/descriptor/ProviderEntry.d.ts +2 -7
  71. package/dist/descriptor/ProviderEntry.d.ts.map +1 -1
  72. package/dist/descriptor/Subject.d.ts +10 -0
  73. package/dist/descriptor/Subject.d.ts.map +1 -0
  74. package/dist/descriptor/Subject.js +2 -0
  75. package/dist/descriptor/Subject.js.map +1 -0
  76. package/dist/descriptor/index.d.ts +1 -0
  77. package/dist/descriptor/index.d.ts.map +1 -1
  78. package/dist/descriptor/index.js +1 -0
  79. package/dist/descriptor/index.js.map +1 -1
  80. package/dist/diagnostic.d.ts +2 -1
  81. package/dist/diagnostic.d.ts.map +1 -1
  82. package/dist/diagnostic.js +2 -1
  83. package/dist/diagnostic.js.map +1 -1
  84. package/dist/dispatch/ArgumentResolver.d.ts +13 -1
  85. package/dist/dispatch/ArgumentResolver.d.ts.map +1 -1
  86. package/dist/dispatch/ArgumentResolver.js +48 -2
  87. package/dist/dispatch/ArgumentResolver.js.map +1 -1
  88. package/dist/dispatch/EntityLookup.d.ts +4 -0
  89. package/dist/dispatch/EntityLookup.d.ts.map +1 -0
  90. package/dist/dispatch/EntityLookup.js +2 -0
  91. package/dist/dispatch/EntityLookup.js.map +1 -0
  92. package/dist/dispatch/Facade.d.ts +3 -0
  93. package/dist/dispatch/Facade.d.ts.map +1 -1
  94. package/dist/dispatch/HandlerFacade.d.ts +2 -0
  95. package/dist/dispatch/HandlerFacade.d.ts.map +1 -1
  96. package/dist/dispatch/HandlerFacade.js +14 -4
  97. package/dist/dispatch/HandlerFacade.js.map +1 -1
  98. package/dist/entry/facade.d.ts +10 -1
  99. package/dist/entry/facade.d.ts.map +1 -1
  100. package/dist/entry/facade.js +26 -2
  101. package/dist/entry/facade.js.map +1 -1
  102. package/dist/index.d.ts +5 -1
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +4 -0
  105. package/dist/index.js.map +1 -1
  106. package/dist/prefab/AggregateConstructor.d.ts +2 -2
  107. package/dist/prefab/AggregateConstructor.d.ts.map +1 -1
  108. package/dist/prefab/AggregateOf.d.ts +2 -2
  109. package/dist/prefab/AggregateOf.d.ts.map +1 -1
  110. package/dist/prefab/AggregateShape.d.ts +2 -2
  111. package/dist/prefab/AggregateShape.d.ts.map +1 -1
  112. package/dist/prefab/CrudConstructor.d.ts +2 -2
  113. package/dist/prefab/CrudConstructor.d.ts.map +1 -1
  114. package/dist/prefab/CrudConstructor.js +13 -10
  115. package/dist/prefab/CrudConstructor.js.map +1 -1
  116. package/dist/prefab/CrudOps.d.ts +2 -2
  117. package/dist/prefab/CrudOps.d.ts.map +1 -1
  118. package/dist/prefab/CrudViews.d.ts +2 -2
  119. package/dist/prefab/CrudViews.d.ts.map +1 -1
  120. package/dist/prefab/Middleware.d.ts +13 -0
  121. package/dist/prefab/Middleware.d.ts.map +1 -0
  122. package/dist/prefab/Middleware.js +10 -0
  123. package/dist/prefab/Middleware.js.map +1 -0
  124. package/dist/prefab/MirrorConstructor.d.ts +2 -2
  125. package/dist/prefab/MirrorConstructor.d.ts.map +1 -1
  126. package/dist/prefab/MirrorConstructor.js.map +1 -1
  127. package/dist/prefab/RepositoryConstructor.d.ts +4 -4
  128. package/dist/prefab/RepositoryConstructor.d.ts.map +1 -1
  129. package/dist/prefab/RepositoryConstructor.js.map +1 -1
  130. package/dist/prefab/collector.d.ts +2 -1
  131. package/dist/prefab/collector.d.ts.map +1 -1
  132. package/dist/prefab/collector.js.map +1 -1
  133. package/dist/prefab/opsOf.d.ts +4 -0
  134. package/dist/prefab/opsOf.d.ts.map +1 -0
  135. package/dist/prefab/opsOf.js +5 -0
  136. package/dist/prefab/opsOf.js.map +1 -0
  137. package/dist/prefab/prefab.d.ts +3 -3
  138. package/dist/prefab/prefab.d.ts.map +1 -1
  139. package/dist/prefab/presenter.d.ts +3 -3
  140. package/dist/prefab/presenter.d.ts.map +1 -1
  141. package/dist/prefab/presenter.js.map +1 -1
  142. package/dist/wire/Addresses.d.ts +4 -4
  143. package/dist/wire/Addresses.d.ts.map +1 -1
  144. package/dist/wire/Cardinality.d.ts +4 -0
  145. package/dist/wire/Cardinality.d.ts.map +1 -0
  146. package/dist/wire/Cardinality.js +3 -0
  147. package/dist/wire/Cardinality.js.map +1 -0
  148. package/dist/wire/Facade.d.ts +5 -7
  149. package/dist/wire/Facade.d.ts.map +1 -1
  150. package/dist/wire/Facade.js.map +1 -1
  151. package/dist/wire/Invocation.d.ts +2 -1
  152. package/dist/wire/Invocation.d.ts.map +1 -1
  153. package/dist/wire/Invocation.js +4 -1
  154. package/dist/wire/Invocation.js.map +1 -1
  155. package/dist/wire/InvocationContext.d.ts +6 -0
  156. package/dist/wire/InvocationContext.d.ts.map +1 -1
  157. package/dist/wire/OperationContract.d.ts +2 -1
  158. package/dist/wire/OperationContract.d.ts.map +1 -1
  159. package/dist/wire/OperationContract.js +2 -2
  160. package/dist/wire/OperationContract.js.map +1 -1
  161. package/dist/wire/OperationKind.d.ts +3 -1
  162. package/dist/wire/OperationKind.d.ts.map +1 -1
  163. package/dist/wire/OperationKind.js +2 -1
  164. package/dist/wire/OperationKind.js.map +1 -1
  165. package/dist/wire/Placement.d.ts +4 -0
  166. package/dist/wire/Placement.d.ts.map +1 -0
  167. package/dist/wire/Placement.js +3 -0
  168. package/dist/wire/Placement.js.map +1 -0
  169. package/dist/wire/RouteKind.d.ts +2 -1
  170. package/dist/wire/RouteKind.d.ts.map +1 -1
  171. package/dist/wire/SignedCall.d.ts +2 -0
  172. package/dist/wire/SignedCall.d.ts.map +1 -1
  173. package/dist/wire/StateShape.d.ts +1 -2
  174. package/dist/wire/StateShape.d.ts.map +1 -1
  175. package/dist/wire/StateShape.js +11 -11
  176. package/dist/wire/StateShape.js.map +1 -1
  177. package/dist/wire/TypeRef.d.ts +7 -0
  178. package/dist/wire/TypeRef.d.ts.map +1 -1
  179. package/dist/wire/binding.d.ts +11 -1
  180. package/dist/wire/binding.d.ts.map +1 -1
  181. package/dist/wire/binding.js +4 -2
  182. package/dist/wire/binding.js.map +1 -1
  183. package/dist/wire/card/CardOp.d.ts +4 -10
  184. package/dist/wire/card/CardOp.d.ts.map +1 -1
  185. package/dist/wire/refusals.d.ts +2 -1
  186. package/dist/wire/refusals.d.ts.map +1 -1
  187. package/dist/wire/refusals.js.map +1 -1
  188. package/dist/wire/topology/DeclaredFrond.d.ts +2 -1
  189. package/dist/wire/topology/DeclaredFrond.d.ts.map +1 -1
  190. package/dist/wire/topology/FrondPlacement.d.ts +2 -1
  191. package/dist/wire/topology/FrondPlacement.d.ts.map +1 -1
  192. package/package.json +3 -3
  193. package/src/BootRefusal.ts +11 -0
  194. package/src/CallIdentity.ts +2 -1
  195. package/src/Declared.ts +3 -7
  196. package/src/DeclaredHandler.ts +3 -8
  197. package/src/DeclaredSubject.ts +3 -5
  198. package/src/EffectiveOperation.ts +7 -6
  199. package/src/EffectiveOperationModel.ts +11 -7
  200. package/src/FrondConfig.ts +0 -2
  201. package/src/FrondDeclaration.ts +5 -8
  202. package/src/OperationOverride.ts +5 -3
  203. package/src/SourceView.ts +21 -3
  204. package/src/boot/AppLifecycle.ts +2 -1
  205. package/src/boot/Emissions.ts +18 -11
  206. package/src/boot/bootstrap.ts +32 -16
  207. package/src/boot/card.ts +1 -2
  208. package/src/boot/install.ts +1 -0
  209. package/src/boot/ownership.ts +35 -16
  210. package/src/boot/unregistered.ts +31 -33
  211. package/src/contract.ts +3 -0
  212. package/src/descriptor/CollectorEntry.ts +2 -7
  213. package/src/descriptor/FrondDescriptor.ts +5 -19
  214. package/src/descriptor/HandlerEntry.ts +2 -7
  215. package/src/descriptor/MiddlewareEntry.ts +2 -7
  216. package/src/descriptor/PresenterEntry.ts +2 -7
  217. package/src/descriptor/ProviderEntry.ts +2 -7
  218. package/src/descriptor/Subject.ts +10 -0
  219. package/src/descriptor/index.ts +1 -0
  220. package/src/diagnostic.ts +4 -2
  221. package/src/dispatch/ArgumentResolver.ts +54 -2
  222. package/src/dispatch/EntityLookup.ts +4 -0
  223. package/src/dispatch/Facade.ts +3 -0
  224. package/src/dispatch/HandlerFacade.ts +14 -6
  225. package/src/entry/facade.ts +38 -2
  226. package/src/index.ts +5 -1
  227. package/src/prefab/AggregateConstructor.ts +2 -2
  228. package/src/prefab/AggregateOf.ts +2 -2
  229. package/src/prefab/AggregateShape.ts +2 -2
  230. package/src/prefab/CrudConstructor.ts +18 -13
  231. package/src/prefab/CrudOps.ts +3 -3
  232. package/src/prefab/CrudViews.ts +2 -2
  233. package/src/prefab/Middleware.ts +13 -0
  234. package/src/prefab/MirrorConstructor.ts +2 -2
  235. package/src/prefab/RepositoryConstructor.ts +9 -9
  236. package/src/prefab/collector.ts +4 -3
  237. package/src/prefab/opsOf.ts +6 -0
  238. package/src/prefab/prefab.ts +5 -5
  239. package/src/prefab/presenter.ts +3 -3
  240. package/src/wire/Addresses.ts +4 -4
  241. package/src/wire/Cardinality.ts +4 -0
  242. package/src/wire/Facade.ts +6 -9
  243. package/src/wire/Invocation.ts +3 -1
  244. package/src/wire/InvocationContext.ts +6 -0
  245. package/src/wire/OperationContract.ts +4 -3
  246. package/src/wire/OperationKind.ts +4 -1
  247. package/src/wire/Placement.ts +4 -0
  248. package/src/wire/RouteKind.ts +3 -1
  249. package/src/wire/SignedCall.ts +2 -0
  250. package/src/wire/StateShape.ts +9 -11
  251. package/src/wire/TypeRef.ts +4 -0
  252. package/src/wire/binding.ts +10 -2
  253. package/src/wire/card/CardOp.ts +4 -10
  254. package/src/wire/refusals.ts +2 -1
  255. package/src/wire/topology/DeclaredFrond.ts +3 -1
  256. package/src/wire/topology/FrondPlacement.ts +3 -1
@@ -1,11 +1,15 @@
1
+ import { FieldValueValidator } from '@fougere/schema';
1
2
  import { ErrorCode } from '../wire/ErrorCode.js';
2
3
  import { FougereError } from '../wire/FougereError.js';
3
4
  import { collectedAs } from '../prefab/collector.js';
5
+ import { validateInput } from './validateInput.js';
4
6
  /** Resolves an operation's declared binding plan against one invocation. */
5
7
  export class ArgumentResolver {
6
8
  collectors;
7
- constructor(collectors) {
9
+ entities;
10
+ constructor(collectors, entities) {
8
11
  this.collectors = collectors;
12
+ this.entities = entities;
9
13
  }
10
14
  async resolve(plan, ctx) {
11
15
  const args = [];
@@ -21,7 +25,7 @@ export class ArgumentResolver {
21
25
  break;
22
26
  }
23
27
  case 'param': {
24
- args.push(ArgumentResolver.param(binding.source, binding.optional, ctx));
28
+ args.push(this.judged(binding.source, ArgumentResolver.param(binding.source, binding.optional, ctx)));
25
29
  break;
26
30
  }
27
31
  case 'fact':
@@ -49,6 +53,36 @@ export class ArgumentResolver {
49
53
  }
50
54
  return args;
51
55
  }
56
+ /**
57
+ * The arguments code wrote, judged where a door would have judged them: the input against
58
+ * the op's view, a value a collector would have produced through that collector's entity —
59
+ * which also puts back a `Date` that crossed a wire as text. Nothing is collected: what the
60
+ * caller left out stays out.
61
+ */
62
+ given(plan, input, ctx) {
63
+ const args = ctx.args ?? [];
64
+ return plan.map((binding, index) => {
65
+ const value = args[index];
66
+ switch (binding.source.kind) {
67
+ case 'context':
68
+ return ctx;
69
+ case 'input':
70
+ case 'fact':
71
+ case 'pipe':
72
+ return validateInput(input, { ...ctx, input: value }).input;
73
+ case 'collector': {
74
+ const collector = this.collectors?.(binding.source.typeName);
75
+ return collector ? collectedAs(collector, value) : value;
76
+ }
77
+ case 'param':
78
+ if (value === undefined && !binding.optional)
79
+ throw refused(binding.source.name, 'Required');
80
+ return this.judged(binding.source, value);
81
+ case 'query':
82
+ return value;
83
+ }
84
+ });
85
+ }
52
86
  /**
53
87
  * A value the caller typed in a path or a query string. `null` is a value, not a miss: only
54
88
  * `undefined` means absent, so `T | null` stays apart from `T | undefined`.
@@ -69,6 +103,18 @@ export class ArgumentResolver {
69
103
  throw refused(name, `Expected a ${coerce}, got ${JSON.stringify(value)}`);
70
104
  return coerced;
71
105
  }
106
+ /** `age: Sample['age']` obeys what `Sample.age` declares, after the query string was read. */
107
+ judged(source, value) {
108
+ if (value === undefined || !source.field)
109
+ return value;
110
+ const field = this.entities?.(source.field.entity)?.getFields()[source.field.name];
111
+ if (!field)
112
+ return value;
113
+ const verdict = FieldValueValidator.of(field).parse(value);
114
+ if ('message' in verdict)
115
+ throw refused(source.name, verdict.message);
116
+ return verdict.value;
117
+ }
72
118
  static number(value) {
73
119
  if (typeof value === 'number')
74
120
  return Number.isNaN(value) ? undefined : value;
@@ -1 +1 @@
1
- {"version":3,"file":"ArgumentResolver.js","sourceRoot":"","sources":["../../src/dispatch/ArgumentResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArgumentResolver.js","sourceRoot":"","sources":["../../src/dispatch/ArgumentResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { SchemaView } from '@fougere/schema';
2
+ /** An entity this process knows, by the name a type wrote — `Post` in `Post['id']`. */
3
+ export type EntityLookup = (name: string) => SchemaView | undefined;
4
+ //# sourceMappingURL=EntityLookup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityLookup.d.ts","sourceRoot":"","sources":["../../src/dispatch/EntityLookup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,uFAAuF;AACvF,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=EntityLookup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityLookup.js","sourceRoot":"","sources":["../../src/dispatch/EntityLookup.ts"],"names":[],"mappings":""}
@@ -5,6 +5,7 @@ import type { HandlerEntry } from '../descriptor/HandlerEntry.js';
5
5
  import type { PresenterEntry } from '../descriptor/PresenterEntry.js';
6
6
  import type { StateShape } from '../wire/StateShape.js';
7
7
  import type { OwnLogger } from '../builtin/OwnLoggers.js';
8
+ import type { EntityLookup } from './EntityLookup.js';
8
9
  /** What boot resolved around one handler, beyond the handler and the scope it resolves in. */
9
10
  export interface Facade {
10
11
  /** The container key this facade answers under. */
@@ -15,6 +16,8 @@ export interface Facade {
15
16
  handlers: readonly HandlerEntry[];
16
17
  /** The canonical operation table resolved before boot performs any side effect. */
17
18
  operations: EffectiveOperationsMap;
19
+ /** Where a parameter typed `Post['title']` finds the rules of `title`. */
20
+ entities: EntityLookup;
18
21
  /** Entity names this frond has a collector for. */
19
22
  collectors: Set<string>;
20
23
  /** The presenter over this handler's entity, when the frond declares one. */
@@ -1 +1 @@
1
- {"version":3,"file":"Facade.d.ts","sourceRoot":"","sources":["../../src/dispatch/Facade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,8FAA8F;AAC9F,MAAM,WAAW,MAAM;IACrB,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,wFAAwF;IACxF,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAClC,mFAAmF;IACnF,UAAU,EAAE,sBAAsB,CAAC;IACnC,mDAAmD;IACnD,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,6EAA6E;IAC7E,SAAS,EAAE,cAAc,GAAG,SAAS,CAAC;IACtC,4FAA4F;IAC5F,cAAc,EAAE,SAAS,CAAC;IAC1B,uFAAuF;IACvF,WAAW,EAAE,MAAM,aAAa,EAAE,CAAC;IACnC,sDAAsD;IACtD,KAAK,EAAE,UAAU,CAAC;IAClB,wEAAwE;IACxE,cAAc,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACvE,uDAAuD;IACvD,SAAS,EAAE,SAAS,CAAC;CACtB"}
1
+ {"version":3,"file":"Facade.d.ts","sourceRoot":"","sources":["../../src/dispatch/Facade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,8FAA8F;AAC9F,MAAM,WAAW,MAAM;IACrB,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,wFAAwF;IACxF,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAClC,mFAAmF;IACnF,UAAU,EAAE,sBAAsB,CAAC;IACnC,0EAA0E;IAC1E,QAAQ,EAAE,YAAY,CAAC;IACvB,mDAAmD;IACnD,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,6EAA6E;IAC7E,SAAS,EAAE,cAAc,GAAG,SAAS,CAAC;IACtC,4FAA4F;IAC5F,cAAc,EAAE,SAAS,CAAC;IAC1B,uFAAuF;IACvF,WAAW,EAAE,MAAM,aAAa,EAAE,CAAC;IACnC,sDAAsD;IACtD,KAAK,EAAE,UAAU,CAAC;IAClB,wEAAwE;IACxE,cAAc,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACvE,uDAAuD;IACvD,SAAS,EAAE,SAAS,CAAC;CACtB"}
@@ -29,6 +29,8 @@ export declare class HandlerFacade {
29
29
  * arguments bound, the row projected onto the view this audience sees.
30
30
  */
31
31
  private answer;
32
+ /** What code wrote, judged; or what a door received, read through the binding plan. */
33
+ private argumentsOf;
32
34
  /**
33
35
  * The computed fields a presenter adds, over the rows the handler answered and BEFORE the
34
36
  * view projects them. A presenter runs on the server, so what it reads is the row the
@@ -1 +1 @@
1
- {"version":3,"file":"HandlerFacade.d.ts","sourceRoot":"","sources":["../../src/dispatch/HandlerFacade.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AASpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG3E,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAQlE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,0DAA0D;AAC1D,qBAAa,aAAa;IAsBtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAvBzB,oEAAoE;IACpE,QAAQ,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;IACrD,uCAAuC;IACvC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAElC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiC;IAC7D,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA6B;IAChE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;IAClE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAExB;IACF,0FAA0F;IAC1F,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAE1D,OAAO,CAAC,iBAAiB,CAGvB;gBAGiB,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM;IA6BjC,6EAA6E;IACvE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAiC/E;;;OAGG;YACW,MAAM;IAwBpB;;;;;OAKG;IACH,OAAO,CAAC,OAAO;IAef,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,CAAC,MAAM;IASd,wEAAwE;IACxE,OAAO,CAAC,2BAA2B;IAWnC,oEAAoE;IACpE,OAAO,CAAC,MAAM;IAed,kEAAkE;IAClE,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,oBAAoB;IAM5B,uFAAuF;IACvF,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,qBAAqB;CAiB9B"}
1
+ {"version":3,"file":"HandlerFacade.d.ts","sourceRoot":"","sources":["../../src/dispatch/HandlerFacade.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AASpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG3E,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAQlE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,0DAA0D;AAC1D,qBAAa,aAAa;IAoBtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IArBzB,oEAAoE;IACpE,QAAQ,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;IACrD,uCAAuC;IACvC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAElC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiC;IAC7D,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA6B;IAChE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;IAClE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,0FAA0F;IAC1F,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAE1D,OAAO,CAAC,iBAAiB,CAGvB;gBAGiB,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM;IA8BjC,6EAA6E;IACvE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAiC/E;;;OAGG;YACW,MAAM;IAyBpB,uFAAuF;YACzE,WAAW;IAOzB;;;;;OAKG;IACH,OAAO,CAAC,OAAO;IAef,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,CAAC,MAAM;IASd,wEAAwE;IACxE,OAAO,CAAC,2BAA2B;IAWnC,oEAAoE;IACpE,OAAO,CAAC,MAAM;IAed,kEAAkE;IAClE,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,oBAAoB;IAM5B,uFAAuF;IACvF,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,qBAAqB;CAiB9B"}
@@ -23,7 +23,7 @@ export class HandlerFacade {
23
23
  instance;
24
24
  implementationKeys = new Map();
25
25
  implementationInstances = new Map();
26
- arguments = new ArgumentResolver((typeName) => this.collectorResolver(typeName));
26
+ arguments;
27
27
  /** A computed field's parameters and the collectors in scope are both boot-time facts. */
28
28
  presenterPlans;
29
29
  collectorResolver = (typeName) => {
@@ -39,6 +39,7 @@ export class HandlerFacade {
39
39
  this.scope = scope;
40
40
  this.facade = facade;
41
41
  this.refuseCrudWithoutRepository(handler);
42
+ this.arguments = new ArgumentResolver((typeName) => this.collectorResolver(typeName), facade.entities);
42
43
  this.presenterPlans = facade.presenter
43
44
  ? presenterPlans(facade.presenter, facade.collectors)
44
45
  : new Map();
@@ -92,18 +93,27 @@ export class HandlerFacade {
92
93
  */
93
94
  async answer(op, contract, context, invocation, entered) {
94
95
  const state = this.facade.state.judge(context.state, this.handler.address, op, entered);
95
- const validated = validateInput(contract.input, { ...invocation, state });
96
+ const written = invocation.args !== undefined;
97
+ const validated = written ? { ...invocation, state } : validateInput(contract.input, { ...invocation, state });
96
98
  context.invocation = validated;
97
- const args = contract.binding ? await this.arguments.resolve(contract.binding, validated) : [];
99
+ const args = await this.argumentsOf(contract, validated);
98
100
  const { instance, method } = this.resolveImplementation(op);
99
101
  const answered = await instance[method](...args);
100
102
  const view = this.viewOf(op);
101
103
  const { presenter } = this.facade;
102
- const computed = view.closed || !presenter
104
+ const computed = written || view.closed || !presenter
103
105
  ? answered
104
106
  : await this.present(op, presenter, answered, validated);
105
107
  return view.project(computed);
106
108
  }
109
+ /** What code wrote, judged; or what a door received, read through the binding plan. */
110
+ async argumentsOf(contract, invocation) {
111
+ if (!contract.binding)
112
+ return [];
113
+ if (invocation.args !== undefined)
114
+ return this.arguments.given(contract.binding, contract.input, invocation);
115
+ return this.arguments.resolve(contract.binding, invocation);
116
+ }
107
117
  /**
108
118
  * The computed fields a presenter adds, over the rows the handler answered and BEFORE the
109
119
  * view projects them. A presenter runs on the server, so what it reads is the row the
@@ -1 +1 @@
1
- {"version":3,"file":"HandlerFacade.js","sourceRoot":"","sources":["../../src/dispatch/HandlerFacade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HandlerFacade.js","sourceRoot":"","sources":["../../src/dispatch/HandlerFacade.ts"],"names":[],"mappings":"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"}
@@ -4,12 +4,21 @@ type Operation = (...args: any[]) => unknown;
4
4
  /** Facade for a contract whose operation names are only known at discovery. */
5
5
  export declare function dynamicOperations(operation: (name: string) => Operation): Record<string, Operation>;
6
6
  /**
7
- * Turns facade method calls into canonical dispatches.
7
+ * The facade code calls: each operation takes the handler's own arguments.
8
8
  *
9
9
  * `received` is what this side puts back before handing the answer over: a row leaves as data
10
10
  * and `date-time` means a `Date` on both sides. A facade built without one hands over what the
11
11
  * wire carried, which is what a caller holding no schema can do.
12
+ *
13
+ * The trailing `undefined`s are dropped because a JSON array writes them `null`, and the far
14
+ * side would read a value where the caller left one out. An optional parameter is always last.
12
15
  */
13
16
  export declare function facadeOperations(dispatcher: DispatchPort, address: string, operationNames?: Iterable<string>, surface?: string, received?: Received): Record<string, Operation>;
17
+ /**
18
+ * What a door sends: the invocation it received, as a `Call`. A door holds a request, not the
19
+ * handler's arguments, so the binding plan reads it on the far side — collectors and presenter
20
+ * included.
21
+ */
22
+ export declare function callOperations(dispatcher: DispatchPort, address: string, operationNames?: Iterable<string>, surface?: string, received?: Received): Record<string, Operation>;
14
23
  export {};
15
24
  //# sourceMappingURL=facade.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"facade.d.ts","sourceRoot":"","sources":["../../src/entry/facade.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,KAAK,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC;AAE7C,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAcnG;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,YAAY,EACxB,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,EACjC,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,QAAQ,GAClB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAiB3B"}
1
+ {"version":3,"file":"facade.d.ts","sourceRoot":"","sources":["../../src/entry/facade.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,KAAK,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC;AAE7C,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAcnG;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,YAAY,EACxB,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,EACjC,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,QAAQ,GAClB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAI3B;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,YAAY,EACxB,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,EACjC,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,QAAQ,GAClB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAI3B"}
@@ -15,14 +15,30 @@ export function dynamicOperations(operation) {
15
15
  });
16
16
  }
17
17
  /**
18
- * Turns facade method calls into canonical dispatches.
18
+ * The facade code calls: each operation takes the handler's own arguments.
19
19
  *
20
20
  * `received` is what this side puts back before handing the answer over: a row leaves as data
21
21
  * and `date-time` means a `Date` on both sides. A facade built without one hands over what the
22
22
  * wire carried, which is what a caller holding no schema can do.
23
+ *
24
+ * The trailing `undefined`s are dropped because a JSON array writes them `null`, and the far
25
+ * side would read a value where the caller left one out. An optional parameter is always last.
23
26
  */
24
27
  export function facadeOperations(dispatcher, address, operationNames, surface, received) {
25
- const operation = (name) => async (invocation) => {
28
+ const send = sending(dispatcher, address, surface, received);
29
+ return operationsOf((name) => (...args) => send(name, { args: withoutTrailingAbsence(args) }), operationNames);
30
+ }
31
+ /**
32
+ * What a door sends: the invocation it received, as a `Call`. A door holds a request, not the
33
+ * handler's arguments, so the binding plan reads it on the far side — collectors and presenter
34
+ * included.
35
+ */
36
+ export function callOperations(dispatcher, address, operationNames, surface, received) {
37
+ const send = sending(dispatcher, address, surface, received);
38
+ return operationsOf((name) => (invocation) => send(name, invocation), operationNames);
39
+ }
40
+ function sending(dispatcher, address, surface, received) {
41
+ return async (name, invocation) => {
26
42
  const answer = await dispatcher.dispatch(new Call(new RouteAddress({
27
43
  address,
28
44
  operation: name,
@@ -30,8 +46,16 @@ export function facadeOperations(dispatcher, address, operationNames, surface, r
30
46
  }), invocation));
31
47
  return received ? received(name, answer) : answer;
32
48
  };
49
+ }
50
+ function operationsOf(operation, operationNames) {
33
51
  return operationNames
34
52
  ? Object.fromEntries([...operationNames].map((name) => [name, operation(name)]))
35
53
  : dynamicOperations(operation);
36
54
  }
55
+ function withoutTrailingAbsence(args) {
56
+ let length = args.length;
57
+ while (length > 0 && args[length - 1] === undefined)
58
+ length--;
59
+ return args.slice(0, length);
60
+ }
37
61
  //# sourceMappingURL=facade.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"facade.js","sourceRoot":"","sources":["../../src/entry/facade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAMvD,+EAA+E;AAC/E,MAAM,UAAU,iBAAiB,CAAC,SAAsC;IACtE,MAAM,eAAe,GAAG,CAAC,IAAqB,EAAkB,EAAE,CAChE,OAAO,IAAI,KAAK,QAAQ;WACrB,IAAI,KAAK,MAAM;WACf,IAAI,KAAK,QAAQ;WACjB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAE5C,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE;QACnB,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;QAC7C,wBAAwB,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC;YACjE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;YACnF,CAAC,CAAC,SAAS,CAAC;KACf,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAAwB,EACxB,OAAe,EACf,cAAiC,EACjC,OAAgB,EAChB,QAAmB;IAEnB,MAAM,SAAS,GAAG,CAAC,IAAY,EAAa,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;QAClE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAC/C,IAAI,YAAY,CAAC;YACf,OAAO;YACP,SAAS,EAAE,IAAI;YACf,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9C,CAAC,EACF,UAAU,CACX,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACpD,CAAC,CAAC;IAEF,OAAO,cAAc;QACnB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"facade.js","sourceRoot":"","sources":["../../src/entry/facade.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -23,6 +23,7 @@ export type { CrudConstructor } from './prefab/CrudConstructor.js';
23
23
  export type { CrudOpName } from './prefab/CrudOpName.js';
24
24
  export type { CrudOps } from './prefab/CrudOps.js';
25
25
  export type { CrudViews } from './prefab/CrudViews.js';
26
+ export { Middleware } from './prefab/Middleware.js';
26
27
  export { Mirror } from './prefab/MirrorConstructor.js';
27
28
  export type { MirrorConstructor } from './prefab/MirrorConstructor.js';
28
29
  export type { MirrorOf } from './prefab/MirrorOf.js';
@@ -61,6 +62,7 @@ export type { AppMiddleware } from './wire/AppMiddleware.js';
61
62
  export type { AppNext } from './wire/AppNext.js';
62
63
  export type { OperationContext } from './wire/OperationContext.js';
63
64
  export { assertIdentityCard, RPC_ADDRESS, ENVELOPE_BYTES, maxBodyBytes, maxFrameBytes, setMaxBodyBytes } from './contract.js';
65
+ export { OPERATION_KINDS, CARDINALITIES, PLACEMENTS, type OperationKind, type Cardinality, type Placement } from './contract.js';
64
66
  export { createLocalRunner, createAppRunner } from './boot/runner.js';
65
67
  export { frond } from './FrondDeclaration.js';
66
68
  export type { Declared } from './Declared.js';
@@ -69,6 +71,7 @@ export type { FrondDeclaration } from './FrondDeclaration.js';
69
71
  export { identityCardOf } from './boot/card.js';
70
72
  export { declaredTopologyOf } from './boot/declared.js';
71
73
  export { refusalsOf, type Refusable } from './wire/refusals.js';
74
+ export type { Binding } from './Binding.js';
72
75
  export type { Addresses } from './wire/Addresses.js';
73
76
  export type { Answer } from './wire/Answer.js';
74
77
  export type { AnyHandler } from './wire/AnyHandler.js';
@@ -102,7 +105,7 @@ export { Storage, togetherKeyOf } from './storage/Storage.js';
102
105
  export type { Constraint } from './Constraint.js';
103
106
  export type { Source } from './Source.js';
104
107
  export type { SourceConfig } from './SourceConfig.js';
105
- export type { SourceView } from './SourceView.js';
108
+ export { sourceViewOf, type SourceView } from './SourceView.js';
106
109
  export { Sources } from './Source.js';
107
110
  export { storageOver } from './storage/Store.js';
108
111
  export type { Store } from './storage/Store.js';
@@ -111,6 +114,7 @@ export type { App } from './boot/App.js';
111
114
  export type { CreateAppOptions } from './boot/CreateAppOptions.js';
112
115
  export type { ScanResult } from './scan.js';
113
116
  export type { Diagnostic } from './diagnostic.js';
117
+ export { BootRefusal } from './BootRefusal.js';
114
118
  export { DEFAULT_CONVENTIONS, frondDirsOf, frondPackage, providerDirsOf, resolveConventions, type Conventions } from './Conventions.js';
115
119
  export { type ConventionsInput } from './ConventionsInput.js';
116
120
  export type { CollectorEntry } from './descriptor/CollectorEntry.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@ export { statedFronds } from './StatedFrond.js';
8
8
  export { nested } from './boot/nesting.js';
9
9
  export { buildGraph, clusterEntities, suggestSplit } from './DomainCluster.js';
10
10
  export { Crud } from './prefab/CrudConstructor.js';
11
+ export { Middleware } from './prefab/Middleware.js';
11
12
  export { Mirror } from './prefab/MirrorConstructor.js';
12
13
  export { Presenter } from './prefab/presenter.js';
13
14
  export { Collector } from './prefab/collector.js';
@@ -28,6 +29,7 @@ export { driftOf, agrees, explain } from './contract.js';
28
29
  export { resolveEffectiveOperations } from './EffectiveOperationModel.js';
29
30
  export { FougereError, ErrorCode, validationErrorsOf } from './contract.js';
30
31
  export { assertIdentityCard, RPC_ADDRESS, ENVELOPE_BYTES, maxBodyBytes, maxFrameBytes, setMaxBodyBytes } from './contract.js';
32
+ export { OPERATION_KINDS, CARDINALITIES, PLACEMENTS } from './contract.js';
31
33
  export { createLocalRunner, createAppRunner } from './boot/runner.js';
32
34
  // A frond an app STATES, for a boot that will not scan. No disk, no `typescript` — which
33
35
  // is why it sits here and not in `/node`, beside the scanner that reads a project.
@@ -55,8 +57,10 @@ export { applyConfig } from './boot/apply.js';
55
57
  export { Config } from './builtin/config.js';
56
58
  // A VALUE as well as a type: it is what a wrapper extends, which is the whole of declaring one.
57
59
  export { Storage, togetherKeyOf } from './storage/Storage.js';
60
+ export { sourceViewOf } from './SourceView.js';
58
61
  export { Sources } from './Source.js';
59
62
  export { storageOver } from './storage/Store.js';
63
+ export { BootRefusal } from './BootRefusal.js';
60
64
  export { DEFAULT_CONVENTIONS, frondDirsOf, frondPackage, providerDirsOf, resolveConventions } from './Conventions.js';
61
65
  export { AUTH } from './boot/AuthRuntime.js';
62
66
  export { Fronds } from './descriptor/Fronds.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { AggregateShape } from './AggregateShape.js';
2
- import { type EntityConstructor } from '@fougere/schema';
3
- export type AggregateConstructor<E extends readonly EntityConstructor[]> = (new (...storages: unknown[]) => AggregateShape<E>) & {
2
+ import { type Entity } from '@fougere/schema';
3
+ export type AggregateConstructor<E extends readonly Entity[]> = (new (...storages: unknown[]) => AggregateShape<E>) & {
4
4
  readonly __entity: unknown;
5
5
  /** The entities this class owns. Present from two on — an owner of one owns nothing. */
6
6
  readonly __owns: E;
@@ -1 +1 @@
1
- {"version":3,"file":"AggregateConstructor.d.ts","sourceRoot":"","sources":["../../src/prefab/AggregateConstructor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,SAAS,iBAAiB,EAAE,IACrE,CAAC,KAAK,GAAG,QAAQ,EAAE,OAAO,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG;IACpD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,wFAAwF;IACxF,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"AggregateConstructor.d.ts","sourceRoot":"","sources":["../../src/prefab/AggregateConstructor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,IAC1D,CAAC,KAAK,GAAG,QAAQ,EAAE,OAAO,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG;IACpD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,wFAAwF;IACxF,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;CACpB,CAAC"}
@@ -1,7 +1,7 @@
1
- import { type EntityConstructor } from '@fougere/schema';
1
+ import { type Entity } from '@fougere/schema';
2
2
  import type { Storage } from '../storage/Storage.js';
3
3
  /** The tuple an aggregate holds — the readable form of {@link AggregateShape}'s member. */
4
- export type AggregateOf<E extends readonly EntityConstructor[]> = {
4
+ export type AggregateOf<E extends readonly Entity[]> = {
5
5
  [K in keyof E]: Storage<InstanceType<E[K]>>;
6
6
  };
7
7
  //# sourceMappingURL=AggregateOf.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AggregateOf.d.ts","sourceRoot":"","sources":["../../src/prefab/AggregateOf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,2FAA2F;AAC3F,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,SAAS,iBAAiB,EAAE,IAC5D;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC"}
1
+ {"version":3,"file":"AggregateOf.d.ts","sourceRoot":"","sources":["../../src/prefab/AggregateOf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,2FAA2F;AAC3F,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,IACjD;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { Storage } from '../storage/Storage.js';
2
- import type { EntityConstructor } from '@fougere/schema';
2
+ import type { Entity } from '@fougere/schema';
3
3
  /** What an aggregate's subclass sees. */
4
- export declare abstract class AggregateShape<E extends readonly EntityConstructor[]> {
4
+ export declare abstract class AggregateShape<E extends readonly Entity[]> {
5
5
  protected storages: {
6
6
  [K in keyof E]: Storage<InstanceType<E[K]>>;
7
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AggregateShape.d.ts","sourceRoot":"","sources":["../../src/prefab/AggregateShape.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,yCAAyC;AACzC,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,cAAc,CAAC,CAAC,SAAS,SAAS,iBAAiB,EAAE;IACjF,SAAS,CAAC,QAAQ,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC;CACrE"}
1
+ {"version":3,"file":"AggregateShape.d.ts","sourceRoot":"","sources":["../../src/prefab/AggregateShape.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,yCAAyC;AACzC,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,cAAc,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE;IACtE,SAAS,CAAC,QAAQ,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC;CACrE"}
@@ -1,4 +1,4 @@
1
- import { type EntityConstructor } from '@fougere/schema';
1
+ import { type Entity } from '@fougere/schema';
2
2
  import type { Storage } from '../storage/Storage.js';
3
3
  import type { OperationContract } from '../wire/OperationContract.js';
4
4
  import type { CrudViews } from './CrudViews.js';
@@ -28,5 +28,5 @@ export interface CrudConstructor<T, V = {}> {
28
28
  *
29
29
  * Documented: [handlers](https://fougere.dev/docs/business/handlers).
30
30
  */
31
- export declare function Crud<E extends EntityConstructor, V extends CrudViews | EntityConstructor = {}>(entity: E, output?: V): CrudConstructor<InstanceType<E>, V>;
31
+ export declare function Crud<E extends Entity, V extends CrudViews | Entity = {}>(entity: E, output?: V): CrudConstructor<InstanceType<E>, V>;
32
32
  //# sourceMappingURL=CrudConstructor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CrudConstructor.d.ts","sourceRoot":"","sources":["../../src/prefab/CrudConstructor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,iBAAiB,EAAmB,MAAM,iBAAiB,CAAC;AAEtF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAInD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAIhE;AA2DD,4FAA4F;AAC5F,MAAM,WAAW,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;IAIxC,KAAK,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CACnD;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,iBAAiB,EAAE,CAAC,SAAS,SAAS,GAAG,iBAAiB,GAAG,EAAE,EAC5F,MAAM,EAAE,CAAC,EACT,MAAM,CAAC,EAAE,CAAC,GACT,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAgCrC"}
1
+ {"version":3,"file":"CrudConstructor.d.ts","sourceRoot":"","sources":["../../src/prefab/CrudConstructor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,MAAM,EAAmB,MAAM,iBAAiB,CAAC;AAErF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAInD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAIhE;AAgED,4FAA4F;AAC5F,MAAM,WAAW,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;IAIxC,KAAK,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CACnD;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,SAAS,GAAG,MAAM,GAAG,EAAE,EACtE,MAAM,EAAE,CAAC,EACT,MAAM,CAAC,EAAE,CAAC,GACT,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAgCrC"}
@@ -1,4 +1,4 @@
1
- import { lowerFirst } from '@fougere/schema';
1
+ import { FieldSet, lowerFirst } from '@fougere/schema';
2
2
  import { targetOf } from './prefab.js';
3
3
  import { pageOf } from '../wire/Page.js';
4
4
  /**
@@ -19,11 +19,11 @@ export function subjectOf(ctor, address) {
19
19
  const target = targetOf(ctor);
20
20
  return target?.name ? lowerFirst(target.name) : address;
21
21
  }
22
- /** The id of the row an op acts on — a route segment, or a query fallback. */
23
- const byId = { name: 'id', source: { kind: 'param', name: 'id' }, optional: false };
22
+ /** The id of the row an op acts on — `id: Post['id']`, which a route places before the op. */
23
+ const byId = (entity, field) => ({ name: 'id', source: { kind: 'param', name: 'id', field: { entity, name: field }, identifies: entity }, optional: false });
24
24
  const fromBody = { name: 'input', source: { kind: 'input' }, optional: false };
25
25
  /** The same five, written as the scan would have written them. */
26
- const idParam = { name: 'id', type: { raw: 'string', name: 'string' } };
26
+ const idParam = (entity, field) => ({ name: 'id', type: { raw: `${entity}['${field}']`, name: 'string', field: { entity, name: field }, identifies: entity } });
27
27
  const inputParam = (entity) => ({ name: 'input', type: { raw: `Partial<${entity}>`, name: entity } });
28
28
  const returns = (raw, name, extra) => ({ raw, name, ...extra });
29
29
  /**
@@ -34,6 +34,9 @@ const returns = (raw, name, extra) => ({ raw, name, ...extra });
34
34
  function crudOps(entity) {
35
35
  const name = entity.name ?? 'Entity';
36
36
  const input = inputParam(name);
37
+ const primary = FieldSet.of(entity.getFields()).primary ?? 'id';
38
+ const id = byId(name, primary);
39
+ const idSignature = idParam(name, primary);
37
40
  return {
38
41
  list: {
39
42
  output: entity, cardinality: 'page',
@@ -44,8 +47,8 @@ function crudOps(entity) {
44
47
  },
45
48
  },
46
49
  findById: {
47
- output: entity, cardinality: 'maybe', binding: [byId],
48
- signature: { name: 'findById', returnType: returns(`${name} | undefined`, name, { nullable: true }), params: [idParam] },
50
+ output: entity, cardinality: 'maybe', binding: [id],
51
+ signature: { name: 'findById', returnType: returns(`${name} | undefined`, name, { nullable: true }), params: [idSignature] },
49
52
  },
50
53
  create: {
51
54
  input: entity, output: entity, cardinality: 'one', binding: [fromBody],
@@ -54,12 +57,12 @@ function crudOps(entity) {
54
57
  // The patch view carries its own mode: an absent field is untouched, an
55
58
  // immutable one re-supplied is refused.
56
59
  update: {
57
- input: entity.partial?.(), output: entity, cardinality: 'one', binding: [byId, fromBody],
58
- signature: { name: 'update', returnType: returns(name, name), params: [idParam, input] },
60
+ input: entity.partial?.(), output: entity, cardinality: 'one', binding: [id, fromBody],
61
+ signature: { name: 'update', returnType: returns(name, name), params: [idSignature, input] },
59
62
  },
60
63
  delete: {
61
- cardinality: 'none', binding: [byId],
62
- signature: { name: 'delete', returnType: returns('boolean', 'boolean'), params: [idParam] },
64
+ cardinality: 'none', binding: [id],
65
+ signature: { name: 'delete', returnType: returns('boolean', 'boolean'), params: [idSignature] },
63
66
  },
64
67
  };
65
68
  }