@fougere/core 0.9.2-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} +26 -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 -17
  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 +29 -0
  176. package/dist/boot/declared.d.ts.map +1 -0
  177. package/dist/boot/declared.js +67 -0
  178. package/dist/boot/declared.js.map +1 -0
  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 -24
  186. package/dist/boot/install.js.map +1 -1
  187. package/dist/boot/ownership.d.ts +8 -4
  188. package/dist/boot/ownership.d.ts.map +1 -1
  189. package/dist/boot/ownership.js +91 -33
  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 +94 -34
  417. package/dist/index.d.ts.map +1 -1
  418. package/dist/index.js +20 -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} +6 -3
  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 -18
  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} +50 -106
  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 -21
  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 +91 -0
  766. package/src/boot/frame.ts +2 -2
  767. package/src/boot/hosted.ts +1 -1
  768. package/src/boot/install.ts +42 -30
  769. package/src/boot/ownership.ts +104 -43
  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 -13
  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 +102 -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} +15 -20
  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 -19
  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 -93
  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 -105
  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 -150
  986. package/src/wire/middleware.ts +0 -43
@@ -0,0 +1,13 @@
1
+ import type { SchemaView } from '@fougere/schema';
2
+
3
+ /** A discovered entity (Entity subclass in entities/ dir). */
4
+ export interface EntityEntry {
5
+ /** Registration key: class name lowercased first char (e.g. 'product'). */
6
+ name: string;
7
+ /** The Entity class (has static getFields()). */
8
+ entityClass: SchemaView;
9
+ /** Absolute file path (for debugging). */
10
+ filePath: string;
11
+ /** Whether this entity is part of the frond's public contract. */
12
+ exposed?: boolean;
13
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * An extension this frond declares — what rises and falls with the process, written beside the
3
+ * code it instruments.
4
+ *
5
+ * It travels with its frond: moved behind `remotes:`, it mounts on the process serving it there,
6
+ * which is why no key widens it. What must be everywhere is a frond that is everywhere, which
7
+ * `Extension.fronds` already answers.
8
+ */
9
+ export interface ExtensionEntry {
10
+ /** Its own `name`, or the file's — the ascent REPLACES a name already declared. */
11
+ name: string;
12
+ /** The value handed to the ascent, the same shape `CreateAppOptions.extensions` takes. */
13
+ extension: { name?: string; up?: (app: never) => void | Promise<void>; down?: (app: never) => void | Promise<void> };
14
+ filePath: string;
15
+ }
@@ -0,0 +1,58 @@
1
+ import type { OperationContract } from '../wire/OperationContract.js';
2
+ import type { ProviderEntry } from './ProviderEntry.js';
3
+ import type { EntityEntry } from './EntityEntry.js';
4
+ import type { HandlerEntry } from './HandlerEntry.js';
5
+ import type { PresenterEntry } from './PresenterEntry.js';
6
+ import type { CollectorEntry } from './CollectorEntry.js';
7
+ import type { MiddlewareEntry } from './MiddlewareEntry.js';
8
+ import type { SeedEntry } from './SeedEntry.js';
9
+ import type { FrondSource } from './FrondSource.js';
10
+ import type { ExtensionEntry } from './ExtensionEntry.js';
11
+
12
+ /**
13
+ * The key a provider answers under. What the source said, and the class's own name only
14
+ * where nobody wrote it down — a statement is read as code, and code can say it.
15
+ */
16
+ export const nameOf = (provider: ProviderEntry): string => provider.name ?? provider.ctor.name;
17
+
18
+ export interface FrondDescriptor {
19
+ name: string;
20
+ source: FrondSource;
21
+ providers: ProviderEntry[];
22
+ entities: EntityEntry[];
23
+ handlers: HandlerEntry[];
24
+ presenters: PresenterEntry[];
25
+ collectors: CollectorEntry[];
26
+ seeds: SeedEntry[];
27
+ middlewares: MiddlewareEntry[];
28
+ /** What this frond mounts on the process that serves it. Absent when it declares none. */
29
+ extensions?: ExtensionEntry[];
30
+ /**
31
+ * Brought by an EXTENSION rather than by the app — `@fougere/calls` keeping its lines,
32
+ * `@fougere/observability` sending them on. It is installed like any other, and it is not
33
+ * what the app SERVES: a report that lists it describes the instrumentation, not the
34
+ * domain. Set by the boot, never by a declaration.
35
+ */
36
+ brought?: true;
37
+ /** The ops that finish a fact, in order — see `FrondConfig.pipes`. */
38
+ pipes?: Record<string, string[]>;
39
+ /**
40
+ * Per-surface entity lists from frond.config.ts (e.g. { graphql: ['Post'], rest: ['Post',
41
+ * 'Author'] }).
42
+ */
43
+ surfaces?: Record<string, string[]>;
44
+ /** Entities this frond may read across sources — see `FrondConfig.reads`. */
45
+ reads?: string[];
46
+ /** Per-operation overrides from frond.config.ts. */
47
+ operationsOverrides?: Record<string, OperationContract & {
48
+ kind?: 'query' | 'command';
49
+ /** Class name to resolve from DI (overrides default `{Entity}Handler` lookup). */
50
+ handlerName?: string;
51
+ /** Method name on the resolved handler (defaults to op name). */
52
+ method?: string;
53
+ /** The GraphQL root field this op answers to — read by `adapter/graphql`. */
54
+ graphql?: string;
55
+ /** Where it answers over REST — read by `adapter/rest`, the dual of `graphql`. */
56
+ rest?: { method?: string; path?: string; status?: number };
57
+ }>;
58
+ }
@@ -0,0 +1,7 @@
1
+ /** Where a frond lives on disk. */
2
+ export interface FrondSource {
3
+ /** Absolute path to the frond directory. */
4
+ path: string;
5
+ /** The @fronds/{name} package name. Always present. */
6
+ package: string;
7
+ }
@@ -1,5 +1,6 @@
1
1
  import type { SchemaView } from '@fougere/schema';
2
- import type { EntityEntry, FrondDescriptor } from './frond.js';
2
+ import type { EntityEntry } from './EntityEntry.js';
3
+ import type { FrondDescriptor } from './FrondDescriptor.js';
3
4
 
4
5
  /** What this app hosts, with the questions everyone was asking it by hand. */
5
6
  export class Fronds extends Array<FrondDescriptor> {
@@ -0,0 +1,27 @@
1
+ import type { SchemaView } from '@fougere/schema';
2
+ import type { OperationsMap } from '../wire/OperationsMap.js';
3
+
4
+ /** A discovered handler (controls what a service exposes). */
5
+ export interface HandlerEntry {
6
+ /** Registration key (e.g. 'postHandler'). */
7
+ name: string;
8
+ /**
9
+ * The name this handler answers to — its class name minus `Handler`, lowercased (`PostHandler` →
10
+ * `post`).
11
+ */
12
+ address: string;
13
+ /** The handler class. */
14
+ ctor: new (...args: never[]) => unknown;
15
+ /** All operations with full signatures for binding. */
16
+ operations: OperationsMap;
17
+ /** Constructor dependency type names (from AST scan). */
18
+ deps: string[];
19
+ /** Absolute file path (for debugging). */
20
+ filePath: string;
21
+ /** Whether this handler is part of the frond's public contract. */
22
+ exposed?: boolean;
23
+ /** Output schema override — when Crud(Entity, Output), restricts storage output. */
24
+ outputOverride?: SchemaView;
25
+ /** Surface name — subdirectory in handlers/ (e.g. 'admin', 'public'). */
26
+ surface?: string;
27
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * A discovered middleware — a class declaring `around(ctx, next)`, which runs before and
3
+ * after every operation in its scope.
4
+ */
5
+ export interface MiddlewareEntry {
6
+ /** Class name — what `frond.config.ts` addresses to widen the scope. */
7
+ name: string;
8
+ /** The middleware class. */
9
+ ctor: new (...args: never[]) => unknown;
10
+ /** How far it reaches: its own frond's entities, or every operation in the process. */
11
+ scope: 'frond' | 'app';
12
+ /** Constructor dependency type names (from AST scan). */
13
+ deps: string[];
14
+ /** Absolute file path (for debugging). */
15
+ filePath: string;
16
+ }
@@ -0,0 +1,23 @@
1
+ import type { PresenterViews } from '../prefab/presenter.js';
2
+ import type { PresenterFieldMeta } from './PresenterFieldMeta.js';
3
+
4
+ /** A discovered presenter (computed fields for an entity's output). */
5
+ export interface PresenterEntry {
6
+ /** Entity name this presenter enriches (e.g. 'post' from PostPresenter). */
7
+ entityName: string;
8
+ /** The presenter class. */
9
+ ctor: new (...args: never[]) => unknown;
10
+ /** Computed field names (method names on prototype). */
11
+ fields: string[];
12
+ /** Per-field type metadata (inferred from source via parser). */
13
+ fieldMeta: PresenterFieldMeta[];
14
+ /**
15
+ * The view each computed field emits, when the presenter declares one (`Presenter(Order, {
16
+ * items: [OrderItemView] })`).
17
+ */
18
+ views?: PresenterViews;
19
+ /** Constructor dependency type names (from AST scan). */
20
+ deps: string[];
21
+ /** Absolute file path (for debugging). */
22
+ filePath: string;
23
+ }
@@ -0,0 +1,14 @@
1
+ import type { Param } from '../wire/Param.js';
2
+
3
+ /** Return type metadata for a presenter computed field. */
4
+ export interface PresenterFieldMeta {
5
+ name: string;
6
+ /** Inferred return type name: 'string', 'number', 'boolean', or a class name. */
7
+ returnType?: string;
8
+ /** The field emits a LIST per row — `tags(posts: Post[]): string[][]`. */
9
+ list?: boolean;
10
+ /** Whether the return is nullable. */
11
+ nullable?: boolean;
12
+ /** The declared parameters AFTER the rows. */
13
+ params?: Param[];
14
+ }
@@ -0,0 +1,18 @@
1
+ /** A discovered provider — a class under `services/` or `repositories/`, injected by type. */
2
+ export interface ProviderEntry {
3
+ /**
4
+ * The container key — the class name as the SOURCE spells it.
5
+ *
6
+ * Read at boot off `ctor.name` for a decade of no consequence, until a bundler lowered
7
+ * a `static readonly` field and renamed the declaration doing it: the provider
8
+ * registered as `_Communes` and the handler asking for `Communes` got a container miss.
9
+ * A name a tool may rewrite is written down, for the same reason `deps` is.
10
+ */
11
+ name?: string;
12
+ /** The class constructor (default export of the file). */
13
+ ctor: new (...args: never[]) => unknown;
14
+ /** Constructor dependency type names (from AST scan). */
15
+ deps: string[];
16
+ /** Absolute file path (for debugging). */
17
+ filePath: string;
18
+ }
@@ -0,0 +1,11 @@
1
+ import type { SeedFactory } from './SeedFactory.js';
2
+
3
+ /** A discovered seed file (array of records or async factory). */
4
+ export interface SeedEntry {
5
+ /** Entity name this seed targets (from filename: Author.seed.ts → 'author'). */
6
+ entityName: string;
7
+ /** Raw default export — array or function. Resolved at runtime. */
8
+ data: Record<string, unknown>[] | SeedFactory;
9
+ /** Absolute file path (for debugging). */
10
+ filePath: string;
11
+ }
@@ -0,0 +1,2 @@
1
+ /** Seed factory — receives a resolver to access handlers cross-frond. */
2
+ export type SeedFactory = (resolve: <T>(name: string) => T) => Promise<Record<string, unknown>[]>;
@@ -0,0 +1,30 @@
1
+ import { type ProviderEntry } from './ProviderEntry.js';
2
+
3
+ /**
4
+ * Port class name → the classes that extend it, in scan order.
5
+ *
6
+ * ONE condition, and the caller owns it: something already answers under that name. The boot
7
+ * asks its container, where the providers sit in the frond's scope and the builtins in its
8
+ * parent — so a neighbour service and `Logger` both count, a framework class being a port like
9
+ * any other, which is what makes a default overridable.
10
+ *
11
+ * It is also what excludes a prefab: a repository extends the class `Repository(Post)`
12
+ * returned (`RepositoryBase`), and no key is ever that name.
13
+ *
14
+ * Read twice, which is why it is stated once: the boot binds against it, and the scan emits
15
+ * the same relation as types so a config cannot name a class that does not answer the port.
16
+ */
17
+ export function basesOf(
18
+ providers: ProviderEntry[],
19
+ answers: (name: string) => boolean,
20
+ ): Map<string, ProviderEntry[]> {
21
+ const bases = new Map<string, ProviderEntry[]>();
22
+ for (const provider of providers) {
23
+ const base = Object.getPrototypeOf(provider.ctor) as { name?: string } | null;
24
+ const port = base?.name;
25
+ if (!port || !answers(port)) continue;
26
+ bases.set(port, [...(bases.get(port) ?? []), provider]);
27
+ }
28
+
29
+ return bases;
30
+ }
@@ -2,14 +2,32 @@
2
2
  * What it takes to PRODUCE a descriptor — the surface a scan reads, whoever wrote it.
3
3
  * The main entry serves what an app RUNS; this one serves what fills it in.
4
4
  */
5
- export * from './frond.js';
5
+ export * from './ProviderEntry.js';
6
+ export * from './EntityEntry.js';
7
+ export * from './HandlerEntry.js';
8
+ export * from './PresenterFieldMeta.js';
9
+ export * from './PresenterEntry.js';
10
+ export * from './CollectorEntry.js';
11
+ export * from './MiddlewareEntry.js';
12
+ export * from './SeedEntry.js';
13
+ export * from './SeedFactory.js';
14
+ export * from './FrondSource.js';
15
+ export * from './ExtensionEntry.js';
16
+ export * from './FrondDescriptor.js';
6
17
  export { Fronds } from './Fronds.js';
7
18
 
8
- export { cardinalityOf, type OperationContract, type OperationsMap, type Param, type TypeRef } from '../wire/operation.js';
19
+ export { cardinalityOf, type OperationContract } from '../wire/OperationContract.js';
20
+ export { type OperationsMap } from '../wire/OperationsMap.js';
21
+ export { type Param } from '../wire/Param.js';
22
+ export { type TypeRef } from '../wire/TypeRef.js';
9
23
  export { computeBindingPlan, type BindingPlan } from '../wire/binding.js';
10
- export type { Signature } from '../wire/signature.js';
11
- export { emitKeyOf, awaitKeyOf } from '../wire/emit.js';
12
- export { storageKeyOf } from '../storage/port.js';
24
+ export type { Signature } from '../wire/Signature.js';
25
+ export { awaitKeyOf, emitKeyOf } from '../wire/Emit.js';
26
+ export { storageKeyOf } from '../storage/Storage.js';
13
27
  export { getPresenterFields } from '../prefab/presenter.js';
14
28
  export { targetOf, viewsOf, outputOf } from '../prefab/prefab.js';
15
- export { ownedBy, repositoryKeyOf } from '../prefab/repository.js';
29
+ export { ownedBy, repositoryKeyOf } from '../prefab/RepositoryConstructor.js';
30
+
31
+ // The surfaces a handler answers on — a directory names one, and so does `frond.config.ts`.
32
+ export { servedSurfaces } from './surface.js';
33
+ export { basesOf } from './bases.js';
@@ -1,8 +1,9 @@
1
- import type { FrondDescriptor, HandlerEntry } from './frond.js';
1
+ import type { FrondDescriptor } from './FrondDescriptor.js';
2
+ import type { HandlerEntry } from './HandlerEntry.js';
2
3
 
3
4
  /**
4
5
  * The surfaces a handler answers on — its own when it has one, otherwise the default
5
- * and every surface that names its address without opening a door of its own.
6
+ * and every surface that names its address without opening a facade of its own.
6
7
  * `undefined` is the default surface, as `facadeKeyOf` and `RouteAddress` spell it.
7
8
  */
8
9
  export function servedSurfaces(
@@ -0,0 +1,41 @@
1
+ /**
2
+ * One thing that does not hold, in the terms of whoever has to fix it — raised by the scan,
3
+ * by a boot rule, or by `fougere check`, which is why it belongs to no phase.
4
+ */
5
+ export interface Diagnostic {
6
+ /**
7
+ * `blocking` — the app now serves less than its source declares, and no caller can know it: a
8
+ * handler that failed to parse contributes zero operations.
9
+ */
10
+ severity: 'blocking' | 'warning';
11
+ /** Stable rule name — `handler-parse-failed`, `directory-unreadable`. */
12
+ code: string;
13
+ /** Where to go and look. */
14
+ filePath: string;
15
+ /** The frond it belongs to, when whoever raised it got far enough to know. */
16
+ frond?: string;
17
+ /**
18
+ * What the diagnostic is ABOUT — `PostHandler.publish` — when the rule holds it as a fact
19
+ * rather than inside its sentence. Two ops of one handler breaking the same rule read as
20
+ * one repeated line without it.
21
+ */
22
+ subject?: string;
23
+ /** What does not hold, and what it costs. One sentence, for a human. */
24
+ message: string;
25
+ /** The underlying failure, kept whole. */
26
+ cause?: unknown;
27
+ }
28
+
29
+ /**
30
+ * Every blocking diagnostic in ONE refusal, so a boot names all of them rather than the
31
+ * first — the shape `fougere check` renders, read back by whoever has to fix it.
32
+ */
33
+ export function refusalOf(diagnostics: readonly Diagnostic[], what: string): Error | undefined {
34
+ const blocking = diagnostics.filter((one) => one.severity === 'blocking');
35
+ if (blocking.length === 0) return undefined;
36
+
37
+ const lines = blocking.map((one) =>
38
+ ` [${one.code}]${one.subject ? ` ${one.subject}` : ''}\n ${one.message}\n ${one.filePath}`);
39
+
40
+ return new Error(`Fougere boot refused: ${blocking.length} ${what}:\n${lines.join('\n')}`);
41
+ }
@@ -1,11 +1,6 @@
1
- import type { InvocationContext } from '../wire/Invocation.js';
1
+ import type { InvocationContext } from '../wire/InvocationContext.js';
2
2
  import type { BindingPlan } from '../wire/binding.js';
3
-
4
- export interface CollectorResolver {
5
- collect(ctx: InvocationContext): Promise<unknown>;
6
- }
7
-
8
- export type CollectorLookup = (typeName: string) => CollectorResolver | undefined;
3
+ import type { CollectorLookup } from './CollectorLookup.js';
9
4
 
10
5
  /** Resolves an operation's declared binding plan against one invocation. */
11
6
  export class ArgumentResolver {
@@ -0,0 +1,3 @@
1
+ import type { CollectorResolver } from './CollectorResolver.js';
2
+
3
+ export type CollectorLookup = (typeName: string) => CollectorResolver | undefined;
@@ -0,0 +1,5 @@
1
+ import type { InvocationContext } from '../wire/InvocationContext.js';
2
+
3
+ export interface CollectorResolver {
4
+ collect(ctx: InvocationContext): Promise<unknown>;
5
+ }
@@ -1,7 +1,6 @@
1
- import type { Call } from '../wire/call.js';
2
- import type { RouteKind } from '../wire/RouteAddress.js';
3
-
4
- export type DispatchStage = 'received' | 'resolved' | 'completed' | 'failed' | 'settled';
1
+ import type { Call } from '../wire/Call.js';
2
+ import type { RouteKind } from '../wire/RouteKind.js';
3
+ import type { DispatchStage } from './DispatchStage.js';
5
4
 
6
5
  /** Immutable transition observed across one dispatch lifecycle. */
7
6
  export class DispatchEvent {
@@ -34,5 +33,3 @@ export class DispatchEvent {
34
33
  return new DispatchEvent('settled', call, routeKind);
35
34
  }
36
35
  }
37
-
38
- export type DispatchObserver = (event: DispatchEvent) => void;
@@ -1,4 +1,5 @@
1
- import type { DispatchEvent, DispatchObserver } from './DispatchEvent.js';
1
+ import type { DispatchEvent } from './DispatchEvent.js';
2
+ import type { DispatchObserver } from './DispatchObserver.js';
2
3
 
3
4
  /** Publishes dispatch transitions without participating in dispatch decisions. */
4
5
  export class DispatchLifecycle {
@@ -0,0 +1,3 @@
1
+ import type { DispatchEvent } from './DispatchEvent.js';
2
+
3
+ export type DispatchObserver = (event: DispatchEvent) => void;
@@ -1,4 +1,4 @@
1
- import type { Call } from '../wire/call.js';
1
+ import type { Call } from '../wire/Call.js';
2
2
 
3
3
  /** The only capability an entry needs. */
4
4
  export interface DispatchPort {
@@ -0,0 +1 @@
1
+ export type DispatchStage = 'received' | 'resolved' | 'completed' | 'failed' | 'settled';
@@ -1,4 +1,4 @@
1
- import type { Call } from '../wire/call.js';
1
+ import type { Call } from '../wire/Call.js';
2
2
  import { DispatchEvent } from './DispatchEvent.js';
3
3
  import { DispatchLifecycle } from './DispatchLifecycle.js';
4
4
  import type { DispatchPort } from './DispatchPort.js';
@@ -0,0 +1,25 @@
1
+ import type { Container } from '@fougere/container';
2
+ import { type AppMiddleware } from '../wire/AppMiddleware.js';
3
+ import type { EffectiveOperationsMap } from '../EffectiveOperationsMap.js';
4
+ import type { HandlerEntry } from '../descriptor/HandlerEntry.js';
5
+ import type { PresenterEntry } from '../descriptor/PresenterEntry.js';
6
+
7
+ /** What boot resolved around one handler, beyond the handler and the scope it resolves in. */
8
+ export interface Facade {
9
+ /** The container key this facade answers under. */
10
+ key: string;
11
+ /** The frond this facade belongs to — travels on every OperationContext. */
12
+ frond: string;
13
+ /** Handlers in the owning frond, used to realize a resolved implementation override. */
14
+ handlers: readonly HandlerEntry[];
15
+ /** The canonical operation table resolved before boot performs any side effect. */
16
+ operations: EffectiveOperationsMap;
17
+ /** Entity names this frond has a collector for. */
18
+ collectors: Set<string>;
19
+ /** The presenter over this handler's entity, when the frond declares one. */
20
+ presenter: PresenterEntry | undefined;
21
+ /** Presenters live in the frond's own scope, whatever sub-scope this facade resolves in. */
22
+ presenterScope: Container;
23
+ /** The middlewares that apply to this address, read at call time and never at boot. */
24
+ middlewares: () => AppMiddleware[];
25
+ }
@@ -0,0 +1,9 @@
1
+ import { type Fields } from '@fougere/schema';
2
+
3
+ /** What a guard says about a filter it let through. The boot owns the voice. */
4
+ export interface GuardReport {
5
+ /** The fields this facade hands back, when it hands back fewer than the entity has. */
6
+ view?: Fields;
7
+ /** Said once per field — a filter is not a write, and a warning per call is noise. */
8
+ outOfView?: (message: string) => void;
9
+ }
@@ -1,51 +1,33 @@
1
1
  import type { Fields } from '@fougere/schema';
2
2
  import type { Container } from '@fougere/container';
3
- import {
4
- runMiddlewares,
5
- type AppMiddleware,
6
- type OperationContext,
7
- } from '../wire/middleware.js';
8
- import type { CollectorResolver } from './ArgumentResolver.js';
3
+ import { runMiddlewares } from '../wire/AppMiddleware.js';
4
+ import { type OperationContext } from '../wire/OperationContext.js';
5
+ import type { CollectorResolver } from './CollectorResolver.js';
9
6
  import { collectorKeyOf } from '../prefab/collector.js';
10
- import { inheritsCrud, subjectOf } from '../prefab/crud.js';
7
+ import { inheritsCrud, subjectOf } from '../prefab/CrudConstructor.js';
11
8
  import { presenterKeyOf } from '../prefab/presenter.js';
12
- import { repositoryKeyOf } from '../prefab/repository.js';
13
- import type { OperationContract, OperationsMap } from '../wire/operation.js';
14
- import type { EffectiveOperation, EffectiveOperationsMap } from '../effective-operation.js';
9
+ import { repositoryKeyOf } from '../prefab/RepositoryConstructor.js';
10
+ import type { OperationContract } from '../wire/OperationContract.js';
11
+ import type { OperationsMap } from '../wire/OperationsMap.js';
12
+ import type { EffectiveOperation } from '../EffectiveOperation.js';
13
+ import type { EffectiveOperationsMap } from '../EffectiveOperationsMap.js';
15
14
  import type { BindingPlan } from '../wire/binding.js';
16
- import { Invocation, type InvocationContext } from '../wire/Invocation.js';
17
- import type { HandlerEntry, PresenterEntry } from '../descriptor/frond.js';
15
+ import { Invocation } from '../wire/Invocation.js';
16
+ import { type InvocationContext } from '../wire/InvocationContext.js';
17
+ import type { HandlerEntry } from '../descriptor/HandlerEntry.js';
18
+ import type { PresenterEntry } from '../descriptor/PresenterEntry.js';
18
19
  import { ArgumentResolver } from './ArgumentResolver.js';
19
20
  import { OutputView } from './OutputView.js';
20
21
  import { PresenterExecutor } from './PresenterExecutor.js';
21
22
  import { presenterArguments, presenterPlans } from './presenterArguments.js';
22
23
  import { validateInput } from './validateInput.js';
24
+ import type { Facade } from './Facade.js';
23
25
 
24
- /** What boot resolved around one handler, beyond the handler and the scope it resolves in. */
25
- export interface Door {
26
- /** The container key this door answers under. */
27
- key: string;
28
- /** The frond this door belongs to — travels on every OperationContext. */
29
- frond: string;
30
- /** Handlers in the owning frond, used to realize a resolved implementation override. */
31
- handlers: readonly HandlerEntry[];
32
- /** The canonical operation table resolved before boot performs any side effect. */
33
- operations: EffectiveOperationsMap;
34
- /** Entity names this frond has a collector for. */
35
- collectors: Set<string>;
36
- /** The presenter over this handler's entity, when the frond declares one. */
37
- presenter: PresenterEntry | undefined;
38
- /** Presenters live in the frond's own scope, whatever sub-scope this door resolves in. */
39
- presenterScope: Container;
40
- /** The middlewares that apply to this address, read at call time and never at boot. */
41
- middlewares: () => AppMiddleware[];
42
- }
43
-
44
- /** Adapts one handler door to executable operations. */
26
+ /** Adapts one handler facade to executable operations. */
45
27
  export class HandlerFacade {
46
28
  /** Rich operation facts shared with check, explain and adapters. */
47
29
  readonly effectiveOperations: EffectiveOperationsMap;
48
- /** Contracts served by this door. */
30
+ /** Contracts served by this facade. */
49
31
  readonly contracts: OperationsMap;
50
32
 
51
33
  private readonly cachedViews = new Map<string, OutputView>();
@@ -61,24 +43,24 @@ export class HandlerFacade {
61
43
  constructor(
62
44
  private readonly handler: HandlerEntry,
63
45
  private readonly scope: Container,
64
- private readonly door: Door,
46
+ private readonly facade: Facade,
65
47
  ) {
66
48
  this.refuseCrudWithoutRepository(handler);
67
49
 
68
- this.presenterPlans = door.presenter
69
- ? presenterPlans(door.presenter, door.collectors)
50
+ this.presenterPlans = facade.presenter
51
+ ? presenterPlans(facade.presenter, facade.collectors)
70
52
  : new Map();
71
53
 
72
54
  scope.register(this.handlerKey, handler.ctor, { deps: this.depsOf(handler) });
73
55
 
74
- this.effectiveOperations = door.operations;
56
+ this.effectiveOperations = facade.operations;
75
57
  this.contracts = new Map(
76
- [...door.operations].map(([name, operation]) => [name, operation as OperationContract] as const),
58
+ [...facade.operations].map(([name, operation]) => [name, operation as OperationContract] as const),
77
59
  );
78
60
  handler.operations = this.contracts;
79
61
 
80
62
  // Register model-selected implementations in the same execution scope.
81
- for (const [name, operation] of door.operations) {
63
+ for (const [name, operation] of facade.operations) {
82
64
  if (this.isBaseImplementation(operation)) continue;
83
65
  const implementation = this.implementationHandler(name);
84
66
  this.refuseCrudWithoutRepository(implementation);
@@ -104,14 +86,14 @@ export class HandlerFacade {
104
86
  const invocation = Invocation.from(input);
105
87
  const context: OperationContext = {
106
88
  entity,
107
- frond: this.door.frond,
89
+ frond: this.facade.frond,
108
90
  operation: op,
109
91
  args: [],
110
92
  state: invocation.state,
111
93
  invocation,
112
94
  };
113
95
 
114
- return runMiddlewares(this.door.middlewares(), context, async () => {
96
+ return runMiddlewares(this.facade.middlewares(), context, async () => {
115
97
  const validated = validateInput(contract.input, invocation, entity, op);
116
98
  context.invocation = validated;
117
99
 
@@ -122,7 +104,7 @@ export class HandlerFacade {
122
104
  const view = this.viewOf(op);
123
105
  const output = view.project(await instance[method](...args));
124
106
 
125
- const { presenter } = this.door;
107
+ const { presenter } = this.facade;
126
108
  return view.closed || !presenter ? output : this.present(op, presenter, output, validated);
127
109
  });
128
110
  }
@@ -136,7 +118,7 @@ export class HandlerFacade {
136
118
  ): Promise<unknown> {
137
119
  const entity = this.handler.address;
138
120
  const executor = new PresenterExecutor(
139
- this.door.presenterScope.resolve(presenterKeyOf(entity)),
121
+ this.facade.presenterScope.resolve(presenterKeyOf(entity)),
140
122
  presenter.fields,
141
123
  entity,
142
124
  op,
@@ -147,7 +129,7 @@ export class HandlerFacade {
147
129
  }
148
130
 
149
131
  private get handlerKey(): string {
150
- return `_handler:${this.door.key}`;
132
+ return `_handler:${this.facade.key}`;
151
133
  }
152
134
 
153
135
  private depsOf(handler: HandlerEntry): string[] {
@@ -206,7 +188,7 @@ export class HandlerFacade {
206
188
  /** The exact handler entry the pure model selected; no name-only retry or fallback. */
207
189
  private implementationHandler(operationName: string): HandlerEntry {
208
190
  const operation = this.effectiveOperations.get(operationName)!;
209
- const matches = this.door.handlers.filter((handler) =>
191
+ const matches = this.facade.handlers.filter((handler) =>
210
192
  handler.ctor.name === operation.implementation.className
211
193
  && handler.address === operation.implementation.address
212
194
  && handler.filePath === operation.implementation.filePath);
@@ -1,4 +1,5 @@
1
- import { FougereError, ErrorCode } from '../wire/errors.js';
1
+ import { ErrorCode } from '../wire/ErrorCode.js';
2
+ import { FougereError } from '../wire/FougereError.js';
2
3
 
3
4
  /** Controls dispatch admission and signals when every accepted call has settled. */
4
5
  export class InFlight {
@@ -1,5 +1,6 @@
1
- import type { Call } from '../wire/call.js';
2
- import { ErrorCode, FougereError } from '../wire/errors.js';
1
+ import type { Call } from '../wire/Call.js';
2
+ import { ErrorCode } from '../wire/ErrorCode.js';
3
+ import { FougereError } from '../wire/FougereError.js';
3
4
  import type { Route } from './Route.js';
4
5
  import type { RoutePolicy } from './RoutePolicy.js';
5
6
  import { routeNotFound, servedOperations } from './routeNotFound.js';