@zudojs/core 0.0.1 → 1.0.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 (485) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +141 -7
  3. package/dist/application/application.d.ts +43 -2
  4. package/dist/application/application.js +111 -13
  5. package/dist/application/applicationContext.context.d.ts +15 -0
  6. package/dist/application/applicationContext.context.js +12 -0
  7. package/dist/application/createApplication.d.ts +78 -0
  8. package/dist/application/createApplication.js +104 -0
  9. package/dist/application/index.d.ts +2 -1
  10. package/dist/application/index.js +2 -1
  11. package/dist/configuration/configurationManager.manager.d.ts +32 -0
  12. package/dist/configuration/configurationManager.manager.js +86 -7
  13. package/dist/configuration/core/configuration.d.ts +60 -15
  14. package/dist/configuration/core/configuration.js +248 -51
  15. package/dist/configuration/core/configurationKey.key.d.ts +4 -2
  16. package/dist/configuration/core/configurationKey.key.js +2 -13
  17. package/dist/configuration/core/configurationPath.path.d.ts +17 -0
  18. package/dist/configuration/core/configurationPath.path.js +33 -0
  19. package/dist/configuration/core/index.d.ts +7 -1
  20. package/dist/configuration/core/index.js +1 -0
  21. package/dist/configuration/error/configurationError.error.d.ts +11 -0
  22. package/dist/configuration/error/configurationError.error.js +29 -1
  23. package/dist/configuration/error/configurationRedactor.redactor.d.ts +16 -0
  24. package/dist/configuration/error/configurationRedactor.redactor.js +83 -5
  25. package/dist/configuration/error/index.d.ts +2 -1
  26. package/dist/configuration/error/index.js +2 -1
  27. package/dist/configuration/index.d.ts +1 -1
  28. package/dist/configuration/loader/configurationLoader.loader.d.ts +47 -9
  29. package/dist/configuration/loader/configurationLoader.loader.js +107 -26
  30. package/dist/configuration/loader/index.d.ts +1 -1
  31. package/dist/configuration/loader/index.js +1 -1
  32. package/dist/configuration/registry/configurationProvider.provider.d.ts +26 -1
  33. package/dist/configuration/registry/configurationProvider.provider.js +33 -7
  34. package/dist/configuration/registry/configurationRegistry.registry.js +2 -1
  35. package/dist/configuration/schema/configurationSchema.schema.d.ts +0 -4
  36. package/dist/configuration/schema/configurationSchema.schema.js +11 -32
  37. package/dist/configuration/schema/configurationValidation.validator.d.ts +14 -2
  38. package/dist/configuration/schema/configurationValidation.validator.js +55 -7
  39. package/dist/configuration/schema/index.d.ts +1 -1
  40. package/dist/configuration/schema/index.js +1 -1
  41. package/dist/container/container.d.ts +52 -5
  42. package/dist/container/container.js +110 -33
  43. package/dist/container/index.d.ts +1 -1
  44. package/dist/container/index.js +1 -1
  45. package/dist/container/scope.d.ts +7 -6
  46. package/dist/context/core/contextAliases.deprecated.d.ts +32 -0
  47. package/dist/context/core/contextAliases.deprecated.js +6 -0
  48. package/dist/context/core/executionContext.context.d.ts +8 -0
  49. package/dist/context/core/executionContext.context.js +38 -15
  50. package/dist/context/core/index.d.ts +2 -2
  51. package/dist/context/core/index.js +2 -2
  52. package/dist/context/index.d.ts +20 -0
  53. package/dist/context/index.js +20 -0
  54. package/dist/context/provider/contextProvider.provider.d.ts +7 -4
  55. package/dist/context/provider/contextProvider.provider.js +9 -6
  56. package/dist/context/provider/contextStorage.storage.d.ts +47 -7
  57. package/dist/context/provider/contextStorage.storage.js +54 -12
  58. package/dist/context/provider/defaultContextStorage.storage.d.ts +18 -0
  59. package/dist/context/provider/defaultContextStorage.storage.js +20 -0
  60. package/dist/context/provider/index.d.ts +2 -1
  61. package/dist/context/provider/index.js +1 -0
  62. package/dist/errors/exceptions.d.ts +22 -0
  63. package/dist/errors/exceptions.js +38 -1
  64. package/dist/errors/frameworkError.error.d.ts +6 -9
  65. package/dist/errors/index.d.ts +1 -1
  66. package/dist/errors/index.js +1 -1
  67. package/dist/index.d.ts +4 -0
  68. package/dist/index.js +14 -0
  69. package/dist/lifecycle/core/index.d.ts +1 -1
  70. package/dist/lifecycle/core/index.js +1 -1
  71. package/dist/lifecycle/core/lifecycle.d.ts +47 -2
  72. package/dist/lifecycle/core/lifecycle.js +251 -85
  73. package/dist/lifecycle/core/lifecycleRegistry.registry.d.ts +8 -0
  74. package/dist/lifecycle/core/lifecycleRegistry.registry.js +20 -1
  75. package/dist/lifecycle/manager/lifecycleManager.manager.d.ts +21 -2
  76. package/dist/lifecycle/manager/lifecycleManager.manager.js +62 -99
  77. package/dist/lifecycle/scope/lifecycleScope.scope.d.ts +22 -1
  78. package/dist/lifecycle/scope/lifecycleScope.scope.js +85 -17
  79. package/dist/logging/console/consoleLogger.logger.d.ts +20 -1
  80. package/dist/logging/console/consoleLogger.logger.js +77 -11
  81. package/dist/logging/console/loggerFactory.factory.d.ts +6 -5
  82. package/dist/logging/console/loggerFactory.factory.js +1 -7
  83. package/dist/logging/core/index.d.ts +4 -3
  84. package/dist/logging/core/index.js +4 -3
  85. package/dist/logging/core/logEntry.entry.d.ts +41 -3
  86. package/dist/logging/core/logEntry.entry.js +114 -4
  87. package/dist/logging/core/logLevel.level.d.ts +18 -0
  88. package/dist/logging/core/logLevel.level.js +25 -1
  89. package/dist/logging/core/logRedaction.redaction.d.ts +38 -0
  90. package/dist/logging/core/logRedaction.redaction.js +19 -0
  91. package/dist/logging/core/logger.d.ts +14 -11
  92. package/dist/logging/core/logger.js +31 -6
  93. package/dist/logging/core/loggerContext.context.d.ts +12 -0
  94. package/dist/logging/core/loggerContext.context.js +19 -0
  95. package/dist/logging/core/loggerOptions.options.d.ts +17 -0
  96. package/dist/modules/index.d.ts +0 -1
  97. package/dist/modules/index.js +0 -6
  98. package/dist/modules/module.d.ts +7 -1
  99. package/dist/modules/moduleContext.context.d.ts +41 -7
  100. package/dist/modules/moduleContext.context.js +31 -8
  101. package/dist/modules/moduleDefinition.definition.d.ts +11 -7
  102. package/dist/modules/moduleDefinition.definition.js +41 -8
  103. package/dist/modules/moduleDependency/index.d.ts +2 -2
  104. package/dist/modules/moduleDependency/index.js +1 -1
  105. package/dist/modules/moduleDependency/moduleDependency.graph.d.ts +19 -2
  106. package/dist/modules/moduleDependency/moduleDependency.graph.js +122 -8
  107. package/dist/modules/moduleDependency/moduleDependency.ordering.d.ts +8 -0
  108. package/dist/modules/moduleDependency/moduleDependency.ordering.js +85 -57
  109. package/dist/modules/moduleDependency/moduleDependency.type.d.ts +28 -1
  110. package/dist/modules/moduleError/index.d.ts +1 -1
  111. package/dist/modules/moduleError/index.js +1 -1
  112. package/dist/modules/moduleError/moduleError.dependency.d.ts +11 -0
  113. package/dist/modules/moduleError/moduleError.dependency.js +15 -0
  114. package/dist/modules/moduleLifecycle/index.d.ts +5 -2
  115. package/dist/modules/moduleLifecycle/index.js +4 -1
  116. package/dist/modules/moduleLifecycle/moduleLifecycle.lifecycle.d.ts +44 -6
  117. package/dist/modules/moduleLifecycle/moduleLifecycle.lifecycle.js +153 -9
  118. package/dist/modules/moduleLifecycle/moduleLifecycle.stateMachine.d.ts +30 -5
  119. package/dist/modules/moduleLifecycle/moduleLifecycle.stateMachine.js +130 -10
  120. package/dist/modules/moduleLifecycle/moduleLifecycle.type.d.ts +65 -28
  121. package/dist/modules/moduleLifecycle/moduleLifecycle.type.js +15 -4
  122. package/dist/modules/moduleLoader/moduleLoader.loader.d.ts +39 -5
  123. package/dist/modules/moduleLoader/moduleLoader.loader.js +123 -50
  124. package/dist/modules/moduleLoader/moduleLoader.type.d.ts +4 -2
  125. package/dist/modules/moduleLoader/moduleLoader.type.js +10 -3
  126. package/dist/modules/moduleMetadata.metadata.js +15 -5
  127. package/dist/modules/moduleRegistry/index.d.ts +1 -1
  128. package/dist/modules/moduleRegistry/moduleRegistry.registry.d.ts +2 -2
  129. package/dist/modules/moduleRegistry/moduleRegistry.registry.js +38 -6
  130. package/dist/modules/moduleRegistry/moduleRegistry.type.d.ts +18 -1
  131. package/dist/runtime/index.d.ts +17 -15
  132. package/dist/runtime/index.js +14 -10
  133. package/dist/runtime/runtime.d.ts +135 -33
  134. package/dist/runtime/runtime.js +344 -114
  135. package/dist/runtime/runtimeBootstrap/index.d.ts +2 -1
  136. package/dist/runtime/runtimeBootstrap/index.js +1 -1
  137. package/dist/runtime/runtimeBootstrap/pipeline/index.d.ts +2 -2
  138. package/dist/runtime/runtimeBootstrap/pipeline/index.js +1 -2
  139. package/dist/runtime/runtimeBootstrap/pipeline/runtimeBootstrap.pipeline.d.ts +41 -15
  140. package/dist/runtime/runtimeBootstrap/pipeline/runtimeBootstrap.pipeline.js +98 -76
  141. package/dist/runtime/runtimeBootstrap/runtimeBootstrap.core.d.ts +7 -4
  142. package/dist/runtime/runtimeBootstrap/runtimeBootstrap.core.js +87 -59
  143. package/dist/runtime/runtimeBootstrap/runtimeBootstrap.type.d.ts +10 -4
  144. package/dist/runtime/runtimeContext/index.d.ts +3 -5
  145. package/dist/runtime/runtimeContext/index.js +2 -4
  146. package/dist/runtime/runtimeContext/runtimeContext.factory.d.ts +10 -4
  147. package/dist/runtime/runtimeContext/runtimeContext.factory.js +30 -7
  148. package/dist/runtime/runtimeContext/runtimeContext.type.d.ts +36 -47
  149. package/dist/runtime/runtimeEnvironment/detection/runtimeEnvironment.env.d.ts +5 -0
  150. package/dist/runtime/runtimeEnvironment/detection/runtimeEnvironment.env.js +6 -4
  151. package/dist/runtime/runtimeEnvironment/detection/runtimeEnvironment.os.d.ts +4 -0
  152. package/dist/runtime/runtimeEnvironment/detection/runtimeEnvironment.os.js +7 -9
  153. package/dist/runtime/runtimeEnvironment/index.d.ts +2 -2
  154. package/dist/runtime/runtimeEnvironment/index.js +1 -1
  155. package/dist/runtime/runtimeEnvironment/runtimeEnvironment.core.d.ts +20 -17
  156. package/dist/runtime/runtimeEnvironment/runtimeEnvironment.core.js +20 -13
  157. package/dist/runtime/runtimeEnvironment/runtimeEnvironment.type.d.ts +12 -1
  158. package/dist/runtime/runtimeError/index.d.ts +3 -3
  159. package/dist/runtime/runtimeError/index.js +1 -1
  160. package/dist/runtime/runtimeError/runtimeError.base.d.ts +15 -18
  161. package/dist/runtime/runtimeError/runtimeError.base.js +38 -36
  162. package/dist/runtime/runtimeError/runtimeError.lifecycle.d.ts +23 -8
  163. package/dist/runtime/runtimeError/runtimeError.lifecycle.js +31 -7
  164. package/dist/runtime/runtimeError/runtimeError.specialized.d.ts +1 -1
  165. package/dist/runtime/runtimeError/runtimeError.specialized.js +1 -1
  166. package/dist/runtime/runtimeError/runtimeError.type.d.ts +5 -9
  167. package/dist/runtime/runtimeLogger.d.ts +2 -2
  168. package/dist/runtime/runtimeLogger.js +3 -3
  169. package/dist/runtime/runtimeOptions/index.d.ts +1 -1
  170. package/dist/runtime/runtimeOptions/runtimeOptions.defaults.d.ts +1 -1
  171. package/dist/runtime/runtimeOptions/runtimeOptions.defaults.js +2 -0
  172. package/dist/runtime/runtimeOptions/runtimeOptions.resolver.js +5 -2
  173. package/dist/runtime/runtimeOptions/runtimeOptions.type.d.ts +45 -16
  174. package/dist/runtime/runtimeOptions/runtimeOptions.validation.js +0 -1
  175. package/dist/runtime/runtimeShutdown/index.d.ts +3 -2
  176. package/dist/runtime/runtimeShutdown/index.js +2 -2
  177. package/dist/runtime/runtimeShutdown/pipeline/index.d.ts +2 -1
  178. package/dist/runtime/runtimeShutdown/pipeline/index.js +1 -1
  179. package/dist/runtime/runtimeShutdown/pipeline/runtimeShutdown.pipeline.d.ts +37 -7
  180. package/dist/runtime/runtimeShutdown/pipeline/runtimeShutdown.pipeline.js +77 -51
  181. package/dist/runtime/runtimeShutdown/runtimeShutdown.core.d.ts +8 -16
  182. package/dist/runtime/runtimeShutdown/runtimeShutdown.core.js +85 -87
  183. package/dist/runtime/runtimeShutdown/runtimeShutdown.type.d.ts +9 -5
  184. package/dist/runtime/runtimeSignals/index.d.ts +8 -0
  185. package/dist/runtime/runtimeSignals/index.js +7 -0
  186. package/dist/runtime/runtimeSignals/runtimeSignals.d.ts +93 -0
  187. package/dist/runtime/runtimeSignals/runtimeSignals.js +149 -0
  188. package/dist/runtime/runtimeState.state.d.ts +32 -14
  189. package/dist/runtime/runtimeState.state.js +34 -27
  190. package/dist/runtime/runtimeTimeout.d.ts +40 -0
  191. package/dist/runtime/runtimeTimeout.js +42 -0
  192. package/package.json +21 -15
  193. package/dist/.tsbuildinfo +0 -1
  194. package/dist/application/application.d.ts.map +0 -1
  195. package/dist/application/application.js.map +0 -1
  196. package/dist/application/applicationContext.context.d.ts.map +0 -1
  197. package/dist/application/applicationContext.context.js.map +0 -1
  198. package/dist/application/applicationState.state.d.ts.map +0 -1
  199. package/dist/application/applicationState.state.js.map +0 -1
  200. package/dist/application/index.d.ts.map +0 -1
  201. package/dist/application/index.js.map +0 -1
  202. package/dist/configuration/configurationManager.manager.d.ts.map +0 -1
  203. package/dist/configuration/configurationManager.manager.js.map +0 -1
  204. package/dist/configuration/core/configuration.d.ts.map +0 -1
  205. package/dist/configuration/core/configuration.js.map +0 -1
  206. package/dist/configuration/core/configurationKey.key.d.ts.map +0 -1
  207. package/dist/configuration/core/configurationKey.key.js.map +0 -1
  208. package/dist/configuration/core/configurationSource.source.d.ts.map +0 -1
  209. package/dist/configuration/core/configurationSource.source.js.map +0 -1
  210. package/dist/configuration/core/index.d.ts.map +0 -1
  211. package/dist/configuration/core/index.js.map +0 -1
  212. package/dist/configuration/error/configurationError.error.d.ts.map +0 -1
  213. package/dist/configuration/error/configurationError.error.js.map +0 -1
  214. package/dist/configuration/error/configurationRedactor.redactor.d.ts.map +0 -1
  215. package/dist/configuration/error/configurationRedactor.redactor.js.map +0 -1
  216. package/dist/configuration/error/index.d.ts.map +0 -1
  217. package/dist/configuration/error/index.js.map +0 -1
  218. package/dist/configuration/events/configurationEvents.events.d.ts.map +0 -1
  219. package/dist/configuration/events/configurationEvents.events.js.map +0 -1
  220. package/dist/configuration/events/index.d.ts.map +0 -1
  221. package/dist/configuration/events/index.js.map +0 -1
  222. package/dist/configuration/index.d.ts.map +0 -1
  223. package/dist/configuration/index.js.map +0 -1
  224. package/dist/configuration/loader/configurationLoader.loader.d.ts.map +0 -1
  225. package/dist/configuration/loader/configurationLoader.loader.js.map +0 -1
  226. package/dist/configuration/loader/index.d.ts.map +0 -1
  227. package/dist/configuration/loader/index.js.map +0 -1
  228. package/dist/configuration/registry/configurationProvider.provider.d.ts.map +0 -1
  229. package/dist/configuration/registry/configurationProvider.provider.js.map +0 -1
  230. package/dist/configuration/registry/configurationRegistry.registry.d.ts.map +0 -1
  231. package/dist/configuration/registry/configurationRegistry.registry.js.map +0 -1
  232. package/dist/configuration/registry/index.d.ts.map +0 -1
  233. package/dist/configuration/registry/index.js.map +0 -1
  234. package/dist/configuration/schema/configurationSchema.schema.d.ts.map +0 -1
  235. package/dist/configuration/schema/configurationSchema.schema.js.map +0 -1
  236. package/dist/configuration/schema/configurationValidation.validator.d.ts.map +0 -1
  237. package/dist/configuration/schema/configurationValidation.validator.js.map +0 -1
  238. package/dist/configuration/schema/index.d.ts.map +0 -1
  239. package/dist/configuration/schema/index.js.map +0 -1
  240. package/dist/container/container.d.ts.map +0 -1
  241. package/dist/container/container.js.map +0 -1
  242. package/dist/container/index.d.ts.map +0 -1
  243. package/dist/container/index.js.map +0 -1
  244. package/dist/container/provider.d.ts.map +0 -1
  245. package/dist/container/provider.js.map +0 -1
  246. package/dist/container/scope.d.ts.map +0 -1
  247. package/dist/container/scope.js.map +0 -1
  248. package/dist/container/token.d.ts.map +0 -1
  249. package/dist/container/token.js.map +0 -1
  250. package/dist/context/core/context.d.ts +0 -95
  251. package/dist/context/core/context.d.ts.map +0 -1
  252. package/dist/context/core/context.js +0 -103
  253. package/dist/context/core/context.js.map +0 -1
  254. package/dist/context/core/contextKey.key.d.ts.map +0 -1
  255. package/dist/context/core/contextKey.key.js.map +0 -1
  256. package/dist/context/core/executionContext.context.d.ts.map +0 -1
  257. package/dist/context/core/executionContext.context.js.map +0 -1
  258. package/dist/context/core/index.d.ts.map +0 -1
  259. package/dist/context/core/index.js.map +0 -1
  260. package/dist/context/index.d.ts.map +0 -1
  261. package/dist/context/index.js.map +0 -1
  262. package/dist/context/provider/contextProvider.provider.d.ts.map +0 -1
  263. package/dist/context/provider/contextProvider.provider.js.map +0 -1
  264. package/dist/context/provider/contextStorage.storage.d.ts.map +0 -1
  265. package/dist/context/provider/contextStorage.storage.js.map +0 -1
  266. package/dist/context/provider/index.d.ts.map +0 -1
  267. package/dist/context/provider/index.js.map +0 -1
  268. package/dist/context/snapshot/contextSnapshot.snapshot.d.ts.map +0 -1
  269. package/dist/context/snapshot/contextSnapshot.snapshot.js.map +0 -1
  270. package/dist/context/snapshot/index.d.ts.map +0 -1
  271. package/dist/context/snapshot/index.js.map +0 -1
  272. package/dist/context/values/contextValues.values.d.ts.map +0 -1
  273. package/dist/context/values/contextValues.values.js.map +0 -1
  274. package/dist/context/values/index.d.ts.map +0 -1
  275. package/dist/context/values/index.js.map +0 -1
  276. package/dist/contracts/adapter.d.ts.map +0 -1
  277. package/dist/contracts/adapter.js.map +0 -1
  278. package/dist/contracts/disposable.d.ts.map +0 -1
  279. package/dist/contracts/disposable.js.map +0 -1
  280. package/dist/contracts/handler.d.ts.map +0 -1
  281. package/dist/contracts/handler.js.map +0 -1
  282. package/dist/contracts/index.d.ts.map +0 -1
  283. package/dist/contracts/index.js.map +0 -1
  284. package/dist/errors/errorCode.code.d.ts.map +0 -1
  285. package/dist/errors/errorCode.code.js.map +0 -1
  286. package/dist/errors/exceptions.d.ts.map +0 -1
  287. package/dist/errors/exceptions.js.map +0 -1
  288. package/dist/errors/frameworkError.error.d.ts.map +0 -1
  289. package/dist/errors/frameworkError.error.js.map +0 -1
  290. package/dist/errors/index.d.ts.map +0 -1
  291. package/dist/errors/index.js.map +0 -1
  292. package/dist/index.d.ts.map +0 -1
  293. package/dist/index.js.map +0 -1
  294. package/dist/lifecycle/core/index.d.ts.map +0 -1
  295. package/dist/lifecycle/core/index.js.map +0 -1
  296. package/dist/lifecycle/core/lifecycle.d.ts.map +0 -1
  297. package/dist/lifecycle/core/lifecycle.js.map +0 -1
  298. package/dist/lifecycle/core/lifecycleHook.hook.d.ts.map +0 -1
  299. package/dist/lifecycle/core/lifecycleHook.hook.js.map +0 -1
  300. package/dist/lifecycle/core/lifecycleRegistry.registry.d.ts.map +0 -1
  301. package/dist/lifecycle/core/lifecycleRegistry.registry.js.map +0 -1
  302. package/dist/lifecycle/core/lifecycleState.state.d.ts +0 -2
  303. package/dist/lifecycle/core/lifecycleState.state.d.ts.map +0 -1
  304. package/dist/lifecycle/core/lifecycleState.state.js +0 -2
  305. package/dist/lifecycle/core/lifecycleState.state.js.map +0 -1
  306. package/dist/lifecycle/index.d.ts.map +0 -1
  307. package/dist/lifecycle/index.js.map +0 -1
  308. package/dist/lifecycle/manager/index.d.ts.map +0 -1
  309. package/dist/lifecycle/manager/index.js.map +0 -1
  310. package/dist/lifecycle/manager/lifecycleManager.manager.d.ts.map +0 -1
  311. package/dist/lifecycle/manager/lifecycleManager.manager.js.map +0 -1
  312. package/dist/lifecycle/scope/index.d.ts.map +0 -1
  313. package/dist/lifecycle/scope/index.js.map +0 -1
  314. package/dist/lifecycle/scope/lifecycleScope.scope.d.ts.map +0 -1
  315. package/dist/lifecycle/scope/lifecycleScope.scope.js.map +0 -1
  316. package/dist/logging/console/consoleLogger.logger.d.ts.map +0 -1
  317. package/dist/logging/console/consoleLogger.logger.js.map +0 -1
  318. package/dist/logging/console/index.d.ts.map +0 -1
  319. package/dist/logging/console/index.js.map +0 -1
  320. package/dist/logging/console/loggerFactory.factory.d.ts.map +0 -1
  321. package/dist/logging/console/loggerFactory.factory.js.map +0 -1
  322. package/dist/logging/core/index.d.ts.map +0 -1
  323. package/dist/logging/core/index.js.map +0 -1
  324. package/dist/logging/core/logEntry.entry.d.ts.map +0 -1
  325. package/dist/logging/core/logEntry.entry.js.map +0 -1
  326. package/dist/logging/core/logLevel.level.d.ts.map +0 -1
  327. package/dist/logging/core/logLevel.level.js.map +0 -1
  328. package/dist/logging/core/logger.d.ts.map +0 -1
  329. package/dist/logging/core/logger.js.map +0 -1
  330. package/dist/logging/core/loggerContext.context.d.ts.map +0 -1
  331. package/dist/logging/core/loggerContext.context.js.map +0 -1
  332. package/dist/logging/core/loggerOptions.options.d.ts.map +0 -1
  333. package/dist/logging/core/loggerOptions.options.js.map +0 -1
  334. package/dist/logging/index.d.ts.map +0 -1
  335. package/dist/logging/index.js.map +0 -1
  336. package/dist/modules/index.d.ts.map +0 -1
  337. package/dist/modules/index.js.map +0 -1
  338. package/dist/modules/module.d.ts.map +0 -1
  339. package/dist/modules/module.js.map +0 -1
  340. package/dist/modules/moduleContext.context.d.ts.map +0 -1
  341. package/dist/modules/moduleContext.context.js.map +0 -1
  342. package/dist/modules/moduleDefinition.definition.d.ts.map +0 -1
  343. package/dist/modules/moduleDefinition.definition.js.map +0 -1
  344. package/dist/modules/moduleDependency/index.d.ts.map +0 -1
  345. package/dist/modules/moduleDependency/index.js.map +0 -1
  346. package/dist/modules/moduleDependency/moduleDependency.graph.d.ts.map +0 -1
  347. package/dist/modules/moduleDependency/moduleDependency.graph.js.map +0 -1
  348. package/dist/modules/moduleDependency/moduleDependency.ordering.d.ts.map +0 -1
  349. package/dist/modules/moduleDependency/moduleDependency.ordering.js.map +0 -1
  350. package/dist/modules/moduleDependency/moduleDependency.type.d.ts.map +0 -1
  351. package/dist/modules/moduleDependency/moduleDependency.type.js.map +0 -1
  352. package/dist/modules/moduleError/index.d.ts.map +0 -1
  353. package/dist/modules/moduleError/index.js.map +0 -1
  354. package/dist/modules/moduleError/moduleError.base.d.ts.map +0 -1
  355. package/dist/modules/moduleError/moduleError.base.js.map +0 -1
  356. package/dist/modules/moduleError/moduleError.dependency.d.ts.map +0 -1
  357. package/dist/modules/moduleError/moduleError.dependency.js.map +0 -1
  358. package/dist/modules/moduleError/moduleError.helpers.d.ts.map +0 -1
  359. package/dist/modules/moduleError/moduleError.helpers.js.map +0 -1
  360. package/dist/modules/moduleError/moduleError.lifecycle.d.ts.map +0 -1
  361. package/dist/modules/moduleError/moduleError.lifecycle.js.map +0 -1
  362. package/dist/modules/moduleError/moduleError.registration.d.ts.map +0 -1
  363. package/dist/modules/moduleError/moduleError.registration.js.map +0 -1
  364. package/dist/modules/moduleLifecycle/index.d.ts.map +0 -1
  365. package/dist/modules/moduleLifecycle/index.js.map +0 -1
  366. package/dist/modules/moduleLifecycle/moduleLifecycle.lifecycle.d.ts.map +0 -1
  367. package/dist/modules/moduleLifecycle/moduleLifecycle.lifecycle.js.map +0 -1
  368. package/dist/modules/moduleLifecycle/moduleLifecycle.stateMachine.d.ts.map +0 -1
  369. package/dist/modules/moduleLifecycle/moduleLifecycle.stateMachine.js.map +0 -1
  370. package/dist/modules/moduleLifecycle/moduleLifecycle.type.d.ts.map +0 -1
  371. package/dist/modules/moduleLifecycle/moduleLifecycle.type.js.map +0 -1
  372. package/dist/modules/moduleLoader/index.d.ts.map +0 -1
  373. package/dist/modules/moduleLoader/index.js.map +0 -1
  374. package/dist/modules/moduleLoader/moduleLoader.loader.d.ts.map +0 -1
  375. package/dist/modules/moduleLoader/moduleLoader.loader.js.map +0 -1
  376. package/dist/modules/moduleLoader/moduleLoader.type.d.ts.map +0 -1
  377. package/dist/modules/moduleLoader/moduleLoader.type.js.map +0 -1
  378. package/dist/modules/moduleMetadata.metadata.d.ts.map +0 -1
  379. package/dist/modules/moduleMetadata.metadata.js.map +0 -1
  380. package/dist/modules/moduleRegistry/index.d.ts.map +0 -1
  381. package/dist/modules/moduleRegistry/index.js.map +0 -1
  382. package/dist/modules/moduleRegistry/moduleRegistry.registry.d.ts.map +0 -1
  383. package/dist/modules/moduleRegistry/moduleRegistry.registry.js.map +0 -1
  384. package/dist/modules/moduleRegistry/moduleRegistry.type.d.ts.map +0 -1
  385. package/dist/modules/moduleRegistry/moduleRegistry.type.js.map +0 -1
  386. package/dist/runtime/index.d.ts.map +0 -1
  387. package/dist/runtime/index.js.map +0 -1
  388. package/dist/runtime/runtime.d.ts.map +0 -1
  389. package/dist/runtime/runtime.js.map +0 -1
  390. package/dist/runtime/runtimeBootstrap/index.d.ts.map +0 -1
  391. package/dist/runtime/runtimeBootstrap/index.js.map +0 -1
  392. package/dist/runtime/runtimeBootstrap/pipeline/index.d.ts.map +0 -1
  393. package/dist/runtime/runtimeBootstrap/pipeline/index.js.map +0 -1
  394. package/dist/runtime/runtimeBootstrap/pipeline/runtimeBootstrap.invoke.d.ts +0 -6
  395. package/dist/runtime/runtimeBootstrap/pipeline/runtimeBootstrap.invoke.d.ts.map +0 -1
  396. package/dist/runtime/runtimeBootstrap/pipeline/runtimeBootstrap.invoke.js +0 -27
  397. package/dist/runtime/runtimeBootstrap/pipeline/runtimeBootstrap.invoke.js.map +0 -1
  398. package/dist/runtime/runtimeBootstrap/pipeline/runtimeBootstrap.pipeline.d.ts.map +0 -1
  399. package/dist/runtime/runtimeBootstrap/pipeline/runtimeBootstrap.pipeline.js.map +0 -1
  400. package/dist/runtime/runtimeBootstrap/runtimeBootstrap.core.d.ts.map +0 -1
  401. package/dist/runtime/runtimeBootstrap/runtimeBootstrap.core.js.map +0 -1
  402. package/dist/runtime/runtimeBootstrap/runtimeBootstrap.type.d.ts.map +0 -1
  403. package/dist/runtime/runtimeBootstrap/runtimeBootstrap.type.js.map +0 -1
  404. package/dist/runtime/runtimeContext/index.d.ts.map +0 -1
  405. package/dist/runtime/runtimeContext/index.js.map +0 -1
  406. package/dist/runtime/runtimeContext/runtimeContext.core.d.ts +0 -38
  407. package/dist/runtime/runtimeContext/runtimeContext.core.d.ts.map +0 -1
  408. package/dist/runtime/runtimeContext/runtimeContext.core.js +0 -99
  409. package/dist/runtime/runtimeContext/runtimeContext.core.js.map +0 -1
  410. package/dist/runtime/runtimeContext/runtimeContext.factory.d.ts.map +0 -1
  411. package/dist/runtime/runtimeContext/runtimeContext.factory.js.map +0 -1
  412. package/dist/runtime/runtimeContext/runtimeContext.type.d.ts.map +0 -1
  413. package/dist/runtime/runtimeContext/runtimeContext.type.js.map +0 -1
  414. package/dist/runtime/runtimeEnvironment/detection/index.d.ts.map +0 -1
  415. package/dist/runtime/runtimeEnvironment/detection/index.js.map +0 -1
  416. package/dist/runtime/runtimeEnvironment/detection/runtimeEnvironment.detection.d.ts.map +0 -1
  417. package/dist/runtime/runtimeEnvironment/detection/runtimeEnvironment.detection.js.map +0 -1
  418. package/dist/runtime/runtimeEnvironment/detection/runtimeEnvironment.env.d.ts.map +0 -1
  419. package/dist/runtime/runtimeEnvironment/detection/runtimeEnvironment.env.js.map +0 -1
  420. package/dist/runtime/runtimeEnvironment/detection/runtimeEnvironment.os.d.ts.map +0 -1
  421. package/dist/runtime/runtimeEnvironment/detection/runtimeEnvironment.os.js.map +0 -1
  422. package/dist/runtime/runtimeEnvironment/index.d.ts.map +0 -1
  423. package/dist/runtime/runtimeEnvironment/index.js.map +0 -1
  424. package/dist/runtime/runtimeEnvironment/runtimeEnvironment.core.d.ts.map +0 -1
  425. package/dist/runtime/runtimeEnvironment/runtimeEnvironment.core.js.map +0 -1
  426. package/dist/runtime/runtimeEnvironment/runtimeEnvironment.type.d.ts.map +0 -1
  427. package/dist/runtime/runtimeEnvironment/runtimeEnvironment.type.js.map +0 -1
  428. package/dist/runtime/runtimeError/index.d.ts.map +0 -1
  429. package/dist/runtime/runtimeError/index.js.map +0 -1
  430. package/dist/runtime/runtimeError/runtimeError.base.d.ts.map +0 -1
  431. package/dist/runtime/runtimeError/runtimeError.base.js.map +0 -1
  432. package/dist/runtime/runtimeError/runtimeError.lifecycle.d.ts.map +0 -1
  433. package/dist/runtime/runtimeError/runtimeError.lifecycle.js.map +0 -1
  434. package/dist/runtime/runtimeError/runtimeError.specialized.d.ts.map +0 -1
  435. package/dist/runtime/runtimeError/runtimeError.specialized.js.map +0 -1
  436. package/dist/runtime/runtimeError/runtimeError.type.d.ts.map +0 -1
  437. package/dist/runtime/runtimeError/runtimeError.type.js.map +0 -1
  438. package/dist/runtime/runtimeLogger.d.ts.map +0 -1
  439. package/dist/runtime/runtimeLogger.js.map +0 -1
  440. package/dist/runtime/runtimeManager/index.d.ts +0 -12
  441. package/dist/runtime/runtimeManager/index.d.ts.map +0 -1
  442. package/dist/runtime/runtimeManager/index.js +0 -11
  443. package/dist/runtime/runtimeManager/index.js.map +0 -1
  444. package/dist/runtime/runtimeManager/runtimeManager.core.d.ts +0 -31
  445. package/dist/runtime/runtimeManager/runtimeManager.core.d.ts.map +0 -1
  446. package/dist/runtime/runtimeManager/runtimeManager.core.js +0 -136
  447. package/dist/runtime/runtimeManager/runtimeManager.core.js.map +0 -1
  448. package/dist/runtime/runtimeManager/runtimeManager.error.d.ts +0 -14
  449. package/dist/runtime/runtimeManager/runtimeManager.error.d.ts.map +0 -1
  450. package/dist/runtime/runtimeManager/runtimeManager.error.js +0 -21
  451. package/dist/runtime/runtimeManager/runtimeManager.error.js.map +0 -1
  452. package/dist/runtime/runtimeManager/runtimeManager.factory.d.ts +0 -7
  453. package/dist/runtime/runtimeManager/runtimeManager.factory.d.ts.map +0 -1
  454. package/dist/runtime/runtimeManager/runtimeManager.factory.js +0 -8
  455. package/dist/runtime/runtimeManager/runtimeManager.factory.js.map +0 -1
  456. package/dist/runtime/runtimeManager/runtimeManager.lifecycle.d.ts +0 -16
  457. package/dist/runtime/runtimeManager/runtimeManager.lifecycle.d.ts.map +0 -1
  458. package/dist/runtime/runtimeManager/runtimeManager.lifecycle.js +0 -49
  459. package/dist/runtime/runtimeManager/runtimeManager.lifecycle.js.map +0 -1
  460. package/dist/runtime/runtimeManager/runtimeManager.type.d.ts +0 -54
  461. package/dist/runtime/runtimeManager/runtimeManager.type.d.ts.map +0 -1
  462. package/dist/runtime/runtimeManager/runtimeManager.type.js +0 -2
  463. package/dist/runtime/runtimeManager/runtimeManager.type.js.map +0 -1
  464. package/dist/runtime/runtimeOptions/index.d.ts.map +0 -1
  465. package/dist/runtime/runtimeOptions/index.js.map +0 -1
  466. package/dist/runtime/runtimeOptions/runtimeOptions.defaults.d.ts.map +0 -1
  467. package/dist/runtime/runtimeOptions/runtimeOptions.defaults.js.map +0 -1
  468. package/dist/runtime/runtimeOptions/runtimeOptions.resolver.d.ts.map +0 -1
  469. package/dist/runtime/runtimeOptions/runtimeOptions.resolver.js.map +0 -1
  470. package/dist/runtime/runtimeOptions/runtimeOptions.type.d.ts.map +0 -1
  471. package/dist/runtime/runtimeOptions/runtimeOptions.type.js.map +0 -1
  472. package/dist/runtime/runtimeOptions/runtimeOptions.validation.d.ts.map +0 -1
  473. package/dist/runtime/runtimeOptions/runtimeOptions.validation.js.map +0 -1
  474. package/dist/runtime/runtimeShutdown/index.d.ts.map +0 -1
  475. package/dist/runtime/runtimeShutdown/index.js.map +0 -1
  476. package/dist/runtime/runtimeShutdown/pipeline/index.d.ts.map +0 -1
  477. package/dist/runtime/runtimeShutdown/pipeline/index.js.map +0 -1
  478. package/dist/runtime/runtimeShutdown/pipeline/runtimeShutdown.pipeline.d.ts.map +0 -1
  479. package/dist/runtime/runtimeShutdown/pipeline/runtimeShutdown.pipeline.js.map +0 -1
  480. package/dist/runtime/runtimeShutdown/runtimeShutdown.core.d.ts.map +0 -1
  481. package/dist/runtime/runtimeShutdown/runtimeShutdown.core.js.map +0 -1
  482. package/dist/runtime/runtimeShutdown/runtimeShutdown.type.d.ts.map +0 -1
  483. package/dist/runtime/runtimeShutdown/runtimeShutdown.type.js.map +0 -1
  484. package/dist/runtime/runtimeState.state.d.ts.map +0 -1
  485. package/dist/runtime/runtimeState.state.js.map +0 -1
@@ -1,11 +1,23 @@
1
1
  import { ModuleLifecycleError } from "./moduleLifecycle.type.js";
2
- /** Ensures lifecycle state is synchronized with the registry. */
2
+ import { ModuleNotFoundError } from "../moduleError/moduleError.registration.js";
3
+ /**
4
+ * Ensures lifecycle state is synchronized with the registry.
5
+ *
6
+ * Registered modules gain a "created" state; states belonging to
7
+ * modules that are no longer registered are pruned.
8
+ */
3
9
  export function ensureStateSynchronized(registry, states) {
10
+ const registered = new Set();
4
11
  for (const registration of registry.getAll()) {
5
12
  const moduleId = registration.definition.id;
13
+ registered.add(moduleId);
6
14
  if (!states.has(moduleId))
7
15
  states.set(moduleId, { moduleId, phase: "created" });
8
16
  }
17
+ for (const moduleId of [...states.keys()]) {
18
+ if (!registered.has(moduleId))
19
+ states.delete(moduleId);
20
+ }
9
21
  }
10
22
  export function getLifecycleState(moduleId, states) {
11
23
  return states.get(moduleId);
@@ -13,7 +25,7 @@ export function getLifecycleState(moduleId, states) {
13
25
  export function requireLifecycleState(moduleId, states) {
14
26
  const state = getLifecycleState(moduleId, states);
15
27
  if (!state)
16
- throw new Error(`No lifecycle state exists for module "${moduleId}".`);
28
+ throw new ModuleNotFoundError(moduleId);
17
29
  return state;
18
30
  }
19
31
  export function getAllLifecycleStates(states) {
@@ -29,13 +41,59 @@ export function isModuleStarted(moduleId, states) {
29
41
  export function isModuleDestroyed(moduleId, states) {
30
42
  return getLifecycleState(moduleId, states)?.phase === "destroyed";
31
43
  }
32
- export async function invokeLifecycleHook(module, hook, context) {
33
- const lifecycleModule = module;
34
- const handler = lifecycleModule[hook];
44
+ /**
45
+ * Maps each lifecycle step to the hook of the public Module
46
+ * contract (ModuleLifecycle) that the engine invokes for it.
47
+ */
48
+ const STEP_HOOKS = {
49
+ initialize: "onInitialize",
50
+ start: "onReady",
51
+ stop: "onShutdown",
52
+ destroy: "onDestroy",
53
+ };
54
+ /**
55
+ * Invokes the lifecycle hook for a step on a module.
56
+ *
57
+ * Only the canonical Module contract hooks are invoked:
58
+ *
59
+ * initialize → onInitialize
60
+ * start → onReady
61
+ * stop → onShutdown
62
+ * destroy → onDestroy
63
+ *
64
+ * Modules that do not implement a hook are skipped for that step.
65
+ *
66
+ * When `contextStorage` holds an active execution context (the
67
+ * runtime's, during bootstrap and shutdown), the hook runs inside a
68
+ * context derived from it: `module` is the module id, `operation`
69
+ * is the hook name, and `{ moduleId, phase }` is merged into the
70
+ * metadata. Everything the hook awaits observes that context.
71
+ */
72
+ export async function invokeLifecycleHook(module, step, context, contextStorage, phase = STEP_PHASES[step]) {
73
+ const hookName = STEP_HOOKS[step];
74
+ const handler = module[hookName];
35
75
  if (typeof handler !== "function")
36
76
  return;
37
- await handler.call(module, context);
77
+ const invoke = () => handler.call(module, context);
78
+ if (contextStorage?.has()) {
79
+ await contextStorage.runDerived({
80
+ module: module.id,
81
+ operation: hookName,
82
+ metadata: { moduleId: module.id, phase },
83
+ }, invoke);
84
+ return;
85
+ }
86
+ await invoke();
38
87
  }
88
+ /**
89
+ * Active phase a module is in while each step's hook runs.
90
+ */
91
+ const STEP_PHASES = {
92
+ initialize: "initializing",
93
+ start: "starting",
94
+ stop: "stopping",
95
+ destroy: "destroying",
96
+ };
39
97
  export function canModuleEnterPhase(moduleId, hook, states) {
40
98
  const state = getLifecycleState(moduleId, states);
41
99
  if (!state)
@@ -50,7 +108,9 @@ export function canModuleEnterPhase(moduleId, hook, states) {
50
108
  case "destroy":
51
109
  return (state.phase === "stopped" ||
52
110
  state.phase === "initialized" ||
53
- state.phase === "created");
111
+ state.phase === "created" ||
112
+ state.phase === "started" ||
113
+ state.phase === "failed");
54
114
  default:
55
115
  return false;
56
116
  }
@@ -68,9 +128,30 @@ export function setLifecycleState(moduleId, phase, states, error) {
68
128
  destroyedAt: phase === "destroyed" ? now : previous?.destroyedAt,
69
129
  }));
70
130
  }
71
- export async function executeLifecyclePhase(order, hook, activePhase, completedPhase, continueOnError, registry, loader, states) {
131
+ /**
132
+ * Phases that count as "already satisfied" for a hook: modules
133
+ * in these phases are silently skipped rather than reported.
134
+ */
135
+ const SATISFIED_PHASES = {
136
+ initialize: ["initialized", "starting", "started"],
137
+ start: ["started"],
138
+ stop: ["created", "initialized", "stopped", "destroying", "destroyed"],
139
+ destroy: ["destroyed"],
140
+ };
141
+ /**
142
+ * Phases a required dependency must be in before a dependent
143
+ * module may enter a forward phase.
144
+ */
145
+ const REQUIRED_DEPENDENCY_PHASES = {
146
+ initialize: ["initialized", "starting", "started"],
147
+ start: ["started"],
148
+ };
149
+ export async function executeLifecyclePhase(order, hook, activePhase, completedPhase, continueOnError, registry, loader, states, contextStorage) {
72
150
  const completed = [];
73
151
  const failed = [];
152
+ const skipped = [];
153
+ const blocked = new Set();
154
+ const requiredDependencyPhases = REQUIRED_DEPENDENCY_PHASES[hook];
74
155
  for (const moduleId of order) {
75
156
  const registration = registry.get(moduleId);
76
157
  if (!registration?.instance)
@@ -84,11 +165,49 @@ export async function executeLifecyclePhase(order, hook, activePhase, completedP
84
165
  throw new ModuleLifecycleError(moduleId, activePhase, new Error(`Module "${moduleId}" does not have a ModuleContext.`));
85
166
  continue;
86
167
  }
87
- if (!canModuleEnterPhase(moduleId, hook, states))
168
+ const currentPhase = getLifecycleState(moduleId, states)?.phase;
169
+ if (!canModuleEnterPhase(moduleId, hook, states)) {
170
+ if (currentPhase !== undefined &&
171
+ SATISFIED_PHASES[hook].includes(currentPhase)) {
172
+ continue;
173
+ }
174
+ skipped.push({
175
+ moduleId,
176
+ reason: `Module is in phase "${currentPhase ?? "unknown"}" and cannot enter ${hook}.`,
177
+ });
178
+ blocked.add(moduleId);
88
179
  continue;
180
+ }
181
+ /*
182
+ * Forward phases only run when every required dependency
183
+ * reached the requisite state. Modules whose dependencies
184
+ * failed (or were skipped) are skipped with a reason instead
185
+ * of being initialized against a broken dependency.
186
+ */
187
+ if (requiredDependencyPhases) {
188
+ const blockingDependency = registry
189
+ .getDependencies(moduleId)
190
+ .find((dependency) => {
191
+ if (dependency.optional)
192
+ return false;
193
+ if (blocked.has(dependency.id) || failed.includes(dependency.id))
194
+ return true;
195
+ const dependencyPhase = getLifecycleState(dependency.id, states)?.phase;
196
+ return (dependencyPhase === undefined ||
197
+ !requiredDependencyPhases.includes(dependencyPhase));
198
+ });
199
+ if (blockingDependency) {
200
+ skipped.push({
201
+ moduleId,
202
+ reason: `Dependency "${blockingDependency.id}" is not ready for ${hook}.`,
203
+ });
204
+ blocked.add(moduleId);
205
+ continue;
206
+ }
207
+ }
89
208
  setLifecycleState(moduleId, activePhase, states);
90
209
  try {
91
- await invokeLifecycleHook(module, hook, context);
210
+ await invokeLifecycleHook(module, hook, context, contextStorage, activePhase);
92
211
  setLifecycleState(moduleId, completedPhase, states);
93
212
  completed.push(moduleId);
94
213
  }
@@ -102,6 +221,7 @@ export async function executeLifecyclePhase(order, hook, activePhase, completedP
102
221
  return {
103
222
  completed: Object.freeze([...completed]),
104
223
  failed: Object.freeze([...failed]),
224
+ skipped: Object.freeze([...skipped]),
105
225
  };
106
226
  }
107
227
  //# sourceMappingURL=moduleLifecycle.stateMachine.js.map
@@ -1,5 +1,5 @@
1
- import type { ModuleId } from "../module.js";
2
- import type { ModuleContext } from "../moduleContext.context.js";
1
+ import type { ModuleId, ModuleLifecycle } from "../module.js";
2
+ import type { ContextStorage } from "../../context/provider/contextStorage.storage.js";
3
3
  /**
4
4
  * Lifecycle phases supported by the module system.
5
5
  */
@@ -16,34 +16,34 @@ export interface ModuleLifecycleState {
16
16
  readonly stoppedAt?: Date;
17
17
  readonly destroyedAt?: Date;
18
18
  }
19
+ /**
20
+ * Canonical lifecycle hook names of the public Module contract.
21
+ *
22
+ * The lifecycle engine invokes exactly these methods:
23
+ *
24
+ * initialize step → onInitialize
25
+ * start step → onReady
26
+ * stop step → onShutdown
27
+ * destroy step → onDestroy
28
+ */
29
+ export type ModuleLifecycleHookName = "onInitialize" | "onReady" | "onShutdown" | "onDestroy";
30
+ /**
31
+ * Lifecycle steps executed by the module lifecycle engine.
32
+ *
33
+ * Each step maps onto one ModuleLifecycleHookName; see
34
+ * ModuleLifecycleHookName for the mapping.
35
+ */
36
+ export type ModuleLifecycleStep = "initialize" | "start" | "stop" | "destroy";
19
37
  /**
20
38
  * Lifecycle hooks supported by a module.
21
39
  *
22
- * Modules can implement any subset of these hooks.
40
+ * @deprecated The module hook contract is ModuleLifecycle
41
+ * (onInitialize/onReady/onShutdown/onDestroy). This alias exists
42
+ * for source compatibility only; the legacy
43
+ * initialize/start/stop/destroy method names are never invoked
44
+ * by the lifecycle engine.
23
45
  */
24
- export interface ModuleLifecycleHooks {
25
- /**
26
- * Called before the module starts accepting work.
27
- */
28
- initialize?(context: ModuleContext): void | Promise<void>;
29
- /**
30
- * Called after all modules have initialized.
31
- *
32
- * This is useful when a module needs other modules to
33
- * already be initialized before it becomes active.
34
- */
35
- start?(context: ModuleContext): void | Promise<void>;
36
- /**
37
- * Called when the application begins shutting down.
38
- */
39
- stop?(context: ModuleContext): void | Promise<void>;
40
- /**
41
- * Called after the module has stopped.
42
- *
43
- * This is the place for final resource cleanup.
44
- */
45
- destroy?(context: ModuleContext): void | Promise<void>;
46
- }
46
+ export type ModuleLifecycleHooks = ModuleLifecycle;
47
47
  /**
48
48
  * Options controlling module lifecycle behavior.
49
49
  */
@@ -72,20 +72,57 @@ export interface ModuleLifecycleOptions {
72
72
  * Defaults to true.
73
73
  */
74
74
  readonly continueOnDestroyError?: boolean;
75
+ /**
76
+ * ContextStorage consulted before every hook invocation. When an
77
+ * execution context is active in it (the runtime establishes its
78
+ * RuntimeExecutionContext around bootstrap and shutdown), each
79
+ * hook runs in a context derived from it with
80
+ * `module`/`operation` set and `{ moduleId, phase }` merged into
81
+ * the metadata. When no context is active the hook is invoked
82
+ * directly.
83
+ *
84
+ * Defaults to getDefaultContextStorage(); pass the runtime's
85
+ * storage when injecting a custom one.
86
+ */
87
+ readonly contextStorage?: ContextStorage;
75
88
  }
76
- import { ModuleLifecycleError as BaseModuleLifecycleError } from "@zudojs/errors";
89
+ import { ModuleOperationError } from "../moduleError/moduleError.lifecycle.js";
77
90
  /**
78
91
  * Error thrown when a module lifecycle operation fails.
92
+ *
93
+ * Part of the core module error taxonomy: it is a ModuleError
94
+ * carrying the phase-specific code (MODULE_INITIALIZATION_FAILED,
95
+ * MODULE_START_FAILED, ...), so callers can catch it by type or by
96
+ * code.
79
97
  */
80
- export declare class ModuleLifecycleError extends BaseModuleLifecycleError {
98
+ export declare class ModuleLifecycleError extends ModuleOperationError {
99
+ /**
100
+ * Errors encountered while rolling back already-completed
101
+ * modules after this failure. Best-effort: rollback itself
102
+ * never masks the original failure.
103
+ */
104
+ rollbackErrors?: readonly unknown[];
81
105
  constructor(moduleId: ModuleId, phase: ModuleLifecyclePhase, cause: unknown);
82
106
  }
107
+ /**
108
+ * Reason a module was skipped during a lifecycle phase.
109
+ */
110
+ export interface ModuleLifecycleSkip {
111
+ readonly moduleId: ModuleId;
112
+ readonly reason: string;
113
+ }
83
114
  /**
84
115
  * Result of a lifecycle operation.
85
116
  */
86
117
  export interface ModuleLifecycleResult {
87
118
  readonly completed: readonly ModuleId[];
88
119
  readonly failed: readonly ModuleId[];
120
+ /**
121
+ * Modules that could not participate in the phase, with the
122
+ * reason: their required dependencies failed or were skipped,
123
+ * or their current phase does not permit the transition.
124
+ */
125
+ readonly skipped: readonly ModuleLifecycleSkip[];
89
126
  }
90
127
  /**
91
128
  * Internal lifecycle state map.
@@ -1,11 +1,22 @@
1
- import { ModuleLifecycleError as BaseModuleLifecycleError } from "@zudojs/errors";
1
+ import { ModuleOperationError } from "../moduleError/moduleError.lifecycle.js";
2
2
  /**
3
3
  * Error thrown when a module lifecycle operation fails.
4
+ *
5
+ * Part of the core module error taxonomy: it is a ModuleError
6
+ * carrying the phase-specific code (MODULE_INITIALIZATION_FAILED,
7
+ * MODULE_START_FAILED, ...), so callers can catch it by type or by
8
+ * code.
4
9
  */
5
- export class ModuleLifecycleError extends BaseModuleLifecycleError {
10
+ export class ModuleLifecycleError extends ModuleOperationError {
11
+ /**
12
+ * Errors encountered while rolling back already-completed
13
+ * modules after this failure. Best-effort: rollback itself
14
+ * never masks the original failure.
15
+ */
16
+ rollbackErrors;
6
17
  constructor(moduleId, phase, cause) {
7
- const message = cause instanceof Error ? cause.message : String(cause);
8
- super(moduleId, phase, `Module "${moduleId}" failed during ${phase}: ${message}`, cause);
18
+ super(moduleId, phase, cause);
19
+ this.name = "ModuleLifecycleError";
9
20
  }
10
21
  }
11
22
  //# sourceMappingURL=moduleLifecycle.type.js.map
@@ -7,6 +7,11 @@ import type { ModuleLoaderOptions, ModuleLoadResult } from "./moduleLoader.type.
7
7
  *
8
8
  * Reads definitions from registry, builds dependency graph,
9
9
  * validates, resolves startup order, instantiates modules.
10
+ *
11
+ * Dependencies are always resolved against every registered
12
+ * definition. autoLoad filtering applies only to load roots:
13
+ * a module registered with autoLoad disabled is still loaded
14
+ * when another loading module requires it.
10
15
  */
11
16
  export declare class ModuleLoader {
12
17
  private readonly application;
@@ -15,21 +20,50 @@ export declare class ModuleLoader {
15
20
  private readonly registry;
16
21
  private readonly allowExplicitLoad;
17
22
  private readonly contexts;
23
+ private readonly inFlightLoads;
18
24
  constructor(registry: ModuleRegistry, options: ModuleLoaderOptions);
19
- /** Loads every module whose definition has autoLoad enabled. */
25
+ /**
26
+ * Loads every module whose definition has autoLoad enabled,
27
+ * plus every module those modules require (regardless of the
28
+ * required module's autoLoad setting).
29
+ */
20
30
  loadAll(): Promise<ModuleLoadResult>;
21
- /** Loads a specific module and all of its required dependencies. */
31
+ /**
32
+ * Loads a specific module and all of its required dependencies.
33
+ *
34
+ * Concurrent load() calls for the same module share a single
35
+ * in-flight load.
36
+ */
22
37
  load(moduleId: ModuleId): Promise<Module>;
23
- private loadDefinitions;
38
+ /**
39
+ * Loads the dependency closure of the requested module ids.
40
+ */
41
+ private loadClosure;
42
+ /**
43
+ * Collects the dependency closure of the requested modules
44
+ * across every registered definition.
45
+ *
46
+ * Optional dependencies join the closure only when they are
47
+ * registered; missing required dependencies are reported with
48
+ * the module that needs them.
49
+ */
50
+ private collectClosure;
24
51
  private createGraph;
25
- private collectDependencies;
26
52
  private instantiate;
27
53
  private createModuleLogger;
28
- private isExplicitlyRequested;
29
54
  getContext(moduleId: ModuleId): ModuleContext | undefined;
30
55
  requireContext(moduleId: ModuleId): ModuleContext;
31
56
  getContexts(): ReadonlyMap<ModuleId, ModuleContext>;
32
57
  isLoaded(moduleId: ModuleId): boolean;
58
+ /**
59
+ * Forgets a module's runtime instance and context.
60
+ *
61
+ * The loader does not run lifecycle hooks; callers that need
62
+ * the instance shut down first should use
63
+ * ModuleLifecycleManager.unloadModule(). Returns false when the
64
+ * module is not registered or holds no instance.
65
+ */
66
+ unload(moduleId: ModuleId): boolean;
33
67
  }
34
68
  /** Creates a module loader. */
35
69
  export declare function createModuleLoader(registry: ModuleRegistry, options: ModuleLoaderOptions): ModuleLoader;