@fougere/core 0.9.3-alpha.0 → 0.10.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 (986) 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} +1 -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} +1 -1
  120. package/dist/{source.js.map → Source.js.map} +1 -1
  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/apply.d.ts +1 -1
  165. package/dist/boot/apply.js +1 -1
  166. package/dist/boot/apply.js.map +1 -1
  167. package/dist/boot/bootstrap.d.ts +2 -1
  168. package/dist/boot/bootstrap.d.ts.map +1 -1
  169. package/dist/boot/bootstrap.js +77 -42
  170. package/dist/boot/bootstrap.js.map +1 -1
  171. package/dist/boot/card.d.ts +2 -2
  172. package/dist/boot/card.d.ts.map +1 -1
  173. package/dist/boot/card.js +11 -8
  174. package/dist/boot/card.js.map +1 -1
  175. package/dist/boot/declared.d.ts +2 -2
  176. package/dist/boot/declared.d.ts.map +1 -1
  177. package/dist/boot/declared.js +1 -1
  178. package/dist/boot/declared.js.map +1 -1
  179. package/dist/boot/frame.d.ts +1 -1
  180. package/dist/boot/frame.js +1 -1
  181. package/dist/boot/hosted.d.ts +1 -1
  182. package/dist/boot/hosted.d.ts.map +1 -1
  183. package/dist/boot/install.d.ts +11 -7
  184. package/dist/boot/install.d.ts.map +1 -1
  185. package/dist/boot/install.js +30 -25
  186. package/dist/boot/install.js.map +1 -1
  187. package/dist/boot/ownership.d.ts +7 -5
  188. package/dist/boot/ownership.d.ts.map +1 -1
  189. package/dist/boot/ownership.js +81 -40
  190. package/dist/boot/ownership.js.map +1 -1
  191. package/dist/boot/ports.d.ts +4 -3
  192. package/dist/boot/ports.d.ts.map +1 -1
  193. package/dist/boot/ports.js +48 -37
  194. package/dist/boot/ports.js.map +1 -1
  195. package/dist/boot/remote.d.ts +3 -8
  196. package/dist/boot/remote.d.ts.map +1 -1
  197. package/dist/boot/remote.js +19 -15
  198. package/dist/boot/remote.js.map +1 -1
  199. package/dist/boot/runner.d.ts +2 -2
  200. package/dist/boot/runner.d.ts.map +1 -1
  201. package/dist/boot/seed.d.ts +4 -3
  202. package/dist/boot/seed.d.ts.map +1 -1
  203. package/dist/boot/seed.js +6 -6
  204. package/dist/boot/seed.js.map +1 -1
  205. package/dist/boot/statement-drift.d.ts +4 -3
  206. package/dist/boot/statement-drift.d.ts.map +1 -1
  207. package/dist/boot/statement-drift.js.map +1 -1
  208. package/dist/boot/together.d.ts +8 -4
  209. package/dist/boot/together.d.ts.map +1 -1
  210. package/dist/boot/together.js +60 -27
  211. package/dist/boot/together.js.map +1 -1
  212. package/dist/builtin/Carry.d.ts +29 -0
  213. package/dist/builtin/Carry.d.ts.map +1 -0
  214. package/dist/builtin/Carry.js +46 -0
  215. package/dist/builtin/Carry.js.map +1 -0
  216. package/dist/builtin/LogLevel.d.ts +2 -0
  217. package/dist/builtin/LogLevel.d.ts.map +1 -0
  218. package/dist/builtin/LogLevel.js +2 -0
  219. package/dist/builtin/LogLevel.js.map +1 -0
  220. package/dist/builtin/LogRecord.d.ts +12 -0
  221. package/dist/builtin/LogRecord.d.ts.map +1 -0
  222. package/dist/builtin/LogRecord.js +2 -0
  223. package/dist/builtin/LogRecord.js.map +1 -0
  224. package/dist/builtin/LogSink.d.ts +4 -0
  225. package/dist/builtin/LogSink.d.ts.map +1 -0
  226. package/dist/builtin/LogSink.js +2 -0
  227. package/dist/builtin/LogSink.js.map +1 -0
  228. package/dist/builtin/Logger.d.ts +27 -0
  229. package/dist/builtin/Logger.d.ts.map +1 -0
  230. package/dist/builtin/{logger.js → Logger.js} +1 -47
  231. package/dist/builtin/Logger.js.map +1 -0
  232. package/dist/builtin/LoggerOptions.d.ts +14 -0
  233. package/dist/builtin/LoggerOptions.d.ts.map +1 -0
  234. package/dist/builtin/LoggerOptions.js +2 -0
  235. package/dist/builtin/LoggerOptions.js.map +1 -0
  236. package/dist/builtin/Rendered.d.ts +21 -0
  237. package/dist/builtin/Rendered.d.ts.map +1 -0
  238. package/dist/builtin/Rendered.js +2 -0
  239. package/dist/builtin/Rendered.js.map +1 -0
  240. package/dist/contract.d.ts +34 -13
  241. package/dist/contract.d.ts.map +1 -1
  242. package/dist/contract.js +9 -6
  243. package/dist/contract.js.map +1 -1
  244. package/dist/crypto/CryptoPort.d.ts +12 -0
  245. package/dist/crypto/CryptoPort.d.ts.map +1 -0
  246. package/dist/crypto/CryptoPort.js +2 -0
  247. package/dist/crypto/CryptoPort.js.map +1 -0
  248. package/dist/crypto/PublicJwk.d.ts +8 -0
  249. package/dist/crypto/PublicJwk.d.ts.map +1 -0
  250. package/dist/crypto/PublicJwk.js +2 -0
  251. package/dist/crypto/PublicJwk.js.map +1 -0
  252. package/dist/crypto/Signer.d.ts +5 -0
  253. package/dist/crypto/Signer.d.ts.map +1 -0
  254. package/dist/crypto/Signer.js +2 -0
  255. package/dist/crypto/Signer.js.map +1 -0
  256. package/dist/crypto/Verifier.d.ts +6 -0
  257. package/dist/crypto/Verifier.d.ts.map +1 -0
  258. package/dist/crypto/Verifier.js +2 -0
  259. package/dist/crypto/Verifier.js.map +1 -0
  260. package/dist/crypto/node.d.ts +4 -1
  261. package/dist/crypto/node.d.ts.map +1 -1
  262. package/dist/crypto/node.js.map +1 -1
  263. package/dist/crypto/webcrypto.d.ts +4 -1
  264. package/dist/crypto/webcrypto.d.ts.map +1 -1
  265. package/dist/crypto/webcrypto.js.map +1 -1
  266. package/dist/define.d.ts +1 -1
  267. package/dist/descriptor/CollectorEntry.d.ts +12 -0
  268. package/dist/descriptor/CollectorEntry.d.ts.map +1 -0
  269. package/dist/descriptor/CollectorEntry.js +2 -0
  270. package/dist/descriptor/CollectorEntry.js.map +1 -0
  271. package/dist/descriptor/EntityEntry.d.ts +13 -0
  272. package/dist/descriptor/EntityEntry.d.ts.map +1 -0
  273. package/dist/descriptor/EntityEntry.js +2 -0
  274. package/dist/descriptor/EntityEntry.js.map +1 -0
  275. package/dist/descriptor/ExtensionEntry.d.ts +20 -0
  276. package/dist/descriptor/ExtensionEntry.d.ts.map +1 -0
  277. package/dist/descriptor/ExtensionEntry.js +2 -0
  278. package/dist/descriptor/ExtensionEntry.js.map +1 -0
  279. package/dist/descriptor/FrondDescriptor.d.ts +61 -0
  280. package/dist/descriptor/FrondDescriptor.d.ts.map +1 -0
  281. package/dist/descriptor/{frond.js → FrondDescriptor.js} +1 -1
  282. package/dist/descriptor/FrondDescriptor.js.map +1 -0
  283. package/dist/descriptor/FrondSource.d.ts +8 -0
  284. package/dist/descriptor/FrondSource.d.ts.map +1 -0
  285. package/dist/descriptor/FrondSource.js +2 -0
  286. package/dist/descriptor/FrondSource.js.map +1 -0
  287. package/dist/descriptor/Fronds.d.ts +2 -1
  288. package/dist/descriptor/Fronds.d.ts.map +1 -1
  289. package/dist/descriptor/Fronds.js.map +1 -1
  290. package/dist/descriptor/HandlerEntry.d.ts +27 -0
  291. package/dist/descriptor/HandlerEntry.d.ts.map +1 -0
  292. package/dist/descriptor/HandlerEntry.js +2 -0
  293. package/dist/descriptor/HandlerEntry.js.map +1 -0
  294. package/dist/descriptor/MiddlewareEntry.d.ts +17 -0
  295. package/dist/descriptor/MiddlewareEntry.d.ts.map +1 -0
  296. package/dist/descriptor/MiddlewareEntry.js +2 -0
  297. package/dist/descriptor/MiddlewareEntry.js.map +1 -0
  298. package/dist/descriptor/PresenterEntry.d.ts +23 -0
  299. package/dist/descriptor/PresenterEntry.d.ts.map +1 -0
  300. package/dist/descriptor/PresenterEntry.js +2 -0
  301. package/dist/descriptor/PresenterEntry.js.map +1 -0
  302. package/dist/descriptor/PresenterFieldMeta.d.ts +14 -0
  303. package/dist/descriptor/PresenterFieldMeta.d.ts.map +1 -0
  304. package/dist/descriptor/PresenterFieldMeta.js +2 -0
  305. package/dist/descriptor/PresenterFieldMeta.js.map +1 -0
  306. package/dist/descriptor/ProviderEntry.d.ts +19 -0
  307. package/dist/descriptor/ProviderEntry.d.ts.map +1 -0
  308. package/dist/descriptor/ProviderEntry.js +2 -0
  309. package/dist/descriptor/ProviderEntry.js.map +1 -0
  310. package/dist/descriptor/SeedEntry.d.ts +11 -0
  311. package/dist/descriptor/SeedEntry.d.ts.map +1 -0
  312. package/dist/descriptor/SeedEntry.js +2 -0
  313. package/dist/descriptor/SeedEntry.js.map +1 -0
  314. package/dist/descriptor/SeedFactory.d.ts +3 -0
  315. package/dist/descriptor/SeedFactory.d.ts.map +1 -0
  316. package/dist/descriptor/SeedFactory.js +2 -0
  317. package/dist/descriptor/SeedFactory.js.map +1 -0
  318. package/dist/descriptor/bases.d.ts +17 -0
  319. package/dist/descriptor/bases.d.ts.map +1 -0
  320. package/dist/descriptor/bases.js +26 -0
  321. package/dist/descriptor/bases.js.map +1 -0
  322. package/dist/descriptor/index.d.ts +22 -6
  323. package/dist/descriptor/index.d.ts.map +1 -1
  324. package/dist/descriptor/index.js +19 -5
  325. package/dist/descriptor/index.js.map +1 -1
  326. package/dist/descriptor/surface.d.ts +3 -2
  327. package/dist/descriptor/surface.d.ts.map +1 -1
  328. package/dist/descriptor/surface.js +1 -1
  329. package/dist/descriptor/surface.js.map +1 -1
  330. package/dist/diagnostic.d.ts +33 -0
  331. package/dist/diagnostic.d.ts.map +1 -0
  332. package/dist/diagnostic.js +12 -0
  333. package/dist/diagnostic.js.map +1 -0
  334. package/dist/dispatch/ArgumentResolver.d.ts +2 -5
  335. package/dist/dispatch/ArgumentResolver.d.ts.map +1 -1
  336. package/dist/dispatch/ArgumentResolver.js.map +1 -1
  337. package/dist/dispatch/CollectorLookup.d.ts +3 -0
  338. package/dist/dispatch/CollectorLookup.d.ts.map +1 -0
  339. package/dist/dispatch/CollectorLookup.js +2 -0
  340. package/dist/dispatch/CollectorLookup.js.map +1 -0
  341. package/dist/dispatch/CollectorResolver.d.ts +5 -0
  342. package/dist/dispatch/CollectorResolver.d.ts.map +1 -0
  343. package/dist/dispatch/CollectorResolver.js +2 -0
  344. package/dist/dispatch/CollectorResolver.js.map +1 -0
  345. package/dist/dispatch/DispatchEvent.d.ts +3 -4
  346. package/dist/dispatch/DispatchEvent.d.ts.map +1 -1
  347. package/dist/dispatch/DispatchEvent.js.map +1 -1
  348. package/dist/dispatch/DispatchLifecycle.d.ts +2 -1
  349. package/dist/dispatch/DispatchLifecycle.d.ts.map +1 -1
  350. package/dist/dispatch/DispatchLifecycle.js.map +1 -1
  351. package/dist/dispatch/DispatchObserver.d.ts +3 -0
  352. package/dist/dispatch/DispatchObserver.d.ts.map +1 -0
  353. package/dist/dispatch/DispatchObserver.js +2 -0
  354. package/dist/dispatch/DispatchObserver.js.map +1 -0
  355. package/dist/dispatch/DispatchPort.d.ts +1 -1
  356. package/dist/dispatch/DispatchStage.d.ts +2 -0
  357. package/dist/dispatch/DispatchStage.d.ts.map +1 -0
  358. package/dist/dispatch/DispatchStage.js +2 -0
  359. package/dist/dispatch/DispatchStage.js.map +1 -0
  360. package/dist/dispatch/Dispatcher.d.ts +1 -1
  361. package/dist/dispatch/Facade.d.ts +25 -0
  362. package/dist/dispatch/Facade.d.ts.map +1 -0
  363. package/dist/dispatch/Facade.js +2 -0
  364. package/dist/dispatch/Facade.js.map +1 -0
  365. package/dist/dispatch/GuardReport.d.ts +9 -0
  366. package/dist/dispatch/GuardReport.d.ts.map +1 -0
  367. package/dist/dispatch/GuardReport.js +2 -0
  368. package/dist/dispatch/GuardReport.js.map +1 -0
  369. package/dist/dispatch/HandlerFacade.d.ts +9 -28
  370. package/dist/dispatch/HandlerFacade.d.ts.map +1 -1
  371. package/dist/dispatch/HandlerFacade.js +19 -19
  372. package/dist/dispatch/HandlerFacade.js.map +1 -1
  373. package/dist/dispatch/InFlight.d.ts.map +1 -1
  374. package/dist/dispatch/InFlight.js +2 -1
  375. package/dist/dispatch/InFlight.js.map +1 -1
  376. package/dist/dispatch/LocalRoutePolicy.d.ts +1 -1
  377. package/dist/dispatch/LocalRoutePolicy.d.ts.map +1 -1
  378. package/dist/dispatch/LocalRoutePolicy.js +2 -1
  379. package/dist/dispatch/LocalRoutePolicy.js.map +1 -1
  380. package/dist/dispatch/OperationRoute.d.ts +2 -2
  381. package/dist/dispatch/OperationRoute.d.ts.map +1 -1
  382. package/dist/dispatch/OperationRoute.js.map +1 -1
  383. package/dist/dispatch/PresenterArgs.d.ts +2 -0
  384. package/dist/dispatch/PresenterArgs.d.ts.map +1 -0
  385. package/dist/dispatch/PresenterArgs.js +2 -0
  386. package/dist/dispatch/PresenterArgs.js.map +1 -0
  387. package/dist/dispatch/PresenterExecutor.d.ts +1 -1
  388. package/dist/dispatch/PresenterExecutor.d.ts.map +1 -1
  389. package/dist/dispatch/PresenterExecutor.js +2 -1
  390. package/dist/dispatch/PresenterExecutor.js.map +1 -1
  391. package/dist/dispatch/Route.d.ts +3 -2
  392. package/dist/dispatch/Route.d.ts.map +1 -1
  393. package/dist/dispatch/RouteExecution.d.ts +3 -0
  394. package/dist/dispatch/RouteExecution.d.ts.map +1 -0
  395. package/dist/dispatch/RouteExecution.js +2 -0
  396. package/dist/dispatch/RouteExecution.js.map +1 -0
  397. package/dist/dispatch/RoutePolicy.d.ts +1 -1
  398. package/dist/dispatch/StorageGuard.d.ts +6 -12
  399. package/dist/dispatch/StorageGuard.d.ts.map +1 -1
  400. package/dist/dispatch/StorageGuard.js +12 -11
  401. package/dist/dispatch/StorageGuard.js.map +1 -1
  402. package/dist/dispatch/presenterArguments.d.ts +3 -3
  403. package/dist/dispatch/presenterArguments.d.ts.map +1 -1
  404. package/dist/dispatch/routeNotFound.d.ts +2 -2
  405. package/dist/dispatch/routeNotFound.d.ts.map +1 -1
  406. package/dist/dispatch/routeNotFound.js +2 -1
  407. package/dist/dispatch/routeNotFound.js.map +1 -1
  408. package/dist/dispatch/validateInput.d.ts +1 -1
  409. package/dist/dispatch/validateInput.d.ts.map +1 -1
  410. package/dist/dispatch/validateInput.js +2 -1
  411. package/dist/dispatch/validateInput.js.map +1 -1
  412. package/dist/entry/facade.js +1 -1
  413. package/dist/entry/transport.d.ts +1 -1
  414. package/dist/entry/transport.d.ts.map +1 -1
  415. package/dist/entry/transport.js +1 -1
  416. package/dist/index.d.ts +92 -33
  417. package/dist/index.d.ts.map +1 -1
  418. package/dist/index.js +17 -13
  419. package/dist/index.js.map +1 -1
  420. package/dist/node.d.ts +2 -2
  421. package/dist/node.d.ts.map +1 -1
  422. package/dist/node.js +2 -2
  423. package/dist/node.js.map +1 -1
  424. package/dist/prefab/AggregateConstructor.d.ts +8 -0
  425. package/dist/prefab/AggregateConstructor.d.ts.map +1 -0
  426. package/dist/prefab/AggregateConstructor.js +2 -0
  427. package/dist/prefab/AggregateConstructor.js.map +1 -0
  428. package/dist/prefab/AggregateOf.d.ts +7 -0
  429. package/dist/prefab/AggregateOf.d.ts.map +1 -0
  430. package/dist/prefab/AggregateOf.js +2 -0
  431. package/dist/prefab/AggregateOf.js.map +1 -0
  432. package/dist/prefab/AggregateShape.d.ts +9 -0
  433. package/dist/prefab/AggregateShape.d.ts.map +1 -0
  434. package/dist/prefab/AggregateShape.js +2 -0
  435. package/dist/prefab/AggregateShape.js.map +1 -0
  436. package/dist/prefab/{crud.d.ts → CrudConstructor.d.ts} +5 -21
  437. package/dist/prefab/CrudConstructor.d.ts.map +1 -0
  438. package/dist/prefab/{crud.js → CrudConstructor.js} +1 -1
  439. package/dist/prefab/CrudConstructor.js.map +1 -0
  440. package/dist/prefab/CrudOpName.d.ts +3 -0
  441. package/dist/prefab/CrudOpName.d.ts.map +1 -0
  442. package/dist/prefab/CrudOpName.js +2 -0
  443. package/dist/prefab/CrudOpName.js.map +1 -0
  444. package/dist/prefab/CrudOps.d.ts +20 -0
  445. package/dist/prefab/CrudOps.d.ts.map +1 -0
  446. package/dist/prefab/CrudOps.js +2 -0
  447. package/dist/prefab/CrudOps.js.map +1 -0
  448. package/dist/prefab/CrudViews.d.ts +5 -0
  449. package/dist/prefab/CrudViews.d.ts.map +1 -0
  450. package/dist/prefab/CrudViews.js +2 -0
  451. package/dist/prefab/CrudViews.js.map +1 -0
  452. package/dist/prefab/MirrorConstructor.d.ts +9 -0
  453. package/dist/prefab/MirrorConstructor.d.ts.map +1 -0
  454. package/dist/prefab/{mirror.js → MirrorConstructor.js} +1 -1
  455. package/dist/prefab/MirrorConstructor.js.map +1 -0
  456. package/dist/prefab/MirrorOf.d.ts +19 -0
  457. package/dist/prefab/MirrorOf.d.ts.map +1 -0
  458. package/dist/prefab/MirrorOf.js +2 -0
  459. package/dist/prefab/MirrorOf.js.map +1 -0
  460. package/dist/prefab/Refreshed.d.ts +10 -0
  461. package/dist/prefab/Refreshed.d.ts.map +1 -0
  462. package/dist/prefab/Refreshed.js +2 -0
  463. package/dist/prefab/Refreshed.js.map +1 -0
  464. package/dist/prefab/RepositoryConstructor.d.ts +15 -0
  465. package/dist/prefab/RepositoryConstructor.d.ts.map +1 -0
  466. package/dist/prefab/{repository.js → RepositoryConstructor.js} +1 -1
  467. package/dist/prefab/RepositoryConstructor.js.map +1 -0
  468. package/dist/prefab/RepositoryOf.d.ts +7 -0
  469. package/dist/prefab/RepositoryOf.d.ts.map +1 -0
  470. package/dist/prefab/RepositoryOf.js +2 -0
  471. package/dist/prefab/RepositoryOf.js.map +1 -0
  472. package/dist/scan.d.ts +3 -22
  473. package/dist/scan.d.ts.map +1 -1
  474. package/dist/storage/{criterion.d.ts → Comparison.d.ts} +2 -3
  475. package/dist/storage/Comparison.d.ts.map +1 -0
  476. package/dist/storage/{criterion.js → Comparison.js} +1 -2
  477. package/dist/storage/Comparison.js.map +1 -0
  478. package/dist/storage/ComparisonName.d.ts +3 -0
  479. package/dist/storage/ComparisonName.d.ts.map +1 -0
  480. package/dist/storage/ComparisonName.js +2 -0
  481. package/dist/storage/ComparisonName.js.map +1 -0
  482. package/dist/storage/ListOptions.d.ts +23 -0
  483. package/dist/storage/ListOptions.d.ts.map +1 -0
  484. package/dist/storage/ListOptions.js +2 -0
  485. package/dist/storage/ListOptions.js.map +1 -0
  486. package/dist/storage/ListResult.d.ts +10 -0
  487. package/dist/storage/ListResult.d.ts.map +1 -0
  488. package/dist/storage/ListResult.js +2 -0
  489. package/dist/storage/ListResult.js.map +1 -0
  490. package/dist/storage/SelectOption.d.ts +6 -0
  491. package/dist/storage/SelectOption.d.ts.map +1 -0
  492. package/dist/storage/SelectOption.js +2 -0
  493. package/dist/storage/SelectOption.js.map +1 -0
  494. package/dist/storage/{port.d.ts → Storage.d.ts} +4 -47
  495. package/dist/storage/Storage.d.ts.map +1 -0
  496. package/dist/storage/{port.js → Storage.js} +1 -1
  497. package/dist/storage/Storage.js.map +1 -0
  498. package/dist/storage/StorageFactory.d.ts +8 -0
  499. package/dist/storage/StorageFactory.d.ts.map +1 -0
  500. package/dist/storage/StorageFactory.js +2 -0
  501. package/dist/storage/StorageFactory.js.map +1 -0
  502. package/dist/storage/{store.d.ts → Store.d.ts} +3 -5
  503. package/dist/storage/Store.d.ts.map +1 -0
  504. package/dist/storage/{store.js → Store.js} +3 -4
  505. package/dist/storage/Store.js.map +1 -0
  506. package/dist/storage/Together.d.ts +8 -0
  507. package/dist/storage/Together.d.ts.map +1 -0
  508. package/dist/storage/Together.js +2 -0
  509. package/dist/storage/Together.js.map +1 -0
  510. package/dist/storage/Values.d.ts +3 -0
  511. package/dist/storage/Values.d.ts.map +1 -0
  512. package/dist/storage/Values.js +2 -0
  513. package/dist/storage/Values.js.map +1 -0
  514. package/dist/verify.d.ts +6 -15
  515. package/dist/verify.d.ts.map +1 -1
  516. package/dist/verify.js +5 -5
  517. package/dist/verify.js.map +1 -1
  518. package/dist/wire/Addresses.d.ts +16 -0
  519. package/dist/wire/Addresses.d.ts.map +1 -0
  520. package/dist/wire/Addresses.js +2 -0
  521. package/dist/wire/Addresses.js.map +1 -0
  522. package/dist/wire/Answer.d.ts +3 -0
  523. package/dist/wire/Answer.d.ts.map +1 -0
  524. package/dist/wire/Answer.js +2 -0
  525. package/dist/wire/Answer.js.map +1 -0
  526. package/dist/wire/AnyHandler.d.ts +3 -0
  527. package/dist/wire/AnyHandler.d.ts.map +1 -0
  528. package/dist/wire/AnyHandler.js +2 -0
  529. package/dist/wire/AnyHandler.js.map +1 -0
  530. package/dist/wire/AppMiddleware.d.ts +8 -0
  531. package/dist/wire/AppMiddleware.d.ts.map +1 -0
  532. package/dist/wire/{middleware.js → AppMiddleware.js} +1 -2
  533. package/dist/wire/AppMiddleware.js.map +1 -0
  534. package/dist/wire/AppNext.d.ts +2 -0
  535. package/dist/wire/AppNext.d.ts.map +1 -0
  536. package/dist/wire/AppNext.js +2 -0
  537. package/dist/wire/AppNext.js.map +1 -0
  538. package/dist/wire/Call.d.ts +10 -0
  539. package/dist/wire/Call.d.ts.map +1 -0
  540. package/dist/wire/Call.js +12 -0
  541. package/dist/wire/Call.js.map +1 -0
  542. package/dist/wire/CallPage.d.ts +9 -0
  543. package/dist/wire/CallPage.d.ts.map +1 -0
  544. package/dist/wire/CallPage.js +2 -0
  545. package/dist/wire/CallPage.js.map +1 -0
  546. package/dist/wire/{CallLog.d.ts → CallRecord.d.ts} +3 -10
  547. package/dist/wire/CallRecord.d.ts.map +1 -0
  548. package/dist/wire/CallRecord.js +2 -0
  549. package/dist/wire/CallRecord.js.map +1 -0
  550. package/dist/wire/{emit.d.ts → Emit.d.ts} +1 -18
  551. package/dist/wire/Emit.d.ts.map +1 -0
  552. package/dist/wire/{emit.js → Emit.js} +1 -6
  553. package/dist/wire/Emit.js.map +1 -0
  554. package/dist/wire/ErrorCode.d.ts +23 -0
  555. package/dist/wire/ErrorCode.d.ts.map +1 -0
  556. package/dist/wire/ErrorCode.js +30 -0
  557. package/dist/wire/ErrorCode.js.map +1 -0
  558. package/dist/wire/Facade.d.ts +10 -0
  559. package/dist/wire/Facade.d.ts.map +1 -0
  560. package/dist/wire/Facade.js +9 -0
  561. package/dist/wire/Facade.js.map +1 -0
  562. package/dist/wire/FacadeName.d.ts +14 -0
  563. package/dist/wire/FacadeName.d.ts.map +1 -0
  564. package/dist/wire/FacadeName.js +2 -0
  565. package/dist/wire/FacadeName.js.map +1 -0
  566. package/dist/wire/Fact.d.ts +9 -0
  567. package/dist/wire/Fact.d.ts.map +1 -0
  568. package/dist/wire/Fact.js +2 -0
  569. package/dist/wire/Fact.js.map +1 -0
  570. package/dist/wire/FougereError.d.ts +35 -0
  571. package/dist/wire/FougereError.d.ts.map +1 -0
  572. package/dist/wire/{errors.js → FougereError.js} +9 -32
  573. package/dist/wire/FougereError.js.map +1 -0
  574. package/dist/wire/FougereErrorOptions.d.ts +10 -0
  575. package/dist/wire/FougereErrorOptions.d.ts.map +1 -0
  576. package/dist/wire/FougereErrorOptions.js +2 -0
  577. package/dist/wire/FougereErrorOptions.js.map +1 -0
  578. package/dist/wire/FougereHandlers.d.ts +10 -0
  579. package/dist/wire/FougereHandlers.d.ts.map +1 -0
  580. package/dist/wire/FougereHandlers.js +2 -0
  581. package/dist/wire/FougereHandlers.js.map +1 -0
  582. package/dist/wire/FougereOperations.d.ts +4 -0
  583. package/dist/wire/FougereOperations.d.ts.map +1 -0
  584. package/dist/wire/FougereOperations.js +2 -0
  585. package/dist/wire/FougereOperations.js.map +1 -0
  586. package/dist/wire/FrondCall.d.ts +10 -0
  587. package/dist/wire/FrondCall.d.ts.map +1 -0
  588. package/dist/wire/FrondCall.js +2 -0
  589. package/dist/wire/FrondCall.js.map +1 -0
  590. package/dist/wire/HandlerOf.d.ts +10 -0
  591. package/dist/wire/HandlerOf.d.ts.map +1 -0
  592. package/dist/wire/HandlerOf.js +2 -0
  593. package/dist/wire/HandlerOf.js.map +1 -0
  594. package/dist/wire/Invocation.d.ts +2 -10
  595. package/dist/wire/Invocation.d.ts.map +1 -1
  596. package/dist/wire/Invocation.js.map +1 -1
  597. package/dist/wire/InvocationContext.d.ts +10 -0
  598. package/dist/wire/InvocationContext.d.ts.map +1 -0
  599. package/dist/wire/InvocationContext.js +2 -0
  600. package/dist/wire/InvocationContext.js.map +1 -0
  601. package/dist/wire/{middleware.d.ts → OperationContext.d.ts} +2 -9
  602. package/dist/wire/OperationContext.d.ts.map +1 -0
  603. package/dist/wire/OperationContext.js +2 -0
  604. package/dist/wire/OperationContext.js.map +1 -0
  605. package/dist/wire/{operation.d.ts → OperationContract.d.ts} +15 -12
  606. package/dist/wire/OperationContract.d.ts.map +1 -0
  607. package/dist/wire/{operation.js → OperationContract.js} +1 -1
  608. package/dist/wire/OperationContract.js.map +1 -0
  609. package/dist/wire/OperationKind.d.ts +2 -0
  610. package/dist/wire/OperationKind.d.ts.map +1 -0
  611. package/dist/wire/OperationKind.js +2 -0
  612. package/dist/wire/OperationKind.js.map +1 -0
  613. package/dist/wire/OperationKindInference.d.ts +8 -0
  614. package/dist/wire/OperationKindInference.d.ts.map +1 -0
  615. package/dist/wire/OperationKindInference.js +2 -0
  616. package/dist/wire/OperationKindInference.js.map +1 -0
  617. package/dist/wire/OperationsMap.d.ts +7 -0
  618. package/dist/wire/OperationsMap.d.ts.map +1 -0
  619. package/dist/wire/OperationsMap.js +7 -0
  620. package/dist/wire/OperationsMap.js.map +1 -0
  621. package/dist/wire/Param.d.ts +8 -0
  622. package/dist/wire/Param.d.ts.map +1 -0
  623. package/dist/wire/Param.js +2 -0
  624. package/dist/wire/Param.js.map +1 -0
  625. package/dist/wire/PartialInvocation.d.ts +3 -0
  626. package/dist/wire/PartialInvocation.d.ts.map +1 -0
  627. package/dist/wire/PartialInvocation.js +2 -0
  628. package/dist/wire/PartialInvocation.js.map +1 -0
  629. package/dist/wire/Pipe.d.ts +10 -0
  630. package/dist/wire/Pipe.d.ts.map +1 -0
  631. package/dist/wire/Pipe.js +2 -0
  632. package/dist/wire/Pipe.js.map +1 -0
  633. package/dist/wire/Refused.d.ts +10 -0
  634. package/dist/wire/Refused.d.ts.map +1 -0
  635. package/dist/wire/Refused.js +2 -0
  636. package/dist/wire/Refused.js.map +1 -0
  637. package/dist/wire/RouteAddress.d.ts +1 -7
  638. package/dist/wire/RouteAddress.d.ts.map +1 -1
  639. package/dist/wire/RouteAddress.js.map +1 -1
  640. package/dist/wire/RouteAddressInput.d.ts +6 -0
  641. package/dist/wire/RouteAddressInput.d.ts.map +1 -0
  642. package/dist/wire/RouteAddressInput.js +2 -0
  643. package/dist/wire/RouteAddressInput.js.map +1 -0
  644. package/dist/wire/RouteKind.d.ts +3 -0
  645. package/dist/wire/RouteKind.d.ts.map +1 -0
  646. package/dist/wire/RouteKind.js +2 -0
  647. package/dist/wire/RouteKind.js.map +1 -0
  648. package/dist/wire/Rows.d.ts +8 -0
  649. package/dist/wire/Rows.d.ts.map +1 -0
  650. package/dist/wire/Rows.js +2 -0
  651. package/dist/wire/Rows.js.map +1 -0
  652. package/dist/wire/RpcAnswer.d.ts +6 -0
  653. package/dist/wire/RpcAnswer.d.ts.map +1 -0
  654. package/dist/wire/RpcAnswer.js +3 -0
  655. package/dist/wire/RpcAnswer.js.map +1 -0
  656. package/dist/wire/Signature.d.ts +13 -0
  657. package/dist/wire/Signature.d.ts.map +1 -0
  658. package/dist/wire/Signature.js +2 -0
  659. package/dist/wire/Signature.js.map +1 -0
  660. package/dist/wire/SignedCall.d.ts +12 -0
  661. package/dist/wire/SignedCall.d.ts.map +1 -0
  662. package/dist/wire/SignedCall.js +3 -0
  663. package/dist/wire/SignedCall.js.map +1 -0
  664. package/dist/wire/Transport.d.ts +5 -0
  665. package/dist/wire/Transport.d.ts.map +1 -0
  666. package/dist/wire/Transport.js +2 -0
  667. package/dist/wire/Transport.js.map +1 -0
  668. package/dist/wire/{signature.d.ts → TypeRef.d.ts} +1 -17
  669. package/dist/wire/TypeRef.d.ts.map +1 -0
  670. package/dist/wire/TypeRef.js +2 -0
  671. package/dist/wire/TypeRef.js.map +1 -0
  672. package/dist/wire/binding.d.ts +1 -1
  673. package/dist/wire/binding.d.ts.map +1 -1
  674. package/dist/wire/card/CardOp.d.ts +22 -0
  675. package/dist/wire/card/CardOp.d.ts.map +1 -0
  676. package/dist/wire/card/CardOp.js +2 -0
  677. package/dist/wire/card/CardOp.js.map +1 -0
  678. package/dist/wire/card/IdentityCard.d.ts +22 -0
  679. package/dist/wire/card/IdentityCard.d.ts.map +1 -0
  680. package/dist/wire/card/IdentityCard.js +25 -0
  681. package/dist/wire/card/IdentityCard.js.map +1 -0
  682. package/dist/wire/drift.d.ts +6 -6
  683. package/dist/wire/drift.d.ts.map +1 -1
  684. package/dist/wire/drift.js +18 -18
  685. package/dist/wire/drift.js.map +1 -1
  686. package/dist/wire/http-error.d.ts +1 -2
  687. package/dist/wire/http-error.d.ts.map +1 -1
  688. package/dist/wire/http-error.js +4 -3
  689. package/dist/wire/http-error.js.map +1 -1
  690. package/dist/wire/loggerMiddleware.d.ts +2 -2
  691. package/dist/wire/loggerMiddleware.d.ts.map +1 -1
  692. package/dist/wire/refusals.d.ts +33 -0
  693. package/dist/wire/refusals.d.ts.map +1 -0
  694. package/dist/wire/refusals.js +44 -0
  695. package/dist/wire/refusals.js.map +1 -0
  696. package/dist/wire/topology/DeclaredEdge.d.ts +6 -0
  697. package/dist/wire/topology/DeclaredEdge.d.ts.map +1 -0
  698. package/dist/wire/topology/DeclaredEdge.js +2 -0
  699. package/dist/wire/topology/DeclaredEdge.js.map +1 -0
  700. package/dist/wire/topology/DeclaredFrond.d.ts +11 -0
  701. package/dist/wire/topology/DeclaredFrond.d.ts.map +1 -0
  702. package/dist/wire/topology/DeclaredFrond.js +2 -0
  703. package/dist/wire/topology/DeclaredFrond.js.map +1 -0
  704. package/dist/wire/topology/DeclaredTopology.d.ts +12 -0
  705. package/dist/wire/topology/DeclaredTopology.d.ts.map +1 -0
  706. package/dist/wire/topology/DeclaredTopology.js +2 -0
  707. package/dist/wire/topology/DeclaredTopology.js.map +1 -0
  708. package/dist/wire/topology/Edge.d.ts +8 -0
  709. package/dist/wire/topology/Edge.d.ts.map +1 -0
  710. package/dist/wire/topology/Edge.js +2 -0
  711. package/dist/wire/topology/Edge.js.map +1 -0
  712. package/dist/wire/topology/FrondPlacement.d.ts +8 -0
  713. package/dist/wire/topology/FrondPlacement.d.ts.map +1 -0
  714. package/dist/wire/topology/FrondPlacement.js +2 -0
  715. package/dist/wire/topology/FrondPlacement.js.map +1 -0
  716. package/dist/wire/topology/TopologyReport.d.ts +14 -0
  717. package/dist/wire/topology/TopologyReport.d.ts.map +1 -0
  718. package/dist/wire/topology/TopologyReport.js +2 -0
  719. package/dist/wire/topology/TopologyReport.js.map +1 -0
  720. package/package.json +4 -4
  721. package/src/AdapterConfig.ts +11 -0
  722. package/src/AnswerFor.ts +7 -0
  723. package/src/Binding.ts +4 -0
  724. package/src/{identity.ts → CallIdentity.ts} +7 -25
  725. package/src/Constraint.ts +2 -0
  726. package/src/{conventions.ts → Conventions.ts} +20 -9
  727. package/src/ConventionsInput.ts +8 -0
  728. package/src/Ctor.ts +2 -0
  729. package/src/Declared.ts +8 -0
  730. package/src/DeclaredHandler.ts +18 -0
  731. package/src/DeclaredSubject.ts +6 -0
  732. package/src/{graph.ts → DomainCluster.ts} +2 -12
  733. package/src/EffectiveCollector.ts +7 -0
  734. package/src/EffectiveOperation.ts +62 -0
  735. package/src/{effective-operation.ts → EffectiveOperationModel.ts} +28 -125
  736. package/src/EffectiveOperationOptions.ts +7 -0
  737. package/src/EffectiveOperationSemantics.ts +7 -0
  738. package/src/EffectiveOperationsMap.ts +3 -0
  739. package/src/EffectiveParameter.ts +13 -0
  740. package/src/EntityNode.ts +6 -0
  741. package/src/{config-loader.ts → FougereConfig.ts} +15 -20
  742. package/src/FougereNames.ts +2 -0
  743. package/src/FougerePorts.ts +7 -0
  744. package/src/{frond-config.ts → FrondConfig.ts} +8 -46
  745. package/src/{declare.ts → FrondDeclaration.ts} +14 -35
  746. package/src/FrondIdentity.ts +7 -0
  747. package/src/NameOf.ts +12 -0
  748. package/src/OperationOverride.ts +38 -0
  749. package/src/PortChoice.ts +13 -0
  750. package/src/{source.ts → Source.ts} +4 -21
  751. package/src/SourceConfig.ts +10 -0
  752. package/src/SourceView.ts +7 -0
  753. package/src/VerifiedCall.ts +7 -0
  754. package/src/boot/App.ts +71 -0
  755. package/src/boot/AppLifecycle.ts +2 -20
  756. package/src/boot/AuthConfig.ts +14 -0
  757. package/src/boot/AuthContext.ts +12 -0
  758. package/src/boot/AuthRuntime.ts +19 -0
  759. package/src/boot/CreateAppOptions.ts +81 -0
  760. package/src/boot/Emissions.ts +86 -56
  761. package/src/boot/Extension.ts +20 -0
  762. package/src/boot/apply.ts +2 -2
  763. package/src/boot/bootstrap.ts +101 -70
  764. package/src/boot/card.ts +15 -11
  765. package/src/boot/declared.ts +5 -2
  766. package/src/boot/frame.ts +2 -2
  767. package/src/boot/hosted.ts +1 -1
  768. package/src/boot/install.ts +42 -31
  769. package/src/boot/ownership.ts +92 -52
  770. package/src/boot/ports.ts +52 -41
  771. package/src/boot/remote.ts +24 -17
  772. package/src/boot/runner.ts +2 -2
  773. package/src/boot/seed.ts +12 -10
  774. package/src/boot/statement-drift.ts +6 -5
  775. package/src/boot/together.ts +77 -37
  776. package/src/builtin/Carry.ts +49 -0
  777. package/src/builtin/LogLevel.ts +1 -0
  778. package/src/builtin/LogRecord.ts +12 -0
  779. package/src/builtin/LogSink.ts +4 -0
  780. package/src/builtin/{logger.ts → Logger.ts} +5 -98
  781. package/src/builtin/LoggerOptions.ts +14 -0
  782. package/src/builtin/Rendered.ts +21 -0
  783. package/src/contract.ts +35 -16
  784. package/src/crypto/CryptoPort.ts +12 -0
  785. package/src/crypto/PublicJwk.ts +7 -0
  786. package/src/crypto/Signer.ts +4 -0
  787. package/src/crypto/Verifier.ts +5 -0
  788. package/src/crypto/node.ts +4 -1
  789. package/src/crypto/webcrypto.ts +4 -1
  790. package/src/define.ts +1 -1
  791. package/src/descriptor/CollectorEntry.ts +11 -0
  792. package/src/descriptor/EntityEntry.ts +13 -0
  793. package/src/descriptor/ExtensionEntry.ts +15 -0
  794. package/src/descriptor/FrondDescriptor.ts +58 -0
  795. package/src/descriptor/FrondSource.ts +7 -0
  796. package/src/descriptor/Fronds.ts +2 -1
  797. package/src/descriptor/HandlerEntry.ts +27 -0
  798. package/src/descriptor/MiddlewareEntry.ts +16 -0
  799. package/src/descriptor/PresenterEntry.ts +23 -0
  800. package/src/descriptor/PresenterFieldMeta.ts +14 -0
  801. package/src/descriptor/ProviderEntry.ts +18 -0
  802. package/src/descriptor/SeedEntry.ts +11 -0
  803. package/src/descriptor/SeedFactory.ts +2 -0
  804. package/src/descriptor/bases.ts +30 -0
  805. package/src/descriptor/index.ts +24 -6
  806. package/src/descriptor/surface.ts +3 -2
  807. package/src/diagnostic.ts +41 -0
  808. package/src/dispatch/ArgumentResolver.ts +2 -7
  809. package/src/dispatch/CollectorLookup.ts +3 -0
  810. package/src/dispatch/CollectorResolver.ts +5 -0
  811. package/src/dispatch/DispatchEvent.ts +3 -6
  812. package/src/dispatch/DispatchLifecycle.ts +2 -1
  813. package/src/dispatch/DispatchObserver.ts +3 -0
  814. package/src/dispatch/DispatchPort.ts +1 -1
  815. package/src/dispatch/DispatchStage.ts +1 -0
  816. package/src/dispatch/Dispatcher.ts +1 -1
  817. package/src/dispatch/Facade.ts +25 -0
  818. package/src/dispatch/GuardReport.ts +9 -0
  819. package/src/dispatch/HandlerFacade.ts +28 -46
  820. package/src/dispatch/InFlight.ts +2 -1
  821. package/src/dispatch/LocalRoutePolicy.ts +3 -2
  822. package/src/dispatch/OperationRoute.ts +2 -3
  823. package/src/dispatch/PresenterArgs.ts +1 -0
  824. package/src/dispatch/PresenterExecutor.ts +3 -3
  825. package/src/dispatch/Route.ts +3 -2
  826. package/src/dispatch/RouteExecution.ts +3 -0
  827. package/src/dispatch/RoutePolicy.ts +1 -1
  828. package/src/dispatch/StorageGuard.ts +13 -19
  829. package/src/dispatch/presenterArguments.ts +3 -3
  830. package/src/dispatch/routeNotFound.ts +3 -2
  831. package/src/dispatch/validateInput.ts +3 -2
  832. package/src/entry/facade.ts +2 -2
  833. package/src/entry/transport.ts +2 -2
  834. package/src/index.ts +96 -52
  835. package/src/node.ts +2 -2
  836. package/src/prefab/AggregateConstructor.ts +9 -0
  837. package/src/prefab/AggregateOf.ts +6 -0
  838. package/src/prefab/AggregateShape.ts +7 -0
  839. package/src/prefab/{crud.ts → CrudConstructor.ts} +10 -18
  840. package/src/prefab/CrudOpName.ts +2 -0
  841. package/src/prefab/CrudOps.ts +24 -0
  842. package/src/prefab/CrudViews.ts +5 -0
  843. package/src/prefab/MirrorConstructor.ts +35 -0
  844. package/src/prefab/MirrorOf.ts +19 -0
  845. package/src/prefab/Refreshed.ts +9 -0
  846. package/src/prefab/{repository.ts → RepositoryConstructor.ts} +8 -24
  847. package/src/prefab/RepositoryOf.ts +7 -0
  848. package/src/scan.ts +3 -23
  849. package/src/storage/{criterion.ts → Comparison.ts} +1 -3
  850. package/src/storage/ComparisonName.ts +3 -0
  851. package/src/storage/ListOptions.ts +29 -0
  852. package/src/storage/ListResult.ts +9 -0
  853. package/src/storage/SelectOption.ts +6 -0
  854. package/src/storage/{port.ts → Storage.ts} +5 -56
  855. package/src/storage/StorageFactory.ts +8 -0
  856. package/src/storage/{store.ts → Store.ts} +5 -7
  857. package/src/storage/Together.ts +6 -0
  858. package/src/storage/Values.ts +2 -0
  859. package/src/verify.ts +12 -21
  860. package/src/wire/Addresses.ts +17 -0
  861. package/src/wire/Answer.ts +3 -0
  862. package/src/wire/AnyHandler.ts +2 -0
  863. package/src/wire/AppMiddleware.ts +24 -0
  864. package/src/wire/AppNext.ts +1 -0
  865. package/src/wire/Call.ts +15 -0
  866. package/src/wire/CallPage.ts +9 -0
  867. package/src/wire/{CallLog.ts → CallRecord.ts} +2 -10
  868. package/src/wire/{emit.ts → Emit.ts} +1 -24
  869. package/src/wire/ErrorCode.ts +33 -0
  870. package/src/wire/Facade.ts +28 -0
  871. package/src/wire/FacadeName.ts +13 -0
  872. package/src/wire/Fact.ts +8 -0
  873. package/src/wire/{errors.ts → FougereError.ts} +14 -53
  874. package/src/wire/FougereErrorOptions.ts +10 -0
  875. package/src/wire/FougereHandlers.ts +8 -0
  876. package/src/wire/FougereOperations.ts +2 -0
  877. package/src/wire/FrondCall.ts +9 -0
  878. package/src/wire/HandlerOf.ts +10 -0
  879. package/src/wire/Invocation.ts +2 -11
  880. package/src/wire/InvocationContext.ts +9 -0
  881. package/src/wire/OperationContext.ts +18 -0
  882. package/src/wire/{operation.ts → OperationContract.ts} +14 -23
  883. package/src/wire/OperationKind.ts +1 -0
  884. package/src/wire/OperationKindInference.ts +8 -0
  885. package/src/wire/OperationsMap.ts +14 -0
  886. package/src/wire/Param.ts +8 -0
  887. package/src/wire/PartialInvocation.ts +3 -0
  888. package/src/wire/Pipe.ts +9 -0
  889. package/src/wire/Refused.ts +13 -0
  890. package/src/wire/RouteAddress.ts +1 -8
  891. package/src/wire/RouteAddressInput.ts +5 -0
  892. package/src/wire/RouteKind.ts +2 -0
  893. package/src/wire/Rows.ts +7 -0
  894. package/src/wire/RpcAnswer.ts +7 -0
  895. package/src/wire/Signature.ts +13 -0
  896. package/src/wire/SignedCall.ts +12 -0
  897. package/src/wire/Transport.ts +5 -0
  898. package/src/wire/{signature.ts → TypeRef.ts} +0 -18
  899. package/src/wire/binding.ts +1 -1
  900. package/src/wire/card/CardOp.ts +22 -0
  901. package/src/wire/card/IdentityCard.ts +41 -0
  902. package/src/wire/drift.ts +22 -22
  903. package/src/wire/http-error.ts +4 -3
  904. package/src/wire/loggerMiddleware.ts +2 -2
  905. package/src/wire/refusals.ts +55 -0
  906. package/src/wire/topology/DeclaredEdge.ts +5 -0
  907. package/src/wire/topology/DeclaredFrond.ts +10 -0
  908. package/src/wire/topology/DeclaredTopology.ts +12 -0
  909. package/src/wire/topology/Edge.ts +7 -0
  910. package/src/wire/topology/FrondPlacement.ts +7 -0
  911. package/src/wire/topology/TopologyReport.ts +14 -0
  912. package/dist/boot/auth.d.ts +0 -43
  913. package/dist/boot/auth.d.ts.map +0 -1
  914. package/dist/boot/auth.js +0 -2
  915. package/dist/boot/auth.js.map +0 -1
  916. package/dist/boot/types.d.ts +0 -147
  917. package/dist/boot/types.d.ts.map +0 -1
  918. package/dist/boot/types.js +0 -2
  919. package/dist/boot/types.js.map +0 -1
  920. package/dist/builtin/logger.d.ts +0 -96
  921. package/dist/builtin/logger.d.ts.map +0 -1
  922. package/dist/builtin/logger.js.map +0 -1
  923. package/dist/config-loader.d.ts.map +0 -1
  924. package/dist/config-loader.js.map +0 -1
  925. package/dist/conventions.d.ts.map +0 -1
  926. package/dist/conventions.js.map +0 -1
  927. package/dist/crypto/port.d.ts +0 -26
  928. package/dist/crypto/port.d.ts.map +0 -1
  929. package/dist/crypto/port.js +0 -3
  930. package/dist/crypto/port.js.map +0 -1
  931. package/dist/declare.d.ts.map +0 -1
  932. package/dist/declare.js.map +0 -1
  933. package/dist/descriptor/frond.d.ts +0 -187
  934. package/dist/descriptor/frond.d.ts.map +0 -1
  935. package/dist/descriptor/frond.js.map +0 -1
  936. package/dist/effective-operation.d.ts +0 -113
  937. package/dist/effective-operation.d.ts.map +0 -1
  938. package/dist/effective-operation.js.map +0 -1
  939. package/dist/frond-config.d.ts +0 -71
  940. package/dist/frond-config.d.ts.map +0 -1
  941. package/dist/frond-config.js.map +0 -1
  942. package/dist/graph.d.ts.map +0 -1
  943. package/dist/graph.js.map +0 -1
  944. package/dist/identity.d.ts.map +0 -1
  945. package/dist/identity.js.map +0 -1
  946. package/dist/prefab/crud.d.ts.map +0 -1
  947. package/dist/prefab/crud.js.map +0 -1
  948. package/dist/prefab/mirror.d.ts +0 -33
  949. package/dist/prefab/mirror.d.ts.map +0 -1
  950. package/dist/prefab/mirror.js.map +0 -1
  951. package/dist/prefab/repository.d.ts +0 -40
  952. package/dist/prefab/repository.d.ts.map +0 -1
  953. package/dist/prefab/repository.js.map +0 -1
  954. package/dist/source.d.ts.map +0 -1
  955. package/dist/storage/criterion.d.ts.map +0 -1
  956. package/dist/storage/criterion.js.map +0 -1
  957. package/dist/storage/port.d.ts.map +0 -1
  958. package/dist/storage/port.js.map +0 -1
  959. package/dist/storage/store.d.ts.map +0 -1
  960. package/dist/storage/store.js.map +0 -1
  961. package/dist/wire/CallLog.d.ts.map +0 -1
  962. package/dist/wire/CallLog.js +0 -2
  963. package/dist/wire/CallLog.js.map +0 -1
  964. package/dist/wire/call.d.ts +0 -130
  965. package/dist/wire/call.d.ts.map +0 -1
  966. package/dist/wire/call.js +0 -47
  967. package/dist/wire/call.js.map +0 -1
  968. package/dist/wire/emit.d.ts.map +0 -1
  969. package/dist/wire/emit.js.map +0 -1
  970. package/dist/wire/errors.d.ts +0 -58
  971. package/dist/wire/errors.d.ts.map +0 -1
  972. package/dist/wire/errors.js.map +0 -1
  973. package/dist/wire/middleware.d.ts.map +0 -1
  974. package/dist/wire/middleware.js.map +0 -1
  975. package/dist/wire/operation.d.ts.map +0 -1
  976. package/dist/wire/operation.js.map +0 -1
  977. package/dist/wire/signature.d.ts.map +0 -1
  978. package/dist/wire/signature.js +0 -2
  979. package/dist/wire/signature.js.map +0 -1
  980. package/src/boot/auth.ts +0 -45
  981. package/src/boot/types.ts +0 -148
  982. package/src/crypto/port.ts +0 -29
  983. package/src/descriptor/frond.ts +0 -195
  984. package/src/prefab/mirror.ts +0 -60
  985. package/src/wire/call.ts +0 -178
  986. package/src/wire/middleware.ts +0 -43
@@ -3,11 +3,16 @@
3
3
  *
4
4
  * Documented: [the gradient](https://fougere.dev/docs/infra/gradient).
5
5
  */
6
- import type { FrondCall, Transport } from '../wire/call.js';
7
- import { assertIdentityCard, RPC_ENTITY } from '../wire/call.js';
8
- import { runMiddlewares, type AppMiddleware, type OperationContext } from '../wire/middleware.js';
9
- import { type InvocationContext, Invocation } from '../wire/Invocation.js';
10
- import { FougereError, ErrorCode } from '../wire/errors.js';
6
+ import type { FrondCall } from '../wire/FrondCall.js';
7
+ import type { Transport } from '../wire/Transport.js';
8
+ import { RPC_ENTITY } from '../wire/RpcAnswer.js';
9
+ import { assertIdentityCard } from '../wire/card/IdentityCard.js';
10
+ import { runMiddlewares, type AppMiddleware } from '../wire/AppMiddleware.js';
11
+ import { type OperationContext } from '../wire/OperationContext.js';
12
+ import { Invocation } from '../wire/Invocation.js';
13
+ import { type InvocationContext } from '../wire/InvocationContext.js';
14
+ import { ErrorCode } from '../wire/ErrorCode.js';
15
+ import { FougereError } from '../wire/FougereError.js';
11
16
  import { Card, type SchemaView, type SchemaDescriptor } from '@fougere/schema';
12
17
  import { dynamicOperations } from '../entry/facade.js';
13
18
 
@@ -35,7 +40,7 @@ export function createRemoteRouter(
35
40
  const pending = new Map(Object.entries(remotes));
36
41
  const transports = new Map<string, Transport>();
37
42
 
38
- /** Which remote label claimed a door name — so a second claim can name the first. */
43
+ /** Which remote label claimed a facade name — so a second claim can name the first. */
39
44
  const claimedBy = new Map<string, string>();
40
45
 
41
46
  const discover = async (): Promise<void> => {
@@ -65,28 +70,28 @@ export function createRemoteRouter(
65
70
  const card = assertIdentityCard(answer, `Remote '${label}' (${url})`);
66
71
 
67
72
  for (const frond of card.fronds) {
68
- // Doors only. A fact is not routable — nobody calls it, it arrives — so
69
- // adding one here would answer a call with a transport to a door that
73
+ // Facades only. A fact is not routable — nobody calls it, it arrives — so
74
+ // adding one here would answer a call with a transport to a facade that
70
75
  // does not exist.
71
- for (const door of frond.doors) {
72
- const first = claimedBy.get(door.name);
76
+ for (const facade of frond.facades) {
77
+ const first = claimedBy.get(facade.name);
73
78
  /** Two remotes claiming one name is refused, not silently arbitrated. */
74
79
  if (first !== undefined && first !== label) {
75
80
  throw new FougereError({
76
81
  code: ErrorCode.INTERNAL_ERROR,
77
82
  message:
78
- `Two remotes serve '${door.name}': '${first}' and '${label}'.\n`
83
+ `[claim] Two remotes serve '${facade.name}': '${first}' and '${label}'.\n`
79
84
  + ` A call names an entity, not a frond, so nothing could choose between them.\n`
80
85
  + ` - Keep one of the two out of \`remotes:\`, or\n`
81
86
  + ` - expose one of them under a different entity name.`,
82
- entity: door.name,
87
+ entity: facade.name,
83
88
  });
84
89
  }
85
- claimedBy.set(door.name, label);
86
- byEntity.set(door.name, {
90
+ claimedBy.set(facade.name, label);
91
+ byEntity.set(facade.name, {
87
92
  frond: frond.name,
88
93
  transport,
89
- ...(door.schema ? { schema: Card.fromDescriptor(door.schema as SchemaDescriptor).toSchema() } : {}),
94
+ ...(facade.schema ? { schema: Card.fromDescriptor(facade.schema as SchemaDescriptor).toSchema() } : {}),
90
95
  });
91
96
  }
92
97
  }
@@ -101,13 +106,15 @@ export function createRemoteRouter(
101
106
  if (pending.size > 0) {
102
107
  throw new FougereError({
103
108
  code: ErrorCode.SERVICE_UNAVAILABLE,
104
- message: `No reachable remote hosts '${entity}' — unreachable: ${[...pending.keys()].join(', ')}`,
109
+ message: `No reachable remote hosts '${entity}' — unreachable: ${[...pending.keys()].join(', ')}.\n`
110
+ + ' Named in `remotes:`, and did not answer.',
105
111
  entity,
106
112
  });
107
113
  }
108
114
  throw new FougereError({
109
115
  code: ErrorCode.NOT_FOUND,
110
- message: `No declared remote hosts '${entity}'`,
116
+ message: `No declared remote hosts '${entity}'.\n`
117
+ + ' Nothing here serves it either — add its frond to `fronds:`/`scan:`, or name the frond that does in `remotes:`.',
111
118
  entity,
112
119
  });
113
120
  },
@@ -1,6 +1,6 @@
1
1
  /** A Transport built from an app — the two ways a call enters this process. */
2
- import type { App } from './types.js';
3
- import type { Transport } from '../wire/call.js';
2
+ import type { App } from './App.js';
3
+ import type { Transport } from '../wire/Transport.js';
4
4
  import { createTransportEntry } from '../entry/transport.js';
5
5
 
6
6
  /** Build the local runner — the reference realization of Transport. */
package/src/boot/seed.ts CHANGED
@@ -1,8 +1,10 @@
1
1
  import { Role } from '@fougere/schema';
2
- import { facadeKeyOf } from '../wire/call.js';
3
- import type { FrondDescriptor, SeedEntry, SeedFactory } from '../descriptor/frond.js';
4
- import type { App } from './types.js';
5
- import type { Extension } from './AppLifecycle.js';
2
+ import { facadeKeyOf } from '../wire/Facade.js';
3
+ import type { FrondDescriptor } from '../descriptor/FrondDescriptor.js';
4
+ import type { SeedEntry } from '../descriptor/SeedEntry.js';
5
+ import type { SeedFactory } from '../descriptor/SeedFactory.js';
6
+ import type { App } from './App.js';
7
+ import type { Extension } from './Extension.js';
6
8
 
7
9
  /** What the ordering satisfied, and what no order can. */
8
10
  export interface SeedOrder {
@@ -56,7 +58,7 @@ export function orderSeeds(fronds: FrondDescriptor[]): SeedOrder {
56
58
  }
57
59
 
58
60
  /** Where a seed writes, and what it may skip — resolved per entity. */
59
- interface SeedDoor {
61
+ interface SeedFacade {
60
62
  list(): Promise<unknown[]>;
61
63
  write(item: unknown): Promise<unknown>;
62
64
  }
@@ -75,13 +77,13 @@ export async function runSeeds(
75
77
  const resolve = <T>(name: string) => app.resolve<T>(name + 'Handler');
76
78
  const data = typeof seed.data === 'function' ? await (seed.data as SeedFactory)(resolve) : seed.data;
77
79
 
78
- const door = doorFor(app, seed.entityName);
79
- if (!door) {
80
+ const facade = facadeFor(app, seed.entityName);
81
+ if (!facade) {
80
82
  report(` ${seed.entityName}: no handler façade nor storage — skipping seed`);
81
83
  continue;
82
84
  }
83
85
 
84
- const existing = await door.list();
86
+ const existing = await facade.list();
85
87
  if (existing.length > 0) {
86
88
  report(` ${seed.entityName}: skipped (${existing.length} exist)`);
87
89
  continue;
@@ -91,7 +93,7 @@ export async function runSeeds(
91
93
  // key is exactly what a seed gets wrong.
92
94
  for (const item of data) {
93
95
  try {
94
- await door.write(item);
96
+ await facade.write(item);
95
97
  } catch (cause) {
96
98
  throw new Error(
97
99
  `Seed '${seed.entityName}' failed on ${JSON.stringify(item)}: ${(cause as Error)?.message ?? cause}`,
@@ -104,7 +106,7 @@ export async function runSeeds(
104
106
  }
105
107
 
106
108
  /** A seed is not a client. */
107
- function doorFor(app: App, entityName: string): SeedDoor | undefined {
109
+ function facadeFor(app: App, entityName: string): SeedFacade | undefined {
108
110
  let handler: Record<string, Function> | undefined;
109
111
  try { handler = app.resolve<Record<string, Function>>(facadeKeyOf(entityName)); } catch {}
110
112
 
@@ -1,8 +1,9 @@
1
1
  /** Where a STATED contract and the signature it is about have stopped agreeing. */
2
- import type { FrondDescriptor, HandlerEntry } from '../descriptor/frond.js';
3
- import type { ScanDiagnostic } from '../scan.js';
2
+ import type { FrondDescriptor } from '../descriptor/FrondDescriptor.js';
3
+ import type { HandlerEntry } from '../descriptor/HandlerEntry.js';
4
+ import type { Diagnostic } from '../diagnostic.js';
4
5
  import type { BindingPlan } from '../wire/binding.js';
5
- import type { Signature } from '../wire/signature.js';
6
+ import type { Signature } from '../wire/Signature.js';
6
7
 
7
8
  /** The parameters a binding plan names, against the ones the method declares. */
8
9
  function namesDisagreeing(plan: BindingPlan, signature: Signature): string[] {
@@ -12,8 +13,8 @@ function namesDisagreeing(plan: BindingPlan, signature: Signature): string[] {
12
13
  }
13
14
 
14
15
  /** What a frond's stated contracts no longer match. */
15
- export function statementDrift(frond: FrondDescriptor, handler: HandlerEntry): ScanDiagnostic[] {
16
- const found: ScanDiagnostic[] = [];
16
+ export function statementDrift(frond: FrondDescriptor, handler: HandlerEntry): Diagnostic[] {
17
+ const found: Diagnostic[] = [];
17
18
 
18
19
  for (const [name, override] of Object.entries(frond.operationsOverrides ?? {})) {
19
20
  if (!override.binding) continue;
@@ -6,11 +6,13 @@
6
6
  import { ambient } from '#ambient';
7
7
  import { upperFirst, lowerFirst, type SchemaView } from '@fougere/schema';
8
8
  import type { Container } from '@fougere/container';
9
- import { membersOfTogetherKey, storageKeyOf, entityOfStorageKey, type Storage, type StorageFactory } from '../storage/port.js';
10
- import type { Logger } from '../builtin/logger.js';
11
- import type { ProviderEntry } from '../descriptor/frond.js';
9
+ import { entityOfStorageKey, membersOfTogetherKey, storageKeyOf, type Storage } from '../storage/Storage.js';
10
+ import { type StorageFactory } from '../storage/StorageFactory.js';
11
+ import type { Logger } from '../builtin/Logger.js';
12
+ import type { ProviderEntry } from '../descriptor/ProviderEntry.js';
12
13
  import { StorageGuard } from '../dispatch/StorageGuard.js';
13
14
  import { recording, unwind, type Undo } from './frame.js';
15
+ import type { Diagnostic } from '../diagnostic.js';
14
16
 
15
17
  /** Everything the boot knows that a frame needs, gathered once for every frond. */
16
18
  export interface FrameWorld {
@@ -33,61 +35,87 @@ interface Members {
33
35
  providers: ProviderEntry[];
34
36
  }
35
37
 
36
- /** Each declared name, resolved to what it designates. */
37
- function resolve(names: { entities: string[]; providers: string[] }, declared: readonly ProviderEntry[], world: FrameWorld): Members {
38
- const entities = names.entities.map((member) => {
38
+ /** Each declared name, resolved to what it designates — or nothing, and why. */
39
+ function resolve(
40
+ names: { entities: string[]; providers: string[] },
41
+ declared: readonly ProviderEntry[],
42
+ world: FrameWorld,
43
+ asked: Asked,
44
+ refused: Diagnostic[],
45
+ ): Members | undefined {
46
+ const before = refused.length;
47
+
48
+ const entities = names.entities.flatMap((member) => {
39
49
  const name = lowerFirst(member);
40
50
  const schema = world.entityByName.get(name);
41
51
  if (!schema) {
42
- throw new Error(
43
- `Together<[…${member}…]>: no entity named '${member}' is scanned in this app. ` +
44
- `The first list names entities; a class of this frond goes in the second.`,
45
- );
52
+ refused.push({
53
+ ...asked,
54
+ code: 'together-entity-unknown',
55
+ message: `Together<[…${member}…]>: no entity named '${member}' is scanned in this app. `
56
+ + 'The first list names entities; a class of this frond goes in the second.',
57
+ });
58
+
59
+ return [];
46
60
  }
47
- return { name, schema };
61
+
62
+ return [{ name, schema }];
48
63
  });
49
64
 
50
- const providers = names.providers.map((member) => {
65
+ const providers = names.providers.flatMap((member) => {
51
66
  const entry = declared.find((provider) => provider.ctor.name === member);
52
67
  if (!entry) {
53
- throw new Error(
54
- `Together<[…], [… ${member} …]>: this frond declares no class named '${member}'. ` +
55
- `The second list names providers to rebuild inside the frame — a service, a mirror, ` +
56
- `a repository — so that what they write is covered by the unwind.`,
57
- );
68
+ refused.push({
69
+ ...asked,
70
+ code: 'together-provider-unknown',
71
+ message: `Together<[…], [… ${member} …]>: this frond declares no class named '${member}'. `
72
+ + 'The second list names providers to rebuild inside the frame — a service, a mirror, '
73
+ + 'a repository — so that what they write is covered by the unwind.',
74
+ });
75
+
76
+ return [];
58
77
  }
59
- return entry;
78
+
79
+ return [entry];
60
80
  });
61
81
 
62
- return { entities, providers };
82
+ return refused.length === before ? { entities, providers } : undefined;
63
83
  }
64
84
 
85
+ /** Who asked for the frame, and where they wrote it — the same three fields every refusal here carries. */
86
+ type Asked = { severity: 'blocking'; filePath: string; subject: string };
87
+
65
88
  /** A member that cannot write here at all — its frond is hosted elsewhere. */
66
- function refuseRemote(members: Members, world: FrameWorld, key: string): void {
89
+ function remoteMembers(members: Members, world: FrameWorld, asked: Asked, refused: Diagnostic[]): void {
67
90
  for (const member of members.entities) {
68
91
  const frond = world.frondOf.get(member.name);
69
92
  if (frond && !world.hostedHere(frond)) {
70
- throw new Error(
71
- `Together<[…]> (${key}): '${member.name}' belongs to frond '${frond}', which this ` +
72
- `process declares in remotes: — it registers no storage here, so its writes cannot be ` +
73
- `part of a frame. Host the frond here, or split the work and join the halves with a fact.`,
74
- );
93
+ refused.push({
94
+ ...asked,
95
+ code: 'together-member-remote',
96
+ message: `'${member.name}' belongs to frond '${frond}', which this process declares in `
97
+ + 'remotes: — it registers no storage here, so its writes cannot be part of a frame. '
98
+ + 'Host the frond here, or split the work and join the halves with a fact.',
99
+ });
75
100
  }
76
101
  }
77
102
  }
78
103
 
79
104
  /** A provider member writing an entity the frame does not name. */
80
- function refuseUncoveredWrites(members: Members, key: string, world: FrameWorld): void {
105
+ function uncoveredWrites(members: Members, world: FrameWorld, asked: Asked, refused: Diagnostic[]): void {
81
106
  const covered = new Set(members.entities.map((member) => member.name));
82
107
  for (const provider of members.providers) {
83
108
  for (const dep of provider.deps) {
84
109
  const entity = entityOfStorageKey(dep, (name) => world.entityByName.has(name));
85
110
  if (!entity || covered.has(entity)) continue;
86
- throw new Error(
87
- `Together<[…]> (${key}): ${provider.ctor.name} writes ${entity}, which is not in the ` +
88
- `frame's entity list — its writes would escape the unwind. Add it: ` +
89
- `Together<[…, ${upperFirst(entity)}], [… ${provider.ctor.name} …]>.`,
90
- );
111
+ refused.push({
112
+ ...asked,
113
+ filePath: provider.filePath,
114
+ code: 'together-write-uncovered',
115
+ message: `${provider.ctor.name} writes ${entity}, which is not in the frame's entity list `
116
+ + `— its writes would escape the unwind. Add it: `
117
+ + `Together<[…, ${upperFirst(entity)}], [… ${provider.ctor.name} …]>.`,
118
+ });
91
119
  }
92
120
  }
93
121
  }
@@ -121,22 +149,34 @@ async function inScope<R>(
121
149
  /** Register one frame per key a handler or provider of this frond asked for. */
122
150
  export function registerFrames(
123
151
  scope: Container,
124
- keys: Iterable<string>,
152
+ wanted: Iterable<{ key: string; filePath: string }>,
125
153
  providers: readonly ProviderEntry[],
126
154
  world: FrameWorld,
155
+ refused: Diagnostic[],
127
156
  ): void {
128
157
  let registered = 0;
129
- for (const key of new Set(keys)) {
158
+ const seen = new Set<string>();
159
+ for (const { key, filePath } of wanted) {
160
+ if (seen.has(key)) continue;
161
+ seen.add(key);
130
162
  const names = membersOfTogetherKey(key);
131
163
  if (!names) continue;
132
164
  registered += 1;
165
+ const asked = { severity: 'blocking', filePath, subject: key } as const;
133
166
  if (!world.storageFactory) {
134
- throw new Error(`Together<[${names.entities.join(', ')}]> needs storage, and this boot declares none.`);
167
+ refused.push({
168
+ ...asked,
169
+ code: 'together-needs-storage',
170
+ message: `Together<[${names.entities.join(', ')}]> needs storage, and this boot declares none.`,
171
+ });
172
+ continue;
135
173
  }
136
174
 
137
- const members = resolve(names, providers, world);
138
- refuseRemote(members, world, key);
139
- refuseUncoveredWrites(members, key, world);
175
+ const members = resolve(names, providers, world, asked, refused);
176
+ // Nothing left to build a frame out of, and the refusals above already say what is missing.
177
+ if (!members) continue;
178
+ remoteMembers(members, world, asked, refused);
179
+ uncoveredWrites(members, world, asked, refused);
140
180
 
141
181
  const sources = new Set(members.entities.map((member) => world.sourceOf?.(member.name) ?? 'db'));
142
182
  const validator = (storage: Storage, name: string, schema: SchemaView) =>
@@ -0,0 +1,49 @@
1
+ import type { LogRecord } from './LogRecord.js';
2
+
3
+ /**
4
+ * Where one boot's lines wait, and where they go once they can.
5
+ *
6
+ * PER BOOT and never per process: two apps in one process each have their own
7
+ * destinations, and a slot shared between them sent the second app's lines to the first
8
+ * app's facade — measured on `demos/observability`, where only the first of three printed.
9
+ *
10
+ * A boot writes most of what a process ever logs, and it writes it before any emission is
11
+ * registered, so the lines that say what an app is made of are the ones a destination
12
+ * would miss. Bounded: a boot that never finishes must not grow, and what is dropped is
13
+ * the OLDEST since the lines explaining a refusal are the last.
14
+ */
15
+ export class Carry {
16
+ private held: LogRecord[] = [];
17
+ private take?: (line: LogRecord) => void;
18
+
19
+ static readonly MAX = 500;
20
+
21
+ /** Take it now, or keep it for whoever arrives. */
22
+ push(record: LogRecord): void {
23
+ if (this.take) {
24
+ try {
25
+ this.take(record);
26
+ } catch { /* announcing never breaks logging, for the same reason a sink does not */ }
27
+ return;
28
+ }
29
+ this.held.push(record);
30
+ if (this.held.length > Carry.MAX) this.held.shift();
31
+ }
32
+
33
+ /** Hand what is held over, and everything after it. */
34
+ to(take: (line: LogRecord) => void): () => void {
35
+ this.take = take;
36
+ for (const line of this.held.splice(0)) take(line);
37
+
38
+ return () => { this.take = undefined; };
39
+ }
40
+
41
+ /**
42
+ * Forget what is still held — a boot that refused, or an app that declares no
43
+ * destination. Nothing is printed: the console had every one of these lines when it was
44
+ * written, and the hold exists only to hand them on later.
45
+ */
46
+ forget(): void {
47
+ this.held.length = 0;
48
+ }
49
+ }
@@ -0,0 +1 @@
1
+ export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
@@ -0,0 +1,12 @@
1
+ import type { LogLevel } from './LogLevel.js';
2
+
3
+ /** One line, before it was formatted for a terminal. */
4
+ export interface LogRecord {
5
+ level: Exclude<LogLevel, 'silent'>;
6
+ /** The logger's own name — 'boot:app', 'boot:app:catalog'. */
7
+ name: string;
8
+ message: string;
9
+ args: unknown[];
10
+ /** Epoch milliseconds. */
11
+ at: number;
12
+ }
@@ -0,0 +1,4 @@
1
+ import type { LogRecord } from './LogRecord.js';
2
+
3
+ /** Where a line goes once it is written — `@fougere/log` ships one, `observability` another. */
4
+ export type LogSink = (record: LogRecord) => void;
@@ -1,68 +1,8 @@
1
- /** Fougere Logger — structured, colored, multi-runtime. */
2
-
3
- export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
4
-
5
- /** One line, before it was formatted for a terminal. */
6
- export interface LogRecord {
7
- level: Exclude<LogLevel, 'silent'>;
8
- /** The logger's own name — 'boot:app', 'boot:app:catalog'. */
9
- name: string;
10
- message: string;
11
- args: unknown[];
12
- /** Epoch milliseconds. */
13
- at: number;
14
- }
15
-
16
- /** Where a line goes once it is written — `@fougere/log` ships one, `observability` another. */
17
- export type LogSink = (record: LogRecord) => void;
18
-
19
- /**
20
- * Where one boot's lines wait, and where they go once they can.
21
- *
22
- * PER BOOT and never per process: two apps in one process each have their own
23
- * destinations, and a slot shared between them sent the second app's lines to the first
24
- * app's door — measured on `demos/observability`, where only the first of three printed.
25
- *
26
- * A boot writes most of what a process ever logs, and it writes it before any emission is
27
- * registered, so the lines that say what an app is made of are the ones a destination
28
- * would miss. Bounded: a boot that never finishes must not grow, and what is dropped is
29
- * the OLDEST since the lines explaining a refusal are the last.
30
- */
31
- export class Carry {
32
- private held: LogRecord[] = [];
33
- private take?: (line: LogRecord) => void;
34
-
35
- static readonly MAX = 500;
36
-
37
- /** Take it now, or keep it for whoever arrives. */
38
- push(record: LogRecord): void {
39
- if (this.take) {
40
- try {
41
- this.take(record);
42
- } catch { /* announcing never breaks logging, for the same reason a sink does not */ }
43
- return;
44
- }
45
- this.held.push(record);
46
- if (this.held.length > Carry.MAX) this.held.shift();
47
- }
48
-
49
- /** Hand what is held over, and everything after it. */
50
- to(take: (line: LogRecord) => void): () => void {
51
- this.take = take;
52
- for (const line of this.held.splice(0)) take(line);
53
-
54
- return () => { this.take = undefined; };
55
- }
56
-
57
- /**
58
- * Forget what is still held — a boot that refused, or an app that declares no
59
- * destination. Nothing is printed: the console had every one of these lines when it was
60
- * written, and the hold exists only to hand them on later.
61
- */
62
- forget(): void {
63
- this.held.length = 0;
64
- }
65
- }
1
+ import type { LogLevel } from './LogLevel.js';
2
+ import type { LogRecord } from './LogRecord.js';
3
+ import type { Carry } from './Carry.js';
4
+ import type { LoggerOptions } from './LoggerOptions.js';
5
+ import type { Rendered } from './Rendered.js';
66
6
 
67
7
  const LEVELS: Record<LogLevel, number> = { debug: 0, info: 1, warn: 2, error: 3, silent: 4 };
68
8
 
@@ -125,19 +65,6 @@ function stamp(at: number | Date): string {
125
65
  return `${h}:${m}:${s}.${ms}`;
126
66
  }
127
67
 
128
- export interface LoggerOptions {
129
- /** Logger name / prefix. */
130
- name?: string;
131
- /**
132
- * Where its lines go — one boot's, so two apps in a process do not share a door. A
133
- * logger without one writes to the console and nowhere else, which is what the boot's
134
- * first lines do and what an app declaring no destination does forever.
135
- */
136
- carry?: Carry;
137
- /** Force color on/off. Auto-detected by default. */
138
- color?: boolean;
139
- }
140
-
141
68
  export class Logger {
142
69
  private name: string;
143
70
  private color: boolean;
@@ -176,26 +103,6 @@ export class Logger {
176
103
  }
177
104
  }
178
105
 
179
- /**
180
- * One line, ready for a terminal — the console arguments and which method takes them.
181
- *
182
- * Here rather than inside the class because the boot is not the only writer: a destination
183
- * that prints (`@fougere/log`) hands its own record to the same formatting, so the two
184
- * outputs cannot drift.
185
- *
186
- * One console method per level: `debug` and `info` both went to `console.log`, so nothing
187
- * downstream — a terminal filter, a collector — could tell them apart.
188
- */
189
- export interface Rendered {
190
- level: Exclude<LogLevel, 'silent'>;
191
- name: string;
192
- message: string;
193
- /** Absent on most lines: a message usually carries its own detail. */
194
- args?: unknown[] | null;
195
- /** Epoch milliseconds from a logger, a `Date` from an entity that stamped it. */
196
- at: number | Date;
197
- }
198
-
199
106
  export function formatted(
200
107
  record: Rendered,
201
108
  color = supportsColor(),
@@ -0,0 +1,14 @@
1
+ import type { Carry } from './Carry.js';
2
+
3
+ export interface LoggerOptions {
4
+ /** Logger name / prefix. */
5
+ name?: string;
6
+ /**
7
+ * Where its lines go — one boot's, so two apps in a process do not share a facade. A
8
+ * logger without one writes to the console and nowhere else, which is what the boot's
9
+ * first lines do and what an app declaring no destination does forever.
10
+ */
11
+ carry?: Carry;
12
+ /** Force color on/off. Auto-detected by default. */
13
+ color?: boolean;
14
+ }
@@ -0,0 +1,21 @@
1
+ import type { LogLevel } from './LogLevel.js';
2
+
3
+ /**
4
+ * One line, ready for a terminal — the console arguments and which method takes them.
5
+ *
6
+ * Here rather than inside the class because the boot is not the only writer: a destination
7
+ * that prints (`@fougere/log`) hands its own record to the same formatting, so the two
8
+ * outputs cannot drift.
9
+ *
10
+ * One console method per level: `debug` and `info` both went to `console.log`, so nothing
11
+ * downstream — a terminal filter, a collector — could tell them apart.
12
+ */
13
+ export interface Rendered {
14
+ level: Exclude<LogLevel, 'silent'>;
15
+ name: string;
16
+ message: string;
17
+ /** Absent on most lines: a message usually carries its own detail. */
18
+ args?: unknown[] | null;
19
+ /** Epoch milliseconds from a logger, a `Date` from an entity that stamped it. */
20
+ at: number | Date;
21
+ }