@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
@@ -1,8 +1,7 @@
1
- import type { Call } from '../wire/call.js';
1
+ import type { Call } from '../wire/Call.js';
2
2
  import type { RouteAddress } from '../wire/RouteAddress.js';
3
3
  import type { Route } from './Route.js';
4
-
5
- export type RouteExecution = (call: Call) => unknown | Promise<unknown>;
4
+ import type { RouteExecution } from './RouteExecution.js';
6
5
 
7
6
  /** One executable route, distinguished by its routing kind. */
8
7
  export class OperationRoute implements Route {
@@ -0,0 +1 @@
1
+ export type PresenterArgs = Record<string, unknown[]>;
@@ -1,7 +1,7 @@
1
- import { ErrorCode, FougereError } from '../wire/errors.js';
1
+ import { ErrorCode } from '../wire/ErrorCode.js';
2
+ import { FougereError } from '../wire/FougereError.js';
2
3
  import { preserveArrayProperties } from './ArrayResult.js';
3
-
4
- export type PresenterArgs = Record<string, unknown[]>;
4
+ import type { PresenterArgs } from './PresenterArgs.js';
5
5
 
6
6
  /** Adds a presenter's computed fields after output projection. */
7
7
  export class PresenterExecutor {
@@ -1,5 +1,6 @@
1
- import type { Call } from '../wire/call.js';
2
- import type { RouteAddress, RouteKind } from '../wire/RouteAddress.js';
1
+ import type { Call } from '../wire/Call.js';
2
+ import type { RouteAddress } from '../wire/RouteAddress.js';
3
+ import type { RouteKind } from '../wire/RouteKind.js';
3
4
 
4
5
  /** Executable destination known by the dispatcher. */
5
6
  export interface Route {
@@ -0,0 +1,3 @@
1
+ import type { Call } from '../wire/Call.js';
2
+
3
+ export type RouteExecution = (call: Call) => unknown | Promise<unknown>;
@@ -1,4 +1,4 @@
1
- import type { Call } from '../wire/call.js';
1
+ import type { Call } from '../wire/Call.js';
2
2
  import type { Route } from './Route.js';
3
3
 
4
4
  /** Restricts which registered routes one dispatch capability may enter. */
@@ -1,7 +1,9 @@
1
1
  import { FieldSet, FieldValueValidator, InputRefusal, type Fields } from '@fougere/schema';
2
- import { COMPARISONS, comparisonOf, unknownIn } from '../storage/criterion.js';
3
- import { assertListOptions } from '../storage/port.js';
4
- import { ErrorCode, FougereError } from '../wire/errors.js';
2
+ import { COMPARISONS, comparisonOf, unknownIn } from '../storage/Comparison.js';
3
+ import { assertListOptions } from '../storage/Storage.js';
4
+ import { ErrorCode } from '../wire/ErrorCode.js';
5
+ import { FougereError } from '../wire/FougereError.js';
6
+ import type { GuardReport } from './GuardReport.js';
5
7
 
6
8
  /** The gestures this guard grafts onto. */
7
9
  interface Writer {
@@ -12,14 +14,6 @@ interface Writer {
12
14
  list?(...args: unknown[]): unknown;
13
15
  }
14
16
 
15
- /** What a guard says about a filter it let through. The boot owns the voice. */
16
- export interface GuardReport {
17
- /** The fields this door hands back, when it hands back fewer than the entity has. */
18
- view?: Fields;
19
- /** Said once per field — a filter is not a write, and a warning per call is noise. */
20
- outOfView?: (message: string) => void;
21
- }
22
-
23
17
  /** Judges storage writes and list options without narrowing the storage interface. */
24
18
  export class StorageGuard {
25
19
  /** What has already been said, so a filter in a loop says it once. */
@@ -81,7 +75,7 @@ export class StorageGuard {
81
75
  }
82
76
 
83
77
  /**
84
- * The values this write carries, validated and handed on PARSED — the rule the client door
78
+ * The values this write carries, validated and handed on PARSED — the rule the client facade
85
79
  * already holds (`InputValidator`), applied to a write that never passed through it. What a
86
80
  * handler is allowed to write is not asked here: only the value is.
87
81
  */
@@ -92,11 +86,11 @@ export class StorageGuard {
92
86
  }
93
87
 
94
88
  /**
95
- * What a read may ask for. The write door judges what LANDS in a row; this one judges
89
+ * What a read may ask for. The write facade judges what LANDS in a row; this one judges
96
90
  * what a caller says about one — and it was the single entrance to the port with no
97
91
  * judge at all, while `params.filter` from a browser reaches it verbatim.
98
92
  *
99
- * A criterion may name a SET, which is the one thing the write door would refuse: an
93
+ * A criterion may name a SET, which is the one thing the write facade would refuse: an
100
94
  * array is judged member by member, since that is what `IN` binds.
101
95
  */
102
96
  private criteria(where: Record<string, unknown>): Record<string, unknown> {
@@ -110,7 +104,7 @@ export class StorageGuard {
110
104
  continue;
111
105
  }
112
106
  // A comparison names its own vocabulary, and a typo in it would otherwise be a
113
- // criterion that filters nothing — the silent truncation this door exists to stop.
107
+ // criterion that filters nothing — the silent truncation this facade exists to stop.
114
108
  const comparison = comparisonOf(field, asked);
115
109
  if (comparison) {
116
110
  const unknown = unknownIn(comparison);
@@ -148,11 +142,11 @@ export class StorageGuard {
148
142
  }
149
143
 
150
144
  /**
151
- * A filter on a field this door does not hand back.
145
+ * A filter on a field this facade does not hand back.
152
146
  *
153
147
  * `output(schema)` narrows what is RETURNED and has never narrowed what is asked, so a
154
148
  * caller can already sort a hidden column into existence one comparison at a time — and
155
- * the admin door copies a browser's filter here verbatim. Said rather than refused: it
149
+ * the admin facade copies a browser's filter here verbatim. Said rather than refused: it
156
150
  * is legal today, GraphQL batches a relation on a key a view may not carry, and a
157
151
  * refusal would break that on the way to fixing this.
158
152
  */
@@ -161,7 +155,7 @@ export class StorageGuard {
161
155
  if (!view || view[field] || this.said.has(field)) return;
162
156
  this.said.add(field);
163
157
  this.report.outOfView?.(
164
- `${this.entity}.list() filtered on '${field}', which this door does not hand back — `
158
+ `${this.entity}.list() filtered on '${field}', which this facade does not hand back — `
165
159
  + 'a filter on a hidden field answers questions about it one call at a time.',
166
160
  );
167
161
  }
@@ -182,7 +176,7 @@ export class StorageGuard {
182
176
  for (const [key, item] of Object.entries(value as Record<string, unknown>)) {
183
177
  const field = this.fields[key];
184
178
  // A key the entity does not declare has no column to land in and no judge to pass:
185
- // on the client door it is a typo, and on this one it is a mapping that went stale.
179
+ // on the client facade it is a typo, and on this one it is a mapping that went stale.
186
180
  if (!field) {
187
181
  errors.push(`${where}${key}: ${InputRefusal.unknownField}`);
188
182
  continue;
@@ -1,8 +1,8 @@
1
1
  import { computeBindingPlan, type BindingPlan } from '../wire/binding.js';
2
- import type { InvocationContext } from '../wire/Invocation.js';
3
- import type { PresenterEntry } from '../descriptor/frond.js';
2
+ import type { InvocationContext } from '../wire/InvocationContext.js';
3
+ import type { PresenterEntry } from '../descriptor/PresenterEntry.js';
4
4
  import type { ArgumentResolver } from './ArgumentResolver.js';
5
- import type { PresenterArgs } from './PresenterExecutor.js';
5
+ import type { PresenterArgs } from './PresenterArgs.js';
6
6
 
7
7
  /**
8
8
  * Where each computed field's extra arguments come from — read off the declaration, so a
@@ -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
 
@@ -1,6 +1,7 @@
1
1
  import { InputValidator, dotted, type SchemaView } from '@fougere/schema';
2
- import type { InvocationContext } from '../wire/Invocation.js';
3
- import { ErrorCode, FougereError } from '../wire/errors.js';
2
+ import type { InvocationContext } from '../wire/InvocationContext.js';
3
+ import { ErrorCode } from '../wire/ErrorCode.js';
4
+ import { FougereError } from '../wire/FougereError.js';
4
5
 
5
6
  /** Validates and decodes the input declared by one operation contract. */
6
7
  export function validateInput(
@@ -1,5 +1,5 @@
1
- import { Call } from '../wire/call.js';
2
- import type { PartialInvocation } from '../wire/Invocation.js';
1
+ import { Call } from '../wire/Call.js';
2
+
3
3
  import { RouteAddress } from '../wire/RouteAddress.js';
4
4
  import type { DispatchPort } from '../dispatch/DispatchPort.js';
5
5
 
@@ -1,7 +1,7 @@
1
- import { Call } from '../wire/call.js';
1
+ import { Call } from '../wire/Call.js';
2
2
  import { RouteAddress } from '../wire/RouteAddress.js';
3
3
  import type { DispatchPort } from '../dispatch/DispatchPort.js';
4
- import type { Transport } from '../wire/call.js';
4
+ import type { Transport } from '../wire/Transport.js';
5
5
 
6
6
  /** Adapts the historical transport signature to the canonical dispatch port. */
7
7
  export function createTransportEntry(dispatcher: DispatchPort, surface?: string): Transport {
package/src/index.ts CHANGED
@@ -2,19 +2,35 @@
2
2
  export { createApp } from './boot/bootstrap.js';
3
3
  export { orderSeeds, runSeeds, seeding } from './boot/seed.js';
4
4
  export { AppLifecycle, migrating } from './boot/AppLifecycle.js';
5
- export type { Extension } from './boot/AppLifecycle.js';
5
+ export type { Extension } from './boot/Extension.js';
6
6
  export { defineFougere } from './define.js';
7
- export type { FougereConfig, AdapterConfig } from './config-loader.js';
8
- export type { OperationOverride, FrondConfig } from './frond-config.js';
9
- export { buildGraph, clusterEntities, suggestSplit, type EntityNode, type DomainCluster } from './graph.js';
10
- export { Crud } from './prefab/crud.js';
11
- export type { CrudViews, CrudOps, CrudOpName, CrudConstructor } from './prefab/crud.js';
12
- export { Mirror } from './prefab/mirror.js';
13
- export type { Refreshed, MirrorOf, MirrorConstructor } from './prefab/mirror.js';
7
+ export type { AdapterConfig } from './AdapterConfig.js';
8
+ export type { FougereConfig } from './FougereConfig.js';
9
+ export type { AnswerFor } from './AnswerFor.js';
10
+ export type { FougereNames } from './FougereNames.js';
11
+ export type { FougerePorts } from './FougerePorts.js';
12
+ export type { NameOf } from './NameOf.js';
13
+ export type { PortChoice } from './PortChoice.js';
14
+ export type { FrondConfig } from './FrondConfig.js';
15
+ export type { OperationOverride } from './OperationOverride.js';
16
+ export { buildGraph, clusterEntities, suggestSplit, type DomainCluster } from './DomainCluster.js';
17
+ export { type EntityNode } from './EntityNode.js';
18
+ export { Crud } from './prefab/CrudConstructor.js';
19
+ export type { CrudConstructor } from './prefab/CrudConstructor.js';
20
+ export type { CrudOpName } from './prefab/CrudOpName.js';
21
+ export type { CrudOps } from './prefab/CrudOps.js';
22
+ export type { CrudViews } from './prefab/CrudViews.js';
23
+ export { Mirror } from './prefab/MirrorConstructor.js';
24
+ export type { MirrorConstructor } from './prefab/MirrorConstructor.js';
25
+ export type { MirrorOf } from './prefab/MirrorOf.js';
26
+ export type { Refreshed } from './prefab/Refreshed.js';
14
27
  export { Presenter } from './prefab/presenter.js';
15
28
  export type { PresenterViews } from './prefab/presenter.js';
16
29
  export { Collector } from './prefab/collector.js';
17
- export { Repository, type RepositoryOf, type RepositoryConstructor, type AggregateOf, type AggregateConstructor } from './prefab/repository.js';
30
+ export { type AggregateConstructor } from './prefab/AggregateConstructor.js';
31
+ export { type AggregateOf } from './prefab/AggregateOf.js';
32
+ export { Repository, type RepositoryConstructor } from './prefab/RepositoryConstructor.js';
33
+ export { type RepositoryOf } from './prefab/RepositoryOf.js';
18
34
  export { Invocation } from './contract.js';
19
35
  export type { InvocationContext } from './contract.js';
20
36
  export { Call } from './contract.js';
@@ -22,33 +38,51 @@ export { RouteAddress } from './contract.js';
22
38
  export { DispatchLifecycle } from './dispatch/DispatchLifecycle.js';
23
39
  export { Dispatcher } from './dispatch/Dispatcher.js';
24
40
  // The class and not only its type: an observer RECEIVES these, so a package that folds
25
- // them — or a test of one — has to be able to make one through the door.
41
+ // them — or a test of one — has to be able to make one through the facade.
26
42
  export { DispatchEvent } from './dispatch/DispatchEvent.js';
27
43
  export type { CallPage, CallRecord } from './contract.js';
28
44
  export { driftOf, agrees, explain, type CardDrift } from './contract.js';
29
- export type {
30
- OperationContract,
31
- OperationsMap,
32
- Param,
33
- TypeRef,
34
- } from './wire/operation.js';
35
- export { resolveEffectiveOperations } from './effective-operation.js';
36
- export type { EffectiveOperation } from './effective-operation.js';
45
+ export type { OperationContract } from './wire/OperationContract.js';
46
+ export type { OperationsMap } from './wire/OperationsMap.js';
47
+ export type { Param } from './wire/Param.js';
48
+ export type { TypeRef } from './wire/TypeRef.js';
49
+ export { resolveEffectiveOperations } from './EffectiveOperationModel.js';
50
+ export type { EffectiveOperation } from './EffectiveOperation.js';
37
51
  export type { ModuleLoader } from './loader.js';
38
52
  export { FougereError, ErrorCode, validationErrorsOf } from './contract.js';
39
- export type { AppMiddleware, OperationContext, AppNext } from './wire/middleware.js';
53
+ export type { AppMiddleware } from './wire/AppMiddleware.js';
54
+ export type { AppNext } from './wire/AppNext.js';
55
+ export type { OperationContext } from './wire/OperationContext.js';
40
56
  export { assertIdentityCard, RPC_ENTITY, MAX_BODY_BYTES } from './contract.js';
41
57
  export { createLocalRunner, createAppRunner } from './boot/runner.js';
42
58
 
43
59
  // A frond an app STATES, for a boot that will not scan. No disk, no `typescript` — which
44
60
  // is why it sits here and not in `/node`, beside the scanner that reads a project.
45
- export { frond } from './declare.js';
46
- export type { Declared, FrondDeclaration, DeclaredSubject } from './declare.js';
61
+ export { frond } from './FrondDeclaration.js';
62
+ export type { Declared } from './Declared.js';
63
+ export type { DeclaredSubject } from './DeclaredSubject.js';
64
+ export type { FrondDeclaration } from './FrondDeclaration.js';
47
65
  // What this app would answer to `rpc.discover`. Served by the boot, and reached until now
48
66
  // only by tests through a deep path — a consumer comparing its own card to a producer's
49
67
  // had to dispatch a call to ask a question about itself.
50
68
  export { identityCardOf } from './boot/card.js';
51
- export type { Facade } from './wire/call.js';
69
+ // Its dual: what the app declares about its NEIGHBOURS. Read by `rpc.topology`, by
70
+ // `@fougere/calls` and by `fougere graph`, which each held their own half of it.
71
+ export { declaredTopologyOf } from './boot/declared.js';
72
+ // Both halves of what a call can refuse, put together where they are READ — the framework's
73
+ // follows from `kind` and `input`, so only the frond's travels.
74
+ export { refusalsOf, type Refusable } from './wire/refusals.js';
75
+ // The facades as TYPES — empty here, filled by the `.d.ts` the scan writes beside the app.
76
+ export type { Addresses } from './wire/Addresses.js';
77
+ export type { Answer } from './wire/Answer.js';
78
+ export type { AnyHandler } from './wire/AnyHandler.js';
79
+ export type { FacadeName } from './wire/FacadeName.js';
80
+ export type { FougereHandlers } from './wire/FougereHandlers.js';
81
+ export type { FougereOperations } from './wire/FougereOperations.js';
82
+ export type { HandlerOf } from './wire/HandlerOf.js';
83
+ export type { Refused } from './wire/Refused.js';
84
+ export type { Rows } from './wire/Rows.js';
85
+ export type { Facade } from './wire/Facade.js';
52
86
  export type {
53
87
  FrondCall,
54
88
  Transport,
@@ -57,49 +91,65 @@ export type {
57
91
  TopologyReport,
58
92
  FrondPlacement,
59
93
  Edge,
94
+ DeclaredTopology,
95
+ DeclaredFrond,
96
+ DeclaredEdge,
60
97
  } from './contract.js';
61
- export { type Emit, type Fact, type Pipe } from './wire/emit.js';
98
+ export { type Emit } from './wire/Emit.js';
99
+ export { type Fact } from './wire/Fact.js';
100
+ export { type Pipe } from './wire/Pipe.js';
62
101
  export { callValueOf } from './contract.js';
63
102
  export { toHttpError } from './wire/http-error.js';
64
103
  export { toPublicError } from './contract.js';
65
104
  export { loggerMiddleware } from './wire/loggerMiddleware.js';
66
- export { Carry, Logger, setLogLevel, logLevel, envLevel, formatted } from './builtin/logger.js';
67
- export type { LogRecord, Rendered, LogSink } from './builtin/logger.js';
105
+ export { Carry } from './builtin/Carry.js';
106
+ export { Logger, envLevel, formatted, logLevel, setLogLevel } from './builtin/Logger.js';
107
+ export type { LogRecord } from './builtin/LogRecord.js';
108
+ export type { LogSink } from './builtin/LogSink.js';
109
+ export type { Rendered } from './builtin/Rendered.js';
68
110
  // The fact a boot announces. Its destinations are `@fougere/log`'s; the line is core's.
69
111
  export { default as LogLine, CARRIES_LINE, LOG_LINE } from './builtin/LogLine.js';
70
112
  // What a re-read config changes in a running process — and what it cannot.
71
113
  export { applyConfig } from './boot/apply.js';
72
114
  export { Config } from './builtin/config.js';
73
- export type { StorageFactory, ListOptions, ListResult, Together } from './storage/port.js';
115
+ export type { ListOptions } from './storage/ListOptions.js';
116
+ export type { ListResult } from './storage/ListResult.js';
117
+ export type { StorageFactory } from './storage/StorageFactory.js';
118
+ export type { Together } from './storage/Together.js';
74
119
  // A VALUE as well as a type: it is what a wrapper extends, which is the whole of declaring one.
75
- export { Storage, togetherKeyOf } from './storage/port.js';
76
- export type { Constraint, Source, SourceConfig, SourceView } from './source.js';
77
- export { Sources } from './source.js';
78
- export { storageOver } from './storage/store.js';
79
- export type { Store, Values } from './storage/store.js';
80
- export type { App, CreateAppOptions } from './boot/types.js';
81
- export type { ScanResult, ScanDiagnostic } from './scan.js';
82
- export {
83
- type Conventions, type ConventionsInput, DEFAULT_CONVENTIONS,
84
- resolveConventions, frondPackage, frondDirsOf, providerDirsOf,
85
- } from './conventions.js';
86
- export type {
87
- FrondDescriptor,
88
- FrondSource,
89
- ProviderEntry,
90
- EntityEntry,
91
- HandlerEntry,
92
- SeedEntry,
93
- PresenterEntry,
94
- PresenterFieldMeta,
95
- CollectorEntry,
96
- } from './descriptor/frond.js';
97
- export type { AuthConfig, AuthContext, AuthRuntime } from './boot/auth.js';
120
+ export { Storage, togetherKeyOf } from './storage/Storage.js';
121
+ export type { Constraint } from './Constraint.js';
122
+ export type { Source } from './Source.js';
123
+ export type { SourceConfig } from './SourceConfig.js';
124
+ export type { SourceView } from './SourceView.js';
125
+ export { Sources } from './Source.js';
126
+ export { storageOver } from './storage/Store.js';
127
+ export type { Store } from './storage/Store.js';
128
+ export type { Values } from './storage/Values.js';
129
+ export type { App } from './boot/App.js';
130
+ export type { CreateAppOptions } from './boot/CreateAppOptions.js';
131
+ export type { ScanResult } from './scan.js';
132
+ export type { Diagnostic } from './diagnostic.js';
133
+ export { DEFAULT_CONVENTIONS, frondDirsOf, frondPackage, providerDirsOf, resolveConventions, type Conventions } from './Conventions.js';
134
+ export { type ConventionsInput } from './ConventionsInput.js';
135
+ export type { CollectorEntry } from './descriptor/CollectorEntry.js';
136
+ export type { EntityEntry } from './descriptor/EntityEntry.js';
137
+ export type { FrondDescriptor } from './descriptor/FrondDescriptor.js';
138
+ export type { FrondSource } from './descriptor/FrondSource.js';
139
+ export type { HandlerEntry } from './descriptor/HandlerEntry.js';
140
+ export type { PresenterEntry } from './descriptor/PresenterEntry.js';
141
+ export type { PresenterFieldMeta } from './descriptor/PresenterFieldMeta.js';
142
+ export type { ProviderEntry } from './descriptor/ProviderEntry.js';
143
+ export type { SeedEntry } from './descriptor/SeedEntry.js';
144
+ export type { AuthConfig } from './boot/AuthConfig.js';
145
+ export type { AuthContext } from './boot/AuthContext.js';
146
+ export type { AuthRuntime } from './boot/AuthRuntime.js';
98
147
  export { Fronds } from './descriptor/Fronds.js';
99
- export { verify, type Violation } from './verify.js';
148
+ export { verify, type Misplaced } from './verify.js';
100
149
  // Same question as verify(), answered from the source text instead of the model.
101
150
  // Who is calling, established rather than accepted — the proof beside `state`'s claim.
102
151
  // `generateKeyPair` and `issueGrant` are NOT here: they make keys at a deployment and
103
152
  // need `node:crypto` for a gesture WebCrypto has no equal of. They sit on `/node`.
104
- export { signEnvelope, verifyEnvelope, identityFromEnv } from './identity.js';
105
- export type { FrondIdentity, SignedCall } from './identity.js';
153
+ export { signEnvelope, verifyEnvelope, identityFromEnv } from './CallIdentity.js';
154
+ export type { FrondIdentity } from './FrondIdentity.js';
155
+ export type { SignedCall } from './wire/SignedCall.js';
package/src/node.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /** What Fougere does with a filesystem, minus the scan — that is `@fougere/compiler`. */
2
2
  export { setModuleLoader, getModuleLoader } from './loader.js';
3
- export { loadConfig, loadCascadedConfig } from './config-loader.js';
4
- export { defineFrond, loadFrondConfig } from './frond-config.js';
3
+ export { loadConfig, loadCascadedConfig } from './FougereConfig.js';
4
+ export { defineFrond, loadFrondConfig } from './FrondConfig.js';
5
5
 
6
6
  // Making a key and binding a name to it happen once, at a deployment, on a machine with
7
7
  // a filesystem — the CLI speaking. Verifying happens per call, everywhere, and stays on
@@ -0,0 +1,9 @@
1
+ import type { AggregateShape } from './AggregateShape.js';
2
+ import { type EntityConstructor } from '@fougere/schema';
3
+
4
+ export type AggregateConstructor<E extends readonly EntityConstructor[]> =
5
+ (new (...storages: unknown[]) => AggregateShape<E>) & {
6
+ readonly __entity: unknown;
7
+ /** The entities this class owns. Present from two on — an owner of one owns nothing. */
8
+ readonly __owns: E;
9
+ };
@@ -0,0 +1,6 @@
1
+ import { type EntityConstructor } from '@fougere/schema';
2
+ import type { Storage } from '../storage/Storage.js';
3
+
4
+ /** The tuple an aggregate holds — the readable form of {@link AggregateShape}'s member. */
5
+ export type AggregateOf<E extends readonly EntityConstructor[]> =
6
+ { [K in keyof E]: Storage<InstanceType<E[K]>> };
@@ -0,0 +1,7 @@
1
+ import type { Storage } from '../storage/Storage.js';
2
+ import type { EntityConstructor } from '@fougere/schema';
3
+
4
+ /** What an aggregate's subclass sees. */
5
+ export declare abstract class AggregateShape<E extends readonly EntityConstructor[]> {
6
+ protected storages: { [K in keyof E]: Storage<InstanceType<E[K]>> };
7
+ }
@@ -1,7 +1,12 @@
1
1
  import { lowerFirst, type EntityConstructor, type SchemaView } from '@fougere/schema';
2
- import type { Storage, ListOptions, ListResult } from '../storage/port.js';
3
- import type { OperationContract } from '../wire/operation.js';
2
+ import type { ListOptions } from '../storage/ListOptions.js';
3
+ import type { ListResult } from '../storage/ListResult.js';
4
+ import type { Storage } from '../storage/Storage.js';
5
+ import type { OperationContract } from '../wire/OperationContract.js';
4
6
  import { targetOf } from './prefab.js';
7
+ import type { CrudOpName } from './CrudOpName.js';
8
+ import type { CrudViews } from './CrudViews.js';
9
+ import type { CrudOps } from './CrudOps.js';
5
10
 
6
11
  /**
7
12
  * A class is recognized by what it ANSWERS — the mixin leaves no other trace.
@@ -27,16 +32,22 @@ export function subjectOf(ctor: unknown, address: string): string {
27
32
 
28
33
  /** The id of the row an op acts on — a route segment, or a query fallback. */
29
34
  const byId = { name: 'id', source: { kind: 'param' as const, name: 'id' }, optional: false };
35
+
30
36
  const fromBody = { name: 'input', source: { kind: 'input' as const }, optional: false };
31
37
 
32
38
  /** The same five, written as the scan would have written them. */
33
39
  const idParam = { name: 'id', type: { raw: 'string', name: 'string' } };
40
+
34
41
  const inputParam = (entity: string) => ({ name: 'input', type: { raw: `Partial<${entity}>`, name: entity } });
42
+
35
43
  const returns = (raw: string, name: string, extra?: { array?: boolean; nullable?: boolean }) =>
36
44
  ({ raw, name, ...extra });
37
45
 
38
- /** The five ops a Crud handler brings, declared rather than discovered. */
39
- /** `output` says the entity, and saying it costs nothing at runtime. */
46
+ /**
47
+ * The five ops a Crud handler brings, declared rather than discovered.
48
+ *
49
+ * `output` says the entity, and saying it costs nothing at runtime.
50
+ */
40
51
  function crudOps(entity: SchemaView & { partial?: () => SchemaView }): Record<string, OperationContract> {
41
52
  const name = (entity as { name?: string }).name ?? 'Entity';
42
53
  const input = inputParam(name);
@@ -75,12 +86,6 @@ function asCrudConstructor<T, V>(impl: object): CrudConstructor<T, V> {
75
86
  return impl as CrudConstructor<T, V>;
76
87
  }
77
88
 
78
- /** The five ops the mixin fabricates. */
79
- export type CrudOpName = 'list' | 'findById' | 'create' | 'update' | 'delete';
80
-
81
- /** Which view each op speaks — omitted ops speak the entity, the trivial view. */
82
- export type CrudViews = Partial<Record<CrudOpName, EntityConstructor>>;
83
-
84
89
  /** The view an op emits, fabricated. */
85
90
  type OutOf<V, K extends CrudOpName, T> =
86
91
  // Bracketed on purpose: a naked `V extends …` DISTRIBUTES, and the no-view default
@@ -90,16 +95,6 @@ type OutOf<V, K extends CrudOpName, T> =
90
95
  : K extends keyof V ? (V[K] extends EntityConstructor ? InstanceType<V[K]> : T)
91
96
  : T;
92
97
 
93
- /** The five ops, typed from the entity and its views. */
94
- export interface CrudOps<T, V = {}> {
95
- storage: Storage<T>;
96
- list(options?: ListOptions, ...collected: never[]): Promise<ListResult<OutOf<V, 'list', T>>>;
97
- findById(id: string, ...collected: never[]): Promise<OutOf<V, 'findById', T> | undefined>;
98
- create(input: Partial<T>, ...collected: never[]): Promise<OutOf<V, 'create', T>>;
99
- update(id: string, input: Partial<T>, ...collected: never[]): Promise<OutOf<V, 'update', T>>;
100
- delete(id: string, ...collected: never[]): Promise<boolean>;
101
- }
102
-
103
98
  /** The prefab handler class — its ops, plus the statics the bootstrap and adapters read. */
104
99
  export interface CrudConstructor<T, V = {}> {
105
100
  // `Storage<T>`, not the bare `Storage`: a handler that injects a second storage has to
@@ -0,0 +1,2 @@
1
+ /** The five ops the mixin fabricates. */
2
+ export type CrudOpName = 'list' | 'findById' | 'create' | 'update' | 'delete';
@@ -0,0 +1,24 @@
1
+ import type { CrudOpName } from './CrudOpName.js';
2
+ import type { EntityConstructor } from '@fougere/schema';
3
+ import type { ListOptions } from '../storage/ListOptions.js';
4
+ import type { ListResult } from '../storage/ListResult.js';
5
+ import type { Storage } from '../storage/Storage.js';
6
+
7
+ /** The view an op emits, fabricated. */
8
+ type OutOf<V, K extends CrudOpName, T> =
9
+ // Bracketed on purpose: a naked `V extends …` DISTRIBUTES, and the no-view default
10
+ // is the empty map, whose `keyof` is `never` — distribution would then collapse
11
+ // every op's output to `never` instead of falling through to the entity.
12
+ [V] extends [EntityConstructor] ? InstanceType<V & EntityConstructor>
13
+ : K extends keyof V ? (V[K] extends EntityConstructor ? InstanceType<V[K]> : T)
14
+ : T;
15
+
16
+ /** The five ops, typed from the entity and its views. */
17
+ export interface CrudOps<T, V = {}> {
18
+ storage: Storage<T>;
19
+ list(options?: ListOptions, ...collected: never[]): Promise<ListResult<OutOf<V, 'list', T>>>;
20
+ findById(id: string, ...collected: never[]): Promise<OutOf<V, 'findById', T> | undefined>;
21
+ create(input: Partial<T>, ...collected: never[]): Promise<OutOf<V, 'create', T>>;
22
+ update(id: string, input: Partial<T>, ...collected: never[]): Promise<OutOf<V, 'update', T>>;
23
+ delete(id: string, ...collected: never[]): Promise<boolean>;
24
+ }
@@ -0,0 +1,5 @@
1
+ import { type EntityConstructor } from '@fougere/schema';
2
+ import type { CrudOpName } from './CrudOpName.js';
3
+
4
+ /** Which view each op speaks — omitted ops speak the entity, the trivial view. */
5
+ export type CrudViews = Partial<Record<CrudOpName, EntityConstructor>>;
@@ -0,0 +1,35 @@
1
+ import type { EntityConstructor } from '@fougere/schema';
2
+ import type { Storage } from '../storage/Storage.js';
3
+ import type { Refreshed } from './Refreshed.js';
4
+ import type { MirrorOf } from './MirrorOf.js';
5
+
6
+ export interface MirrorConstructor<T> {
7
+ new (storage: Storage<T>): MirrorOf<T>;
8
+ readonly __entity: unknown;
9
+ }
10
+
11
+ export function Mirror<E extends EntityConstructor>(shape: E): MirrorConstructor<InstanceType<E>> {
12
+ type T = InstanceType<E>;
13
+
14
+ abstract class MirrorBase implements MirrorOf<T> {
15
+ static readonly __entity = shape;
16
+
17
+ constructor(public storage: Storage<T>) {}
18
+
19
+ abstract pull(since?: Date): AsyncIterable<Partial<T>[]>;
20
+
21
+ async refresh(since?: Date): Promise<Refreshed> {
22
+ const started = Date.now();
23
+ let written = 0;
24
+ // Preserve the source's page boundaries: one page becomes one upsert.
25
+ for await (const page of this.pull(since)) {
26
+ if (page.length === 0) continue;
27
+ written += await this.storage.upsertAll(page);
28
+ }
29
+
30
+ return { written, since, ms: Date.now() - started };
31
+ }
32
+ }
33
+
34
+ return MirrorBase as unknown as MirrorConstructor<T>;
35
+ }
@@ -0,0 +1,19 @@
1
+ import type { Storage } from '../storage/Storage.js';
2
+ import type { Refreshed } from './Refreshed.js';
3
+
4
+ /**
5
+ * A paginated local copy of a source that cannot be queried directly.
6
+ *
7
+ * Documented: [the base](https://fougere.dev/docs/concepts/the-base).
8
+ */
9
+ export interface MirrorOf<T> {
10
+ /** The copy's own storage — where a page lands. */
11
+ storage: Storage<T>;
12
+ /** Pages of rows to write. The one thing a mirror's author supplies. */
13
+ pull(since?: Date): AsyncIterable<Partial<T>[]>;
14
+ /**
15
+ * Pull from `since` and write every page. The mark is the CALLER's: only it knows
16
+ * whether a pass completed, and a pass that throws must not advance it.
17
+ */
18
+ refresh(since?: Date): Promise<Refreshed>;
19
+ }
@@ -0,0 +1,9 @@
1
+ /** What one refresh did — enough to log it, and to decide whether to run again. */
2
+ export interface Refreshed {
3
+ /** Instances written, counting a replaced one once. */
4
+ written: number;
5
+ /** The age the pull was asked to start from — absent when it asked for everything. */
6
+ since?: Date;
7
+ /** How long the whole pass took, pull included. */
8
+ ms: number;
9
+ }