@fougere/core 0.10.0-alpha.0 → 0.11.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 (105) hide show
  1. package/dist/CallIdentity.d.ts.map +1 -1
  2. package/dist/CallIdentity.js +2 -0
  3. package/dist/CallIdentity.js.map +1 -1
  4. package/dist/Constraint.d.ts +1 -1
  5. package/dist/Constraint.d.ts.map +1 -1
  6. package/dist/Source.d.ts.map +1 -1
  7. package/dist/Source.js +4 -3
  8. package/dist/Source.js.map +1 -1
  9. package/dist/boot/Hosting.d.ts +38 -0
  10. package/dist/boot/Hosting.d.ts.map +1 -0
  11. package/dist/boot/Hosting.js +2 -0
  12. package/dist/boot/Hosting.js.map +1 -0
  13. package/dist/boot/Peer.d.ts +16 -0
  14. package/dist/boot/Peer.d.ts.map +1 -0
  15. package/dist/boot/Peer.js +2 -0
  16. package/dist/boot/Peer.js.map +1 -0
  17. package/dist/boot/bootstrap.d.ts.map +1 -1
  18. package/dist/boot/bootstrap.js +122 -20
  19. package/dist/boot/bootstrap.js.map +1 -1
  20. package/dist/boot/declared.d.ts.map +1 -1
  21. package/dist/boot/declared.js +35 -3
  22. package/dist/boot/declared.js.map +1 -1
  23. package/dist/boot/install.d.ts +10 -0
  24. package/dist/boot/install.d.ts.map +1 -1
  25. package/dist/boot/install.js +11 -2
  26. package/dist/boot/install.js.map +1 -1
  27. package/dist/boot/peerOver.d.ts +4 -0
  28. package/dist/boot/peerOver.d.ts.map +1 -0
  29. package/dist/boot/peerOver.js +12 -0
  30. package/dist/boot/peerOver.js.map +1 -0
  31. package/dist/boot/relations.d.ts +54 -0
  32. package/dist/boot/relations.d.ts.map +1 -0
  33. package/dist/boot/relations.js +150 -0
  34. package/dist/boot/relations.js.map +1 -0
  35. package/dist/boot/together.d.ts +3 -0
  36. package/dist/boot/together.d.ts.map +1 -1
  37. package/dist/boot/together.js +2 -1
  38. package/dist/boot/together.js.map +1 -1
  39. package/dist/contract.d.ts +1 -0
  40. package/dist/contract.d.ts.map +1 -1
  41. package/dist/contract.js.map +1 -1
  42. package/dist/dispatch/Dependent.d.ts +19 -0
  43. package/dist/dispatch/Dependent.d.ts.map +1 -0
  44. package/dist/dispatch/Dependent.js +2 -0
  45. package/dist/dispatch/Dependent.js.map +1 -0
  46. package/dist/dispatch/Dispatcher.d.ts +14 -1
  47. package/dist/dispatch/Dispatcher.d.ts.map +1 -1
  48. package/dist/dispatch/Dispatcher.js +36 -8
  49. package/dist/dispatch/Dispatcher.js.map +1 -1
  50. package/dist/dispatch/Journal.d.ts +25 -0
  51. package/dist/dispatch/Journal.d.ts.map +1 -0
  52. package/dist/dispatch/Journal.js +3 -0
  53. package/dist/dispatch/Journal.js.map +1 -0
  54. package/dist/dispatch/RelationCheck.d.ts +22 -0
  55. package/dist/dispatch/RelationCheck.d.ts.map +1 -0
  56. package/dist/dispatch/RelationCheck.js +2 -0
  57. package/dist/dispatch/RelationCheck.js.map +1 -0
  58. package/dist/dispatch/Release.d.ts +36 -0
  59. package/dist/dispatch/Release.d.ts.map +1 -0
  60. package/dist/dispatch/Release.js +124 -0
  61. package/dist/dispatch/Release.js.map +1 -0
  62. package/dist/dispatch/StorageGuard.d.ts +18 -1
  63. package/dist/dispatch/StorageGuard.d.ts.map +1 -1
  64. package/dist/dispatch/StorageGuard.js +57 -1
  65. package/dist/dispatch/StorageGuard.js.map +1 -1
  66. package/dist/index.d.ts +5 -0
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +3 -0
  69. package/dist/index.js.map +1 -1
  70. package/dist/wire/Emit.d.ts +9 -0
  71. package/dist/wire/Emit.d.ts.map +1 -1
  72. package/dist/wire/Emit.js +16 -0
  73. package/dist/wire/Emit.js.map +1 -1
  74. package/dist/wire/Invocation.d.ts +2 -1
  75. package/dist/wire/Invocation.d.ts.map +1 -1
  76. package/dist/wire/Invocation.js +4 -1
  77. package/dist/wire/Invocation.js.map +1 -1
  78. package/dist/wire/InvocationContext.d.ts +2 -0
  79. package/dist/wire/InvocationContext.d.ts.map +1 -1
  80. package/dist/wire/SignedCall.d.ts +2 -0
  81. package/dist/wire/SignedCall.d.ts.map +1 -1
  82. package/package.json +4 -4
  83. package/src/CallIdentity.ts +2 -0
  84. package/src/Constraint.ts +1 -1
  85. package/src/Source.ts +3 -2
  86. package/src/boot/Hosting.ts +38 -0
  87. package/src/boot/Peer.ts +15 -0
  88. package/src/boot/bootstrap.ts +142 -20
  89. package/src/boot/declared.ts +35 -3
  90. package/src/boot/install.ts +23 -2
  91. package/src/boot/peerOver.ts +17 -0
  92. package/src/boot/relations.ts +172 -0
  93. package/src/boot/together.ts +5 -1
  94. package/src/contract.ts +1 -0
  95. package/src/dispatch/Dependent.ts +19 -0
  96. package/src/dispatch/Dispatcher.ts +43 -7
  97. package/src/dispatch/Journal.ts +26 -0
  98. package/src/dispatch/RelationCheck.ts +21 -0
  99. package/src/dispatch/Release.ts +156 -0
  100. package/src/dispatch/StorageGuard.ts +62 -0
  101. package/src/index.ts +5 -0
  102. package/src/wire/Emit.ts +23 -0
  103. package/src/wire/Invocation.ts +3 -1
  104. package/src/wire/InvocationContext.ts +2 -0
  105. package/src/wire/SignedCall.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"CallIdentity.d.ts","sourceRoot":"","sources":["../src/CallIdentity.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAyDtD,4BAA4B;AAC5B,wBAAsB,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAE7F;AAaD,sCAAsC;AACtC,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAEvH;AA+BD,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,qCAAqC;IACrC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,8EAA8E;IAC9E,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5E,oEAAoE;IACpE,eAAe,EAAE,OAAO,CAAC;CAC1B;AAOD,uDAAuD;AACvD,wBAAsB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAgBrH"}
1
+ {"version":3,"file":"CallIdentity.d.ts","sourceRoot":"","sources":["../src/CallIdentity.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AA2DtD,4BAA4B;AAC5B,wBAAsB,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAE7F;AAaD,sCAAsC;AACtC,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAEvH;AA+BD,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,qCAAqC;IACrC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,8EAA8E;IAC9E,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5E,oEAAoE;IACpE,eAAe,EAAE,OAAO,CAAC;CAC1B;AAOD,uDAAuD;AACvD,wBAAsB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAgBrH"}
@@ -21,6 +21,8 @@ async function boundTo(call) {
21
21
  params: call.params ?? {},
22
22
  query: call.query ?? {},
23
23
  input: await digestOf(call.input),
24
+ // Omitted when absent, so a call with no hour pins what it always pinned.
25
+ ...(call.runAt === undefined ? {} : { runAt: call.runAt }),
24
26
  };
25
27
  }
26
28
  /** A JWS compact serialization, signed with Ed25519. */
@@ -1 +1 @@
1
- {"version":3,"file":"CallIdentity.js","sourceRoot":"","sources":["../src/CallIdentity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CallIdentity.js","sourceRoot":"","sources":["../src/CallIdentity.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  /** A promise the judge at the facade cannot keep, because it is about rows it never sees. */
2
- export type Constraint = 'unique';
2
+ export type Constraint = 'unique' | 'relation';
3
3
  //# sourceMappingURL=Constraint.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Constraint.d.ts","sourceRoot":"","sources":["../src/Constraint.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"Constraint.d.ts","sourceRoot":"","sources":["../src/Constraint.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Source.d.ts","sourceRoot":"","sources":["../src/Source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAQ,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,+DAA+D;AAC/D,wBAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAK5E;AAED;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,cAAc,EAAE,cAAc,CAAC;IAC/B;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;IACnD,gEAAgE;IAChE,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACxE,qFAAqF;IACrF,QAAQ,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACjC,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,iFAAiF;AACjF,cAAM,cAAe,SAAQ,QAAQ,CAAC,CAAC,IAAI,EAAE,YAAY,KAAK,MAAM,CAAC;IACnE,kFAAkF;IAClF,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;CAG9D;AAED,eAAO,MAAM,OAAO,gBAGnB,CAAC"}
1
+ {"version":3,"file":"Source.d.ts","sourceRoot":"","sources":["../src/Source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAQ,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,+DAA+D;AAC/D,wBAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAM5E;AAED;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,cAAc,EAAE,cAAc,CAAC;IAC/B;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;IACnD,gEAAgE;IAChE,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACxE,qFAAqF;IACrF,QAAQ,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACjC,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,iFAAiF;AACjF,cAAM,cAAe,SAAQ,QAAQ,CAAC,CAAC,IAAI,EAAE,YAAY,KAAK,MAAM,CAAC;IACnE,kFAAkF;IAClF,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;CAG9D;AAED,eAAO,MAAM,OAAO,gBAGnB,CAAC"}
package/dist/Source.js CHANGED
@@ -1,11 +1,12 @@
1
1
  import { Registry, Role } from '@fougere/schema';
2
2
  /** Whether an entity asks for one, anywhere but on its key. */
3
3
  export function declares(schema, constraint) {
4
- if (constraint !== 'unique')
5
- return false;
4
+ const fields = Object.values(schema.getFields());
5
+ if (constraint === 'relation')
6
+ return fields.some((field) => Role.of(field).isReference);
6
7
  if ((schema.getUnique() ?? []).length > 0)
7
8
  return true;
8
- return Object.values(schema.getFields()).some((field) => Role.of(field).isUnique);
9
+ return fields.some((field) => Role.of(field).isUnique);
9
10
  }
10
11
  /** Which adapter answers a source name — one per process, no subject to hold. */
11
12
  class SourceRegistry extends Registry {
@@ -1 +1 @@
1
- {"version":3,"file":"Source.js","sourceRoot":"","sources":["../src/Source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAmB,MAAM,iBAAiB,CAAC;AAMlE,+DAA+D;AAC/D,MAAM,UAAU,QAAQ,CAAC,MAAkB,EAAE,UAAsB;IACjE,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;AACpF,CAAC;AA0BD,iFAAiF;AACjF,MAAM,cAAe,SAAQ,QAAwC;IACnE,kFAAkF;IAClF,IAAI,CAAC,IAAY,EAAE,IAAkB,EAAE,IAAa;QAClD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,cAAc,CACvC,QAAQ,EACR,2EAA2E,CAC5E,CAAC"}
1
+ {"version":3,"file":"Source.js","sourceRoot":"","sources":["../src/Source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAmB,MAAM,iBAAiB,CAAC;AAMlE,+DAA+D;AAC/D,MAAM,UAAU,QAAQ,CAAC,MAAkB,EAAE,UAAsB;IACjE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACjD,IAAI,UAAU,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC;IACzF,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;AACzD,CAAC;AA0BD,iFAAiF;AACjF,MAAM,cAAe,SAAQ,QAAwC;IACnE,kFAAkF;IAClF,IAAI,CAAC,IAAY,EAAE,IAAkB,EAAE,IAAa;QAClD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,cAAc,CACvC,QAAQ,EACR,2EAA2E,CAC5E,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { SchemaView } from '@fougere/schema';
2
+ import type { Constraint } from '../Constraint.js';
3
+ import type { Peer } from './Peer.js';
4
+ import type { Journal } from '../dispatch/Journal.js';
5
+ /**
6
+ * Where an entity's rows are hosted, and what the host keeps — what a `ref()` asks the boot.
7
+ *
8
+ * Documented: [entities](https://fougere.dev/docs/schema/entities).
9
+ */
10
+ export interface Hosting {
11
+ /** False behind `remotes:` — whose `sourceOf` still answers the default, and means nothing. */
12
+ hostedHere(entity: string): boolean;
13
+ sourceOf(entity: string): string;
14
+ enforces(source: string, constraint: Constraint): boolean;
15
+ /**
16
+ * Resolved through the frond that owns it, never the asking frond's scope: a scope sees its
17
+ * parent and not its siblings, so a target of another frond was answered by nothing.
18
+ */
19
+ storageOf(entity: string): unknown | undefined;
20
+ /** Every entity of every frond — a row is named from wherever its namer was declared. */
21
+ entities(): ReadonlyMap<string, SchemaView>;
22
+ /**
23
+ * The process that HOLDS an entity's rows, when this one does not. Absent when nothing can
24
+ * reach it: no `remotes:` entry, or no transport to carry the ask.
25
+ */
26
+ peerOf(entity: string): Peer | undefined;
27
+ /**
28
+ * One per declared remote, whatever this process knows of what lives there.
29
+ *
30
+ * A frond behind `remotes:` may have no sources here at all — `fougere sync` writes a card
31
+ * and nothing else — so this process cannot see that its rows name ours. Only the process
32
+ * holding them can, which is why a release asks every remote rather than deciding for it.
33
+ */
34
+ peers(): readonly Peer[];
35
+ /** The journal a package registered, resolved per call — absent for what CARRIES one. */
36
+ journal(entity: string): Journal | undefined;
37
+ }
38
+ //# sourceMappingURL=Hosting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Hosting.d.ts","sourceRoot":"","sources":["../../src/boot/Hosting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,+FAA+F;IAC/F,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC;IAC1D;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IAC/C,yFAAyF;IACzF,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC5C;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC;;;;;;OAMG;IACH,KAAK,IAAI,SAAS,IAAI,EAAE,CAAC;IACzB,yFAAyF;IACzF,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CAC9C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Hosting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Hosting.js","sourceRoot":"","sources":["../../src/boot/Hosting.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ /** The process that holds rows this one names, reached by the two readings core always serves. */
2
+ export interface Peer {
3
+ /** Which of these keys no row answers over there — the write's question, asked across. */
4
+ missing(entity: string, keys: readonly unknown[]): Promise<readonly unknown[]>;
5
+ /** Who names these rows over there, and what becomes of them — its own `dependentsOf`. */
6
+ dependents(entity: string): Promise<unknown>;
7
+ /**
8
+ * Release a row over there: its rows go first, then the row, on its side of the wire.
9
+ *
10
+ * `visited` travels so a release cannot bounce: two processes that declare each other would
11
+ * otherwise ask each other about the same row forever. It is carried rather than held,
12
+ * because the two sides share no memory.
13
+ */
14
+ release(entity: string, key: unknown, visited: readonly string[]): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=Peer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Peer.d.ts","sourceRoot":"","sources":["../../src/boot/Peer.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,MAAM,WAAW,IAAI;IACnB,0FAA0F;IAC1F,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;IAC/E,0FAA0F;IAC1F,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Peer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Peer.js","sourceRoot":"","sources":["../../src/boot/Peer.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/boot/bootstrap.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAqF9D,uCAAuC;AACvC,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAyhBvE"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/boot/bootstrap.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAsF9D,uCAAuC;AACvC,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CA4oBvE"}
@@ -1,6 +1,10 @@
1
1
  import { lowerFirst } from '@fougere/schema';
2
2
  import { hostedBy } from './hosted.js';
3
3
  import { installFrond } from './install.js';
4
+ import { dependentsOf, releasing, unfinishable, unheldAmong } from './relations.js';
5
+ import { release as releaseRow } from '../dispatch/Release.js';
6
+ import { peerOver } from './peerOver.js';
7
+ import { JOURNAL } from '../dispatch/Journal.js';
4
8
  import { refusalOf } from '../diagnostic.js';
5
9
  import { Carry } from '../builtin/Carry.js';
6
10
  import { Logger } from '../builtin/Logger.js';
@@ -13,6 +17,9 @@ import { createRemoteRouter, createRemoteFacade } from './remote.js';
13
17
  import { Emissions } from './Emissions.js';
14
18
  import { resolveEffectiveOperations } from '../EffectiveOperationModel.js';
15
19
  import { InFlight } from '../dispatch/InFlight.js';
20
+ // The keys, each read from where its concept is declared — never respelled here.
21
+ import { RPC_ENTITY } from '../wire/RpcAnswer.js';
22
+ import { Invocation } from '../wire/Invocation.js';
16
23
  import { facadeKeyOf } from '../wire/Facade.js';
17
24
  import { identityCardOf } from './card.js';
18
25
  import { AppLifecycle, migrating } from './AppLifecycle.js';
@@ -201,8 +208,11 @@ export async function createApp(options) {
201
208
  /** What this app took on beyond its fronds. Its `up` is the last thing the boot does. */
202
209
  const routeRegistry = new RouteRegistry();
203
210
  const dispatchLifecycle = new DispatchLifecycle(options.dispatchObservers, (error, event) => log.error(`[dispatch-observer] ${event.stage} ${event.call.address.toString()}`, error));
204
- const dispatcher = new Dispatcher(routeRegistry, inflight, dispatchLifecycle);
205
- const localDispatcher = new Dispatcher(routeRegistry, inflight, dispatchLifecycle, new LocalRoutePolicy((surface) => fronds.servedNames(surface)));
211
+ // Resolved at the call and never here: a journal is a provider of a brought frond, and
212
+ // the extension that registers it rises long after this line.
213
+ const keeping = () => journalOf();
214
+ const dispatcher = new Dispatcher(routeRegistry, inflight, dispatchLifecycle, undefined, keeping);
215
+ const localDispatcher = new Dispatcher(routeRegistry, inflight, dispatchLifecycle, new LocalRoutePolicy((surface) => fronds.servedNames(surface)), keeping);
206
216
  function getMiddlewares(entity) {
207
217
  const scoped = scopedMiddlewares.get(entity) ?? [];
208
218
  return [...globalMiddlewares, ...scoped];
@@ -222,6 +232,7 @@ export async function createApp(options) {
222
232
  }
223
233
  /** What every check of this boot writes into — refused together, once they have all run. */
224
234
  const refused = [];
235
+ const relations = [];
225
236
  keyClaims(fronds, options.remotes, refused);
226
237
  // Said before anything is installed: a key claimed twice makes every later error worse —
227
238
  // the route registry collides first, and names a route instead of the two fronds.
@@ -248,6 +259,70 @@ export async function createApp(options) {
248
259
  /** Canonical operation tables, indexed by the same audience key as their facades. */
249
260
  const effectiveByKey = new Map();
250
261
  const contractsOf = (operations) => new Map([...operations].map(([name, operation]) => [name, operation]));
262
+ /**
263
+ * The storage an entity is backed by — the dual of `facadeFor`, which serves its client-facing
264
+ * facade.
265
+ */
266
+ const storageFor = (entity) => {
267
+ const owner = fronds.owner(entity);
268
+ if (!owner)
269
+ return undefined;
270
+ const key = storageKeyOf(entity);
271
+ try {
272
+ return container.resolve(`frond:${owner.name}`).resolve(key);
273
+ }
274
+ catch {
275
+ return undefined;
276
+ }
277
+ };
278
+ // What carries a release writes none: an instrumentation frond's own rows are kept while a
279
+ // release happens, and journalling them would begin one inside the one being written down.
280
+ const carriesRelease = new Set(fronds.filter((one) => one.brought).flatMap((one) => one.entities.map((e) => e.name)));
281
+ /**
282
+ * The journal a package registered, found where its own frond put it — a provider lands in
283
+ * its frond's scope, and the app container sees none of them.
284
+ */
285
+ const journalOf = () => {
286
+ for (const frond of fronds) {
287
+ if (!frond.brought)
288
+ continue;
289
+ const scope = container.resolve(`frond:${frond.name}`);
290
+ if (scope.has(JOURNAL))
291
+ return scope.resolve(JOURNAL);
292
+ }
293
+ return undefined;
294
+ };
295
+ const hosting = {
296
+ hostedHere: (entity) => !(options.remotes && (frondOf.get(entity) ?? '') in options.remotes),
297
+ sourceOf: (name) => options.sourceOf?.(name) ?? 'db',
298
+ enforces: (source, constraint) => options.enforces?.(source, constraint) ?? false,
299
+ storageOf: storageFor,
300
+ entities: () => entityByName,
301
+ // The two readings core serves in EVERY process, asked of the one that holds the rows.
302
+ // Nothing is cached: a peer that was down at boot answers the next call.
303
+ // Built from `remotes:` itself, not from the router: the router indexes by ENTITY, read
304
+ // off a card, and the question here is asked of a PROCESS about rows it may be alone
305
+ // in knowing about.
306
+ // Resolved per call and never at boot: the package that registers it rises in the
307
+ // ascent, long after this answer is built.
308
+ journal: (entity) => (carriesRelease.has(entity) ? undefined : journalOf()),
309
+ peers: () => (options.remoteTransport
310
+ ? declaredRemotes.map(([, url]) => peerOver(options.remoteTransport(url)))
311
+ : []),
312
+ peerOf: (entity) => (remoteRouter ? {
313
+ dependents: async (named) => (await remoteRouter.route(entity))
314
+ .transport({ entity: RPC_ENTITY, op: 'dependents' }, { ...Invocation.empty, params: { entity: named } }),
315
+ missing: async (named, keys) => {
316
+ const answer = await (await remoteRouter.route(entity))
317
+ .transport({ entity: RPC_ENTITY, op: 'holds' }, { ...Invocation.empty, params: { entity: named, keys } });
318
+ return answer.missing;
319
+ },
320
+ release: async (named, key) => {
321
+ const route = await remoteRouter.route(entity);
322
+ await route.transport({ entity: RPC_ENTITY, op: 'release' }, { ...Invocation.empty, params: { entity: named, key } });
323
+ },
324
+ } : undefined),
325
+ };
251
326
  // Every port an implementation was bound to, so a `ports:` entry that named none
252
327
  // can say so rather than look obeyed.
253
328
  const boundPorts = new Set();
@@ -256,11 +331,28 @@ export async function createApp(options) {
256
331
  // table, one emission list — so what a frond serves is there for the next one to find.
257
332
  const assembly = {
258
333
  container, routeRegistry, emissions, dispatcher, localDispatcher, effectiveByKey,
259
- boundPorts, refused, operationModel, entityByName, frondOf, contractsOf, getMiddlewares, use,
260
- log, options,
334
+ boundPorts, refused, relations, hosting, operationModel, entityByName, frondOf, contractsOf,
335
+ getMiddlewares, use, log, options,
261
336
  };
262
337
  for (const frond of fronds)
263
338
  await installFrond(frond, assembly);
339
+ // A reference no key holds and no storage answers: said at the END, for the reason the
340
+ // `ports:` warning below is — a target is another frond's, so no single frond can tell
341
+ // an absence from a neighbour that had not been installed yet.
342
+ const unheld = unheldAmong(relations, hosting);
343
+ // Declared here, and this process cannot finish what it starts — both halves are local,
344
+ // so nothing is asked of anyone. Said once, after every frond installed, because a journal
345
+ // arrives with an extension and an extension rises last.
346
+ const unfinished = unfinishable(hosting);
347
+ if (unfinished.length > 0) {
348
+ log.warn(`[relations] ${unfinished.join(', ')} — declared, and this process keeps nothing on `
349
+ + 'restart: a release interrupted here is not resumed. Install @fougere/workflow, or '
350
+ + 'expect to finish one by hand.');
351
+ }
352
+ if (unheld.length > 0) {
353
+ log.warn(`[relations] ${unheld.join(', ')} — declared, and nothing in this process holds them: `
354
+ + 'no foreign key, and the target answers elsewhere. A row may name one that is gone.');
355
+ }
264
356
  // Every check of the install, said at once — a boot that stops at the first makes the
265
357
  // next one visible only after a fix and a restart.
266
358
  const bootRefusal = refusalOf(refused, 'declaration(s) that do not hold');
@@ -409,22 +501,6 @@ export async function createApp(options) {
409
501
  ? (own ?? effectiveByKey.get(facadeKeyOf(entity)))
410
502
  : undefined;
411
503
  };
412
- /**
413
- * The storage an entity is backed by — the dual of `facadeFor`, which serves its client-facing
414
- * facade.
415
- */
416
- const storageFor = (entity) => {
417
- const owner = fronds.owner(entity);
418
- if (!owner)
419
- return undefined;
420
- const key = storageKeyOf(entity);
421
- try {
422
- return container.resolve(`frond:${owner.name}`).resolve(key);
423
- }
424
- catch {
425
- return undefined;
426
- }
427
- };
428
504
  /** The presenter of an entity, resolved through its owning frond's scope. */
429
505
  const presenterFor = (entity) => {
430
506
  const owner = fronds.owner(entity);
@@ -484,7 +560,33 @@ export async function createApp(options) {
484
560
  };
485
561
  // The card is an rpc op like any other, so one registry answers and one refusal names
486
562
  // what is served. A package's op is declared the same way, from outside.
563
+ // What a release is, resolved once and registered: a package that drives one asks for it
564
+ // by type, the way every other dependency is asked for.
565
+ container.registerValue('Releasing', releasing(hosting));
487
566
  app.serveRpc('discover', (_invocation, surface) => identityCardOf(app, surface));
567
+ // What a release asks another process, and what it tells it to do. Served by EVERY process
568
+ // the way `discover` is: a frond that hosts rows is the only one that can answer for them.
569
+ //
570
+ // Read off the STORAGE and never off a facade: a facade answers what its handler chose to
571
+ // show — `PostHandler.list` hands back published posts — so a draft naming a deleted user
572
+ // would be invisible to the very question that exists to find it.
573
+ // The dual of `release`, and the same reason it is served by every process: only the one
574
+ // that holds the rows can say a key is missing, and only from the STORAGE — a facade
575
+ // answers what its handler chose to show.
576
+ app.serveRpc('holds', async (invocation) => {
577
+ const named = String(invocation.params.entity);
578
+ const keys = (invocation.params.keys ?? []);
579
+ const rows = storageFor(named);
580
+ if (!rows)
581
+ return { missing: [] };
582
+ const found = await rows.findByKeys(keys.map(String));
583
+ return { missing: keys.filter((key) => !found.has(String(key))) };
584
+ });
585
+ app.serveRpc('dependents', (invocation) => dependentsOf(String(invocation.params.entity), hosting));
586
+ app.serveRpc('release', async (invocation) => {
587
+ await releaseRow(String(invocation.params.entity), invocation.params.key, releasing(hosting), (invocation.params.visited ?? []));
588
+ return { released: true };
589
+ });
488
590
  // The last thing the boot does, and the first thing a release undoes. An extension may
489
591
  // await here — which is what a provider needing to OPEN something could never do.
490
592
  built = app;
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/boot/bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/boot/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"declared.d.ts","sourceRoot":"","sources":["../../src/boot/declared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAIxE,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,UAAU,SAAS;IACjB,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IACnC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC3C;AAED,6FAA6F;AAC7F,wBAAgB,kBAAkB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,gBAAgB,CAInF;AAaD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAWhF;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAMrG"}
1
+ {"version":3,"file":"declared.d.ts","sourceRoot":"","sources":["../../src/boot/declared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAKxE,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,UAAU,SAAS;IACjB,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IACnC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC3C;AAED,6FAA6F;AAC7F,wBAAgB,kBAAkB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,SAAS,GAAG,gBAAgB,CAInF;AAaD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAWhF;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAMrG"}
@@ -1,4 +1,5 @@
1
1
  import { facadeKeyOf } from '../wire/Facade.js';
2
+ import { factsAnnouncedBy, factsAwaitedBy, factsListenedTo } from '../wire/Emit.js';
2
3
  /** Read from the config and the scan, never from a call, so nothing has to answer for it. */
3
4
  export function declaredTopologyOf({ fronds, remotes }) {
4
5
  const hosted = fronds.filter((frond) => !frond.brought);
@@ -43,18 +44,49 @@ export function reachedBy(deps, from, index) {
43
44
  .filter((frond) => frond !== undefined && frond !== from);
44
45
  return [...new Set(reached)];
45
46
  }
47
+ /**
48
+ * The two ways a call leaves a frond: a façade its code names, and a fact it announces.
49
+ *
50
+ * The second cannot be read the way the first is. A dependency names what it reaches, where an
51
+ * announcement names a SUBJECT and a subscriber names nothing at all — so the edge is found from
52
+ * both ends, the announcer's deps and the listener's binding plan. Reading the deps alone
53
+ * reported `demos/pipe-split` as four fronds with nothing between them, and three of its four
54
+ * fronds are reached by a fact.
55
+ */
46
56
  function crossings(hosted) {
47
57
  const index = servedBy(hosted);
58
+ const heard = listenedBy(hosted);
48
59
  const found = new Map();
60
+ const cross = (from, to) => {
61
+ if (from !== to)
62
+ found.set(`${from} ${to}`, { from, to });
63
+ };
49
64
  for (const frond of hosted) {
50
65
  for (const handler of frond.handlers) {
51
- for (const to of reachedBy(handler.deps, frond.name, index)) {
52
- found.set(`${frond.name} ${to}`, { from: frond.name, to });
53
- }
66
+ for (const to of reachedBy(handler.deps, frond.name, index))
67
+ cross(frond.name, to);
68
+ }
69
+ for (const fact of announcedIn(frond)) {
70
+ for (const to of heard.get(fact) ?? [])
71
+ cross(frond.name, to);
54
72
  }
55
73
  }
56
74
  return [...found.values()];
57
75
  }
76
+ /** Which fronds listen to each fact — every one of them, since an announcement names no recipient. */
77
+ function listenedBy(hosted) {
78
+ const index = new Map();
79
+ for (const frond of hosted) {
80
+ for (const fact of factsListenedTo(frond.handlers)) {
81
+ index.set(fact, [...(index.get(fact) ?? []), frond.name]);
82
+ }
83
+ }
84
+ return index;
85
+ }
86
+ /** A fact announced here, whether the announcer waits for an answer or not. */
87
+ function announcedIn(frond) {
88
+ return [...new Set([...factsAnnouncedBy(frond.handlers), ...factsAwaitedBy(frond.handlers)])];
89
+ }
58
90
  function hostOf(address) {
59
91
  try {
60
92
  const url = new URL(address);
@@ -1 +1 @@
1
- {"version":3,"file":"declared.js","sourceRoot":"","sources":["../../src/boot/declared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"declared.js","sourceRoot":"","sources":["../../src/boot/declared.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAUpF,6FAA6F;AAC7F,MAAM,UAAU,kBAAkB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAa;IAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAExD,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;AAC3E,CAAC;AAED,SAAS,UAAU,CAAC,MAAkC,EAAE,OAAyC;IAC/F,MAAM,IAAI,GAAG,MAAM;SAChB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACvC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,OAAgB,EAAE,CAAC,CAAC,CAAC;IAExE,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7F,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAkC;IACzD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,OAAO;YAAE,SAAS;QAC5B,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,OAAO;gBAAE,SAAS;YAC9B,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,IAAuB,EAAE,IAAY,EAAE,KAA0B;IACzF,MAAM,OAAO,GAAG,IAAI;SACjB,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SAC1C,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC;IAE7E,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,SAAS,CAAC,MAAkC;IACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC9C,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,EAAE;QACzC,IAAI,IAAI,KAAK,EAAE;YAAE,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,KAAK,MAAM,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;gBAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;gBAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,sGAAsG;AACtG,SAAS,UAAU,CAAC,MAAkC;IACpD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,SAAS,WAAW,CAAC,KAAsB;IACzC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,MAAM,CAAC,OAAe;IAC7B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAE7B,OAAO,GAAG,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC"}
@@ -12,6 +12,8 @@ import type { OperationsMap } from '../wire/OperationsMap.js';
12
12
  import type { AppMiddleware } from '../wire/AppMiddleware.js';
13
13
  import type { CreateAppOptions } from './CreateAppOptions.js';
14
14
  import type { Diagnostic } from '../diagnostic.js';
15
+ import type { Hosting } from './Hosting.js';
16
+ import type { RelationCheck } from '../dispatch/RelationCheck.js';
15
17
  /**
16
18
  * What the app is made of while it is still being made. `createApp` builds these, hands
17
19
  * them to every frond in turn, and the App it returns is assembled FROM them — so a frond
@@ -30,6 +32,14 @@ export interface Assembly {
30
32
  boundPorts: Set<string>;
31
33
  /** Where a check writes what does not hold — collected across fronds, refused together. */
32
34
  refused: Diagnostic[];
35
+ /**
36
+ * The references this process reads itself, collected across fronds. Whether one is
37
+ * ANSWERED can only be asked once every frond has registered, which is why the list
38
+ * leaves here rather than being judged where it is built.
39
+ */
40
+ relations: RelationCheck[];
41
+ /** Where each entity is hosted — one answer for a frond's storage, its frames and its surfaces. */
42
+ hosting: Hosting;
33
43
  /** What the model resolved before the boot performed any side effect. */
34
44
  operationModel: EffectiveOperationModel;
35
45
  entityByName: Map<string, SchemaView>;
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/boot/install.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAkBnD;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,4EAA4E;IAC5E,eAAe,EAAE,UAAU,CAAC;IAC5B,iFAAiF;IACjF,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACpD,+EAA+E;IAC/E,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,2FAA2F;IAC3F,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,yEAAyE;IACzE,cAAc,EAAE,uBAAuB,CAAC;IACxC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,WAAW,EAAE,CAAC,UAAU,EAAE,sBAAsB,KAAK,aAAa,CAAC;IACnE,iFAAiF;IACjF,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,aAAa,EAAE,CAAC;IACpD,mEAAmE;IACnE,GAAG,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA6X5F"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/boot/install.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAYnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAQlE;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,4EAA4E;IAC5E,eAAe,EAAE,UAAU,CAAC;IAC5B,iFAAiF;IACjF,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACpD,+EAA+E;IAC/E,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,2FAA2F;IAC3F,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB;;;;OAIG;IACH,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,mGAAmG;IACnG,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,cAAc,EAAE,uBAAuB,CAAC;IACxC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,WAAW,EAAE,CAAC,UAAU,EAAE,sBAAsB,KAAK,aAAa,CAAC;IACnE,iFAAiF;IACjF,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,aAAa,EAAE,CAAC;IACpD,mEAAmE;IACnE,GAAG,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAuY5F"}