@justscale/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +261 -0
- package/bin/just.js +34 -0
- package/dist/app.d.ts +56 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +182 -0
- package/dist/app.js.map +1 -0
- package/dist/builder/build-context.d.ts +8 -0
- package/dist/builder/build-context.d.ts.map +1 -0
- package/dist/builder/build-context.js +4 -0
- package/dist/builder/build-context.js.map +1 -0
- package/dist/builder/builder.d.ts +60 -0
- package/dist/builder/builder.d.ts.map +1 -0
- package/dist/builder/builder.js +72 -0
- package/dist/builder/builder.js.map +1 -0
- package/dist/builder/create-builder.d.ts +36 -0
- package/dist/builder/create-builder.d.ts.map +1 -0
- package/dist/builder/create-builder.js +66 -0
- package/dist/builder/create-builder.js.map +1 -0
- package/dist/builder/execute.d.ts +37 -0
- package/dist/builder/execute.d.ts.map +1 -0
- package/dist/builder/execute.js +62 -0
- package/dist/builder/execute.js.map +1 -0
- package/dist/builder/feature-builder.d.ts +147 -0
- package/dist/builder/feature-builder.d.ts.map +1 -0
- package/dist/builder/feature-builder.js +138 -0
- package/dist/builder/feature-builder.js.map +1 -0
- package/dist/builder/index.d.ts +35 -0
- package/dist/builder/index.d.ts.map +1 -0
- package/dist/builder/index.js +37 -0
- package/dist/builder/index.js.map +1 -0
- package/dist/builder/plugin.d.ts +90 -0
- package/dist/builder/plugin.d.ts.map +1 -0
- package/dist/builder/plugin.js +101 -0
- package/dist/builder/plugin.js.map +1 -0
- package/dist/builder/plugins/query.d.ts +31 -0
- package/dist/builder/plugins/query.d.ts.map +1 -0
- package/dist/builder/plugins/query.js +42 -0
- package/dist/builder/plugins/query.js.map +1 -0
- package/dist/builder/plugins/validation.d.ts +12 -0
- package/dist/builder/plugins/validation.d.ts.map +1 -0
- package/dist/builder/plugins/validation.js +12 -0
- package/dist/builder/plugins/validation.js.map +1 -0
- package/dist/builder/sort.d.ts +27 -0
- package/dist/builder/sort.d.ts.map +1 -0
- package/dist/builder/sort.js +210 -0
- package/dist/builder/sort.js.map +1 -0
- package/dist/builder/stop.d.ts +24 -0
- package/dist/builder/stop.d.ts.map +1 -0
- package/dist/builder/stop.js +27 -0
- package/dist/builder/stop.js.map +1 -0
- package/dist/builder/test/permits-type-spike.d.ts +8 -0
- package/dist/builder/test/permits-type-spike.d.ts.map +1 -0
- package/dist/builder/test/permits-type-spike.js +117 -0
- package/dist/builder/test/permits-type-spike.js.map +1 -0
- package/dist/builder/types.d.ts +678 -0
- package/dist/builder/types.d.ts.map +1 -0
- package/dist/builder/types.js +98 -0
- package/dist/builder/types.js.map +1 -0
- package/dist/builder/validation.d.ts +101 -0
- package/dist/builder/validation.d.ts.map +1 -0
- package/dist/builder/validation.js +335 -0
- package/dist/builder/validation.js.map +1 -0
- package/dist/cli/adapter.d.ts +23 -0
- package/dist/cli/adapter.d.ts.map +1 -0
- package/dist/cli/adapter.js +26 -0
- package/dist/cli/adapter.js.map +1 -0
- package/dist/cli/args.d.ts +150 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +172 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/assemble.d.ts +20 -0
- package/dist/cli/assemble.d.ts.map +1 -0
- package/dist/cli/assemble.js +55 -0
- package/dist/cli/assemble.js.map +1 -0
- package/dist/cli/bin/main.d.ts +26 -0
- package/dist/cli/bin/main.d.ts.map +1 -0
- package/dist/cli/bin/main.js +475 -0
- package/dist/cli/bin/main.js.map +1 -0
- package/dist/cli/build/migrations-plugin.d.ts +21 -0
- package/dist/cli/build/migrations-plugin.d.ts.map +1 -0
- package/dist/cli/build/migrations-plugin.js +41 -0
- package/dist/cli/build/migrations-plugin.js.map +1 -0
- package/dist/cli/build/process-plugin.d.ts +29 -0
- package/dist/cli/build/process-plugin.d.ts.map +1 -0
- package/dist/cli/build/process-plugin.js +66 -0
- package/dist/cli/build/process-plugin.js.map +1 -0
- package/dist/cli/builder/create-cli-builder.d.ts +42 -0
- package/dist/cli/builder/create-cli-builder.d.ts.map +1 -0
- package/dist/cli/builder/create-cli-builder.js +104 -0
- package/dist/cli/builder/create-cli-builder.js.map +1 -0
- package/dist/cli/builder/index.d.ts +8 -0
- package/dist/cli/builder/index.d.ts.map +1 -0
- package/dist/cli/builder/index.js +7 -0
- package/dist/cli/builder/index.js.map +1 -0
- package/dist/cli/builder/types.d.ts +113 -0
- package/dist/cli/builder/types.d.ts.map +1 -0
- package/dist/cli/builder/types.js +7 -0
- package/dist/cli/builder/types.js.map +1 -0
- package/dist/cli/cluster.d.ts +8 -0
- package/dist/cli/cluster.d.ts.map +1 -0
- package/dist/cli/cluster.js +145 -0
- package/dist/cli/cluster.js.map +1 -0
- package/dist/cli/current-app.d.ts +36 -0
- package/dist/cli/current-app.d.ts.map +1 -0
- package/dist/cli/current-app.js +21 -0
- package/dist/cli/current-app.js.map +1 -0
- package/dist/cli/define-app.d.ts +35 -0
- package/dist/cli/define-app.d.ts.map +1 -0
- package/dist/cli/define-app.js +79 -0
- package/dist/cli/define-app.js.map +1 -0
- package/dist/cli/define-main.d.ts +33 -0
- package/dist/cli/define-main.d.ts.map +1 -0
- package/dist/cli/define-main.js +67 -0
- package/dist/cli/define-main.js.map +1 -0
- package/dist/cli/define-project.d.ts +93 -0
- package/dist/cli/define-project.d.ts.map +1 -0
- package/dist/cli/define-project.js +85 -0
- package/dist/cli/define-project.js.map +1 -0
- package/dist/cli/dev-server.d.ts +20 -0
- package/dist/cli/dev-server.d.ts.map +1 -0
- package/dist/cli/dev-server.js +131 -0
- package/dist/cli/dev-server.js.map +1 -0
- package/dist/cli/discovery.d.ts +29 -0
- package/dist/cli/discovery.d.ts.map +1 -0
- package/dist/cli/discovery.js +142 -0
- package/dist/cli/discovery.js.map +1 -0
- package/dist/cli/factory.d.ts +43 -0
- package/dist/cli/factory.d.ts.map +1 -0
- package/dist/cli/factory.js +52 -0
- package/dist/cli/factory.js.map +1 -0
- package/dist/cli/generators/ai.d.ts +3 -0
- package/dist/cli/generators/ai.d.ts.map +1 -0
- package/dist/cli/generators/ai.js +65 -0
- package/dist/cli/generators/ai.js.map +1 -0
- package/dist/cli/generators/ci.d.ts +5 -0
- package/dist/cli/generators/ci.d.ts.map +1 -0
- package/dist/cli/generators/ci.js +102 -0
- package/dist/cli/generators/ci.js.map +1 -0
- package/dist/cli/generators/detect.d.ts +15 -0
- package/dist/cli/generators/detect.d.ts.map +1 -0
- package/dist/cli/generators/detect.js +75 -0
- package/dist/cli/generators/detect.js.map +1 -0
- package/dist/cli/generators/ide.d.ts +3 -0
- package/dist/cli/generators/ide.d.ts.map +1 -0
- package/dist/cli/generators/ide.js +179 -0
- package/dist/cli/generators/ide.js.map +1 -0
- package/dist/cli/generators/index.d.ts +5 -0
- package/dist/cli/generators/index.d.ts.map +1 -0
- package/dist/cli/generators/index.js +5 -0
- package/dist/cli/generators/index.js.map +1 -0
- package/dist/cli/index.d.ts +81 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +88 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/io.d.ts +131 -0
- package/dist/cli/io.d.ts.map +1 -0
- package/dist/cli/io.js +373 -0
- package/dist/cli/io.js.map +1 -0
- package/dist/cli/mcp/server.d.ts +23 -0
- package/dist/cli/mcp/server.d.ts.map +1 -0
- package/dist/cli/mcp/server.js +148 -0
- package/dist/cli/mcp/server.js.map +1 -0
- package/dist/cli/parser.d.ts +106 -0
- package/dist/cli/parser.d.ts.map +1 -0
- package/dist/cli/parser.js +520 -0
- package/dist/cli/parser.js.map +1 -0
- package/dist/cli/runner.d.ts +75 -0
- package/dist/cli/runner.d.ts.map +1 -0
- package/dist/cli/runner.js +422 -0
- package/dist/cli/runner.js.map +1 -0
- package/dist/cli/service.d.ts +61 -0
- package/dist/cli/service.d.ts.map +1 -0
- package/dist/cli/service.js +95 -0
- package/dist/cli/service.js.map +1 -0
- package/dist/cli/types.d.ts +47 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +20 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli/wizard.d.ts +11 -0
- package/dist/cli/wizard.d.ts.map +1 -0
- package/dist/cli/wizard.js +2 -0
- package/dist/cli/wizard.js.map +1 -0
- package/dist/cli/workspace-controller.d.ts +36 -0
- package/dist/cli/workspace-controller.d.ts.map +1 -0
- package/dist/cli/workspace-controller.js +896 -0
- package/dist/cli/workspace-controller.js.map +1 -0
- package/dist/cluster/client.d.ts +101 -0
- package/dist/cluster/client.d.ts.map +1 -0
- package/dist/cluster/client.js +256 -0
- package/dist/cluster/client.js.map +1 -0
- package/dist/cluster/cluster.d.ts +82 -0
- package/dist/cluster/cluster.d.ts.map +1 -0
- package/dist/cluster/cluster.js +27 -0
- package/dist/cluster/cluster.js.map +1 -0
- package/dist/cluster/coordinator/cluster-node.model.d.ts +14 -0
- package/dist/cluster/coordinator/cluster-node.model.d.ts.map +1 -0
- package/dist/cluster/coordinator/cluster-node.model.js +15 -0
- package/dist/cluster/coordinator/cluster-node.model.js.map +1 -0
- package/dist/cluster/coordinator/cluster-signals.d.ts +45 -0
- package/dist/cluster/coordinator/cluster-signals.d.ts.map +1 -0
- package/dist/cluster/coordinator/cluster-signals.js +24 -0
- package/dist/cluster/coordinator/cluster-signals.js.map +1 -0
- package/dist/cluster/coordinator/coordinator.process.d.ts +21 -0
- package/dist/cluster/coordinator/coordinator.process.d.ts.map +1 -0
- package/dist/cluster/coordinator/coordinator.process.js +221 -0
- package/dist/cluster/coordinator/coordinator.process.js.map +1 -0
- package/dist/cluster/coordinator/index.d.ts +13 -0
- package/dist/cluster/coordinator/index.d.ts.map +1 -0
- package/dist/cluster/coordinator/index.js +13 -0
- package/dist/cluster/coordinator/index.js.map +1 -0
- package/dist/cluster/coordinator/node-lifecycle.d.ts +31 -0
- package/dist/cluster/coordinator/node-lifecycle.d.ts.map +1 -0
- package/dist/cluster/coordinator/node-lifecycle.js +178 -0
- package/dist/cluster/coordinator/node-lifecycle.js.map +1 -0
- package/dist/cluster/index.d.ts +45 -0
- package/dist/cluster/index.d.ts.map +1 -0
- package/dist/cluster/index.js +57 -0
- package/dist/cluster/index.js.map +1 -0
- package/dist/cluster/protocol.d.ts +204 -0
- package/dist/cluster/protocol.d.ts.map +1 -0
- package/dist/cluster/protocol.js +274 -0
- package/dist/cluster/protocol.js.map +1 -0
- package/dist/cluster/scheduled-task/builder.d.ts +24 -0
- package/dist/cluster/scheduled-task/builder.d.ts.map +1 -0
- package/dist/cluster/scheduled-task/builder.js +63 -0
- package/dist/cluster/scheduled-task/builder.js.map +1 -0
- package/dist/cluster/scheduled-task/factory.d.ts +76 -0
- package/dist/cluster/scheduled-task/factory.d.ts.map +1 -0
- package/dist/cluster/scheduled-task/factory.js +64 -0
- package/dist/cluster/scheduled-task/factory.js.map +1 -0
- package/dist/cluster/scheduled-task/index.d.ts +43 -0
- package/dist/cluster/scheduled-task/index.d.ts.map +1 -0
- package/dist/cluster/scheduled-task/index.js +45 -0
- package/dist/cluster/scheduled-task/index.js.map +1 -0
- package/dist/cluster/scheduled-task/transport.d.ts +12 -0
- package/dist/cluster/scheduled-task/transport.d.ts.map +1 -0
- package/dist/cluster/scheduled-task/transport.js +146 -0
- package/dist/cluster/scheduled-task/transport.js.map +1 -0
- package/dist/cluster/scheduled-task/types.d.ts +89 -0
- package/dist/cluster/scheduled-task/types.d.ts.map +1 -0
- package/dist/cluster/scheduled-task/types.js +7 -0
- package/dist/cluster/scheduled-task/types.js.map +1 -0
- package/dist/cluster/server.d.ts +87 -0
- package/dist/cluster/server.d.ts.map +1 -0
- package/dist/cluster/server.js +290 -0
- package/dist/cluster/server.js.map +1 -0
- package/dist/cluster/transport.d.ts +86 -0
- package/dist/cluster/transport.d.ts.map +1 -0
- package/dist/cluster/transport.js +138 -0
- package/dist/cluster/transport.js.map +1 -0
- package/dist/core/container-hooks.d.ts +22 -0
- package/dist/core/container-hooks.d.ts.map +1 -0
- package/dist/core/container-hooks.js +29 -0
- package/dist/core/container-hooks.js.map +1 -0
- package/dist/core/container-reflection.d.ts +71 -0
- package/dist/core/container-reflection.d.ts.map +1 -0
- package/dist/core/container-reflection.js +60 -0
- package/dist/core/container-reflection.js.map +1 -0
- package/dist/core/context.d.ts +146 -0
- package/dist/core/context.d.ts.map +1 -0
- package/dist/core/context.js +155 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/contribution.d.ts +152 -0
- package/dist/core/contribution.d.ts.map +1 -0
- package/dist/core/contribution.js +213 -0
- package/dist/core/contribution.js.map +1 -0
- package/dist/core/controller.contextual.d.ts +193 -0
- package/dist/core/controller.contextual.d.ts.map +1 -0
- package/dist/core/controller.contextual.js +459 -0
- package/dist/core/controller.contextual.js.map +1 -0
- package/dist/core/controller.d.ts +510 -0
- package/dist/core/controller.d.ts.map +1 -0
- package/dist/core/controller.js +411 -0
- package/dist/core/controller.js.map +1 -0
- package/dist/core/controller.procedure.d.ts +147 -0
- package/dist/core/controller.procedure.d.ts.map +1 -0
- package/dist/core/controller.procedure.js +115 -0
- package/dist/core/controller.procedure.js.map +1 -0
- package/dist/core/disposable.d.ts +126 -0
- package/dist/core/disposable.d.ts.map +1 -0
- package/dist/core/disposable.js +179 -0
- package/dist/core/disposable.js.map +1 -0
- package/dist/core/hmr.d.ts +83 -0
- package/dist/core/hmr.d.ts.map +1 -0
- package/dist/core/hmr.js +211 -0
- package/dist/core/hmr.js.map +1 -0
- package/dist/core/index.d.ts +17 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +25 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/internal/routes.d.ts +26 -0
- package/dist/core/internal/routes.d.ts.map +1 -0
- package/dist/core/internal/routes.js +48 -0
- package/dist/core/internal/routes.js.map +1 -0
- package/dist/core/lifecycle-impl.d.ts +45 -0
- package/dist/core/lifecycle-impl.d.ts.map +1 -0
- package/dist/core/lifecycle-impl.js +102 -0
- package/dist/core/lifecycle-impl.js.map +1 -0
- package/dist/core/lifecycle.d.ts +86 -0
- package/dist/core/lifecycle.d.ts.map +1 -0
- package/dist/core/lifecycle.js +38 -0
- package/dist/core/lifecycle.js.map +1 -0
- package/dist/core/logger.d.ts +282 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +368 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/middleware.d.ts +108 -0
- package/dist/core/middleware.d.ts.map +1 -0
- package/dist/core/middleware.js +60 -0
- package/dist/core/middleware.js.map +1 -0
- package/dist/core/openapi-methods.d.ts +61 -0
- package/dist/core/openapi-methods.d.ts.map +1 -0
- package/dist/core/openapi-methods.js +53 -0
- package/dist/core/openapi-methods.js.map +1 -0
- package/dist/core/plugin.d.ts +209 -0
- package/dist/core/plugin.d.ts.map +1 -0
- package/dist/core/plugin.js +36 -0
- package/dist/core/plugin.js.map +1 -0
- package/dist/core/scope-bridge.d.ts +19 -0
- package/dist/core/scope-bridge.d.ts.map +1 -0
- package/dist/core/scope-bridge.js +34 -0
- package/dist/core/scope-bridge.js.map +1 -0
- package/dist/core/service.d.ts +429 -0
- package/dist/core/service.d.ts.map +1 -0
- package/dist/core/service.js +875 -0
- package/dist/core/service.js.map +1 -0
- package/dist/features/channel/backend.d.ts +98 -0
- package/dist/features/channel/backend.d.ts.map +1 -0
- package/dist/features/channel/backend.js +75 -0
- package/dist/features/channel/backend.js.map +1 -0
- package/dist/features/channel/channel.d.ts +18 -0
- package/dist/features/channel/channel.d.ts.map +1 -0
- package/dist/features/channel/channel.js +219 -0
- package/dist/features/channel/channel.js.map +1 -0
- package/dist/features/channel/channels.d.ts +87 -0
- package/dist/features/channel/channels.d.ts.map +1 -0
- package/dist/features/channel/channels.js +252 -0
- package/dist/features/channel/channels.js.map +1 -0
- package/dist/features/channel/feature.d.ts +40 -0
- package/dist/features/channel/feature.d.ts.map +1 -0
- package/dist/features/channel/feature.js +44 -0
- package/dist/features/channel/feature.js.map +1 -0
- package/dist/features/channel/index.d.ts +41 -0
- package/dist/features/channel/index.d.ts.map +1 -0
- package/dist/features/channel/index.js +41 -0
- package/dist/features/channel/index.js.map +1 -0
- package/dist/features/channel/types.d.ts +165 -0
- package/dist/features/channel/types.d.ts.map +1 -0
- package/dist/features/channel/types.js +10 -0
- package/dist/features/channel/types.js.map +1 -0
- package/dist/features/config/cli/config-controller.d.ts +77 -0
- package/dist/features/config/cli/config-controller.d.ts.map +1 -0
- package/dist/features/config/cli/config-controller.js +209 -0
- package/dist/features/config/cli/config-controller.js.map +1 -0
- package/dist/features/config/cli/index.d.ts +9 -0
- package/dist/features/config/cli/index.d.ts.map +1 -0
- package/dist/features/config/cli/index.js +9 -0
- package/dist/features/config/cli/index.js.map +1 -0
- package/dist/features/config/cli/profile-controller.d.ts +87 -0
- package/dist/features/config/cli/profile-controller.d.ts.map +1 -0
- package/dist/features/config/cli/profile-controller.js +223 -0
- package/dist/features/config/cli/profile-controller.js.map +1 -0
- package/dist/features/config/cli/utils.d.ts +14 -0
- package/dist/features/config/cli/utils.d.ts.map +1 -0
- package/dist/features/config/cli/utils.js +29 -0
- package/dist/features/config/cli/utils.js.map +1 -0
- package/dist/features/config/config-of.d.ts +36 -0
- package/dist/features/config/config-of.d.ts.map +1 -0
- package/dist/features/config/config-of.js +36 -0
- package/dist/features/config/config-of.js.map +1 -0
- package/dist/features/config/config-service.d.ts +54 -0
- package/dist/features/config/config-service.d.ts.map +1 -0
- package/dist/features/config/config-service.js +184 -0
- package/dist/features/config/config-service.js.map +1 -0
- package/dist/features/config/create-config.d.ts +21 -0
- package/dist/features/config/create-config.d.ts.map +1 -0
- package/dist/features/config/create-config.js +16 -0
- package/dist/features/config/create-config.js.map +1 -0
- package/dist/features/config/define-config-partial.d.ts +13 -0
- package/dist/features/config/define-config-partial.d.ts.map +1 -0
- package/dist/features/config/define-config-partial.js +19 -0
- package/dist/features/config/define-config-partial.js.map +1 -0
- package/dist/features/config/env-service.d.ts +54 -0
- package/dist/features/config/env-service.d.ts.map +1 -0
- package/dist/features/config/env-service.js +115 -0
- package/dist/features/config/env-service.js.map +1 -0
- package/dist/features/config/file-watcher.d.ts +13 -0
- package/dist/features/config/file-watcher.d.ts.map +1 -0
- package/dist/features/config/file-watcher.js +98 -0
- package/dist/features/config/file-watcher.js.map +1 -0
- package/dist/features/config/index.d.ts +21 -0
- package/dist/features/config/index.d.ts.map +1 -0
- package/dist/features/config/index.js +24 -0
- package/dist/features/config/index.js.map +1 -0
- package/dist/features/config/profile-service.d.ts +59 -0
- package/dist/features/config/profile-service.d.ts.map +1 -0
- package/dist/features/config/profile-service.js +114 -0
- package/dist/features/config/profile-service.js.map +1 -0
- package/dist/features/config/types.d.ts +38 -0
- package/dist/features/config/types.d.ts.map +1 -0
- package/dist/features/config/types.js +17 -0
- package/dist/features/config/types.js.map +1 -0
- package/dist/features/contract/contract.d.ts +264 -0
- package/dist/features/contract/contract.d.ts.map +1 -0
- package/dist/features/contract/contract.js +183 -0
- package/dist/features/contract/contract.js.map +1 -0
- package/dist/features/contract/index.d.ts +2 -0
- package/dist/features/contract/index.d.ts.map +1 -0
- package/dist/features/contract/index.js +2 -0
- package/dist/features/contract/index.js.map +1 -0
- package/dist/features/env/contribute.d.ts +70 -0
- package/dist/features/env/contribute.d.ts.map +1 -0
- package/dist/features/env/contribute.js +195 -0
- package/dist/features/env/contribute.js.map +1 -0
- package/dist/features/environment/create-environment.d.ts +58 -0
- package/dist/features/environment/create-environment.d.ts.map +1 -0
- package/dist/features/environment/create-environment.js +22 -0
- package/dist/features/environment/create-environment.js.map +1 -0
- package/dist/features/environment/index.d.ts +12 -0
- package/dist/features/environment/index.d.ts.map +1 -0
- package/dist/features/environment/index.js +10 -0
- package/dist/features/environment/index.js.map +1 -0
- package/dist/features/environment/load.d.ts +59 -0
- package/dist/features/environment/load.d.ts.map +1 -0
- package/dist/features/environment/load.js +117 -0
- package/dist/features/environment/load.js.map +1 -0
- package/dist/features/environment/types.d.ts +165 -0
- package/dist/features/environment/types.d.ts.map +1 -0
- package/dist/features/environment/types.js +18 -0
- package/dist/features/environment/types.js.map +1 -0
- package/dist/features/feature-flags/create-feature-flag-provider.d.ts +21 -0
- package/dist/features/feature-flags/create-feature-flag-provider.d.ts.map +1 -0
- package/dist/features/feature-flags/create-feature-flag-provider.js +16 -0
- package/dist/features/feature-flags/create-feature-flag-provider.js.map +1 -0
- package/dist/features/feature-flags/define-feature-flag-partial.d.ts +20 -0
- package/dist/features/feature-flags/define-feature-flag-partial.d.ts.map +1 -0
- package/dist/features/feature-flags/define-feature-flag-partial.js +26 -0
- package/dist/features/feature-flags/define-feature-flag-partial.js.map +1 -0
- package/dist/features/feature-flags/feature-flag-of.d.ts +16 -0
- package/dist/features/feature-flags/feature-flag-of.d.ts.map +1 -0
- package/dist/features/feature-flags/feature-flag-of.js +16 -0
- package/dist/features/feature-flags/feature-flag-of.js.map +1 -0
- package/dist/features/feature-flags/feature-flag-service.d.ts +22 -0
- package/dist/features/feature-flags/feature-flag-service.d.ts.map +1 -0
- package/dist/features/feature-flags/feature-flag-service.js +112 -0
- package/dist/features/feature-flags/feature-flag-service.js.map +1 -0
- package/dist/features/feature-flags/index.d.ts +15 -0
- package/dist/features/feature-flags/index.d.ts.map +1 -0
- package/dist/features/feature-flags/index.js +12 -0
- package/dist/features/feature-flags/index.js.map +1 -0
- package/dist/features/feature-flags/types.d.ts +30 -0
- package/dist/features/feature-flags/types.d.ts.map +1 -0
- package/dist/features/feature-flags/types.js +8 -0
- package/dist/features/feature-flags/types.js.map +1 -0
- package/dist/features/index.d.ts +6 -0
- package/dist/features/index.d.ts.map +1 -0
- package/dist/features/index.js +7 -0
- package/dist/features/index.js.map +1 -0
- package/dist/features/lock/index.d.ts +4 -0
- package/dist/features/lock/index.d.ts.map +1 -0
- package/dist/features/lock/index.js +4 -0
- package/dist/features/lock/index.js.map +1 -0
- package/dist/features/lock/lock-service.d.ts +74 -0
- package/dist/features/lock/lock-service.d.ts.map +1 -0
- package/dist/features/lock/lock-service.js +210 -0
- package/dist/features/lock/lock-service.js.map +1 -0
- package/dist/features/lock/memory.d.ts +60 -0
- package/dist/features/lock/memory.d.ts.map +1 -0
- package/dist/features/lock/memory.js +194 -0
- package/dist/features/lock/memory.js.map +1 -0
- package/dist/features/lock/types.d.ts +151 -0
- package/dist/features/lock/types.d.ts.map +1 -0
- package/dist/features/lock/types.js +17 -0
- package/dist/features/lock/types.js.map +1 -0
- package/dist/features/memory/index.d.ts +18 -0
- package/dist/features/memory/index.d.ts.map +1 -0
- package/dist/features/memory/index.js +18 -0
- package/dist/features/memory/index.js.map +1 -0
- package/dist/features/memory/lock-feature.d.ts +21 -0
- package/dist/features/memory/lock-feature.d.ts.map +1 -0
- package/dist/features/memory/lock-feature.js +24 -0
- package/dist/features/memory/lock-feature.js.map +1 -0
- package/dist/features/secrets/create-secret-provider.d.ts +31 -0
- package/dist/features/secrets/create-secret-provider.d.ts.map +1 -0
- package/dist/features/secrets/create-secret-provider.js +26 -0
- package/dist/features/secrets/create-secret-provider.js.map +1 -0
- package/dist/features/secrets/define-secret-partial.d.ts +16 -0
- package/dist/features/secrets/define-secret-partial.d.ts.map +1 -0
- package/dist/features/secrets/define-secret-partial.js +26 -0
- package/dist/features/secrets/define-secret-partial.js.map +1 -0
- package/dist/features/secrets/index.d.ts +17 -0
- package/dist/features/secrets/index.d.ts.map +1 -0
- package/dist/features/secrets/index.js +14 -0
- package/dist/features/secrets/index.js.map +1 -0
- package/dist/features/secrets/secret-of.d.ts +19 -0
- package/dist/features/secrets/secret-of.d.ts.map +1 -0
- package/dist/features/secrets/secret-of.js +21 -0
- package/dist/features/secrets/secret-of.js.map +1 -0
- package/dist/features/secrets/secret-service.d.ts +21 -0
- package/dist/features/secrets/secret-service.d.ts.map +1 -0
- package/dist/features/secrets/secret-service.js +28 -0
- package/dist/features/secrets/secret-service.js.map +1 -0
- package/dist/features/secrets/types.d.ts +30 -0
- package/dist/features/secrets/types.d.ts.map +1 -0
- package/dist/features/secrets/types.js +8 -0
- package/dist/features/secrets/types.js.map +1 -0
- package/dist/features/vault/env-var-vault.d.ts +24 -0
- package/dist/features/vault/env-var-vault.d.ts.map +1 -0
- package/dist/features/vault/env-var-vault.js +43 -0
- package/dist/features/vault/env-var-vault.js.map +1 -0
- package/dist/features/vault/hardcoded-vault.d.ts +34 -0
- package/dist/features/vault/hardcoded-vault.d.ts.map +1 -0
- package/dist/features/vault/hardcoded-vault.js +46 -0
- package/dist/features/vault/hardcoded-vault.js.map +1 -0
- package/dist/features/vault/hashicorp-vault.d.ts +32 -0
- package/dist/features/vault/hashicorp-vault.d.ts.map +1 -0
- package/dist/features/vault/hashicorp-vault.js +69 -0
- package/dist/features/vault/hashicorp-vault.js.map +1 -0
- package/dist/features/vault/index.d.ts +13 -0
- package/dist/features/vault/index.d.ts.map +1 -0
- package/dist/features/vault/index.js +12 -0
- package/dist/features/vault/index.js.map +1 -0
- package/dist/features/vault/kubernetes-vault.d.ts +27 -0
- package/dist/features/vault/kubernetes-vault.d.ts.map +1 -0
- package/dist/features/vault/kubernetes-vault.js +51 -0
- package/dist/features/vault/kubernetes-vault.js.map +1 -0
- package/dist/features/vault/types.d.ts +41 -0
- package/dist/features/vault/types.d.ts.map +1 -0
- package/dist/features/vault/types.js +21 -0
- package/dist/features/vault/types.js.map +1 -0
- package/dist/index.d.ts +78 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -0
- package/dist/justscale.d.ts +63 -0
- package/dist/justscale.d.ts.map +1 -0
- package/dist/justscale.js +501 -0
- package/dist/justscale.js.map +1 -0
- package/dist/kernel/adapter.d.ts +9 -0
- package/dist/kernel/adapter.d.ts.map +1 -0
- package/dist/kernel/adapter.js +2 -0
- package/dist/kernel/adapter.js.map +1 -0
- package/dist/kernel/kernel.d.ts +15 -0
- package/dist/kernel/kernel.d.ts.map +1 -0
- package/dist/kernel/kernel.js +134 -0
- package/dist/kernel/kernel.js.map +1 -0
- package/dist/models/access.d.ts +26 -0
- package/dist/models/access.d.ts.map +1 -0
- package/dist/models/access.js +126 -0
- package/dist/models/access.js.map +1 -0
- package/dist/models/apply-types-config.d.ts +52 -0
- package/dist/models/apply-types-config.d.ts.map +1 -0
- package/dist/models/apply-types-config.js +47 -0
- package/dist/models/apply-types-config.js.map +1 -0
- package/dist/models/define-model.d.ts +249 -0
- package/dist/models/define-model.d.ts.map +1 -0
- package/dist/models/define-model.js +388 -0
- package/dist/models/define-model.js.map +1 -0
- package/dist/models/field.d.ts +309 -0
- package/dist/models/field.d.ts.map +1 -0
- package/dist/models/field.js +312 -0
- package/dist/models/field.js.map +1 -0
- package/dist/models/in-memory/condition-evaluator.d.ts +53 -0
- package/dist/models/in-memory/condition-evaluator.d.ts.map +1 -0
- package/dist/models/in-memory/condition-evaluator.js +593 -0
- package/dist/models/in-memory/condition-evaluator.js.map +1 -0
- package/dist/models/in-memory/in-memory-model.d.ts +89 -0
- package/dist/models/in-memory/in-memory-model.d.ts.map +1 -0
- package/dist/models/in-memory/in-memory-model.js +101 -0
- package/dist/models/in-memory/in-memory-model.js.map +1 -0
- package/dist/models/in-memory/in-memory-repository.d.ts +208 -0
- package/dist/models/in-memory/in-memory-repository.d.ts.map +1 -0
- package/dist/models/in-memory/in-memory-repository.js +618 -0
- package/dist/models/in-memory/in-memory-repository.js.map +1 -0
- package/dist/models/in-memory/in-memory-scheduled-task.repository.d.ts +92 -0
- package/dist/models/in-memory/in-memory-scheduled-task.repository.d.ts.map +1 -0
- package/dist/models/in-memory/in-memory-scheduled-task.repository.js +395 -0
- package/dist/models/in-memory/in-memory-scheduled-task.repository.js.map +1 -0
- package/dist/models/in-memory/index.d.ts +35 -0
- package/dist/models/in-memory/index.d.ts.map +1 -0
- package/dist/models/in-memory/index.js +36 -0
- package/dist/models/in-memory/index.js.map +1 -0
- package/dist/models/index.d.ts +52 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +86 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/model-name-registry.d.ts +16 -0
- package/dist/models/model-name-registry.d.ts.map +1 -0
- package/dist/models/model-name-registry.js +19 -0
- package/dist/models/model-name-registry.js.map +1 -0
- package/dist/models/model.d.ts +15 -0
- package/dist/models/model.d.ts.map +1 -0
- package/dist/models/model.js +114 -0
- package/dist/models/model.js.map +1 -0
- package/dist/models/model.repository.d.ts +318 -0
- package/dist/models/model.repository.d.ts.map +1 -0
- package/dist/models/model.repository.js +146 -0
- package/dist/models/model.repository.js.map +1 -0
- package/dist/models/observable.d.ts +15 -0
- package/dist/models/observable.d.ts.map +1 -0
- package/dist/models/observable.js +64 -0
- package/dist/models/observable.js.map +1 -0
- package/dist/models/proxy.d.ts +5 -0
- package/dist/models/proxy.d.ts.map +1 -0
- package/dist/models/proxy.js +407 -0
- package/dist/models/proxy.js.map +1 -0
- package/dist/models/query.d.ts +574 -0
- package/dist/models/query.d.ts.map +1 -0
- package/dist/models/query.js +701 -0
- package/dist/models/query.js.map +1 -0
- package/dist/models/reference/reference.d.ts +229 -0
- package/dist/models/reference/reference.d.ts.map +1 -0
- package/dist/models/reference/reference.js +331 -0
- package/dist/models/reference/reference.js.map +1 -0
- package/dist/models/reference/transient-ref.d.ts +123 -0
- package/dist/models/reference/transient-ref.d.ts.map +1 -0
- package/dist/models/reference/transient-ref.js +152 -0
- package/dist/models/reference/transient-ref.js.map +1 -0
- package/dist/models/repository.d.ts +53 -0
- package/dist/models/repository.d.ts.map +1 -0
- package/dist/models/repository.js +37 -0
- package/dist/models/repository.js.map +1 -0
- package/dist/models/scheduled-task/index.d.ts +13 -0
- package/dist/models/scheduled-task/index.d.ts.map +1 -0
- package/dist/models/scheduled-task/index.js +12 -0
- package/dist/models/scheduled-task/index.js.map +1 -0
- package/dist/models/scheduled-task/scheduled-task.d.ts +73 -0
- package/dist/models/scheduled-task/scheduled-task.d.ts.map +1 -0
- package/dist/models/scheduled-task/scheduled-task.js +95 -0
- package/dist/models/scheduled-task/scheduled-task.js.map +1 -0
- package/dist/models/scheduled-task/scheduled-task.repository.d.ts +150 -0
- package/dist/models/scheduled-task/scheduled-task.repository.d.ts.map +1 -0
- package/dist/models/scheduled-task/scheduled-task.repository.js +40 -0
- package/dist/models/scheduled-task/scheduled-task.repository.js.map +1 -0
- package/dist/models/stream.d.ts +139 -0
- package/dist/models/stream.d.ts.map +1 -0
- package/dist/models/stream.js +153 -0
- package/dist/models/stream.js.map +1 -0
- package/dist/models/symbols.d.ts +73 -0
- package/dist/models/symbols.d.ts.map +1 -0
- package/dist/models/symbols.js +97 -0
- package/dist/models/symbols.js.map +1 -0
- package/dist/models/types.d.ts +291 -0
- package/dist/models/types.d.ts.map +1 -0
- package/dist/models/types.js +50 -0
- package/dist/models/types.js.map +1 -0
- package/dist/models/watch.d.ts +27 -0
- package/dist/models/watch.d.ts.map +1 -0
- package/dist/models/watch.js +124 -0
- package/dist/models/watch.js.map +1 -0
- package/dist/models/zod-ref.d.ts +46 -0
- package/dist/models/zod-ref.d.ts.map +1 -0
- package/dist/models/zod-ref.js +31 -0
- package/dist/models/zod-ref.js.map +1 -0
- package/dist/process/builtin-serializers.d.ts +19 -0
- package/dist/process/builtin-serializers.d.ts.map +1 -0
- package/dist/process/builtin-serializers.js +213 -0
- package/dist/process/builtin-serializers.js.map +1 -0
- package/dist/process/cluster-plugin.d.ts +129 -0
- package/dist/process/cluster-plugin.d.ts.map +1 -0
- package/dist/process/cluster-plugin.js +175 -0
- package/dist/process/cluster-plugin.js.map +1 -0
- package/dist/process/createProcess.d.ts +67 -0
- package/dist/process/createProcess.d.ts.map +1 -0
- package/dist/process/createProcess.js +111 -0
- package/dist/process/createProcess.js.map +1 -0
- package/dist/process/define-signals.d.ts +113 -0
- package/dist/process/define-signals.d.ts.map +1 -0
- package/dist/process/define-signals.js +222 -0
- package/dist/process/define-signals.js.map +1 -0
- package/dist/process/delay-controller.d.ts +35 -0
- package/dist/process/delay-controller.d.ts.map +1 -0
- package/dist/process/delay-controller.js +55 -0
- package/dist/process/delay-controller.js.map +1 -0
- package/dist/process/index.d.ts +38 -0
- package/dist/process/index.d.ts.map +1 -0
- package/dist/process/index.js +47 -0
- package/dist/process/index.js.map +1 -0
- package/dist/process/primitives.d.ts +393 -0
- package/dist/process/primitives.d.ts.map +1 -0
- package/dist/process/primitives.js +325 -0
- package/dist/process/primitives.js.map +1 -0
- package/dist/process/serialization.d.ts +58 -0
- package/dist/process/serialization.d.ts.map +1 -0
- package/dist/process/serialization.js +220 -0
- package/dist/process/serialization.js.map +1 -0
- package/dist/process/stream-utils.d.ts +123 -0
- package/dist/process/stream-utils.d.ts.map +1 -0
- package/dist/process/stream-utils.js +247 -0
- package/dist/process/stream-utils.js.map +1 -0
- package/dist/process/testing/clock.d.ts +115 -0
- package/dist/process/testing/clock.d.ts.map +1 -0
- package/dist/process/testing/clock.js +166 -0
- package/dist/process/testing/clock.js.map +1 -0
- package/dist/process/testing/index.d.ts +9 -0
- package/dist/process/testing/index.d.ts.map +1 -0
- package/dist/process/testing/index.js +9 -0
- package/dist/process/testing/index.js.map +1 -0
- package/dist/process/testing.d.ts +50 -0
- package/dist/process/testing.d.ts.map +1 -0
- package/dist/process/testing.js +59 -0
- package/dist/process/testing.js.map +1 -0
- package/dist/process/types.d.ts +540 -0
- package/dist/process/types.d.ts.map +1 -0
- package/dist/process/types.js +21 -0
- package/dist/process/types.js.map +1 -0
- package/dist/queue/index.d.ts +2 -0
- package/dist/queue/index.d.ts.map +1 -0
- package/dist/queue/index.js +2 -0
- package/dist/queue/index.js.map +1 -0
- package/dist/queue/queue.d.ts +34 -0
- package/dist/queue/queue.d.ts.map +1 -0
- package/dist/queue/queue.js +108 -0
- package/dist/queue/queue.js.map +1 -0
- package/dist/runtime/process/compiled.d.ts +56 -0
- package/dist/runtime/process/compiled.d.ts.map +1 -0
- package/dist/runtime/process/compiled.js +221 -0
- package/dist/runtime/process/compiled.js.map +1 -0
- package/dist/runtime/process/executor.d.ts +279 -0
- package/dist/runtime/process/executor.d.ts.map +1 -0
- package/dist/runtime/process/executor.js +1941 -0
- package/dist/runtime/process/executor.js.map +1 -0
- package/dist/runtime/process/factory.d.ts +72 -0
- package/dist/runtime/process/factory.d.ts.map +1 -0
- package/dist/runtime/process/factory.js +78 -0
- package/dist/runtime/process/factory.js.map +1 -0
- package/dist/runtime/process/freeze.d.ts +5 -0
- package/dist/runtime/process/freeze.d.ts.map +1 -0
- package/dist/runtime/process/freeze.js +94 -0
- package/dist/runtime/process/freeze.js.map +1 -0
- package/dist/runtime/process/scheduled-task-timer.d.ts +52 -0
- package/dist/runtime/process/scheduled-task-timer.d.ts.map +1 -0
- package/dist/runtime/process/scheduled-task-timer.js +104 -0
- package/dist/runtime/process/scheduled-task-timer.js.map +1 -0
- package/dist/runtime/process/signal-bus.d.ts +186 -0
- package/dist/runtime/process/signal-bus.d.ts.map +1 -0
- package/dist/runtime/process/signal-bus.js +256 -0
- package/dist/runtime/process/signal-bus.js.map +1 -0
- package/dist/runtime/process/state-serializer.d.ts +30 -0
- package/dist/runtime/process/state-serializer.d.ts.map +1 -0
- package/dist/runtime/process/state-serializer.js +244 -0
- package/dist/runtime/process/state-serializer.js.map +1 -0
- package/dist/runtime/process/storage.d.ts +96 -0
- package/dist/runtime/process/storage.d.ts.map +1 -0
- package/dist/runtime/process/storage.js +165 -0
- package/dist/runtime/process/storage.js.map +1 -0
- package/dist/runtime/process/timer-scheduler.d.ts +115 -0
- package/dist/runtime/process/timer-scheduler.d.ts.map +1 -0
- package/dist/runtime/process/timer-scheduler.js +192 -0
- package/dist/runtime/process/timer-scheduler.js.map +1 -0
- package/dist/runtime/process/trace.d.ts +17 -0
- package/dist/runtime/process/trace.d.ts.map +1 -0
- package/dist/runtime/process/trace.js +26 -0
- package/dist/runtime/process/trace.js.map +1 -0
- package/dist/runtime/protobuf/encoding/index.d.ts +26 -0
- package/dist/runtime/protobuf/encoding/index.d.ts.map +1 -0
- package/dist/runtime/protobuf/encoding/index.js +30 -0
- package/dist/runtime/protobuf/encoding/index.js.map +1 -0
- package/dist/runtime/protobuf/encoding/reader.d.ts +182 -0
- package/dist/runtime/protobuf/encoding/reader.d.ts.map +1 -0
- package/dist/runtime/protobuf/encoding/reader.js +353 -0
- package/dist/runtime/protobuf/encoding/reader.js.map +1 -0
- package/dist/runtime/protobuf/encoding/varint.d.ts +67 -0
- package/dist/runtime/protobuf/encoding/varint.d.ts.map +1 -0
- package/dist/runtime/protobuf/encoding/varint.js +117 -0
- package/dist/runtime/protobuf/encoding/varint.js.map +1 -0
- package/dist/runtime/protobuf/encoding/wire-types.d.ts +62 -0
- package/dist/runtime/protobuf/encoding/wire-types.d.ts.map +1 -0
- package/dist/runtime/protobuf/encoding/wire-types.js +103 -0
- package/dist/runtime/protobuf/encoding/wire-types.js.map +1 -0
- package/dist/runtime/protobuf/encoding/writer.d.ts +147 -0
- package/dist/runtime/protobuf/encoding/writer.d.ts.map +1 -0
- package/dist/runtime/protobuf/encoding/writer.js +214 -0
- package/dist/runtime/protobuf/encoding/writer.js.map +1 -0
- package/dist/runtime/protobuf/index.d.ts +3 -0
- package/dist/runtime/protobuf/index.d.ts.map +1 -0
- package/dist/runtime/protobuf/index.js +3 -0
- package/dist/runtime/protobuf/index.js.map +1 -0
- package/dist/runtime/protobuf/serialized.d.ts +48 -0
- package/dist/runtime/protobuf/serialized.d.ts.map +1 -0
- package/dist/runtime/protobuf/serialized.js +517 -0
- package/dist/runtime/protobuf/serialized.js.map +1 -0
- package/package.json +209 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container-reflection.d.ts","sourceRoot":"","sources":["../../src/core/container-reflection.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,WAAW,CAAC,KAAK,CAAC,EAAE,eAAe,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAEnE;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAEvD;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3D;;AAED;;;;;;;;;;;;;;GAcG;AACH,8BAAsB,iBAAkB,SAAQ,sBAAwD;CAAG;AAE3G;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACxD,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACxE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;CAChF,GAAG,mBAAmB,CAgCtB"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AbstractContainer - queryable reflection of the current scope.
|
|
3
|
+
*
|
|
4
|
+
* Inject to introspect what the scope contains (controllers, services).
|
|
5
|
+
* Each scope binds its own instance; sub-apps each get their own.
|
|
6
|
+
* Transport-agnostic: protocols filter by reading their own metadata off
|
|
7
|
+
* each controller instance.
|
|
8
|
+
*/
|
|
9
|
+
import { defineAbstract } from './service.js';
|
|
10
|
+
/**
|
|
11
|
+
* Abstract DI token for scope reflection. Tools inject this:
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* class ApiDocService extends defineService({
|
|
16
|
+
* inject: { container: AbstractContainer },
|
|
17
|
+
* factory: ({ container }) => ({
|
|
18
|
+
* routes: () => [...container.controllers()],
|
|
19
|
+
* }),
|
|
20
|
+
* }) {}
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* Each compiled scope binds its own concrete implementation.
|
|
24
|
+
*/
|
|
25
|
+
export class AbstractContainer extends defineAbstract('AbstractContainer') {
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @internal Build a concrete ContainerReflection over a resolved app's
|
|
29
|
+
* controllers and DI container.
|
|
30
|
+
*/
|
|
31
|
+
export function createContainerReflection(args) {
|
|
32
|
+
const { controllers, resolve, resolveAll } = args;
|
|
33
|
+
return {
|
|
34
|
+
*controllers(where) {
|
|
35
|
+
for (const c of controllers) {
|
|
36
|
+
if (where?.hasGuards !== undefined) {
|
|
37
|
+
const anyGuard = c.routes.some((r) => r.steps?.some((s) => s.type === 'guard'));
|
|
38
|
+
if (where.hasGuards !== anyGuard)
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
yield c;
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
async get(token) {
|
|
45
|
+
try {
|
|
46
|
+
return await resolve(token);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
async all(token) {
|
|
53
|
+
if (resolveAll)
|
|
54
|
+
return resolveAll(token);
|
|
55
|
+
const one = await this.get(token);
|
|
56
|
+
return one === undefined ? [] : [one];
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=container-reflection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container-reflection.js","sourceRoot":"","sources":["../../src/core/container-reflection.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAwC9C;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAgB,iBAAkB,SAAQ,cAAc,CAAsB,mBAAmB,CAAC;CAAG;AAE3G;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAIzC;IACC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAElD,OAAO;QACL,CAAC,WAAW,CAAC,KAAK;YAChB,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC5B,IAAI,KAAK,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;oBACnC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAClC,CAA4D,CAAC,KAAK,EAAE,IAAI,CACvE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAC1B,CACF,CAAC;oBACF,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ;wBAAE,SAAS;gBAC7C,CAAC;gBACD,MAAM,CAAC,CAAC;YACV,CAAC;QACH,CAAC;QAED,KAAK,CAAC,GAAG,CAAI,KAAsB;YACjC,IAAI,CAAC;gBACH,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,KAAK,CAAC,GAAG,CAAI,KAAsB;YACjC,IAAI,UAAU;gBAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClC,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request Context System
|
|
3
|
+
*
|
|
4
|
+
* Provides async context propagation for DI container access and request
|
|
5
|
+
* chain tracing. Uses AsyncLocalStorage for automatic propagation.
|
|
6
|
+
*/
|
|
7
|
+
import type { Container } from './service.js';
|
|
8
|
+
import { type ObservabilityContext } from './logger.js';
|
|
9
|
+
/**
|
|
10
|
+
* Get the current DI container from async context.
|
|
11
|
+
* Returns undefined if no container is in context.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const container = getContainer()
|
|
16
|
+
* if (container) {
|
|
17
|
+
* const userService = await container.resolve(UserService)
|
|
18
|
+
* }
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function getContainer(): Container | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Get the current DI container, throwing if none is in context.
|
|
24
|
+
* Use this when you require a container to be present.
|
|
25
|
+
*
|
|
26
|
+
* @throws Error if no container is in context
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* const container = requireContainer()
|
|
31
|
+
* const userService = await container.resolve(UserService)
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare function requireContainer(): Container;
|
|
35
|
+
/**
|
|
36
|
+
* Run a function with a DI container in async context.
|
|
37
|
+
* The container is available via getContainer() in the entire async tree.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```typescript
|
|
41
|
+
* runWithContainer(container, async () => {
|
|
42
|
+
* // getContainer() returns container here
|
|
43
|
+
* await processRequest()
|
|
44
|
+
* })
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare function runWithContainer<T>(container: Container, fn: () => T): T;
|
|
48
|
+
/**
|
|
49
|
+
* Type of request/handler that initiated the context.
|
|
50
|
+
*/
|
|
51
|
+
export type RequestType = 'http' | 'ws' | 'cli' | 'event' | 'process' | 'scheduled' | 'internal';
|
|
52
|
+
/**
|
|
53
|
+
* Context about the current request in the chain.
|
|
54
|
+
* Forms a linked list back to the originating request.
|
|
55
|
+
*/
|
|
56
|
+
export interface RequestContext {
|
|
57
|
+
/** Short unique identifier for this request */
|
|
58
|
+
id: string;
|
|
59
|
+
/** Type of request handler */
|
|
60
|
+
type: RequestType;
|
|
61
|
+
/** Name of the route/handler/process */
|
|
62
|
+
name: string;
|
|
63
|
+
/** Parent request context (for chain tracing) */
|
|
64
|
+
parent?: RequestContext;
|
|
65
|
+
/** When this request started */
|
|
66
|
+
startedAt: Date;
|
|
67
|
+
/** Additional metadata (route params, user info, etc.) */
|
|
68
|
+
metadata?: Record<string, unknown>;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Minimal principal shape for access control evaluation.
|
|
72
|
+
* Kept in core so both permission package (writer) and HTTP serializer (reader)
|
|
73
|
+
* can use it without circular dependencies.
|
|
74
|
+
*/
|
|
75
|
+
export interface AccessPrincipal {
|
|
76
|
+
readonly type: abstract new (...args: any[]) => any;
|
|
77
|
+
readonly ref: {
|
|
78
|
+
readonly identifier: string;
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/** Get the resolved principals for the current request (for field-level access filtering). */
|
|
82
|
+
export declare function getAccessPrincipals(): AccessPrincipal[] | undefined;
|
|
83
|
+
/** Run a function with resolved principals in context (set by permission guards). */
|
|
84
|
+
export declare function runWithPrincipals<T>(principals: AccessPrincipal[], fn: () => T): T;
|
|
85
|
+
/**
|
|
86
|
+
* Set principals for the current async context (no callback needed).
|
|
87
|
+
* Used by permission guards to make principals available for the rest of the request.
|
|
88
|
+
*/
|
|
89
|
+
export declare function enterWithPrincipals(principals: AccessPrincipal[]): void;
|
|
90
|
+
/**
|
|
91
|
+
* Get the current request context.
|
|
92
|
+
* Returns undefined if not within a request scope.
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```typescript
|
|
96
|
+
* const ctx = getRequestContext()
|
|
97
|
+
* if (ctx) {
|
|
98
|
+
* console.log(`Request ${ctx.id} (${ctx.type}): ${ctx.name}`)
|
|
99
|
+
* }
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
export declare function getRequestContext(): RequestContext | undefined;
|
|
103
|
+
/**
|
|
104
|
+
* Get the full request chain from current to origin.
|
|
105
|
+
* Useful for debugging and distributed tracing.
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```typescript
|
|
109
|
+
* const chain = getRequestChain()
|
|
110
|
+
* // [current, parent, grandparent, ...]
|
|
111
|
+
* console.log('Request chain:', chain.map(c => `${c.type}:${c.name}`).join(' -> '))
|
|
112
|
+
* // "event:order.created -> http:POST /orders"
|
|
113
|
+
* ```
|
|
114
|
+
*/
|
|
115
|
+
export declare function getRequestChain(): RequestContext[];
|
|
116
|
+
/**
|
|
117
|
+
* Run a function within a new request context.
|
|
118
|
+
* Automatically links to parent context if one exists.
|
|
119
|
+
*/
|
|
120
|
+
export declare function runWithRequestContext<T>(type: RequestType, name: string, fn: () => T, metadata?: Record<string, unknown>): T;
|
|
121
|
+
/**
|
|
122
|
+
* Options for running code in a full request scope.
|
|
123
|
+
*/
|
|
124
|
+
export interface RequestScopeOptions {
|
|
125
|
+
/** DI container for the request */
|
|
126
|
+
container: Container;
|
|
127
|
+
/** Type of request/handler */
|
|
128
|
+
type: RequestType;
|
|
129
|
+
/** Name of the route/handler */
|
|
130
|
+
name: string;
|
|
131
|
+
/** Additional metadata */
|
|
132
|
+
metadata?: Record<string, unknown>;
|
|
133
|
+
/** Observability context overrides */
|
|
134
|
+
observability?: ObservabilityContext;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Run a function in a full request scope with container context,
|
|
138
|
+
* request chain tracking, and observability instrumentation.
|
|
139
|
+
*/
|
|
140
|
+
export declare function runInFullRequestScope<T>(options: RequestScopeOptions, fn: () => Promise<T>): Promise<T>;
|
|
141
|
+
/**
|
|
142
|
+
* Synchronous version of runInFullRequestScope.
|
|
143
|
+
* Use for synchronous handlers (rare).
|
|
144
|
+
*/
|
|
145
|
+
export declare function runInFullRequestScopeSync<T>(options: RequestScopeOptions, fn: () => T): T;
|
|
146
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAmC,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAQzF;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,IAAI,SAAS,GAAG,SAAS,CAEpD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,IAAI,SAAS,CAM5C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAExE;AAMD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;AAEjG;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,EAAE,EAAE,MAAM,CAAA;IACV,8BAA8B;IAC9B,IAAI,EAAE,WAAW,CAAA;IACjB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,iDAAiD;IACjD,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,gCAAgC;IAChC,SAAS,EAAE,IAAI,CAAA;IACf,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAQD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IACpD,QAAQ,CAAC,GAAG,EAAE;QAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAID,8FAA8F;AAC9F,wBAAgB,mBAAmB,IAAI,eAAe,EAAE,GAAG,SAAS,CAEnE;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAElF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,IAAI,CAEvE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,SAAS,CAE9D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,IAAI,cAAc,EAAE,CAQlD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,CAAC,EACX,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,CAAC,CAWH;AAMD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,SAAS,EAAE,SAAS,CAAA;IACpB,8BAA8B;IAC9B,IAAI,EAAE,WAAW,CAAA;IACjB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,sCAAsC;IACtC,aAAa,CAAC,EAAE,oBAAoB,CAAA;CACrC;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,EAC3C,OAAO,EAAE,mBAAmB,EAC5B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAoBZ;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EACzC,OAAO,EAAE,mBAAmB,EAC5B,EAAE,EAAE,MAAM,CAAC,GACV,CAAC,CAIH"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request Context System
|
|
3
|
+
*
|
|
4
|
+
* Provides async context propagation for DI container access and request
|
|
5
|
+
* chain tracing. Uses AsyncLocalStorage for automatic propagation.
|
|
6
|
+
*/
|
|
7
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
8
|
+
import { runInScopeAsync } from './logger.js';
|
|
9
|
+
// ============================================================================
|
|
10
|
+
// Container Context
|
|
11
|
+
// ============================================================================
|
|
12
|
+
const containerContext = new AsyncLocalStorage();
|
|
13
|
+
/**
|
|
14
|
+
* Get the current DI container from async context.
|
|
15
|
+
* Returns undefined if no container is in context.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const container = getContainer()
|
|
20
|
+
* if (container) {
|
|
21
|
+
* const userService = await container.resolve(UserService)
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export function getContainer() {
|
|
26
|
+
return containerContext.getStore();
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Get the current DI container, throwing if none is in context.
|
|
30
|
+
* Use this when you require a container to be present.
|
|
31
|
+
*
|
|
32
|
+
* @throws Error if no container is in context
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* const container = requireContainer()
|
|
37
|
+
* const userService = await container.resolve(UserService)
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export function requireContainer() {
|
|
41
|
+
const container = getContainer();
|
|
42
|
+
if (!container) {
|
|
43
|
+
throw new Error('No container in context. Ensure code runs within request scope.');
|
|
44
|
+
}
|
|
45
|
+
return container;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Run a function with a DI container in async context.
|
|
49
|
+
* The container is available via getContainer() in the entire async tree.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* runWithContainer(container, async () => {
|
|
54
|
+
* // getContainer() returns container here
|
|
55
|
+
* await processRequest()
|
|
56
|
+
* })
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export function runWithContainer(container, fn) {
|
|
60
|
+
return containerContext.run(container, fn);
|
|
61
|
+
}
|
|
62
|
+
const requestContext = new AsyncLocalStorage();
|
|
63
|
+
const principalContext = new AsyncLocalStorage();
|
|
64
|
+
/** Get the resolved principals for the current request (for field-level access filtering). */
|
|
65
|
+
export function getAccessPrincipals() {
|
|
66
|
+
return principalContext.getStore();
|
|
67
|
+
}
|
|
68
|
+
/** Run a function with resolved principals in context (set by permission guards). */
|
|
69
|
+
export function runWithPrincipals(principals, fn) {
|
|
70
|
+
return principalContext.run(principals, fn);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Set principals for the current async context (no callback needed).
|
|
74
|
+
* Used by permission guards to make principals available for the rest of the request.
|
|
75
|
+
*/
|
|
76
|
+
export function enterWithPrincipals(principals) {
|
|
77
|
+
principalContext.enterWith(principals);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Get the current request context.
|
|
81
|
+
* Returns undefined if not within a request scope.
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* const ctx = getRequestContext()
|
|
86
|
+
* if (ctx) {
|
|
87
|
+
* console.log(`Request ${ctx.id} (${ctx.type}): ${ctx.name}`)
|
|
88
|
+
* }
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
export function getRequestContext() {
|
|
92
|
+
return requestContext.getStore();
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get the full request chain from current to origin.
|
|
96
|
+
* Useful for debugging and distributed tracing.
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* ```typescript
|
|
100
|
+
* const chain = getRequestChain()
|
|
101
|
+
* // [current, parent, grandparent, ...]
|
|
102
|
+
* console.log('Request chain:', chain.map(c => `${c.type}:${c.name}`).join(' -> '))
|
|
103
|
+
* // "event:order.created -> http:POST /orders"
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
export function getRequestChain() {
|
|
107
|
+
const chain = [];
|
|
108
|
+
let current = getRequestContext();
|
|
109
|
+
while (current) {
|
|
110
|
+
chain.push(current);
|
|
111
|
+
current = current.parent;
|
|
112
|
+
}
|
|
113
|
+
return chain;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Run a function within a new request context.
|
|
117
|
+
* Automatically links to parent context if one exists.
|
|
118
|
+
*/
|
|
119
|
+
export function runWithRequestContext(type, name, fn, metadata) {
|
|
120
|
+
const parent = getRequestContext();
|
|
121
|
+
const ctx = {
|
|
122
|
+
id: crypto.randomUUID().slice(0, 8),
|
|
123
|
+
type,
|
|
124
|
+
name,
|
|
125
|
+
parent,
|
|
126
|
+
startedAt: new Date(),
|
|
127
|
+
metadata,
|
|
128
|
+
};
|
|
129
|
+
return requestContext.run(ctx, fn);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Run a function in a full request scope with container context,
|
|
133
|
+
* request chain tracking, and observability instrumentation.
|
|
134
|
+
*/
|
|
135
|
+
export async function runInFullRequestScope(options, fn) {
|
|
136
|
+
const requestId = crypto.randomUUID().slice(0, 8);
|
|
137
|
+
const scopeInfo = {
|
|
138
|
+
type: options.type === 'http' ? 'request' : 'handler',
|
|
139
|
+
name: options.name,
|
|
140
|
+
attributes: options.metadata,
|
|
141
|
+
};
|
|
142
|
+
const observabilityCtx = {
|
|
143
|
+
requestId,
|
|
144
|
+
...options.observability,
|
|
145
|
+
};
|
|
146
|
+
return runWithContainer(options.container, () => runWithRequestContext(options.type, options.name, () => runInScopeAsync(scopeInfo, observabilityCtx, fn), options.metadata));
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Synchronous version of runInFullRequestScope.
|
|
150
|
+
* Use for synchronous handlers (rare).
|
|
151
|
+
*/
|
|
152
|
+
export function runInFullRequestScopeSync(options, fn) {
|
|
153
|
+
return runWithContainer(options.container, () => runWithRequestContext(options.type, options.name, fn, options.metadata));
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,eAAe,EAA6C,MAAM,aAAa,CAAC;AAEzF,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,MAAM,gBAAgB,GAAG,IAAI,iBAAiB,EAAa,CAAC;AAE5D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,gBAAgB,CAAC,QAAQ,EAAE,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAI,SAAoB,EAAE,EAAW;IACnE,OAAO,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC;AA8BD,MAAM,cAAc,GAAG,IAAI,iBAAiB,EAAkB,CAAC;AAgB/D,MAAM,gBAAgB,GAAG,IAAI,iBAAiB,EAAqB,CAAC;AAEpE,8FAA8F;AAC9F,MAAM,UAAU,mBAAmB;IACjC,OAAO,gBAAgB,CAAC,QAAQ,EAAE,CAAC;AACrC,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,iBAAiB,CAAI,UAA6B,EAAE,EAAW;IAC7E,OAAO,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAA6B;IAC/D,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,cAAc,CAAC,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,IAAI,OAAO,GAAG,iBAAiB,EAAE,CAAC;IAClC,OAAO,OAAO,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAiB,EACjB,IAAY,EACZ,EAAW,EACX,QAAkC;IAElC,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,GAAG,GAAmB;QAC1B,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,QAAQ;KACT,CAAC;IACF,OAAO,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACrC,CAAC;AAsBD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAA4B,EAC5B,EAAoB;IAEpB,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAElD,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACrD,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,UAAU,EAAE,OAAO,CAAC,QAAQ;KAC7B,CAAC;IAEF,MAAM,gBAAgB,GAAyB;QAC7C,SAAS;QACT,GAAG,OAAO,CAAC,aAAa;KACzB,CAAC;IAEF,OAAO,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,CAC9C,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,CACrD,eAAe,CAAC,SAAS,EAAE,gBAAgB,EAAE,EAAE,CAAC,EAClD,OAAO,CAAC,QAAQ,CACf,CACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAA4B,EAC5B,EAAW;IAEX,OAAO,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,CAC9C,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CACxE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contribution pattern - multi-implementation tokens.
|
|
3
|
+
*
|
|
4
|
+
* `defineContribution<T>` creates an abstract DI token that accepts multiple
|
|
5
|
+
* implementations. The framework provides a default aggregator that collects
|
|
6
|
+
* contributions via `register(t: T)` and exposes the aggregated interface
|
|
7
|
+
* defined by the `aggregate` function.
|
|
8
|
+
*
|
|
9
|
+
* `createContribution(Token, { inject, factory })` creates a self-registering
|
|
10
|
+
* contribution service. When added to the app, it injects the default
|
|
11
|
+
* aggregator, calls its `register()` method with the factory output, and
|
|
12
|
+
* returns the impl.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* // 1. Declare the multi-impl token
|
|
17
|
+
* abstract class AbstractPrincipalProvider extends defineContribution<PrincipalProvider>(
|
|
18
|
+
* 'AbstractPrincipalProvider',
|
|
19
|
+
* {
|
|
20
|
+
* aggregate: (contribs) => ({
|
|
21
|
+
* async resolve(ctx) {
|
|
22
|
+
* const lists = await Promise.all(contribs.map((c) => c.resolve(ctx)));
|
|
23
|
+
* return lists.flat();
|
|
24
|
+
* },
|
|
25
|
+
* }),
|
|
26
|
+
* },
|
|
27
|
+
* ) {}
|
|
28
|
+
*
|
|
29
|
+
* // 2. Create independent contributions
|
|
30
|
+
* export const AuthResolver = createContribution(AbstractPrincipalProvider, {
|
|
31
|
+
* inject: { users: UserRepository },
|
|
32
|
+
* factory: ({ users }) => ({
|
|
33
|
+
* async resolve(ctx) { / * ... * / return []; },
|
|
34
|
+
* }),
|
|
35
|
+
* });
|
|
36
|
+
*
|
|
37
|
+
* // 3. Add them to the app - default aggregator is auto-registered
|
|
38
|
+
* JustScale()
|
|
39
|
+
* .add(AuthResolver)
|
|
40
|
+
* .add(DomainResolver)
|
|
41
|
+
* .build();
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
import { type AbstractClass, type ServiceDef, type ServiceFactory, type ServiceToken, type ResolvedDeps } from './service.js';
|
|
45
|
+
/** Marks an abstract class as a contribution token (vs a single-impl abstract). */
|
|
46
|
+
export declare const CONTRIBUTION_MARKER: unique symbol;
|
|
47
|
+
/**
|
|
48
|
+
* On a contribution-marked abstract class, holds the default aggregating
|
|
49
|
+
* service def. The builder registers this once when it sees any contribution
|
|
50
|
+
* referencing the token (see `justscale.ts` processComponent).
|
|
51
|
+
*/
|
|
52
|
+
export declare const CONTRIBUTION_DEFAULT: unique symbol;
|
|
53
|
+
/**
|
|
54
|
+
* On a service def created via `createContribution()`, points to the parent
|
|
55
|
+
* contribution token. The builder uses this to auto-register the default
|
|
56
|
+
* aggregator.
|
|
57
|
+
*/
|
|
58
|
+
export declare const CONTRIBUTES_TO: unique symbol;
|
|
59
|
+
/**
|
|
60
|
+
* @internal Registry interface the default aggregator implements.
|
|
61
|
+
* Never exposed on the public abstract token's type.
|
|
62
|
+
*/
|
|
63
|
+
interface ContributionRegistry<T> {
|
|
64
|
+
register(contribution: T): void;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* A contribution-kind abstract class. Same as `AbstractClass<T>` plus a
|
|
68
|
+
* brand symbol so `createContribution()` can type-check its argument.
|
|
69
|
+
*/
|
|
70
|
+
export type ContributionAbstractClass<T> = AbstractClass<T> & {
|
|
71
|
+
readonly [CONTRIBUTION_MARKER]: true;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Define an abstract DI token that accepts multiple contributions.
|
|
75
|
+
*
|
|
76
|
+
* Returns an abstract class you extend with `abstract class X extends ...`
|
|
77
|
+
* (same shape as `defineAbstract`). The difference:
|
|
78
|
+
* - `defineAbstract` is a SINGLE-impl token - bind one via `bindService`.
|
|
79
|
+
* - `defineContribution` is a MULTI-impl token - add contributions via
|
|
80
|
+
* `createContribution(X, { ... })`. The framework auto-wires a default
|
|
81
|
+
* aggregator that calls the `aggregate` function with all registered
|
|
82
|
+
* contributions.
|
|
83
|
+
*
|
|
84
|
+
* @param name Human-readable name for debugging and error messages.
|
|
85
|
+
* @param opts `aggregate` - builds the aggregated interface from the list
|
|
86
|
+
* of registered contributions. Called lazily (every time the aggregated
|
|
87
|
+
* interface is used, OR cached - see note below).
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* abstract class AbstractPrincipalProvider extends defineContribution<PrincipalProvider>(
|
|
92
|
+
* 'AbstractPrincipalProvider',
|
|
93
|
+
* {
|
|
94
|
+
* aggregate: (contribs) => ({
|
|
95
|
+
* async resolve(ctx) {
|
|
96
|
+
* const lists = await Promise.all(contribs.map((c) => c.resolve(ctx)));
|
|
97
|
+
* return lists.flat();
|
|
98
|
+
* },
|
|
99
|
+
* }),
|
|
100
|
+
* },
|
|
101
|
+
* ) {}
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
export declare function defineContribution<T>(name: string, opts: {
|
|
105
|
+
aggregate: (contributions: readonly T[]) => T;
|
|
106
|
+
}): ContributionAbstractClass<T>;
|
|
107
|
+
/**
|
|
108
|
+
* Type guard: is this a contribution-kind abstract class?
|
|
109
|
+
*/
|
|
110
|
+
export declare function isContributionToken(value: unknown): value is ContributionAbstractClass<unknown>;
|
|
111
|
+
/**
|
|
112
|
+
* Retrieve the default aggregating service for a contribution token.
|
|
113
|
+
* Used by the builder to auto-register the default once.
|
|
114
|
+
*/
|
|
115
|
+
export declare function getContributionDefault<T>(token: ContributionAbstractClass<T>): ServiceDef<T & ContributionRegistry<T>, {}>;
|
|
116
|
+
/**
|
|
117
|
+
* Create a self-registering contribution to a multi-impl token.
|
|
118
|
+
*
|
|
119
|
+
* Returns a `ServiceDef` that, when resolved, injects the contribution token
|
|
120
|
+
* (resolving to the default aggregator), calls the user's `factory` to build
|
|
121
|
+
* the contribution, registers it with the aggregator via `.register()`, and
|
|
122
|
+
* returns the contribution.
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```typescript
|
|
126
|
+
* export const AuthResolver = createContribution(AbstractPrincipalProvider, {
|
|
127
|
+
* inject: { users: UserRepository },
|
|
128
|
+
* factory: ({ users }) => ({
|
|
129
|
+
* async resolve(ctx) {
|
|
130
|
+
* if (!ctx.user) return [];
|
|
131
|
+
* return [{ type: User, ref: User.ref(ctx.user) }];
|
|
132
|
+
* },
|
|
133
|
+
* }),
|
|
134
|
+
* });
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
export declare function createContribution<T, const TDeps extends Record<string, ServiceToken>>(token: ContributionAbstractClass<T>, config: {
|
|
138
|
+
inject: TDeps;
|
|
139
|
+
factory: ServiceFactory<ResolvedDeps<TDeps>, T>;
|
|
140
|
+
}): ServiceDef<T, TDeps>;
|
|
141
|
+
/**
|
|
142
|
+
* Type guard: is this service def a contribution?
|
|
143
|
+
*/
|
|
144
|
+
export declare function isContribution(value: unknown): value is ServiceDef<unknown, any> & {
|
|
145
|
+
[CONTRIBUTES_TO]: ContributionAbstractClass<unknown>;
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* Get the contribution parent token from a contribution service def.
|
|
149
|
+
*/
|
|
150
|
+
export declare function getContributionParent<T>(def: ServiceDef<T, any>): ContributionAbstractClass<T> | undefined;
|
|
151
|
+
export {};
|
|
152
|
+
//# sourceMappingURL=contribution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contribution.d.ts","sourceRoot":"","sources":["../../src/core/contribution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EAGlB,MAAM,cAAc,CAAC;AAMtB,mFAAmF;AACnF,eAAO,MAAM,mBAAmB,eAAyC,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,eAA0C,CAAC;AAE5E;;;;GAIG;AACH,eAAO,MAAM,cAAc,eAAoC,CAAC;AAMhE;;;GAGG;AACH,UAAU,oBAAoB,CAAC,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,MAAM,yBAAyB,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,GAAG;IAC5D,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC;CACtC,CAAC;AAMF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,SAAS,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAA;CAAE,GACtD,yBAAyB,CAAC,CAAC,CAAC,CAgC9B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,yBAAyB,CAAC,OAAO,CAAC,CAM/F;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,KAAK,EAAE,yBAAyB,CAAC,CAAC,CAAC,GAClC,UAAU,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAI7C;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,EACD,KAAK,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAEhD,KAAK,EAAE,yBAAyB,CAAC,CAAC,CAAC,EACnC,MAAM,EAAE;IACN,MAAM,EAAE,KAAK,CAAC;IACd,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;CACjD,GACA,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAgDtB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG;IAClF,CAAC,cAAc,CAAC,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC;CACtD,CAOA;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,GACtB,yBAAyB,CAAC,CAAC,CAAC,GAAG,SAAS,CAE1C"}
|