@owlmeans/server-planning 0.1.18-rc.2 → 0.1.18-rc.21

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 (217) hide show
  1. package/README.md +40 -12
  2. package/agent-meta/manifest.json +2 -2
  3. package/agent-meta/skills/server-planning/SKILL.md +193 -18
  4. package/build/actions/cards.d.ts +3 -5
  5. package/build/actions/cards.d.ts.map +1 -1
  6. package/build/actions/cards.js +1 -1
  7. package/build/actions/cards.js.map +1 -1
  8. package/build/actions/execute.d.ts +24 -3
  9. package/build/actions/execute.d.ts.map +1 -1
  10. package/build/actions/execute.js +82 -8
  11. package/build/actions/execute.js.map +1 -1
  12. package/build/actions/schemas.d.ts +27 -5
  13. package/build/actions/schemas.d.ts.map +1 -1
  14. package/build/actions/schemas.js +67 -7
  15. package/build/actions/schemas.js.map +1 -1
  16. package/build/actions/specs.d.ts +2 -4
  17. package/build/actions/specs.d.ts.map +1 -1
  18. package/build/actions/specs.js.map +1 -1
  19. package/build/actions/types.d.ts +4 -0
  20. package/build/actions/types.d.ts.map +1 -0
  21. package/build/actions/types.js +2 -0
  22. package/build/actions/types.js.map +1 -0
  23. package/build/actions/watch.d.ts.map +1 -1
  24. package/build/actions/watch.js +4 -2
  25. package/build/actions/watch.js.map +1 -1
  26. package/build/conformance/assert.d.ts +20 -0
  27. package/build/conformance/assert.d.ts.map +1 -0
  28. package/build/conformance/assert.js +54 -0
  29. package/build/conformance/assert.js.map +1 -0
  30. package/build/conformance/cases.d.ts +7 -0
  31. package/build/conformance/cases.d.ts.map +1 -0
  32. package/build/conformance/cases.js +447 -0
  33. package/build/conformance/cases.js.map +1 -0
  34. package/build/conformance/consts.d.ts +19 -0
  35. package/build/conformance/consts.d.ts.map +1 -0
  36. package/build/conformance/consts.js +42 -0
  37. package/build/conformance/consts.js.map +1 -0
  38. package/build/conformance/fixtures.d.ts +14 -0
  39. package/build/conformance/fixtures.d.ts.map +1 -0
  40. package/build/conformance/fixtures.js +109 -0
  41. package/build/conformance/fixtures.js.map +1 -0
  42. package/build/conformance/index.d.ts +12 -0
  43. package/build/conformance/index.d.ts.map +1 -0
  44. package/build/conformance/index.js +11 -0
  45. package/build/conformance/index.js.map +1 -0
  46. package/build/conformance/types.d.ts +18 -0
  47. package/build/conformance/types.d.ts.map +1 -0
  48. package/build/conformance/types.js +2 -0
  49. package/build/conformance/types.js.map +1 -0
  50. package/build/consts.d.ts +5 -0
  51. package/build/consts.d.ts.map +1 -1
  52. package/build/consts.js +5 -0
  53. package/build/consts.js.map +1 -1
  54. package/build/definitions.d.ts +17 -0
  55. package/build/definitions.d.ts.map +1 -0
  56. package/build/definitions.js +211 -0
  57. package/build/definitions.js.map +1 -0
  58. package/build/executor/changes.d.ts +2 -2
  59. package/build/executor/changes.d.ts.map +1 -1
  60. package/build/executor/changes.js.map +1 -1
  61. package/build/executor/code.d.ts +3 -3
  62. package/build/executor/code.d.ts.map +1 -1
  63. package/build/executor/code.js +1 -1
  64. package/build/executor/code.js.map +1 -1
  65. package/build/executor/consts.local.d.ts +5 -0
  66. package/build/executor/consts.local.d.ts.map +1 -0
  67. package/build/executor/consts.local.js +6 -0
  68. package/build/executor/consts.local.js.map +1 -0
  69. package/build/executor/creator.d.ts +30 -0
  70. package/build/executor/creator.d.ts.map +1 -0
  71. package/build/executor/creator.js +46 -0
  72. package/build/executor/creator.js.map +1 -0
  73. package/build/executor/resolve.d.ts +31 -23
  74. package/build/executor/resolve.d.ts.map +1 -1
  75. package/build/executor/resolve.js +74 -15
  76. package/build/executor/resolve.js.map +1 -1
  77. package/build/executor/types.d.ts +24 -0
  78. package/build/executor/types.d.ts.map +1 -0
  79. package/build/executor/types.js +2 -0
  80. package/build/executor/types.js.map +1 -0
  81. package/build/executor/validate.d.ts +6 -5
  82. package/build/executor/validate.d.ts.map +1 -1
  83. package/build/executor/validate.js +18 -15
  84. package/build/executor/validate.js.map +1 -1
  85. package/build/executor.d.ts +10 -7
  86. package/build/executor.d.ts.map +1 -1
  87. package/build/executor.js +17 -14
  88. package/build/executor.js.map +1 -1
  89. package/build/facade.d.ts +20 -2
  90. package/build/facade.d.ts.map +1 -1
  91. package/build/facade.js +128 -18
  92. package/build/facade.js.map +1 -1
  93. package/build/helper.d.ts +3 -2
  94. package/build/helper.d.ts.map +1 -1
  95. package/build/helper.js +7 -3
  96. package/build/helper.js.map +1 -1
  97. package/build/index.d.ts +1 -0
  98. package/build/index.d.ts.map +1 -1
  99. package/build/index.js +1 -0
  100. package/build/index.js.map +1 -1
  101. package/build/projection.d.ts +2 -10
  102. package/build/projection.d.ts.map +1 -1
  103. package/build/projection.js +1 -1
  104. package/build/projection.js.map +1 -1
  105. package/build/queue/consts.d.ts +5 -0
  106. package/build/queue/consts.d.ts.map +1 -0
  107. package/build/queue/consts.js +5 -0
  108. package/build/queue/consts.js.map +1 -0
  109. package/build/queue/index.d.ts +4 -16
  110. package/build/queue/index.d.ts.map +1 -1
  111. package/build/queue/index.js +2 -4
  112. package/build/queue/index.js.map +1 -1
  113. package/build/queue/types.d.ts +13 -0
  114. package/build/queue/types.d.ts.map +1 -0
  115. package/build/queue/types.js +2 -0
  116. package/build/queue/types.js.map +1 -0
  117. package/build/registry.d.ts +2 -21
  118. package/build/registry.d.ts.map +1 -1
  119. package/build/registry.js +3 -1
  120. package/build/registry.js.map +1 -1
  121. package/build/service.d.ts +3 -16
  122. package/build/service.d.ts.map +1 -1
  123. package/build/service.js +9 -0
  124. package/build/service.js.map +1 -1
  125. package/build/store/commits.d.ts.map +1 -1
  126. package/build/store/commits.js +3 -1
  127. package/build/store/commits.js.map +1 -1
  128. package/build/store/composite.d.ts +1 -0
  129. package/build/store/composite.d.ts.map +1 -1
  130. package/build/store/composite.js +3 -0
  131. package/build/store/composite.js.map +1 -1
  132. package/build/store/consts.local.d.ts +2 -0
  133. package/build/store/consts.local.d.ts.map +1 -0
  134. package/build/store/consts.local.js +2 -0
  135. package/build/store/consts.local.js.map +1 -0
  136. package/build/store/fold.d.ts +4 -3
  137. package/build/store/fold.d.ts.map +1 -1
  138. package/build/store/fold.js +14 -6
  139. package/build/store/fold.js.map +1 -1
  140. package/build/store/memory.d.ts +12 -0
  141. package/build/store/memory.d.ts.map +1 -1
  142. package/build/store/memory.js +0 -0
  143. package/build/store/memory.js.map +1 -1
  144. package/build/store/types.d.ts +15 -1
  145. package/build/store/types.d.ts.map +1 -1
  146. package/build/store/types.local.d.ts +3 -0
  147. package/build/store/types.local.d.ts.map +1 -0
  148. package/build/store/types.local.js +2 -0
  149. package/build/store/types.local.js.map +1 -0
  150. package/build/types.d.ts +111 -1
  151. package/build/types.d.ts.map +1 -1
  152. package/build/types.local.d.ts +7 -0
  153. package/build/types.local.d.ts.map +1 -0
  154. package/build/types.local.js +2 -0
  155. package/build/types.local.js.map +1 -0
  156. package/build/utils/index.d.ts +1 -0
  157. package/build/utils/index.d.ts.map +1 -1
  158. package/build/utils/scope.d.ts +39 -2
  159. package/build/utils/scope.d.ts.map +1 -1
  160. package/build/utils/scope.js +79 -15
  161. package/build/utils/scope.js.map +1 -1
  162. package/build/utils/types.d.ts +8 -0
  163. package/build/utils/types.d.ts.map +1 -0
  164. package/build/utils/types.js +2 -0
  165. package/build/utils/types.js.map +1 -0
  166. package/package.json +28 -20
  167. package/src/actions/cards.ts +2 -6
  168. package/src/actions/execute.ts +95 -12
  169. package/src/actions/schemas.ts +81 -9
  170. package/src/actions/specs.ts +1 -2
  171. package/src/actions/types.ts +4 -0
  172. package/src/actions/watch.ts +5 -2
  173. package/src/conformance/assert.ts +59 -0
  174. package/src/conformance/cases.ts +522 -0
  175. package/src/conformance/consts.ts +44 -0
  176. package/src/conformance/fixtures.ts +121 -0
  177. package/src/conformance/index.ts +11 -0
  178. package/src/conformance/types.ts +20 -0
  179. package/src/consts.ts +6 -0
  180. package/src/definitions.ts +250 -0
  181. package/src/executor/changes.ts +2 -6
  182. package/src/executor/code.ts +3 -9
  183. package/src/executor/consts.local.ts +8 -0
  184. package/src/executor/creator.ts +51 -0
  185. package/src/executor/resolve.ts +84 -40
  186. package/src/executor/types.ts +25 -0
  187. package/src/executor/validate.ts +22 -26
  188. package/src/executor.ts +21 -21
  189. package/src/facade.ts +143 -25
  190. package/src/helper.ts +7 -3
  191. package/src/index.ts +1 -0
  192. package/src/projection.ts +4 -14
  193. package/src/queue/consts.ts +5 -0
  194. package/src/queue/index.ts +6 -21
  195. package/src/queue/types.ts +14 -0
  196. package/src/registry.ts +5 -29
  197. package/src/service.ts +13 -20
  198. package/src/store/commits.ts +5 -4
  199. package/src/store/composite.ts +3 -0
  200. package/src/store/consts.local.ts +1 -0
  201. package/src/store/fold.ts +15 -12
  202. package/src/store/memory.ts +0 -0
  203. package/src/store/types.local.ts +3 -0
  204. package/src/store/types.ts +16 -1
  205. package/src/types.local.ts +7 -0
  206. package/src/types.ts +126 -4
  207. package/src/utils/index.ts +1 -0
  208. package/src/utils/scope.ts +97 -17
  209. package/src/utils/types.ts +8 -0
  210. package/tests/access.spec.ts +160 -0
  211. package/tests/conformance.spec.ts +47 -0
  212. package/tests/create-example.spec.ts +202 -0
  213. package/tests/creator.spec.ts +257 -0
  214. package/tests/entrypoints.spec.ts +5 -0
  215. package/tests/narrowing.spec.ts +94 -0
  216. package/tests/plugins.spec.ts +4 -3
  217. package/tests/writes.spec.ts +140 -0
@@ -0,0 +1,46 @@
1
+ import { PlanningError, TransitionAction } from '@owlmeans/planning';
2
+ import { CREATOR } from './consts.local.js';
3
+ const named = (value) => value != null && value !== '';
4
+ /**
5
+ * The subject a create made under `scope` is stamped with as its `createdBy`: the scope's
6
+ * `profileId`, else its `userId`, else the same two of its `actor` — the authenticated subject an
7
+ * HTTP scope carries, in the same format. `undefined` for a scope that names nobody (a service or a
8
+ * system scope).
9
+ */
10
+ export const creatorOf = (scope) => [scope.profileId, scope.userId, scope.actor?.profileId, scope.actor?.userId].find(named);
11
+ /**
12
+ * A create's draft with `createdBy` defaulted to {@link creatorOf} the scope. A `createdBy` the
13
+ * caller supplied wins; a scope that names nobody leaves the draft as it is; anything but a create
14
+ * is returned untouched. Never mutates `exec`.
15
+ *
16
+ * The executor applies it to every execution, so an in-process facade create and a wire create
17
+ * stamp the same value.
18
+ */
19
+ export const withCreator = (exec, scope) => {
20
+ if (exec.action !== TransitionAction.Create || exec.card == null || typeof exec.card !== 'object') {
21
+ return exec;
22
+ }
23
+ if (named(exec.card.createdBy)) {
24
+ return exec;
25
+ }
26
+ const creator = creatorOf(scope);
27
+ return creator == null ? exec : { ...exec, card: { ...exec.card, createdBy: creator } };
28
+ };
29
+ /**
30
+ * Refuse an execution that names `createdBy` in `changes` or `unset`, whatever the action — a
31
+ * create included, whose owner is its draft's. After the create it never moves, so an ownership
32
+ * check (`card.createdBy === profileId`) cannot be bypassed by anyone allowed to update the card.
33
+ *
34
+ * The executor runs it with the immutables of step 6, after the `before` chain, so a wire body, an
35
+ * in-process caller and a plugin are refused alike. It is the executor's own check, whatever
36
+ * `@owlmeans/planning` build `assertMutable` comes from.
37
+ *
38
+ * @throws {PlanningError} `planning:immutable:createdBy`
39
+ */
40
+ export const assertCreatorFixed = (exec) => {
41
+ if (exec.changes?.[CREATOR] !== undefined
42
+ || (exec.unset ?? []).some(path => path.split('.')[0] === CREATOR)) {
43
+ throw new PlanningError(`immutable:${CREATOR}`);
44
+ }
45
+ };
46
+ //# sourceMappingURL=creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creator.js","sourceRoot":"","sources":["../../src/executor/creator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAgD,MAAM,oBAAoB,CAAA;AAClH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE3C,MAAM,KAAK,GAAG,CAAC,KAAqB,EAAmB,EAAE,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAA;AAEvF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAoB,EAAsB,EAAE,CACpE,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAE1F;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAyB,EAAE,KAAoB,EAAuB,EAAE;IAClG,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClG,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAEhC,OAAO,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAA;AACzF,CAAC,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAyB,EAAQ,EAAE;IACpE,IAAK,IAAI,CAAC,OAA+C,EAAE,CAAC,OAAO,CAAC,KAAK,SAAS;WAC7E,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,aAAa,CAAC,aAAa,OAAO,EAAE,CAAC,CAAA;IACjD,CAAC;AACH,CAAC,CAAA"}
@@ -1,35 +1,43 @@
1
- import { WorkcardKind } from '@owlmeans/planning';
2
- import type { AnyTypeSchema, PlanningFacade, PlanningStore, SpecificationSlot, StatusFlowSchema, TransitionExecution, Workcard } from '@owlmeans/planning';
3
- import type { PlanningRuntime } from '../service.js';
4
- /** Everything the steps after resolution read about an execution. */
5
- export interface Resolved {
6
- create: boolean;
7
- /** The existing card (not a create). */
8
- card?: Workcard;
9
- type: AnyTypeSchema;
10
- flowId: string;
11
- flow: StatusFlowSchema;
12
- /** The primary parent, when it resolves. */
13
- parent?: Workcard;
14
- /** The slot a specification belongs to. */
15
- slot?: SpecificationSlot;
16
- /** The store the type is written to. */
17
- store: PlanningStore;
18
- }
1
+ import { WorkcardKind, type PlanningFacade, type PlanningSchemaRegistry, type TransitionExecution, type Workcard } from '@owlmeans/planning';
2
+ import type { PlanningRuntime } from '../types.js';
3
+ import type { Resolved } from './types.js';
19
4
  /**
20
5
  * Step 1: a deep copy with trimmed text, `parents ∋ parent` on a draft, and no duplicate `unset`
21
6
  * paths. The caller's object is never touched.
22
7
  */
23
- export declare const normalizeExecution: (input: TransitionExecution) => TransitionExecution;
24
- /** The parent type's rule for a child of `kind`/`type`. @throws {CardTypeNotAllowed} */
25
- export declare const assertChildAllowed: (runtime: PlanningRuntime, parent: Workcard, kind: WorkcardKind, type: string) => void;
8
+ declare const normalizeExecution: (input: TransitionExecution) => TransitionExecution;
9
+ /**
10
+ * The parent type's rule for a child of `kind`/`type`: a project lists the `cardTypes` (and
11
+ * `projectTypes`) it admits, and one declaring `scopedCardTypes` also admits a card type its layer
12
+ * (`view`, the parent project's resolved schemas) defines as data. Project types are code's alone.
13
+ *
14
+ * @throws {CardTypeNotAllowed}
15
+ */
16
+ declare const assertChildAllowed: (runtime: PlanningRuntime, parent: Workcard, kind: WorkcardKind, type: string, view?: PlanningSchemaRegistry) => void;
17
+ /** The layer a parent project admits data-defined children through — `undefined` without a schema port. */
18
+ declare const childViewOf: (runtime: PlanningRuntime, entityId: string, parent: Workcard) => Promise<PlanningSchemaRegistry | undefined>;
26
19
  /**
27
20
  * Step 4: the card, its type and flow, its parent and — for a specification — its slot.
28
21
  *
29
22
  * @throws {WorkcardNotFound | PlanningScopeMismatch | UnknownWorkcardType | UnknownStatusFlow}
30
23
  * @throws {ParentNotFound | CardTypeNotAllowed | PlanningError}
31
24
  */
32
- export declare const resolveExecution: (runtime: PlanningRuntime, facade: PlanningFacade, exec: TransitionExecution) => Promise<Resolved>;
25
+ declare const resolveExecution: (runtime: PlanningRuntime, facade: PlanningFacade, exec: TransitionExecution) => Promise<Resolved>;
33
26
  /** The project a transition is filed under: a project's own id, else its parent's project. */
34
- export declare const projectFor: (resolved: Resolved, exec: TransitionExecution, cardId: string) => string | undefined;
27
+ declare const projectFor: (resolved: Resolved, exec: TransitionExecution, cardId: string) => string | undefined;
28
+ export declare const createResolveHelper: () => {
29
+ normalizeExecution: typeof normalizeExecution;
30
+ assertChildAllowed: typeof assertChildAllowed;
31
+ childViewOf: typeof childViewOf;
32
+ resolveExecution: typeof resolveExecution;
33
+ projectFor: typeof projectFor;
34
+ };
35
+ export declare const resolveHelper: {
36
+ normalizeExecution: typeof normalizeExecution;
37
+ assertChildAllowed: typeof assertChildAllowed;
38
+ childViewOf: typeof childViewOf;
39
+ resolveExecution: typeof resolveExecution;
40
+ projectFor: typeof projectFor;
41
+ };
42
+ export {};
35
43
  //# sourceMappingURL=resolve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/executor/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAEkE,YAAY,EACpF,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EACV,aAAa,EAAE,cAAc,EAAE,aAAa,EAAoC,iBAAiB,EACjG,gBAAgB,EAAE,mBAAmB,EAAE,QAAQ,EAChD,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAEpD,qEAAqE;AACrE,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,OAAO,CAAA;IACf,wCAAwC;IACxC,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,IAAI,EAAE,aAAa,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,gBAAgB,CAAA;IACtB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,QAAQ,CAAA;IACjB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,iBAAiB,CAAA;IACxB,wCAAwC;IACxC,KAAK,EAAE,aAAa,CAAA;CACrB;AAmBD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,UAAW,mBAAmB,KAAG,mBAc/D,CAAA;AAED,wFAAwF;AACxF,eAAO,MAAM,kBAAkB,YACpB,eAAe,UAAU,QAAQ,QAAQ,YAAY,QAAQ,MAAM,KAC3E,IAYF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,YAClB,eAAe,UAAU,cAAc,QAAQ,mBAAmB,KAC1E,OAAO,CAAC,QAAQ,CAyElB,CAAA;AAED,8FAA8F;AAC9F,eAAO,MAAM,UAAU,aAAc,QAAQ,QAAQ,mBAAmB,UAAU,MAAM,KAAG,MAAM,GAAG,SASnG,CAAA"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/executor/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuO,YAAY,EAAwC,KAAK,cAAc,EAAE,KAAK,sBAAsB,EAAyE,KAAK,mBAAmB,EAAE,KAAK,QAAQ,EAAsB,MAAM,oBAAoB,CAAA;AAClf,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AA6B1C;;;GAGG;AACH,QAAA,MAAM,kBAAkB,UAAW,mBAAmB,KAAG,mBAcxD,CAAA;AAED;;;;;;GAMG;AACH,QAAA,MAAM,kBAAkB,YACb,eAAe,UAAU,QAAQ,QAAQ,YAAY,QAAQ,MAAM,SAAS,sBAAsB,KAC1G,IAgBF,CAAA;AAED,2GAA2G;AAC3G,QAAA,MAAM,WAAW,YACN,eAAe,YAAY,MAAM,UAAU,QAAQ,KAC3D,OAAO,CAAC,sBAAsB,GAAG,SAAS,CACoE,CAAA;AAEjH;;;;;GAKG;AACH,QAAA,MAAM,gBAAgB,YACX,eAAe,UAAU,cAAc,QAAQ,mBAAmB,KAC1E,OAAO,CAAC,QAAQ,CA4GlB,CAAA;AAED,8FAA8F;AAC9F,QAAA,MAAM,UAAU,aAAc,QAAQ,QAAQ,mBAAmB,UAAU,MAAM,KAAG,MAAM,GAAG,SAS5F,CAAA;AAED,eAAO,MAAM,mBAAmB;;;;;;CAAgG,CAAA;AAEhI,eAAO,MAAM,aAAa;;;;;;CAAwB,CAAA"}
@@ -1,6 +1,15 @@
1
- import { CardTypeNotAllowed, isProject, normalizeParents, ParentNotFound, PlanningError, PlanningScopeMismatch, primaryFlowOf, projectOf, slotOf, TransitionAction, UnknownStatusFlow, WorkcardKind, WorkcardNotFound, } from '@owlmeans/planning';
1
+ import { CardTypeNotAllowed, isProject, normalizeParents, ParentNotFound, PlanningError, PlanningSchemaKind, PlanningScopeMismatch, primaryFlowOf, projectOf, SchemaOrigin, slotOf, TransitionAction, UnknownStatusFlow, UnknownWorkcardType, WorkcardKind, WorkcardNotFound } from '@owlmeans/planning';
2
+ import { TRIMMED } from './consts.local.js';
3
+ const isScoped = (schemas) => typeof schemas.originOf === 'function';
4
+ /** A type the layer resolves from a data-defined record rather than from code. */
5
+ const dataDefined = (schemas, type) => {
6
+ if (schemas == null || !isScoped(schemas) || !schemas.has(type)) {
7
+ return false;
8
+ }
9
+ const origin = schemas.originOf(PlanningSchemaKind.Type, type);
10
+ return origin === SchemaOrigin.Entity || origin === SchemaOrigin.Project;
11
+ };
2
12
  const trimmed = (value) => typeof value === 'string' ? value.trim() : value;
3
- const TRIMMED = ['title', 'description', 'code'];
4
13
  const trim = (record) => {
5
14
  if (record == null) {
6
15
  return record;
@@ -17,7 +26,7 @@ const trim = (record) => {
17
26
  * Step 1: a deep copy with trimmed text, `parents ∋ parent` on a draft, and no duplicate `unset`
18
27
  * paths. The caller's object is never touched.
19
28
  */
20
- export const normalizeExecution = (input) => {
29
+ const normalizeExecution = (input) => {
21
30
  const exec = structuredClone(input);
22
31
  if (exec.card != null && typeof exec.card === 'object') {
23
32
  const draft = trim(exec.card);
@@ -32,8 +41,14 @@ export const normalizeExecution = (input) => {
32
41
  }
33
42
  return exec;
34
43
  };
35
- /** The parent type's rule for a child of `kind`/`type`. @throws {CardTypeNotAllowed} */
36
- export const assertChildAllowed = (runtime, parent, kind, type) => {
44
+ /**
45
+ * The parent type's rule for a child of `kind`/`type`: a project lists the `cardTypes` (and
46
+ * `projectTypes`) it admits, and one declaring `scopedCardTypes` also admits a card type its layer
47
+ * (`view`, the parent project's resolved schemas) defines as data. Project types are code's alone.
48
+ *
49
+ * @throws {CardTypeNotAllowed}
50
+ */
51
+ const assertChildAllowed = (runtime, parent, kind, type, view) => {
37
52
  if (kind === WorkcardKind.Specification) {
38
53
  return;
39
54
  }
@@ -42,21 +57,30 @@ export const assertChildAllowed = (runtime, parent, kind, type) => {
42
57
  }
43
58
  const parentType = runtime.service().schemas.type(parent.type);
44
59
  const allowed = kind === WorkcardKind.Project ? parentType.projectTypes ?? [] : parentType.cardTypes ?? [];
45
- if (!allowed.includes(type)) {
46
- throw new CardTypeNotAllowed(`${parent.type}:${type}`);
60
+ if (allowed.includes(type)) {
61
+ return;
62
+ }
63
+ if (kind === WorkcardKind.Card && parentType.scopedCardTypes === true && dataDefined(view, type)) {
64
+ return;
47
65
  }
66
+ throw new CardTypeNotAllowed(`${parent.type}:${type}`);
48
67
  };
68
+ /** The layer a parent project admits data-defined children through — `undefined` without a schema port. */
69
+ const childViewOf = async (runtime, entityId, parent) => runtime.schemaStore() == null || !isProject(parent) ? undefined : await runtime.schemasFor(entityId, parent.id);
49
70
  /**
50
71
  * Step 4: the card, its type and flow, its parent and — for a specification — its slot.
51
72
  *
52
73
  * @throws {WorkcardNotFound | PlanningScopeMismatch | UnknownWorkcardType | UnknownStatusFlow}
53
74
  * @throws {ParentNotFound | CardTypeNotAllowed | PlanningError}
54
75
  */
55
- export const resolveExecution = async (runtime, facade, exec) => {
76
+ const resolveExecution = async (runtime, facade, exec) => {
56
77
  const service = runtime.service();
57
- const schemas = service.schemas;
58
78
  const entityId = facade.scope.entityId;
59
79
  const create = exec.action === TransitionAction.Create;
80
+ // Without a schema port every step reads the code registry itself, in today's order; with one,
81
+ // the card's project is found first and the step reads that project's resolved layer.
82
+ const layered = runtime.schemaStore() != null;
83
+ let schemas = service.schemas;
60
84
  let card;
61
85
  let type;
62
86
  let parent;
@@ -65,14 +89,34 @@ export const resolveExecution = async (runtime, facade, exec) => {
65
89
  throw new PlanningError('malformed:create-without-draft');
66
90
  }
67
91
  const draft = exec.card;
92
+ const parents = normalizeParents(draft.parent, draft.parents);
93
+ const loaded = new Map();
94
+ if (layered) {
95
+ // Loaded through the facade, so a parent this scope cannot see is absent here too.
96
+ const primary = parents[0] != null ? await facade.cards.load(parents[0]) : null;
97
+ if (parents[0] != null && primary == null) {
98
+ throw new ParentNotFound(parents[0]);
99
+ }
100
+ if (primary != null) {
101
+ loaded.set(parents[0], primary);
102
+ }
103
+ const project = draft.kind === WorkcardKind.Project || primary == null
104
+ ? undefined
105
+ : projectOf({ kind: draft.kind, parent: parents[0], parents }, primary);
106
+ schemas = await runtime.schemasFor(entityId, project);
107
+ }
68
108
  type = schemas.type(draft.type);
69
109
  if (type.kind !== draft.kind) {
70
110
  throw new PlanningError(`malformed:kind:${draft.type}:${draft.kind}`);
71
111
  }
112
+ if (layered && isScoped(schemas) && schemas.isRetired(PlanningSchemaKind.Type, draft.type)) {
113
+ // Existing cards keep resolving a retired type; nothing new is made of it.
114
+ throw new UnknownWorkcardType(`retired:${draft.type}`);
115
+ }
72
116
  // Normalized: the primary parent is first. It must accept the child; so must every project
73
117
  // among the secondary parents.
74
- for (const [index, id] of normalizeParents(draft.parent, draft.parents).entries()) {
75
- const found = await facade.cards.load(id);
118
+ for (const [index, id] of parents.entries()) {
119
+ const found = loaded.get(id) ?? await facade.cards.load(id);
76
120
  if (found == null) {
77
121
  throw new ParentNotFound(id);
78
122
  }
@@ -80,7 +124,8 @@ export const resolveExecution = async (runtime, facade, exec) => {
80
124
  parent = found;
81
125
  }
82
126
  if (index === 0 || isProject(found)) {
83
- assertChildAllowed(runtime, found, draft.kind, draft.type);
127
+ const view = !layered ? undefined : index === 0 && isProject(found) ? schemas : await childViewOf(runtime, entityId, found);
128
+ assertChildAllowed(runtime, found, draft.kind, draft.type, view);
84
129
  }
85
130
  }
86
131
  if (draft.kind === WorkcardKind.Specification && parent == null) {
@@ -98,9 +143,20 @@ export const resolveExecution = async (runtime, facade, exec) => {
98
143
  if (found.entityId !== entityId) {
99
144
  throw new PlanningScopeMismatch(exec.card);
100
145
  }
146
+ if (facade.scope.projects != null && await facade.cards.load(exec.card) == null) {
147
+ // Outside the scope's projects: absent, exactly like another entity's card.
148
+ throw new WorkcardNotFound(exec.card);
149
+ }
101
150
  card = found;
102
- type = schemas.type(card.type);
103
- parent = card.parent != null ? await facade.cards.load(card.parent) ?? undefined : undefined;
151
+ if (layered) {
152
+ parent = card.parent != null ? await facade.cards.load(card.parent) ?? undefined : undefined;
153
+ schemas = await runtime.schemasFor(entityId, projectOf(card, parent));
154
+ type = schemas.type(card.type);
155
+ }
156
+ else {
157
+ type = schemas.type(card.type);
158
+ parent = card.parent != null ? await facade.cards.load(card.parent) ?? undefined : undefined;
159
+ }
104
160
  }
105
161
  const flowId = exec.flow ?? primaryFlowOf(type);
106
162
  if (!type.flows.includes(flowId)) {
@@ -120,10 +176,11 @@ export const resolveExecution = async (runtime, facade, exec) => {
120
176
  ...(parent != null ? { parent } : {}),
121
177
  ...(slot != null ? { slot } : {}),
122
178
  store: service.store(type.type),
179
+ schemas,
123
180
  };
124
181
  };
125
182
  /** The project a transition is filed under: a project's own id, else its parent's project. */
126
- export const projectFor = (resolved, exec, cardId) => {
183
+ const projectFor = (resolved, exec, cardId) => {
127
184
  if (resolved.card != null) {
128
185
  return isProject(resolved.card) ? resolved.card.id : projectOf(resolved.card, resolved.parent);
129
186
  }
@@ -133,4 +190,6 @@ export const projectFor = (resolved, exec, cardId) => {
133
190
  }
134
191
  return projectOf({ kind: draft.kind, parent: draft.parent, parents: draft.parents ?? [] }, resolved.parent);
135
192
  };
193
+ export const createResolveHelper = () => ({ normalizeExecution, assertChildAllowed, childViewOf, resolveExecution, projectFor });
194
+ export const resolveHelper = createResolveHelper();
136
195
  //# sourceMappingURL=resolve.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/executor/resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/executor/resolve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { AnyTypeSchema, PlanningSchemaRegistry, PlanningStore, SpecificationSlot, StatusFlowSchema, Workcard } from '@owlmeans/planning';
2
+ import type { createResolveHelper } from './resolve.js';
3
+ /** Everything the steps after resolution read about an execution. */
4
+ export interface Resolved {
5
+ create: boolean;
6
+ /** The existing card (not a create). */
7
+ card?: Workcard;
8
+ type: AnyTypeSchema;
9
+ flowId: string;
10
+ flow: StatusFlowSchema;
11
+ /** The primary parent, when it resolves. */
12
+ parent?: Workcard;
13
+ /** The slot a specification belongs to. */
14
+ slot?: SpecificationSlot;
15
+ /** The store the type is written to. */
16
+ store: PlanningStore;
17
+ /**
18
+ * The registry every later step reads: the service's code registry itself, or — where the store
19
+ * holds data-defined schemas — the resolved layer of the card's project.
20
+ */
21
+ schemas: PlanningSchemaRegistry;
22
+ }
23
+ export type ResolveHelper = ReturnType<typeof createResolveHelper>;
24
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/executor/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7I,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAEvD,qEAAqE;AACrE,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,OAAO,CAAA;IACf,wCAAwC;IACxC,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,IAAI,EAAE,aAAa,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,gBAAgB,CAAA;IACtB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,QAAQ,CAAA;IACjB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,iBAAiB,CAAA;IACxB,wCAAwC;IACxC,KAAK,EAAE,aAAa,CAAA;IACpB;;;OAGG;IACH,OAAO,EAAE,sBAAsB,CAAA;CAChC;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/executor/types.ts"],"names":[],"mappings":""}
@@ -1,9 +1,10 @@
1
- import type { PlanningFacade, TransitionExecution } from '@owlmeans/planning';
2
- import type { PlanningRuntime } from '../service.js';
3
- import type { Resolved } from './resolve.js';
1
+ import { type PlanningFacade, type TransitionExecution } from '@owlmeans/planning';
2
+ import type { PlanningRuntime } from '../types.js';
3
+ import type { Resolved } from './types.js';
4
4
  /**
5
- * Step 6: shape, flow rule, immutables, `fields`, labels, parent moves, the specification slot and
6
- * relationships — in that order. Nothing is written by a refusal here.
5
+ * Step 6: shape, flow rule, immutables (`createdBy` among them, {@link assertCreatorFixed}),
6
+ * `fields`, labels, parent moves, the specification slot and relationships — in that order.
7
+ * Nothing is written by a refusal here.
7
8
  *
8
9
  * @throws {PlanningError} `malformed:*` / `immutable:*`
9
10
  * @throws {IllegalTransition | FieldsInvalid | LabelNotAllowed | ParentNotFound | CardTypeNotAllowed}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/executor/validate.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,cAAc,EAAoC,mBAAmB,EACtE,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AA8N5C;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,YACnB,eAAe,UAAU,cAAc,QAAQ,mBAAmB,YAAY,QAAQ,KAC9F,OAAO,CAAC,IAAI,CASd,CAAA"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/executor/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiX,KAAK,cAAc,EAA8C,KAAK,mBAAmB,EAAsB,MAAM,oBAAoB,CAAA;AACjgB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAgO1C;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,YACnB,eAAe,UAAU,cAAc,QAAQ,mBAAmB,YAAY,QAAQ,KAC9F,OAAO,CAAC,IAAI,CAUd,CAAA"}
@@ -1,6 +1,7 @@
1
- import { applyUnset, assertMutable, BODY_MAX, CODE_MAX, DESCRIPTION_MAX, IllegalTransition, LabelNotAllowed, MAX_LABELS, MAX_PARENTS, mergeFields, normalizeParents, ParentNotFound, PlanningError, RelationshipRefused, ruleOf, SpecificationRevisionConflict, SpecificationSlotUnknown, slotOf, TITLE_MAX, TransitionAction, validateFields, validateSpecificationBody, WorkcardKind, } from '@owlmeans/planning';
2
- import { assertChildAllowed } from './resolve.js';
3
- const ACTIONS = new Set(Object.values(TransitionAction));
1
+ import { applyUnset, assertMutable, BODY_MAX, CODE_MAX, DESCRIPTION_MAX, IllegalTransition, LabelNotAllowed, MAX_LABELS, MAX_PARENTS, mergeFields, normalizeParents, ParentNotFound, PlanningError, RelationshipRefused, ruleOf, SpecificationRevisionConflict, SpecificationSlotUnknown, slotOf, TITLE_MAX, TransitionAction, validateFields, validateSpecificationBody, WorkcardKind } from '@owlmeans/planning';
2
+ import { assertCreatorFixed } from './creator.js';
3
+ import { ACTIONS } from './consts.local.js';
4
+ import { resolveHelper } from './resolve.js';
4
5
  const malformed = (what) => new PlanningError(`malformed:${what}`);
5
6
  const assertText = (name, value, max, required) => {
6
7
  if (value === undefined || value === null) {
@@ -43,10 +44,10 @@ const assertShape = (exec, resolved) => {
43
44
  assertText('description', changes.description ?? undefined, DESCRIPTION_MAX, false);
44
45
  assertText('code', changes.code ?? undefined, CODE_MAX, false);
45
46
  };
46
- const assertFlow = (exec, resolved, runtime) => {
47
+ const assertFlow = (exec, resolved) => {
47
48
  if (resolved.create) {
48
49
  const status = exec.card.status;
49
- const primary = runtime.service().schemas.primaryFlow(resolved.type.type);
50
+ const primary = resolved.schemas.primaryFlow(resolved.type.type);
50
51
  if (status != null && !primary.statuses.some(definition => definition.key === status)) {
51
52
  throw new IllegalTransition(`${primary.id}:create:${status}`);
52
53
  }
@@ -61,8 +62,8 @@ const assertFlow = (exec, resolved, runtime) => {
61
62
  throw new IllegalTransition(`${resolved.flowId}:${exec.transition}:${from}`);
62
63
  }
63
64
  };
64
- const assertFields = (exec, resolved, runtime) => {
65
- const schemas = runtime.service().schemas;
65
+ const assertFields = (exec, resolved) => {
66
+ const schemas = resolved.schemas;
66
67
  if (resolved.create) {
67
68
  const draft = exec.card;
68
69
  validateFields(schemas, resolved.type.type, mergeFields(draft.fields, exec.changes?.fields));
@@ -107,15 +108,15 @@ const assertParentMove = async (exec, resolved, runtime, facade) => {
107
108
  if (found == null) {
108
109
  throw new ParentNotFound(id);
109
110
  }
110
- assertChildAllowed(runtime, found, resolved.card.kind, resolved.card.type);
111
+ resolveHelper.assertChildAllowed(runtime, found, resolved.card.kind, resolved.card.type, await resolveHelper.childViewOf(runtime, facade.scope.entityId, found));
111
112
  }
112
113
  };
113
- const assertSpecification = async (exec, resolved, runtime, facade) => {
114
+ const assertSpecification = async (exec, resolved, facade) => {
114
115
  const kind = resolved.create ? exec.card.kind : resolved.card.kind;
115
116
  if (kind !== WorkcardKind.Specification) {
116
117
  return;
117
118
  }
118
- const schemas = runtime.service().schemas;
119
+ const schemas = resolved.schemas;
119
120
  if (resolved.create) {
120
121
  const draft = exec.card;
121
122
  const parent = resolved.parent;
@@ -202,8 +203,9 @@ const assertRelationships = async (exec, resolved, facade) => {
202
203
  }
203
204
  };
204
205
  /**
205
- * Step 6: shape, flow rule, immutables, `fields`, labels, parent moves, the specification slot and
206
- * relationships — in that order. Nothing is written by a refusal here.
206
+ * Step 6: shape, flow rule, immutables (`createdBy` among them, {@link assertCreatorFixed}),
207
+ * `fields`, labels, parent moves, the specification slot and relationships — in that order.
208
+ * Nothing is written by a refusal here.
207
209
  *
208
210
  * @throws {PlanningError} `malformed:*` / `immutable:*`
209
211
  * @throws {IllegalTransition | FieldsInvalid | LabelNotAllowed | ParentNotFound | CardTypeNotAllowed}
@@ -211,12 +213,13 @@ const assertRelationships = async (exec, resolved, facade) => {
211
213
  */
212
214
  export const validateExecution = async (runtime, facade, exec, resolved) => {
213
215
  assertShape(exec, resolved);
214
- assertFlow(exec, resolved, runtime);
216
+ assertFlow(exec, resolved);
215
217
  assertMutable(exec, resolved.type);
216
- assertFields(exec, resolved, runtime);
218
+ assertCreatorFixed(exec);
219
+ assertFields(exec, resolved);
217
220
  assertLabels(exec, resolved);
218
221
  await assertParentMove(exec, resolved, runtime, facade);
219
- await assertSpecification(exec, resolved, runtime, facade);
222
+ await assertSpecification(exec, resolved, facade);
220
223
  await assertRelationships(exec, resolved, facade);
221
224
  };
222
225
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/executor/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/executor/validate.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,16 @@
1
- import type { ExecuteOptions, PlanningFacade, TransitionExecution, TransitionReceipt } from '@owlmeans/planning';
2
- import type { PlanningRuntime } from './service.js';
1
+ import { type ExecuteOptions, type PlanningFacade, type TransitionExecution, type TransitionReceipt } from '@owlmeans/planning';
2
+ import type { PlanningRuntime } from './types.js';
3
+ export { assertCreatorFixed, creatorOf, withCreator } from './executor/creator.js';
3
4
  /**
4
5
  * THE write path. Nothing is appended before step 11, so every refusal leaves the log untouched.
5
6
  *
6
- * 1 normalize → 2 scope → 3 idempotency (a known `key` answers its first receipt, before any
7
- * validation) → 4 resolve → 5 the plugins' `before` chain (re-resolved once when it moved the type
8
- * or the parent) → 6 validate → 7 allocate the card id → 8 code → 9 changes (an update changing
9
- * nothing answers the current receipt and appends nothing) → 10 seq, a CAS against the head →
10
- * 11 append → 12 request the projection → 13 receipt → 14 `wait`.
7
+ * 1 normalize (a create's `createdBy` defaults to the scope's subject — {@link withCreator}) →
8
+ * 2 scope → 3 idempotency (a known `key` answers its first receipt, before any validation) →
9
+ * 4 resolve → 5 the plugins' `before` chain (re-resolved once when it moved the type or the parent)
10
+ * → 6 validate (a `createdBy` in `changes`/`unset` is refused — {@link assertCreatorFixed}) →
11
+ * 7 allocate the card id → 8 code → 9 changes (an update changing nothing answers
12
+ * the current receipt and appends nothing) → 10 seq, a CAS against the head → 11 append →
13
+ * 12 request the projection → 13 receipt → 14 `wait`.
11
14
  *
12
15
  * `after` hooks are NOT run here — the process that folds runs them, once per commit.
13
16
  */
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,cAAc,EAAuB,cAAc,EACnD,mBAAmB,EAAE,iBAAiB,EACvC,MAAM,oBAAoB,CAAA;AAO3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAkDnD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,YACnB,eAAe,UAAU,cAAc,SAAS,mBAAmB,SAAS,cAAc,KAClG,OAAO,CAAC,iBAAiB,CAwE3B,CAAA"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwD,KAAK,cAAc,EAA4B,KAAK,cAAc,EAA4D,KAAK,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAOzQ,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAGjD,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAkDlF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,YACnB,eAAe,UAAU,cAAc,SAAS,mBAAmB,SAAS,cAAc,KAClG,OAAO,CAAC,iBAAiB,CAuE3B,CAAA"}