@zudojs/core 0.1.0 → 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
@@ -2,9 +2,10 @@
2
2
  * Application bootstrap and context management.
3
3
  *
4
4
  * Provides the main Application class, its context,
5
- * and application state types.
5
+ * application state types, and the createApplication factory.
6
6
  */
7
7
  export * from "./application.js";
8
8
  export * from "./applicationContext.context.js";
9
9
  export * from "./applicationState.state.js";
10
+ export * from "./createApplication.js";
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -2,9 +2,10 @@
2
2
  * Application bootstrap and context management.
3
3
  *
4
4
  * Provides the main Application class, its context,
5
- * and application state types.
5
+ * application state types, and the createApplication factory.
6
6
  */
7
7
  export * from "./application.js";
8
8
  export * from "./applicationContext.context.js";
9
9
  export * from "./applicationState.state.js";
10
+ export * from "./createApplication.js";
10
11
  //# sourceMappingURL=index.js.map
@@ -7,6 +7,7 @@ import { ConfigurationSchemaRegistry } from "./schema/configurationSchema.schema
7
7
  import type { ConfigurationValidationOptions, ConfigurationValidationReport } from "./schema/configurationValidation.validator.js";
8
8
  import { ConfigurationRedactor } from "./error/configurationRedactor.redactor.js";
9
9
  import type { ConfigurationRedactorOptions, RedactedConfiguration } from "./error/configurationRedactor.redactor.js";
10
+ import type { ConfigurationEventListener, ConfigurationEventTypeValue } from "./events/configurationEvents.events.js";
10
11
  /** Lifecycle state of the configuration manager. */
11
12
  export declare enum ConfigurationManagerState {
12
13
  CREATED = "created",
@@ -32,6 +33,12 @@ export interface ConfigurationManagerResult {
32
33
  readonly load: ConfigurationLoadResult;
33
34
  readonly validation: ConfigurationValidationReport;
34
35
  }
36
+ /**
37
+ * Event type accepted when subscribing to the manager.
38
+ *
39
+ * "*" subscribes to every configuration lifecycle event.
40
+ */
41
+ export type ConfigurationEventSubscription = ConfigurationEventTypeValue | "*";
35
42
  /** Coordinates the complete configuration lifecycle. */
36
43
  export declare class ConfigurationManager {
37
44
  private readonly loader;
@@ -40,17 +47,41 @@ export declare class ConfigurationManager {
40
47
  private readonly schemas;
41
48
  private readonly redactor;
42
49
  private readonly validationOptions;
50
+ private readonly listeners;
51
+ private readonly listenerErrors;
43
52
  private configuration;
44
53
  private loadResult;
45
54
  private validationReport;
55
+ private missingSetConfigurationWarned;
46
56
  private stateValue;
47
57
  constructor(options?: ConfigurationManagerOptions);
58
+ /**
59
+ * Subscribes to configuration lifecycle events.
60
+ *
61
+ * Pass "*" to receive every event. Returns an unsubscribe
62
+ * function.
63
+ */
64
+ on(type: ConfigurationEventSubscription, listener: ConfigurationEventListener): () => void;
65
+ /** Removes a previously registered event listener. */
66
+ off(type: ConfigurationEventSubscription, listener: ConfigurationEventListener): boolean;
67
+ /**
68
+ * Returns errors thrown by event listeners.
69
+ *
70
+ * Listener failures never interrupt configuration loading;
71
+ * they are collected here for diagnostics.
72
+ */
73
+ getListenerErrors(): readonly unknown[];
48
74
  initialize(): Promise<ConfigurationManagerResult>;
49
75
  reload(): Promise<ConfigurationManagerResult>;
50
76
  getConfiguration(): Configuration;
51
77
  getProvider(): ConfigurationProvider;
52
78
  getRegistry(): ConfigurationRegistry;
53
79
  getSchemaRegistry(): ConfigurationSchemaRegistry;
80
+ /**
81
+ * Returns the active configuration scoped to a section
82
+ * registered with the manager's registry.
83
+ */
84
+ getSection(name: string): Configuration;
54
85
  getLoader(): ConfigurationLoader;
55
86
  getRedactor(): ConfigurationRedactor;
56
87
  getState(): ConfigurationManagerState;
@@ -61,6 +92,7 @@ export declare class ConfigurationManager {
61
92
  get<T = unknown>(path: string): T | undefined;
62
93
  require<T = unknown>(path: string): T;
63
94
  private providerConfiguration;
95
+ private emit;
64
96
  private ensureReady;
65
97
  }
66
98
  /** Creates a ConfigurationManager. */
@@ -2,10 +2,12 @@ import { Configuration } from "./core/configuration.js";
2
2
  import { ConfigurationLoader } from "./loader/configurationLoader.loader.js";
3
3
  import { DefaultConfigurationProvider } from "./registry/configurationProvider.provider.js";
4
4
  import { ConfigurationRegistry } from "./registry/configurationRegistry.registry.js";
5
+ import { InvalidStateError } from "../errors/exceptions.js";
5
6
  import { ConfigurationSchemaRegistry } from "./schema/configurationSchema.schema.js";
6
- import { validateConfiguration } from "./schema/configurationValidation.validator.js";
7
+ import { applyConfigurationSchemaDefaults, validateConfiguration, } from "./schema/configurationValidation.validator.js";
7
8
  import { ConfigurationValidationError } from "./schema/configurationValidation.validator.js";
8
9
  import { ConfigurationRedactor } from "./error/configurationRedactor.redactor.js";
10
+ import { createConfigurationFailedEvent, createConfigurationInitializingEvent, createConfigurationLoadedEvent, createConfigurationReadyEvent, createConfigurationReloadedEvent, createConfigurationReloadingEvent, createConfigurationValidatedEvent, } from "./events/configurationEvents.events.js";
9
11
  /** Lifecycle state of the configuration manager. */
10
12
  export var ConfigurationManagerState;
11
13
  (function (ConfigurationManagerState) {
@@ -23,9 +25,12 @@ export class ConfigurationManager {
23
25
  schemas;
24
26
  redactor;
25
27
  validationOptions;
28
+ listeners = new Map();
29
+ listenerErrors = [];
26
30
  configuration;
27
31
  loadResult;
28
32
  validationReport;
33
+ missingSetConfigurationWarned = false;
29
34
  stateValue = ConfigurationManagerState.CREATED;
30
35
  constructor(options = {}) {
31
36
  this.loader =
@@ -37,23 +42,56 @@ export class ConfigurationManager {
37
42
  options.redactor ?? new ConfigurationRedactor(options.redactorOptions);
38
43
  this.validationOptions = options.validationOptions ?? {};
39
44
  }
45
+ /**
46
+ * Subscribes to configuration lifecycle events.
47
+ *
48
+ * Pass "*" to receive every event. Returns an unsubscribe
49
+ * function.
50
+ */
51
+ on(type, listener) {
52
+ let listeners = this.listeners.get(type);
53
+ if (!listeners) {
54
+ listeners = new Set();
55
+ this.listeners.set(type, listeners);
56
+ }
57
+ listeners.add(listener);
58
+ return () => this.off(type, listener);
59
+ }
60
+ /** Removes a previously registered event listener. */
61
+ off(type, listener) {
62
+ return this.listeners.get(type)?.delete(listener) ?? false;
63
+ }
64
+ /**
65
+ * Returns errors thrown by event listeners.
66
+ *
67
+ * Listener failures never interrupt configuration loading;
68
+ * they are collected here for diagnostics.
69
+ */
70
+ getListenerErrors() {
71
+ return [...this.listenerErrors];
72
+ }
40
73
  async initialize() {
41
74
  if (this.stateValue === ConfigurationManagerState.LOADING)
42
- throw new Error("Configuration initialization is already in progress.");
75
+ throw new InvalidStateError("Configuration initialization is already in progress.", { state: this.stateValue });
43
76
  this.stateValue = ConfigurationManagerState.LOADING;
77
+ this.emit(createConfigurationInitializingEvent(this.stateValue));
44
78
  try {
45
- const loadResult = await this.loader.load();
79
+ const loadResult = await this.loader.load(this.registry.getSources());
46
80
  this.loadResult = loadResult;
47
81
  this.configuration = loadResult.configuration;
48
82
  this.stateValue = ConfigurationManagerState.LOADED;
83
+ this.emit(createConfigurationLoadedEvent(this.stateValue, loadResult));
49
84
  const validation = await validateConfiguration(this.configuration, this.schemas, this.validationOptions);
50
85
  this.validationReport = validation;
51
86
  if (!validation.valid) {
52
87
  this.stateValue = ConfigurationManagerState.FAILED;
53
88
  throw new ConfigurationValidationError(validation.issues, validation.schemaCount, validation.invalidSchemaCount);
54
89
  }
90
+ this.configuration = applyConfigurationSchemaDefaults(this.configuration, this.schemas);
91
+ this.emit(createConfigurationValidatedEvent(this.stateValue, this.configuration, validation));
55
92
  this.providerConfiguration(this.configuration);
56
93
  this.stateValue = ConfigurationManagerState.READY;
94
+ this.emit(createConfigurationReadyEvent(this.stateValue, this.configuration, validation));
57
95
  return {
58
96
  configuration: this.configuration,
59
97
  load: loadResult,
@@ -62,6 +100,7 @@ export class ConfigurationManager {
62
100
  }
63
101
  catch (error) {
64
102
  this.stateValue = ConfigurationManagerState.FAILED;
103
+ this.emit(createConfigurationFailedEvent(this.stateValue, error));
65
104
  throw error;
66
105
  }
67
106
  }
@@ -72,9 +111,10 @@ export class ConfigurationManager {
72
111
  const previousLoadResult = this.loadResult;
73
112
  const previousValidation = this.validationReport;
74
113
  this.stateValue = ConfigurationManagerState.LOADING;
114
+ this.emit(createConfigurationReloadingEvent(this.stateValue, previousConfiguration));
75
115
  try {
76
- const loadResult = await this.loader.load();
77
- const configuration = loadResult.configuration;
116
+ const loadResult = await this.loader.load(this.registry.getSources());
117
+ let configuration = loadResult.configuration;
78
118
  const validation = await validateConfiguration(configuration, this.schemas, this.validationOptions);
79
119
  if (!validation.valid) {
80
120
  this.configuration = previousConfiguration;
@@ -83,11 +123,13 @@ export class ConfigurationManager {
83
123
  this.stateValue = ConfigurationManagerState.READY;
84
124
  throw new ConfigurationValidationError(validation.issues, validation.schemaCount, validation.invalidSchemaCount);
85
125
  }
126
+ configuration = applyConfigurationSchemaDefaults(configuration, this.schemas);
86
127
  this.configuration = configuration;
87
128
  this.loadResult = loadResult;
88
129
  this.validationReport = validation;
89
130
  this.providerConfiguration(configuration);
90
131
  this.stateValue = ConfigurationManagerState.READY;
132
+ this.emit(createConfigurationReloadedEvent(this.stateValue, previousConfiguration, configuration, loadResult, validation));
91
133
  return { configuration, load: loadResult, validation };
92
134
  }
93
135
  catch (error) {
@@ -96,6 +138,7 @@ export class ConfigurationManager {
96
138
  this.stateValue = previousConfiguration
97
139
  ? ConfigurationManagerState.READY
98
140
  : ConfigurationManagerState.FAILED;
141
+ this.emit(createConfigurationFailedEvent(this.stateValue, error, previousConfiguration));
99
142
  throw error;
100
143
  }
101
144
  }
@@ -112,6 +155,14 @@ export class ConfigurationManager {
112
155
  getSchemaRegistry() {
113
156
  return this.schemas;
114
157
  }
158
+ /**
159
+ * Returns the active configuration scoped to a section
160
+ * registered with the manager's registry.
161
+ */
162
+ getSection(name) {
163
+ this.ensureReady();
164
+ return this.registry.getConfigurationSection(this.configuration, name);
165
+ }
115
166
  getLoader() {
116
167
  return this.loader;
117
168
  }
@@ -136,18 +187,46 @@ export class ConfigurationManager {
136
187
  : undefined;
137
188
  }
138
189
  get(path) {
190
+ this.ensureReady();
139
191
  return this.getProvider().get(path);
140
192
  }
141
193
  require(path) {
194
+ this.ensureReady();
142
195
  return this.getProvider().require(path);
143
196
  }
144
197
  providerConfiguration(configuration) {
145
- if (this.provider instanceof DefaultConfigurationProvider)
198
+ if (typeof this.provider.setConfiguration === "function") {
146
199
  this.provider.setConfiguration(configuration);
200
+ return;
201
+ }
202
+ if (!this.missingSetConfigurationWarned) {
203
+ this.missingSetConfigurationWarned = true;
204
+ console.warn("ConfigurationManager: the configured ConfigurationProvider does not implement setConfiguration(); loaded configuration will not be pushed into the provider.");
205
+ }
206
+ }
207
+ emit(event) {
208
+ const listeners = [
209
+ ...(this.listeners.get(event.type) ?? []),
210
+ ...(this.listeners.get("*") ?? []),
211
+ ];
212
+ for (const listener of listeners) {
213
+ try {
214
+ const result = listener(event);
215
+ if (result instanceof Promise) {
216
+ void result.catch((error) => {
217
+ this.listenerErrors.push(error);
218
+ });
219
+ }
220
+ }
221
+ catch (error) {
222
+ /* Listener failures must never break configuration loading. */
223
+ this.listenerErrors.push(error);
224
+ }
225
+ }
147
226
  }
148
227
  ensureReady() {
149
228
  if (this.stateValue !== ConfigurationManagerState.READY)
150
- throw new Error(`Configuration is not ready. Current state: ${this.stateValue}.`);
229
+ throw new InvalidStateError(`Configuration is not ready. Current state: ${this.stateValue}.`, { state: this.stateValue });
151
230
  }
152
231
  }
153
232
  /** Creates a ConfigurationManager. */
@@ -1,34 +1,58 @@
1
- /** Represents a configuration source. */
2
- export type ConfigurationSource = "default" | "environment" | "file" | "secret" | "remote" | "runtime" | "custom";
1
+ import type { ConfigurationSourceType } from "./configurationSource.source.js";
2
+ import type { ConfigurationKey } from "./configurationKey.key.js";
3
3
  /** Configuration value types supported by the core configuration system. */
4
4
  export type ConfigurationValue = string | number | boolean | null | undefined | ConfigurationValue[] | {
5
5
  readonly [key: string]: ConfigurationValue;
6
6
  };
7
+ /**
8
+ * Source attribution for a configuration entry.
9
+ *
10
+ * "mixed" is reported when the values under a path originate
11
+ * from more than one source type.
12
+ */
13
+ export type ConfigurationEntrySource = ConfigurationSourceType | "mixed";
7
14
  /** Options used to create a Configuration instance. */
8
15
  export interface ConfigurationOptions {
9
16
  readonly values?: Record<string, ConfigurationValue>;
10
- readonly source?: ConfigurationSource;
17
+ readonly source?: ConfigurationSourceType;
11
18
  readonly namespace?: string;
12
- }
13
- /** Typed configuration key. */
14
- export interface ConfigurationKey<T> {
15
- readonly path: string;
16
- readonly id: symbol;
19
+ /**
20
+ * Per-path source attribution.
21
+ *
22
+ * Used internally when deriving configurations so entry-level
23
+ * source information survives `with()`, `merge()`, and `scope()`.
24
+ */
25
+ readonly sources?: ReadonlyMap<string, ConfigurationSourceType>;
17
26
  }
18
27
  /** Represents a configuration entry. */
19
28
  export interface ConfigurationEntry<T = ConfigurationValue> {
20
29
  readonly path: string;
21
30
  readonly value: T;
22
- readonly source: ConfigurationSource;
31
+ readonly source: ConfigurationEntrySource;
23
32
  }
24
- /** Immutable configuration container. */
33
+ /**
34
+ * Immutable configuration container.
35
+ *
36
+ * The values tree is deep-frozen at construction, so accessors can
37
+ * safely hand out internal references. Callers should treat any
38
+ * object passed into the constructor (or `with()`) as owned by the
39
+ * configuration afterwards: it becomes frozen.
40
+ */
25
41
  export declare class Configuration {
26
42
  private readonly values;
27
43
  private readonly source;
28
44
  private readonly namespace?;
45
+ private readonly pathSources;
29
46
  constructor(options?: ConfigurationOptions);
30
47
  getNamespace(): string | undefined;
31
- getSource(): ConfigurationSource;
48
+ /**
49
+ * Returns the source of a configuration path, or of the whole
50
+ * configuration when no path is supplied.
51
+ *
52
+ * When entries originate from multiple source types, "mixed"
53
+ * is returned.
54
+ */
55
+ getSource(path?: string): ConfigurationEntrySource;
32
56
  get<T = ConfigurationValue>(path: string): T | undefined;
33
57
  require<T = ConfigurationValue>(path: string): T;
34
58
  getByKey<T>(key: ConfigurationKey<T>): T | undefined;
@@ -37,17 +61,38 @@ export declare class Configuration {
37
61
  getBoolean(path: string, defaultValue?: boolean): boolean | undefined;
38
62
  getNumber(path: string, defaultValue?: number): number | undefined;
39
63
  getString(path: string, defaultValue?: string): string | undefined;
40
- createKey<T>(path: string): ConfigurationKey<T>;
41
64
  scope(namespace: string): Configuration;
42
65
  entries(): readonly ConfigurationEntry[];
43
- toObject(): Readonly<Record<string, ConfigurationValue>>;
66
+ /**
67
+ * Returns a deep copy of the complete values tree.
68
+ *
69
+ * The copy is unfrozen and independent of the configuration, so
70
+ * callers may mutate it freely without affecting this instance
71
+ * or anything derived from it.
72
+ */
73
+ toObject(): Record<string, ConfigurationValue>;
74
+ /**
75
+ * Deeply merges another configuration on top of this one.
76
+ *
77
+ * Objects are merged recursively, arrays and primitives are
78
+ * replaced. Per-path source attribution from both configurations
79
+ * is preserved; the other configuration wins on conflicts.
80
+ */
44
81
  merge(other: Configuration): Configuration;
45
- with<T extends ConfigurationValue>(path: string, value: T, source?: ConfigurationSource): Configuration;
82
+ with<T extends ConfigurationValue>(path: string, value: T, source?: ConfigurationSourceType): Configuration;
46
83
  without(path: string): Configuration;
47
84
  private normalizePath;
85
+ private hasSourceRecordFor;
86
+ private resolveAncestorSource;
87
+ private resolvePathSource;
88
+ private deepMergeValues;
48
89
  private setNestedValue;
90
+ /**
91
+ * Removes a nested value by shallow-cloning only the objects
92
+ * along the path, mirroring the strategy used by setNestedValue.
93
+ */
49
94
  private deleteNestedValue;
50
95
  }
51
- /** Creates an empty Configuration instance. */
96
+ /** Creates a Configuration instance. */
52
97
  export declare function createConfiguration(options?: ConfigurationOptions): Configuration;
53
98
  //# sourceMappingURL=configuration.d.ts.map