@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
package/src/contract.ts CHANGED
@@ -3,38 +3,57 @@
3
3
  * runtime: the error vocabulary, the invocation shape, the call value, the naming convention.
4
4
  */
5
5
  import { lowerFirst } from '@fougere/schema';
6
- import { Invocation, type InvocationContext } from './wire/Invocation.js';
7
- import type { FrondCall } from './wire/call.js';
6
+ import { Invocation } from './wire/Invocation.js';
7
+ import { type InvocationContext } from './wire/InvocationContext.js';
8
+ import type { FrondCall } from './wire/FrondCall.js';
8
9
 
9
- export { FougereError, ErrorCode, validationErrorsOf } from './wire/errors.js';
10
+ export { ErrorCode } from './wire/ErrorCode.js';
11
+ export { FougereError, validationErrorsOf } from './wire/FougereError.js';
10
12
  // What a read may ask about one field. Here rather than on the main entry because an
11
13
  // adapter reads it to compile a query, and an adapter carries no boot.
12
- export { comparisonOf, comparisonsIn } from './storage/criterion.js';
13
- export type { Comparison } from './storage/criterion.js';
14
+ export { comparisonOf, comparisonsIn } from './storage/Comparison.js';
15
+ export type { Comparison } from './storage/Comparison.js';
14
16
  // A receiver turns a refusal into what may cross a process boundary, and it is not
15
17
  // core's boot — reaching it through the main entry dragged the scanner into a bundle.
16
18
  export { toPublicError } from './wire/http-error.js';
17
19
  export { Invocation } from './wire/Invocation.js';
18
- export type { InvocationContext } from './wire/Invocation.js';
19
- export { Call } from './wire/call.js';
20
+ export type { InvocationContext } from './wire/InvocationContext.js';
21
+ export { Call } from './wire/Call.js';
20
22
  export { RouteAddress } from './wire/RouteAddress.js';
21
- export type { FrondCall, Transport, SignedCall } from './wire/call.js';
22
- export { MAX_BODY_BYTES } from './wire/call.js';
23
+ export type { FrondCall } from './wire/FrondCall.js';
24
+ export type { SignedCall } from './wire/SignedCall.js';
25
+ export type { Transport } from './wire/Transport.js';
26
+ export { MAX_BODY_BYTES } from './wire/SignedCall.js';
23
27
  // The reserved entity, VALUE and not type: a consumer that wants to leave it alone — a
24
28
  // call log ignoring its own reader — has to be able to name it.
25
- export { RPC_ENTITY } from './wire/call.js';
26
- export type { CallPage, CallRecord } from './wire/CallLog.js';
29
+ export { RPC_ENTITY } from './wire/RpcAnswer.js';
30
+ export type { CallPage } from './wire/CallPage.js';
31
+ export type { CallRecord } from './wire/CallRecord.js';
27
32
  // The comparison of two cards, which a consumer runs about a producer — browser-safe on
28
33
  // purpose: a panel showing the drift holds only the two cards, never the app.
29
34
  export { driftOf, agrees, explain } from './wire/drift.js';
30
35
  export type { CardDrift } from './wire/drift.js';
31
36
 
32
37
  /** What `rpc.discover` answers. */
33
- export type {
34
- IdentityCard, CardOp, TopologyReport, FrondPlacement, Edge,
35
- DeclaredTopology, DeclaredFrond, DeclaredEdge,
36
- } from './wire/call.js';
37
- export { assertIdentityCard } from './wire/call.js';
38
+ export { refusalsOf, type Refusable } from './wire/refusals.js';
39
+ export type { Addresses } from './wire/Addresses.js';
40
+ export type { Answer } from './wire/Answer.js';
41
+ export type { AnyHandler } from './wire/AnyHandler.js';
42
+ export type { FacadeName } from './wire/FacadeName.js';
43
+ export type { FougereHandlers } from './wire/FougereHandlers.js';
44
+ export type { FougereOperations } from './wire/FougereOperations.js';
45
+ export type { HandlerOf } from './wire/HandlerOf.js';
46
+ export type { Refused } from './wire/Refused.js';
47
+ export type { Rows } from './wire/Rows.js';
48
+ export type { CardOp } from './wire/card/CardOp.js';
49
+ export type { IdentityCard } from './wire/card/IdentityCard.js';
50
+ export type { DeclaredEdge } from './wire/topology/DeclaredEdge.js';
51
+ export type { DeclaredFrond } from './wire/topology/DeclaredFrond.js';
52
+ export type { DeclaredTopology } from './wire/topology/DeclaredTopology.js';
53
+ export type { Edge } from './wire/topology/Edge.js';
54
+ export type { FrondPlacement } from './wire/topology/FrondPlacement.js';
55
+ export type { TopologyReport } from './wire/topology/TopologyReport.js';
56
+ export { assertIdentityCard } from './wire/card/IdentityCard.js';
38
57
 
39
58
  /** The key a class name is filed under — 'Post' → 'post'. */
40
59
  export { lowerFirst } from '@fougere/schema';
@@ -0,0 +1,12 @@
1
+ import type { Signer } from './Signer.js';
2
+ import type { Verifier } from './Verifier.js';
3
+ import type { PublicJwk } from './PublicJwk.js';
4
+
5
+ export interface CryptoPort {
6
+ /** SHA-256. What binds an input to an envelope without carrying the input. */
7
+ sha256(data: Uint8Array): Promise<Uint8Array>;
8
+ /** From a PKCS#8 PEM — what `fougere keys` writes. */
9
+ signerOf(privateKeyPem: string): Promise<Signer>;
10
+ /** From an SPKI PEM (the root's) or a JWK (the one a grant embeds). */
11
+ verifierOf(key: string | PublicJwk): Promise<Verifier>;
12
+ }
@@ -0,0 +1,7 @@
1
+ /** A public key as a grant carries it — `{ kty: 'OKP', crv: 'Ed25519', x }`. */
2
+ export interface PublicJwk {
3
+ kty: string;
4
+ crv?: string;
5
+ x?: string;
6
+ [key: string]: unknown;
7
+ }
@@ -0,0 +1,4 @@
1
+ /** A parsed private key. */
2
+ export interface Signer {
3
+ sign(data: Uint8Array): Promise<Uint8Array>;
4
+ }
@@ -0,0 +1,5 @@
1
+ /** A parsed public key. */
2
+ export interface Verifier {
3
+ /** False, never a throw: a bad signature is an answer, not a failure. */
4
+ verify(data: Uint8Array, signature: Uint8Array): Promise<boolean>;
5
+ }
@@ -1,6 +1,9 @@
1
1
  /** Ed25519 through `node:crypto` — the default realization, and the fast one. */
2
2
  import { createHash, createPrivateKey, createPublicKey, sign, verify } from 'node:crypto';
3
- import type { CryptoPort, PublicJwk, Signer, Verifier } from './port.js';
3
+ import type { CryptoPort } from './CryptoPort.js';
4
+ import type { PublicJwk } from './PublicJwk.js';
5
+ import type { Signer } from './Signer.js';
6
+ import type { Verifier } from './Verifier.js';
4
7
 
5
8
  export const crypto: CryptoPort = {
6
9
  async sha256(data) {
@@ -1,6 +1,9 @@
1
1
  /** Ed25519 through WebCrypto — what a runtime with no `node:` builtin has. */
2
2
  import { derOf } from './encoding.js';
3
- import type { CryptoPort, PublicJwk, Signer, Verifier } from './port.js';
3
+ import type { CryptoPort } from './CryptoPort.js';
4
+ import type { PublicJwk } from './PublicJwk.js';
5
+ import type { Signer } from './Signer.js';
6
+ import type { Verifier } from './Verifier.js';
4
7
 
5
8
  interface WebSubtle {
6
9
  digest(algorithm: string, data: Uint8Array): Promise<ArrayBuffer>;
package/src/define.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { FougereConfig } from './config-loader.js';
1
+ import type { FougereConfig } from './FougereConfig.js';
2
2
 
3
3
  /**
4
4
  * Identity helper for fougere.config.ts — preserves literal types for autocomplete while
@@ -0,0 +1,11 @@
1
+ /** A discovered collector (resolves handler input params from invocation context). */
2
+ export interface CollectorEntry {
3
+ /** Registration key of the TYPE this collector resolves — 'user', 'ability'. */
4
+ typeName: string;
5
+ /** The collector class. */
6
+ ctor: new (...args: never[]) => unknown;
7
+ /** Constructor dependency type names (from AST scan). */
8
+ deps: string[];
9
+ /** Absolute file path (for debugging). */
10
+ filePath: string;
11
+ }
@@ -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
+ }