@ddd-ts-kit/di 0.0.0-stage → 0.1.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 (446) hide show
  1. package/README.md +1075 -2
  2. package/dist/application/application-options.d.ts +19 -0
  3. package/dist/application/application-options.d.ts.map +1 -0
  4. package/dist/application/application-options.js +2 -0
  5. package/dist/application/application-options.js.map +1 -0
  6. package/dist/application/application.d.ts +22 -0
  7. package/dist/application/application.d.ts.map +1 -0
  8. package/dist/application/application.js +2 -0
  9. package/dist/application/application.js.map +1 -0
  10. package/dist/application/assemble.d.ts +6 -0
  11. package/dist/application/assemble.d.ts.map +1 -0
  12. package/dist/application/assemble.js +16 -0
  13. package/dist/application/assemble.js.map +1 -0
  14. package/dist/application/binding-info.d.ts +10 -0
  15. package/dist/application/binding-info.d.ts.map +1 -0
  16. package/dist/application/binding-info.js +2 -0
  17. package/dist/application/binding-info.js.map +1 -0
  18. package/dist/application/bound-ports.d.ts +8 -0
  19. package/dist/application/bound-ports.d.ts.map +1 -0
  20. package/dist/application/bound-ports.js +2 -0
  21. package/dist/application/bound-ports.js.map +1 -0
  22. package/dist/application/consumer-subscriptions.d.ts +21 -0
  23. package/dist/application/consumer-subscriptions.d.ts.map +1 -0
  24. package/dist/application/consumer-subscriptions.js +59 -0
  25. package/dist/application/consumer-subscriptions.js.map +1 -0
  26. package/dist/application/container-application.d.ts +44 -0
  27. package/dist/application/container-application.d.ts.map +1 -0
  28. package/dist/application/container-application.js +224 -0
  29. package/dist/application/container-application.js.map +1 -0
  30. package/dist/application/create-application.d.ts +10 -0
  31. package/dist/application/create-application.d.ts.map +1 -0
  32. package/dist/application/create-application.js +12 -0
  33. package/dist/application/create-application.js.map +1 -0
  34. package/dist/application/decorate.d.ts +8 -0
  35. package/dist/application/decorate.d.ts.map +1 -0
  36. package/dist/application/decorate.js +2 -0
  37. package/dist/application/decorate.js.map +1 -0
  38. package/dist/application/delegating-applications.d.ts +7 -0
  39. package/dist/application/delegating-applications.d.ts.map +1 -0
  40. package/dist/application/delegating-applications.js +6 -0
  41. package/dist/application/delegating-applications.js.map +1 -0
  42. package/dist/application/failures-of.d.ts +3 -0
  43. package/dist/application/failures-of.d.ts.map +1 -0
  44. package/dist/application/failures-of.js +13 -0
  45. package/dist/application/failures-of.js.map +1 -0
  46. package/dist/application/is-handler-registry.d.ts +9 -0
  47. package/dist/application/is-handler-registry.d.ts.map +1 -0
  48. package/dist/application/is-handler-registry.js +5 -0
  49. package/dist/application/is-handler-registry.js.map +1 -0
  50. package/dist/application/job-lifecycle.d.ts +16 -0
  51. package/dist/application/job-lifecycle.d.ts.map +1 -0
  52. package/dist/application/job-lifecycle.js +48 -0
  53. package/dist/application/job-lifecycle.js.map +1 -0
  54. package/dist/application/override-for-tests.d.ts +8 -0
  55. package/dist/application/override-for-tests.d.ts.map +1 -0
  56. package/dist/application/override-for-tests.js +14 -0
  57. package/dist/application/override-for-tests.js.map +1 -0
  58. package/dist/application/override.d.ts +5 -0
  59. package/dist/application/override.d.ts.map +1 -0
  60. package/dist/application/override.js +5 -0
  61. package/dist/application/override.js.map +1 -0
  62. package/dist/application/with-binding-aspects.d.ts +8 -0
  63. package/dist/application/with-binding-aspects.d.ts.map +1 -0
  64. package/dist/application/with-binding-aspects.js +26 -0
  65. package/dist/application/with-binding-aspects.js.map +1 -0
  66. package/dist/authorization/assert-authorization-declared.d.ts +5 -0
  67. package/dist/authorization/assert-authorization-declared.d.ts.map +1 -0
  68. package/dist/authorization/assert-authorization-declared.js +28 -0
  69. package/dist/authorization/assert-authorization-declared.js.map +1 -0
  70. package/dist/authorization/authorization-mode.d.ts +3 -0
  71. package/dist/authorization/authorization-mode.d.ts.map +1 -0
  72. package/dist/authorization/authorization-mode.js +2 -0
  73. package/dist/authorization/authorization-mode.js.map +1 -0
  74. package/dist/authorization/declarations-of.d.ts +4 -0
  75. package/dist/authorization/declarations-of.d.ts.map +1 -0
  76. package/dist/authorization/declarations-of.js +4 -0
  77. package/dist/authorization/declarations-of.js.map +1 -0
  78. package/dist/authorization/declared-policies.d.ts +10 -0
  79. package/dist/authorization/declared-policies.d.ts.map +1 -0
  80. package/dist/authorization/declared-policies.js +8 -0
  81. package/dist/authorization/declared-policies.js.map +1 -0
  82. package/dist/authorization/declared-requirement.d.ts +5 -0
  83. package/dist/authorization/declared-requirement.d.ts.map +1 -0
  84. package/dist/authorization/declared-requirement.js +16 -0
  85. package/dist/authorization/declared-requirement.js.map +1 -0
  86. package/dist/authorization/pass-every-message.d.ts +3 -0
  87. package/dist/authorization/pass-every-message.d.ts.map +1 -0
  88. package/dist/authorization/pass-every-message.js +2 -0
  89. package/dist/authorization/pass-every-message.js.map +1 -0
  90. package/dist/authorization/protected-requirement.d.ts +6 -0
  91. package/dist/authorization/protected-requirement.d.ts.map +1 -0
  92. package/dist/authorization/protected-requirement.js +9 -0
  93. package/dist/authorization/protected-requirement.js.map +1 -0
  94. package/dist/authorization/requirement-options.d.ts +8 -0
  95. package/dist/authorization/requirement-options.d.ts.map +1 -0
  96. package/dist/authorization/requirement-options.js +2 -0
  97. package/dist/authorization/requirement-options.js.map +1 -0
  98. package/dist/authorization/requirement.d.ts +5 -0
  99. package/dist/authorization/requirement.d.ts.map +1 -0
  100. package/dist/authorization/requirement.js +2 -0
  101. package/dist/authorization/requirement.js.map +1 -0
  102. package/dist/authorization/use-case-access.d.ts +2 -0
  103. package/dist/authorization/use-case-access.d.ts.map +1 -0
  104. package/dist/authorization/use-case-access.js +2 -0
  105. package/dist/authorization/use-case-access.js.map +1 -0
  106. package/dist/authorization/use-case-declaration.d.ts +14 -0
  107. package/dist/authorization/use-case-declaration.d.ts.map +1 -0
  108. package/dist/authorization/use-case-declaration.js +2 -0
  109. package/dist/authorization/use-case-declaration.js.map +1 -0
  110. package/dist/authorization/use-case-declarations.d.ts +7 -0
  111. package/dist/authorization/use-case-declarations.d.ts.map +1 -0
  112. package/dist/authorization/use-case-declarations.js +5 -0
  113. package/dist/authorization/use-case-declarations.js.map +1 -0
  114. package/dist/authorization/use-case-guard-middleware.d.ts +5 -0
  115. package/dist/authorization/use-case-guard-middleware.d.ts.map +1 -0
  116. package/dist/authorization/use-case-guard-middleware.js +6 -0
  117. package/dist/authorization/use-case-guard-middleware.js.map +1 -0
  118. package/dist/authorization/use-case-guard.d.ts +10 -0
  119. package/dist/authorization/use-case-guard.d.ts.map +1 -0
  120. package/dist/authorization/use-case-guard.js +8 -0
  121. package/dist/authorization/use-case-guard.js.map +1 -0
  122. package/dist/checks/assert-sound.d.ts +5 -0
  123. package/dist/checks/assert-sound.d.ts.map +1 -0
  124. package/dist/checks/assert-sound.js +74 -0
  125. package/dist/checks/assert-sound.js.map +1 -0
  126. package/dist/checks/cycle-error.d.ts +4 -0
  127. package/dist/checks/cycle-error.d.ts.map +1 -0
  128. package/dist/checks/cycle-error.js +6 -0
  129. package/dist/checks/cycle-error.js.map +1 -0
  130. package/dist/consumer/consumer-options.d.ts +14 -0
  131. package/dist/consumer/consumer-options.d.ts.map +1 -0
  132. package/dist/consumer/consumer-options.js +2 -0
  133. package/dist/consumer/consumer-options.js.map +1 -0
  134. package/dist/consumer/consumer-runtime.d.ts +9 -0
  135. package/dist/consumer/consumer-runtime.d.ts.map +1 -0
  136. package/dist/consumer/consumer-runtime.js +2 -0
  137. package/dist/consumer/consumer-runtime.js.map +1 -0
  138. package/dist/consumer/observed-projection.d.ts +19 -0
  139. package/dist/consumer/observed-projection.d.ts.map +1 -0
  140. package/dist/consumer/observed-projection.js +44 -0
  141. package/dist/consumer/observed-projection.js.map +1 -0
  142. package/dist/consumer/receive.d.ts +21 -0
  143. package/dist/consumer/receive.d.ts.map +1 -0
  144. package/dist/consumer/receive.js +40 -0
  145. package/dist/consumer/receive.js.map +1 -0
  146. package/dist/consumer/unreadable-event-error.d.ts +9 -0
  147. package/dist/consumer/unreadable-event-error.d.ts.map +1 -0
  148. package/dist/consumer/unreadable-event-error.js +15 -0
  149. package/dist/consumer/unreadable-event-error.js.map +1 -0
  150. package/dist/declared/apply-through.d.ts +3 -0
  151. package/dist/declared/apply-through.d.ts.map +1 -0
  152. package/dist/declared/apply-through.js +11 -0
  153. package/dist/declared/apply-through.js.map +1 -0
  154. package/dist/declared/consumption-of.d.ts +15 -0
  155. package/dist/declared/consumption-of.d.ts.map +1 -0
  156. package/dist/declared/consumption-of.js +15 -0
  157. package/dist/declared/consumption-of.js.map +1 -0
  158. package/dist/declared/context-module.d.ts +10 -0
  159. package/dist/declared/context-module.d.ts.map +1 -0
  160. package/dist/declared/context-module.js +16 -0
  161. package/dist/declared/context-module.js.map +1 -0
  162. package/dist/declared/declared-source.d.ts +7 -0
  163. package/dist/declared/declared-source.d.ts.map +1 -0
  164. package/dist/declared/declared-source.js +2 -0
  165. package/dist/declared/declared-source.js.map +1 -0
  166. package/dist/declared/discovered-files.d.ts +6 -0
  167. package/dist/declared/discovered-files.d.ts.map +1 -0
  168. package/dist/declared/discovered-files.js +10 -0
  169. package/dist/declared/discovered-files.js.map +1 -0
  170. package/dist/declared/include-declared.d.ts +10 -0
  171. package/dist/declared/include-declared.d.ts.map +1 -0
  172. package/dist/declared/include-declared.js +173 -0
  173. package/dist/declared/include-declared.js.map +1 -0
  174. package/dist/declared/projection-of.d.ts +24 -0
  175. package/dist/declared/projection-of.d.ts.map +1 -0
  176. package/dist/declared/projection-of.js +73 -0
  177. package/dist/declared/projection-of.js.map +1 -0
  178. package/dist/description/describe-wiring.d.ts +6 -0
  179. package/dist/description/describe-wiring.d.ts.map +1 -0
  180. package/dist/description/describe-wiring.js +77 -0
  181. package/dist/description/describe-wiring.js.map +1 -0
  182. package/dist/description/wiring-description.d.ts +98 -0
  183. package/dist/description/wiring-description.d.ts.map +1 -0
  184. package/dist/description/wiring-description.js +2 -0
  185. package/dist/description/wiring-description.js.map +1 -0
  186. package/dist/discovery/discover-context.d.ts +27 -0
  187. package/dist/discovery/discover-context.d.ts.map +1 -0
  188. package/dist/discovery/discover-context.js +69 -0
  189. package/dist/discovery/discover-context.js.map +1 -0
  190. package/dist/discovery/role-files-of.d.ts +16 -0
  191. package/dist/discovery/role-files-of.d.ts.map +1 -0
  192. package/dist/discovery/role-files-of.js +63 -0
  193. package/dist/discovery/role-files-of.js.map +1 -0
  194. package/dist/discovery/role-rule.d.ts +10 -0
  195. package/dist/discovery/role-rule.d.ts.map +1 -0
  196. package/dist/discovery/role-rule.js +23 -0
  197. package/dist/discovery/role-rule.js.map +1 -0
  198. package/dist/discovery.d.ts +2 -0
  199. package/dist/discovery.d.ts.map +1 -0
  200. package/dist/discovery.js +2 -0
  201. package/dist/discovery.js.map +1 -0
  202. package/dist/errors/wiring-error.d.ts +7 -0
  203. package/dist/errors/wiring-error.d.ts.map +1 -0
  204. package/dist/errors/wiring-error.js +10 -0
  205. package/dist/errors/wiring-error.js.map +1 -0
  206. package/dist/index.d.ts +52 -0
  207. package/dist/index.d.ts.map +1 -0
  208. package/dist/index.js +20 -0
  209. package/dist/index.js.map +1 -0
  210. package/dist/jobs/definition-of.d.ts +7 -0
  211. package/dist/jobs/definition-of.d.ts.map +1 -0
  212. package/dist/jobs/definition-of.js +11 -0
  213. package/dist/jobs/definition-of.js.map +1 -0
  214. package/dist/jobs/effective-job.d.ts +7 -0
  215. package/dist/jobs/effective-job.d.ts.map +1 -0
  216. package/dist/jobs/effective-job.js +2 -0
  217. package/dist/jobs/effective-job.js.map +1 -0
  218. package/dist/jobs/effective-jobs.d.ts +6 -0
  219. package/dist/jobs/effective-jobs.d.ts.map +1 -0
  220. package/dist/jobs/effective-jobs.js +33 -0
  221. package/dist/jobs/effective-jobs.js.map +1 -0
  222. package/dist/jobs/jobs-options.d.ts +16 -0
  223. package/dist/jobs/jobs-options.d.ts.map +1 -0
  224. package/dist/jobs/jobs-options.js +2 -0
  225. package/dist/jobs/jobs-options.js.map +1 -0
  226. package/dist/jobs/readable.d.ts +3 -0
  227. package/dist/jobs/readable.d.ts.map +1 -0
  228. package/dist/jobs/readable.js +15 -0
  229. package/dist/jobs/readable.js.map +1 -0
  230. package/dist/jobs/written-job.d.ts +11 -0
  231. package/dist/jobs/written-job.d.ts.map +1 -0
  232. package/dist/jobs/written-job.js +8 -0
  233. package/dist/jobs/written-job.js.map +1 -0
  234. package/dist/kernel/guarded-query-bus.d.ts +5 -0
  235. package/dist/kernel/guarded-query-bus.d.ts.map +1 -0
  236. package/dist/kernel/guarded-query-bus.js +9 -0
  237. package/dist/kernel/guarded-query-bus.js.map +1 -0
  238. package/dist/kernel/instrumentation.d.ts +37 -0
  239. package/dist/kernel/instrumentation.d.ts.map +1 -0
  240. package/dist/kernel/instrumentation.js +9 -0
  241. package/dist/kernel/instrumentation.js.map +1 -0
  242. package/dist/kernel/kernel-module-options.d.ts +57 -0
  243. package/dist/kernel/kernel-module-options.d.ts.map +1 -0
  244. package/dist/kernel/kernel-module-options.js +2 -0
  245. package/dist/kernel/kernel-module-options.js.map +1 -0
  246. package/dist/kernel/kernel-module.d.ts +14 -0
  247. package/dist/kernel/kernel-module.d.ts.map +1 -0
  248. package/dist/kernel/kernel-module.js +133 -0
  249. package/dist/kernel/kernel-module.js.map +1 -0
  250. package/dist/kernel/kernel-ports.d.ts +4 -0
  251. package/dist/kernel/kernel-ports.d.ts.map +1 -0
  252. package/dist/kernel/kernel-ports.js +25 -0
  253. package/dist/kernel/kernel-ports.js.map +1 -0
  254. package/dist/kernel/lazy-error-reporter.d.ts +8 -0
  255. package/dist/kernel/lazy-error-reporter.d.ts.map +1 -0
  256. package/dist/kernel/lazy-error-reporter.js +14 -0
  257. package/dist/kernel/lazy-error-reporter.js.map +1 -0
  258. package/dist/kernel/provided.d.ts +4 -0
  259. package/dist/kernel/provided.d.ts.map +1 -0
  260. package/dist/kernel/provided.js +2 -0
  261. package/dist/kernel/provided.js.map +1 -0
  262. package/dist/kernel/reported-failures.d.ts +5 -0
  263. package/dist/kernel/reported-failures.d.ts.map +1 -0
  264. package/dist/kernel/reported-failures.js +9 -0
  265. package/dist/kernel/reported-failures.js.map +1 -0
  266. package/dist/kernel/transactional-command-bus.d.ts +10 -0
  267. package/dist/kernel/transactional-command-bus.d.ts.map +1 -0
  268. package/dist/kernel/transactional-command-bus.js +17 -0
  269. package/dist/kernel/transactional-command-bus.js.map +1 -0
  270. package/dist/module/binding-options-of.d.ts +5 -0
  271. package/dist/module/binding-options-of.d.ts.map +1 -0
  272. package/dist/module/binding-options-of.js +23 -0
  273. package/dist/module/binding-options-of.js.map +1 -0
  274. package/dist/module/binding-options.d.ts +8 -0
  275. package/dist/module/binding-options.d.ts.map +1 -0
  276. package/dist/module/binding-options.js +2 -0
  277. package/dist/module/binding-options.js.map +1 -0
  278. package/dist/module/binding-target.d.ts +15 -0
  279. package/dist/module/binding-target.d.ts.map +1 -0
  280. package/dist/module/binding-target.js +2 -0
  281. package/dist/module/binding-target.js.map +1 -0
  282. package/dist/module/collect-wiring.d.ts +5 -0
  283. package/dist/module/collect-wiring.d.ts.map +1 -0
  284. package/dist/module/collect-wiring.js +13 -0
  285. package/dist/module/collect-wiring.js.map +1 -0
  286. package/dist/module/context-module.d.ts +10 -0
  287. package/dist/module/context-module.d.ts.map +1 -0
  288. package/dist/module/context-module.js +2 -0
  289. package/dist/module/context-module.js.map +1 -0
  290. package/dist/module/define-context-module.d.ts +4 -0
  291. package/dist/module/define-context-module.d.ts.map +1 -0
  292. package/dist/module/define-context-module.js +5 -0
  293. package/dist/module/define-context-module.js.map +1 -0
  294. package/dist/module/factory-made-handlers.d.ts +6 -0
  295. package/dist/module/factory-made-handlers.d.ts.map +1 -0
  296. package/dist/module/factory-made-handlers.js +24 -0
  297. package/dist/module/factory-made-handlers.js.map +1 -0
  298. package/dist/module/handler-target.d.ts +11 -0
  299. package/dist/module/handler-target.d.ts.map +1 -0
  300. package/dist/module/handler-target.js +2 -0
  301. package/dist/module/handler-target.js.map +1 -0
  302. package/dist/module/module-builder.d.ts +50 -0
  303. package/dist/module/module-builder.d.ts.map +1 -0
  304. package/dist/module/module-builder.js +2 -0
  305. package/dist/module/module-builder.js.map +1 -0
  306. package/dist/module/module-context.d.ts +5 -0
  307. package/dist/module/module-context.d.ts.map +1 -0
  308. package/dist/module/module-context.js +2 -0
  309. package/dist/module/module-context.js.map +1 -0
  310. package/dist/module/module-recorder.d.ts +31 -0
  311. package/dist/module/module-recorder.d.ts.map +1 -0
  312. package/dist/module/module-recorder.js +133 -0
  313. package/dist/module/module-recorder.js.map +1 -0
  314. package/dist/module/protected-use-case-target.d.ts +14 -0
  315. package/dist/module/protected-use-case-target.d.ts.map +1 -0
  316. package/dist/module/protected-use-case-target.js +2 -0
  317. package/dist/module/protected-use-case-target.js.map +1 -0
  318. package/dist/module/use-case-target.d.ts +8 -0
  319. package/dist/module/use-case-target.d.ts.map +1 -0
  320. package/dist/module/use-case-target.js +2 -0
  321. package/dist/module/use-case-target.js.map +1 -0
  322. package/dist/module/value-binding-options.d.ts +13 -0
  323. package/dist/module/value-binding-options.d.ts.map +1 -0
  324. package/dist/module/value-binding-options.js +2 -0
  325. package/dist/module/value-binding-options.js.map +1 -0
  326. package/dist/testing/create-test-application.d.ts +12 -0
  327. package/dist/testing/create-test-application.d.ts.map +1 -0
  328. package/dist/testing/create-test-application.js +89 -0
  329. package/dist/testing/create-test-application.js.map +1 -0
  330. package/dist/testing/create-test-kernel.d.ts +6 -0
  331. package/dist/testing/create-test-kernel.d.ts.map +1 -0
  332. package/dist/testing/create-test-kernel.js +65 -0
  333. package/dist/testing/create-test-kernel.js.map +1 -0
  334. package/dist/testing/fake.d.ts +5 -0
  335. package/dist/testing/fake.d.ts.map +1 -0
  336. package/dist/testing/fake.js +6 -0
  337. package/dist/testing/fake.js.map +1 -0
  338. package/dist/testing/test-application-of.d.ts +10 -0
  339. package/dist/testing/test-application-of.d.ts.map +1 -0
  340. package/dist/testing/test-application-of.js +49 -0
  341. package/dist/testing/test-application-of.js.map +1 -0
  342. package/dist/testing/test-application-options.d.ts +35 -0
  343. package/dist/testing/test-application-options.d.ts.map +1 -0
  344. package/dist/testing/test-application-options.js +2 -0
  345. package/dist/testing/test-application-options.js.map +1 -0
  346. package/dist/testing/test-application.d.ts +15 -0
  347. package/dist/testing/test-application.d.ts.map +1 -0
  348. package/dist/testing/test-application.js +2 -0
  349. package/dist/testing/test-application.js.map +1 -0
  350. package/dist/testing/test-jobs.d.ts +16 -0
  351. package/dist/testing/test-jobs.d.ts.map +1 -0
  352. package/dist/testing/test-jobs.js +2 -0
  353. package/dist/testing/test-jobs.js.map +1 -0
  354. package/dist/testing/test-kernel.d.ts +39 -0
  355. package/dist/testing/test-kernel.d.ts.map +1 -0
  356. package/dist/testing/test-kernel.js +2 -0
  357. package/dist/testing/test-kernel.js.map +1 -0
  358. package/dist/token/same-token.d.ts +3 -0
  359. package/dist/token/same-token.d.ts.map +1 -0
  360. package/dist/token/same-token.js +5 -0
  361. package/dist/token/same-token.js.map +1 -0
  362. package/dist/token/token-map.d.ts +14 -0
  363. package/dist/token/token-map.d.ts.map +1 -0
  364. package/dist/token/token-map.js +24 -0
  365. package/dist/token/token-map.js.map +1 -0
  366. package/dist/token/token-set.d.ts +9 -0
  367. package/dist/token/token-set.d.ts.map +1 -0
  368. package/dist/token/token-set.js +19 -0
  369. package/dist/token/token-set.js.map +1 -0
  370. package/dist/wiring/any-message-handler.d.ts +5 -0
  371. package/dist/wiring/any-message-handler.d.ts.map +1 -0
  372. package/dist/wiring/any-message-handler.js +2 -0
  373. package/dist/wiring/any-message-handler.js.map +1 -0
  374. package/dist/wiring/assert-port.d.ts +4 -0
  375. package/dist/wiring/assert-port.d.ts.map +1 -0
  376. package/dist/wiring/assert-port.js +10 -0
  377. package/dist/wiring/assert-port.js.map +1 -0
  378. package/dist/wiring/binding-source.d.ts +2 -0
  379. package/dist/wiring/binding-source.d.ts.map +1 -0
  380. package/dist/wiring/binding-source.js +2 -0
  381. package/dist/wiring/binding-source.js.map +1 -0
  382. package/dist/wiring/binding.d.ts +22 -0
  383. package/dist/wiring/binding.d.ts.map +1 -0
  384. package/dist/wiring/binding.js +2 -0
  385. package/dist/wiring/binding.js.map +1 -0
  386. package/dist/wiring/declarer.d.ts +6 -0
  387. package/dist/wiring/declarer.d.ts.map +1 -0
  388. package/dist/wiring/declarer.js +2 -0
  389. package/dist/wiring/declarer.js.map +1 -0
  390. package/dist/wiring/domain-event-handling.d.ts +20 -0
  391. package/dist/wiring/domain-event-handling.d.ts.map +1 -0
  392. package/dist/wiring/domain-event-handling.js +2 -0
  393. package/dist/wiring/domain-event-handling.js.map +1 -0
  394. package/dist/wiring/event-consumption.d.ts +17 -0
  395. package/dist/wiring/event-consumption.d.ts.map +1 -0
  396. package/dist/wiring/event-consumption.js +2 -0
  397. package/dist/wiring/event-consumption.js.map +1 -0
  398. package/dist/wiring/job-registration.d.ts +14 -0
  399. package/dist/wiring/job-registration.d.ts.map +1 -0
  400. package/dist/wiring/job-registration.js +2 -0
  401. package/dist/wiring/job-registration.js.map +1 -0
  402. package/dist/wiring/kind-aspect.d.ts +11 -0
  403. package/dist/wiring/kind-aspect.d.ts.map +1 -0
  404. package/dist/wiring/kind-aspect.js +2 -0
  405. package/dist/wiring/kind-aspect.js.map +1 -0
  406. package/dist/wiring/lifetime.d.ts +2 -0
  407. package/dist/wiring/lifetime.d.ts.map +1 -0
  408. package/dist/wiring/lifetime.js +2 -0
  409. package/dist/wiring/lifetime.js.map +1 -0
  410. package/dist/wiring/message-handling.d.ts +15 -0
  411. package/dist/wiring/message-handling.d.ts.map +1 -0
  412. package/dist/wiring/message-handling.js +2 -0
  413. package/dist/wiring/message-handling.js.map +1 -0
  414. package/dist/wiring/natural-kind.d.ts +9 -0
  415. package/dist/wiring/natural-kind.d.ts.map +1 -0
  416. package/dist/wiring/natural-kind.js +11 -0
  417. package/dist/wiring/natural-kind.js.map +1 -0
  418. package/dist/wiring/policy-binding.d.ts +11 -0
  419. package/dist/wiring/policy-binding.d.ts.map +1 -0
  420. package/dist/wiring/policy-binding.js +2 -0
  421. package/dist/wiring/policy-binding.js.map +1 -0
  422. package/dist/wiring/projection-registration.d.ts +22 -0
  423. package/dist/wiring/projection-registration.d.ts.map +1 -0
  424. package/dist/wiring/projection-registration.js +2 -0
  425. package/dist/wiring/projection-registration.js.map +1 -0
  426. package/dist/wiring/recipe.d.ts +9 -0
  427. package/dist/wiring/recipe.d.ts.map +1 -0
  428. package/dist/wiring/recipe.js +15 -0
  429. package/dist/wiring/recipe.js.map +1 -0
  430. package/dist/wiring/resolve.d.ts +3 -0
  431. package/dist/wiring/resolve.d.ts.map +1 -0
  432. package/dist/wiring/resolve.js +2 -0
  433. package/dist/wiring/resolve.js.map +1 -0
  434. package/dist/wiring/where-of.d.ts +9 -0
  435. package/dist/wiring/where-of.d.ts.map +1 -0
  436. package/dist/wiring/where-of.js +9 -0
  437. package/dist/wiring/where-of.js.map +1 -0
  438. package/dist/wiring/wiring-draft.d.ts +31 -0
  439. package/dist/wiring/wiring-draft.d.ts.map +1 -0
  440. package/dist/wiring/wiring-draft.js +83 -0
  441. package/dist/wiring/wiring-draft.js.map +1 -0
  442. package/dist/wiring/wiring.d.ts +23 -0
  443. package/dist/wiring/wiring.d.ts.map +1 -0
  444. package/dist/wiring/wiring.js +2 -0
  445. package/dist/wiring/wiring.js.map +1 -0
  446. package/package.json +42 -4
@@ -0,0 +1,13 @@
1
+ /** Runs every attempt, whatever the previous ones did, and answers what they threw. */
2
+ export function failuresOf(attempts) {
3
+ return attempts.flatMap((attempt) => {
4
+ try {
5
+ attempt();
6
+ return [];
7
+ }
8
+ catch (error) {
9
+ return [error];
10
+ }
11
+ });
12
+ }
13
+ //# sourceMappingURL=failures-of.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failures-of.js","sourceRoot":"","sources":["../../src/application/failures-of.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,MAAM,UAAU,UAAU,CAAC,QAAiC;IAC1D,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,OAAO,EAAE,CAAC;YAEV,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { HandlerRegistration, Message, MessageType } from '@ddd-ts-kit/kernel';
2
+ import type { AnyMessageHandler } from '../wiring/any-message-handler.js';
3
+ interface HandlerRegistry {
4
+ register(type: MessageType<Message>, handler: AnyMessageHandler, registration?: HandlerRegistration): unknown;
5
+ }
6
+ /** A bus the declared handlers can be attached to: the in-process ones, not a remote transport. */
7
+ export declare function isHandlerRegistry(bus: unknown): bus is HandlerRegistry;
8
+ export {};
9
+ //# sourceMappingURL=is-handler-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-handler-registry.d.ts","sourceRoot":"","sources":["../../src/application/is-handler-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,UAAU,eAAe;IACvB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC;CAC/G;AAED,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,eAAe,CAEtE"}
@@ -0,0 +1,5 @@
1
+ /** A bus the declared handlers can be attached to: the in-process ones, not a remote transport. */
2
+ export function isHandlerRegistry(bus) {
3
+ return typeof bus === 'object' && bus !== null && 'register' in bus && typeof bus.register === 'function';
4
+ }
5
+ //# sourceMappingURL=is-handler-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-handler-registry.js","sourceRoot":"","sources":["../../src/application/is-handler-registry.ts"],"names":[],"mappings":"AAOA,mGAAmG;AACnG,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,UAAU,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,UAAU,CAAC;AAC5G,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { EffectiveJob } from '../jobs/effective-job.js';
2
+ import type { BoundPorts } from './bound-ports.js';
3
+ /** The declared jobs on the job scheduler: registered at creation, run by time while the application runs. */
4
+ export declare class JobLifecycle {
5
+ readonly jobs: readonly EffectiveJob[];
6
+ private readonly ports;
7
+ private readonly runsByTime;
8
+ private started;
9
+ constructor(jobs: readonly EffectiveJob[], ports: BoundPorts, runsByTime: boolean);
10
+ /** Leaves the scheduler alone, unbuilt, in an application without job. */
11
+ register(): void;
12
+ start(): Promise<void>;
13
+ /** Answers what failed, for the application to go on stopping the rest. */
14
+ stop(): Promise<unknown[]>;
15
+ }
16
+ //# sourceMappingURL=job-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job-lifecycle.d.ts","sourceRoot":"","sources":["../../src/application/job-lifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,8GAA8G;AAC9G,qBAAa,YAAY;IAIrB,QAAQ,CAAC,IAAI,EAAE,SAAS,YAAY,EAAE;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAL7B,OAAO,CAAC,OAAO,CAAS;IAExB,YACW,IAAI,EAAE,SAAS,YAAY,EAAE,EACrB,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,OAAO,EAClC;IAEJ,0EAA0E;IAC1E,QAAQ,IAAI,IAAI,CAWf;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAO3B;IAED,2EAA2E;IACrE,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAc/B;CACF"}
@@ -0,0 +1,48 @@
1
+ import { JobScheduler } from '@ddd-ts-kit/kernel';
2
+ import { definitionOf } from '../jobs/definition-of.js';
3
+ import { Instrumentation } from '../kernel/instrumentation.js';
4
+ /** The declared jobs on the job scheduler: registered at creation, run by time while the application runs. */
5
+ export class JobLifecycle {
6
+ jobs;
7
+ ports;
8
+ runsByTime;
9
+ started = false;
10
+ constructor(jobs, ports, runsByTime) {
11
+ this.jobs = jobs;
12
+ this.ports = ports;
13
+ this.runsByTime = runsByTime;
14
+ }
15
+ /** Leaves the scheduler alone, unbuilt, in an application without job. */
16
+ register() {
17
+ if (this.jobs.length === 0) {
18
+ return;
19
+ }
20
+ const scheduler = this.ports.resolve(JobScheduler);
21
+ const instrument = this.ports.isBound(Instrumentation) ? this.ports.resolve(Instrumentation).job : undefined;
22
+ for (const job of this.jobs) {
23
+ scheduler.register(definitionOf(job, this.ports.resolve, instrument));
24
+ }
25
+ }
26
+ async start() {
27
+ if (!this.runsByTime || this.jobs.length === 0 || this.started) {
28
+ return;
29
+ }
30
+ this.started = true;
31
+ await this.ports.resolve(JobScheduler).start();
32
+ }
33
+ /** Answers what failed, for the application to go on stopping the rest. */
34
+ async stop() {
35
+ if (!this.started) {
36
+ return [];
37
+ }
38
+ this.started = false;
39
+ try {
40
+ await this.ports.resolve(JobScheduler).stop();
41
+ return [];
42
+ }
43
+ catch (error) {
44
+ return [error];
45
+ }
46
+ }
47
+ }
48
+ //# sourceMappingURL=job-lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job-lifecycle.js","sourceRoot":"","sources":["../../src/application/job-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,8GAA8G;AAC9G,MAAM,OAAO,YAAY;IAIZ,IAAI;IACI,KAAK;IACL,UAAU;IALrB,OAAO,GAAG,KAAK,CAAC;IAExB,YACW,IAA6B,EACrB,KAAiB,EACjB,UAAmB;oBAF3B,IAAI;qBACI,KAAK;0BACL,UAAU;IAC1B,CAAC;IAEJ,0EAA0E;IAC1E,QAAQ;QACN,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QAE7G,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;IACjD,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;YAE9C,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import type { Token } from '@ddd-ts-kit/kernel/declarations';
2
+ import type { Application } from './application.js';
3
+ /**
4
+ * Swaps a binding for a fake after the application was created. Call it before the
5
+ * first `resolve`: a singleton already built keeps the dependency it was given.
6
+ */
7
+ export declare function overrideForTests<T>(application: Application, target: Token<T>, value: T): void;
8
+ //# sourceMappingURL=override-for-tests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"override-for-tests.d.ts","sourceRoot":"","sources":["../../src/application/override-for-tests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAQ9F"}
@@ -0,0 +1,14 @@
1
+ import { ContainerApplication } from './container-application.js';
2
+ import { delegatingApplications } from './delegating-applications.js';
3
+ /**
4
+ * Swaps a binding for a fake after the application was created. Call it before the
5
+ * first `resolve`: a singleton already built keeps the dependency it was given.
6
+ */
7
+ export function overrideForTests(application, target, value) {
8
+ const made = delegatingApplications.get(application) ?? application;
9
+ if (!(made instanceof ContainerApplication)) {
10
+ throw new TypeError('Not an application made by createApplication.');
11
+ }
12
+ made.replace(target, value);
13
+ }
14
+ //# sourceMappingURL=override-for-tests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"override-for-tests.js","sourceRoot":"","sources":["../../src/application/override-for-tests.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAI,WAAwB,EAAE,MAAgB,EAAE,KAAQ;IACtF,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC;IAEpE,IAAI,CAAC,CAAC,IAAI,YAAY,oBAAoB,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Token } from '@ddd-ts-kit/kernel/declarations';
2
+ export type Override = readonly [token: Token<unknown>, value: unknown];
3
+ /** A type-checked override pair for `createApplication({ overrides })`: `override(Clock, new FixedClock())`. */
4
+ export declare function override<T>(target: Token<T>, value: T): Override;
5
+ //# sourceMappingURL=override.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"override.d.ts","sourceRoot":"","sources":["../../src/application/override.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAE7D,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAExE,gHAAgH;AAChH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,QAAQ,CAEhE"}
@@ -0,0 +1,5 @@
1
+ /** A type-checked override pair for `createApplication({ overrides })`: `override(Clock, new FixedClock())`. */
2
+ export function override(target, value) {
3
+ return [target, value];
4
+ }
5
+ //# sourceMappingURL=override.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"override.js","sourceRoot":"","sources":["../../src/application/override.ts"],"names":[],"mappings":"AAIA,gHAAgH;AAChH,MAAM,UAAU,QAAQ,CAAI,MAAgB,EAAE,KAAQ;IACpD,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACzB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type BindingAspect } from '@ddd-ts-kit/kernel/declarations';
2
+ import type { Binding } from '../wiring/binding.js';
3
+ /**
4
+ * The instance inside the aspects of its binding, then inside the ones the modules put around
5
+ * its kind: of each list, the first aspect is outermost.
6
+ */
7
+ export declare function withBindingAspects(instance: unknown, binding: Binding, aroundKind: readonly BindingAspect[]): unknown;
8
+ //# sourceMappingURL=with-binding-aspects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"with-binding-aspects.d.ts","sourceRoot":"","sources":["../../src/application/with-binding-aspects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,aAAa,EAA0B,MAAM,iCAAiC,CAAC;AAC5G,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,aAAa,EAAE,GAAG,OAAO,CAerH"}
@@ -0,0 +1,26 @@
1
+ import { describeToken } from '@ddd-ts-kit/kernel/declarations';
2
+ /**
3
+ * The instance inside the aspects of its binding, then inside the ones the modules put around
4
+ * its kind: of each list, the first aspect is outermost.
5
+ */
6
+ export function withBindingAspects(instance, binding, aroundKind) {
7
+ const aspects = [...aroundKind, ...binding.aspects];
8
+ if (aspects.length === 0 || typeof instance !== 'object' || instance === null) {
9
+ return instance;
10
+ }
11
+ const info = {
12
+ className: binding.implementation ?? constructorNameOf(instance),
13
+ context: binding.module,
14
+ token: describeToken(binding.token),
15
+ ...(binding.kind === undefined ? {} : { kind: binding.kind }),
16
+ };
17
+ return aspects.reduceRight((wrapped, aspect) => aspect(wrapped, info), instance);
18
+ }
19
+ function constructorNameOf(instance) {
20
+ const prototype = Object.getPrototypeOf(instance);
21
+ const constructor = typeof prototype === 'object' && prototype !== null && 'constructor' in prototype
22
+ ? prototype.constructor
23
+ : undefined;
24
+ return typeof constructor === 'function' ? constructor.name : 'Object';
25
+ }
26
+ //# sourceMappingURL=with-binding-aspects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"with-binding-aspects.js","sourceRoot":"","sources":["../../src/application/with-binding-aspects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA8C,MAAM,iCAAiC,CAAC;AAG5G;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAiB,EAAE,OAAgB,EAAE,UAAoC;IAC1G,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC9E,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAsB;QAC9B,SAAS,EAAE,OAAO,CAAC,cAAc,IAAI,iBAAiB,CAAC,QAAQ,CAAC;QAChE,OAAO,EAAE,OAAO,CAAC,MAAM;QACvB,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC;QACnC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;KAC9D,CAAC;IAEF,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,SAAS,GAAY,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE3D,MAAM,WAAW,GACf,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,IAAI,aAAa,IAAI,SAAS;QAC/E,CAAC,CAAC,SAAS,CAAC,WAAW;QACvB,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,OAAO,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AACzE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { TokenSet } from '../token/token-set.js';
2
+ import type { Wiring } from '../wiring/wiring.js';
3
+ /** Deny by default at wiring time: no use case becomes reachable because nobody said who may reach it. */
4
+ export declare function assertAuthorizationDeclared(wiring: Wiring, overridden: TokenSet): void;
5
+ //# sourceMappingURL=assert-authorization-declared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert-authorization-declared.d.ts","sourceRoot":"","sources":["../../src/authorization/assert-authorization-declared.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,0GAA0G;AAC1G,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,GAAG,IAAI,CAoBtF"}
@@ -0,0 +1,28 @@
1
+ import { describeToken } from '@ddd-ts-kit/kernel/declarations';
2
+ import { WiringError } from '../errors/wiring-error.js';
3
+ import { whereOf } from '../wiring/where-of.js';
4
+ import { UseCaseGuard } from './use-case-guard.js';
5
+ /** Deny by default at wiring time: no use case becomes reachable because nobody said who may reach it. */
6
+ export function assertAuthorizationDeclared(wiring, overridden) {
7
+ const undeclared = wiring.handlings.filter((handling) => handling.requirement.access === undefined);
8
+ if (undeclared.length > 0) {
9
+ const names = undeclared.map(({ kind, message, ...where }) => `the ${kind} "${message.name}" (${whereOf(where)})`);
10
+ throw new WiringError('UNDECLARED_AUTHORIZATION', `Authorization is required and ${names.join(', ')} declare${undeclared.length === 1 ? 's' : ''} no access. ${remedyFor(undeclared)}`);
11
+ }
12
+ if (wiring.bindings.has(UseCaseGuard) || overridden.has(UseCaseGuard)) {
13
+ return;
14
+ }
15
+ throw new WiringError('AUTHORIZATION_NOT_ENFORCED', `Authorization is required but no module binds "${describeToken(UseCaseGuard)}": the declared permissions would never be checked. Add an authorization module to the modules.`);
16
+ }
17
+ function remedyFor(undeclared) {
18
+ const remedies = [
19
+ ...(undeclared.some(({ declaredBy }) => declaredBy === undefined)
20
+ ? ['Write .requires(permission) or .public() before handledBy.']
21
+ : []),
22
+ ...(undeclared.some(({ declaredBy }) => declaredBy !== undefined)
23
+ ? ['Decorate the message class with @Requires(permission) or @Public().']
24
+ : []),
25
+ ];
26
+ return remedies.join(' ');
27
+ }
28
+ //# sourceMappingURL=assert-authorization-declared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert-authorization-declared.js","sourceRoot":"","sources":["../../src/authorization/assert-authorization-declared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,0GAA0G;AAC1G,MAAM,UAAU,2BAA2B,CAAC,MAAc,EAAE,UAAoB;IAC9E,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAEpG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEnH,MAAM,IAAI,WAAW,CACnB,0BAA0B,EAC1B,iCAAiC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,eAAe,SAAS,CAAC,UAAU,CAAC,EAAE,CACrI,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QACtE,OAAO;IACT,CAAC;IAED,MAAM,IAAI,WAAW,CACnB,4BAA4B,EAC5B,kDAAkD,aAAa,CAAC,YAAY,CAAC,iGAAiG,CAC/K,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,UAAsC;IACvD,MAAM,QAAQ,GAAG;QACf,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC;YAC/D,CAAC,CAAC,CAAC,4DAA4D,CAAC;YAChE,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC;YAC/D,CAAC,CAAC,CAAC,qEAAqE,CAAC;YACzE,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** `required` refuses, when the application is created, a use case that declares no access. */
2
+ export type AuthorizationMode = 'optional' | 'required';
3
+ //# sourceMappingURL=authorization-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorization-mode.d.ts","sourceRoot":"","sources":["../../src/authorization/authorization-mode.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=authorization-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorization-mode.js","sourceRoot":"","sources":["../../src/authorization/authorization-mode.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { Wiring } from '../wiring/wiring.js';
2
+ import type { UseCaseDeclaration } from './use-case-declaration.js';
3
+ export declare function declarationsOf(wiring: Wiring): readonly UseCaseDeclaration[];
4
+ //# sourceMappingURL=declarations-of.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declarations-of.d.ts","sourceRoot":"","sources":["../../src/authorization/declarations-of.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,kBAAkB,EAAE,CAE5E"}
@@ -0,0 +1,4 @@
1
+ export function declarationsOf(wiring) {
2
+ return wiring.handlings.map(({ kind, message, module, requirement }) => ({ kind, message, module, ...requirement }));
3
+ }
4
+ //# sourceMappingURL=declarations-of.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declarations-of.js","sourceRoot":"","sources":["../../src/authorization/declarations-of.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC;AACvH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { PolicyBinding } from '../wiring/policy-binding.js';
2
+ /**
3
+ * The policy classes the contexts declared with `@Policy`, each resolved by its class. An
4
+ * authorization module evaluates them next to the policies it was given.
5
+ */
6
+ export declare abstract class DeclaredPolicies {
7
+ static readonly tokenKey = "di.DeclaredPolicies";
8
+ abstract readonly list: readonly PolicyBinding[];
9
+ }
10
+ //# sourceMappingURL=declared-policies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declared-policies.d.ts","sourceRoot":"","sources":["../../src/authorization/declared-policies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE;;;GAGG;AACH,8BAAsB,gBAAgB;IACpC,MAAM,CAAC,QAAQ,CAAC,QAAQ,yBAAyB;IAEjD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,aAAa,EAAE,CAAC;CAClD"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The policy classes the contexts declared with `@Policy`, each resolved by its class. An
3
+ * authorization module evaluates them next to the policies it was given.
4
+ */
5
+ export class DeclaredPolicies {
6
+ static tokenKey = 'di.DeclaredPolicies';
7
+ }
8
+ //# sourceMappingURL=declared-policies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declared-policies.js","sourceRoot":"","sources":["../../src/authorization/declared-policies.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAgB,gBAAgB;IACpC,MAAM,CAAU,QAAQ,GAAG,qBAAqB,CAAC;CAGlD"}
@@ -0,0 +1,5 @@
1
+ import type { Message, MessageType } from '@ddd-ts-kit/kernel';
2
+ import type { Requirement } from './requirement.js';
3
+ /** What the message says of itself with `@Requires` or `@Public`; nothing for an undecorated one. */
4
+ export declare function declaredRequirement(type: MessageType<Message>): Requirement;
5
+ //# sourceMappingURL=declared-requirement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declared-requirement.d.ts","sourceRoot":"","sources":["../../src/authorization/declared-requirement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,qGAAqG;AACrG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,WAAW,CAe3E"}
@@ -0,0 +1,16 @@
1
+ import { declarationOf } from '@ddd-ts-kit/kernel/declarations';
2
+ /** What the message says of itself with `@Requires` or `@Public`; nothing for an undecorated one. */
3
+ export function declaredRequirement(type) {
4
+ const declaration = declarationOf(type);
5
+ if (declaration?.role !== 'message') {
6
+ return {};
7
+ }
8
+ const { access, permission, resourceOf, contextOf } = declaration;
9
+ return {
10
+ access,
11
+ ...(permission === undefined ? {} : { permission }),
12
+ ...(resourceOf === undefined ? {} : { resourceOf }),
13
+ ...(contextOf === undefined ? {} : { contextOf }),
14
+ };
15
+ }
16
+ //# sourceMappingURL=declared-requirement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declared-requirement.js","sourceRoot":"","sources":["../../src/authorization/declared-requirement.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE,qGAAqG;AACrG,MAAM,UAAU,mBAAmB,CAAC,IAA0B;IAC5D,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAExC,IAAI,WAAW,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;IAElE,OAAO;QACL,MAAM;QACN,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;QACnD,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;QACnD,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;KAClD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { UseCaseGuard } from './use-case-guard.js';
2
+ export declare const passEveryMessage: UseCaseGuard;
3
+ //# sourceMappingURL=pass-every-message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pass-every-message.d.ts","sourceRoot":"","sources":["../../src/authorization/pass-every-message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,eAAO,MAAM,gBAAgB,EAAE,YAAoD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const passEveryMessage = { check: (_message, next) => next() };
2
+ //# sourceMappingURL=pass-every-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pass-every-message.js","sourceRoot":"","sources":["../../src/authorization/pass-every-message.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAiB,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Message, MessageType } from '@ddd-ts-kit/kernel';
2
+ import type { PermissionRef } from '@ddd-ts-kit/kernel/declarations';
3
+ import type { RequirementOptions } from './requirement-options.js';
4
+ import type { Requirement } from './requirement.js';
5
+ export declare function protectedRequirement<M extends Message>(type: MessageType<M>, permission: PermissionRef, options?: RequirementOptions<M>): Requirement;
6
+ //# sourceMappingURL=protected-requirement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protected-requirement.d.ts","sourceRoot":"","sources":["../../src/authorization/protected-requirement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,EACpD,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,UAAU,EAAE,aAAa,EACzB,OAAO,GAAE,kBAAkB,CAAC,CAAC,CAAM,GAClC,WAAW,CAOb"}
@@ -0,0 +1,9 @@
1
+ export function protectedRequirement(type, permission, options = {}) {
2
+ return {
3
+ access: 'protected',
4
+ permission,
5
+ resourceOf: (message) => (message instanceof type ? options.resource?.(message) : undefined),
6
+ contextOf: (message) => (message instanceof type ? options.context?.(message) : undefined),
7
+ };
8
+ }
9
+ //# sourceMappingURL=protected-requirement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protected-requirement.js","sourceRoot":"","sources":["../../src/authorization/protected-requirement.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,oBAAoB,CAClC,IAAoB,EACpB,UAAyB,EACzB,OAAO,GAA0B,EAAE;IAEnC,OAAO;QACL,MAAM,EAAE,WAAW;QACnB,UAAU;QACV,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,YAAY,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5F,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,YAAY,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;KAC3F,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ResourcePointer } from '@ddd-ts-kit/kernel/declarations';
2
+ export interface RequirementOptions<M> {
3
+ /** The element the message is about, when the right depends on it. */
4
+ readonly resource?: (message: M) => ResourcePointer;
5
+ /** Facts of the message the authorizer may need, such as the tenant it targets. */
6
+ readonly context?: (message: M) => Readonly<Record<string, unknown>>;
7
+ }
8
+ //# sourceMappingURL=requirement-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requirement-options.d.ts","sourceRoot":"","sources":["../../src/authorization/requirement-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,eAAe,CAAC;IACpD,mFAAmF;IACnF,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=requirement-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requirement-options.js","sourceRoot":"","sources":["../../src/authorization/requirement-options.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { UseCaseDeclaration } from './use-case-declaration.js';
2
+ /** What a use case asks of whoever reaches it. Empty when nothing was declared. */
3
+ export type Requirement = Pick<UseCaseDeclaration, 'access' | 'permission' | 'resourceOf' | 'contextOf'>;
4
+ export declare const PUBLIC_REQUIREMENT: Requirement;
5
+ //# sourceMappingURL=requirement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requirement.d.ts","sourceRoot":"","sources":["../../src/authorization/requirement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,mFAAmF;AACnF,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,CAAC,CAAC;AAEzG,eAAO,MAAM,kBAAkB,EAAE,WAAkC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const PUBLIC_REQUIREMENT = { access: 'public' };
2
+ //# sourceMappingURL=requirement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requirement.js","sourceRoot":"","sources":["../../src/authorization/requirement.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,kBAAkB,GAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type UseCaseAccess = 'public' | 'protected';
2
+ //# sourceMappingURL=use-case-access.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-case-access.d.ts","sourceRoot":"","sources":["../../src/authorization/use-case-access.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=use-case-access.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-case-access.js","sourceRoot":"","sources":["../../src/authorization/use-case-access.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import type { Message, MessageInfo, MessageType } from '@ddd-ts-kit/kernel';
2
+ import type { PermissionRef, ResourcePointer } from '@ddd-ts-kit/kernel/declarations';
3
+ import type { UseCaseAccess } from './use-case-access.js';
4
+ export interface UseCaseDeclaration {
5
+ readonly kind: MessageInfo['kind'];
6
+ readonly message: MessageType<Message>;
7
+ readonly module: string;
8
+ /** Absent when neither the module (`.requires(...)`, `.public()`) nor the message (`@Requires`, `@Public`) said it. */
9
+ readonly access?: UseCaseAccess;
10
+ readonly permission?: PermissionRef;
11
+ readonly resourceOf?: (message: Message) => ResourcePointer | undefined;
12
+ readonly contextOf?: (message: Message) => Readonly<Record<string, unknown>> | undefined;
13
+ }
14
+ //# sourceMappingURL=use-case-declaration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-case-declaration.d.ts","sourceRoot":"","sources":["../../src/authorization/use-case-declaration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uHAAuH;IACvH,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,eAAe,GAAG,SAAS,CAAC;IACxE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;CAC1F"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=use-case-declaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-case-declaration.js","sourceRoot":"","sources":["../../src/authorization/use-case-declaration.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import type { UseCaseDeclaration } from './use-case-declaration.js';
2
+ /** What every module declared about the access to its commands and queries, as data. */
3
+ export declare abstract class UseCaseDeclarations {
4
+ static readonly tokenKey = "di.UseCaseDeclarations";
5
+ abstract readonly list: readonly UseCaseDeclaration[];
6
+ }
7
+ //# sourceMappingURL=use-case-declarations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-case-declarations.d.ts","sourceRoot":"","sources":["../../src/authorization/use-case-declarations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,wFAAwF;AACxF,8BAAsB,mBAAmB;IACvC,MAAM,CAAC,QAAQ,CAAC,QAAQ,4BAA4B;IAEpD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACvD"}
@@ -0,0 +1,5 @@
1
+ /** What every module declared about the access to its commands and queries, as data. */
2
+ export class UseCaseDeclarations {
3
+ static tokenKey = 'di.UseCaseDeclarations';
4
+ }
5
+ //# sourceMappingURL=use-case-declarations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-case-declarations.js","sourceRoot":"","sources":["../../src/authorization/use-case-declarations.ts"],"names":[],"mappings":"AAEA,wFAAwF;AACxF,MAAM,OAAgB,mBAAmB;IACvC,MAAM,CAAU,QAAQ,GAAG,wBAAwB,CAAC;CAGrD"}
@@ -0,0 +1,5 @@
1
+ import type { BusMiddleware } from '@ddd-ts-kit/kernel';
2
+ import type { Resolve } from '../wiring/resolve.js';
3
+ /** Resolved at each message, so the guard may be bound, rebound or faked after the bus exists. */
4
+ export declare function useCaseGuardMiddleware(resolve: Resolve): BusMiddleware;
5
+ //# sourceMappingURL=use-case-guard-middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-case-guard-middleware.d.ts","sourceRoot":"","sources":["../../src/authorization/use-case-guard-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGpD,kGAAkG;AAClG,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAEtE"}
@@ -0,0 +1,6 @@
1
+ import { UseCaseGuard } from './use-case-guard.js';
2
+ /** Resolved at each message, so the guard may be bound, rebound or faked after the bus exists. */
3
+ export function useCaseGuardMiddleware(resolve) {
4
+ return (message, next, info) => resolve(UseCaseGuard).check(message, next, info);
5
+ }
6
+ //# sourceMappingURL=use-case-guard-middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-case-guard-middleware.js","sourceRoot":"","sources":["../../src/authorization/use-case-guard-middleware.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,kGAAkG;AAClG,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACnF,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Message, MessageInfo } from '@ddd-ts-kit/kernel';
2
+ /**
3
+ * What the kernel buses ask before anything else, the unit of work included. Unbound, every
4
+ * message passes; an authorization module binds the guard that asks its authorizer.
5
+ */
6
+ export declare abstract class UseCaseGuard {
7
+ static readonly tokenKey = "di.UseCaseGuard";
8
+ abstract check(message: Message, next: () => Promise<unknown>, info: MessageInfo): Promise<unknown>;
9
+ }
10
+ //# sourceMappingURL=use-case-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-case-guard.d.ts","sourceRoot":"","sources":["../../src/authorization/use-case-guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE/D;;;GAGG;AACH,8BAAsB,YAAY;IAChC,MAAM,CAAC,QAAQ,CAAC,QAAQ,qBAAqB;IAE7C,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACrG"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * What the kernel buses ask before anything else, the unit of work included. Unbound, every
3
+ * message passes; an authorization module binds the guard that asks its authorizer.
4
+ */
5
+ export class UseCaseGuard {
6
+ static tokenKey = 'di.UseCaseGuard';
7
+ }
8
+ //# sourceMappingURL=use-case-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-case-guard.js","sourceRoot":"","sources":["../../src/authorization/use-case-guard.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAgB,YAAY;IAChC,MAAM,CAAU,QAAQ,GAAG,iBAAiB,CAAC;CAG9C"}
@@ -0,0 +1,5 @@
1
+ import { TokenSet } from '../token/token-set.js';
2
+ import type { Wiring } from '../wiring/wiring.js';
3
+ /** Everything that can be known wrong before a single instance is created. */
4
+ export declare function assertSound(wiring: Wiring, overridden: TokenSet): void;
5
+ //# sourceMappingURL=assert-sound.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert-sound.d.ts","sourceRoot":"","sources":["../../src/checks/assert-sound.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,GAAG,IAAI,CAItE"}