@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,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @justscale/core/models
|
|
3
|
+
*
|
|
4
|
+
* Model definition and observable tracking for justscale.
|
|
5
|
+
*
|
|
6
|
+
* Provides:
|
|
7
|
+
* - defineModel() - Define typed models with field schemas
|
|
8
|
+
* - field - Field builders for model definitions
|
|
9
|
+
* - Reference/References - Promise-like references to other models
|
|
10
|
+
* - Persistent - Type helper for persisted models with storage fields
|
|
11
|
+
* - createObservable() - Creates standalone observable with dirty tracking
|
|
12
|
+
* - watch() - Watch for changes with callback or async iterator
|
|
13
|
+
*/
|
|
14
|
+
// Symbols
|
|
15
|
+
export {
|
|
16
|
+
// Legacy observable symbols (kept for compatibility)
|
|
17
|
+
MODEL_INTERNALS, OBSERVABLE_META,
|
|
18
|
+
// Reference symbols (SET_RESOLVER exported from reference/reference.js)
|
|
19
|
+
REFERENCE, REFERENCES, REF_ID, REF_IDS, REF_VALUE, REF_VALUES, REF_RESOLVER,
|
|
20
|
+
// Transient reference symbols
|
|
21
|
+
TRANSIENT_REF, TRANSIENT_TARGET,
|
|
22
|
+
// Instance state symbols (runtime type safety)
|
|
23
|
+
PERSISTENT, ADAPTER_KEY, LOCK,
|
|
24
|
+
// Internal storage symbols
|
|
25
|
+
FIELD_STORAGE, MODEL_CONTEXT,
|
|
26
|
+
// ModelRepository token symbols
|
|
27
|
+
MODEL_REPO_MODEL, MODEL_REPO_BASE_TOKEN, CREATE_MODEL_REPO, MODEL_REPO_CONTRACT, ACCESS_RULES, } from './symbols.js';
|
|
28
|
+
export { filterByAccess, getAccessRules } from './access.js';
|
|
29
|
+
// Re-export REPO_TOKEN from repository for convenience
|
|
30
|
+
export { REPO_TOKEN } from './repository.js';
|
|
31
|
+
// Model definition symbols
|
|
32
|
+
export { MODEL_DEF, MODEL_FIELDS, MODEL_NAME, MODEL_DATA, MODEL_METHODS, MODEL_INJECT, MODEL_SERVICE } from './define-model.js';
|
|
33
|
+
// Type guards for runtime checks
|
|
34
|
+
export { isPersistent, isLocked, isTransient } from './types.js';
|
|
35
|
+
// ============================================================================
|
|
36
|
+
// Model Definition (defineModel)
|
|
37
|
+
// ============================================================================
|
|
38
|
+
// Define models with typed fields
|
|
39
|
+
export { BaseModel, defineModel, isModelClass, getModelFields, getModelName, registerModelForInjection, getModelsWithInject, } from './define-model.js';
|
|
40
|
+
export { registerModelByName, getModelByName, getModelNameRegistry, } from './model-name-registry.js';
|
|
41
|
+
export { applyTypesConfig, registerModelRefResolver } from './apply-types-config.js';
|
|
42
|
+
// Field builders
|
|
43
|
+
export { field, isFieldDef, FIELD_DEF, } from './field.js';
|
|
44
|
+
// Stream fields
|
|
45
|
+
export { STREAM, SET_STREAM_CHANNEL, SET_STREAM_SIGNAL_EMITTER, StreamImpl, isStream } from './stream.js';
|
|
46
|
+
// Reference system
|
|
47
|
+
export { Reference, References, isReference, isReferences, SET_RESOLVER, HYDRATE } from './reference/reference.js';
|
|
48
|
+
// Transient references (for unsaved entities)
|
|
49
|
+
export { TransientRef, isTransientRef } from './reference/transient-ref.js';
|
|
50
|
+
// Zod with z.ref() for Ref<T> validation
|
|
51
|
+
export { z, zRef } from './zod-ref.js';
|
|
52
|
+
// ============================================================================
|
|
53
|
+
// Observable & Model Instance (legacy)
|
|
54
|
+
// ============================================================================
|
|
55
|
+
// Model instance creation (internal - for defining models, use @justscale/live-model)
|
|
56
|
+
export { getModelInternals, isModel } from './model.js';
|
|
57
|
+
// Observable creation (from @justscale/observable)
|
|
58
|
+
export { createObservable, getObservableInternals, isObservable } from './observable.js';
|
|
59
|
+
// Proxy utilities (for advanced use/testing)
|
|
60
|
+
export { createTrackedProxy, getProxyMeta, isTrackedProxy } from './proxy.js';
|
|
61
|
+
// Watch functionality (from @justscale/observable)
|
|
62
|
+
export { watch, } from './watch.js';
|
|
63
|
+
// ============================================================================
|
|
64
|
+
// Query System
|
|
65
|
+
// ============================================================================
|
|
66
|
+
// Query helpers namespace
|
|
67
|
+
export { q, CONDITION, AGGREGATION, isCondition, isAggregation, createFieldExpr, refId } from './query.js';
|
|
68
|
+
// Field expression classes
|
|
69
|
+
export { StringFieldExpr, NumberFieldExpr, BigIntFieldExpr, DecimalFieldExpr, BooleanFieldExpr, TimestampFieldExpr, UuidFieldExpr, EnumFieldExpr, RefFieldExpr, RefsFieldExpr, ArrayFieldExpr, JsonFieldExpr, ObjectFieldExpr, } from './query.js';
|
|
70
|
+
// Order by helpers
|
|
71
|
+
export { ORDER_BY, isOrderByItem } from './query.js';
|
|
72
|
+
// Ref traversal (permission multi-hop)
|
|
73
|
+
export { isRefTraversal } from './query.js';
|
|
74
|
+
// ============================================================================
|
|
75
|
+
// ModelRepository
|
|
76
|
+
// ============================================================================
|
|
77
|
+
export { ModelRepository, isModelRepositoryToken } from './model.repository.js';
|
|
78
|
+
// ============================================================================
|
|
79
|
+
// In-Memory Adapter
|
|
80
|
+
// ============================================================================
|
|
81
|
+
export { InMemoryRepository, InMemoryScheduledTaskRepository, createInMemoryModel, createInMemoryRepository, } from './in-memory/index.js';
|
|
82
|
+
// ============================================================================
|
|
83
|
+
// Scheduled Tasks
|
|
84
|
+
// ============================================================================
|
|
85
|
+
export { ScheduledTask, ScheduledTaskStatus, ScheduledTaskRepository, } from './scheduled-task/index.js';
|
|
86
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core model name registry.
|
|
3
|
+
*
|
|
4
|
+
* Maps model names to model classes. Used by the Reference deserializer
|
|
5
|
+
* to recreate typed refs via Model.ref(id) during process state restoration.
|
|
6
|
+
*
|
|
7
|
+
* Populated by adapters (createPgModel, createInMemoryModel) at registration time.
|
|
8
|
+
*/
|
|
9
|
+
import type { Reference } from './reference/reference.js';
|
|
10
|
+
export interface RegisteredModel {
|
|
11
|
+
ref: (id: string) => Reference<unknown>;
|
|
12
|
+
}
|
|
13
|
+
export declare function registerModelByName(name: string, model: RegisteredModel): void;
|
|
14
|
+
export declare function getModelByName(name: string): RegisteredModel | undefined;
|
|
15
|
+
export declare function getModelNameRegistry(): ReadonlyMap<string, RegisteredModel>;
|
|
16
|
+
//# sourceMappingURL=model-name-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-name-registry.d.ts","sourceRoot":"","sources":["../../src/models/model-name-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC;CACzC;AAID,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAE9E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAExE;AAED,wBAAgB,oBAAoB,IAAI,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAE3E"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core model name registry.
|
|
3
|
+
*
|
|
4
|
+
* Maps model names to model classes. Used by the Reference deserializer
|
|
5
|
+
* to recreate typed refs via Model.ref(id) during process state restoration.
|
|
6
|
+
*
|
|
7
|
+
* Populated by adapters (createPgModel, createInMemoryModel) at registration time.
|
|
8
|
+
*/
|
|
9
|
+
const registry = new Map();
|
|
10
|
+
export function registerModelByName(name, model) {
|
|
11
|
+
registry.set(name, model);
|
|
12
|
+
}
|
|
13
|
+
export function getModelByName(name) {
|
|
14
|
+
return registry.get(name);
|
|
15
|
+
}
|
|
16
|
+
export function getModelNameRegistry() {
|
|
17
|
+
return registry;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=model-name-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-name-registry.js","sourceRoot":"","sources":["../../src/models/model-name-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;AAEpD,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,KAAsB;IACtE,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
import type { Model, ModelInternals } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Create a model instance with schema validation and dirty tracking.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createModelInstance<S extends z.ZodTypeAny>(schema: S, input?: z.input<S>): Model<z.output<S>>;
|
|
7
|
+
/**
|
|
8
|
+
* Helper to get model internals
|
|
9
|
+
*/
|
|
10
|
+
export declare function getModelInternals<T>(model: Model<T>): ModelInternals<T>;
|
|
11
|
+
/**
|
|
12
|
+
* Type guard to check if a value is a model
|
|
13
|
+
*/
|
|
14
|
+
export declare function isModel<T>(value: unknown): value is Model<T>;
|
|
15
|
+
//# sourceMappingURL=model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/models/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAG7B,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA0DxD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EACxD,MAAM,EAAE,CAAC,EACT,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GACjB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAuDpB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAEvE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAE5D"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { createTrackedProxy } from './proxy.js';
|
|
2
|
+
import { MODEL_INTERNALS } from './symbols.js';
|
|
3
|
+
// Deep traverse to ensure all nested objects are proxied and parent refs registered
|
|
4
|
+
function deepTraverse(obj, visited = new WeakSet()) {
|
|
5
|
+
if (obj === null || typeof obj !== 'object')
|
|
6
|
+
return;
|
|
7
|
+
if (visited.has(obj))
|
|
8
|
+
return; // Prevent infinite loops on circular refs
|
|
9
|
+
visited.add(obj);
|
|
10
|
+
if (Array.isArray(obj)) {
|
|
11
|
+
for (let i = 0; i < obj.length; i++) {
|
|
12
|
+
deepTraverse(obj[i], visited);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
for (const key of Object.keys(obj)) {
|
|
17
|
+
deepTraverse(obj[key], visited);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
// Safe deep clone that handles proxies (skips them as they can't be cloned)
|
|
22
|
+
function safeDeepClone(obj) {
|
|
23
|
+
try {
|
|
24
|
+
return structuredClone(obj);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
// If structuredClone fails (e.g., proxies), do manual clone
|
|
28
|
+
return manualDeepClone(obj);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function manualDeepClone(obj, visited = new WeakMap()) {
|
|
32
|
+
if (obj === null || typeof obj !== 'object') {
|
|
33
|
+
return obj;
|
|
34
|
+
}
|
|
35
|
+
// Handle circular refs
|
|
36
|
+
if (visited.has(obj)) {
|
|
37
|
+
return visited.get(obj);
|
|
38
|
+
}
|
|
39
|
+
// For proxies, extract the underlying values
|
|
40
|
+
if (Array.isArray(obj)) {
|
|
41
|
+
const clone = [];
|
|
42
|
+
visited.set(obj, clone);
|
|
43
|
+
for (let i = 0; i < obj.length; i++) {
|
|
44
|
+
clone[i] = manualDeepClone(obj[i], visited);
|
|
45
|
+
}
|
|
46
|
+
return clone;
|
|
47
|
+
}
|
|
48
|
+
const clone = {};
|
|
49
|
+
visited.set(obj, clone);
|
|
50
|
+
for (const key of Object.keys(obj)) {
|
|
51
|
+
clone[key] = manualDeepClone(obj[key], visited);
|
|
52
|
+
}
|
|
53
|
+
return clone;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Create a model instance with schema validation and dirty tracking.
|
|
57
|
+
*/
|
|
58
|
+
export function createModelInstance(schema, input) {
|
|
59
|
+
// Parse with defaults
|
|
60
|
+
const parsed = schema.parse(input ?? {});
|
|
61
|
+
const original = safeDeepClone(parsed);
|
|
62
|
+
const dirty = new Set();
|
|
63
|
+
// Create the root proxy
|
|
64
|
+
const proxy = createTrackedProxy(parsed, [], dirty);
|
|
65
|
+
// Traverse entire structure to ensure all proxies are created upfront
|
|
66
|
+
// This registers all parent refs for shared objects
|
|
67
|
+
deepTraverse(proxy);
|
|
68
|
+
const internals = {
|
|
69
|
+
schema,
|
|
70
|
+
dirty,
|
|
71
|
+
original,
|
|
72
|
+
markClean() {
|
|
73
|
+
dirty.clear();
|
|
74
|
+
},
|
|
75
|
+
isDirty() {
|
|
76
|
+
return dirty.size > 0;
|
|
77
|
+
},
|
|
78
|
+
getDirtyPaths() {
|
|
79
|
+
return [...dirty];
|
|
80
|
+
},
|
|
81
|
+
getDirtyData() {
|
|
82
|
+
const result = {};
|
|
83
|
+
for (const path of dirty) {
|
|
84
|
+
// Get top-level keys only for signal merging
|
|
85
|
+
const topKey = path.split('.')[0];
|
|
86
|
+
if (topKey && !(topKey in result)) {
|
|
87
|
+
result[topKey] = proxy[topKey];
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return result;
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
// Attach internals directly to the underlying object (not via proxy)
|
|
94
|
+
Object.defineProperty(parsed, MODEL_INTERNALS, {
|
|
95
|
+
value: internals,
|
|
96
|
+
enumerable: false,
|
|
97
|
+
writable: false,
|
|
98
|
+
configurable: false,
|
|
99
|
+
});
|
|
100
|
+
return proxy;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Helper to get model internals
|
|
104
|
+
*/
|
|
105
|
+
export function getModelInternals(model) {
|
|
106
|
+
return model[MODEL_INTERNALS];
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Type guard to check if a value is a model
|
|
110
|
+
*/
|
|
111
|
+
export function isModel(value) {
|
|
112
|
+
return value !== null && typeof value === 'object' && MODEL_INTERNALS in value;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/models/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModelRepository - Abstract Repository with Token System
|
|
3
|
+
*
|
|
4
|
+
* Base class for data access that works with the query system.
|
|
5
|
+
* Implementations (Postgres, SQLite, Memory) extend this.
|
|
6
|
+
*
|
|
7
|
+
* Key features:
|
|
8
|
+
* - ModelRepository<T> is the abstract contract for CRUD operations
|
|
9
|
+
* - ModelRepository.of(Model) creates a DI token for injection
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* // Get a token for dependency injection
|
|
14
|
+
* const userRepoToken = ModelRepository.of(User);
|
|
15
|
+
*
|
|
16
|
+
* // Domain service depends on the token
|
|
17
|
+
* const UserService = defineService({
|
|
18
|
+
* inject: { users: ModelRepository.of(User) },
|
|
19
|
+
* factory: ({ users }) => ({
|
|
20
|
+
* async findByEmail(email: string) {
|
|
21
|
+
* return users.findOne(User.fields.email.eq(email));
|
|
22
|
+
* },
|
|
23
|
+
* }),
|
|
24
|
+
* });
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
import type { Condition, FindOptions, Aggregation, OrderBy } from './query.js';
|
|
28
|
+
import type { Persistent, Locked, Ref, Transient, SystemFields, InsertData, UpdateData } from './types.js';
|
|
29
|
+
import type { LockOptions } from '../features/lock/types.js';
|
|
30
|
+
import type { DurableQueryIterable } from '../process/primitives.js';
|
|
31
|
+
import { BaseModel, type Model, type RepositoryContract } from './define-model.js';
|
|
32
|
+
import { Repository } from './repository.js';
|
|
33
|
+
import type { RepositoryToken } from './repository.js';
|
|
34
|
+
import { MODEL_REPO_MODEL, MODEL_REPO_CONTRACT } from './symbols.js';
|
|
35
|
+
type AnyModel = abstract new (...args: any[]) => BaseModel<any, any, any>;
|
|
36
|
+
export { MODEL_REPO_MODEL, MODEL_REPO_CONTRACT };
|
|
37
|
+
/**
|
|
38
|
+
* Extract repository contract from a model class.
|
|
39
|
+
*/
|
|
40
|
+
export type ExtractContract<M> = M extends Model<any, any, infer C> ? C extends RepositoryContract<any> ? C : {} : {};
|
|
41
|
+
/**
|
|
42
|
+
* Extract the instance type from a model class.
|
|
43
|
+
* Since models are proper classes, we can use InstanceType directly.
|
|
44
|
+
*/
|
|
45
|
+
export type ModelInstanceType<M> = M extends abstract new (...args: any[]) => infer T ? T : never;
|
|
46
|
+
/**
|
|
47
|
+
* A ModelRepository token for dependency injection.
|
|
48
|
+
*
|
|
49
|
+
* Extends the generic RepositoryToken from core with model-specific metadata.
|
|
50
|
+
* Created via ModelRepository.of(Model).
|
|
51
|
+
*
|
|
52
|
+
* If the model has a repository contract (via .withRepository()), the token
|
|
53
|
+
* type includes those methods in addition to the base ModelRepository methods.
|
|
54
|
+
*/
|
|
55
|
+
export interface ModelRepositoryToken<T, C extends RepositoryContract<T> = {}> extends RepositoryToken<T, ModelRepository<T> & C> {
|
|
56
|
+
/** The model this token is for */
|
|
57
|
+
readonly [MODEL_REPO_MODEL]: Model<T>;
|
|
58
|
+
/** The contract type (type-level only) */
|
|
59
|
+
readonly [MODEL_REPO_CONTRACT]?: C;
|
|
60
|
+
}
|
|
61
|
+
export type { SystemFields, InsertData, UpdateData };
|
|
62
|
+
/**
|
|
63
|
+
* Abstract repository for model data access.
|
|
64
|
+
*
|
|
65
|
+
* Extends the generic Repository from core with model-specific operations
|
|
66
|
+
* like find, get, insert, update, delete, and query support.
|
|
67
|
+
*
|
|
68
|
+
* Implementations can be created for PostgreSQL, SQLite, in-memory, etc.
|
|
69
|
+
*
|
|
70
|
+
* @typeParam T - The entity type this repository manages
|
|
71
|
+
*/
|
|
72
|
+
export declare abstract class ModelRepository<T> extends Repository<T> {
|
|
73
|
+
/**
|
|
74
|
+
* Find all entities matching the given options.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* // Find all active users, ordered by creation date
|
|
79
|
+
* const users = await userRepo.find({
|
|
80
|
+
* where: User.fields.status.eq('active'),
|
|
81
|
+
* orderBy: [User.fields.createdAt.desc()],
|
|
82
|
+
* limit: 10,
|
|
83
|
+
* });
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
abstract find(options?: FindOptions<T>): Promise<Persistent<T>[]>;
|
|
87
|
+
/**
|
|
88
|
+
* Get an entity by its reference.
|
|
89
|
+
* This is the type-safe way to look up entities - you can't accidentally
|
|
90
|
+
* pass a User reference to a PostRepository.
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```typescript
|
|
94
|
+
* const user = await users.get(User.ref`${userId}`) // Type-safe!
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
abstract get(ref: Ref<T>): Promise<Persistent<T> | undefined>;
|
|
98
|
+
/**
|
|
99
|
+
* Get multiple entities by their references.
|
|
100
|
+
* Batches into a single query where possible.
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```typescript
|
|
104
|
+
* const users = await users.getMany([User.ref`1`, User.ref`2`])
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
abstract getMany(refs: Ref<T>[]): Promise<Persistent<T>[]>;
|
|
108
|
+
/**
|
|
109
|
+
* Find a single entity matching the condition.
|
|
110
|
+
* Returns undefined if not found.
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```typescript
|
|
114
|
+
* const user = await userRepo.findOne(User.fields.email.eq('alice@example.com'));
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
abstract findOne(where: Condition): Promise<Persistent<T> | undefined>;
|
|
118
|
+
/**
|
|
119
|
+
* Count entities matching the given condition.
|
|
120
|
+
*/
|
|
121
|
+
abstract count(where?: Condition): Promise<number>;
|
|
122
|
+
/**
|
|
123
|
+
* Check if any entity matches the condition.
|
|
124
|
+
*/
|
|
125
|
+
exists(where: Condition): Promise<boolean>;
|
|
126
|
+
/**
|
|
127
|
+
* Run an aggregation query (sum, avg, min, max, count).
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* ```typescript
|
|
131
|
+
* const totalViews = await postRepo.aggregate(
|
|
132
|
+
* q.sum('views'),
|
|
133
|
+
* Post.fields.published.eq(true),
|
|
134
|
+
* );
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
abstract aggregate(agg: Aggregation, where?: Condition): Promise<number | null>;
|
|
138
|
+
/**
|
|
139
|
+
* Insert a new entity.
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```typescript
|
|
143
|
+
* const user = await userRepo.insert({
|
|
144
|
+
* email: 'alice@example.com',
|
|
145
|
+
* name: 'Alice',
|
|
146
|
+
* });
|
|
147
|
+
* // user is Persistent<User> with id, createdAt, etc.
|
|
148
|
+
* ```
|
|
149
|
+
*/
|
|
150
|
+
abstract insert(data: InsertData<T>): Promise<Persistent<T>>;
|
|
151
|
+
/**
|
|
152
|
+
* Insert multiple entities.
|
|
153
|
+
*/
|
|
154
|
+
abstract insertMany(data: InsertData<T>[]): Promise<Persistent<T>[]>;
|
|
155
|
+
/**
|
|
156
|
+
* Acquire an exclusive lock on an entity and re-read it from storage.
|
|
157
|
+
*
|
|
158
|
+
* Concurrent acquirers (in this process or across cluster instances
|
|
159
|
+
* when wired with PostgresLockProvider/RedisLockProvider) BLOCK until
|
|
160
|
+
* the holder releases. The lock is released on `Symbol.asyncDispose`
|
|
161
|
+
* (preferred — `await using`) or sync `Symbol.dispose` (fire-and-forget).
|
|
162
|
+
*
|
|
163
|
+
* Re-reads under the lock so callers see committed state. Returns null
|
|
164
|
+
* if the row was deleted before/during the acquire.
|
|
165
|
+
*
|
|
166
|
+
* Mutators (`update`, `delete`, `save(Locked<T>)`) require the
|
|
167
|
+
* `__active` flag to still be true; using a `Locked<T>` after its
|
|
168
|
+
* `using` block exited throws `LockReleasedError`.
|
|
169
|
+
*
|
|
170
|
+
* Same async context re-acquiring the same row throws
|
|
171
|
+
* `DoubleLockError` (when wrapped in `runWithLockTracking`) — this
|
|
172
|
+
* would deadlock otherwise.
|
|
173
|
+
*
|
|
174
|
+
* @returns Locked entity, or null if not found
|
|
175
|
+
*
|
|
176
|
+
* @example
|
|
177
|
+
* ```typescript
|
|
178
|
+
* await using user = await users.lock(params.user);
|
|
179
|
+
* if (!user) return res.status(404).json({ error: 'Not found' });
|
|
180
|
+
* await service.updateProfile(user, data);
|
|
181
|
+
* // mutex released, lock invalidated when scope exits
|
|
182
|
+
* ```
|
|
183
|
+
*/
|
|
184
|
+
abstract lock(entity: Ref<T> | Promise<Persistent<T> | null | undefined>, options?: LockOptions): Promise<Locked<T> | null>;
|
|
185
|
+
/**
|
|
186
|
+
* Update a locked entity with partial data.
|
|
187
|
+
*
|
|
188
|
+
* Requires a lock - the lock IS your concurrency control.
|
|
189
|
+
*/
|
|
190
|
+
abstract update(entity: Locked<T>, data: UpdateData<T>): Promise<Persistent<T>>;
|
|
191
|
+
/**
|
|
192
|
+
* Save an entity (insert or update).
|
|
193
|
+
*
|
|
194
|
+
* - New entity (`T` / `Transient<T>`) → insert
|
|
195
|
+
* - Locked entity (`Locked<T>`) → update
|
|
196
|
+
*/
|
|
197
|
+
abstract save(entity: T | Transient<T>): Promise<Persistent<T>>;
|
|
198
|
+
abstract save(entity: Locked<T>): Promise<Persistent<T>>;
|
|
199
|
+
abstract save(entity: T | Transient<T> | Locked<T>): Promise<Persistent<T>>;
|
|
200
|
+
/**
|
|
201
|
+
* Delete a locked entity.
|
|
202
|
+
*
|
|
203
|
+
* Requires a lock to ensure no concurrent mutations during deletion.
|
|
204
|
+
*
|
|
205
|
+
* @returns true if deleted, false if not found
|
|
206
|
+
*/
|
|
207
|
+
abstract delete(entity: Locked<T>): Promise<boolean>;
|
|
208
|
+
/**
|
|
209
|
+
* Delete entities matching a condition.
|
|
210
|
+
*
|
|
211
|
+
* @returns Number of deleted entities
|
|
212
|
+
*/
|
|
213
|
+
abstract deleteWhere(where: Condition): Promise<number>;
|
|
214
|
+
/**
|
|
215
|
+
* Create a durable iterator for use in process for-of loops.
|
|
216
|
+
* Uses keyset pagination to support suspend/resume across process restarts.
|
|
217
|
+
*
|
|
218
|
+
* `orderBy` is required - durable iteration needs deterministic ordering
|
|
219
|
+
* for keyset pagination to work correctly.
|
|
220
|
+
*
|
|
221
|
+
* @example
|
|
222
|
+
* ```typescript
|
|
223
|
+
* for (const order of orders.iterate({
|
|
224
|
+
* where: Order.fields.status.eq('pending'),
|
|
225
|
+
* orderBy: { createdAt: 'asc' },
|
|
226
|
+
* })) {
|
|
227
|
+
* await signal(fulfillment.shipped)
|
|
228
|
+
* }
|
|
229
|
+
* ```
|
|
230
|
+
*/
|
|
231
|
+
abstract iterate(options: FindOptions<T> & {
|
|
232
|
+
orderBy: OrderBy<T>;
|
|
233
|
+
}): DurableQueryIterable<Persistent<T>>;
|
|
234
|
+
/**
|
|
235
|
+
* Stream entities matching the condition.
|
|
236
|
+
* Yields one entity at a time for memory-efficient processing.
|
|
237
|
+
*
|
|
238
|
+
* @example
|
|
239
|
+
* ```typescript
|
|
240
|
+
* for await (const user of userRepo.stream({ where: status.eq('active') })) {
|
|
241
|
+
* await processUser(user);
|
|
242
|
+
* }
|
|
243
|
+
* ```
|
|
244
|
+
*/
|
|
245
|
+
abstract stream(options?: FindOptions<T>): AsyncIterable<Persistent<T>>;
|
|
246
|
+
/**
|
|
247
|
+
* Stream entities in batches.
|
|
248
|
+
* More efficient than streaming one at a time for bulk operations.
|
|
249
|
+
*
|
|
250
|
+
* @example
|
|
251
|
+
* ```typescript
|
|
252
|
+
* for await (const batch of userRepo.streamBatches({ batchSize: 100 })) {
|
|
253
|
+
* await processBatch(batch);
|
|
254
|
+
* }
|
|
255
|
+
* ```
|
|
256
|
+
*/
|
|
257
|
+
abstract streamBatches(options?: FindOptions<T> & {
|
|
258
|
+
batchSize?: number;
|
|
259
|
+
}): AsyncIterable<Persistent<T>[]>;
|
|
260
|
+
/**
|
|
261
|
+
* Observe changes to an entity.
|
|
262
|
+
*
|
|
263
|
+
* Returns an async iterable that yields whenever the entity is updated
|
|
264
|
+
* from any instance (including other nodes in the cluster).
|
|
265
|
+
*
|
|
266
|
+
* The entity object is mutated in-place via the identity map, so you
|
|
267
|
+
* can also just access the original reference after yielding.
|
|
268
|
+
*
|
|
269
|
+
* @example
|
|
270
|
+
* ```typescript
|
|
271
|
+
* const user = await userRepo.get(User.ref`123`);
|
|
272
|
+
*
|
|
273
|
+
* // Observe changes from anywhere
|
|
274
|
+
* for await (const _ of userRepo.observe(user)) {
|
|
275
|
+
* console.log('User updated:', user.name); // same object, mutated
|
|
276
|
+
* }
|
|
277
|
+
*
|
|
278
|
+
* // Also works with references
|
|
279
|
+
* for await (const author of userRepo.observe(post.author)) {
|
|
280
|
+
* console.log('Author updated:', author.name);
|
|
281
|
+
* }
|
|
282
|
+
* ```
|
|
283
|
+
*/
|
|
284
|
+
abstract observe(entity: Ref<T>): AsyncIterable<Persistent<T>>;
|
|
285
|
+
/**
|
|
286
|
+
* Get a DI token for a model's repository.
|
|
287
|
+
*
|
|
288
|
+
* Tokens are memoized - same model always returns same token object.
|
|
289
|
+
* This enables object identity comparison for DI container lookups.
|
|
290
|
+
*
|
|
291
|
+
* If the model has a repository contract (via .withRepository()), the token
|
|
292
|
+
* type includes those custom methods.
|
|
293
|
+
*
|
|
294
|
+
* @example
|
|
295
|
+
* ```typescript
|
|
296
|
+
* const token = ModelRepository.of(User);
|
|
297
|
+
*
|
|
298
|
+
* // Same model = same token (object identity)
|
|
299
|
+
* ModelRepository.of(User) === ModelRepository.of(User) // true
|
|
300
|
+
*
|
|
301
|
+
* // Different models = different tokens
|
|
302
|
+
* ModelRepository.of(User) === ModelRepository.of(Post) // false
|
|
303
|
+
*
|
|
304
|
+
* // With custom contract
|
|
305
|
+
* const UserWithRepo = User.withRepository<{
|
|
306
|
+
* findByEmail(email: string): Promise<User | null>;
|
|
307
|
+
* }>();
|
|
308
|
+
* const token = ModelRepository.of(UserWithRepo);
|
|
309
|
+
* // token type includes findByEmail method
|
|
310
|
+
* ```
|
|
311
|
+
*/
|
|
312
|
+
static of<M extends AnyModel>(model: M): ModelRepositoryToken<ModelInstanceType<M>, ExtractContract<M>>;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Check if a value is a ModelRepository token.
|
|
316
|
+
*/
|
|
317
|
+
export declare function isModelRepositoryToken(value: unknown): value is ModelRepositoryToken<unknown>;
|
|
318
|
+
//# sourceMappingURL=model.repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.repository.d.ts","sourceRoot":"","sources":["../../src/models/model.repository.ts"],"names":[],"mappings":"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"}
|