@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,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @example
|
|
3
|
+
* ```ts
|
|
4
|
+
* import { defineApp } from '@justscale/core';
|
|
5
|
+
*
|
|
6
|
+
* export default defineApp(import.meta, (env) =>
|
|
7
|
+
* JustScale()
|
|
8
|
+
* .add(env)
|
|
9
|
+
* .add(PostgresFeature)
|
|
10
|
+
* .add(OrderController)
|
|
11
|
+
* );
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
import type { Environment } from '../features/environment/types.js';
|
|
15
|
+
/** User factory: `(env) => builder`. May be sync or async. */
|
|
16
|
+
export type AppFactory<TEnv extends Environment, TBuilder> = (env: TEnv) => TBuilder | Promise<TBuilder>;
|
|
17
|
+
/**
|
|
18
|
+
* Callable returned by `defineApp`. Called with no args, loads env automatically.
|
|
19
|
+
* Pass an explicit Environment to skip loading (useful in tests).
|
|
20
|
+
*/
|
|
21
|
+
export interface DefinedApp<TEnv extends Environment, TBuilder> {
|
|
22
|
+
(env?: TEnv): Promise<TBuilder>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Define an application's entrypoint.
|
|
26
|
+
*
|
|
27
|
+
* Returns a callable the CLI and tests can import and invoke.
|
|
28
|
+
* When the calling module is the Node entrypoint (`argv[1]`), schedules
|
|
29
|
+
* an autorun: builds, compiles, awaits ready, then dispatches `Cli.run`
|
|
30
|
+
* (if invoked with CLI args) or `BuiltApp.serve()`.
|
|
31
|
+
*/
|
|
32
|
+
export declare function defineApp<TEnv extends Environment, TBuilder>(meta: ImportMeta | {
|
|
33
|
+
url: string;
|
|
34
|
+
}, factory: AppFactory<TEnv, TBuilder>): DefinedApp<TEnv, TBuilder>;
|
|
35
|
+
//# sourceMappingURL=define-app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-app.d.ts","sourceRoot":"","sources":["../../src/cli/define-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAMpE,8DAA8D;AAC9D,MAAM,MAAM,UAAU,CAAC,IAAI,SAAS,WAAW,EAAE,QAAQ,IAAI,CAC3D,GAAG,EAAE,IAAI,KACN,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAElC;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,IAAI,SAAS,WAAW,EAAE,QAAQ;IAC5D,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,IAAI,SAAS,WAAW,EAAE,QAAQ,EAC1D,IAAI,EAAE,UAAU,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAClC,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,GAClC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @example
|
|
3
|
+
* ```ts
|
|
4
|
+
* import { defineApp } from '@justscale/core';
|
|
5
|
+
*
|
|
6
|
+
* export default defineApp(import.meta, (env) =>
|
|
7
|
+
* JustScale()
|
|
8
|
+
* .add(env)
|
|
9
|
+
* .add(PostgresFeature)
|
|
10
|
+
* .add(OrderController)
|
|
11
|
+
* );
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
import { realpathSync } from 'node:fs';
|
|
15
|
+
import { fileURLToPath } from 'node:url';
|
|
16
|
+
import { loadEnvironment } from '../features/environment/load.js';
|
|
17
|
+
import { setCurrentApp } from './current-app.js';
|
|
18
|
+
let autorunFired = false;
|
|
19
|
+
export function defineApp(meta, factory) {
|
|
20
|
+
const callable = (async (envOverride) => {
|
|
21
|
+
const env = envOverride ?? (await loadEnvironment({ from: meta }));
|
|
22
|
+
return await factory(env);
|
|
23
|
+
});
|
|
24
|
+
if (isEntrypoint(meta) && !autorunFired) {
|
|
25
|
+
autorunFired = true;
|
|
26
|
+
// Don't block the caller's module evaluation - schedule a microtask.
|
|
27
|
+
void (async () => {
|
|
28
|
+
try {
|
|
29
|
+
const env = (await loadEnvironment({ from: meta }));
|
|
30
|
+
const builderLike = await callable(env);
|
|
31
|
+
const built = builderLike.build();
|
|
32
|
+
const app = built.compile();
|
|
33
|
+
await app.ready;
|
|
34
|
+
setCurrentApp({
|
|
35
|
+
callable: callable,
|
|
36
|
+
env: env,
|
|
37
|
+
entryUrl: meta.url,
|
|
38
|
+
app: app,
|
|
39
|
+
});
|
|
40
|
+
const { Cli } = await import('./factory.js');
|
|
41
|
+
if (Cli.isCommandLineRun()) {
|
|
42
|
+
await Cli.run(app);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const noSocket = process.env.JUSTSCALE_NO_SOCKET === '1'
|
|
46
|
+
|| process.env.JUSTSCALE_NO_SOCKET === 'true';
|
|
47
|
+
const socketPath = process.env.JUSTSCALE_SOCKET_PATH;
|
|
48
|
+
await built.serve(noSocket ? { noSocket: true } : socketPath ? { socketPath } : undefined);
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
setImmediate(() => {
|
|
52
|
+
throw err;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
})();
|
|
56
|
+
}
|
|
57
|
+
return callable;
|
|
58
|
+
}
|
|
59
|
+
function isEntrypoint(meta) {
|
|
60
|
+
const entrypointArg = process.argv[1];
|
|
61
|
+
if (!entrypointArg)
|
|
62
|
+
return false;
|
|
63
|
+
let metaPath;
|
|
64
|
+
try {
|
|
65
|
+
metaPath = fileURLToPath(meta.url);
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
let entrypointReal;
|
|
71
|
+
try {
|
|
72
|
+
entrypointReal = realpathSync(entrypointArg);
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
entrypointReal = entrypointArg;
|
|
76
|
+
}
|
|
77
|
+
return metaPath === entrypointArg || metaPath === entrypointReal;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=define-app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-app.js","sourceRoot":"","sources":["../../src/cli/define-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGlE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,IAAI,YAAY,GAAG,KAAK,CAAC;AA2BzB,MAAM,UAAU,SAAS,CACvB,IAAkC,EAClC,OAAmC;IAEnC,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,WAAkB,EAAE,EAAE;QAC7C,MAAM,GAAG,GAAG,WAAW,IAAK,CAAC,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAU,CAAC;QAC7E,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC,CAA+B,CAAC;IAEjC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QACxC,YAAY,GAAG,IAAI,CAAC;QACpB,qEAAqE;QACrE,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,CAAC,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAS,CAAC;gBAC5D,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAExC,MAAM,KAAK,GAAI,WAAwC,CAAC,KAAK,EAG5D,CAAC;gBACF,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC5B,MAAM,GAAG,CAAC,KAAK,CAAC;gBAEhB,aAAa,CAAC;oBACZ,QAAQ,EAAE,QAA6D;oBACvE,GAAG,EAAE,GAAkB;oBACvB,QAAQ,EAAE,IAAI,CAAC,GAAG;oBAClB,GAAG,EAAE,GAAU;iBAChB,CAAC,CAAC;gBAEH,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;gBAC7C,IAAI,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC;oBAC3B,MAAM,GAAG,CAAC,GAAG,CAAC,GAAU,CAAC,CAAC;oBAC1B,OAAO;gBACT,CAAC;gBAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,GAAG;uBACnD,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,MAAM,CAAC;gBAChD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;gBACrD,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC7F,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,YAAY,CAAC,GAAG,EAAE;oBAChB,MAAM,GAAG,CAAC;gBACZ,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,IAAkC;IACtD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC;IAEjC,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,cAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,cAAc,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,cAAc,GAAG,aAAa,CAAC;IACjC,CAAC;IAED,OAAO,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,cAAc,CAAC;AACnE,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper for the standard "run only when invoked directly" entrypoint guard.
|
|
3
|
+
*
|
|
4
|
+
* Without this, importing a file that calls `main()` at module top level
|
|
5
|
+
* causes side effects during `just`-style command discovery. The guard
|
|
6
|
+
* checks whether the current file is the Node entrypoint (argv[1]) and
|
|
7
|
+
* only runs the function if so.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Run `fn` only when the calling module is the Node entrypoint.
|
|
11
|
+
*
|
|
12
|
+
* Pass `import.meta` (or an equivalent `{ url }` object) so the helper can
|
|
13
|
+
* compare the caller's file URL to `process.argv[1]`. When imported by
|
|
14
|
+
* another module (e.g. during CLI command discovery), `fn` is skipped.
|
|
15
|
+
*
|
|
16
|
+
* Errors thrown by `fn` are re-thrown so the process exits non-zero via
|
|
17
|
+
* Node's default unhandled-rejection behaviour.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* import { defineMain } from '@justscale/core'
|
|
22
|
+
*
|
|
23
|
+
* defineMain(import.meta, async () => {
|
|
24
|
+
* const env = await loadEnvironment({ from: import.meta })
|
|
25
|
+
* const app = createApp(env)
|
|
26
|
+
* await app.serve({ http: 3000 })
|
|
27
|
+
* })
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare function defineMain(meta: ImportMeta | {
|
|
31
|
+
url: string;
|
|
32
|
+
}, fn: () => void | Promise<void>): void;
|
|
33
|
+
//# sourceMappingURL=define-main.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-main.d.ts","sourceRoot":"","sources":["../../src/cli/define-main.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,UAAU,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAClC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC7B,IAAI,CAiCN"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper for the standard "run only when invoked directly" entrypoint guard.
|
|
3
|
+
*
|
|
4
|
+
* Without this, importing a file that calls `main()` at module top level
|
|
5
|
+
* causes side effects during `just`-style command discovery. The guard
|
|
6
|
+
* checks whether the current file is the Node entrypoint (argv[1]) and
|
|
7
|
+
* only runs the function if so.
|
|
8
|
+
*/
|
|
9
|
+
import { realpathSync } from 'node:fs';
|
|
10
|
+
import { fileURLToPath } from 'node:url';
|
|
11
|
+
/**
|
|
12
|
+
* Run `fn` only when the calling module is the Node entrypoint.
|
|
13
|
+
*
|
|
14
|
+
* Pass `import.meta` (or an equivalent `{ url }` object) so the helper can
|
|
15
|
+
* compare the caller's file URL to `process.argv[1]`. When imported by
|
|
16
|
+
* another module (e.g. during CLI command discovery), `fn` is skipped.
|
|
17
|
+
*
|
|
18
|
+
* Errors thrown by `fn` are re-thrown so the process exits non-zero via
|
|
19
|
+
* Node's default unhandled-rejection behaviour.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* import { defineMain } from '@justscale/core'
|
|
24
|
+
*
|
|
25
|
+
* defineMain(import.meta, async () => {
|
|
26
|
+
* const env = await loadEnvironment({ from: import.meta })
|
|
27
|
+
* const app = createApp(env)
|
|
28
|
+
* await app.serve({ http: 3000 })
|
|
29
|
+
* })
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export function defineMain(meta, fn) {
|
|
33
|
+
const entrypointArg = process.argv[1];
|
|
34
|
+
if (!entrypointArg)
|
|
35
|
+
return;
|
|
36
|
+
let metaPath;
|
|
37
|
+
try {
|
|
38
|
+
metaPath = fileURLToPath(meta.url);
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
// Compare realpaths — `fileURLToPath(import.meta.url)` returns the
|
|
44
|
+
// canonical path, but `process.argv[1]` can be a symlinked path
|
|
45
|
+
// (e.g. `/tmp` vs `/private/tmp` on macOS). Both paths may not exist
|
|
46
|
+
// on disk (unit tests), so swallow ENOENT.
|
|
47
|
+
let entrypointReal;
|
|
48
|
+
try {
|
|
49
|
+
entrypointReal = realpathSync(entrypointArg);
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
entrypointReal = entrypointArg;
|
|
53
|
+
}
|
|
54
|
+
if (metaPath === entrypointArg || metaPath === entrypointReal) {
|
|
55
|
+
// Re-throw from a timer so errors escape any surrounding promise chain
|
|
56
|
+
// and trigger Node's uncaughtException handler → non-zero exit code.
|
|
57
|
+
void (async () => {
|
|
58
|
+
try {
|
|
59
|
+
await fn();
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
setImmediate(() => { throw err; });
|
|
63
|
+
}
|
|
64
|
+
})();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=define-main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-main.js","sourceRoot":"","sources":["../../src/cli/define-main.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,UAAU,CACxB,IAAkC,EAClC,EAA8B;IAE9B,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC,aAAa;QAAE,OAAO;IAE3B,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IAED,mEAAmE;IACnE,gEAAgE;IAChE,qEAAqE;IACrE,2CAA2C;IAC3C,IAAI,cAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,cAAc,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,cAAc,GAAG,aAAa,CAAC;IACjC,CAAC;IAED,IAAI,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;QAC9D,uEAAuE;QACvE,qEAAqE;QACrE,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,MAAM,EAAE,EAAE,CAAC;YACb,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,YAAY,CAAC,GAAG,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project configuration for the `just` CLI.
|
|
3
|
+
*
|
|
4
|
+
* Declares one app entry (optionally split by env.type), build settings,
|
|
5
|
+
* and environment configuration. Used in `justscale.config.ts`.
|
|
6
|
+
*
|
|
7
|
+
* @example Shorthand — one composition for every env
|
|
8
|
+
* ```typescript
|
|
9
|
+
* export default defineProject({
|
|
10
|
+
* app: () => import('./src/app.js'),
|
|
11
|
+
* })
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @example Split by env.type — dev.ts adds pglite + dev CLIs
|
|
15
|
+
* ```typescript
|
|
16
|
+
* export default defineProject({
|
|
17
|
+
* app: {
|
|
18
|
+
* default: () => import('./src/app.js'),
|
|
19
|
+
* development: () => import('./src/dev.js'),
|
|
20
|
+
* test: () => import('./src/dev.js'),
|
|
21
|
+
* },
|
|
22
|
+
* })
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
import type { EnvironmentType } from '../features/environment/types.js';
|
|
26
|
+
export interface EnvironmentConfig {
|
|
27
|
+
url: string;
|
|
28
|
+
ssh?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface BuildConfig {
|
|
31
|
+
outDir?: string;
|
|
32
|
+
target?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Files or globs to copy into the output directory alongside the bundled
|
|
35
|
+
* entry when running `just build --env <name>`. Useful for artifacts the
|
|
36
|
+
* deployed process needs at runtime but that don't live in the bundle
|
|
37
|
+
* (SQL migration files, OpenAPI specs, etc.). Paths are resolved relative
|
|
38
|
+
* to the directory containing `justscale.config.ts`.
|
|
39
|
+
*/
|
|
40
|
+
include?: string[];
|
|
41
|
+
/**
|
|
42
|
+
* Package specifiers to keep external (not bundled). Node builtins
|
|
43
|
+
* (`node:*`) are handled automatically. Use this for native modules
|
|
44
|
+
* with `.node` binaries (better-sqlite3, bcrypt, sharp, canvas) or
|
|
45
|
+
* any package that doesn't survive bundling. Anything not in this
|
|
46
|
+
* list is inlined into the output — that's what gives the deploy
|
|
47
|
+
* artifact real tree-shaking benefit.
|
|
48
|
+
*/
|
|
49
|
+
external?: string[];
|
|
50
|
+
}
|
|
51
|
+
/** Lazy import factory returning the user's app module. */
|
|
52
|
+
export type AppLoader = () => Promise<unknown>;
|
|
53
|
+
/**
|
|
54
|
+
* User-configurable app entry. Either a single loader (same composition
|
|
55
|
+
* for every env), or an object with a required `default` fallback and
|
|
56
|
+
* optional per-env overrides keyed by `env.type`.
|
|
57
|
+
*/
|
|
58
|
+
export type AppEntry = AppLoader | ({
|
|
59
|
+
default: AppLoader;
|
|
60
|
+
} & Partial<Record<EnvironmentType, AppLoader>>);
|
|
61
|
+
export interface ProjectConfig {
|
|
62
|
+
app: AppEntry;
|
|
63
|
+
build?: BuildConfig;
|
|
64
|
+
environments?: Record<string, EnvironmentConfig>;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Resolve the loader for a given env.type. Function-shorthand entries
|
|
68
|
+
* are returned as-is; object-form entries prefer the type-specific
|
|
69
|
+
* override and fall through to `default`.
|
|
70
|
+
*/
|
|
71
|
+
export declare function pickAppLoader(app: AppEntry, envType: EnvironmentType): AppLoader;
|
|
72
|
+
export declare function defineProject(config: ProjectConfig): ProjectConfig;
|
|
73
|
+
export declare function isProjectConfig(value: unknown): value is ProjectConfig;
|
|
74
|
+
/**
|
|
75
|
+
* Extract the file path argument from a lazy import loader like
|
|
76
|
+
* `() => import('./src/dev.js')`. Returns null if the loader uses a shape
|
|
77
|
+
* we can't introspect (computed specifiers, re-exports, dynamic paths).
|
|
78
|
+
* Shared by `just dev` and `just build` so both resolve the app entry the
|
|
79
|
+
* same way.
|
|
80
|
+
*/
|
|
81
|
+
export declare function extractLoaderPath(loader: AppLoader): string | null;
|
|
82
|
+
/**
|
|
83
|
+
* `config.app` uses `.js` suffixes even when the source is `.ts` (NodeNext
|
|
84
|
+
* resolution convention). Resolve to the actual source file that exists on
|
|
85
|
+
* disk, preferring the `.ts` variant when it's alongside the `.js` path.
|
|
86
|
+
*/
|
|
87
|
+
export declare function resolveSourcePath(baseDir: string, loaderPath: string): string | null;
|
|
88
|
+
/**
|
|
89
|
+
* Resolve the app entry source file for a given env.type. Returns null if
|
|
90
|
+
* the config doesn't point at a file the filesystem can produce.
|
|
91
|
+
*/
|
|
92
|
+
export declare function resolveAppEntry(configFileUrl: string, app: AppEntry, envType: EnvironmentType): string | null;
|
|
93
|
+
//# sourceMappingURL=define-project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-project.d.ts","sourceRoot":"","sources":["../../src/cli/define-project.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,2DAA2D;AAC3D,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AAE/C;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAChB,SAAS,GACT,CAAC;IAAE,OAAO,EAAE,SAAS,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAE3E,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,QAAQ,CAAA;IACb,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;CACjD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,eAAe,GACvB,SAAS,CAGX;AAID,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAElE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAIlE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQpF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,eAAe,GACvB,MAAM,GAAG,IAAI,CAMf"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project configuration for the `just` CLI.
|
|
3
|
+
*
|
|
4
|
+
* Declares one app entry (optionally split by env.type), build settings,
|
|
5
|
+
* and environment configuration. Used in `justscale.config.ts`.
|
|
6
|
+
*
|
|
7
|
+
* @example Shorthand — one composition for every env
|
|
8
|
+
* ```typescript
|
|
9
|
+
* export default defineProject({
|
|
10
|
+
* app: () => import('./src/app.js'),
|
|
11
|
+
* })
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @example Split by env.type — dev.ts adds pglite + dev CLIs
|
|
15
|
+
* ```typescript
|
|
16
|
+
* export default defineProject({
|
|
17
|
+
* app: {
|
|
18
|
+
* default: () => import('./src/app.js'),
|
|
19
|
+
* development: () => import('./src/dev.js'),
|
|
20
|
+
* test: () => import('./src/dev.js'),
|
|
21
|
+
* },
|
|
22
|
+
* })
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
import { existsSync } from 'node:fs';
|
|
26
|
+
import { dirname, resolve } from 'node:path';
|
|
27
|
+
import { fileURLToPath } from 'node:url';
|
|
28
|
+
/**
|
|
29
|
+
* Resolve the loader for a given env.type. Function-shorthand entries
|
|
30
|
+
* are returned as-is; object-form entries prefer the type-specific
|
|
31
|
+
* override and fall through to `default`.
|
|
32
|
+
*/
|
|
33
|
+
export function pickAppLoader(app, envType) {
|
|
34
|
+
if (typeof app === 'function')
|
|
35
|
+
return app;
|
|
36
|
+
return app[envType] ?? app.default;
|
|
37
|
+
}
|
|
38
|
+
const PROJECT_CONFIG_SYMBOL = Symbol('justscale.project-config');
|
|
39
|
+
export function defineProject(config) {
|
|
40
|
+
return Object.assign(config, { [PROJECT_CONFIG_SYMBOL]: true });
|
|
41
|
+
}
|
|
42
|
+
export function isProjectConfig(value) {
|
|
43
|
+
return typeof value === 'object' && value !== null && PROJECT_CONFIG_SYMBOL in value;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Extract the file path argument from a lazy import loader like
|
|
47
|
+
* `() => import('./src/dev.js')`. Returns null if the loader uses a shape
|
|
48
|
+
* we can't introspect (computed specifiers, re-exports, dynamic paths).
|
|
49
|
+
* Shared by `just dev` and `just build` so both resolve the app entry the
|
|
50
|
+
* same way.
|
|
51
|
+
*/
|
|
52
|
+
export function extractLoaderPath(loader) {
|
|
53
|
+
const src = loader.toString();
|
|
54
|
+
const match = src.match(/import\s*\(\s*['"`]([^'"`]+)['"`]\s*\)/);
|
|
55
|
+
return match?.[1] ?? null;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* `config.app` uses `.js` suffixes even when the source is `.ts` (NodeNext
|
|
59
|
+
* resolution convention). Resolve to the actual source file that exists on
|
|
60
|
+
* disk, preferring the `.ts` variant when it's alongside the `.js` path.
|
|
61
|
+
*/
|
|
62
|
+
export function resolveSourcePath(baseDir, loaderPath) {
|
|
63
|
+
const absolute = resolve(baseDir, loaderPath);
|
|
64
|
+
if (existsSync(absolute))
|
|
65
|
+
return absolute;
|
|
66
|
+
if (absolute.endsWith('.js')) {
|
|
67
|
+
const tsVariant = absolute.slice(0, -3) + '.ts';
|
|
68
|
+
if (existsSync(tsVariant))
|
|
69
|
+
return tsVariant;
|
|
70
|
+
}
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Resolve the app entry source file for a given env.type. Returns null if
|
|
75
|
+
* the config doesn't point at a file the filesystem can produce.
|
|
76
|
+
*/
|
|
77
|
+
export function resolveAppEntry(configFileUrl, app, envType) {
|
|
78
|
+
const loader = pickAppLoader(app, envType);
|
|
79
|
+
const loaderPath = extractLoaderPath(loader);
|
|
80
|
+
if (!loaderPath)
|
|
81
|
+
return null;
|
|
82
|
+
const configDir = dirname(fileURLToPath(configFileUrl));
|
|
83
|
+
return resolveSourcePath(configDir, loaderPath);
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=define-project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-project.js","sourceRoot":"","sources":["../../src/cli/define-project.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAgDzC;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAa,EACb,OAAwB;IAExB,IAAI,OAAO,GAAG,KAAK,UAAU;QAAE,OAAO,GAAG,CAAC;IAC1C,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC;AACrC,CAAC;AAED,MAAM,qBAAqB,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAEjE,MAAM,UAAU,aAAa,CAAC,MAAqB;IACjD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,qBAAqB,IAAI,KAAK,CAAC;AACvF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IACjD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAClE,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,UAAkB;IACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC9C,IAAI,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1C,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QAChD,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,aAAqB,EACrB,GAAa,EACb,OAAwB;IAExB,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;IACxD,OAAO,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dev server — runs the user's app entry with file watching and auto
|
|
3
|
+
* restart. Skips an explicit build step: tsx transforms TS on the fly,
|
|
4
|
+
* and `tsx watch` handles restart-on-change natively. In production
|
|
5
|
+
* users ship compiled JS via `just build` and run `node dist/app.js`.
|
|
6
|
+
*
|
|
7
|
+
* Entry selection mirrors `assembleCliApp`: load `justscale.config.ts`,
|
|
8
|
+
* resolve the active env, look up `config.app[env.type]` (falling back
|
|
9
|
+
* to `config.app.default`), and extract the file path from the loader.
|
|
10
|
+
* This way `just dev` in a `type: 'development'` env picks up `dev.ts`
|
|
11
|
+
* instead of `app.ts`, so pglite / in-memory channel overrides are
|
|
12
|
+
* hot-reloaded alongside the user's composition.
|
|
13
|
+
*/
|
|
14
|
+
interface DevServerOptions {
|
|
15
|
+
root: string;
|
|
16
|
+
log: (msg: string) => void;
|
|
17
|
+
}
|
|
18
|
+
export declare function startDevServer(options: DevServerOptions): Promise<void>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=dev-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-server.d.ts","sourceRoot":"","sources":["../../src/cli/dev-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAsBH,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAC3B;AA+CD,wBAAsB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqE7E"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dev server — runs the user's app entry with file watching and auto
|
|
3
|
+
* restart. Skips an explicit build step: tsx transforms TS on the fly,
|
|
4
|
+
* and `tsx watch` handles restart-on-change natively. In production
|
|
5
|
+
* users ship compiled JS via `just build` and run `node dist/app.js`.
|
|
6
|
+
*
|
|
7
|
+
* Entry selection mirrors `assembleCliApp`: load `justscale.config.ts`,
|
|
8
|
+
* resolve the active env, look up `config.app[env.type]` (falling back
|
|
9
|
+
* to `config.app.default`), and extract the file path from the loader.
|
|
10
|
+
* This way `just dev` in a `type: 'development'` env picks up `dev.ts`
|
|
11
|
+
* instead of `app.ts`, so pglite / in-memory channel overrides are
|
|
12
|
+
* hot-reloaded alongside the user's composition.
|
|
13
|
+
*/
|
|
14
|
+
import { spawn } from 'node:child_process';
|
|
15
|
+
import { existsSync } from 'node:fs';
|
|
16
|
+
import { dirname, join } from 'node:path';
|
|
17
|
+
import { loadEnvironment } from '../features/environment/load.js';
|
|
18
|
+
import { discover } from './discovery.js';
|
|
19
|
+
import { extractLoaderPath, pickAppLoader, resolveAppEntry } from './define-project.js';
|
|
20
|
+
function findBinDirs(start) {
|
|
21
|
+
const dirs = [];
|
|
22
|
+
let current = start;
|
|
23
|
+
while (true) {
|
|
24
|
+
const candidate = join(current, 'node_modules', '.bin');
|
|
25
|
+
if (existsSync(candidate))
|
|
26
|
+
dirs.push(candidate);
|
|
27
|
+
const parent = dirname(current);
|
|
28
|
+
if (parent === current)
|
|
29
|
+
break;
|
|
30
|
+
current = parent;
|
|
31
|
+
}
|
|
32
|
+
return dirs;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Legacy fallback: locate the app entry via conventional filenames.
|
|
36
|
+
* Used only when `justscale.config.ts` is absent or the loader path
|
|
37
|
+
* couldn't be extracted.
|
|
38
|
+
*/
|
|
39
|
+
function findServeEntry(root) {
|
|
40
|
+
const candidates = ['src/app.ts', 'src/main.ts', 'src/server.ts', 'src/serve.ts'];
|
|
41
|
+
for (const candidate of candidates) {
|
|
42
|
+
const fullPath = join(root, candidate);
|
|
43
|
+
if (existsSync(fullPath))
|
|
44
|
+
return fullPath;
|
|
45
|
+
}
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
async function pickEntry(root, log) {
|
|
49
|
+
const result = await discover();
|
|
50
|
+
if (!result || !result.config.app) {
|
|
51
|
+
log('[dev] No justscale.config.ts or config.app; falling back to filename search.');
|
|
52
|
+
return findServeEntry(root);
|
|
53
|
+
}
|
|
54
|
+
const env = await loadEnvironment({ from: { url: result.configFileUrl } });
|
|
55
|
+
const loader = pickAppLoader(result.config.app, env.type);
|
|
56
|
+
const loaderPath = extractLoaderPath(loader);
|
|
57
|
+
if (!loaderPath) {
|
|
58
|
+
log(`[dev] Could not extract an import path from config.app for env.type='${env.type}'. ` +
|
|
59
|
+
'Loader is not a simple `() => import(\'./src/xyz.js\')`. ' +
|
|
60
|
+
'Falling back to filename search.');
|
|
61
|
+
return findServeEntry(root);
|
|
62
|
+
}
|
|
63
|
+
const resolved = resolveAppEntry(result.configFileUrl, result.config.app, env.type);
|
|
64
|
+
if (!resolved) {
|
|
65
|
+
log(`[dev] config.app[${env.type}] points at '${loaderPath}', but neither that file nor its .ts variant exists.`);
|
|
66
|
+
return findServeEntry(root);
|
|
67
|
+
}
|
|
68
|
+
log(`[dev] env.type='${env.type}' → ${resolved}`);
|
|
69
|
+
return resolved;
|
|
70
|
+
}
|
|
71
|
+
export async function startDevServer(options) {
|
|
72
|
+
const { root, log } = options;
|
|
73
|
+
const entry = await pickEntry(root, log);
|
|
74
|
+
if (!entry) {
|
|
75
|
+
log('[dev] No app entry found. Expected a justscale.config.ts with an `app` entry, ' +
|
|
76
|
+
'or one of src/app.ts, src/main.ts, src/server.ts, src/serve.ts.');
|
|
77
|
+
process.exit(1);
|
|
78
|
+
}
|
|
79
|
+
log(`[dev] Starting ${entry}`);
|
|
80
|
+
// No `tsx watch` — the kernel starts an in-process HMR file watcher
|
|
81
|
+
// when NODE_ENV=development, which re-imports changed modules and
|
|
82
|
+
// calls `container.hotReload()` without restarting the process.
|
|
83
|
+
// That keeps pglite state, the HTTP listen socket, and lifecycle
|
|
84
|
+
// instances alive across edits.
|
|
85
|
+
//
|
|
86
|
+
// Loader chain: `@justscale/typescript/register` handles process +
|
|
87
|
+
// proto compilation; `tsx` handles the rest of the TS -> JS transform.
|
|
88
|
+
//
|
|
89
|
+
// PATH prepending is required so `tsx` resolves — Node's `spawn` uses
|
|
90
|
+
// the child's PATH (not the interactive shell's), so the project's
|
|
91
|
+
// node_modules/.bin must be made visible explicitly.
|
|
92
|
+
const sep = process.platform === 'win32' ? ';' : ':';
|
|
93
|
+
const pathPrefix = findBinDirs(root).join(sep);
|
|
94
|
+
const env = {
|
|
95
|
+
...process.env,
|
|
96
|
+
NODE_ENV: 'development',
|
|
97
|
+
PATH: pathPrefix
|
|
98
|
+
? `${pathPrefix}${sep}${process.env.PATH ?? ''}`
|
|
99
|
+
: (process.env.PATH ?? ''),
|
|
100
|
+
};
|
|
101
|
+
// The `@justscale/hmr/register` observer loader records every file
|
|
102
|
+
// URL the process loads. The in-process HMR watcher (started by the
|
|
103
|
+
// kernel when NODE_ENV=development) reads that set to decide which
|
|
104
|
+
// directories to watch and which service tokens to swap on change.
|
|
105
|
+
const proc = spawn('node', [
|
|
106
|
+
'--import',
|
|
107
|
+
'@justscale/typescript/register',
|
|
108
|
+
'--import',
|
|
109
|
+
'@justscale/hmr/register',
|
|
110
|
+
'--import',
|
|
111
|
+
'tsx',
|
|
112
|
+
entry,
|
|
113
|
+
], {
|
|
114
|
+
cwd: root,
|
|
115
|
+
stdio: 'inherit',
|
|
116
|
+
env,
|
|
117
|
+
});
|
|
118
|
+
const cleanup = () => {
|
|
119
|
+
if (!proc.killed)
|
|
120
|
+
proc.kill('SIGTERM');
|
|
121
|
+
};
|
|
122
|
+
process.once('SIGINT', cleanup);
|
|
123
|
+
process.once('SIGTERM', cleanup);
|
|
124
|
+
await new Promise((resolve) => {
|
|
125
|
+
proc.on('exit', (code) => {
|
|
126
|
+
process.exitCode = code ?? 0;
|
|
127
|
+
resolve();
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=dev-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-server.js","sourceRoot":"","sources":["../../src/cli/dev-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Discovery module — finds project config and package-contributed CLI controllers.
|
|
3
|
+
*
|
|
4
|
+
* Used by:
|
|
5
|
+
* - main.ts (CLI entry point)
|
|
6
|
+
* - mcp serve command
|
|
7
|
+
* - any future consumer that needs to discover the project structure
|
|
8
|
+
*/
|
|
9
|
+
import { type ProjectConfig } from './define-project.js';
|
|
10
|
+
export interface ProjectDiscoveryResult {
|
|
11
|
+
type: 'project';
|
|
12
|
+
config: ProjectConfig;
|
|
13
|
+
/** file:// URL of the loaded justscale.config.{ts,js} — used as the
|
|
14
|
+
* anchor for `loadEnvironment({ from })` so env resolution starts
|
|
15
|
+
* from the project root, not the (possibly workspace-level) cwd. */
|
|
16
|
+
configFileUrl: string;
|
|
17
|
+
}
|
|
18
|
+
export type DiscoveryResult = ProjectDiscoveryResult | null;
|
|
19
|
+
/**
|
|
20
|
+
* Discover a `justscale.config.ts` (defineProject result) in the current
|
|
21
|
+
* directory. Returns `null` if no config is present — callers fall back to
|
|
22
|
+
* built-in-only behaviour in that case.
|
|
23
|
+
*/
|
|
24
|
+
export declare function discover(): Promise<DiscoveryResult>;
|
|
25
|
+
/**
|
|
26
|
+
* Discover CLI controllers from dependencies that have a "justscale" field.
|
|
27
|
+
*/
|
|
28
|
+
export declare function discoverPackageCommands(): Promise<any[]>;
|
|
29
|
+
//# sourceMappingURL=discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/cli/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,KAAK,aAAa,EAAmB,MAAM,qBAAqB,CAAC;AAM1E,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,SAAS,CAAA;IACf,MAAM,EAAE,aAAa,CAAA;IACrB;;wEAEoE;IACpE,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,eAAe,GAAG,sBAAsB,GAAG,IAAI,CAAC;AAW5D;;;;GAIG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC,CAmBzD;AAMD;;GAEG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CA8C9D"}
|