@bluelibs/runner 3.4.2 → 4.0.1

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 (375) hide show
  1. package/AI.md +621 -0
  2. package/README.md +1024 -577
  3. package/dist/context.d.ts +4 -8
  4. package/dist/context.js +5 -12
  5. package/dist/context.js.map +1 -1
  6. package/dist/define.d.ts +9 -113
  7. package/dist/define.js +29 -358
  8. package/dist/define.js.map +1 -1
  9. package/dist/definers/defineEvent.d.ts +2 -0
  10. package/dist/definers/defineEvent.js +23 -0
  11. package/dist/definers/defineEvent.js.map +1 -0
  12. package/dist/definers/defineHook.d.ts +6 -0
  13. package/dist/definers/defineHook.js +24 -0
  14. package/dist/definers/defineHook.js.map +1 -0
  15. package/dist/definers/defineOverride.d.ts +14 -0
  16. package/dist/definers/defineOverride.js +13 -0
  17. package/dist/definers/defineOverride.js.map +1 -0
  18. package/dist/definers/defineResource.d.ts +2 -0
  19. package/dist/definers/defineResource.js +69 -0
  20. package/dist/definers/defineResource.js.map +1 -0
  21. package/dist/definers/defineResourceMiddleware.d.ts +2 -0
  22. package/dist/definers/defineResourceMiddleware.js +42 -0
  23. package/dist/definers/defineResourceMiddleware.js.map +1 -0
  24. package/dist/definers/defineTag.d.ts +12 -0
  25. package/dist/definers/defineTag.js +106 -0
  26. package/dist/definers/defineTag.js.map +1 -0
  27. package/dist/definers/defineTask.d.ts +15 -0
  28. package/dist/definers/defineTask.js +42 -0
  29. package/dist/definers/defineTask.js.map +1 -0
  30. package/dist/definers/defineTaskMiddleware.d.ts +2 -0
  31. package/dist/definers/defineTaskMiddleware.js +42 -0
  32. package/dist/definers/defineTaskMiddleware.js.map +1 -0
  33. package/dist/definers/tools.d.ts +45 -0
  34. package/dist/definers/tools.js +75 -0
  35. package/dist/definers/tools.js.map +1 -0
  36. package/dist/defs.d.ts +16 -424
  37. package/dist/defs.js +26 -38
  38. package/dist/defs.js.map +1 -1
  39. package/dist/errors.d.ts +23 -8
  40. package/dist/errors.js +50 -10
  41. package/dist/errors.js.map +1 -1
  42. package/dist/globals/globalEvents.d.ts +15 -39
  43. package/dist/globals/globalEvents.js +20 -81
  44. package/dist/globals/globalEvents.js.map +1 -1
  45. package/dist/globals/globalMiddleware.d.ts +24 -17
  46. package/dist/globals/globalMiddleware.js +12 -4
  47. package/dist/globals/globalMiddleware.js.map +1 -1
  48. package/dist/globals/globalResources.d.ts +13 -28
  49. package/dist/globals/globalResources.js +15 -7
  50. package/dist/globals/globalResources.js.map +1 -1
  51. package/dist/globals/globalTags.d.ts +9 -0
  52. package/dist/globals/globalTags.js +23 -0
  53. package/dist/globals/globalTags.js.map +1 -0
  54. package/dist/globals/middleware/cache.middleware.d.ts +10 -17
  55. package/dist/globals/middleware/cache.middleware.js +4 -16
  56. package/dist/globals/middleware/cache.middleware.js.map +1 -1
  57. package/dist/globals/middleware/requireContext.middleware.d.ts +1 -1
  58. package/dist/globals/middleware/requireContext.middleware.js +5 -14
  59. package/dist/globals/middleware/requireContext.middleware.js.map +1 -1
  60. package/dist/globals/middleware/retry.middleware.d.ts +2 -1
  61. package/dist/globals/middleware/retry.middleware.js +32 -5
  62. package/dist/globals/middleware/retry.middleware.js.map +1 -1
  63. package/dist/globals/middleware/timeout.middleware.d.ts +2 -1
  64. package/dist/globals/middleware/timeout.middleware.js +31 -5
  65. package/dist/globals/middleware/timeout.middleware.js.map +1 -1
  66. package/dist/globals/resources/debug/debug.resource.d.ts +7 -0
  67. package/dist/globals/resources/debug/debug.resource.js +29 -0
  68. package/dist/globals/resources/debug/debug.resource.js.map +1 -0
  69. package/dist/globals/resources/debug/debug.tag.d.ts +2 -0
  70. package/dist/globals/resources/debug/debug.tag.js +12 -0
  71. package/dist/globals/resources/debug/debug.tag.js.map +1 -0
  72. package/dist/globals/resources/debug/debugConfig.resource.d.ts +22 -0
  73. package/dist/globals/resources/debug/debugConfig.resource.js +20 -0
  74. package/dist/globals/resources/debug/debugConfig.resource.js.map +1 -0
  75. package/dist/globals/resources/debug/executionTracker.middleware.d.ts +50 -0
  76. package/dist/globals/resources/debug/executionTracker.middleware.js +87 -0
  77. package/dist/globals/resources/debug/executionTracker.middleware.js.map +1 -0
  78. package/dist/globals/resources/debug/globalEvent.hook.d.ts +27 -0
  79. package/dist/globals/resources/debug/globalEvent.hook.js +38 -0
  80. package/dist/globals/resources/debug/globalEvent.hook.js.map +1 -0
  81. package/dist/globals/resources/debug/hook.hook.d.ts +25 -0
  82. package/dist/globals/resources/debug/hook.hook.js +42 -0
  83. package/dist/globals/resources/debug/hook.hook.js.map +1 -0
  84. package/dist/globals/resources/debug/index.d.ts +6 -0
  85. package/dist/{types → globals/resources/debug}/index.js +6 -11
  86. package/dist/globals/resources/debug/index.js.map +1 -0
  87. package/dist/globals/resources/debug/middleware.hook.d.ts +25 -0
  88. package/dist/globals/resources/debug/middleware.hook.js +71 -0
  89. package/dist/globals/resources/debug/middleware.hook.js.map +1 -0
  90. package/dist/globals/resources/debug/types.d.ts +25 -0
  91. package/dist/globals/resources/debug/types.js +65 -0
  92. package/dist/globals/resources/debug/types.js.map +1 -0
  93. package/dist/globals/resources/debug/utils.d.ts +2 -0
  94. package/dist/globals/resources/debug/utils.js +9 -0
  95. package/dist/globals/resources/debug/utils.js.map +1 -0
  96. package/dist/globals/resources/queue.resource.d.ts +3 -3
  97. package/dist/globals/resources/queue.resource.js.map +1 -1
  98. package/dist/globals/types.d.ts +1 -0
  99. package/dist/{task.types.js → globals/types.js} +2 -7
  100. package/dist/globals/types.js.map +1 -0
  101. package/dist/index.d.ts +58 -85
  102. package/dist/index.js +23 -10
  103. package/dist/index.js.map +1 -1
  104. package/dist/models/DependencyProcessor.d.ts +8 -6
  105. package/dist/models/DependencyProcessor.js +116 -33
  106. package/dist/models/DependencyProcessor.js.map +1 -1
  107. package/dist/models/EventManager.d.ts +127 -7
  108. package/dist/models/EventManager.js +251 -78
  109. package/dist/models/EventManager.js.map +1 -1
  110. package/dist/models/LogPrinter.d.ts +55 -0
  111. package/dist/models/LogPrinter.js +196 -0
  112. package/dist/models/LogPrinter.js.map +1 -0
  113. package/dist/models/Logger.d.ts +47 -27
  114. package/dist/models/Logger.js +133 -155
  115. package/dist/models/Logger.js.map +1 -1
  116. package/dist/models/MiddlewareManager.d.ts +86 -0
  117. package/dist/models/MiddlewareManager.js +409 -0
  118. package/dist/models/MiddlewareManager.js.map +1 -0
  119. package/dist/models/OverrideManager.d.ts +3 -3
  120. package/dist/models/OverrideManager.js +22 -7
  121. package/dist/models/OverrideManager.js.map +1 -1
  122. package/dist/models/ResourceInitializer.d.ts +4 -3
  123. package/dist/models/ResourceInitializer.js +12 -68
  124. package/dist/models/ResourceInitializer.js.map +1 -1
  125. package/dist/models/RunResult.d.ts +35 -0
  126. package/dist/models/RunResult.js +68 -0
  127. package/dist/models/RunResult.js.map +1 -0
  128. package/dist/models/Store.d.ts +30 -17
  129. package/dist/models/Store.js +87 -25
  130. package/dist/models/Store.js.map +1 -1
  131. package/dist/models/StoreRegistry.d.ts +34 -19
  132. package/dist/models/StoreRegistry.js +248 -100
  133. package/dist/models/StoreRegistry.js.map +1 -1
  134. package/dist/models/StoreValidator.d.ts +5 -7
  135. package/dist/models/StoreValidator.js +50 -17
  136. package/dist/models/StoreValidator.js.map +1 -1
  137. package/dist/models/TaskRunner.d.ts +3 -2
  138. package/dist/models/TaskRunner.js +6 -103
  139. package/dist/models/TaskRunner.js.map +1 -1
  140. package/dist/models/UnhandledError.d.ts +11 -0
  141. package/dist/models/UnhandledError.js +30 -0
  142. package/dist/models/UnhandledError.js.map +1 -0
  143. package/dist/models/index.d.ts +3 -0
  144. package/dist/models/index.js +3 -0
  145. package/dist/models/index.js.map +1 -1
  146. package/dist/{tools → models/utils}/findCircularDependencies.js +8 -16
  147. package/dist/models/utils/findCircularDependencies.js.map +1 -0
  148. package/dist/models/utils/safeStringify.d.ts +3 -0
  149. package/dist/models/utils/safeStringify.js +45 -0
  150. package/dist/models/utils/safeStringify.js.map +1 -0
  151. package/dist/processHooks.d.ts +2 -0
  152. package/dist/processHooks.js +70 -0
  153. package/dist/processHooks.js.map +1 -0
  154. package/dist/run.d.ts +14 -27
  155. package/dist/run.js +100 -36
  156. package/dist/run.js.map +1 -1
  157. package/dist/testing.d.ts +5 -4
  158. package/dist/testing.js +3 -2
  159. package/dist/testing.js.map +1 -1
  160. package/dist/tools/getCallerFile.d.ts +0 -8
  161. package/dist/tools/getCallerFile.js +0 -51
  162. package/dist/tools/getCallerFile.js.map +1 -1
  163. package/dist/types/contracts.d.ts +55 -0
  164. package/dist/types/contracts.js +4 -0
  165. package/dist/types/contracts.js.map +1 -0
  166. package/dist/types/event.d.ts +26 -7
  167. package/dist/types/event.js +1 -1
  168. package/dist/types/event.js.map +1 -1
  169. package/dist/types/hook.d.ts +21 -0
  170. package/dist/{models/StoreTypes.js → types/hook.js} +2 -1
  171. package/dist/types/hook.js.map +1 -0
  172. package/dist/types/meta.d.ts +6 -1
  173. package/dist/types/meta.js +4 -2
  174. package/dist/types/meta.js.map +1 -1
  175. package/dist/types/resource.d.ts +40 -52
  176. package/dist/types/resource.js +1 -0
  177. package/dist/types/resource.js.map +1 -1
  178. package/dist/types/resourceMiddleware.d.ts +47 -0
  179. package/dist/{middleware.types.js → types/resourceMiddleware.js} +1 -1
  180. package/dist/types/resourceMiddleware.js.map +1 -0
  181. package/dist/types/runner.d.ts +37 -0
  182. package/dist/types/{base.js → runner.js} +1 -1
  183. package/dist/types/runner.js.map +1 -0
  184. package/dist/types/storeTypes.d.ts +40 -0
  185. package/dist/types/{metadata.js → storeTypes.js} +1 -1
  186. package/dist/types/storeTypes.js.map +1 -0
  187. package/dist/types/symbols.d.ts +10 -21
  188. package/dist/types/symbols.js +17 -22
  189. package/dist/types/symbols.js.map +1 -1
  190. package/dist/types/tag.d.ts +46 -0
  191. package/dist/{resource.types.js → types/tag.js} +2 -1
  192. package/dist/types/tag.js.map +1 -0
  193. package/dist/types/task.d.ts +28 -52
  194. package/dist/types/task.js +1 -0
  195. package/dist/types/task.js.map +1 -1
  196. package/dist/types/taskMiddleware.d.ts +48 -0
  197. package/dist/{event.types.js → types/taskMiddleware.js} +1 -1
  198. package/dist/types/taskMiddleware.js.map +1 -0
  199. package/dist/types/utilities.d.ts +105 -6
  200. package/dist/types/utilities.js +16 -2
  201. package/dist/types/utilities.js.map +1 -1
  202. package/package.json +14 -5
  203. package/dist/cli/extract-docs.d.ts +0 -2
  204. package/dist/cli/extract-docs.js +0 -88
  205. package/dist/cli/extract-docs.js.map +0 -1
  206. package/dist/common.types.d.ts +0 -20
  207. package/dist/common.types.js +0 -4
  208. package/dist/common.types.js.map +0 -1
  209. package/dist/defs/core.d.ts +0 -144
  210. package/dist/defs/core.js +0 -6
  211. package/dist/defs/core.js.map +0 -1
  212. package/dist/defs/symbols.d.ts +0 -42
  213. package/dist/defs/symbols.js +0 -45
  214. package/dist/defs/symbols.js.map +0 -1
  215. package/dist/defs/tags.d.ts +0 -70
  216. package/dist/defs/tags.js +0 -6
  217. package/dist/defs/tags.js.map +0 -1
  218. package/dist/defs.returnTag.d.ts +0 -36
  219. package/dist/defs.returnTag.js +0 -4
  220. package/dist/defs.returnTag.js.map +0 -1
  221. package/dist/docs/introspect.d.ts +0 -7
  222. package/dist/docs/introspect.js +0 -199
  223. package/dist/docs/introspect.js.map +0 -1
  224. package/dist/docs/markdown.d.ts +0 -2
  225. package/dist/docs/markdown.js +0 -148
  226. package/dist/docs/markdown.js.map +0 -1
  227. package/dist/docs/model.d.ts +0 -62
  228. package/dist/docs/model.js +0 -33
  229. package/dist/docs/model.js.map +0 -1
  230. package/dist/event.types.d.ts +0 -18
  231. package/dist/event.types.js.map +0 -1
  232. package/dist/examples/express-mongo/index.d.ts +0 -0
  233. package/dist/examples/express-mongo/index.js +0 -3
  234. package/dist/examples/express-mongo/index.js.map +0 -1
  235. package/dist/examples/registrator-example.d.ts +0 -122
  236. package/dist/examples/registrator-example.js +0 -147
  237. package/dist/examples/registrator-example.js.map +0 -1
  238. package/dist/express/docsRouter.d.ts +0 -12
  239. package/dist/express/docsRouter.js +0 -54
  240. package/dist/express/docsRouter.js.map +0 -1
  241. package/dist/globalEvents.d.ts +0 -40
  242. package/dist/globalEvents.js +0 -94
  243. package/dist/globalEvents.js.map +0 -1
  244. package/dist/globalResources.d.ts +0 -10
  245. package/dist/globalResources.js +0 -43
  246. package/dist/globalResources.js.map +0 -1
  247. package/dist/middleware.types.d.ts +0 -40
  248. package/dist/middleware.types.js.map +0 -1
  249. package/dist/models/StoreConstants.d.ts +0 -14
  250. package/dist/models/StoreConstants.js +0 -19
  251. package/dist/models/StoreConstants.js.map +0 -1
  252. package/dist/models/StoreTypes.d.ts +0 -21
  253. package/dist/models/StoreTypes.js.map +0 -1
  254. package/dist/models/VarStore.d.ts +0 -17
  255. package/dist/models/VarStore.js +0 -60
  256. package/dist/models/VarStore.js.map +0 -1
  257. package/dist/resource.types.d.ts +0 -31
  258. package/dist/resource.types.js.map +0 -1
  259. package/dist/symbols.d.ts +0 -24
  260. package/dist/symbols.js +0 -29
  261. package/dist/symbols.js.map +0 -1
  262. package/dist/t1.d.ts +0 -1
  263. package/dist/t1.js +0 -13
  264. package/dist/t1.js.map +0 -1
  265. package/dist/task.types.d.ts +0 -55
  266. package/dist/task.types.js.map +0 -1
  267. package/dist/tools/findCircularDependencies.js.map +0 -1
  268. package/dist/tools/registratorId.d.ts +0 -4
  269. package/dist/tools/registratorId.js +0 -40
  270. package/dist/tools/registratorId.js.map +0 -1
  271. package/dist/tools/simpleHash.d.ts +0 -9
  272. package/dist/tools/simpleHash.js +0 -34
  273. package/dist/tools/simpleHash.js.map +0 -1
  274. package/dist/types/base-interfaces.d.ts +0 -18
  275. package/dist/types/base-interfaces.js +0 -6
  276. package/dist/types/base-interfaces.js.map +0 -1
  277. package/dist/types/base.d.ts +0 -13
  278. package/dist/types/base.js.map +0 -1
  279. package/dist/types/dependencies.d.ts +0 -51
  280. package/dist/types/dependencies.js +0 -3
  281. package/dist/types/dependencies.js.map +0 -1
  282. package/dist/types/dependency-core.d.ts +0 -14
  283. package/dist/types/dependency-core.js +0 -5
  284. package/dist/types/dependency-core.js.map +0 -1
  285. package/dist/types/events.d.ts +0 -52
  286. package/dist/types/events.js +0 -6
  287. package/dist/types/events.js.map +0 -1
  288. package/dist/types/hooks.d.ts +0 -16
  289. package/dist/types/hooks.js +0 -5
  290. package/dist/types/hooks.js.map +0 -1
  291. package/dist/types/index.d.ts +0 -8
  292. package/dist/types/index.js.map +0 -1
  293. package/dist/types/metadata.d.ts +0 -75
  294. package/dist/types/metadata.js.map +0 -1
  295. package/dist/types/middleware.d.ts +0 -63
  296. package/dist/types/middleware.js +0 -3
  297. package/dist/types/middleware.js.map +0 -1
  298. package/dist/types/registerable.d.ts +0 -10
  299. package/dist/types/registerable.js +0 -5
  300. package/dist/types/registerable.js.map +0 -1
  301. package/dist/types/resources.d.ts +0 -44
  302. package/dist/types/resources.js +0 -5
  303. package/dist/types/resources.js.map +0 -1
  304. package/dist/types/tasks.d.ts +0 -41
  305. package/dist/types/tasks.js +0 -5
  306. package/dist/types/tasks.js.map +0 -1
  307. package/src/__tests__/benchmark/benchmark.test.ts +0 -148
  308. package/src/__tests__/benchmark/task-benchmark.test.ts +0 -132
  309. package/src/__tests__/context.test.ts +0 -91
  310. package/src/__tests__/createTestResource.test.ts +0 -139
  311. package/src/__tests__/errors.test.ts +0 -341
  312. package/src/__tests__/globalEvents.test.ts +0 -542
  313. package/src/__tests__/globals/cache.middleware.test.ts +0 -772
  314. package/src/__tests__/globals/queue.resource.test.ts +0 -141
  315. package/src/__tests__/globals/requireContext.middleware.test.ts +0 -98
  316. package/src/__tests__/globals/retry.middleware.test.ts +0 -157
  317. package/src/__tests__/globals/timeout.middleware.test.ts +0 -88
  318. package/src/__tests__/index.helper.test.ts +0 -55
  319. package/src/__tests__/models/EventManager.test.ts +0 -585
  320. package/src/__tests__/models/Logger.test.ts +0 -519
  321. package/src/__tests__/models/Queue.test.ts +0 -189
  322. package/src/__tests__/models/ResourceInitializer.test.ts +0 -148
  323. package/src/__tests__/models/Semaphore.test.ts +0 -713
  324. package/src/__tests__/models/Store.test.ts +0 -227
  325. package/src/__tests__/models/TaskRunner.test.ts +0 -221
  326. package/src/__tests__/override.test.ts +0 -104
  327. package/src/__tests__/recursion/README.md +0 -3
  328. package/src/__tests__/recursion/a.resource.ts +0 -25
  329. package/src/__tests__/recursion/b.resource.ts +0 -33
  330. package/src/__tests__/recursion/c.resource.ts +0 -18
  331. package/src/__tests__/run.anonymous.test.ts +0 -706
  332. package/src/__tests__/run.dynamic-register-and-dependencies.test.ts +0 -1185
  333. package/src/__tests__/run.middleware.test.ts +0 -549
  334. package/src/__tests__/run.overrides.test.ts +0 -424
  335. package/src/__tests__/run.test.ts +0 -1040
  336. package/src/__tests__/setOutput.test.ts +0 -244
  337. package/src/__tests__/tags.test.ts +0 -396
  338. package/src/__tests__/tools/findCircularDependencies.test.ts +0 -217
  339. package/src/__tests__/tools/getCallerFile.test.ts +0 -179
  340. package/src/__tests__/typesafety.test.ts +0 -423
  341. package/src/__tests__/validation-edge-cases.test.ts +0 -111
  342. package/src/__tests__/validation-interface.test.ts +0 -428
  343. package/src/context.ts +0 -86
  344. package/src/define.ts +0 -480
  345. package/src/defs.returnTag.ts +0 -91
  346. package/src/defs.ts +0 -596
  347. package/src/errors.ts +0 -105
  348. package/src/globals/globalEvents.ts +0 -125
  349. package/src/globals/globalMiddleware.ts +0 -16
  350. package/src/globals/globalResources.ts +0 -53
  351. package/src/globals/middleware/cache.middleware.ts +0 -115
  352. package/src/globals/middleware/requireContext.middleware.ts +0 -36
  353. package/src/globals/middleware/retry.middleware.ts +0 -56
  354. package/src/globals/middleware/timeout.middleware.ts +0 -46
  355. package/src/globals/resources/queue.resource.ts +0 -34
  356. package/src/index.ts +0 -39
  357. package/src/models/DependencyProcessor.ts +0 -257
  358. package/src/models/EventManager.ts +0 -210
  359. package/src/models/Logger.ts +0 -282
  360. package/src/models/OverrideManager.ts +0 -79
  361. package/src/models/Queue.ts +0 -66
  362. package/src/models/ResourceInitializer.ts +0 -165
  363. package/src/models/Semaphore.ts +0 -208
  364. package/src/models/Store.ts +0 -193
  365. package/src/models/StoreConstants.ts +0 -18
  366. package/src/models/StoreRegistry.ts +0 -253
  367. package/src/models/StoreTypes.ts +0 -47
  368. package/src/models/StoreValidator.ts +0 -43
  369. package/src/models/TaskRunner.ts +0 -203
  370. package/src/models/index.ts +0 -8
  371. package/src/run.ts +0 -116
  372. package/src/testing.ts +0 -66
  373. package/src/tools/findCircularDependencies.ts +0 -69
  374. package/src/tools/getCallerFile.ts +0 -96
  375. /package/dist/{tools → models/utils}/findCircularDependencies.d.ts +0 -0
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineHook = defineHook;
4
+ const defs_1 = require("../defs");
5
+ const getCallerFile_1 = require("../tools/getCallerFile");
6
+ /**
7
+ * Define a hook (event listeners).
8
+ * Same shape as task with mandatory `on` and without `middleware`.
9
+ */
10
+ function defineHook(hookDef) {
11
+ const filePath = (0, getCallerFile_1.getCallerFile)();
12
+ return {
13
+ [defs_1.symbolHook]: true,
14
+ [defs_1.symbolFilePath]: filePath,
15
+ id: hookDef.id,
16
+ dependencies: hookDef.dependencies || {},
17
+ on: hookDef.on,
18
+ order: hookDef.order,
19
+ run: hookDef.run,
20
+ meta: hookDef.meta || {},
21
+ tags: hookDef.tags || [],
22
+ };
23
+ }
24
+ //# sourceMappingURL=defineHook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineHook.js","sourceRoot":"","sources":["../../src/definers/defineHook.ts"],"names":[],"mappings":";;AAeA,gCAiBC;AAhCD,kCAQiB;AACjB,0DAAuD;AAEvD;;;GAGG;AACH,SAAgB,UAAU,CAIxB,OAAuC;IACvC,MAAM,QAAQ,GAAG,IAAA,6BAAa,GAAE,CAAC;IACjC,OAAO;QACL,CAAC,iBAAU,CAAC,EAAE,IAAI;QAClB,CAAC,qBAAc,CAAC,EAAE,QAAQ;QAC1B,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,YAAY,EAAE,OAAO,CAAC,YAAY,IAAK,EAAQ;QAC/C,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAK,EAAY;QACnC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;KACD,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { ITask, IResource, ITaskMiddleware, IResourceMiddleware, IHook } from "../defs";
2
+ /**
3
+ * Override helper that preserves the original `id` and returns the same type.
4
+ * You can override any property except `id`. The override is shallow-merged over the base.
5
+ *
6
+ * @param base - The base definition to override.
7
+ * @param patch - Properties to override (except `id`).
8
+ * @returns A definition of the same kind with overrides applied.
9
+ */
10
+ export declare function defineOverride<T extends ITask<any, any, any, any, any, any>>(base: T, patch: Omit<Partial<T>, "id"> & Pick<T, "run">): T;
11
+ export declare function defineOverride<T extends IResource<any, any, any, any, any, any>>(base: T, patch: Omit<Partial<T>, "id"> & Pick<T, "init">): T;
12
+ export declare function defineOverride<T extends ITaskMiddleware<any, any, any, any>>(base: T, patch: Omit<Partial<T>, "id">): T;
13
+ export declare function defineOverride<T extends IResourceMiddleware<any, any, any, any>>(base: T, patch: Omit<Partial<T>, "id"> & Pick<T, "run">): T;
14
+ export declare function defineOverride<T extends IHook<any, any, any>>(base: T, patch: Omit<Partial<T>, "id" | "on"> & Pick<T, "run">): T;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineOverride = defineOverride;
4
+ function defineOverride(base, patch) {
5
+ const { id: _ignored, ...rest } = patch;
6
+ // Ensure we never change the id, and merge overrides last
7
+ return {
8
+ ...base,
9
+ ...rest,
10
+ id: base.id,
11
+ };
12
+ }
13
+ //# sourceMappingURL=defineOverride.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineOverride.js","sourceRoot":"","sources":["../../src/definers/defineOverride.ts"],"names":[],"mappings":";;AAkCA,wCAWC;AAXD,SAAgB,cAAc,CAC5B,IAA+D,EAC/D,KAA8B;IAE9B,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IACxC,0DAA0D;IAC1D,OAAO;QACL,GAAI,IAAY;QAChB,GAAG,IAAI;QACP,EAAE,EAAG,IAAY,CAAC,EAAE;KACd,CAAC;AACX,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { IResource, IResourceDefinition, DependencyMapType, IResourceMeta, TagType, ResourceMiddlewareAttachmentType } from "../defs";
2
+ export declare function defineResource<TConfig = void, TValue extends Promise<any> = Promise<any>, TDeps extends DependencyMapType = {}, TPrivate = any, TMeta extends IResourceMeta = any, TTags extends TagType[] = TagType[], TMiddleware extends ResourceMiddlewareAttachmentType[] = ResourceMiddlewareAttachmentType[]>(constConfig: IResourceDefinition<TConfig, TValue, TDeps, TPrivate, any, any, TMeta, TTags, TMiddleware>): IResource<TConfig, TValue, TDeps, TPrivate, TMeta, TTags, TMiddleware>;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineResource = defineResource;
4
+ const defs_1 = require("../defs");
5
+ const errors_1 = require("../errors");
6
+ const getCallerFile_1 = require("../tools/getCallerFile");
7
+ function defineResource(constConfig) {
8
+ /**
9
+ * Define a resource.
10
+ * Produces a strongly-typed resource with id, registration hooks,
11
+ * and optional config schema.
12
+ *
13
+ * - If `id` is omitted, an anonymous, file-based id is generated (resource or index flavored).
14
+ * - Provides `.with(config)` for config-bound registration with optional runtime validation.
15
+ *
16
+ * @typeParam TConfig - Configuration type accepted by the resource.
17
+ * @typeParam TValue - Promise type resolved by the resource `init`.
18
+ * @typeParam TDeps - Dependency map type this resource requires.
19
+ * @typeParam TPrivate - Private context type exposed to middleware during init.
20
+ * @typeParam TMeta - Arbitrary metadata type carried by the resource.
21
+ * @param constConfig - The resource definition config.
22
+ * @returns A branded resource definition usable by the runner.
23
+ */
24
+ // The symbolFilePath might already come from defineIndex() for example
25
+ const filePath = constConfig[defs_1.symbolFilePath] || (0, getCallerFile_1.getCallerFile)();
26
+ const isIndexResource = constConfig[defs_1.symbolIndexResource] || false;
27
+ const id = constConfig.id;
28
+ return {
29
+ [defs_1.symbolResource]: true,
30
+ [defs_1.symbolFilePath]: filePath,
31
+ [defs_1.symbolIndexResource]: isIndexResource,
32
+ id,
33
+ dependencies: constConfig.dependencies,
34
+ dispose: constConfig.dispose,
35
+ register: constConfig.register || [],
36
+ overrides: constConfig.overrides || [],
37
+ init: constConfig.init,
38
+ context: constConfig.context,
39
+ configSchema: constConfig.configSchema,
40
+ resultSchema: constConfig.resultSchema,
41
+ tags: constConfig.tags || [],
42
+ with: function (config) {
43
+ // Validate config with schema if provided (fail fast)
44
+ if (constConfig.configSchema) {
45
+ try {
46
+ config = constConfig.configSchema.parse(config);
47
+ }
48
+ catch (error) {
49
+ throw new errors_1.ValidationError("Resource config", id, error instanceof Error ? error : new Error(String(error)));
50
+ }
51
+ }
52
+ return {
53
+ [defs_1.symbolResourceWithConfig]: true,
54
+ id: this.id,
55
+ resource: this,
56
+ config,
57
+ };
58
+ },
59
+ meta: (constConfig.meta || {}),
60
+ middleware: constConfig.middleware || [],
61
+ optional() {
62
+ return {
63
+ inner: this,
64
+ [defs_1.symbolOptionalDependency]: true,
65
+ };
66
+ },
67
+ };
68
+ }
69
+ //# sourceMappingURL=defineResource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineResource.js","sourceRoot":"","sources":["../../src/definers/defineResource.ts"],"names":[],"mappings":";;AAkBA,wCAiGC;AAnHD,kCAciB;AACjB,sCAA4C;AAC5C,0DAAuD;AAEvD,SAAgB,cAAc,CAS5B,WAUC;IAED;;;;;;;;;;;;;;;OAeG;IACH,uEAAuE;IACvE,MAAM,QAAQ,GAAW,WAAW,CAAC,qBAAc,CAAC,IAAI,IAAA,6BAAa,GAAE,CAAC;IACxE,MAAM,eAAe,GAAG,WAAW,CAAC,0BAAmB,CAAC,IAAI,KAAK,CAAC;IAClE,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC;IAE1B,OAAO;QACL,CAAC,qBAAc,CAAC,EAAE,IAAI;QACtB,CAAC,qBAAc,CAAC,EAAE,QAAQ;QAC1B,CAAC,0BAAmB,CAAC,EAAE,eAAe;QACtC,EAAE;QACF,YAAY,EAAE,WAAW,CAAC,YAAY;QACtC,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI,EAAE;QACpC,SAAS,EAAE,WAAW,CAAC,SAAS,IAAI,EAAE;QACtC,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,YAAY,EAAE,WAAW,CAAC,YAAY;QACtC,YAAY,EAAE,WAAW,CAAC,YAAY;QACtC,IAAI,EAAE,WAAW,CAAC,IAAI,IAAK,EAAuB;QAClD,IAAI,EAAE,UAAU,MAAe;YAC7B,sDAAsD;YACtD,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,wBAAe,CACvB,iBAAiB,EACjB,EAAE,EACF,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC1D,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,OAAO;gBACL,CAAC,+BAAwB,CAAC,EAAE,IAAI;gBAChC,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,MAAM;aASP,CAAC;QACJ,CAAC;QAED,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,IAAI,EAAE,CAAU;QACvC,UAAU,EAAE,WAAW,CAAC,UAAU,IAAK,EAA6B;QACpE,QAAQ;YACN,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,CAAC,+BAAwB,CAAC,EAAE,IAAI;aAGjC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { IResourceMiddleware, IResourceMiddlewareDefinition, DependencyMapType } from "../defs";
2
+ export declare function defineResourceMiddleware<TConfig = any, TEnforceInputContract = void, TEnforceOutputContract = void, TDependencies extends DependencyMapType = any>(middlewareDef: IResourceMiddlewareDefinition<TConfig, TEnforceInputContract, TEnforceOutputContract, TDependencies>): IResourceMiddleware<TConfig, TEnforceInputContract, TEnforceOutputContract, TDependencies>;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineResourceMiddleware = defineResourceMiddleware;
4
+ const defs_1 = require("../defs");
5
+ const errors_1 = require("../errors");
6
+ const getCallerFile_1 = require("../tools/getCallerFile");
7
+ function defineResourceMiddleware(middlewareDef) {
8
+ const filePath = (0, getCallerFile_1.getCallerFile)();
9
+ const base = {
10
+ [defs_1.symbolFilePath]: filePath,
11
+ [defs_1.symbolResourceMiddleware]: true,
12
+ config: {},
13
+ configSchema: middlewareDef.configSchema,
14
+ ...middlewareDef,
15
+ dependencies: middlewareDef.dependencies || {},
16
+ };
17
+ const wrap = (obj) => {
18
+ return {
19
+ ...obj,
20
+ with: (config) => {
21
+ if (obj.configSchema) {
22
+ try {
23
+ config = obj.configSchema.parse(config);
24
+ }
25
+ catch (error) {
26
+ throw new errors_1.ValidationError("Middleware config", obj.id, error);
27
+ }
28
+ }
29
+ return wrap({
30
+ ...obj,
31
+ [defs_1.symbolMiddlewareConfigured]: true,
32
+ config: {
33
+ ...obj.config,
34
+ ...config,
35
+ },
36
+ });
37
+ },
38
+ };
39
+ };
40
+ return wrap(base);
41
+ }
42
+ //# sourceMappingURL=defineResourceMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineResourceMiddleware.js","sourceRoot":"","sources":["../../src/definers/defineResourceMiddleware.ts"],"names":[],"mappings":";;AAYA,4DAgFC;AA5FD,kCAQiB;AACjB,sCAA4C;AAC5C,0DAAuD;AAEvD,SAAgB,wBAAwB,CAMtC,aAKC;IAOD,MAAM,QAAQ,GAAG,IAAA,6BAAa,GAAE,CAAC;IACjC,MAAM,IAAI,GAAG;QACX,CAAC,qBAAc,CAAC,EAAE,QAAQ;QAC1B,CAAC,+BAAwB,CAAC,EAAE,IAAI;QAChC,MAAM,EAAE,EAAa;QACrB,YAAY,EAAE,aAAa,CAAC,YAAY;QACxC,GAAG,aAAa;QAChB,YAAY,EAAE,aAAa,CAAC,YAAY,IAAK,EAAoB;KAMlE,CAAC;IAEF,MAAM,IAAI,GAAG,CACX,GAOC,EAMD,EAAE;QACF,OAAO;YACL,GAAG,GAAG;YACN,IAAI,EAAE,CAAC,MAAe,EAAE,EAAE;gBACxB,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;oBACrB,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC1C,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,IAAI,wBAAe,CACvB,mBAAmB,EACnB,GAAG,CAAC,EAAE,EACN,KAAc,CACf,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,CAAC;oBACV,GAAG,GAAG;oBACN,CAAC,iCAA0B,CAAC,EAAE,IAAI;oBAClC,MAAM,EAAE;wBACN,GAAI,GAAG,CAAC,MAAkB;wBAC1B,GAAG,MAAM;qBACV;iBAC6G,CAAC,CAAC;YACpH,CAAC;SAMF,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { ITag, ITagDefinition } from "../defs";
2
+ /**
3
+ * Create a tag definition.
4
+ * - `.with(config)` to create configured instances
5
+ * - `.extract(tags)` to extract this tag from a list of tags or a taggable's meta
6
+ *
7
+ * @typeParam TConfig - Configuration type carried by configured tags.
8
+ * @typeParam TEnforceContract - Optional helper type to enforce a contract when tags are used.
9
+ * @param definition - The tag definition (id).
10
+ * @returns A tag object with helpers to configure and extract.
11
+ */
12
+ export declare function defineTag<TConfig = void, TEnforceInputContract = void, TEnforceOutputContract = void>(definition: ITagDefinition<TConfig, TEnforceInputContract, TEnforceOutputContract>): ITag<TConfig, TEnforceInputContract, TEnforceOutputContract>;
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineTag = defineTag;
4
+ const defs_1 = require("../defs");
5
+ const errors_1 = require("../errors");
6
+ const getCallerFile_1 = require("../tools/getCallerFile");
7
+ /**
8
+ * Create a tag definition.
9
+ * - `.with(config)` to create configured instances
10
+ * - `.extract(tags)` to extract this tag from a list of tags or a taggable's meta
11
+ *
12
+ * @typeParam TConfig - Configuration type carried by configured tags.
13
+ * @typeParam TEnforceContract - Optional helper type to enforce a contract when tags are used.
14
+ * @param definition - The tag definition (id).
15
+ * @returns A tag object with helpers to configure and extract.
16
+ */
17
+ function defineTag(definition) {
18
+ const id = definition.id;
19
+ const filePath = (0, getCallerFile_1.getCallerFile)();
20
+ const foundation = {
21
+ id,
22
+ meta: definition.meta,
23
+ config: definition.config,
24
+ };
25
+ return {
26
+ ...foundation,
27
+ [defs_1.symbolTag]: true,
28
+ [defs_1.symbolFilePath]: filePath,
29
+ /**
30
+ * Specify custom config for this tag which extends the default one if exists
31
+ * @param tagConfig
32
+ * @returns
33
+ */
34
+ with(tagConfig) {
35
+ if (definition.configSchema) {
36
+ try {
37
+ tagConfig = definition.configSchema.parse(tagConfig);
38
+ }
39
+ catch (error) {
40
+ throw new errors_1.ValidationError("Tag config", this.id, error);
41
+ }
42
+ }
43
+ let config;
44
+ if (typeof tagConfig === "object") {
45
+ if (typeof foundation.config === "object") {
46
+ config = {
47
+ ...foundation.config,
48
+ ...tagConfig,
49
+ };
50
+ }
51
+ else {
52
+ config = tagConfig;
53
+ }
54
+ }
55
+ else {
56
+ config = tagConfig;
57
+ }
58
+ return {
59
+ ...foundation,
60
+ [defs_1.symbolTagConfigured]: true,
61
+ config,
62
+ };
63
+ },
64
+ /**
65
+ * Checks if the tag exists in a taggable or a list of tags.
66
+ * @param target
67
+ * @returns
68
+ */
69
+ exists(target) {
70
+ let currentTags = [];
71
+ if (Array.isArray(target)) {
72
+ currentTags = target;
73
+ }
74
+ else {
75
+ currentTags = target.tags;
76
+ }
77
+ for (const candidate of currentTags) {
78
+ if (candidate.id === id) {
79
+ return true;
80
+ }
81
+ }
82
+ return false;
83
+ },
84
+ /**
85
+ * Function which serves 2 purposes, verifying if the task exists, and retrieving its config
86
+ * @param target
87
+ * @returns
88
+ */
89
+ extract(target) {
90
+ let currentTags = [];
91
+ if (Array.isArray(target)) {
92
+ currentTags = target;
93
+ }
94
+ else {
95
+ currentTags = target.tags || [];
96
+ }
97
+ for (const candidate of currentTags) {
98
+ if (candidate.id === id) {
99
+ return candidate.config;
100
+ }
101
+ }
102
+ return;
103
+ },
104
+ };
105
+ }
106
+ //# sourceMappingURL=defineTag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineTag.js","sourceRoot":"","sources":["../../src/definers/defineTag.ts"],"names":[],"mappings":";;AAuBA,8BAsGC;AA7HD,kCASiB;AACjB,sCAA4C;AAC5C,0DAAuD;AAEvD;;;;;;;;;GASG;AACH,SAAgB,SAAS,CAKvB,UAIC;IAED,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAG,IAAA,6BAAa,GAAE,CAAC;IACjC,MAAM,UAAU,GAAG;QACjB,EAAE;QACF,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,UAAU,CAAC,MAAM;KACsC,CAAC;IAElE,OAAO;QACL,GAAG,UAAU;QACb,CAAC,gBAAS,CAAC,EAAE,IAAI;QACjB,CAAC,qBAAc,CAAC,EAAE,QAAQ;QAC1B;;;;WAIG;QACH,IAAI,CAAC,SAAkB;YACrB,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACvD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,wBAAe,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE,KAAc,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;YACD,IAAI,MAAe,CAAC;YACpB,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAClC,IAAI,OAAO,UAAU,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC1C,MAAM,GAAG;wBACP,GAAG,UAAU,CAAC,MAAM;wBACpB,GAAG,SAAS;qBACb,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,SAAS,CAAC;gBACrB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,SAAS,CAAC;YACrB,CAAC;YACD,OAAO;gBACL,GAAG,UAAU;gBACb,CAAC,0BAAmB,CAAC,EAAE,IAAI;gBAC3B,MAAM;aAKP,CAAC;QACJ,CAAC;QACD;;;;WAIG;QACH,MAAM,CAAC,MAA6B;YAClC,IAAI,WAAW,GAAc,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,WAAW,GAAG,MAAM,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;YAC5B,CAAC;YAED,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;gBACpC,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;oBACxB,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QACD;;;;WAIG;QACH,OAAO,CAAC,MAA6B;YACnC,IAAI,WAAW,GAAc,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,WAAW,GAAG,MAAM,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YAClC,CAAC;YAED,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;gBACpC,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;oBACxB,OAAO,SAAS,CAAC,MAAiB,CAAC;gBACrC,CAAC;YACH,CAAC;YAED,OAAO;QACT,CAAC;KACqE,CAAC;AAC3E,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { ITask, ITaskDefinition, DependencyMapType, ITaskMeta, TagType, TaskMiddlewareAttachmentType } from "../defs";
2
+ /**
3
+ * Define a task.
4
+ * Generates a strongly-typed task object with id, dependencies,
5
+ * middleware, and metadata.
6
+ *
7
+ * @typeParam Input - Input type accepted by the task's `run` function.
8
+ * @typeParam Output - Promise type returned by the `run` function.
9
+ * @typeParam Deps - Dependency map type this task requires.
10
+ * @typeParam TOn - Event type or "*" this task listens to.
11
+ * @typeParam TMeta - Arbitrary metadata type carried by the task.
12
+ * @param taskConfig - The task definition config.
13
+ * @returns A branded task definition usable by the runner.
14
+ */
15
+ export declare function defineTask<Input = undefined, Output extends Promise<any> = any, Deps extends DependencyMapType = any, TMeta extends ITaskMeta = any, TTags extends TagType[] = TagType[], TMiddleware extends TaskMiddlewareAttachmentType[] = TaskMiddlewareAttachmentType[]>(taskConfig: ITaskDefinition<Input, Output, Deps, TMeta, TTags, TMiddleware>): ITask<Input, Output, Deps, TMeta, TTags, TMiddleware>;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineTask = defineTask;
4
+ const defs_1 = require("../defs");
5
+ const getCallerFile_1 = require("../tools/getCallerFile");
6
+ /**
7
+ * Define a task.
8
+ * Generates a strongly-typed task object with id, dependencies,
9
+ * middleware, and metadata.
10
+ *
11
+ * @typeParam Input - Input type accepted by the task's `run` function.
12
+ * @typeParam Output - Promise type returned by the `run` function.
13
+ * @typeParam Deps - Dependency map type this task requires.
14
+ * @typeParam TOn - Event type or "*" this task listens to.
15
+ * @typeParam TMeta - Arbitrary metadata type carried by the task.
16
+ * @param taskConfig - The task definition config.
17
+ * @returns A branded task definition usable by the runner.
18
+ */
19
+ function defineTask(taskConfig) {
20
+ const filePath = (0, getCallerFile_1.getCallerFile)();
21
+ const id = taskConfig.id;
22
+ return {
23
+ [defs_1.symbolTask]: true,
24
+ [defs_1.symbolFilePath]: filePath,
25
+ id,
26
+ dependencies: taskConfig.dependencies || {},
27
+ middleware: taskConfig.middleware || [],
28
+ run: taskConfig.run,
29
+ inputSchema: taskConfig.inputSchema,
30
+ resultSchema: taskConfig.resultSchema,
31
+ meta: taskConfig.meta || {},
32
+ tags: taskConfig.tags || [],
33
+ // autorun,
34
+ optional() {
35
+ return {
36
+ inner: this,
37
+ [defs_1.symbolOptionalDependency]: true,
38
+ };
39
+ },
40
+ };
41
+ }
42
+ //# sourceMappingURL=defineTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineTask.js","sourceRoot":"","sources":["../../src/definers/defineTask.ts"],"names":[],"mappings":";;AA2BA,gCAiCC;AA5DD,kCAWiB;AACjB,0DAAuD;AAEvD;;;;;;;;;;;;GAYG;AACH,SAAgB,UAAU,CAQxB,UAA2E;IAE3E,MAAM,QAAQ,GAAG,IAAA,6BAAa,GAAE,CAAC;IACjC,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;IACzB,OAAO;QACL,CAAC,iBAAU,CAAC,EAAE,IAAI;QAClB,CAAC,qBAAc,CAAC,EAAE,QAAQ;QAC1B,EAAE;QACF,YAAY,EAAE,UAAU,CAAC,YAAY,IAAK,EAAW;QACrD,UAAU,EAAE,UAAU,CAAC,UAAU,IAAK,EAA6B;QACnE,GAAG,EAAE,UAAU,CAAC,GAAG;QACnB,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,IAAI,EAAE,UAAU,CAAC,IAAI,IAAK,EAAY;QACtC,IAAI,EAAE,UAAU,CAAC,IAAI,IAAK,EAAuB;QACjD,WAAW;QACX,QAAQ;YACN,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,CAAC,+BAAwB,CAAC,EAAE,IAAI;aAGjC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ITaskMiddleware, ITaskMiddlewareDefinition, DependencyMapType } from "../defs";
2
+ export declare function defineTaskMiddleware<TConfig = any, TEnforceInputContract = void, TEnforceOutputContract = void, TDependencies extends DependencyMapType = any>(middlewareDef: ITaskMiddlewareDefinition<TConfig, TEnforceInputContract, TEnforceOutputContract, TDependencies>): ITaskMiddleware<TConfig, TEnforceInputContract, TEnforceOutputContract, TDependencies>;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineTaskMiddleware = defineTaskMiddleware;
4
+ const defs_1 = require("../defs");
5
+ const errors_1 = require("../errors");
6
+ const getCallerFile_1 = require("../tools/getCallerFile");
7
+ function defineTaskMiddleware(middlewareDef) {
8
+ const filePath = (0, getCallerFile_1.getCallerFile)();
9
+ const base = {
10
+ [defs_1.symbolFilePath]: filePath,
11
+ [defs_1.symbolTaskMiddleware]: true,
12
+ config: {},
13
+ configSchema: middlewareDef.configSchema,
14
+ ...middlewareDef,
15
+ dependencies: middlewareDef.dependencies || {},
16
+ };
17
+ const wrap = (obj) => {
18
+ return {
19
+ ...obj,
20
+ with: (config) => {
21
+ if (obj.configSchema) {
22
+ try {
23
+ config = obj.configSchema.parse(config);
24
+ }
25
+ catch (error) {
26
+ throw new errors_1.ValidationError("Middleware config", obj.id, error instanceof Error ? error : new Error(String(error)));
27
+ }
28
+ }
29
+ return wrap({
30
+ ...obj,
31
+ [defs_1.symbolMiddlewareConfigured]: true,
32
+ config: {
33
+ ...obj.config,
34
+ ...config,
35
+ },
36
+ });
37
+ },
38
+ };
39
+ };
40
+ return wrap(base);
41
+ }
42
+ //# sourceMappingURL=defineTaskMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineTaskMiddleware.js","sourceRoot":"","sources":["../../src/definers/defineTaskMiddleware.ts"],"names":[],"mappings":";;AAaA,oDAiFC;AA9FD,kCASiB;AACjB,sCAA4C;AAC5C,0DAAuD;AAEvD,SAAgB,oBAAoB,CAMlC,aAKC;IAOD,MAAM,QAAQ,GAAG,IAAA,6BAAa,GAAE,CAAC;IACjC,MAAM,IAAI,GAAG;QACX,CAAC,qBAAc,CAAC,EAAE,QAAQ;QAC1B,CAAC,2BAAoB,CAAC,EAAE,IAAI;QAC5B,MAAM,EAAE,EAAa;QACrB,YAAY,EAAE,aAAa,CAAC,YAAY;QACxC,GAAG,aAAa;QAChB,YAAY,EACT,aAAa,CAAC,YAA8B,IAAK,EAAoB;KAMzE,CAAC;IAEF,MAAM,IAAI,GAAG,CACX,GAOC,EAMD,EAAE;QACF,OAAO;YACL,GAAG,GAAG;YACN,IAAI,EAAE,CAAC,MAAe,EAAE,EAAE;gBACxB,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;oBACrB,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC1C,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,IAAI,wBAAe,CACvB,mBAAmB,EACnB,GAAG,CAAC,EAAE,EACN,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC1D,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,CAAC;oBACV,GAAG,GAAG;oBACN,CAAC,iCAA0B,CAAC,EAAE,IAAI;oBAClC,MAAM,EAAE;wBACN,GAAI,GAAG,CAAC,MAAkB;wBAC1B,GAAG,MAAM;qBACV;iBACyG,CAAC,CAAC;YAChH,CAAC;SAMF,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Type guard and utility functions for checking definition types.
3
+ */
4
+ import { ITask, IResource, IResourceWithConfig, ITaskMiddleware, IResourceMiddleware, IEvent, IHook, IOptionalDependency, ITag } from "../defs";
5
+ /**
6
+ * Type guard: checks if a definition is a Task.
7
+ * @param definition - Any value to test.
8
+ * @returns True when `definition` is a branded Task.
9
+ */
10
+ export declare function isTask(definition: any): definition is ITask;
11
+ /**
12
+ * Type guard: checks if a definition is a Resource.
13
+ * @param definition - Any value to test.
14
+ * @returns True when `definition` is a branded Resource.
15
+ */
16
+ export declare function isResource(definition: any): definition is IResource;
17
+ /**
18
+ * Type guard: checks if a definition is a Resource that carries config via `.with()`.
19
+ * @param definition - Any value to test.
20
+ * @returns True when `definition` is a branded ResourceWithConfig.
21
+ */
22
+ export declare function isResourceWithConfig(definition: any): definition is IResourceWithConfig;
23
+ /**
24
+ * Type guard: checks if a definition is an Event.
25
+ * @param definition - Any value to test.
26
+ * @returns True when `definition` is a branded Event.
27
+ */
28
+ export declare function isEvent(definition: any): definition is IEvent;
29
+ /** Type guard: checks if a definition is a Hook. */
30
+ export declare function isHook(definition: any): definition is IHook;
31
+ /**
32
+ * Type guard: checks if a definition is a Middleware.
33
+ * @param definition - Any value to test.
34
+ * @returns True when `definition` is a branded Middleware.
35
+ */
36
+ export declare function isTaskMiddleware(definition: any): definition is ITaskMiddleware;
37
+ export declare function isResourceMiddleware(definition: any): definition is IResourceMiddleware;
38
+ /**
39
+ * Type guard: checks if a definition is a Tag.
40
+ * @param definition - Any value to test.
41
+ * @returns True when `definition` is a branded Tag.
42
+ */
43
+ export declare function isTag(definition: any): definition is ITag;
44
+ /** Type guard: checks if a definition is an Optional Dependency wrapper. */
45
+ export declare function isOptional(definition: any): definition is IOptionalDependency<any>;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTask = isTask;
4
+ exports.isResource = isResource;
5
+ exports.isResourceWithConfig = isResourceWithConfig;
6
+ exports.isEvent = isEvent;
7
+ exports.isHook = isHook;
8
+ exports.isTaskMiddleware = isTaskMiddleware;
9
+ exports.isResourceMiddleware = isResourceMiddleware;
10
+ exports.isTag = isTag;
11
+ exports.isOptional = isOptional;
12
+ /**
13
+ * Type guard and utility functions for checking definition types.
14
+ */
15
+ const defs_1 = require("../defs");
16
+ /**
17
+ * Type guard: checks if a definition is a Task.
18
+ * @param definition - Any value to test.
19
+ * @returns True when `definition` is a branded Task.
20
+ */
21
+ function isTask(definition) {
22
+ return definition && definition[defs_1.symbolTask];
23
+ }
24
+ /**
25
+ * Type guard: checks if a definition is a Resource.
26
+ * @param definition - Any value to test.
27
+ * @returns True when `definition` is a branded Resource.
28
+ */
29
+ function isResource(definition) {
30
+ return definition && definition[defs_1.symbolResource];
31
+ }
32
+ /**
33
+ * Type guard: checks if a definition is a Resource that carries config via `.with()`.
34
+ * @param definition - Any value to test.
35
+ * @returns True when `definition` is a branded ResourceWithConfig.
36
+ */
37
+ function isResourceWithConfig(definition) {
38
+ return definition && definition[defs_1.symbolResourceWithConfig];
39
+ }
40
+ /**
41
+ * Type guard: checks if a definition is an Event.
42
+ * @param definition - Any value to test.
43
+ * @returns True when `definition` is a branded Event.
44
+ */
45
+ function isEvent(definition) {
46
+ return definition && definition[defs_1.symbolEvent];
47
+ }
48
+ /** Type guard: checks if a definition is a Hook. */
49
+ function isHook(definition) {
50
+ return definition && definition[defs_1.symbolHook];
51
+ }
52
+ /**
53
+ * Type guard: checks if a definition is a Middleware.
54
+ * @param definition - Any value to test.
55
+ * @returns True when `definition` is a branded Middleware.
56
+ */
57
+ function isTaskMiddleware(definition) {
58
+ return definition && definition[defs_1.symbolTaskMiddleware];
59
+ }
60
+ function isResourceMiddleware(definition) {
61
+ return definition && definition[defs_1.symbolResourceMiddleware];
62
+ }
63
+ /**
64
+ * Type guard: checks if a definition is a Tag.
65
+ * @param definition - Any value to test.
66
+ * @returns True when `definition` is a branded Tag.
67
+ */
68
+ function isTag(definition) {
69
+ return definition && definition[defs_1.symbolTag];
70
+ }
71
+ /** Type guard: checks if a definition is an Optional Dependency wrapper. */
72
+ function isOptional(definition) {
73
+ return definition && definition[defs_1.symbolOptionalDependency];
74
+ }
75
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/definers/tools.ts"],"names":[],"mappings":";;AA6BA,wBAEC;AAOD,gCAEC;AAOD,oDAIC;AAOD,0BAEC;AAGD,wBAEC;AAOD,4CAIC;AAED,oDAIC;AAOD,sBAEC;AAGD,gCAIC;AAlGD;;GAEG;AACH,kCAmBiB;AAEjB;;;;GAIG;AACH,SAAgB,MAAM,CAAC,UAAe;IACpC,OAAO,UAAU,IAAI,UAAU,CAAC,iBAAU,CAAC,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAC,UAAe;IACxC,OAAO,UAAU,IAAI,UAAU,CAAC,qBAAc,CAAC,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAClC,UAAe;IAEf,OAAO,UAAU,IAAI,UAAU,CAAC,+BAAwB,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,SAAgB,OAAO,CAAC,UAAe;IACrC,OAAO,UAAU,IAAI,UAAU,CAAC,kBAAW,CAAC,CAAC;AAC/C,CAAC;AAED,oDAAoD;AACpD,SAAgB,MAAM,CAAC,UAAe;IACpC,OAAO,UAAU,IAAI,UAAU,CAAC,iBAAU,CAAC,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAC9B,UAAe;IAEf,OAAO,UAAU,IAAI,UAAU,CAAC,2BAAoB,CAAC,CAAC;AACxD,CAAC;AAED,SAAgB,oBAAoB,CAClC,UAAe;IAEf,OAAO,UAAU,IAAI,UAAU,CAAC,+BAAwB,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,SAAgB,KAAK,CAAC,UAAe;IACnC,OAAO,UAAU,IAAI,UAAU,CAAC,gBAAS,CAAC,CAAC;AAC7C,CAAC;AAED,4EAA4E;AAC5E,SAAgB,UAAU,CACxB,UAAe;IAEf,OAAO,UAAU,IAAI,UAAU,CAAC,+BAAwB,CAAC,CAAC;AAC5D,CAAC"}