@bluelibs/runner 2.2.3 → 3.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 (204) hide show
  1. package/README.md +1315 -942
  2. package/dist/common.types.d.ts +20 -0
  3. package/dist/common.types.js +4 -0
  4. package/dist/common.types.js.map +1 -0
  5. package/dist/context.d.ts +34 -0
  6. package/dist/context.js +58 -0
  7. package/dist/context.js.map +1 -0
  8. package/dist/define.d.ts +22 -3
  9. package/dist/define.js +52 -8
  10. package/dist/define.js.map +1 -1
  11. package/dist/defs.d.ts +52 -31
  12. package/dist/defs.js +10 -2
  13. package/dist/defs.js.map +1 -1
  14. package/dist/errors.js +1 -1
  15. package/dist/errors.js.map +1 -1
  16. package/dist/event.types.d.ts +18 -0
  17. package/dist/event.types.js +4 -0
  18. package/dist/event.types.js.map +1 -0
  19. package/dist/examples/registrator-example.d.ts +122 -0
  20. package/dist/examples/registrator-example.js +147 -0
  21. package/dist/examples/registrator-example.js.map +1 -0
  22. package/dist/globals/globalEvents.d.ts +41 -0
  23. package/dist/globals/globalEvents.js +94 -0
  24. package/dist/globals/globalEvents.js.map +1 -0
  25. package/dist/globals/globalMiddleware.d.ts +23 -0
  26. package/dist/globals/globalMiddleware.js +15 -0
  27. package/dist/globals/globalMiddleware.js.map +1 -0
  28. package/dist/globals/globalResources.d.ts +27 -0
  29. package/dist/globals/globalResources.js +47 -0
  30. package/dist/globals/globalResources.js.map +1 -0
  31. package/dist/globals/middleware/cache.middleware.d.ts +34 -0
  32. package/dist/globals/middleware/cache.middleware.js +85 -0
  33. package/dist/globals/middleware/cache.middleware.js.map +1 -0
  34. package/dist/globals/middleware/requireContext.middleware.d.ts +6 -0
  35. package/dist/globals/middleware/requireContext.middleware.js +25 -0
  36. package/dist/globals/middleware/requireContext.middleware.js.map +1 -0
  37. package/dist/globals/middleware/retry.middleware.d.ts +20 -0
  38. package/dist/globals/middleware/retry.middleware.js +34 -0
  39. package/dist/globals/middleware/retry.middleware.js.map +1 -0
  40. package/dist/globals/resources/queue.resource.d.ts +7 -0
  41. package/dist/globals/resources/queue.resource.js +31 -0
  42. package/dist/globals/resources/queue.resource.js.map +1 -0
  43. package/dist/index.d.ts +45 -9
  44. package/dist/index.js +14 -9
  45. package/dist/index.js.map +1 -1
  46. package/dist/middleware.types.d.ts +40 -0
  47. package/dist/middleware.types.js +4 -0
  48. package/dist/middleware.types.js.map +1 -0
  49. package/dist/models/DependencyProcessor.d.ts +2 -1
  50. package/dist/models/DependencyProcessor.js +11 -13
  51. package/dist/models/DependencyProcessor.js.map +1 -1
  52. package/dist/models/EventManager.d.ts +5 -0
  53. package/dist/models/EventManager.js +44 -2
  54. package/dist/models/EventManager.js.map +1 -1
  55. package/dist/models/Logger.d.ts +30 -12
  56. package/dist/models/Logger.js +130 -42
  57. package/dist/models/Logger.js.map +1 -1
  58. package/dist/models/OverrideManager.d.ts +13 -0
  59. package/dist/models/OverrideManager.js +70 -0
  60. package/dist/models/OverrideManager.js.map +1 -0
  61. package/dist/models/Queue.d.ts +25 -0
  62. package/dist/models/Queue.js +54 -0
  63. package/dist/models/Queue.js.map +1 -0
  64. package/dist/models/ResourceInitializer.d.ts +5 -2
  65. package/dist/models/ResourceInitializer.js +20 -14
  66. package/dist/models/ResourceInitializer.js.map +1 -1
  67. package/dist/models/Semaphore.d.ts +61 -0
  68. package/dist/models/Semaphore.js +166 -0
  69. package/dist/models/Semaphore.js.map +1 -0
  70. package/dist/models/Store.d.ts +17 -72
  71. package/dist/models/Store.js +71 -269
  72. package/dist/models/Store.js.map +1 -1
  73. package/dist/models/StoreConstants.d.ts +11 -0
  74. package/dist/models/StoreConstants.js +18 -0
  75. package/dist/models/StoreConstants.js.map +1 -0
  76. package/dist/models/StoreRegistry.d.ts +25 -0
  77. package/dist/models/StoreRegistry.js +171 -0
  78. package/dist/models/StoreRegistry.js.map +1 -0
  79. package/dist/models/StoreTypes.d.ts +21 -0
  80. package/dist/models/StoreTypes.js +3 -0
  81. package/dist/models/StoreTypes.js.map +1 -0
  82. package/dist/models/StoreValidator.d.ts +10 -0
  83. package/dist/models/StoreValidator.js +41 -0
  84. package/dist/models/StoreValidator.js.map +1 -0
  85. package/dist/models/TaskRunner.js +39 -24
  86. package/dist/models/TaskRunner.js.map +1 -1
  87. package/dist/models/VarStore.d.ts +17 -0
  88. package/dist/models/VarStore.js +60 -0
  89. package/dist/models/VarStore.js.map +1 -0
  90. package/dist/models/index.d.ts +3 -0
  91. package/dist/models/index.js +3 -0
  92. package/dist/models/index.js.map +1 -1
  93. package/dist/resource.types.d.ts +31 -0
  94. package/dist/resource.types.js +3 -0
  95. package/dist/resource.types.js.map +1 -0
  96. package/dist/run.d.ts +4 -1
  97. package/dist/run.js +6 -3
  98. package/dist/run.js.map +1 -1
  99. package/dist/symbols.d.ts +24 -0
  100. package/dist/symbols.js +29 -0
  101. package/dist/symbols.js.map +1 -0
  102. package/dist/task.types.d.ts +55 -0
  103. package/dist/task.types.js +23 -0
  104. package/dist/task.types.js.map +1 -0
  105. package/dist/tools/registratorId.d.ts +4 -0
  106. package/dist/tools/registratorId.js +40 -0
  107. package/dist/tools/registratorId.js.map +1 -0
  108. package/dist/tools/simpleHash.d.ts +9 -0
  109. package/dist/tools/simpleHash.js +34 -0
  110. package/dist/tools/simpleHash.js.map +1 -0
  111. package/dist/types/base-interfaces.d.ts +18 -0
  112. package/dist/types/base-interfaces.js +6 -0
  113. package/dist/types/base-interfaces.js.map +1 -0
  114. package/dist/types/base.d.ts +13 -0
  115. package/dist/types/base.js +3 -0
  116. package/dist/types/base.js.map +1 -0
  117. package/dist/types/dependencies.d.ts +22 -0
  118. package/dist/types/dependencies.js +3 -0
  119. package/dist/types/dependencies.js.map +1 -0
  120. package/dist/types/dependency-core.d.ts +14 -0
  121. package/dist/types/dependency-core.js +5 -0
  122. package/dist/types/dependency-core.js.map +1 -0
  123. package/dist/types/events.d.ts +52 -0
  124. package/dist/types/events.js +6 -0
  125. package/dist/types/events.js.map +1 -0
  126. package/dist/types/hooks.d.ts +16 -0
  127. package/dist/types/hooks.js +5 -0
  128. package/dist/types/hooks.js.map +1 -0
  129. package/dist/types/index.d.ts +14 -0
  130. package/dist/types/index.js +27 -0
  131. package/dist/types/index.js.map +1 -0
  132. package/dist/types/meta.d.ts +13 -0
  133. package/dist/types/meta.js +5 -0
  134. package/dist/types/meta.js.map +1 -0
  135. package/dist/types/middleware.d.ts +38 -0
  136. package/dist/types/middleware.js +6 -0
  137. package/dist/types/middleware.js.map +1 -0
  138. package/dist/types/registerable.d.ts +10 -0
  139. package/dist/types/registerable.js +5 -0
  140. package/dist/types/registerable.js.map +1 -0
  141. package/dist/types/resources.d.ts +44 -0
  142. package/dist/types/resources.js +5 -0
  143. package/dist/types/resources.js.map +1 -0
  144. package/dist/types/symbols.d.ts +24 -0
  145. package/dist/types/symbols.js +30 -0
  146. package/dist/types/symbols.js.map +1 -0
  147. package/dist/types/tasks.d.ts +41 -0
  148. package/dist/types/tasks.js +5 -0
  149. package/dist/types/tasks.js.map +1 -0
  150. package/dist/types/utilities.d.ts +7 -0
  151. package/dist/types/utilities.js +5 -0
  152. package/dist/types/utilities.js.map +1 -0
  153. package/package.json +10 -6
  154. package/src/__tests__/benchmark/benchmark.test.ts +1 -1
  155. package/src/__tests__/context.test.ts +91 -0
  156. package/src/__tests__/errors.test.ts +8 -5
  157. package/src/__tests__/globalEvents.test.ts +1 -1
  158. package/src/__tests__/globals/cache.middleware.test.ts +772 -0
  159. package/src/__tests__/globals/queue.resource.test.ts +141 -0
  160. package/src/__tests__/globals/requireContext.middleware.test.ts +98 -0
  161. package/src/__tests__/globals/retry.middleware.test.ts +157 -0
  162. package/src/__tests__/index.helper.test.ts +55 -0
  163. package/src/__tests__/models/EventManager.test.ts +144 -0
  164. package/src/__tests__/models/Logger.test.ts +291 -34
  165. package/src/__tests__/models/Queue.test.ts +189 -0
  166. package/src/__tests__/models/ResourceInitializer.test.ts +8 -6
  167. package/src/__tests__/models/Semaphore.test.ts +713 -0
  168. package/src/__tests__/models/Store.test.ts +40 -0
  169. package/src/__tests__/models/TaskRunner.test.ts +86 -5
  170. package/src/__tests__/run.middleware.test.ts +166 -12
  171. package/src/__tests__/run.overrides.test.ts +13 -10
  172. package/src/__tests__/run.test.ts +363 -12
  173. package/src/__tests__/setOutput.test.ts +244 -0
  174. package/src/__tests__/tools/getCallerFile.test.ts +9 -9
  175. package/src/__tests__/typesafety.test.ts +54 -39
  176. package/src/context.ts +86 -0
  177. package/src/define.ts +84 -14
  178. package/src/defs.ts +91 -41
  179. package/src/errors.ts +3 -1
  180. package/src/{globalEvents.ts → globals/globalEvents.ts} +13 -12
  181. package/src/globals/globalMiddleware.ts +14 -0
  182. package/src/{globalResources.ts → globals/globalResources.ts} +14 -10
  183. package/src/globals/middleware/cache.middleware.ts +115 -0
  184. package/src/globals/middleware/requireContext.middleware.ts +36 -0
  185. package/src/globals/middleware/retry.middleware.ts +56 -0
  186. package/src/globals/resources/queue.resource.ts +34 -0
  187. package/src/index.ts +9 -5
  188. package/src/models/DependencyProcessor.ts +36 -40
  189. package/src/models/EventManager.ts +45 -5
  190. package/src/models/Logger.ts +170 -48
  191. package/src/models/OverrideManager.ts +84 -0
  192. package/src/models/Queue.ts +66 -0
  193. package/src/models/ResourceInitializer.ts +38 -20
  194. package/src/models/Semaphore.ts +208 -0
  195. package/src/models/Store.ts +94 -342
  196. package/src/models/StoreConstants.ts +17 -0
  197. package/src/models/StoreRegistry.ts +217 -0
  198. package/src/models/StoreTypes.ts +46 -0
  199. package/src/models/StoreValidator.ts +38 -0
  200. package/src/models/TaskRunner.ts +53 -40
  201. package/src/models/index.ts +3 -0
  202. package/src/run.ts +7 -4
  203. package/src/__tests__/index.ts +0 -15
  204. package/src/examples/express-mongo/index.ts +0 -1
package/dist/run.d.ts CHANGED
@@ -21,4 +21,7 @@ export type RunnerState = {
21
21
  events: Record<string, EventStoreElementType>;
22
22
  middleware: Record<string, MiddlewareStoreElementType>;
23
23
  };
24
- export declare function run<C, V>(resource: IResource<C, V>, config?: C): Promise<V>;
24
+ export declare function run<C, V>(resource: IResource<C, V>, config?: C): Promise<{
25
+ value: V;
26
+ dispose: () => Promise<void>;
27
+ }>;
package/dist/run.js CHANGED
@@ -4,11 +4,11 @@ exports.run = run;
4
4
  const TaskRunner_1 = require("./models/TaskRunner");
5
5
  const DependencyProcessor_1 = require("./models/DependencyProcessor");
6
6
  const EventManager_1 = require("./models/EventManager");
7
- const globalEvents_1 = require("./globalEvents");
7
+ const globalEvents_1 = require("./globals/globalEvents");
8
8
  const Store_1 = require("./models/Store");
9
9
  const findCircularDependencies_1 = require("./tools/findCircularDependencies");
10
10
  const errors_1 = require("./errors");
11
- const globalResources_1 = require("./globalResources");
11
+ const globalResources_1 = require("./globals/globalResources");
12
12
  const Logger_1 = require("./models/Logger");
13
13
  async function run(resource, config) {
14
14
  const eventManager = new EventManager_1.EventManager();
@@ -44,6 +44,9 @@ async function run(resource, config) {
44
44
  await logger.debug("System initialized and operational.");
45
45
  // disallow manipulation or attaching more
46
46
  store.lock();
47
- return store.root.value;
47
+ return {
48
+ value: store.root.value,
49
+ dispose: () => store.dispose(),
50
+ };
48
51
  }
49
52
  //# sourceMappingURL=run.js.map
package/dist/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":";;AAsDA,kBAuDC;AA7GD,oDAAiD;AAUjD,sEAAmE;AACnE,wDAAqD;AACrD,iDAA8C;AAC9C,0CAAuC;AACvC,+EAA4E;AAC5E,qCAAkC;AAClC,uDAAoD;AACpD,4CAAyC;AAqClC,KAAK,UAAU,GAAG,CACvB,QAAyB,EACzB,MAAU;IAEV,MAAM,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;IAExC,2FAA2F;IAC3F,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,YAAY,CAAC,CAAC;IAExC,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,IAAI,uBAAU,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,IAAI,yCAAmB,CACvC,KAAK,EACL,YAAY,EACZ,UAAU,EACV,MAAM,CACP,CAAC;IAEF,+FAA+F;IAC/F,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxC,KAAK,CAAC,gBAAgB,CAAC,iCAAe,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,KAAK,CAAC,gBAAgB,CAAC,iCAAe,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAEpE,kGAAkG;IAClG,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;IACjD,MAAM,oBAAoB,GAAG,IAAA,mDAAwB,EAAC,cAAc,CAAC,CAAC;IACtE,IAAI,oBAAoB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,eAAM,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,sFAAsF;IACtF,MAAM,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAE/B,iGAAiG;IACjG,MAAM,KAAK,CAAC,sBAAsB,EAAE,CAAC;IACrC,MAAM,SAAS,CAAC,eAAe,EAAE,CAAC;IAClC,MAAM,SAAS,CAAC,sBAAsB,EAAE,CAAC;IAEzC,6DAA6D;IAC7D,MAAM,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAE1D,mFAAmF;IACnF,iCAAiC;IACjC,MAAM,YAAY,CAAC,IAAI,CAAC,2BAAY,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEpE,0CAA0C;IAC1C,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC;IAEjC,MAAM,YAAY,CAAC,IAAI,CAAC,2BAAY,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnE,MAAM,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAE1D,0CAA0C;IAC1C,KAAK,CAAC,IAAI,EAAE,CAAC;IAEb,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":";;AAsDA,kBA0DC;AAhHD,oDAAiD;AAUjD,sEAAmE;AACnE,wDAAqD;AACrD,yDAAsD;AACtD,0CAAuC;AACvC,+EAA4E;AAC5E,qCAAkC;AAClC,+DAA4D;AAC5D,4CAAyC;AAqClC,KAAK,UAAU,GAAG,CACvB,QAAyB,EACzB,MAAU;IAEV,MAAM,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;IAExC,2FAA2F;IAC3F,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,YAAY,CAAC,CAAC;IAExC,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,IAAI,uBAAU,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,IAAI,yCAAmB,CACvC,KAAK,EACL,YAAY,EACZ,UAAU,EACV,MAAM,CACP,CAAC;IAEF,+FAA+F;IAC/F,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxC,KAAK,CAAC,gBAAgB,CAAC,iCAAe,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,KAAK,CAAC,gBAAgB,CAAC,iCAAe,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAEpE,kGAAkG;IAClG,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;IACjD,MAAM,oBAAoB,GAAG,IAAA,mDAAwB,EAAC,cAAc,CAAC,CAAC;IACtE,IAAI,oBAAoB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,eAAM,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,sFAAsF;IACtF,MAAM,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAE/B,iGAAiG;IACjG,MAAM,KAAK,CAAC,sBAAsB,EAAE,CAAC;IACrC,MAAM,SAAS,CAAC,eAAe,EAAE,CAAC;IAClC,MAAM,SAAS,CAAC,sBAAsB,EAAE,CAAC;IAEzC,6DAA6D;IAC7D,MAAM,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAE1D,mFAAmF;IACnF,iCAAiC;IACjC,MAAM,YAAY,CAAC,IAAI,CAAC,2BAAY,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEpE,0CAA0C;IAC1C,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC;IAEjC,MAAM,YAAY,CAAC,IAAI,CAAC,2BAAY,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnE,MAAM,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAE1D,0CAA0C;IAC1C,KAAK,CAAC,IAAI,EAAE,CAAC;IAEb,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;QACvB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE;KAC/B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ export declare const symbolTask: unique symbol;
2
+ export declare const symbolResource: unique symbol;
3
+ export declare const symbolResourceWithConfig: unique symbol;
4
+ export declare const symbolEvent: unique symbol;
5
+ export declare const symbolMiddleware: unique symbol;
6
+ export declare const symbolMiddlewareConfigured: unique symbol;
7
+ export declare const symbolMiddlewareGlobal: unique symbol;
8
+ export declare const symbolMiddlewareEverywhereTasks: unique symbol;
9
+ export declare const symbolMiddlewareEverywhereResources: unique symbol;
10
+ export declare const symbolFilePath: unique symbol;
11
+ export declare const symbolDispose: unique symbol;
12
+ export declare const symbolStore: unique symbol;
13
+ export declare const symbols: {
14
+ task: symbol;
15
+ resource: symbol;
16
+ resourceWithConfig: symbol;
17
+ event: symbol;
18
+ middleware: symbol;
19
+ middlewareEverywhereTasks: symbol;
20
+ middlewareEverywhereResources: symbol;
21
+ filePath: symbol;
22
+ dispose: symbol;
23
+ store: symbol;
24
+ };
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ // Symbol constants
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.symbols = exports.symbolStore = exports.symbolDispose = exports.symbolFilePath = exports.symbolMiddlewareEverywhereResources = exports.symbolMiddlewareEverywhereTasks = exports.symbolMiddlewareGlobal = exports.symbolMiddlewareConfigured = exports.symbolMiddleware = exports.symbolEvent = exports.symbolResourceWithConfig = exports.symbolResource = exports.symbolTask = void 0;
5
+ exports.symbolTask = Symbol("runner.task");
6
+ exports.symbolResource = Symbol("runner.resource");
7
+ exports.symbolResourceWithConfig = Symbol("runner.resourceWithConfig");
8
+ exports.symbolEvent = Symbol("runner.event");
9
+ exports.symbolMiddleware = Symbol("runner.middleware");
10
+ exports.symbolMiddlewareConfigured = Symbol("runner.middlewareConfigured");
11
+ exports.symbolMiddlewareGlobal = Symbol("runner.middlewareGlobal");
12
+ exports.symbolMiddlewareEverywhereTasks = Symbol("runner.middlewareGlobalTasks");
13
+ exports.symbolMiddlewareEverywhereResources = Symbol("runner.middlewareGlobalResources");
14
+ exports.symbolFilePath = Symbol("runner.filePath");
15
+ exports.symbolDispose = Symbol("runner.dispose");
16
+ exports.symbolStore = Symbol("runner.store");
17
+ exports.symbols = {
18
+ task: exports.symbolTask,
19
+ resource: exports.symbolResource,
20
+ resourceWithConfig: exports.symbolResourceWithConfig,
21
+ event: exports.symbolEvent,
22
+ middleware: exports.symbolMiddleware,
23
+ middlewareEverywhereTasks: exports.symbolMiddlewareEverywhereTasks,
24
+ middlewareEverywhereResources: exports.symbolMiddlewareEverywhereResources,
25
+ filePath: exports.symbolFilePath,
26
+ dispose: exports.symbolDispose,
27
+ store: exports.symbolStore,
28
+ };
29
+ //# sourceMappingURL=symbols.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../src/symbols.ts"],"names":[],"mappings":";AAAA,mBAAmB;;;AAEN,QAAA,UAAU,GAAkB,MAAM,CAAC,aAAa,CAAC,CAAC;AAClD,QAAA,cAAc,GAAkB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC1D,QAAA,wBAAwB,GAAkB,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAC9E,QAAA,WAAW,GAAkB,MAAM,CAAC,cAAc,CAAC,CAAC;AACpD,QAAA,gBAAgB,GAAkB,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAC9D,QAAA,0BAA0B,GAAkB,MAAM,CAAC,6BAA6B,CAAC,CAAC;AAClF,QAAA,sBAAsB,GAAkB,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAC1E,QAAA,+BAA+B,GAAkB,MAAM,CAAC,8BAA8B,CAAC,CAAC;AACxF,QAAA,mCAAmC,GAAkB,MAAM,CAAC,kCAAkC,CAAC,CAAC;AAChG,QAAA,cAAc,GAAkB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC1D,QAAA,aAAa,GAAkB,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACxD,QAAA,WAAW,GAAkB,MAAM,CAAC,cAAc,CAAC,CAAC;AAEpD,QAAA,OAAO,GAAG;IACrB,IAAI,EAAE,kBAAU;IAChB,QAAQ,EAAE,sBAAc;IACxB,kBAAkB,EAAE,gCAAwB;IAC5C,KAAK,EAAE,mBAAW;IAClB,UAAU,EAAE,wBAAgB;IAC5B,yBAAyB,EAAE,uCAA+B;IAC1D,6BAA6B,EAAE,2CAAmC;IAClE,QAAQ,EAAE,sBAAc;IACxB,OAAO,EAAE,qBAAa;IACtB,KAAK,EAAE,mBAAW;CACnB,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { ITaskMeta, DependencyMapType, DependencyValuesType } from "./common.types";
2
+ import { MiddlewareAttachments } from "./middleware.types";
3
+ import { IEvent, IEventDefinition } from "./event.types";
4
+ export type DependencyMapType = Record<string, ITask<any, any, any, any> | IResource<any, any, any> | IEventDefinition<any>>;
5
+ export type ExtractTaskInput<T> = T extends ITask<infer I, any, infer D> ? I : never;
6
+ export type ExtractTaskOutput<T> = T extends ITask<any, infer O, infer D> ? O : never;
7
+ export type ExtractResourceValue<T> = T extends IResource<any, infer V, infer D> ? V : never;
8
+ export type ExtractEventParams<T> = T extends IEventDefinition<infer P> ? P : never;
9
+ export type TaskDependency<I, O> = (...args: I extends null | void ? [] : [I]) => O;
10
+ export type ResourceDependency<V> = V;
11
+ export type EventDependency<P> = (input: P) => Promise<void>;
12
+ export type DependencyValueType<T> = T extends ITask<any, any, any> ? TaskDependency<ExtractTaskInput<T>, ExtractTaskOutput<T>> : T extends IResource<any, any> ? ResourceDependency<ExtractResourceValue<T>> : T extends IEventDefinition<any> ? EventDependency<ExtractEventParams<T>> : never;
13
+ export type DependencyValuesType<T extends DependencyMapType> = {
14
+ [K in keyof T]: DependencyValueType<T[K]>;
15
+ };
16
+ export type RegisterableItems<T = any> = IResourceWithConfig<any> | IResource<void, any, any, any> | IResource<{
17
+ [K in any]?: any;
18
+ }, any, any, any> | ITaskDefinition<any, any, any, any> | IMiddlewareDefinition<any> | IEventDefinition<any>;
19
+ export interface ITaskDefinition<TInput = any, TOutput extends Promise<any> = any, TDependencies extends DependencyMapType = {}, TOn extends "*" | IEventDefinition<any> | undefined = undefined> {
20
+ id: string;
21
+ dependencies?: TDependencies | (() => TDependencies);
22
+ middleware?: MiddlewareAttachments[];
23
+ on?: TOn;
24
+ listenerOrder?: number;
25
+ meta?: ITaskMeta;
26
+ run: (input: TOn extends undefined ? TInput : IEvent<TOn extends "*" ? any : ExtractEventParams<TOn>>, dependencies: DependencyValuesType<TDependencies>) => TOutput;
27
+ }
28
+ export type BeforeRunEventPayload<TInput> = {
29
+ input: TInput;
30
+ };
31
+ export type AfterRunEventPayload<TInput, TOutput> = {
32
+ input: TInput;
33
+ output: TOutput extends Promise<infer U> ? U : TOutput;
34
+ setOutput(newOutput: TOutput extends Promise<infer U> ? U : TOutput): void;
35
+ };
36
+ export type OnErrorEventPayload = {
37
+ error: any;
38
+ suppress(): void;
39
+ };
40
+ export interface ITask<TInput = any, TOutput extends Promise<any> = any, TDependencies extends DependencyMapType = {}, TOn extends "*" | IEventDefinition<any> | undefined = undefined> extends ITaskDefinition<TInput, TOutput, TDependencies, TOn> {
41
+ dependencies: TDependencies | (() => TDependencies);
42
+ computedDependencies?: DependencyValuesType<TDependencies>;
43
+ middleware: MiddlewareAttachments[];
44
+ events: {
45
+ beforeRun: IEventDefinition<BeforeRunEventPayload<TInput>>;
46
+ afterRun: IEventDefinition<AfterRunEventPayload<TInput, TOutput>>;
47
+ onError: IEventDefinition<OnErrorEventPayload>;
48
+ };
49
+ }
50
+ export * from "./task.types";
51
+ export * from "./resource.types";
52
+ export * from "./event.types";
53
+ export * from "./middleware.types";
54
+ export * from "./symbols";
55
+ export * from "./common.types";
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./task.types"), exports);
18
+ __exportStar(require("./resource.types"), exports);
19
+ __exportStar(require("./event.types"), exports);
20
+ __exportStar(require("./middleware.types"), exports);
21
+ __exportStar(require("./symbols"), exports);
22
+ __exportStar(require("./common.types"), exports);
23
+ //# sourceMappingURL=task.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.types.js","sourceRoot":"","sources":["../src/task.types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AA+FA,+CAA6B;AAC7B,mDAAiC;AACjC,gDAA8B;AAC9B,qDAAmC;AACnC,4CAA0B;AAC1B,iDAA+B"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Generate a registrator ID based on file path
3
+ */
4
+ export declare function generateRegistratorId(filePath: string | undefined, explicitId?: string): string;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateRegistratorId = generateRegistratorId;
4
+ // Counter to handle multiple registrators in the same file
5
+ let registratorCounter = 0;
6
+ /**
7
+ * Generate a registrator ID based on file path
8
+ */
9
+ function generateRegistratorId(filePath, explicitId) {
10
+ // If explicit ID is provided, use it
11
+ if (explicitId) {
12
+ return explicitId;
13
+ }
14
+ // Use file path or fallback
15
+ if (!filePath) {
16
+ registratorCounter++;
17
+ return `registrator.unknown.${registratorCounter}`;
18
+ }
19
+ // Extract path from 'src' onwards
20
+ const srcIndex = filePath.lastIndexOf("/src/");
21
+ if (srcIndex !== -1) {
22
+ // Get everything after '/src/'
23
+ let relativePath = filePath.substring(srcIndex + 5);
24
+ // Remove file extension
25
+ relativePath = relativePath.replace(/\.(ts|js)$/, "");
26
+ // Replace path separators with dots
27
+ relativePath = relativePath.replace(/\//g, ".");
28
+ // Add counter to handle multiple registrators in same file
29
+ registratorCounter++;
30
+ return `registrator.${relativePath}.${registratorCounter}`;
31
+ }
32
+ // Fallback: use filename only
33
+ const filename = filePath
34
+ .split("/")
35
+ .pop()
36
+ ?.replace(/\.(ts|js)$/, "") || "unknown";
37
+ registratorCounter++;
38
+ return `registrator.${filename}.${registratorCounter}`;
39
+ }
40
+ //# sourceMappingURL=registratorId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registratorId.js","sourceRoot":"","sources":["../../src/tools/registratorId.ts"],"names":[],"mappings":";;AAMA,sDAyCC;AA/CD,2DAA2D;AAC3D,IAAI,kBAAkB,GAAG,CAAC,CAAC;AAE3B;;GAEG;AACH,SAAgB,qBAAqB,CACnC,QAA4B,EAC5B,UAAmB;IAEnB,qCAAqC;IACrC,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,kBAAkB,EAAE,CAAC;QACrB,OAAO,uBAAuB,kBAAkB,EAAE,CAAC;IACrD,CAAC;IAED,kCAAkC;IAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,+BAA+B;QAC/B,IAAI,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAEpD,wBAAwB;QACxB,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAEtD,oCAAoC;QACpC,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEhD,2DAA2D;QAC3D,kBAAkB,EAAE,CAAC;QACrB,OAAO,eAAe,YAAY,IAAI,kBAAkB,EAAE,CAAC;IAC7D,CAAC;IAED,8BAA8B;IAC9B,MAAM,QAAQ,GACZ,QAAQ;SACL,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,EAAE;QACN,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;IAE7C,kBAAkB,EAAE,CAAC;IACrB,OAAO,eAAe,QAAQ,IAAI,kBAAkB,EAAE,CAAC;AACzD,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Simple hash function that generates predictable hashes
3
+ * This is not cryptographically secure but suitable for generating IDs
4
+ */
5
+ export declare function simpleHash(str: string): string;
6
+ /**
7
+ * Generate a registrator ID based on file path and items count
8
+ */
9
+ export declare function generateRegistratorId(filePath: string | undefined, itemsCount: number): string;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.simpleHash = simpleHash;
4
+ exports.generateRegistratorId = generateRegistratorId;
5
+ /**
6
+ * Simple hash function that generates predictable hashes
7
+ * This is not cryptographically secure but suitable for generating IDs
8
+ */
9
+ function simpleHash(str) {
10
+ let hash = 0;
11
+ if (str.length === 0)
12
+ return hash.toString();
13
+ for (let i = 0; i < str.length; i++) {
14
+ const char = str.charCodeAt(i);
15
+ hash = (hash << 5) - hash + char;
16
+ hash = hash & hash; // Convert to 32bit integer
17
+ }
18
+ // Convert to positive hex string
19
+ const hashStr = Math.abs(hash).toString(16);
20
+ return hashStr.padStart(8, "0");
21
+ }
22
+ /**
23
+ * Generate a registrator ID based on file path and items count
24
+ */
25
+ function generateRegistratorId(filePath, itemsCount) {
26
+ // Use file path or fallback
27
+ const path = filePath || "unknown";
28
+ // Create a deterministic string to hash
29
+ const hashInput = `registrator:${path}:${itemsCount}`;
30
+ // Generate hash
31
+ const hash = simpleHash(hashInput);
32
+ return `registrator.${hash}`;
33
+ }
34
+ //# sourceMappingURL=simpleHash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simpleHash.js","sourceRoot":"","sources":["../../src/tools/simpleHash.ts"],"names":[],"mappings":";;AAIA,gCAaC;AAKD,sDAcC;AApCD;;;GAGG;AACH,SAAgB,UAAU,CAAC,GAAW;IACpC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACjC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,2BAA2B;IACjD,CAAC;IAED,iCAAiC;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5C,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CACnC,QAA4B,EAC5B,UAAkB;IAElB,4BAA4B;IAC5B,MAAM,IAAI,GAAG,QAAQ,IAAI,SAAS,CAAC;IAEnC,wCAAwC;IACxC,MAAM,SAAS,GAAG,eAAe,IAAI,IAAI,UAAU,EAAE,CAAC;IAEtD,gBAAgB;IAChB,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IAEnC,OAAO,eAAe,IAAI,EAAE,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,18 @@
1
+ export interface ITask<TInput = any, TOutput extends Promise<any> = any, TDependencies = any, TOn = any> {
2
+ id: string;
3
+ }
4
+ export interface IResource<TConfig = void, TValue = any, TDependencies = any, TContext = any> {
5
+ id: string;
6
+ }
7
+ export interface IEventDefinition<TPayload = void> {
8
+ id: string;
9
+ }
10
+ export interface IMiddleware<TConfig = any, TDependencies = any> {
11
+ id: string;
12
+ }
13
+ export interface IResourceWithConfig<TConfig = any, TValue = any, TDependencies = any> {
14
+ id: string;
15
+ }
16
+ export interface IMiddlewareConfigured<TConfig = any, TDependencies = any> {
17
+ id: string;
18
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ // Layer 2: Core Abstractions - Forward Declarations
3
+ // These are forward declarations only to break circular dependencies
4
+ // They include minimal required properties for dependency system to work
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=base-interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-interfaces.js","sourceRoot":"","sources":["../../src/types/base-interfaces.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,qEAAqE;AACrE,yEAAyE"}
@@ -0,0 +1,13 @@
1
+ export interface IMeta {
2
+ title?: string;
3
+ description?: string;
4
+ tags?: string[];
5
+ }
6
+ export interface ITaskMeta extends IMeta {
7
+ }
8
+ export interface IResourceMeta extends IMeta {
9
+ }
10
+ export interface IEventMeta extends IMeta {
11
+ }
12
+ export interface IMiddlewareMeta extends IMeta {
13
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/types/base.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ interface ITask<TInput = any, TOutput extends Promise<any> = any, TDependencies extends DependencyMapType = {}, TOn extends "*" | IEventDefinition<any> | undefined = undefined> {
2
+ id: string;
3
+ }
4
+ interface IResource<TConfig = void, TValue = any, TDependencies extends DependencyMapType = any, TContext = any> {
5
+ id: string;
6
+ }
7
+ interface IEventDefinition<TPayload = void> {
8
+ id: string;
9
+ }
10
+ export type DependencyMapType = Record<string, ITask<any, any, any, any> | IResource<any, any, any> | IEventDefinition<any>>;
11
+ type ExtractTaskInput<T> = T extends ITask<infer I, any, infer D> ? I : never;
12
+ type ExtractTaskOutput<T> = T extends ITask<any, infer O, infer D> ? O : never;
13
+ type ExtractResourceValue<T> = T extends IResource<any, infer V, infer D> ? V : never;
14
+ type ExtractEventParams<T> = T extends IEventDefinition<infer P> ? P : never;
15
+ type TaskDependency<I, O> = (...args: I extends null | void ? [] : [I]) => O;
16
+ type ResourceDependency<V> = V;
17
+ type EventDependency<P> = (input: P) => Promise<void>;
18
+ export type DependencyValueType<T> = T extends ITask<any, any, any> ? TaskDependency<ExtractTaskInput<T>, ExtractTaskOutput<T>> : T extends IResource<any, any> ? ResourceDependency<ExtractResourceValue<T>> : T extends IEventDefinition<any> ? EventDependency<ExtractEventParams<T>> : never;
19
+ export type DependencyValuesType<T extends DependencyMapType> = {
20
+ [K in keyof T]: DependencyValueType<T[K]>;
21
+ };
22
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=dependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/types/dependencies.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import type { ITask, IResource, IEventDefinition } from './base-interfaces';
2
+ export type DependencyMapType = Record<string, ITask<any, any, any, any> | IResource<any, any, any> | IEventDefinition<any>>;
3
+ type ExtractTaskInput<T> = T extends ITask<infer I, any, any, any> ? I : never;
4
+ type ExtractTaskOutput<T> = T extends ITask<any, infer O, any, any> ? O : never;
5
+ type ExtractResourceValue<T> = T extends IResource<any, infer V, any> ? V : never;
6
+ type ExtractEventParams<T> = T extends IEventDefinition<infer P> ? P : never;
7
+ type TaskDependency<I, O> = (...args: I extends null | void ? [] : [I]) => O;
8
+ type ResourceDependency<V> = V;
9
+ type EventDependency<P> = (input: P) => Promise<void>;
10
+ export type DependencyValueType<T> = T extends ITask<any, any, any, any> ? TaskDependency<ExtractTaskInput<T>, ExtractTaskOutput<T>> : T extends IResource<any, any, any> ? ResourceDependency<ExtractResourceValue<T>> : T extends IEventDefinition<any> ? EventDependency<ExtractEventParams<T>> : never;
11
+ export type DependencyValuesType<T extends DependencyMapType> = {
12
+ [K in keyof T]: DependencyValueType<T[K]>;
13
+ };
14
+ export {};
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // Layer 2: Core Abstractions - Dependency System
3
+ // Uses forward declarations to break circular dependencies
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=dependency-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-core.js","sourceRoot":"","sources":["../../src/types/dependency-core.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,2DAA2D"}
@@ -0,0 +1,52 @@
1
+ import { symbolEvent } from './symbols';
2
+ import type { IEventMeta } from './meta';
3
+ export interface IEvent<TPayload = any> {
4
+ id: string;
5
+ /**
6
+ * The data that the event carries. It can be anything.
7
+ */
8
+ data: TPayload;
9
+ /**
10
+ * The timestamp when the event was created.
11
+ */
12
+ timestamp: Date;
13
+ /**
14
+ * The source of the event. This can be useful for debugging.
15
+ */
16
+ source: string;
17
+ }
18
+ export type EventHandlerType<T = any> = (event: IEvent<T>) => any | Promise<any>;
19
+ export interface IEventDefinitionConfig<TPayload = void> {
20
+ id: string;
21
+ meta?: IEventMeta;
22
+ }
23
+ export interface IEventDefinition<TPayload = void> {
24
+ id: string;
25
+ /**
26
+ * We use this event to discriminate between resources with just 'id' and 'events' as they collide. This is a workaround, should be redone using classes and instanceof.
27
+ */
28
+ [symbolEvent]: true;
29
+ meta?: IEventMeta;
30
+ }
31
+ export type BeforeRunEventPayload<TInput> = {
32
+ input: TInput;
33
+ };
34
+ export type AfterRunEventPayload<TInput, TOutput> = {
35
+ input: TInput;
36
+ output: TOutput extends Promise<infer U> ? U : TOutput;
37
+ setOutput(newOutput: TOutput extends Promise<infer U> ? U : TOutput): void;
38
+ };
39
+ export type OnErrorEventPayload = {
40
+ error: any;
41
+ /**
42
+ * This function can be called to suppress the error from being thrown.
43
+ */
44
+ suppress(): void;
45
+ };
46
+ export type BeforeInitEventPayload<TConfig> = {
47
+ config: TConfig;
48
+ };
49
+ export type AfterInitEventPayload<TConfig, TValue> = {
50
+ config: TConfig;
51
+ value: TValue;
52
+ };
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ // Layer 3: Component Definitions - Events
3
+ // Imports from Layer 1 & 2
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ const symbols_1 = require("./symbols");
6
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,2BAA2B;;AAE3B,uCAAwC"}
@@ -0,0 +1,16 @@
1
+ import type { IEventDefinition, IEvent } from './events';
2
+ import type { DependencyMapType, DependencyValuesType } from './dependency-core';
3
+ export interface IHookDefinition<D extends DependencyMapType = {}, T = any, B extends boolean = false> {
4
+ event: "*" | IEventDefinition<T>;
5
+ /**
6
+ * The higher the number, the higher the priority.
7
+ * We recommend using numbers between -1000 and 1000.
8
+ */
9
+ order?: number;
10
+ /**
11
+ * These are hooks that run before any resource instantiation.
12
+ * @param event
13
+ */
14
+ early?: B;
15
+ run: (event: IEvent<T>, dependencies: T extends true ? void : DependencyValuesType<D>) => Promise<void> | void;
16
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // Layer 4: Integration Types - Hooks
3
+ // Imports from event and dependency systems
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/types/hooks.ts"],"names":[],"mappings":";AAAA,qCAAqC;AACrC,4CAA4C"}
@@ -0,0 +1,14 @@
1
+ export * from './symbols';
2
+ export * from './base';
3
+ export * from './utilities';
4
+ export * from './dependencies';
5
+ export * from './events';
6
+ export * from './tasks';
7
+ export * from './resources';
8
+ export * from './middleware';
9
+ export * from './hooks';
10
+ import type { IResourceWithConfig, IResource, ITaskDefinition, IMiddlewareDefinition, IEventDefinition } from './index';
11
+ export type RegisterableItems<T = any> = IResourceWithConfig<any> | IResource<void, any, any, any> | IResource<{
12
+ [K in any]?: any;
13
+ }, any, any, any> | ITaskDefinition<any, any, any, any> | IMiddlewareDefinition<any> | IEventDefinition<any>;
14
+ export { ICacheInstance } from "../globals/middleware/cache.middleware";
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // Re-export everything from individual modules
18
+ __exportStar(require("./symbols"), exports);
19
+ __exportStar(require("./base"), exports);
20
+ __exportStar(require("./utilities"), exports);
21
+ __exportStar(require("./dependencies"), exports);
22
+ __exportStar(require("./events"), exports);
23
+ __exportStar(require("./tasks"), exports);
24
+ __exportStar(require("./resources"), exports);
25
+ __exportStar(require("./middleware"), exports);
26
+ __exportStar(require("./hooks"), exports);
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA+C;AAC/C,4CAA0B;AAC1B,yCAAuB;AACvB,8CAA4B;AAC5B,iDAA+B;AAC/B,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,+CAA6B;AAC7B,0CAAwB"}
@@ -0,0 +1,13 @@
1
+ export interface IMeta {
2
+ title?: string;
3
+ description?: string;
4
+ tags?: string[];
5
+ }
6
+ export interface ITaskMeta extends IMeta {
7
+ }
8
+ export interface IResourceMeta extends IMeta {
9
+ }
10
+ export interface IEventMeta extends IMeta {
11
+ }
12
+ export interface IMiddlewareMeta extends IMeta {
13
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // Layer 1: Foundation - Meta Interfaces
3
+ // No dependencies
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.js","sourceRoot":"","sources":["../../src/types/meta.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,kBAAkB"}
@@ -0,0 +1,38 @@
1
+ import { symbolMiddleware, symbolMiddlewareConfigured, symbolMiddlewareEverywhereTasks, symbolMiddlewareEverywhereResources } from './symbols';
2
+ import type { IMiddlewareMeta } from './meta';
3
+ import type { DependencyMapType, DependencyValuesType } from './dependency-core';
4
+ import type { ITask, IResource } from './base-interfaces';
5
+ export interface IMiddlewareExecutionInput<TTaskInput = any, TResourceConfig = any> {
6
+ task?: {
7
+ definition: ITask<TTaskInput>;
8
+ input: TTaskInput;
9
+ };
10
+ resource?: {
11
+ definition: IResource<TResourceConfig>;
12
+ config: TResourceConfig;
13
+ };
14
+ next: (taskInputOrResourceConfig?: TTaskInput | TResourceConfig) => Promise<any>;
15
+ }
16
+ export interface IMiddlewareDefinition<TConfig = any, TDependencies extends DependencyMapType = any> {
17
+ id: string;
18
+ dependencies?: TDependencies | (() => TDependencies);
19
+ run: (input: IMiddlewareExecutionInput, dependencies: DependencyValuesType<TDependencies>, config: TConfig) => Promise<any>;
20
+ meta?: IMiddlewareMeta;
21
+ }
22
+ export interface IMiddleware<TConfig = any, TDependencies extends DependencyMapType = any> extends IMiddlewareDefinition<TConfig, TDependencies> {
23
+ [symbolMiddleware]: true;
24
+ [symbolMiddlewareConfigured]?: boolean;
25
+ [symbolMiddlewareEverywhereTasks]?: boolean;
26
+ [symbolMiddlewareEverywhereResources]?: boolean;
27
+ dependencies: TDependencies | (() => TDependencies);
28
+ everywhere(): IMiddleware<TConfig, TDependencies>;
29
+ config: TConfig;
30
+ with: (config: TConfig) => IMiddlewareConfigured<TConfig, TDependencies>;
31
+ }
32
+ export interface IMiddlewareConfigured<TConfig = any, TDependencies extends DependencyMapType = any> extends IMiddleware<TConfig, TDependencies> {
33
+ [symbolMiddlewareConfigured]: true;
34
+ }
35
+ export interface IMiddlewareDefinitionConfigured<C extends Record<string, any> = {}> {
36
+ middleware: IMiddleware<C>;
37
+ config?: C;
38
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ // Layer 3: Component Definitions - Middleware
3
+ // Imports from Layer 1 & 2
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ const symbols_1 = require("./symbols");
6
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/types/middleware.ts"],"names":[],"mappings":";AAAA,8CAA8C;AAC9C,2BAA2B;;AAE3B,uCAKmB"}