@fougere/core 0.9.3-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 (1031) hide show
  1. package/dist/AdapterConfig.d.ts +10 -0
  2. package/dist/AdapterConfig.d.ts.map +1 -0
  3. package/dist/AdapterConfig.js +3 -0
  4. package/dist/AdapterConfig.js.map +1 -0
  5. package/dist/AnswerFor.d.ts +5 -0
  6. package/dist/AnswerFor.d.ts.map +1 -0
  7. package/dist/AnswerFor.js +2 -0
  8. package/dist/AnswerFor.js.map +1 -0
  9. package/dist/Binding.d.ts +4 -0
  10. package/dist/Binding.d.ts.map +1 -0
  11. package/dist/Binding.js +2 -0
  12. package/dist/Binding.js.map +1 -0
  13. package/dist/{identity.d.ts → CallIdentity.d.ts} +4 -17
  14. package/dist/CallIdentity.d.ts.map +1 -0
  15. package/dist/{identity.js → CallIdentity.js} +3 -6
  16. package/dist/CallIdentity.js.map +1 -0
  17. package/dist/Constraint.d.ts +3 -0
  18. package/dist/Constraint.d.ts.map +1 -0
  19. package/dist/Constraint.js +2 -0
  20. package/dist/Constraint.js.map +1 -0
  21. package/dist/{conventions.d.ts → Conventions.d.ts} +14 -8
  22. package/dist/Conventions.d.ts.map +1 -0
  23. package/dist/{conventions.js → Conventions.js} +7 -3
  24. package/dist/Conventions.js.map +1 -0
  25. package/dist/ConventionsInput.d.ts +8 -0
  26. package/dist/ConventionsInput.d.ts.map +1 -0
  27. package/dist/ConventionsInput.js +2 -0
  28. package/dist/ConventionsInput.js.map +1 -0
  29. package/dist/Ctor.d.ts +3 -0
  30. package/dist/Ctor.d.ts.map +1 -0
  31. package/dist/Ctor.js +2 -0
  32. package/dist/Ctor.js.map +1 -0
  33. package/dist/Declared.d.ts +8 -0
  34. package/dist/Declared.d.ts.map +1 -0
  35. package/dist/Declared.js +2 -0
  36. package/dist/Declared.js.map +1 -0
  37. package/dist/DeclaredHandler.d.ts +18 -0
  38. package/dist/DeclaredHandler.d.ts.map +1 -0
  39. package/dist/DeclaredHandler.js +2 -0
  40. package/dist/DeclaredHandler.js.map +1 -0
  41. package/dist/DeclaredSubject.d.ts +7 -0
  42. package/dist/DeclaredSubject.d.ts.map +1 -0
  43. package/dist/DeclaredSubject.js +2 -0
  44. package/dist/DeclaredSubject.js.map +1 -0
  45. package/dist/{graph.d.ts → DomainCluster.d.ts} +3 -12
  46. package/dist/DomainCluster.d.ts.map +1 -0
  47. package/dist/{graph.js → DomainCluster.js} +1 -1
  48. package/dist/DomainCluster.js.map +1 -0
  49. package/dist/EffectiveCollector.d.ts +8 -0
  50. package/dist/EffectiveCollector.d.ts.map +1 -0
  51. package/dist/EffectiveCollector.js +2 -0
  52. package/dist/EffectiveCollector.js.map +1 -0
  53. package/dist/EffectiveOperation.d.ts +65 -0
  54. package/dist/EffectiveOperation.d.ts.map +1 -0
  55. package/dist/EffectiveOperation.js +2 -0
  56. package/dist/EffectiveOperation.js.map +1 -0
  57. package/dist/EffectiveOperationModel.d.ts +24 -0
  58. package/dist/EffectiveOperationModel.d.ts.map +1 -0
  59. package/dist/{effective-operation.js → EffectiveOperationModel.js} +9 -23
  60. package/dist/EffectiveOperationModel.js.map +1 -0
  61. package/dist/EffectiveOperationOptions.d.ts +7 -0
  62. package/dist/EffectiveOperationOptions.d.ts.map +1 -0
  63. package/dist/EffectiveOperationOptions.js +2 -0
  64. package/dist/EffectiveOperationOptions.js.map +1 -0
  65. package/dist/EffectiveOperationSemantics.d.ts +8 -0
  66. package/dist/EffectiveOperationSemantics.d.ts.map +1 -0
  67. package/dist/EffectiveOperationSemantics.js +8 -0
  68. package/dist/EffectiveOperationSemantics.js.map +1 -0
  69. package/dist/EffectiveOperationsMap.d.ts +3 -0
  70. package/dist/EffectiveOperationsMap.d.ts.map +1 -0
  71. package/dist/EffectiveOperationsMap.js +2 -0
  72. package/dist/EffectiveOperationsMap.js.map +1 -0
  73. package/dist/EffectiveParameter.d.ts +14 -0
  74. package/dist/EffectiveParameter.d.ts.map +1 -0
  75. package/dist/EffectiveParameter.js +2 -0
  76. package/dist/EffectiveParameter.js.map +1 -0
  77. package/dist/EntityNode.d.ts +7 -0
  78. package/dist/EntityNode.d.ts.map +1 -0
  79. package/dist/EntityNode.js +2 -0
  80. package/dist/EntityNode.js.map +1 -0
  81. package/dist/{config-loader.d.ts → FougereConfig.d.ts} +16 -16
  82. package/dist/FougereConfig.d.ts.map +1 -0
  83. package/dist/{config-loader.js → FougereConfig.js} +1 -2
  84. package/dist/FougereConfig.js.map +1 -0
  85. package/dist/FougereNames.d.ts +4 -0
  86. package/dist/FougereNames.d.ts.map +1 -0
  87. package/dist/FougereNames.js +2 -0
  88. package/dist/FougereNames.js.map +1 -0
  89. package/dist/FougerePorts.d.ts +9 -0
  90. package/dist/FougerePorts.d.ts.map +1 -0
  91. package/dist/FougerePorts.js +2 -0
  92. package/dist/FougerePorts.js.map +1 -0
  93. package/dist/FrondConfig.d.ts +36 -0
  94. package/dist/FrondConfig.d.ts.map +1 -0
  95. package/dist/{frond-config.js → FrondConfig.js} +1 -1
  96. package/dist/FrondConfig.js.map +1 -0
  97. package/dist/{declare.d.ts → FrondDeclaration.d.ts} +7 -29
  98. package/dist/FrondDeclaration.d.ts.map +1 -0
  99. package/dist/{declare.js → FrondDeclaration.js} +2 -3
  100. package/dist/FrondDeclaration.js.map +1 -0
  101. package/dist/FrondIdentity.d.ts +8 -0
  102. package/dist/FrondIdentity.d.ts.map +1 -0
  103. package/dist/FrondIdentity.js +2 -0
  104. package/dist/FrondIdentity.js.map +1 -0
  105. package/dist/NameOf.d.ts +10 -0
  106. package/dist/NameOf.d.ts.map +1 -0
  107. package/dist/NameOf.js +2 -0
  108. package/dist/NameOf.js.map +1 -0
  109. package/dist/OperationOverride.d.ts +38 -0
  110. package/dist/OperationOverride.d.ts.map +1 -0
  111. package/dist/OperationOverride.js +2 -0
  112. package/dist/OperationOverride.js.map +1 -0
  113. package/dist/PortChoice.d.ts +13 -0
  114. package/dist/PortChoice.d.ts.map +1 -0
  115. package/dist/PortChoice.js +2 -0
  116. package/dist/PortChoice.js.map +1 -0
  117. package/dist/{source.d.ts → Source.d.ts} +5 -24
  118. package/dist/Source.d.ts.map +1 -0
  119. package/dist/{source.js → Source.js} +5 -4
  120. package/dist/Source.js.map +1 -0
  121. package/dist/SourceConfig.d.ts +10 -0
  122. package/dist/SourceConfig.d.ts.map +1 -0
  123. package/dist/SourceConfig.js +2 -0
  124. package/dist/SourceConfig.js.map +1 -0
  125. package/dist/SourceView.d.ts +13 -0
  126. package/dist/SourceView.d.ts.map +1 -0
  127. package/dist/SourceView.js +2 -0
  128. package/dist/SourceView.js.map +1 -0
  129. package/dist/VerifiedCall.d.ts +8 -0
  130. package/dist/VerifiedCall.d.ts.map +1 -0
  131. package/dist/VerifiedCall.js +2 -0
  132. package/dist/VerifiedCall.js.map +1 -0
  133. package/dist/boot/App.d.ts +71 -0
  134. package/dist/boot/App.d.ts.map +1 -0
  135. package/dist/boot/App.js +2 -0
  136. package/dist/boot/App.js.map +1 -0
  137. package/dist/boot/AppLifecycle.d.ts +2 -19
  138. package/dist/boot/AppLifecycle.d.ts.map +1 -1
  139. package/dist/boot/AppLifecycle.js.map +1 -1
  140. package/dist/boot/AuthConfig.d.ts +14 -0
  141. package/dist/boot/AuthConfig.d.ts.map +1 -0
  142. package/dist/boot/AuthConfig.js +2 -0
  143. package/dist/boot/AuthConfig.js.map +1 -0
  144. package/dist/boot/AuthContext.d.ts +12 -0
  145. package/dist/boot/AuthContext.d.ts.map +1 -0
  146. package/dist/boot/AuthContext.js +2 -0
  147. package/dist/boot/AuthContext.js.map +1 -0
  148. package/dist/boot/AuthRuntime.d.ts +19 -0
  149. package/dist/boot/AuthRuntime.d.ts.map +1 -0
  150. package/dist/boot/AuthRuntime.js +2 -0
  151. package/dist/boot/AuthRuntime.js.map +1 -0
  152. package/dist/boot/CreateAppOptions.d.ts +81 -0
  153. package/dist/boot/CreateAppOptions.d.ts.map +1 -0
  154. package/dist/boot/CreateAppOptions.js +2 -0
  155. package/dist/boot/CreateAppOptions.js.map +1 -0
  156. package/dist/boot/Emissions.d.ts +11 -7
  157. package/dist/boot/Emissions.d.ts.map +1 -1
  158. package/dist/boot/Emissions.js +83 -45
  159. package/dist/boot/Emissions.js.map +1 -1
  160. package/dist/boot/Extension.d.ts +20 -0
  161. package/dist/boot/Extension.d.ts.map +1 -0
  162. package/dist/boot/Extension.js +2 -0
  163. package/dist/boot/Extension.js.map +1 -0
  164. package/dist/boot/Hosting.d.ts +38 -0
  165. package/dist/boot/Hosting.d.ts.map +1 -0
  166. package/dist/boot/Hosting.js +2 -0
  167. package/dist/boot/Hosting.js.map +1 -0
  168. package/dist/boot/Peer.d.ts +16 -0
  169. package/dist/boot/Peer.d.ts.map +1 -0
  170. package/dist/boot/Peer.js +2 -0
  171. package/dist/boot/Peer.js.map +1 -0
  172. package/dist/boot/apply.d.ts +1 -1
  173. package/dist/boot/apply.js +1 -1
  174. package/dist/boot/apply.js.map +1 -1
  175. package/dist/boot/bootstrap.d.ts +2 -1
  176. package/dist/boot/bootstrap.d.ts.map +1 -1
  177. package/dist/boot/bootstrap.js +196 -59
  178. package/dist/boot/bootstrap.js.map +1 -1
  179. package/dist/boot/card.d.ts +2 -2
  180. package/dist/boot/card.d.ts.map +1 -1
  181. package/dist/boot/card.js +11 -8
  182. package/dist/boot/card.js.map +1 -1
  183. package/dist/boot/declared.d.ts +2 -2
  184. package/dist/boot/declared.d.ts.map +1 -1
  185. package/dist/boot/declared.js +36 -4
  186. package/dist/boot/declared.js.map +1 -1
  187. package/dist/boot/frame.d.ts +1 -1
  188. package/dist/boot/frame.js +1 -1
  189. package/dist/boot/hosted.d.ts +1 -1
  190. package/dist/boot/hosted.d.ts.map +1 -1
  191. package/dist/boot/install.d.ts +21 -7
  192. package/dist/boot/install.d.ts.map +1 -1
  193. package/dist/boot/install.js +41 -27
  194. package/dist/boot/install.js.map +1 -1
  195. package/dist/boot/ownership.d.ts +7 -5
  196. package/dist/boot/ownership.d.ts.map +1 -1
  197. package/dist/boot/ownership.js +81 -40
  198. package/dist/boot/ownership.js.map +1 -1
  199. package/dist/boot/peerOver.d.ts +4 -0
  200. package/dist/boot/peerOver.d.ts.map +1 -0
  201. package/dist/boot/peerOver.js +12 -0
  202. package/dist/boot/peerOver.js.map +1 -0
  203. package/dist/boot/ports.d.ts +4 -3
  204. package/dist/boot/ports.d.ts.map +1 -1
  205. package/dist/boot/ports.js +48 -37
  206. package/dist/boot/ports.js.map +1 -1
  207. package/dist/boot/relations.d.ts +54 -0
  208. package/dist/boot/relations.d.ts.map +1 -0
  209. package/dist/boot/relations.js +150 -0
  210. package/dist/boot/relations.js.map +1 -0
  211. package/dist/boot/remote.d.ts +3 -8
  212. package/dist/boot/remote.d.ts.map +1 -1
  213. package/dist/boot/remote.js +19 -15
  214. package/dist/boot/remote.js.map +1 -1
  215. package/dist/boot/runner.d.ts +2 -2
  216. package/dist/boot/runner.d.ts.map +1 -1
  217. package/dist/boot/seed.d.ts +4 -3
  218. package/dist/boot/seed.d.ts.map +1 -1
  219. package/dist/boot/seed.js +6 -6
  220. package/dist/boot/seed.js.map +1 -1
  221. package/dist/boot/statement-drift.d.ts +4 -3
  222. package/dist/boot/statement-drift.d.ts.map +1 -1
  223. package/dist/boot/statement-drift.js.map +1 -1
  224. package/dist/boot/together.d.ts +11 -4
  225. package/dist/boot/together.d.ts.map +1 -1
  226. package/dist/boot/together.js +62 -28
  227. package/dist/boot/together.js.map +1 -1
  228. package/dist/builtin/Carry.d.ts +29 -0
  229. package/dist/builtin/Carry.d.ts.map +1 -0
  230. package/dist/builtin/Carry.js +46 -0
  231. package/dist/builtin/Carry.js.map +1 -0
  232. package/dist/builtin/LogLevel.d.ts +2 -0
  233. package/dist/builtin/LogLevel.d.ts.map +1 -0
  234. package/dist/builtin/LogLevel.js +2 -0
  235. package/dist/builtin/LogLevel.js.map +1 -0
  236. package/dist/builtin/LogRecord.d.ts +12 -0
  237. package/dist/builtin/LogRecord.d.ts.map +1 -0
  238. package/dist/builtin/LogRecord.js +2 -0
  239. package/dist/builtin/LogRecord.js.map +1 -0
  240. package/dist/builtin/LogSink.d.ts +4 -0
  241. package/dist/builtin/LogSink.d.ts.map +1 -0
  242. package/dist/builtin/LogSink.js +2 -0
  243. package/dist/builtin/LogSink.js.map +1 -0
  244. package/dist/builtin/Logger.d.ts +27 -0
  245. package/dist/builtin/Logger.d.ts.map +1 -0
  246. package/dist/builtin/{logger.js → Logger.js} +1 -47
  247. package/dist/builtin/Logger.js.map +1 -0
  248. package/dist/builtin/LoggerOptions.d.ts +14 -0
  249. package/dist/builtin/LoggerOptions.d.ts.map +1 -0
  250. package/dist/builtin/LoggerOptions.js +2 -0
  251. package/dist/builtin/LoggerOptions.js.map +1 -0
  252. package/dist/builtin/Rendered.d.ts +21 -0
  253. package/dist/builtin/Rendered.d.ts.map +1 -0
  254. package/dist/builtin/Rendered.js +2 -0
  255. package/dist/builtin/Rendered.js.map +1 -0
  256. package/dist/contract.d.ts +35 -13
  257. package/dist/contract.d.ts.map +1 -1
  258. package/dist/contract.js +9 -6
  259. package/dist/contract.js.map +1 -1
  260. package/dist/crypto/CryptoPort.d.ts +12 -0
  261. package/dist/crypto/CryptoPort.d.ts.map +1 -0
  262. package/dist/crypto/CryptoPort.js +2 -0
  263. package/dist/crypto/CryptoPort.js.map +1 -0
  264. package/dist/crypto/PublicJwk.d.ts +8 -0
  265. package/dist/crypto/PublicJwk.d.ts.map +1 -0
  266. package/dist/crypto/PublicJwk.js +2 -0
  267. package/dist/crypto/PublicJwk.js.map +1 -0
  268. package/dist/crypto/Signer.d.ts +5 -0
  269. package/dist/crypto/Signer.d.ts.map +1 -0
  270. package/dist/crypto/Signer.js +2 -0
  271. package/dist/crypto/Signer.js.map +1 -0
  272. package/dist/crypto/Verifier.d.ts +6 -0
  273. package/dist/crypto/Verifier.d.ts.map +1 -0
  274. package/dist/crypto/Verifier.js +2 -0
  275. package/dist/crypto/Verifier.js.map +1 -0
  276. package/dist/crypto/node.d.ts +4 -1
  277. package/dist/crypto/node.d.ts.map +1 -1
  278. package/dist/crypto/node.js.map +1 -1
  279. package/dist/crypto/webcrypto.d.ts +4 -1
  280. package/dist/crypto/webcrypto.d.ts.map +1 -1
  281. package/dist/crypto/webcrypto.js.map +1 -1
  282. package/dist/define.d.ts +1 -1
  283. package/dist/descriptor/CollectorEntry.d.ts +12 -0
  284. package/dist/descriptor/CollectorEntry.d.ts.map +1 -0
  285. package/dist/descriptor/CollectorEntry.js +2 -0
  286. package/dist/descriptor/CollectorEntry.js.map +1 -0
  287. package/dist/descriptor/EntityEntry.d.ts +13 -0
  288. package/dist/descriptor/EntityEntry.d.ts.map +1 -0
  289. package/dist/descriptor/EntityEntry.js +2 -0
  290. package/dist/descriptor/EntityEntry.js.map +1 -0
  291. package/dist/descriptor/ExtensionEntry.d.ts +20 -0
  292. package/dist/descriptor/ExtensionEntry.d.ts.map +1 -0
  293. package/dist/descriptor/ExtensionEntry.js +2 -0
  294. package/dist/descriptor/ExtensionEntry.js.map +1 -0
  295. package/dist/descriptor/FrondDescriptor.d.ts +61 -0
  296. package/dist/descriptor/FrondDescriptor.d.ts.map +1 -0
  297. package/dist/descriptor/{frond.js → FrondDescriptor.js} +1 -1
  298. package/dist/descriptor/FrondDescriptor.js.map +1 -0
  299. package/dist/descriptor/FrondSource.d.ts +8 -0
  300. package/dist/descriptor/FrondSource.d.ts.map +1 -0
  301. package/dist/descriptor/FrondSource.js +2 -0
  302. package/dist/descriptor/FrondSource.js.map +1 -0
  303. package/dist/descriptor/Fronds.d.ts +2 -1
  304. package/dist/descriptor/Fronds.d.ts.map +1 -1
  305. package/dist/descriptor/Fronds.js.map +1 -1
  306. package/dist/descriptor/HandlerEntry.d.ts +27 -0
  307. package/dist/descriptor/HandlerEntry.d.ts.map +1 -0
  308. package/dist/descriptor/HandlerEntry.js +2 -0
  309. package/dist/descriptor/HandlerEntry.js.map +1 -0
  310. package/dist/descriptor/MiddlewareEntry.d.ts +17 -0
  311. package/dist/descriptor/MiddlewareEntry.d.ts.map +1 -0
  312. package/dist/descriptor/MiddlewareEntry.js +2 -0
  313. package/dist/descriptor/MiddlewareEntry.js.map +1 -0
  314. package/dist/descriptor/PresenterEntry.d.ts +23 -0
  315. package/dist/descriptor/PresenterEntry.d.ts.map +1 -0
  316. package/dist/descriptor/PresenterEntry.js +2 -0
  317. package/dist/descriptor/PresenterEntry.js.map +1 -0
  318. package/dist/descriptor/PresenterFieldMeta.d.ts +14 -0
  319. package/dist/descriptor/PresenterFieldMeta.d.ts.map +1 -0
  320. package/dist/descriptor/PresenterFieldMeta.js +2 -0
  321. package/dist/descriptor/PresenterFieldMeta.js.map +1 -0
  322. package/dist/descriptor/ProviderEntry.d.ts +19 -0
  323. package/dist/descriptor/ProviderEntry.d.ts.map +1 -0
  324. package/dist/descriptor/ProviderEntry.js +2 -0
  325. package/dist/descriptor/ProviderEntry.js.map +1 -0
  326. package/dist/descriptor/SeedEntry.d.ts +11 -0
  327. package/dist/descriptor/SeedEntry.d.ts.map +1 -0
  328. package/dist/descriptor/SeedEntry.js +2 -0
  329. package/dist/descriptor/SeedEntry.js.map +1 -0
  330. package/dist/descriptor/SeedFactory.d.ts +3 -0
  331. package/dist/descriptor/SeedFactory.d.ts.map +1 -0
  332. package/dist/descriptor/SeedFactory.js +2 -0
  333. package/dist/descriptor/SeedFactory.js.map +1 -0
  334. package/dist/descriptor/bases.d.ts +17 -0
  335. package/dist/descriptor/bases.d.ts.map +1 -0
  336. package/dist/descriptor/bases.js +26 -0
  337. package/dist/descriptor/bases.js.map +1 -0
  338. package/dist/descriptor/index.d.ts +22 -6
  339. package/dist/descriptor/index.d.ts.map +1 -1
  340. package/dist/descriptor/index.js +19 -5
  341. package/dist/descriptor/index.js.map +1 -1
  342. package/dist/descriptor/surface.d.ts +3 -2
  343. package/dist/descriptor/surface.d.ts.map +1 -1
  344. package/dist/descriptor/surface.js +1 -1
  345. package/dist/descriptor/surface.js.map +1 -1
  346. package/dist/diagnostic.d.ts +33 -0
  347. package/dist/diagnostic.d.ts.map +1 -0
  348. package/dist/diagnostic.js +12 -0
  349. package/dist/diagnostic.js.map +1 -0
  350. package/dist/dispatch/ArgumentResolver.d.ts +2 -5
  351. package/dist/dispatch/ArgumentResolver.d.ts.map +1 -1
  352. package/dist/dispatch/ArgumentResolver.js.map +1 -1
  353. package/dist/dispatch/CollectorLookup.d.ts +3 -0
  354. package/dist/dispatch/CollectorLookup.d.ts.map +1 -0
  355. package/dist/dispatch/CollectorLookup.js +2 -0
  356. package/dist/dispatch/CollectorLookup.js.map +1 -0
  357. package/dist/dispatch/CollectorResolver.d.ts +5 -0
  358. package/dist/dispatch/CollectorResolver.d.ts.map +1 -0
  359. package/dist/dispatch/CollectorResolver.js +2 -0
  360. package/dist/dispatch/CollectorResolver.js.map +1 -0
  361. package/dist/dispatch/Dependent.d.ts +19 -0
  362. package/dist/dispatch/Dependent.d.ts.map +1 -0
  363. package/dist/dispatch/Dependent.js +2 -0
  364. package/dist/dispatch/Dependent.js.map +1 -0
  365. package/dist/dispatch/DispatchEvent.d.ts +3 -4
  366. package/dist/dispatch/DispatchEvent.d.ts.map +1 -1
  367. package/dist/dispatch/DispatchEvent.js.map +1 -1
  368. package/dist/dispatch/DispatchLifecycle.d.ts +2 -1
  369. package/dist/dispatch/DispatchLifecycle.d.ts.map +1 -1
  370. package/dist/dispatch/DispatchLifecycle.js.map +1 -1
  371. package/dist/dispatch/DispatchObserver.d.ts +3 -0
  372. package/dist/dispatch/DispatchObserver.d.ts.map +1 -0
  373. package/dist/dispatch/DispatchObserver.js +2 -0
  374. package/dist/dispatch/DispatchObserver.js.map +1 -0
  375. package/dist/dispatch/DispatchPort.d.ts +1 -1
  376. package/dist/dispatch/DispatchStage.d.ts +2 -0
  377. package/dist/dispatch/DispatchStage.d.ts.map +1 -0
  378. package/dist/dispatch/DispatchStage.js +2 -0
  379. package/dist/dispatch/DispatchStage.js.map +1 -0
  380. package/dist/dispatch/Dispatcher.d.ts +15 -2
  381. package/dist/dispatch/Dispatcher.d.ts.map +1 -1
  382. package/dist/dispatch/Dispatcher.js +36 -8
  383. package/dist/dispatch/Dispatcher.js.map +1 -1
  384. package/dist/dispatch/Facade.d.ts +25 -0
  385. package/dist/dispatch/Facade.d.ts.map +1 -0
  386. package/dist/dispatch/Facade.js +2 -0
  387. package/dist/dispatch/Facade.js.map +1 -0
  388. package/dist/dispatch/GuardReport.d.ts +9 -0
  389. package/dist/dispatch/GuardReport.d.ts.map +1 -0
  390. package/dist/dispatch/GuardReport.js +2 -0
  391. package/dist/dispatch/GuardReport.js.map +1 -0
  392. package/dist/dispatch/HandlerFacade.d.ts +9 -28
  393. package/dist/dispatch/HandlerFacade.d.ts.map +1 -1
  394. package/dist/dispatch/HandlerFacade.js +19 -19
  395. package/dist/dispatch/HandlerFacade.js.map +1 -1
  396. package/dist/dispatch/InFlight.d.ts.map +1 -1
  397. package/dist/dispatch/InFlight.js +2 -1
  398. package/dist/dispatch/InFlight.js.map +1 -1
  399. package/dist/dispatch/Journal.d.ts +25 -0
  400. package/dist/dispatch/Journal.d.ts.map +1 -0
  401. package/dist/dispatch/Journal.js +3 -0
  402. package/dist/dispatch/Journal.js.map +1 -0
  403. package/dist/dispatch/LocalRoutePolicy.d.ts +1 -1
  404. package/dist/dispatch/LocalRoutePolicy.d.ts.map +1 -1
  405. package/dist/dispatch/LocalRoutePolicy.js +2 -1
  406. package/dist/dispatch/LocalRoutePolicy.js.map +1 -1
  407. package/dist/dispatch/OperationRoute.d.ts +2 -2
  408. package/dist/dispatch/OperationRoute.d.ts.map +1 -1
  409. package/dist/dispatch/OperationRoute.js.map +1 -1
  410. package/dist/dispatch/PresenterArgs.d.ts +2 -0
  411. package/dist/dispatch/PresenterArgs.d.ts.map +1 -0
  412. package/dist/dispatch/PresenterArgs.js +2 -0
  413. package/dist/dispatch/PresenterArgs.js.map +1 -0
  414. package/dist/dispatch/PresenterExecutor.d.ts +1 -1
  415. package/dist/dispatch/PresenterExecutor.d.ts.map +1 -1
  416. package/dist/dispatch/PresenterExecutor.js +2 -1
  417. package/dist/dispatch/PresenterExecutor.js.map +1 -1
  418. package/dist/dispatch/RelationCheck.d.ts +22 -0
  419. package/dist/dispatch/RelationCheck.d.ts.map +1 -0
  420. package/dist/dispatch/RelationCheck.js +2 -0
  421. package/dist/dispatch/RelationCheck.js.map +1 -0
  422. package/dist/dispatch/Release.d.ts +36 -0
  423. package/dist/dispatch/Release.d.ts.map +1 -0
  424. package/dist/dispatch/Release.js +124 -0
  425. package/dist/dispatch/Release.js.map +1 -0
  426. package/dist/dispatch/Route.d.ts +3 -2
  427. package/dist/dispatch/Route.d.ts.map +1 -1
  428. package/dist/dispatch/RouteExecution.d.ts +3 -0
  429. package/dist/dispatch/RouteExecution.d.ts.map +1 -0
  430. package/dist/dispatch/RouteExecution.js +2 -0
  431. package/dist/dispatch/RouteExecution.js.map +1 -0
  432. package/dist/dispatch/RoutePolicy.d.ts +1 -1
  433. package/dist/dispatch/StorageGuard.d.ts +24 -13
  434. package/dist/dispatch/StorageGuard.d.ts.map +1 -1
  435. package/dist/dispatch/StorageGuard.js +69 -12
  436. package/dist/dispatch/StorageGuard.js.map +1 -1
  437. package/dist/dispatch/presenterArguments.d.ts +3 -3
  438. package/dist/dispatch/presenterArguments.d.ts.map +1 -1
  439. package/dist/dispatch/routeNotFound.d.ts +2 -2
  440. package/dist/dispatch/routeNotFound.d.ts.map +1 -1
  441. package/dist/dispatch/routeNotFound.js +2 -1
  442. package/dist/dispatch/routeNotFound.js.map +1 -1
  443. package/dist/dispatch/validateInput.d.ts +1 -1
  444. package/dist/dispatch/validateInput.d.ts.map +1 -1
  445. package/dist/dispatch/validateInput.js +2 -1
  446. package/dist/dispatch/validateInput.js.map +1 -1
  447. package/dist/entry/facade.js +1 -1
  448. package/dist/entry/transport.d.ts +1 -1
  449. package/dist/entry/transport.d.ts.map +1 -1
  450. package/dist/entry/transport.js +1 -1
  451. package/dist/index.d.ts +97 -33
  452. package/dist/index.d.ts.map +1 -1
  453. package/dist/index.js +20 -13
  454. package/dist/index.js.map +1 -1
  455. package/dist/node.d.ts +2 -2
  456. package/dist/node.d.ts.map +1 -1
  457. package/dist/node.js +2 -2
  458. package/dist/node.js.map +1 -1
  459. package/dist/prefab/AggregateConstructor.d.ts +8 -0
  460. package/dist/prefab/AggregateConstructor.d.ts.map +1 -0
  461. package/dist/prefab/AggregateConstructor.js +2 -0
  462. package/dist/prefab/AggregateConstructor.js.map +1 -0
  463. package/dist/prefab/AggregateOf.d.ts +7 -0
  464. package/dist/prefab/AggregateOf.d.ts.map +1 -0
  465. package/dist/prefab/AggregateOf.js +2 -0
  466. package/dist/prefab/AggregateOf.js.map +1 -0
  467. package/dist/prefab/AggregateShape.d.ts +9 -0
  468. package/dist/prefab/AggregateShape.d.ts.map +1 -0
  469. package/dist/prefab/AggregateShape.js +2 -0
  470. package/dist/prefab/AggregateShape.js.map +1 -0
  471. package/dist/prefab/{crud.d.ts → CrudConstructor.d.ts} +5 -21
  472. package/dist/prefab/CrudConstructor.d.ts.map +1 -0
  473. package/dist/prefab/{crud.js → CrudConstructor.js} +1 -1
  474. package/dist/prefab/CrudConstructor.js.map +1 -0
  475. package/dist/prefab/CrudOpName.d.ts +3 -0
  476. package/dist/prefab/CrudOpName.d.ts.map +1 -0
  477. package/dist/prefab/CrudOpName.js +2 -0
  478. package/dist/prefab/CrudOpName.js.map +1 -0
  479. package/dist/prefab/CrudOps.d.ts +20 -0
  480. package/dist/prefab/CrudOps.d.ts.map +1 -0
  481. package/dist/prefab/CrudOps.js +2 -0
  482. package/dist/prefab/CrudOps.js.map +1 -0
  483. package/dist/prefab/CrudViews.d.ts +5 -0
  484. package/dist/prefab/CrudViews.d.ts.map +1 -0
  485. package/dist/prefab/CrudViews.js +2 -0
  486. package/dist/prefab/CrudViews.js.map +1 -0
  487. package/dist/prefab/MirrorConstructor.d.ts +9 -0
  488. package/dist/prefab/MirrorConstructor.d.ts.map +1 -0
  489. package/dist/prefab/{mirror.js → MirrorConstructor.js} +1 -1
  490. package/dist/prefab/MirrorConstructor.js.map +1 -0
  491. package/dist/prefab/MirrorOf.d.ts +19 -0
  492. package/dist/prefab/MirrorOf.d.ts.map +1 -0
  493. package/dist/prefab/MirrorOf.js +2 -0
  494. package/dist/prefab/MirrorOf.js.map +1 -0
  495. package/dist/prefab/Refreshed.d.ts +10 -0
  496. package/dist/prefab/Refreshed.d.ts.map +1 -0
  497. package/dist/prefab/Refreshed.js +2 -0
  498. package/dist/prefab/Refreshed.js.map +1 -0
  499. package/dist/prefab/RepositoryConstructor.d.ts +15 -0
  500. package/dist/prefab/RepositoryConstructor.d.ts.map +1 -0
  501. package/dist/prefab/{repository.js → RepositoryConstructor.js} +1 -1
  502. package/dist/prefab/RepositoryConstructor.js.map +1 -0
  503. package/dist/prefab/RepositoryOf.d.ts +7 -0
  504. package/dist/prefab/RepositoryOf.d.ts.map +1 -0
  505. package/dist/prefab/RepositoryOf.js +2 -0
  506. package/dist/prefab/RepositoryOf.js.map +1 -0
  507. package/dist/scan.d.ts +3 -22
  508. package/dist/scan.d.ts.map +1 -1
  509. package/dist/storage/{criterion.d.ts → Comparison.d.ts} +2 -3
  510. package/dist/storage/Comparison.d.ts.map +1 -0
  511. package/dist/storage/{criterion.js → Comparison.js} +1 -2
  512. package/dist/storage/Comparison.js.map +1 -0
  513. package/dist/storage/ComparisonName.d.ts +3 -0
  514. package/dist/storage/ComparisonName.d.ts.map +1 -0
  515. package/dist/storage/ComparisonName.js +2 -0
  516. package/dist/storage/ComparisonName.js.map +1 -0
  517. package/dist/storage/ListOptions.d.ts +23 -0
  518. package/dist/storage/ListOptions.d.ts.map +1 -0
  519. package/dist/storage/ListOptions.js +2 -0
  520. package/dist/storage/ListOptions.js.map +1 -0
  521. package/dist/storage/ListResult.d.ts +10 -0
  522. package/dist/storage/ListResult.d.ts.map +1 -0
  523. package/dist/storage/ListResult.js +2 -0
  524. package/dist/storage/ListResult.js.map +1 -0
  525. package/dist/storage/SelectOption.d.ts +6 -0
  526. package/dist/storage/SelectOption.d.ts.map +1 -0
  527. package/dist/storage/SelectOption.js +2 -0
  528. package/dist/storage/SelectOption.js.map +1 -0
  529. package/dist/storage/{port.d.ts → Storage.d.ts} +4 -47
  530. package/dist/storage/Storage.d.ts.map +1 -0
  531. package/dist/storage/{port.js → Storage.js} +1 -1
  532. package/dist/storage/Storage.js.map +1 -0
  533. package/dist/storage/StorageFactory.d.ts +8 -0
  534. package/dist/storage/StorageFactory.d.ts.map +1 -0
  535. package/dist/storage/StorageFactory.js +2 -0
  536. package/dist/storage/StorageFactory.js.map +1 -0
  537. package/dist/storage/{store.d.ts → Store.d.ts} +3 -5
  538. package/dist/storage/Store.d.ts.map +1 -0
  539. package/dist/storage/{store.js → Store.js} +3 -4
  540. package/dist/storage/Store.js.map +1 -0
  541. package/dist/storage/Together.d.ts +8 -0
  542. package/dist/storage/Together.d.ts.map +1 -0
  543. package/dist/storage/Together.js +2 -0
  544. package/dist/storage/Together.js.map +1 -0
  545. package/dist/storage/Values.d.ts +3 -0
  546. package/dist/storage/Values.d.ts.map +1 -0
  547. package/dist/storage/Values.js +2 -0
  548. package/dist/storage/Values.js.map +1 -0
  549. package/dist/verify.d.ts +6 -15
  550. package/dist/verify.d.ts.map +1 -1
  551. package/dist/verify.js +5 -5
  552. package/dist/verify.js.map +1 -1
  553. package/dist/wire/Addresses.d.ts +16 -0
  554. package/dist/wire/Addresses.d.ts.map +1 -0
  555. package/dist/wire/Addresses.js +2 -0
  556. package/dist/wire/Addresses.js.map +1 -0
  557. package/dist/wire/Answer.d.ts +3 -0
  558. package/dist/wire/Answer.d.ts.map +1 -0
  559. package/dist/wire/Answer.js +2 -0
  560. package/dist/wire/Answer.js.map +1 -0
  561. package/dist/wire/AnyHandler.d.ts +3 -0
  562. package/dist/wire/AnyHandler.d.ts.map +1 -0
  563. package/dist/wire/AnyHandler.js +2 -0
  564. package/dist/wire/AnyHandler.js.map +1 -0
  565. package/dist/wire/AppMiddleware.d.ts +8 -0
  566. package/dist/wire/AppMiddleware.d.ts.map +1 -0
  567. package/dist/wire/{middleware.js → AppMiddleware.js} +1 -2
  568. package/dist/wire/AppMiddleware.js.map +1 -0
  569. package/dist/wire/AppNext.d.ts +2 -0
  570. package/dist/wire/AppNext.d.ts.map +1 -0
  571. package/dist/wire/AppNext.js +2 -0
  572. package/dist/wire/AppNext.js.map +1 -0
  573. package/dist/wire/Call.d.ts +10 -0
  574. package/dist/wire/Call.d.ts.map +1 -0
  575. package/dist/wire/Call.js +12 -0
  576. package/dist/wire/Call.js.map +1 -0
  577. package/dist/wire/CallPage.d.ts +9 -0
  578. package/dist/wire/CallPage.d.ts.map +1 -0
  579. package/dist/wire/CallPage.js +2 -0
  580. package/dist/wire/CallPage.js.map +1 -0
  581. package/dist/wire/{CallLog.d.ts → CallRecord.d.ts} +3 -10
  582. package/dist/wire/CallRecord.d.ts.map +1 -0
  583. package/dist/wire/CallRecord.js +2 -0
  584. package/dist/wire/CallRecord.js.map +1 -0
  585. package/dist/wire/{emit.d.ts → Emit.d.ts} +10 -18
  586. package/dist/wire/Emit.d.ts.map +1 -0
  587. package/dist/wire/{emit.js → Emit.js} +17 -6
  588. package/dist/wire/Emit.js.map +1 -0
  589. package/dist/wire/ErrorCode.d.ts +23 -0
  590. package/dist/wire/ErrorCode.d.ts.map +1 -0
  591. package/dist/wire/ErrorCode.js +30 -0
  592. package/dist/wire/ErrorCode.js.map +1 -0
  593. package/dist/wire/Facade.d.ts +10 -0
  594. package/dist/wire/Facade.d.ts.map +1 -0
  595. package/dist/wire/Facade.js +9 -0
  596. package/dist/wire/Facade.js.map +1 -0
  597. package/dist/wire/FacadeName.d.ts +14 -0
  598. package/dist/wire/FacadeName.d.ts.map +1 -0
  599. package/dist/wire/FacadeName.js +2 -0
  600. package/dist/wire/FacadeName.js.map +1 -0
  601. package/dist/wire/Fact.d.ts +9 -0
  602. package/dist/wire/Fact.d.ts.map +1 -0
  603. package/dist/wire/Fact.js +2 -0
  604. package/dist/wire/Fact.js.map +1 -0
  605. package/dist/wire/FougereError.d.ts +35 -0
  606. package/dist/wire/FougereError.d.ts.map +1 -0
  607. package/dist/wire/{errors.js → FougereError.js} +9 -32
  608. package/dist/wire/FougereError.js.map +1 -0
  609. package/dist/wire/FougereErrorOptions.d.ts +10 -0
  610. package/dist/wire/FougereErrorOptions.d.ts.map +1 -0
  611. package/dist/wire/FougereErrorOptions.js +2 -0
  612. package/dist/wire/FougereErrorOptions.js.map +1 -0
  613. package/dist/wire/FougereHandlers.d.ts +10 -0
  614. package/dist/wire/FougereHandlers.d.ts.map +1 -0
  615. package/dist/wire/FougereHandlers.js +2 -0
  616. package/dist/wire/FougereHandlers.js.map +1 -0
  617. package/dist/wire/FougereOperations.d.ts +4 -0
  618. package/dist/wire/FougereOperations.d.ts.map +1 -0
  619. package/dist/wire/FougereOperations.js +2 -0
  620. package/dist/wire/FougereOperations.js.map +1 -0
  621. package/dist/wire/FrondCall.d.ts +10 -0
  622. package/dist/wire/FrondCall.d.ts.map +1 -0
  623. package/dist/wire/FrondCall.js +2 -0
  624. package/dist/wire/FrondCall.js.map +1 -0
  625. package/dist/wire/HandlerOf.d.ts +10 -0
  626. package/dist/wire/HandlerOf.d.ts.map +1 -0
  627. package/dist/wire/HandlerOf.js +2 -0
  628. package/dist/wire/HandlerOf.js.map +1 -0
  629. package/dist/wire/Invocation.d.ts +4 -11
  630. package/dist/wire/Invocation.d.ts.map +1 -1
  631. package/dist/wire/Invocation.js +4 -1
  632. package/dist/wire/Invocation.js.map +1 -1
  633. package/dist/wire/InvocationContext.d.ts +12 -0
  634. package/dist/wire/InvocationContext.d.ts.map +1 -0
  635. package/dist/wire/InvocationContext.js +2 -0
  636. package/dist/wire/InvocationContext.js.map +1 -0
  637. package/dist/wire/{middleware.d.ts → OperationContext.d.ts} +2 -9
  638. package/dist/wire/OperationContext.d.ts.map +1 -0
  639. package/dist/wire/OperationContext.js +2 -0
  640. package/dist/wire/OperationContext.js.map +1 -0
  641. package/dist/wire/{operation.d.ts → OperationContract.d.ts} +15 -12
  642. package/dist/wire/OperationContract.d.ts.map +1 -0
  643. package/dist/wire/{operation.js → OperationContract.js} +1 -1
  644. package/dist/wire/OperationContract.js.map +1 -0
  645. package/dist/wire/OperationKind.d.ts +2 -0
  646. package/dist/wire/OperationKind.d.ts.map +1 -0
  647. package/dist/wire/OperationKind.js +2 -0
  648. package/dist/wire/OperationKind.js.map +1 -0
  649. package/dist/wire/OperationKindInference.d.ts +8 -0
  650. package/dist/wire/OperationKindInference.d.ts.map +1 -0
  651. package/dist/wire/OperationKindInference.js +2 -0
  652. package/dist/wire/OperationKindInference.js.map +1 -0
  653. package/dist/wire/OperationsMap.d.ts +7 -0
  654. package/dist/wire/OperationsMap.d.ts.map +1 -0
  655. package/dist/wire/OperationsMap.js +7 -0
  656. package/dist/wire/OperationsMap.js.map +1 -0
  657. package/dist/wire/Param.d.ts +8 -0
  658. package/dist/wire/Param.d.ts.map +1 -0
  659. package/dist/wire/Param.js +2 -0
  660. package/dist/wire/Param.js.map +1 -0
  661. package/dist/wire/PartialInvocation.d.ts +3 -0
  662. package/dist/wire/PartialInvocation.d.ts.map +1 -0
  663. package/dist/wire/PartialInvocation.js +2 -0
  664. package/dist/wire/PartialInvocation.js.map +1 -0
  665. package/dist/wire/Pipe.d.ts +10 -0
  666. package/dist/wire/Pipe.d.ts.map +1 -0
  667. package/dist/wire/Pipe.js +2 -0
  668. package/dist/wire/Pipe.js.map +1 -0
  669. package/dist/wire/Refused.d.ts +10 -0
  670. package/dist/wire/Refused.d.ts.map +1 -0
  671. package/dist/wire/Refused.js +2 -0
  672. package/dist/wire/Refused.js.map +1 -0
  673. package/dist/wire/RouteAddress.d.ts +1 -7
  674. package/dist/wire/RouteAddress.d.ts.map +1 -1
  675. package/dist/wire/RouteAddress.js.map +1 -1
  676. package/dist/wire/RouteAddressInput.d.ts +6 -0
  677. package/dist/wire/RouteAddressInput.d.ts.map +1 -0
  678. package/dist/wire/RouteAddressInput.js +2 -0
  679. package/dist/wire/RouteAddressInput.js.map +1 -0
  680. package/dist/wire/RouteKind.d.ts +3 -0
  681. package/dist/wire/RouteKind.d.ts.map +1 -0
  682. package/dist/wire/RouteKind.js +2 -0
  683. package/dist/wire/RouteKind.js.map +1 -0
  684. package/dist/wire/Rows.d.ts +8 -0
  685. package/dist/wire/Rows.d.ts.map +1 -0
  686. package/dist/wire/Rows.js +2 -0
  687. package/dist/wire/Rows.js.map +1 -0
  688. package/dist/wire/RpcAnswer.d.ts +6 -0
  689. package/dist/wire/RpcAnswer.d.ts.map +1 -0
  690. package/dist/wire/RpcAnswer.js +3 -0
  691. package/dist/wire/RpcAnswer.js.map +1 -0
  692. package/dist/wire/Signature.d.ts +13 -0
  693. package/dist/wire/Signature.d.ts.map +1 -0
  694. package/dist/wire/Signature.js +2 -0
  695. package/dist/wire/Signature.js.map +1 -0
  696. package/dist/wire/SignedCall.d.ts +14 -0
  697. package/dist/wire/SignedCall.d.ts.map +1 -0
  698. package/dist/wire/SignedCall.js +3 -0
  699. package/dist/wire/SignedCall.js.map +1 -0
  700. package/dist/wire/Transport.d.ts +5 -0
  701. package/dist/wire/Transport.d.ts.map +1 -0
  702. package/dist/wire/Transport.js +2 -0
  703. package/dist/wire/Transport.js.map +1 -0
  704. package/dist/wire/{signature.d.ts → TypeRef.d.ts} +1 -17
  705. package/dist/wire/TypeRef.d.ts.map +1 -0
  706. package/dist/wire/TypeRef.js +2 -0
  707. package/dist/wire/TypeRef.js.map +1 -0
  708. package/dist/wire/binding.d.ts +1 -1
  709. package/dist/wire/binding.d.ts.map +1 -1
  710. package/dist/wire/card/CardOp.d.ts +22 -0
  711. package/dist/wire/card/CardOp.d.ts.map +1 -0
  712. package/dist/wire/card/CardOp.js +2 -0
  713. package/dist/wire/card/CardOp.js.map +1 -0
  714. package/dist/wire/card/IdentityCard.d.ts +22 -0
  715. package/dist/wire/card/IdentityCard.d.ts.map +1 -0
  716. package/dist/wire/card/IdentityCard.js +25 -0
  717. package/dist/wire/card/IdentityCard.js.map +1 -0
  718. package/dist/wire/drift.d.ts +6 -6
  719. package/dist/wire/drift.d.ts.map +1 -1
  720. package/dist/wire/drift.js +18 -18
  721. package/dist/wire/drift.js.map +1 -1
  722. package/dist/wire/http-error.d.ts +1 -2
  723. package/dist/wire/http-error.d.ts.map +1 -1
  724. package/dist/wire/http-error.js +4 -3
  725. package/dist/wire/http-error.js.map +1 -1
  726. package/dist/wire/loggerMiddleware.d.ts +2 -2
  727. package/dist/wire/loggerMiddleware.d.ts.map +1 -1
  728. package/dist/wire/refusals.d.ts +33 -0
  729. package/dist/wire/refusals.d.ts.map +1 -0
  730. package/dist/wire/refusals.js +44 -0
  731. package/dist/wire/refusals.js.map +1 -0
  732. package/dist/wire/topology/DeclaredEdge.d.ts +6 -0
  733. package/dist/wire/topology/DeclaredEdge.d.ts.map +1 -0
  734. package/dist/wire/topology/DeclaredEdge.js +2 -0
  735. package/dist/wire/topology/DeclaredEdge.js.map +1 -0
  736. package/dist/wire/topology/DeclaredFrond.d.ts +11 -0
  737. package/dist/wire/topology/DeclaredFrond.d.ts.map +1 -0
  738. package/dist/wire/topology/DeclaredFrond.js +2 -0
  739. package/dist/wire/topology/DeclaredFrond.js.map +1 -0
  740. package/dist/wire/topology/DeclaredTopology.d.ts +12 -0
  741. package/dist/wire/topology/DeclaredTopology.d.ts.map +1 -0
  742. package/dist/wire/topology/DeclaredTopology.js +2 -0
  743. package/dist/wire/topology/DeclaredTopology.js.map +1 -0
  744. package/dist/wire/topology/Edge.d.ts +8 -0
  745. package/dist/wire/topology/Edge.d.ts.map +1 -0
  746. package/dist/wire/topology/Edge.js +2 -0
  747. package/dist/wire/topology/Edge.js.map +1 -0
  748. package/dist/wire/topology/FrondPlacement.d.ts +8 -0
  749. package/dist/wire/topology/FrondPlacement.d.ts.map +1 -0
  750. package/dist/wire/topology/FrondPlacement.js +2 -0
  751. package/dist/wire/topology/FrondPlacement.js.map +1 -0
  752. package/dist/wire/topology/TopologyReport.d.ts +14 -0
  753. package/dist/wire/topology/TopologyReport.d.ts.map +1 -0
  754. package/dist/wire/topology/TopologyReport.js +2 -0
  755. package/dist/wire/topology/TopologyReport.js.map +1 -0
  756. package/package.json +4 -4
  757. package/src/AdapterConfig.ts +11 -0
  758. package/src/AnswerFor.ts +7 -0
  759. package/src/Binding.ts +4 -0
  760. package/src/{identity.ts → CallIdentity.ts} +9 -25
  761. package/src/Constraint.ts +2 -0
  762. package/src/{conventions.ts → Conventions.ts} +20 -9
  763. package/src/ConventionsInput.ts +8 -0
  764. package/src/Ctor.ts +2 -0
  765. package/src/Declared.ts +8 -0
  766. package/src/DeclaredHandler.ts +18 -0
  767. package/src/DeclaredSubject.ts +6 -0
  768. package/src/{graph.ts → DomainCluster.ts} +2 -12
  769. package/src/EffectiveCollector.ts +7 -0
  770. package/src/EffectiveOperation.ts +62 -0
  771. package/src/{effective-operation.ts → EffectiveOperationModel.ts} +28 -125
  772. package/src/EffectiveOperationOptions.ts +7 -0
  773. package/src/EffectiveOperationSemantics.ts +7 -0
  774. package/src/EffectiveOperationsMap.ts +3 -0
  775. package/src/EffectiveParameter.ts +13 -0
  776. package/src/EntityNode.ts +6 -0
  777. package/src/{config-loader.ts → FougereConfig.ts} +15 -20
  778. package/src/FougereNames.ts +2 -0
  779. package/src/FougerePorts.ts +7 -0
  780. package/src/{frond-config.ts → FrondConfig.ts} +8 -46
  781. package/src/{declare.ts → FrondDeclaration.ts} +14 -35
  782. package/src/FrondIdentity.ts +7 -0
  783. package/src/NameOf.ts +12 -0
  784. package/src/OperationOverride.ts +38 -0
  785. package/src/PortChoice.ts +13 -0
  786. package/src/{source.ts → Source.ts} +7 -23
  787. package/src/SourceConfig.ts +10 -0
  788. package/src/SourceView.ts +7 -0
  789. package/src/VerifiedCall.ts +7 -0
  790. package/src/boot/App.ts +71 -0
  791. package/src/boot/AppLifecycle.ts +2 -20
  792. package/src/boot/AuthConfig.ts +14 -0
  793. package/src/boot/AuthContext.ts +12 -0
  794. package/src/boot/AuthRuntime.ts +19 -0
  795. package/src/boot/CreateAppOptions.ts +81 -0
  796. package/src/boot/Emissions.ts +86 -56
  797. package/src/boot/Extension.ts +20 -0
  798. package/src/boot/Hosting.ts +38 -0
  799. package/src/boot/Peer.ts +15 -0
  800. package/src/boot/apply.ts +2 -2
  801. package/src/boot/bootstrap.ts +240 -87
  802. package/src/boot/card.ts +15 -11
  803. package/src/boot/declared.ts +40 -5
  804. package/src/boot/frame.ts +2 -2
  805. package/src/boot/hosted.ts +1 -1
  806. package/src/boot/install.ts +65 -33
  807. package/src/boot/ownership.ts +92 -52
  808. package/src/boot/peerOver.ts +17 -0
  809. package/src/boot/ports.ts +52 -41
  810. package/src/boot/relations.ts +172 -0
  811. package/src/boot/remote.ts +24 -17
  812. package/src/boot/runner.ts +2 -2
  813. package/src/boot/seed.ts +12 -10
  814. package/src/boot/statement-drift.ts +6 -5
  815. package/src/boot/together.ts +82 -38
  816. package/src/builtin/Carry.ts +49 -0
  817. package/src/builtin/LogLevel.ts +1 -0
  818. package/src/builtin/LogRecord.ts +12 -0
  819. package/src/builtin/LogSink.ts +4 -0
  820. package/src/builtin/{logger.ts → Logger.ts} +5 -98
  821. package/src/builtin/LoggerOptions.ts +14 -0
  822. package/src/builtin/Rendered.ts +21 -0
  823. package/src/contract.ts +36 -16
  824. package/src/crypto/CryptoPort.ts +12 -0
  825. package/src/crypto/PublicJwk.ts +7 -0
  826. package/src/crypto/Signer.ts +4 -0
  827. package/src/crypto/Verifier.ts +5 -0
  828. package/src/crypto/node.ts +4 -1
  829. package/src/crypto/webcrypto.ts +4 -1
  830. package/src/define.ts +1 -1
  831. package/src/descriptor/CollectorEntry.ts +11 -0
  832. package/src/descriptor/EntityEntry.ts +13 -0
  833. package/src/descriptor/ExtensionEntry.ts +15 -0
  834. package/src/descriptor/FrondDescriptor.ts +58 -0
  835. package/src/descriptor/FrondSource.ts +7 -0
  836. package/src/descriptor/Fronds.ts +2 -1
  837. package/src/descriptor/HandlerEntry.ts +27 -0
  838. package/src/descriptor/MiddlewareEntry.ts +16 -0
  839. package/src/descriptor/PresenterEntry.ts +23 -0
  840. package/src/descriptor/PresenterFieldMeta.ts +14 -0
  841. package/src/descriptor/ProviderEntry.ts +18 -0
  842. package/src/descriptor/SeedEntry.ts +11 -0
  843. package/src/descriptor/SeedFactory.ts +2 -0
  844. package/src/descriptor/bases.ts +30 -0
  845. package/src/descriptor/index.ts +24 -6
  846. package/src/descriptor/surface.ts +3 -2
  847. package/src/diagnostic.ts +41 -0
  848. package/src/dispatch/ArgumentResolver.ts +2 -7
  849. package/src/dispatch/CollectorLookup.ts +3 -0
  850. package/src/dispatch/CollectorResolver.ts +5 -0
  851. package/src/dispatch/Dependent.ts +19 -0
  852. package/src/dispatch/DispatchEvent.ts +3 -6
  853. package/src/dispatch/DispatchLifecycle.ts +2 -1
  854. package/src/dispatch/DispatchObserver.ts +3 -0
  855. package/src/dispatch/DispatchPort.ts +1 -1
  856. package/src/dispatch/DispatchStage.ts +1 -0
  857. package/src/dispatch/Dispatcher.ts +44 -8
  858. package/src/dispatch/Facade.ts +25 -0
  859. package/src/dispatch/GuardReport.ts +9 -0
  860. package/src/dispatch/HandlerFacade.ts +28 -46
  861. package/src/dispatch/InFlight.ts +2 -1
  862. package/src/dispatch/Journal.ts +26 -0
  863. package/src/dispatch/LocalRoutePolicy.ts +3 -2
  864. package/src/dispatch/OperationRoute.ts +2 -3
  865. package/src/dispatch/PresenterArgs.ts +1 -0
  866. package/src/dispatch/PresenterExecutor.ts +3 -3
  867. package/src/dispatch/RelationCheck.ts +21 -0
  868. package/src/dispatch/Release.ts +156 -0
  869. package/src/dispatch/Route.ts +3 -2
  870. package/src/dispatch/RouteExecution.ts +3 -0
  871. package/src/dispatch/RoutePolicy.ts +1 -1
  872. package/src/dispatch/StorageGuard.ts +75 -19
  873. package/src/dispatch/presenterArguments.ts +3 -3
  874. package/src/dispatch/routeNotFound.ts +3 -2
  875. package/src/dispatch/validateInput.ts +3 -2
  876. package/src/entry/facade.ts +2 -2
  877. package/src/entry/transport.ts +2 -2
  878. package/src/index.ts +101 -52
  879. package/src/node.ts +2 -2
  880. package/src/prefab/AggregateConstructor.ts +9 -0
  881. package/src/prefab/AggregateOf.ts +6 -0
  882. package/src/prefab/AggregateShape.ts +7 -0
  883. package/src/prefab/{crud.ts → CrudConstructor.ts} +10 -18
  884. package/src/prefab/CrudOpName.ts +2 -0
  885. package/src/prefab/CrudOps.ts +24 -0
  886. package/src/prefab/CrudViews.ts +5 -0
  887. package/src/prefab/MirrorConstructor.ts +35 -0
  888. package/src/prefab/MirrorOf.ts +19 -0
  889. package/src/prefab/Refreshed.ts +9 -0
  890. package/src/prefab/{repository.ts → RepositoryConstructor.ts} +8 -24
  891. package/src/prefab/RepositoryOf.ts +7 -0
  892. package/src/scan.ts +3 -23
  893. package/src/storage/{criterion.ts → Comparison.ts} +1 -3
  894. package/src/storage/ComparisonName.ts +3 -0
  895. package/src/storage/ListOptions.ts +29 -0
  896. package/src/storage/ListResult.ts +9 -0
  897. package/src/storage/SelectOption.ts +6 -0
  898. package/src/storage/{port.ts → Storage.ts} +5 -56
  899. package/src/storage/StorageFactory.ts +8 -0
  900. package/src/storage/{store.ts → Store.ts} +5 -7
  901. package/src/storage/Together.ts +6 -0
  902. package/src/storage/Values.ts +2 -0
  903. package/src/verify.ts +12 -21
  904. package/src/wire/Addresses.ts +17 -0
  905. package/src/wire/Answer.ts +3 -0
  906. package/src/wire/AnyHandler.ts +2 -0
  907. package/src/wire/AppMiddleware.ts +24 -0
  908. package/src/wire/AppNext.ts +1 -0
  909. package/src/wire/Call.ts +15 -0
  910. package/src/wire/CallPage.ts +9 -0
  911. package/src/wire/{CallLog.ts → CallRecord.ts} +2 -10
  912. package/src/wire/{emit.ts → Emit.ts} +24 -24
  913. package/src/wire/ErrorCode.ts +33 -0
  914. package/src/wire/Facade.ts +28 -0
  915. package/src/wire/FacadeName.ts +13 -0
  916. package/src/wire/Fact.ts +8 -0
  917. package/src/wire/{errors.ts → FougereError.ts} +14 -53
  918. package/src/wire/FougereErrorOptions.ts +10 -0
  919. package/src/wire/FougereHandlers.ts +8 -0
  920. package/src/wire/FougereOperations.ts +2 -0
  921. package/src/wire/FrondCall.ts +9 -0
  922. package/src/wire/HandlerOf.ts +10 -0
  923. package/src/wire/Invocation.ts +5 -12
  924. package/src/wire/InvocationContext.ts +11 -0
  925. package/src/wire/OperationContext.ts +18 -0
  926. package/src/wire/{operation.ts → OperationContract.ts} +14 -23
  927. package/src/wire/OperationKind.ts +1 -0
  928. package/src/wire/OperationKindInference.ts +8 -0
  929. package/src/wire/OperationsMap.ts +14 -0
  930. package/src/wire/Param.ts +8 -0
  931. package/src/wire/PartialInvocation.ts +3 -0
  932. package/src/wire/Pipe.ts +9 -0
  933. package/src/wire/Refused.ts +13 -0
  934. package/src/wire/RouteAddress.ts +1 -8
  935. package/src/wire/RouteAddressInput.ts +5 -0
  936. package/src/wire/RouteKind.ts +2 -0
  937. package/src/wire/Rows.ts +7 -0
  938. package/src/wire/RpcAnswer.ts +7 -0
  939. package/src/wire/Signature.ts +13 -0
  940. package/src/wire/SignedCall.ts +14 -0
  941. package/src/wire/Transport.ts +5 -0
  942. package/src/wire/{signature.ts → TypeRef.ts} +0 -18
  943. package/src/wire/binding.ts +1 -1
  944. package/src/wire/card/CardOp.ts +22 -0
  945. package/src/wire/card/IdentityCard.ts +41 -0
  946. package/src/wire/drift.ts +22 -22
  947. package/src/wire/http-error.ts +4 -3
  948. package/src/wire/loggerMiddleware.ts +2 -2
  949. package/src/wire/refusals.ts +55 -0
  950. package/src/wire/topology/DeclaredEdge.ts +5 -0
  951. package/src/wire/topology/DeclaredFrond.ts +10 -0
  952. package/src/wire/topology/DeclaredTopology.ts +12 -0
  953. package/src/wire/topology/Edge.ts +7 -0
  954. package/src/wire/topology/FrondPlacement.ts +7 -0
  955. package/src/wire/topology/TopologyReport.ts +14 -0
  956. package/dist/boot/auth.d.ts +0 -43
  957. package/dist/boot/auth.d.ts.map +0 -1
  958. package/dist/boot/auth.js +0 -2
  959. package/dist/boot/auth.js.map +0 -1
  960. package/dist/boot/types.d.ts +0 -147
  961. package/dist/boot/types.d.ts.map +0 -1
  962. package/dist/boot/types.js +0 -2
  963. package/dist/boot/types.js.map +0 -1
  964. package/dist/builtin/logger.d.ts +0 -96
  965. package/dist/builtin/logger.d.ts.map +0 -1
  966. package/dist/builtin/logger.js.map +0 -1
  967. package/dist/config-loader.d.ts.map +0 -1
  968. package/dist/config-loader.js.map +0 -1
  969. package/dist/conventions.d.ts.map +0 -1
  970. package/dist/conventions.js.map +0 -1
  971. package/dist/crypto/port.d.ts +0 -26
  972. package/dist/crypto/port.d.ts.map +0 -1
  973. package/dist/crypto/port.js +0 -3
  974. package/dist/crypto/port.js.map +0 -1
  975. package/dist/declare.d.ts.map +0 -1
  976. package/dist/declare.js.map +0 -1
  977. package/dist/descriptor/frond.d.ts +0 -187
  978. package/dist/descriptor/frond.d.ts.map +0 -1
  979. package/dist/descriptor/frond.js.map +0 -1
  980. package/dist/effective-operation.d.ts +0 -113
  981. package/dist/effective-operation.d.ts.map +0 -1
  982. package/dist/effective-operation.js.map +0 -1
  983. package/dist/frond-config.d.ts +0 -71
  984. package/dist/frond-config.d.ts.map +0 -1
  985. package/dist/frond-config.js.map +0 -1
  986. package/dist/graph.d.ts.map +0 -1
  987. package/dist/graph.js.map +0 -1
  988. package/dist/identity.d.ts.map +0 -1
  989. package/dist/identity.js.map +0 -1
  990. package/dist/prefab/crud.d.ts.map +0 -1
  991. package/dist/prefab/crud.js.map +0 -1
  992. package/dist/prefab/mirror.d.ts +0 -33
  993. package/dist/prefab/mirror.d.ts.map +0 -1
  994. package/dist/prefab/mirror.js.map +0 -1
  995. package/dist/prefab/repository.d.ts +0 -40
  996. package/dist/prefab/repository.d.ts.map +0 -1
  997. package/dist/prefab/repository.js.map +0 -1
  998. package/dist/source.d.ts.map +0 -1
  999. package/dist/source.js.map +0 -1
  1000. package/dist/storage/criterion.d.ts.map +0 -1
  1001. package/dist/storage/criterion.js.map +0 -1
  1002. package/dist/storage/port.d.ts.map +0 -1
  1003. package/dist/storage/port.js.map +0 -1
  1004. package/dist/storage/store.d.ts.map +0 -1
  1005. package/dist/storage/store.js.map +0 -1
  1006. package/dist/wire/CallLog.d.ts.map +0 -1
  1007. package/dist/wire/CallLog.js +0 -2
  1008. package/dist/wire/CallLog.js.map +0 -1
  1009. package/dist/wire/call.d.ts +0 -130
  1010. package/dist/wire/call.d.ts.map +0 -1
  1011. package/dist/wire/call.js +0 -47
  1012. package/dist/wire/call.js.map +0 -1
  1013. package/dist/wire/emit.d.ts.map +0 -1
  1014. package/dist/wire/emit.js.map +0 -1
  1015. package/dist/wire/errors.d.ts +0 -58
  1016. package/dist/wire/errors.d.ts.map +0 -1
  1017. package/dist/wire/errors.js.map +0 -1
  1018. package/dist/wire/middleware.d.ts.map +0 -1
  1019. package/dist/wire/middleware.js.map +0 -1
  1020. package/dist/wire/operation.d.ts.map +0 -1
  1021. package/dist/wire/operation.js.map +0 -1
  1022. package/dist/wire/signature.d.ts.map +0 -1
  1023. package/dist/wire/signature.js +0 -2
  1024. package/dist/wire/signature.js.map +0 -1
  1025. package/src/boot/auth.ts +0 -45
  1026. package/src/boot/types.ts +0 -148
  1027. package/src/crypto/port.ts +0 -29
  1028. package/src/descriptor/frond.ts +0 -195
  1029. package/src/prefab/mirror.ts +0 -60
  1030. package/src/wire/call.ts +0 -178
  1031. package/src/wire/middleware.ts +0 -43
@@ -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
+ /**
7
+ * Where an entity's rows are hosted, and what the host keeps — what a `ref()` asks the boot.
8
+ *
9
+ * Documented: [entities](https://fougere.dev/docs/schema/entities).
10
+ */
11
+ export interface Hosting {
12
+ /** False behind `remotes:` — whose `sourceOf` still answers the default, and means nothing. */
13
+ hostedHere(entity: string): boolean;
14
+ sourceOf(entity: string): string;
15
+ enforces(source: string, constraint: Constraint): boolean;
16
+ /**
17
+ * Resolved through the frond that owns it, never the asking frond's scope: a scope sees its
18
+ * parent and not its siblings, so a target of another frond was answered by nothing.
19
+ */
20
+ storageOf(entity: string): unknown | undefined;
21
+ /** Every entity of every frond — a row is named from wherever its namer was declared. */
22
+ entities(): ReadonlyMap<string, SchemaView>;
23
+ /**
24
+ * The process that HOLDS an entity's rows, when this one does not. Absent when nothing can
25
+ * reach it: no `remotes:` entry, or no transport to carry the ask.
26
+ */
27
+ peerOf(entity: string): Peer | undefined;
28
+ /**
29
+ * One per declared remote, whatever this process knows of what lives there.
30
+ *
31
+ * A frond behind `remotes:` may have no sources here at all — `fougere sync` writes a card
32
+ * and nothing else — so this process cannot see that its rows name ours. Only the process
33
+ * holding them can, which is why a release asks every remote rather than deciding for it.
34
+ */
35
+ peers(): readonly Peer[];
36
+ /** The journal a package registered, resolved per call — absent for what CARRIES one. */
37
+ journal(entity: string): Journal | undefined;
38
+ }
@@ -0,0 +1,15 @@
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
+ }
package/src/boot/apply.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { FougereConfig } from '../config-loader.js';
2
- import { setLogLevel, logLevel, envLevel } from '../builtin/logger.js';
1
+ import type { FougereConfig } from '../FougereConfig.js';
2
+ import { envLevel, logLevel, setLogLevel } from '../builtin/Logger.js';
3
3
  import { dequal } from 'dequal';
4
4
 
5
5
  export interface ConfigApplication {
@@ -1,56 +1,62 @@
1
1
  import type { Container } from '@fougere/container';
2
- import { lowerFirst, type Fields, type SchemaView } from '@fougere/schema';
3
- import { nameOf } from '../descriptor/frond.js';
4
- import type { EntityEntry, HandlerEntry, PresenterEntry } from '../descriptor/frond.js';
2
+ import { lowerFirst, type SchemaView } from '@fougere/schema';
3
+
4
+ import type { HandlerEntry } from '../descriptor/HandlerEntry.js';
5
+ import type { PresenterEntry } from '../descriptor/PresenterEntry.js';
5
6
  import { hostedBy } from './hosted.js';
6
7
  import { installFrond, type Assembly } from './install.js';
7
- import type { AuthRuntime } from './auth.js';
8
- import type { CreateAppOptions, App } from './types.js';
9
- import type { AppMiddleware } from '../wire/middleware.js';
10
- import { Carry, Logger } from '../builtin/logger.js';
11
- import type { LogRecord } from '../builtin/logger.js';
8
+ import { dependentsOf, releasing, unfinishable, unheldAmong } from './relations.js';
9
+ import { release as releaseRow } from '../dispatch/Release.js';
10
+ import type { Hosting } from './Hosting.js';
11
+ import { peerOver } from './peerOver.js';
12
+ import { JOURNAL, type Journal } from '../dispatch/Journal.js';
13
+ import type { RelationCheck } from '../dispatch/RelationCheck.js';
14
+ import { refusalOf, type Diagnostic } from '../diagnostic.js';
15
+ import type { AuthRuntime } from './AuthRuntime.js';
16
+ import type { App } from './App.js';
17
+ import type { CreateAppOptions } from './CreateAppOptions.js';
18
+ import type { AppMiddleware } from '../wire/AppMiddleware.js';
19
+ import { Carry } from '../builtin/Carry.js';
20
+ import { Logger } from '../builtin/Logger.js';
21
+ import type { LogRecord } from '../builtin/LogRecord.js';
12
22
  import LogLine, { CARRIES_LINE } from '../builtin/LogLine.js';
13
- import { emitKeyOf, type Emit } from '../wire/emit.js';
23
+ import { emitKeyOf, type Emit } from '../wire/Emit.js';
14
24
 
15
25
  /** The fact the boot announces, spelled once. */
16
26
  const LOG_LINE = lowerFirst(LogLine.name);
17
27
  import { Config } from '../builtin/config.js';
18
28
  import { createRemoteRouter, createRemoteFacade } from './remote.js';
19
- import { registerFrames } from './together.js';
29
+
20
30
  import { Emissions } from './Emissions.js';
21
- import { HandlerFacade } from '../dispatch/HandlerFacade.js';
22
- import { targetOf } from '../prefab/prefab.js';
23
- import { ownersOf, refuseStorageInUserCode, refuseCrudOnOwned } from './ownership.js';
24
- import type { OperationContract, OperationsMap } from '../wire/operation.js';
25
- import {
26
- resolveEffectiveOperations,
27
- type EffectiveOperationsMap,
28
- } from '../effective-operation.js';
29
- import { StorageGuard } from '../dispatch/StorageGuard.js';
30
- import { portBindings } from './ports.js';
31
+
32
+ import type { OperationContract } from '../wire/OperationContract.js';
33
+ import type { OperationsMap } from '../wire/OperationsMap.js';
34
+ import { resolveEffectiveOperations } from '../EffectiveOperationModel.js';
35
+ import { type EffectiveOperationsMap } from '../EffectiveOperationsMap.js';
36
+
31
37
  import { InFlight } from '../dispatch/InFlight.js';
32
38
  // The keys, each read from where its concept is declared — never respelled here.
33
- import { facadeKeyOf, contractsKeyOf, type RpcAnswer } from '../wire/call.js';
39
+ import { RPC_ENTITY, type RpcAnswer } from '../wire/RpcAnswer.js';
40
+ import { Invocation } from '../wire/Invocation.js';
41
+ import { facadeKeyOf } from '../wire/Facade.js';
34
42
  import { identityCardOf } from './card.js';
35
43
  import { AppLifecycle, migrating } from './AppLifecycle.js';
36
44
  import { seeding } from './seed.js';
37
- import { inheritsCrud, subjectOf } from '../prefab/crud.js';
38
- import { repositoryKeyOf } from '../prefab/repository.js';
39
- import { storageKeyOf } from '../storage/port.js';
40
- import { declares } from '../source.js';
45
+
46
+ import { storageKeyOf } from '../storage/Storage.js';
47
+
41
48
  import { presenterKeyOf } from '../prefab/presenter.js';
42
- import { collectorKeyOf } from '../prefab/collector.js';
49
+
43
50
  import { RouteAddress } from '../wire/RouteAddress.js';
44
51
  import { DispatchLifecycle } from '../dispatch/DispatchLifecycle.js';
45
52
  import { Dispatcher } from '../dispatch/Dispatcher.js';
46
53
  import { LocalRoutePolicy } from '../dispatch/LocalRoutePolicy.js';
47
- import { servedSurfaces } from '../descriptor/surface.js';
54
+
48
55
  import { OperationRoute } from '../dispatch/OperationRoute.js';
49
56
  import { remoteRoutes } from '../dispatch/remoteRoutes.js';
50
57
  import { RouteRegistry } from '../dispatch/RouteRegistry.js';
51
58
  import { facadeOperations } from '../entry/facade.js';
52
59
 
53
-
54
60
  /** The one wording for "nobody hosts this here", with both ways out. */
55
61
  const notLoaded = (entity: string) =>
56
62
  `Frond for '${entity}' is not loaded.\n` +
@@ -58,29 +64,39 @@ const notLoaded = (entity: string) =>
58
64
  ` - Or declare a remote: remotes: { ${entity}: 'http://...' }`;
59
65
 
60
66
  /** Two fronds cannot claim one name — said at boot, because nothing else says it. */
61
- function assertOneOwnerPerKey(
67
+ function keyClaims(
62
68
  fronds: { name: string; handlers: HandlerEntry[]; presenters: PresenterEntry[] }[],
63
69
  remotes: Record<string, string> | undefined,
70
+ refused: Diagnostic[],
64
71
  ): void {
65
72
  const owner = new Map<string, string>();
73
+ const fileOf = new Map<string, string>();
66
74
 
67
- const claim = (key: string, frond: string, what: string) => {
75
+ const claim = (key: string, frond: string, what: string, filePath: string) => {
68
76
  const first = owner.get(key);
69
77
  if (first !== undefined && first !== frond) {
70
- throw new Error(
71
- `Two fronds claim the key '${key}': '${first}' and '${frond}'.\n`
72
- + ` A ${what} is registered under a key that names no frond, so one would silently replace the other.\n`
73
- + ` - Rename one of the two classes, or\n`
74
- + ` - keep one of the two fronds out of this process (--fronds), or declare it in remotes:`,
75
- );
78
+ refused.push({
79
+ severity: 'blocking',
80
+ code: 'frond-key-taken',
81
+ filePath,
82
+ frond,
83
+ subject: key,
84
+ message: `'${first}' and '${frond}' both claim the key '${key}'. A ${what} is registered `
85
+ + 'under a key that names no frond, so one would silently replace the other. Rename one '
86
+ + 'of the two classes, or keep one frond out of this process (--fronds). '
87
+ + `'${first}' declares it in ${fileOf.get(key)}.`,
88
+ });
89
+
90
+ return;
76
91
  }
77
92
  owner.set(key, frond);
93
+ fileOf.set(key, filePath);
78
94
  };
79
95
 
80
96
  for (const frond of fronds) {
81
97
  if (remotes && frond.name in remotes) continue;
82
- for (const handler of frond.handlers) claim(facadeKeyOf(handler.address, handler.surface), frond.name, 'door');
83
- for (const presenter of frond.presenters) claim(presenterKeyOf(presenter.entityName), frond.name, 'presenter');
98
+ for (const handler of frond.handlers) claim(facadeKeyOf(handler.address, handler.surface), frond.name, 'facade', handler.filePath);
99
+ for (const presenter of frond.presenters) claim(presenterKeyOf(presenter.entityName), frond.name, 'presenter', presenter.filePath);
84
100
  }
85
101
  }
86
102
 
@@ -171,7 +187,9 @@ export async function createApp(options: CreateAppOptions): Promise<App> {
171
187
  if (!options.fronds && !options.scan && !options.auth && brought.length === 0) {
172
188
  throw new Error(
173
189
  'createApp needs `fronds:` (what this app states) or `scan:` (what a scanner found). '
174
- + 'Neither was given, and nothing else declares entities of its own.',
190
+ + 'Neither was given, and nothing else declares entities of its own.\n'
191
+ + ' createApp({ fronds: [blog] })\n'
192
+ + ' createApp({ scan: await scanProject(root) })',
175
193
  );
176
194
  }
177
195
  const operationModel = resolveEffectiveOperations(fronds, {
@@ -189,17 +207,8 @@ export async function createApp(options: CreateAppOptions): Promise<App> {
189
207
  for (const d of diagnostics) if (d.severity === 'warning') log.warn(`[${d.code}] ${d.message}`);
190
208
 
191
209
  /** An ambiguous convention is not a partial scan. */
192
- const invalidOperations = operationModel.resolutionDiagnostics
193
- .filter((diagnostic) => diagnostic.severity === 'blocking');
194
- if (invalidOperations.length > 0) {
195
- const details = invalidOperations.map((d) =>
196
- ` [${d.code}]${d.subject ? ` ${d.subject}` : ''}\n ${d.message}\n ${d.filePath}`,
197
- );
198
- throw new Error(
199
- `Fougere boot refused: ${invalidOperations.length} unresolved operation contract(s):\n`
200
- + details.join('\n'),
201
- );
202
- }
210
+ const unresolved = refusalOf(operationModel.resolutionDiagnostics, 'unresolved operation contract(s)');
211
+ if (unresolved) throw unresolved;
203
212
 
204
213
  // Auth runtime — built once from the lazy AuthConfig produced by a provider factory
205
214
  // (e.g. betterAuth({...})) in fougere.config.ts. The provider receives our db +
@@ -207,7 +216,7 @@ export async function createApp(options: CreateAppOptions): Promise<App> {
207
216
  let authRuntime: AuthRuntime | undefined;
208
217
  if (options.auth) {
209
218
  if (!options.storageFactory) {
210
- throw new Error('createApp: `auth` is set but `storageFactory` is missing — auth providers need it to back their adapter.');
219
+ throw new Error('createApp: `auth` is set but `storageFactory` is missing — auth providers need it to back their adapter. Pass one through CreateAppOptions.storageFactory.');
211
220
  }
212
221
  if (options.db === undefined) {
213
222
  throw new Error('createApp: `auth` is set but `db` is missing — pass the storage handle through CreateAppOptions.db.');
@@ -233,7 +242,7 @@ export async function createApp(options: CreateAppOptions): Promise<App> {
233
242
  ? createRemoteRouter(Object.fromEntries(declaredRemotes), options.remoteTransport)
234
243
  : undefined;
235
244
 
236
- // What is running on this app — counted at the one door every caller goes through,
245
+ // What is running on this app — counted at the one facade every caller goes through,
237
246
  // so releasing it can wait for the work instead of pulling the floor out.
238
247
  const inflight = new InFlight();
239
248
 
@@ -249,12 +258,16 @@ export async function createApp(options: CreateAppOptions): Promise<App> {
249
258
  error,
250
259
  ),
251
260
  );
252
- const dispatcher = new Dispatcher(routeRegistry, inflight, dispatchLifecycle);
261
+ // Resolved at the call and never here: a journal is a provider of a brought frond, and
262
+ // the extension that registers it rises long after this line.
263
+ const keeping = (): Journal | undefined => journalOf();
264
+ const dispatcher = new Dispatcher(routeRegistry, inflight, dispatchLifecycle, undefined, keeping);
253
265
  const localDispatcher = new Dispatcher(
254
266
  routeRegistry,
255
267
  inflight,
256
268
  dispatchLifecycle,
257
269
  new LocalRoutePolicy((surface) => fronds.servedNames(surface)),
270
+ keeping,
258
271
  );
259
272
 
260
273
  function getMiddlewares(entity: string): AppMiddleware[] {
@@ -276,7 +289,14 @@ export async function createApp(options: CreateAppOptions): Promise<App> {
276
289
  scopedMiddlewares.set(entity, scoped);
277
290
  }
278
291
 
279
- assertOneOwnerPerKey(fronds, options.remotes);
292
+ /** What every check of this boot writes into — refused together, once they have all run. */
293
+ const refused: Diagnostic[] = [];
294
+ const relations: RelationCheck[] = [];
295
+ keyClaims(fronds, options.remotes, refused);
296
+ // Said before anything is installed: a key claimed twice makes every later error worse —
297
+ // the route registry collides first, and names a route instead of the two fronds.
298
+ const claimed = refusalOf(refused, 'declaration(s) that do not hold');
299
+ if (claimed) throw claimed;
280
300
 
281
301
  // Every entity of every frond, by name — so a fact can be validated where it LANDS, and
282
302
  // so a `reads:` clause can name a neighbour's.
@@ -295,6 +315,7 @@ export async function createApp(options: CreateAppOptions): Promise<App> {
295
315
  fronds, entityByName, container,
296
316
  // No carry: this is what CARRIES a fact, and a line about carrying one comes back.
297
317
  new Logger('boot:app'),
318
+ refused,
298
319
  options.onEmit,
299
320
  );
300
321
  /** Canonical operation tables, indexed by the same audience key as their facades. */
@@ -304,6 +325,78 @@ export async function createApp(options: CreateAppOptions): Promise<App> {
304
325
  [...operations].map(([name, operation]) => [name, operation as OperationContract] as const),
305
326
  );
306
327
 
328
+ /**
329
+ * The storage an entity is backed by — the dual of `facadeFor`, which serves its client-facing
330
+ * facade.
331
+ */
332
+ const storageFor = (entity: string): unknown | undefined => {
333
+ const owner = fronds.owner(entity);
334
+ if (!owner) return undefined;
335
+
336
+ const key = storageKeyOf(entity);
337
+ try {
338
+ return container.resolve<Container>(`frond:${owner.name}`).resolve(key);
339
+ } catch {
340
+ return undefined;
341
+ }
342
+ };
343
+
344
+ // What carries a release writes none: an instrumentation frond's own rows are kept while a
345
+ // release happens, and journalling them would begin one inside the one being written down.
346
+ const carriesRelease = new Set(
347
+ fronds.filter((one) => one.brought).flatMap((one) => one.entities.map((e) => e.name)),
348
+ );
349
+
350
+ /**
351
+ * The journal a package registered, found where its own frond put it — a provider lands in
352
+ * its frond's scope, and the app container sees none of them.
353
+ */
354
+ const journalOf = (): Journal | undefined => {
355
+ for (const frond of fronds) {
356
+ if (!frond.brought) continue;
357
+ const scope = container.resolve<Container>(`frond:${frond.name}`);
358
+ if (scope.has(JOURNAL)) return scope.resolve<Journal>(JOURNAL);
359
+ }
360
+
361
+ return undefined;
362
+ };
363
+
364
+ const hosting: Hosting = {
365
+ hostedHere: (entity) => !(options.remotes && (frondOf.get(entity) ?? '') in options.remotes),
366
+ sourceOf: (name) => options.sourceOf?.(name) ?? 'db',
367
+ enforces: (source, constraint) => options.enforces?.(source, constraint) ?? false,
368
+ storageOf: storageFor,
369
+ entities: () => entityByName,
370
+ // The two readings core serves in EVERY process, asked of the one that holds the rows.
371
+ // Nothing is cached: a peer that was down at boot answers the next call.
372
+ // Built from `remotes:` itself, not from the router: the router indexes by ENTITY, read
373
+ // off a card, and the question here is asked of a PROCESS about rows it may be alone
374
+ // in knowing about.
375
+ // Resolved per call and never at boot: the package that registers it rises in the
376
+ // ascent, long after this answer is built.
377
+ journal: (entity) => (carriesRelease.has(entity) ? undefined : journalOf()),
378
+ peers: () => (options.remoteTransport
379
+ ? declaredRemotes.map(([, url]) => peerOver(options.remoteTransport!(url)))
380
+ : []),
381
+ peerOf: (entity) => (remoteRouter ? {
382
+ dependents: async (named) => (await remoteRouter.route(entity))
383
+ .transport({ entity: RPC_ENTITY, op: 'dependents' },
384
+ { ...Invocation.empty, params: { entity: named } as never }),
385
+ missing: async (named, keys) => {
386
+ const answer = await (await remoteRouter.route(entity))
387
+ .transport({ entity: RPC_ENTITY, op: 'holds' },
388
+ { ...Invocation.empty, params: { entity: named, keys } as never });
389
+
390
+ return (answer as { missing: readonly unknown[] }).missing;
391
+ },
392
+ release: async (named, key) => {
393
+ const route = await remoteRouter.route(entity);
394
+ await route.transport({ entity: RPC_ENTITY, op: 'release' },
395
+ { ...Invocation.empty, params: { entity: named, key } as never });
396
+ },
397
+ } : undefined),
398
+ };
399
+
307
400
  // Every port an implementation was bound to, so a `ports:` entry that named none
308
401
  // can say so rather than look obeyed.
309
402
  const boundPorts = new Set<string>();
@@ -313,11 +406,39 @@ export async function createApp(options: CreateAppOptions): Promise<App> {
313
406
  // table, one emission list — so what a frond serves is there for the next one to find.
314
407
  const assembly: Assembly = {
315
408
  container, routeRegistry, emissions, dispatcher, localDispatcher, effectiveByKey,
316
- boundPorts, operationModel, entityByName, frondOf, contractsOf, getMiddlewares, use,
317
- log, options,
409
+ boundPorts, refused, relations, hosting, operationModel, entityByName, frondOf, contractsOf,
410
+ getMiddlewares, use, log, options,
318
411
  };
319
412
  for (const frond of fronds) await installFrond(frond, assembly);
320
413
 
414
+ // A reference no key holds and no storage answers: said at the END, for the reason the
415
+ // `ports:` warning below is — a target is another frond's, so no single frond can tell
416
+ // an absence from a neighbour that had not been installed yet.
417
+ const unheld = unheldAmong(relations, hosting);
418
+ // Declared here, and this process cannot finish what it starts — both halves are local,
419
+ // so nothing is asked of anyone. Said once, after every frond installed, because a journal
420
+ // arrives with an extension and an extension rises last.
421
+ const unfinished = unfinishable(hosting);
422
+ if (unfinished.length > 0) {
423
+ log.warn(
424
+ `[relations] ${unfinished.join(', ')} — declared, and this process keeps nothing on `
425
+ + 'restart: a release interrupted here is not resumed. Install @fougere/workflow, or '
426
+ + 'expect to finish one by hand.',
427
+ );
428
+ }
429
+
430
+ if (unheld.length > 0) {
431
+ log.warn(
432
+ `[relations] ${unheld.join(', ')} — declared, and nothing in this process holds them: `
433
+ + 'no foreign key, and the target answers elsewhere. A row may name one that is gone.',
434
+ );
435
+ }
436
+
437
+ // Every check of the install, said at once — a boot that stops at the first makes the
438
+ // next one visible only after a fix and a restart.
439
+ const bootRefusal = refusalOf(refused, 'declaration(s) that do not hold');
440
+ if (bootRefusal) throw bootRefusal;
441
+
321
442
  // A `ports:` key that matched no port anywhere reads as a choice that was made, and
322
443
  // was not. Said once, at the end, because the entry is app-wide while a port is a
323
444
  // frond's — no single frond can tell whether a key is a typo or a neighbour's.
@@ -329,14 +450,19 @@ export async function createApp(options: CreateAppOptions): Promise<App> {
329
450
  );
330
451
  }
331
452
 
332
- // Once every door exists: what is announced here and what is listened to are both known.
453
+ // Once every facade exists: what is announced here and what is listened to are both known.
333
454
  emissions.register();
334
455
 
335
- // Which doors carry a line, read from who SUBSCRIBED — so a third party's destination
456
+ // The third phase: what a fact's links and its answer type state. Said after `register`,
457
+ // which is where a pipe order and an `Emit<T, A>` are read.
458
+ const announced = refusalOf(refused, 'declaration(s) that do not hold');
459
+ if (announced) throw announced;
460
+
461
+ // Which facades carry a line, read from who SUBSCRIBED — so a third party's destination
336
462
  // is left alone by the two middlewares that observe every operation.
337
- for (const door of emissions.doorsFor(LOG_LINE)) {
338
- CARRIES_LINE.add(door.replace(/Handler$/, '').replace(/^./, (c) => c.toLowerCase()));
339
- CARRIES_LINE.add(door);
463
+ for (const facade of emissions.facadesFor(LOG_LINE)) {
464
+ CARRIES_LINE.add(facade.replace(/Handler$/, '').replace(/^./, (c) => c.toLowerCase()));
465
+ CARRIES_LINE.add(facade);
340
466
  }
341
467
 
342
468
  /** The last resort, held by the container so every resolution path shares it. */
@@ -353,7 +479,6 @@ export async function createApp(options: CreateAppOptions): Promise<App> {
353
479
  );
354
480
  });
355
481
 
356
-
357
482
  /** Stop taking calls, and resolve once the ones already running are done. */
358
483
  const drain = async (timeoutMs?: number): Promise<void> => {
359
484
  inflight.close();
@@ -386,7 +511,7 @@ export async function createApp(options: CreateAppOptions): Promise<App> {
386
511
  if (found) return found.entityClass;
387
512
  if (remoteRouter) {
388
513
  const route = await remoteRouter.route(entity);
389
- // A remote door that stores nothing publishes ops and no shape. Saying so beats
514
+ // A remote facade that stores nothing publishes ops and no shape. Saying so beats
390
515
  // handing back an empty schema, which would validate every input it was given.
391
516
  if (!route.schema) {
392
517
  throw new Error(
@@ -409,12 +534,12 @@ export async function createApp(options: CreateAppOptions): Promise<App> {
409
534
  }
410
535
  };
411
536
 
412
- /** Said once per pair, so a door that registers in a loop says it once. */
537
+ /** Said once per pair, so a facade that registers in a loop says it once. */
413
538
  const saidAbsent = new Set<string>();
414
539
 
415
540
  /**
416
541
  * A surface is declared in the frond that serves it. When that frond runs in another
417
- * process, this one never asked for its doors, and answering 'no' is the only thing a
542
+ * process, this one never asked for its facades, and answering 'no' is the only thing a
418
543
  * synchronous rule can do — so it says so rather than registering nothing in silence.
419
544
  */
420
545
  const sayNoSurfaceAcross = (entity: string, surface: string): void => {
@@ -422,8 +547,8 @@ export async function createApp(options: CreateAppOptions): Promise<App> {
422
547
  saidAbsent.add(`${surface}:${entity}`);
423
548
  log.warn(
424
549
  `surface '${surface}' serves nothing for '${entity}' — the frond that declares it runs `
425
- + 'elsewhere, and a remote is asked for its doors at the first call, not at boot. '
426
- + 'The default door answers.',
550
+ + 'elsewhere, and a remote is asked for its facades at the first call, not at boot. '
551
+ + 'The default facade answers.',
427
552
  );
428
553
  };
429
554
 
@@ -465,7 +590,7 @@ export async function createApp(options: CreateAppOptions): Promise<App> {
465
590
  }));
466
591
  }
467
592
 
468
- /** The terms beside a door, with the exact same named-surface fallback rule. */
593
+ /** The terms beside a facade, with the exact same named-surface fallback rule. */
469
594
  const operationsFor = (entity: string, surface?: string): EffectiveOperationsMap | undefined => {
470
595
  if (!surface) return effectiveByKey.get(facadeKeyOf(entity));
471
596
 
@@ -477,22 +602,6 @@ export async function createApp(options: CreateAppOptions): Promise<App> {
477
602
  : undefined;
478
603
  };
479
604
 
480
- /**
481
- * The storage an entity is backed by — the dual of `facadeFor`, which serves its client-facing
482
- * door.
483
- */
484
- const storageFor = (entity: string): unknown | undefined => {
485
- const owner = fronds.owner(entity);
486
- if (!owner) return undefined;
487
-
488
- const key = storageKeyOf(entity);
489
- try {
490
- return container.resolve<Container>(`frond:${owner.name}`).resolve(key);
491
- } catch {
492
- return undefined;
493
- }
494
- };
495
-
496
605
  /** The presenter of an entity, resolved through its owning frond's scope. */
497
606
  const presenterFor = (entity: string): unknown | undefined => {
498
607
  const owner = fronds.owner(entity);
@@ -508,7 +617,7 @@ export async function createApp(options: CreateAppOptions): Promise<App> {
508
617
  const app: App = {
509
618
  container,
510
619
  fronds,
511
- // What this app publishes, straight from fougere.config.ts — the doors read it,
620
+ // What this app publishes, straight from fougere.config.ts — the facades read it,
512
621
  // so an undeclared adapter serves nothing whatever a host mounted.
513
622
  adapters: options.adapters ?? {},
514
623
  // Where a call goes, as DECLARED. Kept because a reader needs it beside what the
@@ -534,7 +643,10 @@ export async function createApp(options: CreateAppOptions): Promise<App> {
534
643
  // depend on wiring order, and `discover` is in here precisely so it cannot be taken.
535
644
  const address = new RouteAddress({ entity: 'rpc', operation: op });
536
645
  if (routeRegistry.find(address)) {
537
- throw new Error(`rpc operation '${op}' is already served; a second declaration would depend on wiring order`);
646
+ throw new Error(
647
+ `[claim] rpc operation '${op}' is already served; a second declaration would depend on wiring order.\n`
648
+ + ' Two extensions declare it — keep one out of `extensions:`.',
649
+ );
538
650
  }
539
651
  routeRegistry.register(new OperationRoute(
540
652
  'system',
@@ -556,15 +668,56 @@ export async function createApp(options: CreateAppOptions): Promise<App> {
556
668
 
557
669
  // The card is an rpc op like any other, so one registry answers and one refusal names
558
670
  // what is served. A package's op is declared the same way, from outside.
671
+ // What a release is, resolved once and registered: a package that drives one asks for it
672
+ // by type, the way every other dependency is asked for.
673
+ container.registerValue('Releasing', releasing(hosting));
674
+
559
675
  app.serveRpc('discover', (_invocation, surface) => identityCardOf(app, surface));
560
676
 
677
+ // What a release asks another process, and what it tells it to do. Served by EVERY process
678
+ // the way `discover` is: a frond that hosts rows is the only one that can answer for them.
679
+ //
680
+ // Read off the STORAGE and never off a facade: a facade answers what its handler chose to
681
+ // show — `PostHandler.list` hands back published posts — so a draft naming a deleted user
682
+ // would be invisible to the very question that exists to find it.
683
+ // The dual of `release`, and the same reason it is served by every process: only the one
684
+ // that holds the rows can say a key is missing, and only from the STORAGE — a facade
685
+ // answers what its handler chose to show.
686
+ app.serveRpc('holds', async (invocation) => {
687
+ const named = String(invocation.params.entity);
688
+ const keys = (invocation.params.keys ?? []) as readonly unknown[];
689
+ const rows = storageFor(named) as { findByKeys(k: readonly string[]): Promise<Map<string, unknown>> } | undefined;
690
+ if (!rows) return { missing: [] };
691
+ const found = await rows.findByKeys(keys.map(String));
692
+
693
+ return { missing: keys.filter((key) => !found.has(String(key))) };
694
+ });
695
+ app.serveRpc('dependents', (invocation) =>
696
+ dependentsOf(String(invocation.params.entity), hosting));
697
+ app.serveRpc('release', async (invocation) => {
698
+ await releaseRow(String(invocation.params.entity), invocation.params.key, releasing(hosting),
699
+ (invocation.params.visited ?? []) as readonly string[]);
700
+
701
+ return { released: true };
702
+ });
703
+
561
704
  // The last thing the boot does, and the first thing a release undoes. An extension may
562
705
  // await here — which is what a provider needing to OPEN something could never do.
563
706
  built = app;
707
+
708
+ // What the FRONDS declared, folded in after what the host handed over — a frond's
709
+ // extension is written beside the code it instruments and travels with it, so it mounts
710
+ // on whichever process ends up serving that frond. Added here rather than at the top
711
+ // because the fronds are read below that line, and `up` has not run yet.
712
+ appLifecycle.add(...fronds.flatMap((frond) => (frond.extensions ?? []).map((one) => ({
713
+ name: one.name,
714
+ ...one.extension,
715
+ }))));
716
+
564
717
  await appLifecycle.up(app);
565
718
 
566
719
  // The boot's own lines, and every line after them. Held until here because a boot
567
- // writes most of what a process logs and writes it before any door exists — so the
720
+ // writes most of what a process logs and writes it before any facade exists — so the
568
721
  // lines that say what this app is made of are the ones a destination would miss.
569
722
  // `LogLine` is core's for this reason: naming it costs no optional package.
570
723
  //