nmtjs 0.15.0-beta.2 → 0.15.0-beta.21
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.
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +3 -2
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +51 -0
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -0
- package/dist/entrypoints/cli.d.ts +1 -0
- package/dist/entrypoints/cli.js +1 -0
- package/dist/entrypoints/cli.js.map +1 -0
- package/dist/entrypoints/main.d.ts +5 -0
- package/dist/entrypoints/main.js +83 -15
- package/dist/entrypoints/main.js.map +1 -0
- package/dist/entrypoints/thread.d.ts +14 -0
- package/dist/entrypoints/thread.js +130 -24
- package/dist/entrypoints/thread.js.map +1 -0
- package/dist/entrypoints/worker.d.ts +3 -0
- package/dist/entrypoints/worker.js +4 -3
- package/dist/entrypoints/worker.js.map +1 -0
- package/dist/index.d.ts +69 -0
- package/dist/{_exports/index.js → index.js} +9 -5
- package/dist/index.js.map +1 -0
- package/dist/resolver.d.ts +2 -0
- package/dist/resolver.js +1 -0
- package/dist/resolver.js.map +1 -0
- package/dist/runtime/application/api/api.d.ts +49 -0
- package/dist/runtime/application/api/api.js +193 -0
- package/dist/runtime/application/api/api.js.map +1 -0
- package/dist/runtime/application/api/constants.d.ts +14 -0
- package/dist/runtime/application/api/constants.js +8 -0
- package/dist/runtime/application/api/constants.js.map +1 -0
- package/dist/runtime/application/api/filters.d.ts +14 -0
- package/dist/runtime/application/api/filters.js +11 -0
- package/dist/runtime/application/api/filters.js.map +1 -0
- package/dist/runtime/application/api/guards.d.ts +13 -0
- package/dist/runtime/application/api/guards.js +8 -0
- package/dist/runtime/application/api/guards.js.map +1 -0
- package/dist/runtime/application/api/index.d.ts +8 -0
- package/dist/runtime/application/api/index.js +9 -0
- package/dist/runtime/application/api/index.js.map +1 -0
- package/dist/runtime/application/api/middlewares.d.ts +14 -0
- package/dist/runtime/application/api/middlewares.js +12 -0
- package/dist/runtime/application/api/middlewares.js.map +1 -0
- package/dist/runtime/application/api/procedure.d.ts +67 -0
- package/dist/runtime/application/api/procedure.js +50 -0
- package/dist/runtime/application/api/procedure.js.map +1 -0
- package/dist/runtime/application/api/router.d.ts +71 -0
- package/dist/runtime/application/api/router.js +51 -0
- package/dist/runtime/application/api/router.js.map +1 -0
- package/dist/runtime/application/api/types.d.ts +32 -0
- package/dist/runtime/application/api/types.js +2 -0
- package/dist/runtime/application/api/types.js.map +1 -0
- package/dist/runtime/application/config.d.ts +26 -0
- package/dist/runtime/application/config.js +21 -0
- package/dist/runtime/application/config.js.map +1 -0
- package/dist/runtime/application/constants.d.ts +2 -0
- package/dist/runtime/application/constants.js +2 -0
- package/dist/runtime/application/constants.js.map +1 -0
- package/dist/runtime/application/hook.d.ts +19 -0
- package/dist/runtime/application/hook.js +11 -0
- package/dist/runtime/application/hook.js.map +1 -0
- package/dist/runtime/application/hooks.d.ts +3 -0
- package/dist/runtime/application/hooks.js +4 -0
- package/dist/runtime/application/hooks.js.map +1 -0
- package/dist/runtime/application/index.d.ts +5 -0
- package/dist/runtime/application/index.js +6 -0
- package/dist/runtime/application/index.js.map +1 -0
- package/dist/runtime/constants.d.ts +8 -0
- package/dist/runtime/constants.js +5 -0
- package/dist/runtime/constants.js.map +1 -0
- package/dist/runtime/core/hooks.d.ts +4 -0
- package/dist/runtime/core/hooks.js +4 -0
- package/dist/runtime/core/hooks.js.map +1 -0
- package/dist/runtime/core/plugin.d.ts +8 -0
- package/dist/runtime/core/plugin.js +4 -0
- package/dist/runtime/core/plugin.js.map +1 -0
- package/dist/runtime/core/runtime.d.ts +27 -0
- package/dist/runtime/core/runtime.js +81 -0
- package/dist/runtime/core/runtime.js.map +1 -0
- package/dist/runtime/enums.d.ts +21 -0
- package/dist/runtime/enums.js +26 -0
- package/dist/runtime/enums.js.map +1 -0
- package/dist/runtime/index.d.ts +21 -0
- package/dist/runtime/index.js +22 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/injectables.d.ts +23 -0
- package/dist/runtime/injectables.js +20 -0
- package/dist/runtime/injectables.js.map +1 -0
- package/dist/runtime/jobs/job.d.ts +132 -0
- package/dist/runtime/jobs/job.js +68 -0
- package/dist/runtime/jobs/job.js.map +1 -0
- package/dist/runtime/jobs/manager.d.ts +113 -0
- package/dist/runtime/jobs/manager.js +210 -0
- package/dist/runtime/jobs/manager.js.map +1 -0
- package/dist/runtime/jobs/router.d.ts +266 -0
- package/dist/runtime/jobs/router.js +432 -0
- package/dist/runtime/jobs/router.js.map +1 -0
- package/dist/runtime/jobs/runner.d.ts +64 -0
- package/dist/runtime/jobs/runner.js +256 -0
- package/dist/runtime/jobs/runner.js.map +1 -0
- package/dist/runtime/jobs/step.d.ts +23 -0
- package/dist/runtime/jobs/step.js +18 -0
- package/dist/runtime/jobs/step.js.map +1 -0
- package/dist/runtime/jobs/ui.d.ts +3 -0
- package/dist/runtime/jobs/ui.js +17 -0
- package/dist/runtime/jobs/ui.js.map +1 -0
- package/dist/runtime/pubsub/manager.d.ts +48 -0
- package/dist/runtime/pubsub/manager.js +119 -0
- package/dist/runtime/pubsub/manager.js.map +1 -0
- package/dist/runtime/pubsub/redis.d.ts +16 -0
- package/dist/runtime/pubsub/redis.js +98 -0
- package/dist/runtime/pubsub/redis.js.map +1 -0
- package/dist/runtime/scheduler/index.d.ts +22 -0
- package/dist/runtime/scheduler/index.js +20 -0
- package/dist/runtime/scheduler/index.js.map +1 -0
- package/dist/runtime/server/applications.d.ts +52 -0
- package/dist/runtime/server/applications.js +133 -0
- package/dist/runtime/server/applications.js.map +1 -0
- package/dist/runtime/server/config.d.ts +121 -0
- package/dist/runtime/server/config.js +33 -0
- package/dist/runtime/server/config.js.map +1 -0
- package/dist/runtime/server/jobs.d.ts +41 -0
- package/dist/runtime/server/jobs.js +181 -0
- package/dist/runtime/server/jobs.js.map +1 -0
- package/dist/runtime/server/pool.d.ts +54 -0
- package/dist/runtime/server/pool.js +194 -0
- package/dist/runtime/server/pool.js.map +1 -0
- package/dist/runtime/server/proxy.d.ts +21 -0
- package/dist/runtime/server/proxy.js +79 -0
- package/dist/runtime/server/proxy.js.map +1 -0
- package/dist/runtime/server/server.d.ts +53 -0
- package/dist/runtime/server/server.js +90 -0
- package/dist/runtime/server/server.js.map +1 -0
- package/dist/runtime/store/index.d.ts +3 -0
- package/dist/runtime/store/index.js +23 -0
- package/dist/runtime/store/index.js.map +1 -0
- package/dist/runtime/types.d.ts +103 -0
- package/dist/runtime/types.js +2 -0
- package/dist/runtime/types.js.map +1 -0
- package/dist/runtime/workers/application.d.ts +47 -0
- package/dist/runtime/workers/application.js +162 -0
- package/dist/runtime/workers/application.js.map +1 -0
- package/dist/runtime/workers/base.d.ts +16 -0
- package/dist/runtime/workers/base.js +46 -0
- package/dist/runtime/workers/base.js.map +1 -0
- package/dist/runtime/workers/cli.d.ts +1 -0
- package/dist/runtime/workers/cli.js +2 -0
- package/dist/runtime/workers/cli.js.map +1 -0
- package/dist/runtime/workers/job.d.ts +20 -0
- package/dist/runtime/workers/job.js +172 -0
- package/dist/runtime/workers/job.js.map +1 -0
- package/dist/typings.d.ts +5 -0
- package/dist/typings.js +4 -3
- package/dist/typings.js.map +1 -0
- package/dist/vite/builder.d.ts +5 -0
- package/dist/vite/builder.js +5 -1
- package/dist/vite/builder.js.map +1 -0
- package/dist/vite/config.d.ts +28 -0
- package/dist/vite/config.js +1 -0
- package/dist/vite/config.js.map +1 -0
- package/dist/vite/plugins.d.ts +2 -0
- package/dist/vite/plugins.js +1 -0
- package/dist/vite/plugins.js.map +1 -0
- package/dist/vite/runners/worker.d.ts +4 -0
- package/dist/vite/runners/worker.js +1 -0
- package/dist/vite/runners/worker.js.map +1 -0
- package/dist/vite/server.d.ts +3 -0
- package/dist/vite/server.js +6 -1
- package/dist/vite/server.js.map +1 -0
- package/dist/vite/servers/main.d.ts +8 -0
- package/dist/vite/servers/main.js +1 -0
- package/dist/vite/servers/main.js.map +1 -0
- package/dist/vite/servers/worker.d.ts +11 -0
- package/dist/vite/servers/worker.js +28 -0
- package/dist/vite/servers/worker.js.map +1 -0
- package/package.json +31 -18
- package/src/cli.ts +144 -0
- package/src/config.ts +64 -0
- package/src/entrypoints/cli.ts +13 -0
- package/src/entrypoints/main.ts +200 -0
- package/src/entrypoints/thread.ts +184 -0
- package/src/entrypoints/worker.ts +48 -0
- package/src/index.ts +82 -0
- package/src/resolver.ts +16 -0
- package/src/runtime/application/api/api.ts +265 -0
- package/src/runtime/application/api/constants.ts +22 -0
- package/src/runtime/application/api/filters.ts +39 -0
- package/src/runtime/application/api/guards.ts +29 -0
- package/src/runtime/application/api/index.ts +8 -0
- package/src/runtime/application/api/middlewares.ts +37 -0
- package/src/runtime/application/api/procedure.ts +229 -0
- package/src/runtime/application/api/router.ts +193 -0
- package/src/runtime/application/api/types.ts +124 -0
- package/src/runtime/application/config.ts +69 -0
- package/src/runtime/application/constants.ts +4 -0
- package/src/runtime/application/hook.ts +51 -0
- package/src/runtime/application/hooks.ts +3 -0
- package/src/runtime/application/index.ts +5 -0
- package/src/runtime/constants.ts +13 -0
- package/src/runtime/core/hooks.ts +5 -0
- package/src/runtime/core/plugin.ts +13 -0
- package/src/runtime/core/runtime.ts +109 -0
- package/src/runtime/enums.ts +24 -0
- package/src/runtime/index.ts +21 -0
- package/src/runtime/injectables.ts +61 -0
- package/src/runtime/jobs/job.ts +370 -0
- package/src/runtime/jobs/manager.ts +348 -0
- package/src/runtime/jobs/router.ts +896 -0
- package/src/runtime/jobs/runner.ts +320 -0
- package/src/runtime/jobs/step.ts +66 -0
- package/src/runtime/jobs/ui.ts +21 -0
- package/src/runtime/pubsub/manager.ts +211 -0
- package/src/runtime/pubsub/redis.ts +108 -0
- package/src/runtime/scheduler/index.ts +39 -0
- package/src/runtime/server/applications.ts +210 -0
- package/src/runtime/server/config.ts +158 -0
- package/src/runtime/server/jobs.ts +250 -0
- package/src/runtime/server/pool.ts +260 -0
- package/src/runtime/server/proxy.ts +118 -0
- package/src/runtime/server/server.ts +155 -0
- package/src/runtime/store/index.ts +30 -0
- package/src/runtime/types.ts +93 -0
- package/src/runtime/workers/application.ts +209 -0
- package/src/runtime/workers/base.ts +68 -0
- package/src/runtime/workers/cli.ts +0 -0
- package/src/runtime/workers/job.ts +153 -0
- package/src/typings.ts +30 -0
- package/src/vite/builder.ts +122 -0
- package/src/vite/config.ts +45 -0
- package/src/vite/plugins.ts +26 -0
- package/src/vite/runners/worker.ts +57 -0
- package/src/vite/server.ts +39 -0
- package/src/vite/servers/main.ts +34 -0
- package/src/vite/servers/worker.ts +143 -0
- package/dist/_exports/application.js +0 -1
- package/dist/_exports/common.js +0 -1
- package/dist/_exports/contract.js +0 -2
- package/dist/_exports/core.js +0 -1
- package/dist/_exports/gateway.js +0 -1
- package/dist/_exports/http-transport/bun.js +0 -1
- package/dist/_exports/http-transport/deno.js +0 -1
- package/dist/_exports/http-transport/node.js +0 -1
- package/dist/_exports/http-transport.js +0 -1
- package/dist/_exports/json-format.js +0 -1
- package/dist/_exports/protocol/client.js +0 -1
- package/dist/_exports/protocol/server.js +0 -1
- package/dist/_exports/protocol.js +0 -1
- package/dist/_exports/runtime/types.js +0 -1
- package/dist/_exports/runtime.js +0 -1
- package/dist/_exports/type.js +0 -2
- package/dist/_exports/ws-transport/bun.js +0 -1
- package/dist/_exports/ws-transport/deno.js +0 -1
- package/dist/_exports/ws-transport/node.js +0 -1
- package/dist/_exports/ws-transport.js +0 -1
- package/dist/command.js +0 -30
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/runtime/jobs/router.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAA;AAO/B,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAkM9C,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,sCAAsC;AACtC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAA;AAEF,qCAAqC;AACrC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAEnD,sCAAsC;AACtC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAEtE,uCAAuC;AACvC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAA;AAEF,gDAAgD;AAChD,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAElD,uCAAuC;AACvC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,KAAK,CACZ,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CACrE;CACF,CAAC,CAAA;AAEF,4DAA4D;AAC5D,SAAS,mBAAmB,CAAmB,GAAM;IACnD,OAAO,CAAC,CAAC,MAAM,CAAC;QACd,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE;QACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,IAAI,EAAE,GAAG,CAAC,KAAK;QACf,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE;QACjC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;QACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC1C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;KACnB,CAAC,CAAA;AACJ,CAAC;AAED,oDAAoD;AACpD,SAAS,sBAAsB,CAC7B,GAAM;IAEN,OAAO,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KAClB,CAAC,CAAA;AACJ,CAAC;AAED,mDAAmD;AACnD,SAAS,qBAAqB,CAC5B,GAAM;IAEN,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC5C,CAAC;AAED,kDAAkD;AAClD,SAAS,oBAAoB,CAAmB,GAAM;IACpD,OAAO,CAAC,CAAC,MAAM,CAAC;QACd,IAAI,EAAE,GAAG,CAAC,KAAK;QACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC7B,CAAC,CAAA;AACJ,CAAC;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,YAAY,CAI1B,MA2CC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAWD,SAAS,mBAAmB,CAC1B,GAAW,EACX,SAAmC,EAAE,EACrC,MAA8D;IAE9D,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAA;IACtE,MAAM,cAAc,GAAG;QACrB,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAC7B,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;KAC9B,CAAA;IAED,MAAM,IAAI,GAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,CAAA;IAE3E,OAAO,eAAe,CAAC;QACrB,MAAM,EAAE,gBAAgB;QACxB,YAAY,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;QACzD,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,cAAc;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,CAAC,GAAsC,EAAE,EAAE;YAClD,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,kBAAkB,CAAC,CAAA;YACnE,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACpC,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,GAAW,EACX,SAAmC,EAAE,EACrC,MAA8D;IAE9D,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAA;IACtE,MAAM,cAAc,GAAG;QACrB,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAC7B,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;KAC9B,CAAA;IAED,MAAM,IAAI,GAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,CAAA;IAE3E,OAAO,eAAe,CAAC;QACrB,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,sBAAsB,CAAC,GAAG,CAAC;QACnC,YAAY,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;QACzD,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,cAAc;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,KAAK,EAAE,GAAsC,EAAE,KAAK,EAAE,EAAE;YAC/D,GAAG,CAAC,MAAM,CAAC,KAAK,CACd;gBACE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI;gBACzB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB,EACD,cAAc,CACf,CAAA;YACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC5C,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK,CAAC,KAAmB;aACjC,CAAC,CAAA;YACF,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EACvE,aAAa,CACd,CAAA;YACD,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,GAAW,EACX,SAAkC,EAAE,EACpC,MAA8D;IAE9D,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAA;IACtE,MAAM,cAAc,GAAG;QACrB,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAC7B,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;KAC9B,CAAA;IAED,MAAM,IAAI,GAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,CAAA;IAE3E,OAAO,eAAe,CAAC;QACrB,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,qBAAqB,CAAC,GAAG,CAAC;QAClC,YAAY,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;QACzD,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,cAAc;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,KAAK,EAAE,GAAsC,EAAE,KAAK,EAAE,EAAE;YAC/D,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAC3C,aAAa,CACd,CAAA;YACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;YACtD,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,EAAE,EACnE,eAAe,CAChB,CAAA;YACD,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,GAAW,EACX,SAA0C,EAAE,EAC5C,MAA8D;IAE9D,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAA;IACtE,MAAM,cAAc,GAAG;QACrB,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAC7B,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;KAC9B,CAAA;IAED,MAAM,IAAI,GAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,CAAA;IAE3E,OAAO,eAAe,CAAC;QACrB,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC;QAChC,MAAM,EAAE,eAAe;QACvB,YAAY,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;QACzD,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,cAAc;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,KAAK,EAAE,GAAsC,EAAE,KAAK,EAAE,EAAE;YAC/D,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAA;YAExB,GAAG,CAAC,MAAM,CAAC,KAAK,CACd;gBACE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI;gBACzB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACzB,EACD,YAAY,CACb,CAAA;YAED,kCAAkC;YAClC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAC7B,wBAAwB,CACzB,CAAA;gBACD,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,GAAU,EAAE,OAAO,CAAC,CAAA;YACvD,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE;gBACzD,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE,QAAQ;gBACpD,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK;gBAC3C,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ;aACnC,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,EAAE,EAAE,EAAE,WAAW,CAAC,EAAG,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAA;YAE9D,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,CAAA;YAE1E,iCAAiC;YACjC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAC5C,uBAAuB,CACxB,CAAA;gBACD,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YACpD,CAAC;YAED,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,GAAW,EACX,SAAoC,EAAE,EACtC,MAA8D;IAE9D,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAA;IACtE,MAAM,cAAc,GAAG;QACrB,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAC7B,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;KAC9B,CAAA;IAED,MAAM,IAAI,GAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,CAAA;IAE3E,OAAO,eAAe,CAAC;QACrB,KAAK,EAAE,gBAAgB;QACvB,YAAY,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;QACzD,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,cAAc;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,KAAK,EAAE,GAAsC,EAAE,KAAK,EAAE,EAAE;YAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAA;YAExD,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,EACvD,cAAc,CACf,CAAA;YAED,oCAAoC;YACpC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAC3C,0BAA0B,CAC3B,CAAA;gBACD,MAAM,MAAM,CAAC,WAAW,CAAC,GAAU,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;YACpE,CAAC;YAED,MAAM,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;YAEzD,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAC3C,aAAa,CACd,CAAA;YAED,mCAAmC;YACnC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAC3C,yBAAyB,CAC1B,CAAA;gBACD,MAAM,MAAM,CAAC,UAAU,CAAC,GAAU,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;YACnE,CAAC;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,GAAW,EACX,SAAqC,EAAE,EACvC,MAA8D;IAE9D,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAA;IACtE,MAAM,cAAc,GAAG;QACrB,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAC7B,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;KAC9B,CAAA;IAED,MAAM,IAAI,GAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,CAAA;IAE3E,OAAO,eAAe,CAAC;QACrB,KAAK,EAAE,aAAa;QACpB,YAAY,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;QACzD,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,cAAc;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,KAAK,EAAE,GAAsC,EAAE,KAAK,EAAE,EAAE;YAC/D,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAC3C,eAAe,CAChB,CAAA;YAED,qCAAqC;YACrC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAC3C,2BAA2B,CAC5B,CAAA;gBACD,MAAM,MAAM,CAAC,YAAY,CAAC,GAAU,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;YACzD,CAAC;YAED,MAAM,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;YAE1C,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAC3C,cAAc,CACf,CAAA;YAED,oCAAoC;YACpC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAC3C,0BAA0B,CAC3B,CAAA;gBACD,MAAM,MAAM,CAAC,WAAW,CAAC,GAAU,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,GAAW,EACX,SAAqC,EAAE,EACvC,MAA8D;IAE9D,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAA;IACtE,MAAM,cAAc,GAAG;QACrB,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAC7B,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;KAC9B,CAAA;IAED,MAAM,IAAI,GAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,CAAA;IAE3E,OAAO,eAAe,CAAC;QACrB,KAAK,EAAE,aAAa;QACpB,YAAY,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;QACzD,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,cAAc;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,KAAK,EAAE,GAAsC,EAAE,KAAK,EAAE,EAAE;YAC/D,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAC3C,cAAc,CACf,CAAA;YAED,qCAAqC;YACrC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAC3C,2BAA2B,CAC5B,CAAA;gBACD,MAAM,MAAM,CAAC,YAAY,CAAC,GAAU,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;YACzD,CAAC;YAED,MAAM,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;YAE1C,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAC3C,aAAa,CACd,CAAA;YAED,oCAAoC;YACpC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAC3C,0BAA0B,CAC3B,CAAA;gBACD,MAAM,MAAM,CAAC,WAAW,CAAC,GAAU,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;GAEG;AACH,SAAS,eAAe,CACtB,WAA8B,EAAE,EAChC,YAA2B,EAAE;IAE7B,MAAM,MAAM,GAAkB,EAAE,CAAA;IAEhC,MAAM,GAAG,GAAG;QACV,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;KACA,CAAA;IAEV,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,CAAA;QAC9B,MAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;QAE9B,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAA;QACpB,CAAC;aAAM,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,mFAAmF;YACnF,IACE,SAAS;gBACR,SAAqB,KAAK,KAAK;gBAChC,OAAO,QAAQ,KAAK,QAAQ,EAC5B,CAAC;gBACD,MAAM,CAAC,EAAE,CAAC,GAAG;oBACX,GAAI,SAAoB;oBACxB,GAAI,QAAmB;oBACvB,MAAM,EAAE;wBACN,GAAG,CAAE,SAAiB,CAAC,MAAM,IAAI,EAAE,CAAC;wBACpC,GAAG,CAAE,QAAgB,CAAC,MAAM,IAAI,EAAE,CAAC;qBACpC;oBACD,WAAW,EAAE;wBACX,GAAG,CAAE,SAAiB,CAAC,WAAW,IAAI,EAAE,CAAC;wBACzC,GAAG,CAAE,QAAgB,CAAC,WAAW,IAAI,EAAE,CAAC;qBACzC;iBACK,CAAA;YACV,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,EAAE,CAAC,GAAG,QAAe,CAAA;YAC9B,CAAC;QACH,CAAC;aAAM,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAgB,CAAA;QAC/B,CAAC;QACD,qEAAqE;IACvE,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAsC;IAEtC,MAAM,EACJ,IAAI,EACJ,MAAM,EAAE,YAAY,GAAG,EAAE,EACzB,WAAW,EAAE,iBAAiB,GAAG,EAAE,EACnC,QAAQ,GAAG,EAAE,EACb,SAAS,GAAG,EAAE,GACf,GAAG,OAAO,CAAA;IAEX,MAAM,MAAM,GAA8B,EAAE,CAAA;IAC5C,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAA;IAEvE,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;QACzB,MAAM,YAAY,GACf,SAA2C,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;QAE7D,6CAA6C;QAC7C,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAE1D,MAAM,SAAS,GAAiC,EAAE,CAAA;QAElD,kCAAkC;QAClC,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC9B,SAAS,CAAC,IAAI,GAAG,mBAAmB,CAClC,GAAG,EACH,UAAU,CAAC,IAA2B,EACtC,MAAM,CACP,CAAA;QACH,CAAC;QAED,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC9B,SAAS,CAAC,IAAI,GAAG,mBAAmB,CAClC,GAAG,EACH,UAAU,CAAC,IAA2B,EACtC,MAAM,CACP,CAAA;QACH,CAAC;QAED,IAAI,UAAU,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YAC7B,SAAS,CAAC,GAAG,GAAG,kBAAkB,CAChC,GAAG,EACH,UAAU,CAAC,GAAyB,EACpC,MAAM,CACP,CAAA;QACH,CAAC;QAED,IAAI,UAAU,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YAC7B,SAAS,CAAC,GAAG,GAAG,kBAAkB,CAChC,GAAG,EACH,UAAU,CAAC,GAAyB,EACpC,MAAM,CACP,CAAA;QACH,CAAC;QAED,IAAI,UAAU,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YAC/B,SAAS,CAAC,KAAK,GAAG,oBAAoB,CACpC,GAAG,EACH,UAAU,CAAC,KAA6B,EACxC,MAAM,CACP,CAAA;QACH,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAChC,SAAS,CAAC,MAAM,GAAG,qBAAqB,CACtC,GAAG,EACH,UAAU,CAAC,MAA+B,EAC1C,MAAM,CACP,CAAA;QACH,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAChC,SAAS,CAAC,MAAM,GAAG,qBAAqB,CACtC,GAAG,EACH,UAAU,CAAC,MAA+B,EAC1C,MAAM,CACP,CAAA;QACH,CAAC;QAED,iDAAiD;QACjD,MAAM,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;IACvD,CAAC;IAED,2CAA2C;IAC3C,OAAO,YAAY,CAAC,EAAE,MAAM,EAAE,CAAqB,CAAA;AACrD,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { Container, Logger, LoggingOptions } from '@nmtjs/core';
|
|
2
|
+
import type { Job } from 'bullmq';
|
|
3
|
+
import type { LifecycleHooks } from '../core/hooks.ts';
|
|
4
|
+
import type { AnyJob } from './job.ts';
|
|
5
|
+
import type { AnyJobStep } from './step.ts';
|
|
6
|
+
export type JobRunnerOptions = {
|
|
7
|
+
logging?: LoggingOptions;
|
|
8
|
+
};
|
|
9
|
+
export interface StepResultEntry {
|
|
10
|
+
data: Record<string, unknown> | null;
|
|
11
|
+
duration: number;
|
|
12
|
+
}
|
|
13
|
+
export interface JobRunnerRunOptions {
|
|
14
|
+
signal: AbortSignal;
|
|
15
|
+
result: Record<string, unknown>;
|
|
16
|
+
stepResults: StepResultEntry[];
|
|
17
|
+
currentStepIndex: number;
|
|
18
|
+
progress: Record<string, unknown>;
|
|
19
|
+
}
|
|
20
|
+
export interface JobRunnerRunBeforeStepParams<Options extends JobRunnerRunOptions> {
|
|
21
|
+
job: AnyJob;
|
|
22
|
+
step: AnyJobStep;
|
|
23
|
+
stepIndex: number;
|
|
24
|
+
result: Record<string, unknown>;
|
|
25
|
+
stepResults: StepResultEntry[];
|
|
26
|
+
options: Options;
|
|
27
|
+
}
|
|
28
|
+
export interface JobRunnerRunAfterStepParams<Options extends JobRunnerRunOptions> extends JobRunnerRunBeforeStepParams<Options> {
|
|
29
|
+
stepResult: StepResultEntry;
|
|
30
|
+
}
|
|
31
|
+
export declare class JobRunner<RunOptions extends JobRunnerRunOptions = JobRunnerRunOptions> {
|
|
32
|
+
protected runtime: {
|
|
33
|
+
logger: Logger;
|
|
34
|
+
container: Container;
|
|
35
|
+
lifecycleHooks: LifecycleHooks;
|
|
36
|
+
};
|
|
37
|
+
logger: Logger;
|
|
38
|
+
constructor(runtime: {
|
|
39
|
+
logger: Logger;
|
|
40
|
+
container: Container;
|
|
41
|
+
lifecycleHooks: LifecycleHooks;
|
|
42
|
+
});
|
|
43
|
+
get container(): Container;
|
|
44
|
+
runJob<T extends AnyJob>(job: T, data: any, options?: Partial<RunOptions>): Promise<T['_']['output']>;
|
|
45
|
+
protected beforeStep(params: JobRunnerRunBeforeStepParams<RunOptions>): Promise<void>;
|
|
46
|
+
protected afterStep(params: JobRunnerRunAfterStepParams<RunOptions>): Promise<void>;
|
|
47
|
+
}
|
|
48
|
+
export declare class ApplicationWorkerJobRunner extends JobRunner<JobRunnerRunOptions & {
|
|
49
|
+
queueJob: Job;
|
|
50
|
+
}> {
|
|
51
|
+
protected runtime: {
|
|
52
|
+
logger: Logger;
|
|
53
|
+
container: Container;
|
|
54
|
+
lifecycleHooks: LifecycleHooks;
|
|
55
|
+
};
|
|
56
|
+
constructor(runtime: {
|
|
57
|
+
logger: Logger;
|
|
58
|
+
container: Container;
|
|
59
|
+
lifecycleHooks: LifecycleHooks;
|
|
60
|
+
});
|
|
61
|
+
protected afterStep(params: JobRunnerRunAfterStepParams<JobRunnerRunOptions & {
|
|
62
|
+
queueJob: Job;
|
|
63
|
+
}>): Promise<void>;
|
|
64
|
+
}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
|
|
2
|
+
if (value !== null && value !== void 0) {
|
|
3
|
+
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
4
|
+
var dispose, inner;
|
|
5
|
+
if (async) {
|
|
6
|
+
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
7
|
+
dispose = value[Symbol.asyncDispose];
|
|
8
|
+
}
|
|
9
|
+
if (dispose === void 0) {
|
|
10
|
+
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
|
11
|
+
dispose = value[Symbol.dispose];
|
|
12
|
+
if (async) inner = dispose;
|
|
13
|
+
}
|
|
14
|
+
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
|
15
|
+
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
|
16
|
+
env.stack.push({ value: value, dispose: dispose, async: async });
|
|
17
|
+
}
|
|
18
|
+
else if (async) {
|
|
19
|
+
env.stack.push({ async: true });
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
};
|
|
23
|
+
var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
|
|
24
|
+
return function (env) {
|
|
25
|
+
function fail(e) {
|
|
26
|
+
env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
27
|
+
env.hasError = true;
|
|
28
|
+
}
|
|
29
|
+
var r, s = 0;
|
|
30
|
+
function next() {
|
|
31
|
+
while (r = env.stack.pop()) {
|
|
32
|
+
try {
|
|
33
|
+
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
|
34
|
+
if (r.dispose) {
|
|
35
|
+
var result = r.dispose.call(r.value);
|
|
36
|
+
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
|
37
|
+
}
|
|
38
|
+
else s |= 1;
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
fail(e);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
|
45
|
+
if (env.hasError) throw env.error;
|
|
46
|
+
}
|
|
47
|
+
return next();
|
|
48
|
+
};
|
|
49
|
+
})(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
50
|
+
var e = new Error(message);
|
|
51
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
52
|
+
});
|
|
53
|
+
import { anyAbortSignal } from '@nmtjs/common';
|
|
54
|
+
import { Scope } from '@nmtjs/core';
|
|
55
|
+
import { UnrecoverableError } from 'bullmq';
|
|
56
|
+
import { LifecycleHook } from "../enums.js";
|
|
57
|
+
import { jobAbortSignal } from "../injectables.js";
|
|
58
|
+
export class JobRunner {
|
|
59
|
+
runtime;
|
|
60
|
+
logger;
|
|
61
|
+
constructor(runtime) {
|
|
62
|
+
this.runtime = runtime;
|
|
63
|
+
this.logger = runtime.logger.child({ $group: JobRunner.name });
|
|
64
|
+
}
|
|
65
|
+
get container() {
|
|
66
|
+
return this.runtime.container;
|
|
67
|
+
}
|
|
68
|
+
async runJob(job, data, options = {}) {
|
|
69
|
+
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
70
|
+
try {
|
|
71
|
+
const { signal: runSignal, result: runResult = {}, stepResults: runStepResults = [], progress: runProgress = {}, currentStepIndex = 0, ...rest } = options;
|
|
72
|
+
const { input, output, steps } = job;
|
|
73
|
+
const result = { ...runResult };
|
|
74
|
+
const decodedInput = input.decode(data);
|
|
75
|
+
// Initialize progress: decode from checkpoint or start fresh
|
|
76
|
+
const progress = job.progress
|
|
77
|
+
? job.progress.decode(runProgress)
|
|
78
|
+
: { ...runProgress };
|
|
79
|
+
const stopListener = __addDisposableResource(env_1, this.runtime.lifecycleHooks.once(LifecycleHook.BeforeDispose), false);
|
|
80
|
+
const signal = anyAbortSignal(runSignal, stopListener.signal);
|
|
81
|
+
const container = __addDisposableResource(env_1, this.container.fork(Scope.Global), true);
|
|
82
|
+
await container.provide(jobAbortSignal, signal);
|
|
83
|
+
const jobDependencyContext = await container.createContext(job.dependencies);
|
|
84
|
+
const jobData = job.options.data
|
|
85
|
+
? await job.options.data(jobDependencyContext, decodedInput, progress)
|
|
86
|
+
: undefined;
|
|
87
|
+
const stepResults = Array.from({ length: steps.length });
|
|
88
|
+
// Restore previous step results and reconstruct accumulated result
|
|
89
|
+
for (let stepIndex = 0; stepIndex < runStepResults.length; stepIndex++) {
|
|
90
|
+
const entry = runStepResults[stepIndex];
|
|
91
|
+
stepResults[stepIndex] = entry;
|
|
92
|
+
if (entry?.data)
|
|
93
|
+
Object.assign(result, entry.data);
|
|
94
|
+
}
|
|
95
|
+
// @ts-expect-error
|
|
96
|
+
const runOptions = {
|
|
97
|
+
signal,
|
|
98
|
+
result,
|
|
99
|
+
stepResults,
|
|
100
|
+
currentStepIndex: currentStepIndex,
|
|
101
|
+
progress,
|
|
102
|
+
...rest,
|
|
103
|
+
};
|
|
104
|
+
for (let stepIndex = currentStepIndex; stepIndex < steps.length; stepIndex++) {
|
|
105
|
+
const step = steps[stepIndex];
|
|
106
|
+
const resultSnapshot = Object.freeze(Object.assign({}, decodedInput, result));
|
|
107
|
+
try {
|
|
108
|
+
if (signal.aborted) {
|
|
109
|
+
const { reason } = signal;
|
|
110
|
+
if (reason instanceof UnrecoverableError)
|
|
111
|
+
throw reason;
|
|
112
|
+
throw new UnrecoverableError('Job cancelled');
|
|
113
|
+
}
|
|
114
|
+
const condition = job.conditions.get(stepIndex);
|
|
115
|
+
if (condition) {
|
|
116
|
+
const shouldRun = await condition({
|
|
117
|
+
context: jobDependencyContext,
|
|
118
|
+
data: jobData,
|
|
119
|
+
input: decodedInput,
|
|
120
|
+
result: resultSnapshot,
|
|
121
|
+
progress,
|
|
122
|
+
});
|
|
123
|
+
if (!shouldRun) {
|
|
124
|
+
stepResults[stepIndex] = { data: null, duration: 0 };
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
const stepStartTime = Date.now();
|
|
129
|
+
await this.beforeStep({
|
|
130
|
+
job,
|
|
131
|
+
step,
|
|
132
|
+
stepIndex,
|
|
133
|
+
result,
|
|
134
|
+
options: runOptions,
|
|
135
|
+
stepResults,
|
|
136
|
+
});
|
|
137
|
+
const stepContext = await container.createContext(step.dependencies);
|
|
138
|
+
const stepInput = step.input.decode(resultSnapshot);
|
|
139
|
+
await job.beforeEachHandler?.({
|
|
140
|
+
context: jobDependencyContext,
|
|
141
|
+
data: jobData,
|
|
142
|
+
input: decodedInput,
|
|
143
|
+
result: resultSnapshot,
|
|
144
|
+
progress,
|
|
145
|
+
step,
|
|
146
|
+
stepIndex,
|
|
147
|
+
});
|
|
148
|
+
const handlerReturn = await step.handler(stepContext, stepInput, jobData);
|
|
149
|
+
const produced = step.output.encode(handlerReturn ?? {});
|
|
150
|
+
const duration = Date.now() - stepStartTime;
|
|
151
|
+
stepResults[stepIndex] = { data: produced, duration };
|
|
152
|
+
Object.assign(result, produced);
|
|
153
|
+
await job.afterEachHandler?.({
|
|
154
|
+
context: jobDependencyContext,
|
|
155
|
+
data: jobData,
|
|
156
|
+
input: decodedInput,
|
|
157
|
+
result,
|
|
158
|
+
progress,
|
|
159
|
+
step,
|
|
160
|
+
stepIndex,
|
|
161
|
+
});
|
|
162
|
+
await this.afterStep({
|
|
163
|
+
job,
|
|
164
|
+
step,
|
|
165
|
+
stepIndex,
|
|
166
|
+
result,
|
|
167
|
+
stepResult: stepResults[stepIndex],
|
|
168
|
+
stepResults,
|
|
169
|
+
options: runOptions,
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
const wrapped = new Error(`Error during step [${stepIndex}]`, {
|
|
174
|
+
cause: error,
|
|
175
|
+
});
|
|
176
|
+
this.logger.error(wrapped);
|
|
177
|
+
const allowRetry = await job.onErrorHandler?.({
|
|
178
|
+
context: jobDependencyContext,
|
|
179
|
+
data: jobData,
|
|
180
|
+
input: decodedInput,
|
|
181
|
+
result: result,
|
|
182
|
+
progress,
|
|
183
|
+
step,
|
|
184
|
+
stepIndex,
|
|
185
|
+
error,
|
|
186
|
+
});
|
|
187
|
+
if (allowRetry === false) {
|
|
188
|
+
throw new UnrecoverableError('Job failed (unrecoverable)');
|
|
189
|
+
}
|
|
190
|
+
throw wrapped;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
const finalPayload = await job.returnHandler({
|
|
194
|
+
context: jobDependencyContext,
|
|
195
|
+
data: jobData,
|
|
196
|
+
input: decodedInput,
|
|
197
|
+
result,
|
|
198
|
+
progress,
|
|
199
|
+
});
|
|
200
|
+
return output.encode(finalPayload);
|
|
201
|
+
}
|
|
202
|
+
catch (e_1) {
|
|
203
|
+
env_1.error = e_1;
|
|
204
|
+
env_1.hasError = true;
|
|
205
|
+
}
|
|
206
|
+
finally {
|
|
207
|
+
const result_1 = __disposeResources(env_1);
|
|
208
|
+
if (result_1)
|
|
209
|
+
await result_1;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
async beforeStep(params) {
|
|
213
|
+
this.logger.debug({
|
|
214
|
+
job: params.job.name,
|
|
215
|
+
step: params.step.label || params.stepIndex + 1,
|
|
216
|
+
stepIndex: params.stepIndex,
|
|
217
|
+
}, 'Executing job step');
|
|
218
|
+
}
|
|
219
|
+
async afterStep(params) {
|
|
220
|
+
this.logger.debug({
|
|
221
|
+
job: params.job.name,
|
|
222
|
+
step: params.step.label || params.stepIndex + 1,
|
|
223
|
+
stepIndex: params.stepIndex,
|
|
224
|
+
}, 'Completed job step');
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
export class ApplicationWorkerJobRunner extends JobRunner {
|
|
228
|
+
runtime;
|
|
229
|
+
constructor(runtime) {
|
|
230
|
+
super(runtime);
|
|
231
|
+
this.runtime = runtime;
|
|
232
|
+
}
|
|
233
|
+
async afterStep(params) {
|
|
234
|
+
await super.afterStep(params);
|
|
235
|
+
const { job, step, result, stepResult, stepResults, stepIndex, options: { queueJob, progress }, } = params;
|
|
236
|
+
const nextStepIndex = stepIndex + 1;
|
|
237
|
+
const totalSteps = job.steps.length;
|
|
238
|
+
const percentage = Math.round((nextStepIndex / totalSteps) * 100);
|
|
239
|
+
// Encode progress before persisting if schema is defined
|
|
240
|
+
const encodedProgress = job.progress
|
|
241
|
+
? job.progress.encode(progress)
|
|
242
|
+
: progress;
|
|
243
|
+
await Promise.all([
|
|
244
|
+
queueJob.log(`Step ${step.label || nextStepIndex} completed in ${(stepResult.duration / 1000).toFixed(3)}s`),
|
|
245
|
+
queueJob.updateProgress({
|
|
246
|
+
stepIndex: nextStepIndex,
|
|
247
|
+
stepLabel: step.label,
|
|
248
|
+
result,
|
|
249
|
+
stepResults,
|
|
250
|
+
progress: encodedProgress,
|
|
251
|
+
percentage,
|
|
252
|
+
}),
|
|
253
|
+
]);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
//# sourceMappingURL=runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/runtime/jobs/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { MaybePromise } from '@nmtjs/common';
|
|
2
|
+
import type { Dependant, Dependencies, DependencyContext } from '@nmtjs/core';
|
|
3
|
+
import type { AnyObjectLikeType, ObjectType } from '@nmtjs/type/object';
|
|
4
|
+
import { t } from '@nmtjs/type';
|
|
5
|
+
import { kJobStepKey } from '../constants.ts';
|
|
6
|
+
export type AnyJobStep = JobStep<any, any, any, any, any>;
|
|
7
|
+
export type JobStepHandler<Deps extends Dependencies, Input extends AnyObjectLikeType, Output extends AnyObjectLikeType, Return, Data = any> = (context: DependencyContext<Deps>, input: t.infer.decode.output<Input>, data: Data) => MaybePromise<null extends Return ? t.infer.encode.input<Output> : Return>;
|
|
8
|
+
export interface JobStep<Input extends AnyObjectLikeType = AnyObjectLikeType, Output extends AnyObjectLikeType = AnyObjectLikeType, Deps extends Dependencies = Dependencies, Return = unknown, Data = any> extends Dependant {
|
|
9
|
+
[kJobStepKey]: any;
|
|
10
|
+
label?: string;
|
|
11
|
+
input: Input;
|
|
12
|
+
output: Output;
|
|
13
|
+
dependencies: Deps;
|
|
14
|
+
handler: JobStepHandler<Deps, Input, Output, Return, Data>;
|
|
15
|
+
}
|
|
16
|
+
export declare function createStep<Input extends AnyObjectLikeType, Output extends AnyObjectLikeType = ObjectType<{}>, Deps extends Dependencies = {}, Return = unknown, Data = any>(step: {
|
|
17
|
+
label?: string;
|
|
18
|
+
input: Input;
|
|
19
|
+
output?: Output;
|
|
20
|
+
dependencies?: Deps;
|
|
21
|
+
handler: JobStepHandler<Deps, Input, Output, Return, Data>;
|
|
22
|
+
}): JobStep<Input, Output, Deps, Return, Data>;
|
|
23
|
+
export declare function isJobStep(value: unknown): value is AnyJobStep;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { tryCaptureStackTrace } from '@nmtjs/common';
|
|
2
|
+
import { t } from '@nmtjs/type';
|
|
3
|
+
import { kJobStepKey } from "../constants.js";
|
|
4
|
+
export function createStep(step) {
|
|
5
|
+
return Object.freeze({
|
|
6
|
+
[kJobStepKey]: true,
|
|
7
|
+
output: t.object({}),
|
|
8
|
+
dependencies: {},
|
|
9
|
+
stack: tryCaptureStackTrace(),
|
|
10
|
+
...step,
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
export function isJobStep(value) {
|
|
14
|
+
return (typeof value === 'object' &&
|
|
15
|
+
value !== null &&
|
|
16
|
+
value[kJobStepKey] === true);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=step.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step.js","sourceRoot":"","sources":["../../../src/runtime/jobs/step.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAA;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AA+B7C,MAAM,UAAU,UAAU,CAMxB,IAMD;IACC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,CAAC,WAAW,CAAC,EAAE,IAAI;QACnB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAsB;QACzC,YAAY,EAAE,EAAU;QACxB,KAAK,EAAE,oBAAoB,EAAE;QAC7B,GAAG,IAAI;KACR,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAoB,CAAC,WAAW,CAAC,KAAK,IAAI,CAC5C,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createServer } from 'node:http';
|
|
2
|
+
import { createBullBoard } from '@bull-board/api';
|
|
3
|
+
import { BullMQAdapter } from '@bull-board/api/bullMQAdapter';
|
|
4
|
+
import { H3Adapter } from '@bull-board/h3';
|
|
5
|
+
import { createApp, toNodeListener } from 'h3';
|
|
6
|
+
export function createJobsUI(queues) {
|
|
7
|
+
const app = createApp();
|
|
8
|
+
const serverAdapter = new H3Adapter();
|
|
9
|
+
createBullBoard({
|
|
10
|
+
queues: queues.map((q) => new BullMQAdapter(q, { readOnlyMode: true })),
|
|
11
|
+
serverAdapter,
|
|
12
|
+
});
|
|
13
|
+
const router = serverAdapter.registerHandlers();
|
|
14
|
+
app.use(router);
|
|
15
|
+
return createServer(toNodeListener(app));
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../src/runtime/jobs/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAGxC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,IAAI,CAAA;AAE9C,MAAM,UAAU,YAAY,CAAC,MAAe;IAC1C,MAAM,GAAG,GAAG,SAAS,EAAE,CAAA;IACvB,MAAM,aAAa,GAAG,IAAI,SAAS,EAAE,CAAA;IACrC,eAAe,CAAC;QACd,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,aAAa;KACd,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,aAAa,CAAC,gBAAgB,EAAE,CAAA;IAC/C,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACf,OAAO,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;AAC1C,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Readable } from 'node:stream';
|
|
2
|
+
import type { TAnyEventContract, TAnySubscriptionContract } from '@nmtjs/contract';
|
|
3
|
+
import type { Container, Logger } from '@nmtjs/core';
|
|
4
|
+
import type { t } from '@nmtjs/type';
|
|
5
|
+
export type PubSubAdapterEvent = {
|
|
6
|
+
channel: string;
|
|
7
|
+
payload: any;
|
|
8
|
+
};
|
|
9
|
+
export interface PubSubAdapterType {
|
|
10
|
+
publish(channel: string, payload: any): Promise<boolean>;
|
|
11
|
+
subscribe(channel: string, signal?: AbortSignal): AsyncGenerator<PubSubAdapterEvent>;
|
|
12
|
+
initialize(): Promise<void>;
|
|
13
|
+
dispose(): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
export type PubSubChannel = {
|
|
16
|
+
stream: Readable;
|
|
17
|
+
subscription: TAnySubscriptionContract;
|
|
18
|
+
event: TAnyEventContract;
|
|
19
|
+
};
|
|
20
|
+
export type PubSubSubscribe = <Contract extends TAnySubscriptionContract, Events extends {
|
|
21
|
+
[K in keyof Contract['events']]?: true;
|
|
22
|
+
}>(subscription: Contract, events: Events, options: Contract['options'], signal?: AbortSignal) => Omit<Readable, typeof Symbol.asyncIterator> & {
|
|
23
|
+
[Symbol.asyncIterator]: () => AsyncIterator<{} extends Events ? {
|
|
24
|
+
[K in keyof Contract['events']]: {
|
|
25
|
+
event: K;
|
|
26
|
+
data: t.infer.decode.output<Contract['events'][K]['payload']>;
|
|
27
|
+
};
|
|
28
|
+
}[keyof Contract['events']] : {
|
|
29
|
+
[K in keyof Events]: K extends keyof Contract['events'] ? {
|
|
30
|
+
event: K;
|
|
31
|
+
data: t.infer.decode.output<Contract['events'][K]['payload']>;
|
|
32
|
+
} : never;
|
|
33
|
+
}[keyof Events]>;
|
|
34
|
+
};
|
|
35
|
+
export type PubSubPublish = <S extends TAnySubscriptionContract, E extends S['events'][keyof S['events']]>(event: E, options: S['options'], data: t.infer.decode.input<E['payload']>) => Promise<boolean>;
|
|
36
|
+
export type PubSubManagerOptions = {
|
|
37
|
+
logger: Logger;
|
|
38
|
+
container: Container;
|
|
39
|
+
};
|
|
40
|
+
export declare class PubSubManager {
|
|
41
|
+
protected readonly options: PubSubManagerOptions;
|
|
42
|
+
readonly subscriptions: Map<string, PubSubChannel>;
|
|
43
|
+
constructor(options: PubSubManagerOptions);
|
|
44
|
+
protected get adapter(): PubSubAdapterType;
|
|
45
|
+
subscribe: PubSubSubscribe;
|
|
46
|
+
publish: PubSubPublish;
|
|
47
|
+
private createEventStream;
|
|
48
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import assert from 'node:assert';
|
|
2
|
+
import { createHash } from 'node:crypto';
|
|
3
|
+
import { PassThrough, Readable } from 'node:stream';
|
|
4
|
+
import { isAbortError } from '@nmtjs/common';
|
|
5
|
+
import { pubSubAdapter } from "../injectables.js";
|
|
6
|
+
export class PubSubManager {
|
|
7
|
+
options;
|
|
8
|
+
subscriptions = new Map();
|
|
9
|
+
constructor(options) {
|
|
10
|
+
this.options = options;
|
|
11
|
+
}
|
|
12
|
+
get adapter() {
|
|
13
|
+
return this.options.container.get(pubSubAdapter);
|
|
14
|
+
}
|
|
15
|
+
subscribe = (subscription, events, options, signal) => {
|
|
16
|
+
assert(this.adapter, 'PubSub adapter is not configured');
|
|
17
|
+
const eventKeys = Object.keys(events).length === 0
|
|
18
|
+
? Object.keys(subscription.events)
|
|
19
|
+
: Object.keys(events);
|
|
20
|
+
const streams = Array(eventKeys.length);
|
|
21
|
+
for (const index in eventKeys) {
|
|
22
|
+
const event = subscription.events[eventKeys[index]];
|
|
23
|
+
const channel = getChannelName(event, options);
|
|
24
|
+
if (this.subscriptions.has(channel)) {
|
|
25
|
+
streams[index] = this.subscriptions.get(channel).stream;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
const iterable = this.adapter.subscribe(channel, signal);
|
|
29
|
+
const stream = this.createEventStream(iterable);
|
|
30
|
+
stream.on('close', () => this.subscriptions.delete(channel));
|
|
31
|
+
streams[index] = stream;
|
|
32
|
+
this.subscriptions.set(channel, { subscription, event, stream });
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return mergeEventStreams(streams, signal);
|
|
36
|
+
};
|
|
37
|
+
publish = async (event, options, data) => {
|
|
38
|
+
assert(this.adapter, 'PubSub adapter is not configured');
|
|
39
|
+
const channel = getChannelName(event, options);
|
|
40
|
+
try {
|
|
41
|
+
const payload = event.payload.encode(data);
|
|
42
|
+
return await this.adapter.publish(channel, payload);
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
this.options.logger.error(`Failed to publish event "${event.name}" on channel "${channel}": ${error.message}`);
|
|
46
|
+
return Promise.reject(error);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
createEventStream(iterable) {
|
|
50
|
+
const { subscriptions } = this;
|
|
51
|
+
return new Readable({
|
|
52
|
+
objectMode: true,
|
|
53
|
+
read() {
|
|
54
|
+
iterable.next().then(({ value, done }) => {
|
|
55
|
+
if (done) {
|
|
56
|
+
this.push(null);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
const subscription = subscriptions.get(value.channel);
|
|
60
|
+
if (subscription) {
|
|
61
|
+
const { event } = subscription;
|
|
62
|
+
try {
|
|
63
|
+
const data = event.payload.decode(value.payload);
|
|
64
|
+
this.push({ event: event.name, data });
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
this.destroy(error);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}, (error) => {
|
|
72
|
+
if (isAbortError(error)) {
|
|
73
|
+
this.push(null);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
this.destroy(error);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function concat(...args) {
|
|
84
|
+
return args.filter(Boolean).join('/');
|
|
85
|
+
}
|
|
86
|
+
function getChannelName(contract, options) {
|
|
87
|
+
const key = options ? serializerOptions(options) : '';
|
|
88
|
+
assert(contract.name, 'Event contract must have a name');
|
|
89
|
+
return concat(contract.name, key);
|
|
90
|
+
}
|
|
91
|
+
function serializerOptions(options) {
|
|
92
|
+
const hash = createHash('sha1');
|
|
93
|
+
const serialized = Object.entries(options)
|
|
94
|
+
.sort((a, b) => a[0].localeCompare(b[0]))
|
|
95
|
+
.map(([key, value]) => `${key}=${value}`)
|
|
96
|
+
.join(';');
|
|
97
|
+
hash.update(serialized);
|
|
98
|
+
return hash.digest('base64url');
|
|
99
|
+
}
|
|
100
|
+
function mergeEventStreams(streams, signal) {
|
|
101
|
+
const destination = new PassThrough({
|
|
102
|
+
signal,
|
|
103
|
+
objectMode: true,
|
|
104
|
+
readableObjectMode: true,
|
|
105
|
+
writableObjectMode: true,
|
|
106
|
+
});
|
|
107
|
+
let ended = 0;
|
|
108
|
+
for (const source of streams) {
|
|
109
|
+
source.pipe(destination, { end: false });
|
|
110
|
+
source.once('end', () => {
|
|
111
|
+
ended++;
|
|
112
|
+
if (ended === streams.length) {
|
|
113
|
+
destination.end();
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
return destination;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/runtime/pubsub/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import EventEmitter from 'node:events';
|
|
2
|
+
import type { RuntimePlugin } from '../core/plugin.ts';
|
|
3
|
+
import type { Store } from '../types.ts';
|
|
4
|
+
import type { PubSubAdapterEvent, PubSubAdapterType } from './manager.ts';
|
|
5
|
+
export declare class RedisPubSubAdapter implements PubSubAdapterType {
|
|
6
|
+
protected readonly client: Store;
|
|
7
|
+
protected readonly events: EventEmitter<[never]>;
|
|
8
|
+
protected readonly listeners: Map<string, number>;
|
|
9
|
+
protected subscriberClient?: Store;
|
|
10
|
+
constructor(client: Store);
|
|
11
|
+
initialize(): Promise<void>;
|
|
12
|
+
dispose(): Promise<void>;
|
|
13
|
+
publish(channel: string, payload: any): Promise<boolean>;
|
|
14
|
+
subscribe(channel: string, signal?: AbortSignal): AsyncGenerator<PubSubAdapterEvent>;
|
|
15
|
+
}
|
|
16
|
+
export declare const RedisPubSubAdapterPlugin: () => RuntimePlugin;
|