@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,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @justscale/cluster
|
|
3
|
+
*
|
|
4
|
+
* Cluster capabilities for JustScale applications.
|
|
5
|
+
*
|
|
6
|
+
* The main entry point is now JustScale() from '@justscale/core':
|
|
7
|
+
*
|
|
8
|
+
* @example Creating an app
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import JustScale from '@justscale/core'
|
|
11
|
+
* import '@justscale/http'
|
|
12
|
+
*
|
|
13
|
+
* const app = JustScale()
|
|
14
|
+
* .add(UserService)
|
|
15
|
+
* .add(UserController)
|
|
16
|
+
* .build()
|
|
17
|
+
*
|
|
18
|
+
* await app.serve({ http: 3000 })
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @example Using the CLI client directly
|
|
22
|
+
* ```typescript
|
|
23
|
+
* import { connectToCluster } from "@justscale/cluster"
|
|
24
|
+
*
|
|
25
|
+
* const client = await connectToCluster()
|
|
26
|
+
* const result = await client.invoke("auth create-user", {
|
|
27
|
+
* email: "test@example.com",
|
|
28
|
+
* password: "secret",
|
|
29
|
+
* })
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @module @justscale/cluster
|
|
33
|
+
*/
|
|
34
|
+
// Protocol
|
|
35
|
+
export { PROTOCOL_VERSION, PROTOCOL_V1_CBOR, PROTOCOL_V2_PROTO, WIRE_FORMAT_CBOR, WIRE_FORMAT_PROTO, setProtoCodec, getProtoCodec, encodeFrameV2, ErrorCodes, Methods, encodeFrame, FrameDecoder, createRequest, createResponse, createErrorResponse, createStream, createEvent, isRequest, isResponse, isSuccessResponse, isErrorResponse, isStream, isEvent, } from './protocol.js';
|
|
36
|
+
// Transport
|
|
37
|
+
export { SocketTransport, getSocketDir, getSocketPath, cleanupSocket, getPeerCredentials, } from './transport.js';
|
|
38
|
+
// Server
|
|
39
|
+
export { ClusterServer, createClusterServer, } from './server.js';
|
|
40
|
+
// Client
|
|
41
|
+
export { ClusterClient, createClusterClient, connectToCluster, } from './client.js';
|
|
42
|
+
// Proto codec: import { clusterProtoCodec } from '@justscale/core/cluster/proto-codec'
|
|
43
|
+
// Requires .proto module resolution via ptsc - not in default build output.
|
|
44
|
+
// Coordinator (cluster-as-a-process)
|
|
45
|
+
export { ClusterNode, ClusterNodeStatus, ClusterSignals, clusterCoordinator, COORDINATOR_PATH, NodeLifecycleService, } from './coordinator/index.js';
|
|
46
|
+
// Cluster (transport system)
|
|
47
|
+
export { registerTransport, getRegisteredTransports, } from './cluster.js';
|
|
48
|
+
// ============================================================================
|
|
49
|
+
// Re-exports from @justscale/core for convenience
|
|
50
|
+
// ============================================================================
|
|
51
|
+
// Main entry point
|
|
52
|
+
export { default as JustScale } from '../justscale.js';
|
|
53
|
+
// Builder utilities
|
|
54
|
+
export { bindRepository, bindService, bindInstance, } from '../index.js';
|
|
55
|
+
// Type guards
|
|
56
|
+
export { isServiceDef, isControllerDef, isRepositoryBinding, isServiceBinding, isInstanceBinding, isFeatureToken, isBuilderCallback, isComponentArray, FEATURE_TOKEN, FEATURE_META, REPO_BINDING, SERVICE_BINDING, INSTANCE_BINDING, } from '../index.js';
|
|
57
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cluster/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,WAAW;AACX,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAGjB,aAAa,EACb,aAAa,EACb,aAAa,EAkBb,UAAU,EAEV,OAAO,EACP,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,QAAQ,EACR,OAAO,GACR,MAAM,eAAe,CAAC;AAEvB,YAAY;AACZ,OAAO,EAGL,eAAe,EAEf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAExB,SAAS;AACT,OAAO,EACL,aAAa,EACb,mBAAmB,GAMpB,MAAM,aAAa,CAAC;AAErB,SAAS;AACT,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,GAKjB,MAAM,aAAa,CAAC;AAErB,uFAAuF;AACvF,4EAA4E;AAE5E,qCAAqC;AACrC,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,GAErB,MAAM,wBAAwB,CAAC;AAEhC,6BAA6B;AAC7B,OAAO,EAIL,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAEtB,+EAA+E;AAC/E,kDAAkD;AAClD,+EAA+E;AAE/E,mBAAmB;AACnB,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGvD,oBAAoB;AACpB,OAAO,EACL,cAAc,EACd,WAAW,EACX,YAAY,GACb,MAAM,aAAa,CAAC;AAoBrB,cAAc;AACd,OAAO,EACL,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,GACjB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wire protocol for inter-process and inter-node communication.
|
|
3
|
+
* Frame format: [4 bytes big-endian length][CBOR payload]
|
|
4
|
+
*/
|
|
5
|
+
/** CBOR wire format (default for local CLI communication) */
|
|
6
|
+
export declare const PROTOCOL_V1_CBOR = 1;
|
|
7
|
+
/** Proto wire format (v2 for inter-node cluster communication) */
|
|
8
|
+
export declare const PROTOCOL_V2_PROTO = 2;
|
|
9
|
+
export declare const PROTOCOL_VERSION = 1;
|
|
10
|
+
/**
|
|
11
|
+
* Wire format version markers.
|
|
12
|
+
* First byte of the frame header indicates the encoding format:
|
|
13
|
+
* - 0x00: CBOR v1 (4-byte BE length + CBOR payload)
|
|
14
|
+
* - 0x01: Proto v2 (1-byte version + 4-byte BE length + proto payload)
|
|
15
|
+
*/
|
|
16
|
+
export declare const WIRE_FORMAT_CBOR = 0;
|
|
17
|
+
export declare const WIRE_FORMAT_PROTO = 1;
|
|
18
|
+
export type MessageType = 'request' | 'response' | 'stream' | 'event';
|
|
19
|
+
export type AuthLevel = 'none' | 'socket' | 'shared-secret' | 'pubkey' | 'mtls';
|
|
20
|
+
export interface AuthNone {
|
|
21
|
+
type: 'none';
|
|
22
|
+
}
|
|
23
|
+
export interface AuthSocket {
|
|
24
|
+
type: 'socket';
|
|
25
|
+
uid?: number;
|
|
26
|
+
gid?: number;
|
|
27
|
+
pid?: number;
|
|
28
|
+
}
|
|
29
|
+
export interface AuthSharedSecret {
|
|
30
|
+
type: 'shared-secret';
|
|
31
|
+
token: string;
|
|
32
|
+
}
|
|
33
|
+
export interface AuthPubkey {
|
|
34
|
+
type: 'pubkey';
|
|
35
|
+
publicKey: Uint8Array;
|
|
36
|
+
signature: Uint8Array;
|
|
37
|
+
challenge?: Uint8Array;
|
|
38
|
+
}
|
|
39
|
+
export type AuthInfo = AuthNone | AuthSocket | AuthSharedSecret | AuthPubkey;
|
|
40
|
+
interface BaseMessage {
|
|
41
|
+
/** Protocol version */
|
|
42
|
+
v: number;
|
|
43
|
+
/** Correlation ID for request/response matching */
|
|
44
|
+
id?: string;
|
|
45
|
+
/** Message type */
|
|
46
|
+
type: MessageType;
|
|
47
|
+
}
|
|
48
|
+
export interface RequestMessage extends BaseMessage {
|
|
49
|
+
type: 'request';
|
|
50
|
+
/** Method namespace.name (e.g., "cli.invoke", "system.health") */
|
|
51
|
+
method: string;
|
|
52
|
+
/** Method parameters */
|
|
53
|
+
params?: Record<string, unknown>;
|
|
54
|
+
}
|
|
55
|
+
export interface SuccessResponse extends BaseMessage {
|
|
56
|
+
type: 'response';
|
|
57
|
+
ok: true;
|
|
58
|
+
result?: unknown;
|
|
59
|
+
}
|
|
60
|
+
export interface ErrorResponse extends BaseMessage {
|
|
61
|
+
type: 'response';
|
|
62
|
+
ok: false;
|
|
63
|
+
error: {
|
|
64
|
+
code: string;
|
|
65
|
+
message: string;
|
|
66
|
+
data?: unknown;
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
export type ResponseMessage = SuccessResponse | ErrorResponse;
|
|
70
|
+
export interface StreamMessage extends BaseMessage {
|
|
71
|
+
type: 'stream';
|
|
72
|
+
/** Stream channel: stdout, stderr, progress, prompt, prompt_response, etc. */
|
|
73
|
+
channel: string;
|
|
74
|
+
/** Stream data */
|
|
75
|
+
data: unknown;
|
|
76
|
+
/** Is this the final message in the stream? */
|
|
77
|
+
done?: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Monotonically increasing sequence number within a stream (scoped to id + channel).
|
|
80
|
+
* Used to detect and reorder out-of-order delivery on non-TCP transports.
|
|
81
|
+
*/
|
|
82
|
+
seq?: number;
|
|
83
|
+
}
|
|
84
|
+
export type PromptType = 'text' | 'password' | 'confirm' | 'select';
|
|
85
|
+
/** Server -> Client: Request input from user */
|
|
86
|
+
export interface PromptRequest {
|
|
87
|
+
promptId: string;
|
|
88
|
+
promptType: PromptType;
|
|
89
|
+
message: string;
|
|
90
|
+
defaultValue?: string;
|
|
91
|
+
choices?: Array<{
|
|
92
|
+
label: string;
|
|
93
|
+
value: string;
|
|
94
|
+
}>;
|
|
95
|
+
}
|
|
96
|
+
/** Client -> Server: User's response to prompt */
|
|
97
|
+
export interface PromptResponseData {
|
|
98
|
+
promptId: string;
|
|
99
|
+
value: string | boolean | null;
|
|
100
|
+
cancelled?: boolean;
|
|
101
|
+
}
|
|
102
|
+
export interface EventMessage extends BaseMessage {
|
|
103
|
+
type: 'event';
|
|
104
|
+
/** Event name */
|
|
105
|
+
event: string;
|
|
106
|
+
/** Event payload */
|
|
107
|
+
payload?: unknown;
|
|
108
|
+
}
|
|
109
|
+
export type Message = RequestMessage | ResponseMessage | StreamMessage | EventMessage;
|
|
110
|
+
export declare const ErrorCodes: {
|
|
111
|
+
readonly PARSE_ERROR: "PARSE_ERROR";
|
|
112
|
+
readonly INVALID_MESSAGE: "INVALID_MESSAGE";
|
|
113
|
+
readonly UNSUPPORTED_VERSION: "UNSUPPORTED_VERSION";
|
|
114
|
+
readonly METHOD_NOT_FOUND: "METHOD_NOT_FOUND";
|
|
115
|
+
readonly INVALID_PARAMS: "INVALID_PARAMS";
|
|
116
|
+
readonly AUTH_REQUIRED: "AUTH_REQUIRED";
|
|
117
|
+
readonly AUTH_FAILED: "AUTH_FAILED";
|
|
118
|
+
readonly PERMISSION_DENIED: "PERMISSION_DENIED";
|
|
119
|
+
readonly INTERNAL_ERROR: "INTERNAL_ERROR";
|
|
120
|
+
readonly TIMEOUT: "TIMEOUT";
|
|
121
|
+
readonly CANCELLED: "CANCELLED";
|
|
122
|
+
};
|
|
123
|
+
export type ErrorCode = (typeof ErrorCodes)[keyof typeof ErrorCodes];
|
|
124
|
+
export declare const Methods: {
|
|
125
|
+
readonly CLI_INVOKE: "cli.invoke";
|
|
126
|
+
readonly CLI_LIST: "cli.list";
|
|
127
|
+
readonly SYSTEM_HEALTH: "system.health";
|
|
128
|
+
readonly SYSTEM_INFO: "system.info";
|
|
129
|
+
readonly SYSTEM_SHUTDOWN: "system.shutdown";
|
|
130
|
+
readonly SYSTEM_RELOAD: "system.reload";
|
|
131
|
+
readonly AUTH_HANDSHAKE: "auth.handshake";
|
|
132
|
+
readonly AUTH_CHALLENGE: "auth.challenge";
|
|
133
|
+
readonly AUTH_VERIFY: "auth.verify";
|
|
134
|
+
readonly MESH_DISCOVER: "mesh.discover";
|
|
135
|
+
readonly MESH_JOIN: "mesh.join";
|
|
136
|
+
readonly MESH_LEAVE: "mesh.leave";
|
|
137
|
+
readonly MESH_ROUTE: "mesh.route";
|
|
138
|
+
};
|
|
139
|
+
export type WireFormat = typeof WIRE_FORMAT_CBOR | typeof WIRE_FORMAT_PROTO;
|
|
140
|
+
export interface ProtoCodec {
|
|
141
|
+
encode(message: Message): Uint8Array;
|
|
142
|
+
decode(data: Uint8Array): Message;
|
|
143
|
+
}
|
|
144
|
+
export declare function setProtoCodec(codec: ProtoCodec): void;
|
|
145
|
+
export declare function getProtoCodec(): ProtoCodec | null;
|
|
146
|
+
/**
|
|
147
|
+
* Encode a message to a framed buffer.
|
|
148
|
+
* Frame format: [4 bytes big-endian length][CBOR payload]
|
|
149
|
+
*/
|
|
150
|
+
export declare function encodeFrame(message: Message): Uint8Array;
|
|
151
|
+
/**
|
|
152
|
+
* Encode a message to a framed buffer with explicit wire format.
|
|
153
|
+
* - CBOR: [4-byte BE length][CBOR payload]
|
|
154
|
+
* - Proto: [0x01][4-byte BE length][proto payload]
|
|
155
|
+
*/
|
|
156
|
+
export declare function encodeFrameV2(message: Message, format?: WireFormat): Uint8Array;
|
|
157
|
+
/**
|
|
158
|
+
* Frame decoder for streaming data.
|
|
159
|
+
* Auto-detects CBOR v1 and proto v2 wire formats.
|
|
160
|
+
*/
|
|
161
|
+
export declare class FrameDecoder {
|
|
162
|
+
private buffer;
|
|
163
|
+
/**
|
|
164
|
+
* Push data into the decoder buffer.
|
|
165
|
+
* Returns decoded messages (may be empty if incomplete).
|
|
166
|
+
*/
|
|
167
|
+
push(data: Uint8Array): Message[];
|
|
168
|
+
/**
|
|
169
|
+
* Reset the decoder state.
|
|
170
|
+
*/
|
|
171
|
+
reset(): void;
|
|
172
|
+
/**
|
|
173
|
+
* Check if there's pending data in the buffer.
|
|
174
|
+
*/
|
|
175
|
+
get hasPending(): boolean;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Create a request message.
|
|
179
|
+
*/
|
|
180
|
+
export declare function createRequest(method: string, params?: Record<string, unknown>, id?: string): RequestMessage;
|
|
181
|
+
/**
|
|
182
|
+
* Create a success response.
|
|
183
|
+
*/
|
|
184
|
+
export declare function createResponse(id: string, result?: unknown): SuccessResponse;
|
|
185
|
+
/**
|
|
186
|
+
* Create an error response.
|
|
187
|
+
*/
|
|
188
|
+
export declare function createErrorResponse(id: string, code: ErrorCode | string, message: string, data?: unknown): ErrorResponse;
|
|
189
|
+
/**
|
|
190
|
+
* Create a stream message.
|
|
191
|
+
*/
|
|
192
|
+
export declare function createStream(id: string, channel: string, data: unknown, done?: boolean): StreamMessage;
|
|
193
|
+
/**
|
|
194
|
+
* Create an event message.
|
|
195
|
+
*/
|
|
196
|
+
export declare function createEvent(event: string, payload?: unknown): EventMessage;
|
|
197
|
+
export declare function isRequest(msg: Message): msg is RequestMessage;
|
|
198
|
+
export declare function isResponse(msg: Message): msg is ResponseMessage;
|
|
199
|
+
export declare function isSuccessResponse(msg: Message): msg is SuccessResponse;
|
|
200
|
+
export declare function isErrorResponse(msg: Message): msg is ErrorResponse;
|
|
201
|
+
export declare function isStream(msg: Message): msg is StreamMessage;
|
|
202
|
+
export declare function isEvent(msg: Message): msg is EventMessage;
|
|
203
|
+
export {};
|
|
204
|
+
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/cluster/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wire protocol for inter-process and inter-node communication.
|
|
3
|
+
* Frame format: [4 bytes big-endian length][CBOR payload]
|
|
4
|
+
*/
|
|
5
|
+
import { encode, decode } from 'cbor-x';
|
|
6
|
+
/** CBOR wire format (default for local CLI communication) */
|
|
7
|
+
export const PROTOCOL_V1_CBOR = 1;
|
|
8
|
+
/** Proto wire format (v2 for inter-node cluster communication) */
|
|
9
|
+
export const PROTOCOL_V2_PROTO = 2;
|
|
10
|
+
export const PROTOCOL_VERSION = PROTOCOL_V1_CBOR;
|
|
11
|
+
/**
|
|
12
|
+
* Wire format version markers.
|
|
13
|
+
* First byte of the frame header indicates the encoding format:
|
|
14
|
+
* - 0x00: CBOR v1 (4-byte BE length + CBOR payload)
|
|
15
|
+
* - 0x01: Proto v2 (1-byte version + 4-byte BE length + proto payload)
|
|
16
|
+
*/
|
|
17
|
+
export const WIRE_FORMAT_CBOR = 0x00;
|
|
18
|
+
export const WIRE_FORMAT_PROTO = 0x01;
|
|
19
|
+
export const ErrorCodes = {
|
|
20
|
+
// Protocol errors
|
|
21
|
+
PARSE_ERROR: 'PARSE_ERROR',
|
|
22
|
+
INVALID_MESSAGE: 'INVALID_MESSAGE',
|
|
23
|
+
UNSUPPORTED_VERSION: 'UNSUPPORTED_VERSION',
|
|
24
|
+
// Method errors
|
|
25
|
+
METHOD_NOT_FOUND: 'METHOD_NOT_FOUND',
|
|
26
|
+
INVALID_PARAMS: 'INVALID_PARAMS',
|
|
27
|
+
// Authentication errors
|
|
28
|
+
AUTH_REQUIRED: 'AUTH_REQUIRED',
|
|
29
|
+
AUTH_FAILED: 'AUTH_FAILED',
|
|
30
|
+
PERMISSION_DENIED: 'PERMISSION_DENIED',
|
|
31
|
+
// Execution errors
|
|
32
|
+
INTERNAL_ERROR: 'INTERNAL_ERROR',
|
|
33
|
+
TIMEOUT: 'TIMEOUT',
|
|
34
|
+
CANCELLED: 'CANCELLED',
|
|
35
|
+
};
|
|
36
|
+
export const Methods = {
|
|
37
|
+
// CLI commands
|
|
38
|
+
CLI_INVOKE: 'cli.invoke',
|
|
39
|
+
CLI_LIST: 'cli.list',
|
|
40
|
+
// System management
|
|
41
|
+
SYSTEM_HEALTH: 'system.health',
|
|
42
|
+
SYSTEM_INFO: 'system.info',
|
|
43
|
+
SYSTEM_SHUTDOWN: 'system.shutdown',
|
|
44
|
+
SYSTEM_RELOAD: 'system.reload',
|
|
45
|
+
// Authentication
|
|
46
|
+
AUTH_HANDSHAKE: 'auth.handshake',
|
|
47
|
+
AUTH_CHALLENGE: 'auth.challenge',
|
|
48
|
+
AUTH_VERIFY: 'auth.verify',
|
|
49
|
+
MESH_DISCOVER: 'mesh.discover',
|
|
50
|
+
MESH_JOIN: 'mesh.join',
|
|
51
|
+
MESH_LEAVE: 'mesh.leave',
|
|
52
|
+
MESH_ROUTE: 'mesh.route',
|
|
53
|
+
};
|
|
54
|
+
const LENGTH_SIZE = 4;
|
|
55
|
+
const MAX_MESSAGE_SIZE = 16 * 1024 * 1024; // 16MB max
|
|
56
|
+
let protoCodec = null;
|
|
57
|
+
export function setProtoCodec(codec) {
|
|
58
|
+
protoCodec = codec;
|
|
59
|
+
}
|
|
60
|
+
export function getProtoCodec() {
|
|
61
|
+
return protoCodec;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Encode a message to a framed buffer.
|
|
65
|
+
* Frame format: [4 bytes big-endian length][CBOR payload]
|
|
66
|
+
*/
|
|
67
|
+
export function encodeFrame(message) {
|
|
68
|
+
const payload = encode(message);
|
|
69
|
+
const frame = new Uint8Array(LENGTH_SIZE + payload.length);
|
|
70
|
+
const view = new DataView(frame.buffer);
|
|
71
|
+
view.setUint32(0, payload.length, false); // big-endian
|
|
72
|
+
frame.set(payload, LENGTH_SIZE);
|
|
73
|
+
return frame;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Encode a message to a framed buffer with explicit wire format.
|
|
77
|
+
* - CBOR: [4-byte BE length][CBOR payload]
|
|
78
|
+
* - Proto: [0x01][4-byte BE length][proto payload]
|
|
79
|
+
*/
|
|
80
|
+
export function encodeFrameV2(message, format = WIRE_FORMAT_CBOR) {
|
|
81
|
+
if (format === WIRE_FORMAT_PROTO) {
|
|
82
|
+
if (!protoCodec) {
|
|
83
|
+
throw new Error('Proto codec not registered. Call setProtoCodec() first.');
|
|
84
|
+
}
|
|
85
|
+
const payload = protoCodec.encode(message);
|
|
86
|
+
const frame = new Uint8Array(1 + LENGTH_SIZE + payload.length);
|
|
87
|
+
const view = new DataView(frame.buffer);
|
|
88
|
+
frame[0] = WIRE_FORMAT_PROTO;
|
|
89
|
+
view.setUint32(1, payload.length, false);
|
|
90
|
+
frame.set(payload, 1 + LENGTH_SIZE);
|
|
91
|
+
return frame;
|
|
92
|
+
}
|
|
93
|
+
// CBOR v1 (default)
|
|
94
|
+
return encodeFrame(message);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Frame decoder for streaming data.
|
|
98
|
+
* Auto-detects CBOR v1 and proto v2 wire formats.
|
|
99
|
+
*/
|
|
100
|
+
export class FrameDecoder {
|
|
101
|
+
buffer = new Uint8Array(0);
|
|
102
|
+
/**
|
|
103
|
+
* Push data into the decoder buffer.
|
|
104
|
+
* Returns decoded messages (may be empty if incomplete).
|
|
105
|
+
*/
|
|
106
|
+
push(data) {
|
|
107
|
+
// Append to buffer
|
|
108
|
+
const newBuffer = new Uint8Array(this.buffer.length + data.length);
|
|
109
|
+
newBuffer.set(this.buffer);
|
|
110
|
+
newBuffer.set(data, this.buffer.length);
|
|
111
|
+
this.buffer = newBuffer;
|
|
112
|
+
const messages = [];
|
|
113
|
+
while (this.buffer.length >= LENGTH_SIZE) {
|
|
114
|
+
// Wire format is discriminated by the first byte:
|
|
115
|
+
// 0x00 -> CBOR v1: first byte is the high byte of the 4-byte BE length,
|
|
116
|
+
// which must be 0x00 because MAX_MESSAGE_SIZE is 16MB
|
|
117
|
+
// (0x01_00_00_00) - a valid CBOR length fits in 24 bits.
|
|
118
|
+
// 0x01 -> Proto v2: explicit marker tag, followed by 4-byte BE length.
|
|
119
|
+
// Any other value is invalid on the wire. This lets us run the oversize
|
|
120
|
+
// guard on CBOR frames: a first byte >= 0x01 with the CBOR layout would
|
|
121
|
+
// decode to a length >= 16MB, so we surface that as "too large" before
|
|
122
|
+
// the codec branch instead of leaving it to ambiguous auto-detect.
|
|
123
|
+
const firstByte = this.buffer[0];
|
|
124
|
+
if (firstByte === WIRE_FORMAT_PROTO) {
|
|
125
|
+
// Proto v2: [0x01][4 bytes BE length][proto payload]
|
|
126
|
+
if (this.buffer.length < 1 + LENGTH_SIZE)
|
|
127
|
+
break;
|
|
128
|
+
const view = new DataView(this.buffer.buffer, this.buffer.byteOffset);
|
|
129
|
+
const payloadLength = view.getUint32(1, false);
|
|
130
|
+
if (payloadLength > MAX_MESSAGE_SIZE) {
|
|
131
|
+
throw new Error(`Message too large: ${payloadLength} bytes`);
|
|
132
|
+
}
|
|
133
|
+
const frameLength = 1 + LENGTH_SIZE + payloadLength;
|
|
134
|
+
if (this.buffer.length < frameLength)
|
|
135
|
+
break;
|
|
136
|
+
if (!protoCodec) {
|
|
137
|
+
throw new Error('Received proto-encoded frame but no proto codec registered');
|
|
138
|
+
}
|
|
139
|
+
const payload = this.buffer.slice(1 + LENGTH_SIZE, frameLength);
|
|
140
|
+
messages.push(protoCodec.decode(payload));
|
|
141
|
+
this.buffer = this.buffer.slice(frameLength);
|
|
142
|
+
}
|
|
143
|
+
else if (firstByte === WIRE_FORMAT_CBOR) {
|
|
144
|
+
// CBOR v1: [4-byte BE length][CBOR payload]
|
|
145
|
+
// First byte must be 0x00 for a valid CBOR frame because the length
|
|
146
|
+
// is bounded by MAX_MESSAGE_SIZE (16MB) which fits in 24 bits.
|
|
147
|
+
const view = new DataView(this.buffer.buffer, this.buffer.byteOffset);
|
|
148
|
+
const payloadLength = view.getUint32(0, false);
|
|
149
|
+
if (payloadLength > MAX_MESSAGE_SIZE) {
|
|
150
|
+
throw new Error(`Message too large: ${payloadLength} bytes`);
|
|
151
|
+
}
|
|
152
|
+
const frameLength = LENGTH_SIZE + payloadLength;
|
|
153
|
+
if (this.buffer.length < frameLength)
|
|
154
|
+
break;
|
|
155
|
+
const payload = this.buffer.slice(LENGTH_SIZE, frameLength);
|
|
156
|
+
messages.push(decode(payload));
|
|
157
|
+
this.buffer = this.buffer.slice(frameLength);
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
// A first byte other than 0x00 (CBOR) or 0x01 (proto) is not a
|
|
161
|
+
// valid frame - surface as "too large" to match the oversize guard path.
|
|
162
|
+
const view = new DataView(this.buffer.buffer, this.buffer.byteOffset);
|
|
163
|
+
const payloadLength = view.getUint32(0, false);
|
|
164
|
+
throw new Error(`Message too large: ${payloadLength} bytes`);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return messages;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Reset the decoder state.
|
|
171
|
+
*/
|
|
172
|
+
reset() {
|
|
173
|
+
this.buffer = new Uint8Array(0);
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Check if there's pending data in the buffer.
|
|
177
|
+
*/
|
|
178
|
+
get hasPending() {
|
|
179
|
+
return this.buffer.length > 0;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
let messageCounter = 0;
|
|
183
|
+
function generateId() {
|
|
184
|
+
return `${Date.now().toString(36)}-${(++messageCounter).toString(36)}`;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Create a request message.
|
|
188
|
+
*/
|
|
189
|
+
export function createRequest(method, params, id) {
|
|
190
|
+
return {
|
|
191
|
+
v: PROTOCOL_VERSION,
|
|
192
|
+
id: id ?? generateId(),
|
|
193
|
+
type: 'request',
|
|
194
|
+
method,
|
|
195
|
+
params,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Create a success response.
|
|
200
|
+
*/
|
|
201
|
+
export function createResponse(id, result) {
|
|
202
|
+
return {
|
|
203
|
+
v: PROTOCOL_VERSION,
|
|
204
|
+
id,
|
|
205
|
+
type: 'response',
|
|
206
|
+
ok: true,
|
|
207
|
+
result,
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Create an error response.
|
|
212
|
+
*/
|
|
213
|
+
export function createErrorResponse(id, code, message, data) {
|
|
214
|
+
return {
|
|
215
|
+
v: PROTOCOL_VERSION,
|
|
216
|
+
id,
|
|
217
|
+
type: 'response',
|
|
218
|
+
ok: false,
|
|
219
|
+
error: { code, message, data },
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
const streamSeqCounters = new Map();
|
|
223
|
+
/**
|
|
224
|
+
* Create a stream message.
|
|
225
|
+
*/
|
|
226
|
+
export function createStream(id, channel, data, done = false) {
|
|
227
|
+
const key = `${id}:${channel}`;
|
|
228
|
+
const seq = (streamSeqCounters.get(key) ?? 0) + 1;
|
|
229
|
+
if (done) {
|
|
230
|
+
streamSeqCounters.delete(key);
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
streamSeqCounters.set(key, seq);
|
|
234
|
+
}
|
|
235
|
+
return {
|
|
236
|
+
v: PROTOCOL_VERSION,
|
|
237
|
+
id,
|
|
238
|
+
type: 'stream',
|
|
239
|
+
channel,
|
|
240
|
+
data,
|
|
241
|
+
done,
|
|
242
|
+
seq,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Create an event message.
|
|
247
|
+
*/
|
|
248
|
+
export function createEvent(event, payload) {
|
|
249
|
+
return {
|
|
250
|
+
v: PROTOCOL_VERSION,
|
|
251
|
+
type: 'event',
|
|
252
|
+
event,
|
|
253
|
+
payload,
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
export function isRequest(msg) {
|
|
257
|
+
return msg.type === 'request';
|
|
258
|
+
}
|
|
259
|
+
export function isResponse(msg) {
|
|
260
|
+
return msg.type === 'response';
|
|
261
|
+
}
|
|
262
|
+
export function isSuccessResponse(msg) {
|
|
263
|
+
return msg.type === 'response' && msg.ok === true;
|
|
264
|
+
}
|
|
265
|
+
export function isErrorResponse(msg) {
|
|
266
|
+
return msg.type === 'response' && msg.ok === false;
|
|
267
|
+
}
|
|
268
|
+
export function isStream(msg) {
|
|
269
|
+
return msg.type === 'stream';
|
|
270
|
+
}
|
|
271
|
+
export function isEvent(msg) {
|
|
272
|
+
return msg.type === 'event';
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/cluster/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScheduledTask Route Builder
|
|
3
|
+
*
|
|
4
|
+
* Provides the builder pattern for scheduled task routes.
|
|
5
|
+
*/
|
|
6
|
+
import type { z } from 'zod';
|
|
7
|
+
import type { ScheduledTaskContext, ScheduledTaskRouteBuilder } from './types.js';
|
|
8
|
+
/** Symbols for scheduled task metadata (preserved through controller compilation) */
|
|
9
|
+
export declare const SCHEDULED_TASK_NAMESPACE: unique symbol;
|
|
10
|
+
export declare const SCHEDULED_TASK_TYPE: unique symbol;
|
|
11
|
+
export declare const SCHEDULED_TASK_QUALIFIED_NAME: unique symbol;
|
|
12
|
+
export declare const SCHEDULED_TASK_PAYLOAD_SCHEMA: unique symbol;
|
|
13
|
+
/** Read the qualified name from a scheduled task route. */
|
|
14
|
+
export declare function getScheduledTaskQualifiedName(route: unknown): string | undefined;
|
|
15
|
+
/** Read the payload schema from a scheduled task route. */
|
|
16
|
+
export declare function getScheduledTaskPayloadSchema(route: unknown): z.ZodType | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Create a scheduled task route builder.
|
|
19
|
+
*
|
|
20
|
+
* @param namespace - Task namespace (e.g., 'process', 'email')
|
|
21
|
+
* @param type - Task type within namespace (e.g., 'delay', 'reminder')
|
|
22
|
+
*/
|
|
23
|
+
export declare function createScheduledTaskRouteBuilder<TDeps, TPayload = unknown>(namespace: string, type: string): ScheduledTaskRouteBuilder<TDeps, TPayload, ScheduledTaskContext<TDeps, TPayload>>;
|
|
24
|
+
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/cluster/scheduled-task/builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EACV,oBAAoB,EAEpB,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAEpB,qFAAqF;AACrF,eAAO,MAAM,wBAAwB,eAAoC,CAAC;AAC1E,eAAO,MAAM,mBAAmB,eAA+B,CAAC;AAChE,eAAO,MAAM,6BAA6B,eAAwC,CAAC;AACnF,eAAO,MAAM,6BAA6B,eAAwC,CAAC;AAEnF,2DAA2D;AAC3D,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAEhF;AAED,2DAA2D;AAC3D,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,SAAS,CAEnF;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EACL,QAAQ,GAAG,OAAO,EAElB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,yBAAyB,CAAC,KAAK,EAAE,QAAQ,EAAE,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CA0CnF"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScheduledTask Route Builder
|
|
3
|
+
*
|
|
4
|
+
* Provides the builder pattern for scheduled task routes.
|
|
5
|
+
*/
|
|
6
|
+
/** Symbols for scheduled task metadata (preserved through controller compilation) */
|
|
7
|
+
export const SCHEDULED_TASK_NAMESPACE = Symbol('scheduledTask:namespace');
|
|
8
|
+
export const SCHEDULED_TASK_TYPE = Symbol('scheduledTask:type');
|
|
9
|
+
export const SCHEDULED_TASK_QUALIFIED_NAME = Symbol('scheduledTask:qualifiedName');
|
|
10
|
+
export const SCHEDULED_TASK_PAYLOAD_SCHEMA = Symbol('scheduledTask:payloadSchema');
|
|
11
|
+
/** Read the qualified name from a scheduled task route. */
|
|
12
|
+
export function getScheduledTaskQualifiedName(route) {
|
|
13
|
+
return route?.[SCHEDULED_TASK_QUALIFIED_NAME];
|
|
14
|
+
}
|
|
15
|
+
/** Read the payload schema from a scheduled task route. */
|
|
16
|
+
export function getScheduledTaskPayloadSchema(route) {
|
|
17
|
+
return route?.[SCHEDULED_TASK_PAYLOAD_SCHEMA];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Create a scheduled task route builder.
|
|
21
|
+
*
|
|
22
|
+
* @param namespace - Task namespace (e.g., 'process', 'email')
|
|
23
|
+
* @param type - Task type within namespace (e.g., 'delay', 'reminder')
|
|
24
|
+
*/
|
|
25
|
+
export function createScheduledTaskRouteBuilder(namespace, type) {
|
|
26
|
+
const steps = [];
|
|
27
|
+
let payloadSchema;
|
|
28
|
+
const builder = {
|
|
29
|
+
payload(schema) {
|
|
30
|
+
payloadSchema = schema;
|
|
31
|
+
return builder;
|
|
32
|
+
},
|
|
33
|
+
use(middleware) {
|
|
34
|
+
steps.push({ type: 'use', fn: middleware });
|
|
35
|
+
return builder;
|
|
36
|
+
},
|
|
37
|
+
guard(check) {
|
|
38
|
+
steps.push({ type: 'guard', fn: check });
|
|
39
|
+
return builder;
|
|
40
|
+
},
|
|
41
|
+
handle(handler) {
|
|
42
|
+
const qualifiedName = `${namespace}.${type}`;
|
|
43
|
+
const route = {
|
|
44
|
+
method: 'SCHEDULED_TASK',
|
|
45
|
+
path: qualifiedName,
|
|
46
|
+
namespace,
|
|
47
|
+
type,
|
|
48
|
+
qualifiedName,
|
|
49
|
+
payloadSchema,
|
|
50
|
+
steps: [...steps],
|
|
51
|
+
responseSchemas: new Map(),
|
|
52
|
+
handler,
|
|
53
|
+
[SCHEDULED_TASK_NAMESPACE]: namespace,
|
|
54
|
+
[SCHEDULED_TASK_TYPE]: type,
|
|
55
|
+
[SCHEDULED_TASK_QUALIFIED_NAME]: qualifiedName,
|
|
56
|
+
[SCHEDULED_TASK_PAYLOAD_SCHEMA]: payloadSchema,
|
|
57
|
+
};
|
|
58
|
+
return route;
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
return builder;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/cluster/scheduled-task/builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,qFAAqF;AACrF,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAC;AACnF,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAC;AAEnF,2DAA2D;AAC3D,MAAM,UAAU,6BAA6B,CAAC,KAAc;IAC1D,OAAQ,KAAiC,EAAE,CAAC,6BAA6B,CAAuB,CAAC;AACnG,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,6BAA6B,CAAC,KAAc;IAC1D,OAAQ,KAAiC,EAAE,CAAC,6BAA6B,CAA0B,CAAC;AACtG,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B,CAI7C,SAAiB,EACjB,IAAY;IAEZ,MAAM,KAAK,GAAyC,EAAE,CAAC;IACvD,IAAI,aAAoC,CAAC;IAEzC,MAAM,OAAO,GAAsF;QACjG,OAAO,CAAC,MAAM;YACZ,aAAa,GAAG,MAAM,CAAC;YACvB,OAAO,OAAc,CAAC;QACxB,CAAC;QAED,GAAG,CAAC,UAAU;YACZ,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;YAC5C,OAAO,OAAc,CAAC;QACxB,CAAC;QAED,KAAK,CAAC,KAAK;YACT,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACzC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,CAAC,OAAO;YACZ,MAAM,aAAa,GAAG,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG;gBACZ,MAAM,EAAE,gBAAgB;gBACxB,IAAI,EAAE,aAAa;gBACnB,SAAS;gBACT,IAAI;gBACJ,aAAa;gBACb,aAAa;gBACb,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;gBACjB,eAAe,EAAE,IAAI,GAAG,EAAE;gBAC1B,OAAO;gBACP,CAAC,wBAAwB,CAAC,EAAE,SAAS;gBACrC,CAAC,mBAAmB,CAAC,EAAE,IAAI;gBAC3B,CAAC,6BAA6B,CAAC,EAAE,aAAa;gBAC9C,CAAC,6BAA6B,CAAC,EAAE,aAAa;aACL,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
|