@warlock.js/core 5.31.0 → 5.32.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/CHANGELOG.md +23 -0
- package/esm/application/app.d.mts +3 -3
- package/esm/application/app.d.mts.map +1 -1
- package/esm/application/application-config-types.d.mts +1 -2
- package/esm/application/application-config-types.d.mts.map +1 -1
- package/esm/application/application.d.mts +5 -7
- package/esm/application/application.d.mts.map +1 -1
- package/esm/application/application.mjs +3 -1
- package/esm/application/application.mjs.map +1 -1
- package/esm/application/boot-signal.d.mts +14 -12
- package/esm/application/boot-signal.d.mts.map +1 -1
- package/esm/application/index.d.mts +2 -1
- package/esm/application/index.mjs +1 -1
- package/esm/application/public-url.d.mts +1 -2
- package/esm/application/public-url.d.mts.map +1 -1
- package/esm/application/roles.d.mts +10 -11
- package/esm/application/roles.d.mts.map +1 -1
- package/esm/benchmark/benchmark-snapshots.d.mts +1 -3
- package/esm/benchmark/benchmark-snapshots.d.mts.map +1 -1
- package/esm/benchmark/benchmark.d.mts +1 -3
- package/esm/benchmark/benchmark.d.mts.map +1 -1
- package/esm/benchmark/channels/console.channel.d.mts +1 -3
- package/esm/benchmark/channels/console.channel.d.mts.map +1 -1
- package/esm/benchmark/channels/noop.channel.d.mts +1 -3
- package/esm/benchmark/channels/noop.channel.d.mts.map +1 -1
- package/esm/benchmark/index.mjs +1 -1
- package/esm/benchmark/profiler.d.mts +1 -3
- package/esm/benchmark/profiler.d.mts.map +1 -1
- package/esm/benchmark/profiler.mjs +2 -1
- package/esm/benchmark/profiler.mjs.map +1 -1
- package/esm/benchmark/types.d.mts +22 -17
- package/esm/benchmark/types.d.mts.map +1 -1
- package/esm/bootstrap/setup.d.mts +1 -2
- package/esm/bootstrap/setup.d.mts.map +1 -1
- package/esm/bootstrap.d.mts +1 -2
- package/esm/bootstrap.d.mts.map +1 -1
- package/esm/cache/database-cache-driver.d.mts +3 -5
- package/esm/cache/database-cache-driver.d.mts.map +1 -1
- package/esm/cache/database-cache-driver.mjs +1 -1
- package/esm/cache/index.d.mts +2 -1
- package/esm/cache/index.mjs +1 -1
- package/esm/cli/cli-commands.manager.mjs +6 -3
- package/esm/cli/cli-commands.manager.mjs.map +1 -1
- package/esm/cli/commands/agents-md/agents-md-command.action.mjs +3 -2
- package/esm/cli/commands/agents-md/agents-md-command.action.mjs.map +1 -1
- package/esm/cli/commands/board/board-command.action.mjs +1 -1
- package/esm/cli/commands/check/check-command.action.mjs +1 -1
- package/esm/cli/commands/check/child-typecheck.mjs +1 -1
- package/esm/cli/commands/check/child-typecheck.mjs.map +1 -1
- package/esm/cli/commands/check/format-problems.mjs +1 -1
- package/esm/cli/commands/dev-server.command.mjs +3 -2
- package/esm/cli/commands/dev-server.command.mjs.map +1 -1
- package/esm/cli/commands/doctor/check.types.d.mts +29 -16
- package/esm/cli/commands/doctor/check.types.d.mts.map +1 -1
- package/esm/cli/commands/doctor/checks/locales-ts-deprecated.check.mjs +22 -27
- package/esm/cli/commands/doctor/checks/locales-ts-deprecated.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/doctor-command.action.mjs +2 -1
- package/esm/cli/commands/doctor/doctor-command.action.mjs.map +1 -1
- package/esm/cli/commands/explain/explain-command.action.mjs +1 -1
- package/esm/cli/commands/generate/generators/controller.generator.mjs +5 -2
- package/esm/cli/commands/generate/generators/controller.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/endpoint.generator.mjs +5 -3
- package/esm/cli/commands/generate/generators/endpoint.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/model.generator.mjs +3 -2
- package/esm/cli/commands/generate/generators/model.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/repository.generator.mjs +3 -1
- package/esm/cli/commands/generate/generators/repository.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/resource.generator.mjs +3 -1
- package/esm/cli/commands/generate/generators/resource.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/service.generator.mjs +3 -1
- package/esm/cli/commands/generate/generators/service.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/templates/endpoint-stubs.mjs +2 -2
- package/esm/cli/commands/generate/templates/endpoint-stubs.mjs.map +1 -1
- package/esm/cli/commands/generate/utils/endpoint-schema.mjs +1 -2
- package/esm/cli/commands/generate/utils/endpoint-schema.mjs.map +1 -1
- package/esm/cli/commands/generate/utils/name-parser.mjs +1 -1
- package/esm/cli/commands/generate/utils/path-resolver.mjs +1 -1
- package/esm/cli/commands/inspect/inspect-command.action.mjs +3 -2
- package/esm/cli/commands/inspect/inspect-command.action.mjs.map +1 -1
- package/esm/cli/commands/issue/collect-environment.mjs +187 -0
- package/esm/cli/commands/issue/collect-environment.mjs.map +1 -0
- package/esm/cli/commands/issue/issue-command.action.mjs +70 -0
- package/esm/cli/commands/issue/issue-command.action.mjs.map +1 -0
- package/esm/cli/commands/issue.command.mjs +31 -0
- package/esm/cli/commands/issue.command.mjs.map +1 -0
- package/esm/cli/commands/mcp/mcp-command.action.mjs +15 -14
- package/esm/cli/commands/mcp/mcp-command.action.mjs.map +1 -1
- package/esm/cli/commands/openapi-generator.action.mjs +1 -1
- package/esm/cli/commands/postman-generator.action.mjs +1 -1
- package/esm/cli/commands/routes/format-routes-table.mjs +1 -1
- package/esm/cli/commands/routes/route-row.mjs +1 -1
- package/esm/cli/commands/routes/routes-diff.action.mjs +2 -2
- package/esm/cli/commands/routes/routes-diff.action.mjs.map +1 -1
- package/esm/cli/commands/test.command.mjs +1 -1
- package/esm/cli/commands/trace/trace-command.action.mjs +1 -1
- package/esm/cli/commands-loader.mjs +1 -1
- package/esm/cli/framework-cli-commands.mjs +2 -0
- package/esm/cli/framework-cli-commands.mjs.map +1 -1
- package/esm/cli/parse-cli-args.mjs +2 -2
- package/esm/cli/parse-cli-args.mjs.map +1 -1
- package/esm/cli/start.d.mts +1 -1
- package/esm/cli/string-similarity.mjs +1 -1
- package/esm/commands/cli-command.d.mts +2 -4
- package/esm/commands/cli-command.d.mts.map +1 -1
- package/esm/commands/index.d.mts +2 -1
- package/esm/commands/index.mjs +1 -1
- package/esm/commands/types.d.mts +8 -8
- package/esm/commands/types.d.mts.map +1 -1
- package/esm/config/config-getter.d.mts +2 -3
- package/esm/config/config-getter.d.mts.map +1 -1
- package/esm/config/config-getter.mjs +5 -5
- package/esm/config/config-getter.mjs.map +1 -1
- package/esm/config/config-handlers.d.mts +1 -3
- package/esm/config/config-handlers.d.mts.map +1 -1
- package/esm/config/config-loader.d.mts +1 -2
- package/esm/config/config-loader.d.mts.map +1 -1
- package/esm/config/config-loader.mjs +3 -3
- package/esm/config/config-loader.mjs.map +1 -1
- package/esm/config/config-manager.mjs +1 -1
- package/esm/config/config-schema.d.mts +19 -16
- package/esm/config/config-schema.d.mts.map +1 -1
- package/esm/config/config-setter.d.mts +2 -4
- package/esm/config/config-setter.d.mts.map +1 -1
- package/esm/config/config-setter.mjs +2 -2
- package/esm/config/config-setter.mjs.map +1 -1
- package/esm/config/config-special-handlers.d.mts +2 -4
- package/esm/config/config-special-handlers.d.mts.map +1 -1
- package/esm/config/index.d.mts +2 -1
- package/esm/config/index.mjs +1 -1
- package/esm/config/types.d.mts +4 -5
- package/esm/config/types.d.mts.map +1 -1
- package/esm/connectors/access-connector.d.mts +1 -3
- package/esm/connectors/access-connector.d.mts.map +1 -1
- package/esm/connectors/access-connector.mjs +2 -2
- package/esm/connectors/access-connector.mjs.map +1 -1
- package/esm/connectors/ai-connector.d.mts +1 -3
- package/esm/connectors/ai-connector.d.mts.map +1 -1
- package/esm/connectors/ai-connector.mjs +2 -2
- package/esm/connectors/ai-connector.mjs.map +1 -1
- package/esm/connectors/assert-no-reserved-connector-names.d.mts +1 -3
- package/esm/connectors/assert-no-reserved-connector-names.d.mts.map +1 -1
- package/esm/connectors/assert-unique-connector-names.d.mts +1 -3
- package/esm/connectors/assert-unique-connector-names.d.mts.map +1 -1
- package/esm/connectors/assert-unique-connector-names.mjs +2 -1
- package/esm/connectors/assert-unique-connector-names.mjs.map +1 -1
- package/esm/connectors/base-connector.d.mts +1 -3
- package/esm/connectors/base-connector.d.mts.map +1 -1
- package/esm/connectors/cache-connector.d.mts +1 -3
- package/esm/connectors/cache-connector.d.mts.map +1 -1
- package/esm/connectors/cache-connector.mjs +3 -3
- package/esm/connectors/cache-connector.mjs.map +1 -1
- package/esm/connectors/connectors-manager.d.mts +2 -4
- package/esm/connectors/connectors-manager.d.mts.map +1 -1
- package/esm/connectors/connectors-manager.mjs +2 -2
- package/esm/connectors/connectors-manager.mjs.map +1 -1
- package/esm/connectors/database-connector.d.mts +1 -3
- package/esm/connectors/database-connector.d.mts.map +1 -1
- package/esm/connectors/database-connector.mjs +2 -2
- package/esm/connectors/database-connector.mjs.map +1 -1
- package/esm/connectors/describe-server-address.mjs +4 -4
- package/esm/connectors/describe-server-address.mjs.map +1 -1
- package/esm/connectors/herald-connector.d.mts +1 -3
- package/esm/connectors/herald-connector.d.mts.map +1 -1
- package/esm/connectors/herald-connector.mjs +2 -2
- package/esm/connectors/herald-connector.mjs.map +1 -1
- package/esm/connectors/http-connector.d.mts +1 -3
- package/esm/connectors/http-connector.d.mts.map +1 -1
- package/esm/connectors/http-connector.mjs +8 -7
- package/esm/connectors/http-connector.mjs.map +1 -1
- package/esm/connectors/index.d.mts +2 -1
- package/esm/connectors/index.mjs +1 -1
- package/esm/connectors/logger-connector.d.mts +1 -3
- package/esm/connectors/logger-connector.d.mts.map +1 -1
- package/esm/connectors/logger-connector.mjs +2 -2
- package/esm/connectors/logger-connector.mjs.map +1 -1
- package/esm/connectors/mail-connector.d.mts +1 -3
- package/esm/connectors/mail-connector.d.mts.map +1 -1
- package/esm/connectors/mail-connector.mjs +2 -2
- package/esm/connectors/mail-connector.mjs.map +1 -1
- package/esm/connectors/notifications-connector.d.mts +1 -3
- package/esm/connectors/notifications-connector.d.mts.map +1 -1
- package/esm/connectors/notifications-connector.mjs +2 -2
- package/esm/connectors/notifications-connector.mjs.map +1 -1
- package/esm/connectors/register-configured-connectors.d.mts +2 -4
- package/esm/connectors/register-configured-connectors.d.mts.map +1 -1
- package/esm/connectors/socket-connector.d.mts +1 -3
- package/esm/connectors/socket-connector.d.mts.map +1 -1
- package/esm/connectors/socket-connector.mjs +12 -10
- package/esm/connectors/socket-connector.mjs.map +1 -1
- package/esm/connectors/storage.connector.d.mts +1 -3
- package/esm/connectors/storage.connector.d.mts.map +1 -1
- package/esm/connectors/storage.connector.mjs +2 -2
- package/esm/connectors/storage.connector.mjs.map +1 -1
- package/esm/connectors/types.d.mts +17 -14
- package/esm/connectors/types.d.mts.map +1 -1
- package/esm/container/container-instance-registry.mjs.map +1 -1
- package/esm/container/development-app-modules.d.mts +7 -5
- package/esm/container/development-app-modules.d.mts.map +1 -1
- package/esm/container/development-model-modules.d.mts +6 -5
- package/esm/container/development-model-modules.d.mts.map +1 -1
- package/esm/container/index.d.mts +4 -4
- package/esm/container/index.d.mts.map +1 -1
- package/esm/database/index.d.mts +3 -1
- package/esm/database/index.mjs +1 -1
- package/esm/database/migrate-action.mjs +1 -1
- package/esm/database/models/database-log/database-log.d.mts +2 -3
- package/esm/database/models/database-log/database-log.d.mts.map +1 -1
- package/esm/database/models/database-log/index.d.mts +2 -1
- package/esm/database/models/database-log/index.mjs +1 -1
- package/esm/database/seed-command-action.mjs +1 -1
- package/esm/database/seeds/seeder.d.mts +2 -4
- package/esm/database/seeds/seeder.d.mts.map +1 -1
- package/esm/database/seeds/seeder.errors.d.mts +2 -3
- package/esm/database/seeds/seeder.errors.d.mts.map +1 -1
- package/esm/database/seeds/seeders.manager.mjs +2 -1
- package/esm/database/seeds/seeders.manager.mjs.map +1 -1
- package/esm/database/seeds/types.d.mts +7 -8
- package/esm/database/seeds/types.d.mts.map +1 -1
- package/esm/database/utils.d.mts +4 -5
- package/esm/database/utils.d.mts.map +1 -1
- package/esm/dev-server/app-module-registry.mjs +1 -1
- package/esm/dev-server/create-worker.mjs +5 -3
- package/esm/dev-server/create-worker.mjs.map +1 -1
- package/esm/dev-server/dependency-graph.d.mts +1 -3
- package/esm/dev-server/dependency-graph.d.mts.map +1 -1
- package/esm/dev-server/dependency-graph.mjs +1 -1
- package/esm/dev-server/dependency-graph.mjs.map +1 -1
- package/esm/dev-server/extract-translation-keys.mjs +16 -17
- package/esm/dev-server/extract-translation-keys.mjs.map +1 -1
- package/esm/dev-server/file-manager.d.mts +3 -7
- package/esm/dev-server/file-manager.d.mts.map +1 -1
- package/esm/dev-server/file-operations.d.mts +1 -3
- package/esm/dev-server/file-operations.d.mts.map +1 -1
- package/esm/dev-server/files-watcher.mjs +12 -11
- package/esm/dev-server/files-watcher.mjs.map +1 -1
- package/esm/dev-server/health-checker/checkers/typescript-health-checker.mjs +36 -115
- package/esm/dev-server/health-checker/checkers/typescript-health-checker.mjs.map +1 -1
- package/esm/dev-server/health-checker/file-health-checker.contract.d.mts +5 -5
- package/esm/dev-server/health-checker/file-health-checker.contract.d.mts.map +1 -1
- package/esm/dev-server/health-checker/file-health-result.d.mts +2 -2
- package/esm/dev-server/health-checker/file-health-result.d.mts.map +1 -1
- package/esm/dev-server/health-checker/files-healthcare.manager.mjs +1 -0
- package/esm/dev-server/health-checker/files-healthcare.manager.mjs.map +1 -1
- package/esm/dev-server/health-checker/oxlint-runner.mjs +6 -5
- package/esm/dev-server/health-checker/oxlint-runner.mjs.map +1 -1
- package/esm/dev-server/health-checker/workers/eslint-health.worker.d.mts +1 -1
- package/esm/dev-server/health-checker/workers/oxlint-health.worker.d.mts +1 -1
- package/esm/dev-server/health-checker/workers/ts-health.worker.d.mts +1 -1
- package/esm/dev-server/health-checker/workers/ts-health.worker.mjs +40 -174
- package/esm/dev-server/health-checker/workers/ts-health.worker.mjs.map +1 -1
- package/esm/dev-server/loader/hook-thread.d.mts +4 -8
- package/esm/dev-server/loader/hook-thread.d.mts.map +1 -1
- package/esm/dev-server/loader/load-hook.d.mts +10 -6
- package/esm/dev-server/loader/load-hook.d.mts.map +1 -1
- package/esm/dev-server/loader/load-hook.mjs +4 -3
- package/esm/dev-server/loader/load-hook.mjs.map +1 -1
- package/esm/dev-server/loader/own-resolver.mjs +1 -1
- package/esm/dev-server/loader/register-loader.mjs +3 -2
- package/esm/dev-server/loader/register-loader.mjs.map +1 -1
- package/esm/dev-server/loader/resolve-hook.d.mts +2 -2
- package/esm/dev-server/loader/resolve-hook.d.mts.map +1 -1
- package/esm/dev-server/loader/resolve-hook.mjs +2 -1
- package/esm/dev-server/loader/resolve-hook.mjs.map +1 -1
- package/esm/dev-server/loader/transpile-cache.mjs +2 -1
- package/esm/dev-server/loader/transpile-cache.mjs.map +1 -1
- package/esm/dev-server/manifest-manager.d.mts +1 -3
- package/esm/dev-server/manifest-manager.d.mts.map +1 -1
- package/esm/dev-server/model-module-registry.mjs +3 -3
- package/esm/dev-server/model-module-registry.mjs.map +1 -1
- package/esm/dev-server/model-resource-typings.mjs +40 -47
- package/esm/dev-server/model-resource-typings.mjs.map +1 -1
- package/esm/dev-server/module-loader.mjs +2 -2
- package/esm/dev-server/module-loader.mjs.map +1 -1
- package/esm/dev-server/package-json-manager.mjs +1 -1
- package/esm/dev-server/parse-imports.mjs +6 -38
- package/esm/dev-server/parse-imports.mjs.map +1 -1
- package/esm/dev-server/read-config-ast.mjs +3 -33
- package/esm/dev-server/read-config-ast.mjs.map +1 -1
- package/esm/dev-server/ready-block.mjs +1 -1
- package/esm/dev-server/shortcuts.mjs +1 -1
- package/esm/dev-server/special-files-collector.d.mts +2 -4
- package/esm/dev-server/special-files-collector.d.mts.map +1 -1
- package/esm/dev-server/supervisor.mjs +1 -1
- package/esm/dev-server/tsconfig-manager.mjs +3 -3
- package/esm/dev-server/tsconfig-manager.mjs.map +1 -1
- package/esm/dev-server/type-generator.mjs +28 -35
- package/esm/dev-server/type-generator.mjs.map +1 -1
- package/esm/dev-server/types.d.mts +3 -4
- package/esm/dev-server/types.d.mts.map +1 -1
- package/esm/dev-server/update-check-cache.mjs +2 -2
- package/esm/dev-server/update-check-cache.mjs.map +1 -1
- package/esm/encryption/encrypt.d.mts +2 -3
- package/esm/encryption/encrypt.d.mts.map +1 -1
- package/esm/encryption/hash.d.mts +1 -2
- package/esm/encryption/hash.d.mts.map +1 -1
- package/esm/encryption/index.mjs +1 -1
- package/esm/encryption/password.d.mts +2 -3
- package/esm/encryption/password.d.mts.map +1 -1
- package/esm/encryption/types.d.mts +2 -3
- package/esm/encryption/types.d.mts.map +1 -1
- package/esm/errors/error-codes.d.mts +29 -22
- package/esm/errors/error-codes.d.mts.map +1 -1
- package/esm/errors/warlock-error.d.mts +1 -3
- package/esm/errors/warlock-error.d.mts.map +1 -1
- package/esm/generations/add-command.action.mjs +3 -2
- package/esm/generations/add-command.action.mjs.map +1 -1
- package/esm/generations/features/bull-board.feature.mjs +2 -1
- package/esm/generations/features/bull-board.feature.mjs.map +1 -1
- package/esm/generations/features/notifications.feature.mjs +2 -1
- package/esm/generations/features/notifications.feature.mjs.map +1 -1
- package/esm/generations/features/shared/merge-web-sitemap-config.mjs +16 -23
- package/esm/generations/features/shared/merge-web-sitemap-config.mjs.map +1 -1
- package/esm/generations/features/shared/patch-tsconfig-include.mjs +1 -1
- package/esm/generations/features/shared/relocate-conflicting-home-route.mjs +1 -1
- package/esm/generations/features/sitemap.feature.mjs +2 -1
- package/esm/generations/features/sitemap.feature.mjs.map +1 -1
- package/esm/generations/generation-fs.mjs +1 -1
- package/esm/generations/generation-run.mjs +1 -1
- package/esm/generations/stubs.mjs +1 -1
- package/esm/generations/stubs.mjs.map +1 -1
- package/esm/http/boot-port-preflight.d.mts +4 -5
- package/esm/http/boot-port-preflight.d.mts.map +1 -1
- package/esm/http/boot-port-preflight.mjs +2 -2
- package/esm/http/boot-port-preflight.mjs.map +1 -1
- package/esm/http/bounded-stream-queue.d.mts +4 -4
- package/esm/http/bounded-stream-queue.d.mts.map +1 -1
- package/esm/http/bounded-stream-queue.mjs +1 -1
- package/esm/http/bounded-stream-queue.mjs.map +1 -1
- package/esm/http/build-cors-options.mjs +2 -2
- package/esm/http/build-cors-options.mjs.map +1 -1
- package/esm/http/build-rate-limit-options.d.mts +2 -3
- package/esm/http/build-rate-limit-options.d.mts.map +1 -1
- package/esm/http/build-rate-limit-options.mjs +1 -1
- package/esm/http/build-rate-limit-options.mjs.map +1 -1
- package/esm/http/conditional-request.d.mts +14 -13
- package/esm/http/conditional-request.d.mts.map +1 -1
- package/esm/http/config.d.mts +2 -4
- package/esm/http/config.d.mts.map +1 -1
- package/esm/http/config.mjs +2 -2
- package/esm/http/config.mjs.map +1 -1
- package/esm/http/context/request-context.d.mts +6 -7
- package/esm/http/context/request-context.d.mts.map +1 -1
- package/esm/http/context/request-memo.d.mts +1 -2
- package/esm/http/context/request-memo.d.mts.map +1 -1
- package/esm/http/createHttpApplication.d.mts +2 -3
- package/esm/http/createHttpApplication.d.mts.map +1 -1
- package/esm/http/createHttpApplication.mjs +2 -2
- package/esm/http/createHttpApplication.mjs.map +1 -1
- package/esm/http/csp.d.mts +10 -12
- package/esm/http/csp.d.mts.map +1 -1
- package/esm/http/csp.mjs +2 -2
- package/esm/http/csp.mjs.map +1 -1
- package/esm/http/csrf-default-guard.d.mts +2 -4
- package/esm/http/csrf-default-guard.d.mts.map +1 -1
- package/esm/http/csrf-default-guard.mjs +1 -1
- package/esm/http/csrf-default-guard.mjs.map +1 -1
- package/esm/http/csrf-origin-policy.d.mts +7 -9
- package/esm/http/csrf-origin-policy.d.mts.map +1 -1
- package/esm/http/csrf-origin-policy.mjs +2 -2
- package/esm/http/csrf-origin-policy.mjs.map +1 -1
- package/esm/http/database/RequestLog.d.mts +2 -3
- package/esm/http/database/RequestLog.d.mts.map +1 -1
- package/esm/http/error-codes.d.mts +1 -2
- package/esm/http/error-codes.d.mts.map +1 -1
- package/esm/http/error-mapper.d.mts +2 -4
- package/esm/http/error-mapper.d.mts.map +1 -1
- package/esm/http/error-mapper.mjs +2 -2
- package/esm/http/error-mapper.mjs.map +1 -1
- package/esm/http/errors/errors.d.mts +28 -29
- package/esm/http/errors/errors.d.mts.map +1 -1
- package/esm/http/escape-header-value.d.mts +1 -2
- package/esm/http/escape-header-value.d.mts.map +1 -1
- package/esm/http/events.d.mts +2 -4
- package/esm/http/events.d.mts.map +1 -1
- package/esm/http/health.d.mts +4 -4
- package/esm/http/health.d.mts.map +1 -1
- package/esm/http/index.d.mts +4 -1
- package/esm/http/index.mjs +1 -1
- package/esm/http/middleware/cache-response-middleware.d.mts +2 -4
- package/esm/http/middleware/cache-response-middleware.d.mts.map +1 -1
- package/esm/http/middleware/concurrency-limit.middleware.d.mts +3 -3
- package/esm/http/middleware/concurrency-limit.middleware.d.mts.map +1 -1
- package/esm/http/middleware/idempotency.middleware.d.mts +3 -3
- package/esm/http/middleware/idempotency.middleware.d.mts.map +1 -1
- package/esm/http/middleware/idempotency.middleware.mjs +6 -6
- package/esm/http/middleware/idempotency.middleware.mjs.map +1 -1
- package/esm/http/middleware/index.d.mts +3 -1
- package/esm/http/middleware/index.mjs +1 -1
- package/esm/http/middleware/inject-request-context.d.mts +2 -4
- package/esm/http/middleware/inject-request-context.d.mts.map +1 -1
- package/esm/http/middleware/inject-request-context.mjs +3 -3
- package/esm/http/middleware/inject-request-context.mjs.map +1 -1
- package/esm/http/middleware/ip-filter.middleware.d.mts +3 -3
- package/esm/http/middleware/ip-filter.middleware.d.mts.map +1 -1
- package/esm/http/middleware/maintenance.middleware.d.mts +3 -3
- package/esm/http/middleware/maintenance.middleware.d.mts.map +1 -1
- package/esm/http/middleware/maintenance.middleware.mjs +4 -4
- package/esm/http/middleware/maintenance.middleware.mjs.map +1 -1
- package/esm/http/middleware/max-body-size.middleware.d.mts +2 -2
- package/esm/http/middleware/max-body-size.middleware.d.mts.map +1 -1
- package/esm/http/middleware/middleware-list.d.mts +1 -3
- package/esm/http/middleware/middleware-list.d.mts.map +1 -1
- package/esm/http/middleware/rate-limit.middleware.d.mts +3 -3
- package/esm/http/middleware/rate-limit.middleware.d.mts.map +1 -1
- package/esm/http/middleware/rate-limit.middleware.mjs +2 -2
- package/esm/http/middleware/rate-limit.middleware.mjs.map +1 -1
- package/esm/http/middleware/utils/cidr-match.d.mts +2 -3
- package/esm/http/middleware/utils/cidr-match.d.mts.map +1 -1
- package/esm/http/middleware/utils/idempotency-key.d.mts +3 -5
- package/esm/http/middleware/utils/idempotency-key.d.mts.map +1 -1
- package/esm/http/middleware/utils/index.d.mts +2 -1
- package/esm/http/middleware/utils/parse-size.d.mts +1 -2
- package/esm/http/middleware/utils/parse-size.d.mts.map +1 -1
- package/esm/http/middleware/utils/parse-size.mjs +2 -2
- package/esm/http/middleware/utils/parse-size.mjs.map +1 -1
- package/esm/http/plugins.d.mts +2 -4
- package/esm/http/plugins.d.mts.map +1 -1
- package/esm/http/plugins.mjs +10 -10
- package/esm/http/plugins.mjs.map +1 -1
- package/esm/http/port-preflight.d.mts +3 -4
- package/esm/http/port-preflight.d.mts.map +1 -1
- package/esm/http/rate-limit-cache-store.mjs +4 -3
- package/esm/http/rate-limit-cache-store.mjs.map +1 -1
- package/esm/http/ready-report.d.mts +15 -10
- package/esm/http/ready-report.d.mts.map +1 -1
- package/esm/http/request-controller.d.mts +1 -3
- package/esm/http/request-controller.d.mts.map +1 -1
- package/esm/http/request-log-snapshot.d.mts +20 -16
- package/esm/http/request-log-snapshot.d.mts.map +1 -1
- package/esm/http/request-log-snapshot.mjs +3 -3
- package/esm/http/request-log-snapshot.mjs.map +1 -1
- package/esm/http/request.d.mts +8 -7
- package/esm/http/request.d.mts.map +1 -1
- package/esm/http/request.mjs +8 -7
- package/esm/http/request.mjs.map +1 -1
- package/esm/http/response.d.mts +12 -11
- package/esm/http/response.d.mts.map +1 -1
- package/esm/http/response.mjs +7 -7
- package/esm/http/response.mjs.map +1 -1
- package/esm/http/safe-redirect.d.mts +3 -4
- package/esm/http/safe-redirect.d.mts.map +1 -1
- package/esm/http/serialized.d.mts +12 -13
- package/esm/http/serialized.d.mts.map +1 -1
- package/esm/http/server-rebuilt.d.mts +3 -5
- package/esm/http/server-rebuilt.d.mts.map +1 -1
- package/esm/http/server.d.mts +9 -9
- package/esm/http/server.d.mts.map +1 -1
- package/esm/http/server.mjs +4 -4
- package/esm/http/server.mjs.map +1 -1
- package/esm/http/stream-react-response.d.mts +7 -7
- package/esm/http/stream-react-response.d.mts.map +1 -1
- package/esm/http/tracing/index.mjs +1 -1
- package/esm/http/tracing/trace-id.d.mts +2 -3
- package/esm/http/tracing/trace-id.d.mts.map +1 -1
- package/esm/http/tracing/tracing-dispatcher.d.mts +10 -11
- package/esm/http/tracing/tracing-dispatcher.d.mts.map +1 -1
- package/esm/http/tracing/tracing-dispatcher.mjs +2 -2
- package/esm/http/tracing/tracing-dispatcher.mjs.map +1 -1
- package/esm/http/tracing/tracing.type.d.mts +11 -9
- package/esm/http/tracing/tracing.type.d.mts.map +1 -1
- package/esm/http/types.d.mts +49 -43
- package/esm/http/types.d.mts.map +1 -1
- package/esm/http/uploaded-file.d.mts +6 -5
- package/esm/http/uploaded-file.d.mts.map +1 -1
- package/esm/http/uploads/generate-image-variants.d.mts +6 -6
- package/esm/http/uploads/generate-image-variants.d.mts.map +1 -1
- package/esm/http/uploads/generate-image-variants.mjs +1 -1
- package/esm/http/uploads/generate-image-variants.mjs.map +1 -1
- package/esm/http/uploads/image-variant-cache-entries.mjs +1 -1
- package/esm/http/uploads/image-variant-cache.mjs +8 -8
- package/esm/http/uploads/image-variant-cache.mjs.map +1 -1
- package/esm/http/uploads/image-variant-types.d.mts +7 -9
- package/esm/http/uploads/image-variant-types.d.mts.map +1 -1
- package/esm/http/uploads/image-variants-config-error.d.mts +1 -2
- package/esm/http/uploads/image-variants-config-error.d.mts.map +1 -1
- package/esm/http/uploads/index.d.mts +2 -1
- package/esm/http/uploads/index.mjs +1 -1
- package/esm/http/uploads/parse-uploaded-file-query.mjs +1 -1
- package/esm/http/uploads/parse-uploaded-file-query.mjs.map +1 -1
- package/esm/http/uploads/purge-image-variants.d.mts +2 -4
- package/esm/http/uploads/purge-image-variants.d.mts.map +1 -1
- package/esm/http/uploads/resolve-image-variant.d.mts +3 -5
- package/esm/http/uploads/resolve-image-variant.d.mts.map +1 -1
- package/esm/http/uploads/resolve-image-variants-config.mjs +4 -4
- package/esm/http/uploads/resolve-image-variants-config.mjs.map +1 -1
- package/esm/http/uploads/resolve-original-content-type.mjs +1 -1
- package/esm/http/uploads/resolve-original-content-type.mjs.map +1 -1
- package/esm/http/uploads/trim-image-variant-cache.mjs +3 -3
- package/esm/http/uploads/trim-image-variant-cache.mjs.map +1 -1
- package/esm/http/uploads/uploaded-file.controller.d.mts +6 -5
- package/esm/http/uploads/uploaded-file.controller.d.mts.map +1 -1
- package/esm/http/uploads/uploaded-file.controller.mjs +2 -1
- package/esm/http/uploads/uploaded-file.controller.mjs.map +1 -1
- package/esm/http/uploads/variant-cache-key.mjs +1 -1
- package/esm/http/uploads-config.d.mts +2 -4
- package/esm/http/uploads-config.d.mts.map +1 -1
- package/esm/http/uploads-types.d.mts +19 -17
- package/esm/http/uploads-types.d.mts.map +1 -1
- package/esm/http/xmlable.d.mts +1 -2
- package/esm/http/xmlable.d.mts.map +1 -1
- package/esm/image/image.d.mts +6 -7
- package/esm/image/image.d.mts.map +1 -1
- package/esm/image/image.mjs.map +1 -1
- package/esm/image/index.d.mts +2 -1
- package/esm/image/index.mjs +1 -1
- package/esm/index.d.mts +21 -0
- package/esm/loader/app-module-importer.d.mts +1 -2
- package/esm/loader/app-module-importer.d.mts.map +1 -1
- package/esm/localization/index.mjs +1 -1
- package/esm/localization/parse-locale-dictionary.d.mts +4 -5
- package/esm/localization/parse-locale-dictionary.d.mts.map +1 -1
- package/esm/localization/parse-locale-dictionary.mjs +1 -1
- package/esm/localization/parse-locale-dictionary.mjs.map +1 -1
- package/esm/localization/register-locale-dictionary.d.mts +3 -4
- package/esm/localization/register-locale-dictionary.d.mts.map +1 -1
- package/esm/localization/register-locale-dictionary.mjs +2 -2
- package/esm/localization/register-locale-dictionary.mjs.map +1 -1
- package/esm/logger/fatal-visibility.d.mts +1 -2
- package/esm/logger/fatal-visibility.d.mts.map +1 -1
- package/esm/logger/index.d.mts +2 -1
- package/esm/logger/index.mjs +1 -1
- package/esm/logger/logger.d.mts +1 -3
- package/esm/logger/logger.d.mts.map +1 -1
- package/esm/logger/types.d.mts +2 -3
- package/esm/logger/types.d.mts.map +1 -1
- package/esm/mail/config.d.mts +12 -14
- package/esm/mail/config.d.mts.map +1 -1
- package/esm/mail/events.d.mts +4 -6
- package/esm/mail/events.d.mts.map +1 -1
- package/esm/mail/index.d.mts +2 -1
- package/esm/mail/index.mjs +1 -1
- package/esm/mail/mail.d.mts +1 -3
- package/esm/mail/mail.d.mts.map +1 -1
- package/esm/mail/mailer-pool.d.mts +5 -7
- package/esm/mail/mailer-pool.d.mts.map +1 -1
- package/esm/mail/react-mail.d.mts +1 -3
- package/esm/mail/react-mail.d.mts.map +1 -1
- package/esm/mail/send-mail.d.mts +1 -3
- package/esm/mail/send-mail.d.mts.map +1 -1
- package/esm/mail/send-mail.mjs +2 -1
- package/esm/mail/send-mail.mjs.map +1 -1
- package/esm/mail/test-mailbox.d.mts +11 -13
- package/esm/mail/test-mailbox.d.mts.map +1 -1
- package/esm/mail/types.d.mts +17 -18
- package/esm/mail/types.d.mts.map +1 -1
- package/esm/manifest/manifest-manager.mjs +1 -1
- package/esm/openapi/build-openapi-document.d.mts +2 -4
- package/esm/openapi/build-openapi-document.d.mts.map +1 -1
- package/esm/openapi/cast-schema.mjs +1 -1
- package/esm/openapi/development-openapi-provider.d.mts +5 -6
- package/esm/openapi/development-openapi-provider.d.mts.map +1 -1
- package/esm/openapi/index.d.mts +3 -1
- package/esm/openapi/index.mjs +1 -1
- package/esm/openapi/openapi-child-output.mjs +2 -2
- package/esm/openapi/openapi-child-output.mjs.map +1 -1
- package/esm/openapi/postman/build-request-url.mjs +1 -1
- package/esm/openapi/postman/example-from-schema.d.mts +1 -3
- package/esm/openapi/postman/example-from-schema.d.mts.map +1 -1
- package/esm/openapi/postman/index.d.mts +2 -1
- package/esm/openapi/postman/openapi-to-postman-collection.d.mts +3 -5
- package/esm/openapi/postman/openapi-to-postman-collection.d.mts.map +1 -1
- package/esm/openapi/postman/postman-types.d.mts +19 -18
- package/esm/openapi/postman/postman-types.d.mts.map +1 -1
- package/esm/openapi/postman/schema-refs.d.mts +1 -3
- package/esm/openapi/postman/schema-refs.d.mts.map +1 -1
- package/esm/openapi/postman/uuid-v5.mjs +1 -1
- package/esm/openapi/schema-registry.d.mts +1 -1
- package/esm/openapi/security.mjs +1 -1
- package/esm/openapi/types.d.mts +23 -21
- package/esm/openapi/types.d.mts.map +1 -1
- package/esm/production/assert-generated-imports.mjs +1 -1
- package/esm/production/build-contributions.mjs +1 -1
- package/esm/production/bundle-framework-dependencies.mjs +1 -1
- package/esm/production/dist-build-manifest.mjs +1 -1
- package/esm/production/esbuild-plugins.mjs.map +1 -1
- package/esm/production/esbuild-preflight.mjs +1 -1
- package/esm/production/production-builder.mjs +2 -1
- package/esm/production/production-builder.mjs.map +1 -1
- package/esm/production/production-supervisor.mjs +1 -1
- package/esm/production/registration-child-runner.mjs +4 -3
- package/esm/production/registration-child-runner.mjs.map +1 -1
- package/esm/production/resolve-build-config.d.mts +4 -4
- package/esm/production/resolve-build-config.d.mts.map +1 -1
- package/esm/production/resolve-build-config.mjs +1 -1
- package/esm/production/route-registration-child.d.mts +1 -1
- package/esm/production/route-registration-child.mjs +8 -7
- package/esm/production/route-registration-child.mjs.map +1 -1
- package/esm/production/tsconfig-path-aliases.mjs +1 -1
- package/esm/react/index.d.mts +1 -3
- package/esm/react/index.d.mts.map +1 -1
- package/esm/react/index.mjs.map +1 -1
- package/esm/repositories/adapters/cascade/cascade-adapter.d.mts +3 -4
- package/esm/repositories/adapters/cascade/cascade-adapter.d.mts.map +1 -1
- package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts +2 -3
- package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts.map +1 -1
- package/esm/repositories/adapters/cascade/filter-applicator.mjs +10 -9
- package/esm/repositories/adapters/cascade/filter-applicator.mjs.map +1 -1
- package/esm/repositories/adapters/cascade/index.d.mts +2 -1
- package/esm/repositories/adapters/cascade/index.mjs +1 -1
- package/esm/repositories/contracts/index.d.mts +2 -1
- package/esm/repositories/contracts/query-builder.contract.d.mts +4 -6
- package/esm/repositories/contracts/query-builder.contract.d.mts.map +1 -1
- package/esm/repositories/contracts/repository-adapter.contract.d.mts +1 -3
- package/esm/repositories/contracts/repository-adapter.contract.d.mts.map +1 -1
- package/esm/repositories/contracts/types.d.mts +23 -25
- package/esm/repositories/contracts/types.d.mts.map +1 -1
- package/esm/repositories/index.d.mts +4 -1
- package/esm/repositories/index.mjs +1 -1
- package/esm/repositories/repository.manager.d.mts +2 -3
- package/esm/repositories/repository.manager.d.mts.map +1 -1
- package/esm/repositories/repository.manager.mjs +2 -2
- package/esm/repositories/repository.manager.mjs.map +1 -1
- package/esm/resource/define-resource.d.mts +3 -5
- package/esm/resource/define-resource.d.mts.map +1 -1
- package/esm/resource/index.d.mts +2 -1
- package/esm/resource/index.mjs +1 -1
- package/esm/resource/nullable-resource.d.mts +5 -7
- package/esm/resource/nullable-resource.d.mts.map +1 -1
- package/esm/resource/register-resource.d.mts +1 -3
- package/esm/resource/register-resource.d.mts.map +1 -1
- package/esm/resource/resource-field-builder.d.mts +1 -3
- package/esm/resource/resource-field-builder.d.mts.map +1 -1
- package/esm/resource/resource.d.mts +3 -5
- package/esm/resource/resource.d.mts.map +1 -1
- package/esm/resource/resource.mjs +4 -2
- package/esm/resource/resource.mjs.map +1 -1
- package/esm/resource/types.d.mts +21 -21
- package/esm/resource/types.d.mts.map +1 -1
- package/esm/restful/index.d.mts +2 -1
- package/esm/restful/index.mjs +1 -1
- package/esm/restful/restful.d.mts +12 -32
- package/esm/restful/restful.d.mts.map +1 -1
- package/esm/router/index.d.mts +2 -1
- package/esm/router/index.mjs +1 -1
- package/esm/router/named-api-routes-with-responses.mjs +2 -1
- package/esm/router/named-api-routes-with-responses.mjs.map +1 -1
- package/esm/router/normalize-request-path.d.mts +1 -2
- package/esm/router/normalize-request-path.d.mts.map +1 -1
- package/esm/router/normalize-route-path.d.mts +1 -2
- package/esm/router/normalize-route-path.d.mts.map +1 -1
- package/esm/router/positional-handler-diagnostics.d.mts +15 -13
- package/esm/router/positional-handler-diagnostics.d.mts.map +1 -1
- package/esm/router/resolve-route-rate-limit.mjs +3 -3
- package/esm/router/resolve-route-rate-limit.mjs.map +1 -1
- package/esm/router/route-builder.d.mts +1 -3
- package/esm/router/route-builder.d.mts.map +1 -1
- package/esm/router/route-guard-names.mjs +1 -1
- package/esm/router/route-guard-names.mjs.map +1 -1
- package/esm/router/route-name-method-suffix.d.mts +2 -3
- package/esm/router/route-name-method-suffix.d.mts.map +1 -1
- package/esm/router/route-name-taken-error.d.mts +1 -3
- package/esm/router/route-name-taken-error.d.mts.map +1 -1
- package/esm/router/route-registry.d.mts +1 -3
- package/esm/router/route-registry.d.mts.map +1 -1
- package/esm/router/router.d.mts +2 -4
- package/esm/router/router.d.mts.map +1 -1
- package/esm/router/router.mjs +8 -6
- package/esm/router/router.mjs.map +1 -1
- package/esm/router/types.d.mts +25 -26
- package/esm/router/types.d.mts.map +1 -1
- package/esm/router/unguarded-route-diagnostics.d.mts +6 -8
- package/esm/router/unguarded-route-diagnostics.d.mts.map +1 -1
- package/esm/socket/index.d.mts +2 -1
- package/esm/socket/index.mjs +1 -1
- package/esm/socket/types.d.mts +2 -4
- package/esm/socket/types.d.mts.map +1 -1
- package/esm/socket/utils.d.mts +1 -3
- package/esm/socket/utils.d.mts.map +1 -1
- package/esm/storage/config.d.mts +4 -6
- package/esm/storage/config.d.mts.map +1 -1
- package/esm/storage/context/storage-driver-context.d.mts +3 -4
- package/esm/storage/context/storage-driver-context.d.mts.map +1 -1
- package/esm/storage/drivers/cloud-driver.d.mts +2 -4
- package/esm/storage/drivers/cloud-driver.d.mts.map +1 -1
- package/esm/storage/drivers/cloud-driver.mjs.map +1 -1
- package/esm/storage/drivers/do-spaces-driver.d.mts +1 -3
- package/esm/storage/drivers/do-spaces-driver.d.mts.map +1 -1
- package/esm/storage/drivers/local-driver.d.mts +2 -3
- package/esm/storage/drivers/local-driver.d.mts.map +1 -1
- package/esm/storage/drivers/local-driver.mjs +8 -3
- package/esm/storage/drivers/local-driver.mjs.map +1 -1
- package/esm/storage/drivers/r2-driver.d.mts +1 -3
- package/esm/storage/drivers/r2-driver.d.mts.map +1 -1
- package/esm/storage/drivers/s3-driver.d.mts +1 -3
- package/esm/storage/drivers/s3-driver.d.mts.map +1 -1
- package/esm/storage/index.d.mts +2 -1
- package/esm/storage/index.mjs +1 -1
- package/esm/storage/local-disk-roots.mjs +2 -2
- package/esm/storage/local-disk-roots.mjs.map +1 -1
- package/esm/storage/scoped-storage.d.mts +2 -3
- package/esm/storage/scoped-storage.d.mts.map +1 -1
- package/esm/storage/storage-file.d.mts +1 -3
- package/esm/storage/storage-file.d.mts.map +1 -1
- package/esm/storage/storage.d.mts +3 -4
- package/esm/storage/storage.d.mts.map +1 -1
- package/esm/storage/types.d.mts +36 -36
- package/esm/storage/types.d.mts.map +1 -1
- package/esm/storage/utils/classify-ip-address.d.mts +1 -2
- package/esm/storage/utils/classify-ip-address.d.mts.map +1 -1
- package/esm/storage/utils/contain-path.d.mts +1 -2
- package/esm/storage/utils/contain-path.d.mts.map +1 -1
- package/esm/storage/utils/mime.d.mts +2 -3
- package/esm/storage/utils/mime.d.mts.map +1 -1
- package/esm/storage/utils/safe-fetch.d.mts +6 -6
- package/esm/storage/utils/safe-fetch.d.mts.map +1 -1
- package/esm/storage/utils/safe-fetch.mjs +3 -3
- package/esm/storage/utils/safe-fetch.mjs.map +1 -1
- package/esm/storage/utils/storage-capability-error.d.mts +1 -3
- package/esm/storage/utils/storage-capability-error.d.mts.map +1 -1
- package/esm/storage/utils/storage-error.d.mts +2 -3
- package/esm/storage/utils/storage-error.d.mts.map +1 -1
- package/esm/storage/utils/storage-not-initialized-error.d.mts +1 -2
- package/esm/storage/utils/storage-not-initialized-error.d.mts.map +1 -1
- package/esm/tests/authenticated-test-client.d.mts +5 -6
- package/esm/tests/authenticated-test-client.d.mts.map +1 -1
- package/esm/tests/factories.d.mts +38 -23
- package/esm/tests/factories.d.mts.map +1 -1
- package/esm/tests/fakes/cache-fake.d.mts +14 -9
- package/esm/tests/fakes/cache-fake.d.mts.map +1 -1
- package/esm/tests/fakes/clock-fake.d.mts +13 -8
- package/esm/tests/fakes/clock-fake.d.mts.map +1 -1
- package/esm/tests/fakes/fake-assertion-error.d.mts +2 -3
- package/esm/tests/fakes/fake-assertion-error.d.mts.map +1 -1
- package/esm/tests/fakes/ids-fake.d.mts +5 -4
- package/esm/tests/fakes/ids-fake.d.mts.map +1 -1
- package/esm/tests/fakes/index.d.mts +2 -1
- package/esm/tests/fakes/index.mjs +1 -1
- package/esm/tests/fakes/mail-fake.d.mts +21 -13
- package/esm/tests/fakes/mail-fake.d.mts.map +1 -1
- package/esm/tests/fakes/queue-fake.d.mts +21 -13
- package/esm/tests/fakes/queue-fake.d.mts.map +1 -1
- package/esm/tests/fakes/storage-fake.d.mts +12 -8
- package/esm/tests/fakes/storage-fake.d.mts.map +1 -1
- package/esm/tests/fakes/storage-fake.mjs +1 -1
- package/esm/tests/fakes/test-fakes.d.mts +8 -9
- package/esm/tests/fakes/test-fakes.d.mts.map +1 -1
- package/esm/tests/fakes/test-fakes.mjs +1 -1
- package/esm/tests/fakes/test-fakes.mjs.map +1 -1
- package/esm/tests/index.d.mts +1 -0
- package/esm/tests/snapshot-response.d.mts +4 -5
- package/esm/tests/snapshot-response.d.mts.map +1 -1
- package/esm/tests/start-http-development-server.d.mts +4 -6
- package/esm/tests/start-http-development-server.d.mts.map +1 -1
- package/esm/tests/start-http-development-server.mjs +5 -5
- package/esm/tests/start-http-development-server.mjs.map +1 -1
- package/esm/tests/test-connectors-selection.d.mts +2 -2
- package/esm/tests/test-connectors-selection.d.mts.map +1 -1
- package/esm/tests/test-connectors-selection.mjs +1 -1
- package/esm/tests/test-helpers.d.mts +11 -12
- package/esm/tests/test-helpers.d.mts.map +1 -1
- package/esm/tests/test-http-server.d.mts +14 -10
- package/esm/tests/test-http-server.d.mts.map +1 -1
- package/esm/tests/test-lifecycle-state.mjs +1 -1
- package/esm/tests/vitest-setup.d.mts +6 -7
- package/esm/tests/vitest-setup.d.mts.map +1 -1
- package/esm/tooling/agents-md/agents-md-markers.d.mts +4 -5
- package/esm/tooling/agents-md/agents-md-markers.d.mts.map +1 -1
- package/esm/tooling/agents-md/agents-md-markers.mjs +2 -1
- package/esm/tooling/agents-md/agents-md-markers.mjs.map +1 -1
- package/esm/tooling/agents-md/agents-md-refresher.d.mts +19 -12
- package/esm/tooling/agents-md/agents-md-refresher.d.mts.map +1 -1
- package/esm/tooling/agents-md/installed-skills.d.mts +13 -9
- package/esm/tooling/agents-md/installed-skills.d.mts.map +1 -1
- package/esm/tooling/agents-md/render-agents-md.d.mts +8 -7
- package/esm/tooling/agents-md/render-agents-md.d.mts.map +1 -1
- package/esm/tooling/agents-md/render-agents-md.mjs +2 -2
- package/esm/tooling/agents-md/render-agents-md.mjs.map +1 -1
- package/esm/tooling/agents-md/write-agents-md.d.mts +17 -12
- package/esm/tooling/agents-md/write-agents-md.d.mts.map +1 -1
- package/esm/tooling/board/board-message.d.mts +4 -6
- package/esm/tooling/board/board-message.d.mts.map +1 -1
- package/esm/tooling/board/board.d.mts +50 -38
- package/esm/tooling/board/board.d.mts.map +1 -1
- package/esm/tooling/board/board.mjs +4 -3
- package/esm/tooling/board/board.mjs.map +1 -1
- package/esm/tooling/board/board.types.d.mts +32 -23
- package/esm/tooling/board/board.types.d.mts.map +1 -1
- package/esm/tooling/check/changed-files.d.mts +4 -6
- package/esm/tooling/check/changed-files.d.mts.map +1 -1
- package/esm/tooling/check/changed-files.mjs +2 -2
- package/esm/tooling/check/changed-files.mjs.map +1 -1
- package/esm/tooling/check/check-report.types.d.mts +22 -17
- package/esm/tooling/check/check-report.types.d.mts.map +1 -1
- package/esm/tooling/check/code-style-conventions.mjs +25 -25
- package/esm/tooling/check/code-style-conventions.mjs.map +1 -1
- package/esm/tooling/check/conventions-step.d.mts +4 -6
- package/esm/tooling/check/conventions-step.d.mts.map +1 -1
- package/esm/tooling/check/conventions-step.mjs +7 -18
- package/esm/tooling/check/conventions-step.mjs.map +1 -1
- package/esm/tooling/check/environment-step.d.mts +2 -4
- package/esm/tooling/check/environment-step.d.mts.map +1 -1
- package/esm/tooling/check/environment-step.mjs +1 -1
- package/esm/tooling/check/index.mjs +1 -1
- package/esm/tooling/check/lint-step.d.mts +4 -5
- package/esm/tooling/check/lint-step.d.mts.map +1 -1
- package/esm/tooling/check/lint-step.mjs +2 -1
- package/esm/tooling/check/lint-step.mjs.map +1 -1
- package/esm/tooling/check/request-input.mjs +15 -15
- package/esm/tooling/check/request-input.mjs.map +1 -1
- package/esm/tooling/check/run-check.d.mts +22 -14
- package/esm/tooling/check/run-check.d.mts.map +1 -1
- package/esm/tooling/check/run-tests.d.mts +22 -15
- package/esm/tooling/check/run-tests.d.mts.map +1 -1
- package/esm/tooling/check/security-conventions.mjs +133 -131
- package/esm/tooling/check/security-conventions.mjs.map +1 -1
- package/esm/tooling/check/source-ast.mjs +92 -132
- package/esm/tooling/check/source-ast.mjs.map +1 -1
- package/esm/tooling/check/tests-step.d.mts +7 -8
- package/esm/tooling/check/tests-step.d.mts.map +1 -1
- package/esm/tooling/check/tests-step.mjs +3 -3
- package/esm/tooling/check/tests-step.mjs.map +1 -1
- package/esm/tooling/dev-state/dev-server-state.d.mts +17 -13
- package/esm/tooling/dev-state/dev-server-state.d.mts.map +1 -1
- package/esm/tooling/devtools/devtools-client.d.mts +29 -20
- package/esm/tooling/devtools/devtools-client.d.mts.map +1 -1
- package/esm/tooling/generate/generation.d.mts +34 -22
- package/esm/tooling/generate/generation.d.mts.map +1 -1
- package/esm/tooling/generate/generation.mjs +9 -5
- package/esm/tooling/generate/generation.mjs.map +1 -1
- package/esm/tooling/generate/generator-spec.d.mts +9 -9
- package/esm/tooling/generate/generator-spec.d.mts.map +1 -1
- package/esm/tooling/generate/index.mjs +1 -1
- package/esm/tooling/generate/project-files.mjs +3 -3
- package/esm/tooling/generate/project-files.mjs.map +1 -1
- package/esm/tooling/generate/run-cli.d.mts +14 -11
- package/esm/tooling/generate/run-cli.d.mts.map +1 -1
- package/esm/tooling/generate/run-cli.mjs +2 -2
- package/esm/tooling/generate/run-cli.mjs.map +1 -1
- package/esm/tooling/generate/unified-diff.d.mts +10 -7
- package/esm/tooling/generate/unified-diff.d.mts.map +1 -1
- package/esm/tooling/index.d.mts +1 -0
- package/esm/tooling/inspect/boot-for-inspect.d.mts +7 -7
- package/esm/tooling/inspect/boot-for-inspect.d.mts.map +1 -1
- package/esm/tooling/inspect/collect-config.mjs +3 -3
- package/esm/tooling/inspect/collect-config.mjs.map +1 -1
- package/esm/tooling/inspect/collect-models.d.mts +4 -3
- package/esm/tooling/inspect/collect-models.d.mts.map +1 -1
- package/esm/tooling/inspect/collect-models.mjs +1 -1
- package/esm/tooling/inspect/collect-packages.d.mts +1 -2
- package/esm/tooling/inspect/collect-packages.d.mts.map +1 -1
- package/esm/tooling/inspect/collect-pages.mjs +10 -10
- package/esm/tooling/inspect/collect-pages.mjs.map +1 -1
- package/esm/tooling/inspect/collect-routes.mjs +1 -1
- package/esm/tooling/inspect/event-recorder.d.mts +7 -7
- package/esm/tooling/inspect/event-recorder.d.mts.map +1 -1
- package/esm/tooling/inspect/index.d.mts +2 -1
- package/esm/tooling/inspect/index.mjs +1 -1
- package/esm/tooling/inspect/inspect-app.d.mts +25 -16
- package/esm/tooling/inspect/inspect-app.d.mts.map +1 -1
- package/esm/tooling/inspect/inspect-report.schema.d.mts +1 -2
- package/esm/tooling/inspect/inspect-report.schema.d.mts.map +1 -1
- package/esm/tooling/inspect/inspect-report.types.d.mts +86 -54
- package/esm/tooling/inspect/inspect-report.types.d.mts.map +1 -1
- package/esm/tooling/mcp/create-mcp-context.d.mts +11 -8
- package/esm/tooling/mcp/create-mcp-context.d.mts.map +1 -1
- package/esm/tooling/mcp/db-schema.d.mts +10 -9
- package/esm/tooling/mcp/db-schema.d.mts.map +1 -1
- package/esm/tooling/mcp/docs-search.d.mts +20 -15
- package/esm/tooling/mcp/docs-search.d.mts.map +1 -1
- package/esm/tooling/mcp/index.mjs +1 -1
- package/esm/tooling/mcp/load-ai-tools.d.mts +7 -8
- package/esm/tooling/mcp/load-ai-tools.d.mts.map +1 -1
- package/esm/tooling/mcp/load-ai-tools.mjs +2 -1
- package/esm/tooling/mcp/load-ai-tools.mjs.map +1 -1
- package/esm/tooling/mcp/mcp-tools.d.mts +29 -19
- package/esm/tooling/mcp/mcp-tools.d.mts.map +1 -1
- package/esm/tooling/mcp/mcp-tools.mjs +3 -2
- package/esm/tooling/mcp/mcp-tools.mjs.map +1 -1
- package/esm/tooling/mcp/start-mcp-server.d.mts +24 -17
- package/esm/tooling/mcp/start-mcp-server.d.mts.map +1 -1
- package/esm/tooling/mcp/start-mcp-server.mjs +1 -1
- package/esm/tooling/mcp/start-mcp-server.mjs.map +1 -1
- package/esm/tooling/mcp/tool-input.d.mts +7 -7
- package/esm/tooling/mcp/tool-input.d.mts.map +1 -1
- package/esm/tooling/problem.d.mts +27 -17
- package/esm/tooling/problem.d.mts.map +1 -1
- package/esm/tooling/syntax/ast.mjs +230 -0
- package/esm/tooling/syntax/ast.mjs.map +1 -0
- package/esm/tooling/syntax/imports.mjs +34 -0
- package/esm/tooling/syntax/imports.mjs.map +1 -0
- package/esm/tooling/trace/trace-report.types.d.mts +36 -22
- package/esm/tooling/trace/trace-report.types.d.mts.map +1 -1
- package/esm/tooling/trace/trace-request.d.mts +27 -20
- package/esm/tooling/trace/trace-request.d.mts.map +1 -1
- package/esm/tooling/trace/trace-request.mjs +2 -2
- package/esm/tooling/trace/trace-request.mjs.map +1 -1
- package/esm/tooling/typecheck/index.mjs +1 -1
- package/esm/tooling/typecheck/run-typecheck.d.mts +15 -48
- package/esm/tooling/typecheck/run-typecheck.d.mts.map +1 -1
- package/esm/tooling/typecheck/run-typecheck.mjs +42 -105
- package/esm/tooling/typecheck/run-typecheck.mjs.map +1 -1
- package/esm/tooling/typescript/compiler.d.mts +31 -0
- package/esm/tooling/typescript/compiler.d.mts.map +1 -0
- package/esm/tooling/typescript/compiler.mjs +120 -0
- package/esm/tooling/typescript/compiler.mjs.map +1 -0
- package/esm/updater/update-warlock-packages.mjs +3 -2
- package/esm/updater/update-warlock-packages.mjs.map +1 -1
- package/esm/upgrade/codemods/index.mjs +1 -1
- package/esm/upgrade/codemods/logger-sync-calls.mjs +1 -1
- package/esm/upgrade/codemods/logger-sync-calls.mjs.map +1 -1
- package/esm/upgrade/codemods/request-log-snapshot.mjs +1 -1
- package/esm/upgrade/codemods/request-log-snapshot.mjs.map +1 -1
- package/esm/upgrade/diff.mjs +1 -1
- package/esm/upgrade/diff.mjs.map +1 -1
- package/esm/upgrade/load-ts-morph.mjs +3 -2
- package/esm/upgrade/load-ts-morph.mjs.map +1 -1
- package/esm/upgrade/run-upgrade.mjs +1 -1
- package/esm/use-cases/index.d.mts +2 -1
- package/esm/use-cases/index.mjs +1 -1
- package/esm/use-cases/types.d.mts +116 -63
- package/esm/use-cases/types.d.mts.map +1 -1
- package/esm/use-cases/use-case-broadcast.d.mts +1 -3
- package/esm/use-cases/use-case-broadcast.d.mts.map +1 -1
- package/esm/use-cases/use-case-events.d.mts +3 -5
- package/esm/use-cases/use-case-events.d.mts.map +1 -1
- package/esm/use-cases/use-case-pipeline.d.mts +6 -6
- package/esm/use-cases/use-case-pipeline.d.mts.map +1 -1
- package/esm/use-cases/use-case.d.mts +2 -4
- package/esm/use-cases/use-case.d.mts.map +1 -1
- package/esm/use-cases/use-case.errors.d.mts +1 -3
- package/esm/use-cases/use-case.errors.d.mts.map +1 -1
- package/esm/use-cases/use-cases-registry.d.mts +8 -10
- package/esm/use-cases/use-cases-registry.d.mts.map +1 -1
- package/esm/utils/app-log.d.mts +1 -2
- package/esm/utils/app-log.d.mts.map +1 -1
- package/esm/utils/clock.d.mts +8 -6
- package/esm/utils/clock.d.mts.map +1 -1
- package/esm/utils/database-log.d.mts +3 -4
- package/esm/utils/database-log.d.mts.map +1 -1
- package/esm/utils/environment.d.mts +4 -5
- package/esm/utils/environment.d.mts.map +1 -1
- package/esm/utils/framework-vesion.mjs.map +1 -1
- package/esm/utils/get-localized.d.mts +2 -3
- package/esm/utils/get-localized.d.mts.map +1 -1
- package/esm/utils/ids.d.mts +9 -6
- package/esm/utils/ids.d.mts.map +1 -1
- package/esm/utils/index.d.mts +2 -1
- package/esm/utils/index.mjs +1 -1
- package/esm/utils/normalized-path.d.mts +1 -2
- package/esm/utils/normalized-path.d.mts.map +1 -1
- package/esm/utils/npm-registry.d.mts +1 -2
- package/esm/utils/npm-registry.d.mts.map +1 -1
- package/esm/utils/paths.d.mts +13 -14
- package/esm/utils/paths.d.mts.map +1 -1
- package/esm/utils/paths.mjs +2 -2
- package/esm/utils/paths.mjs.map +1 -1
- package/esm/utils/promise-all-object.d.mts +1 -2
- package/esm/utils/promise-all-object.d.mts.map +1 -1
- package/esm/utils/queue.d.mts +1 -2
- package/esm/utils/queue.d.mts.map +1 -1
- package/esm/utils/runtime.d.mts +11 -10
- package/esm/utils/runtime.d.mts.map +1 -1
- package/esm/utils/sleep.d.mts +1 -2
- package/esm/utils/sleep.d.mts.map +1 -1
- package/esm/utils/sluggable.d.mts +1 -3
- package/esm/utils/sluggable.d.mts.map +1 -1
- package/esm/utils/to-json.d.mts +1 -2
- package/esm/utils/to-json.d.mts.map +1 -1
- package/esm/utils/types.d.mts +1 -2
- package/esm/utils/types.d.mts.map +1 -1
- package/esm/utils/urls.d.mts +5 -6
- package/esm/utils/urls.d.mts.map +1 -1
- package/esm/utils/version-compare.d.mts +1 -2
- package/esm/utils/version-compare.d.mts.map +1 -1
- package/esm/validation/database/exists-except-current-id.d.mts +2 -3
- package/esm/validation/database/exists-except-current-id.d.mts.map +1 -1
- package/esm/validation/database/exists-except-current-user.d.mts +2 -3
- package/esm/validation/database/exists-except-current-user.d.mts.map +1 -1
- package/esm/validation/database/index.d.mts +2 -1
- package/esm/validation/database/index.mjs +1 -1
- package/esm/validation/database/types.d.mts +14 -10
- package/esm/validation/database/types.d.mts.map +1 -1
- package/esm/validation/database/unique-except-current-id.d.mts +2 -3
- package/esm/validation/database/unique-except-current-id.d.mts.map +1 -1
- package/esm/validation/database/unique-except-current-user.d.mts +2 -3
- package/esm/validation/database/unique-except-current-user.d.mts.map +1 -1
- package/esm/validation/file/file.d.mts +4 -6
- package/esm/validation/file/file.d.mts.map +1 -1
- package/esm/validation/file/index.d.mts +2 -1
- package/esm/validation/file/index.mjs +1 -1
- package/esm/validation/index.d.mts +5 -1
- package/esm/validation/index.mjs +1 -1
- package/esm/validation/plugins/index.mjs +1 -1
- package/esm/validation/types.d.mts +6 -4
- package/esm/validation/types.d.mts.map +1 -1
- package/esm/validation/validateAll.mjs +2 -2
- package/esm/validation/validateAll.mjs.map +1 -1
- package/esm/validation/validation-failure-status.mjs +2 -2
- package/esm/validation/validation-failure-status.mjs.map +1 -1
- package/esm/validation/validators/file-validator.d.mts +2 -4
- package/esm/validation/validators/file-validator.d.mts.map +1 -1
- package/esm/validation/validators/index.d.mts +2 -1
- package/esm/validation/validators/index.mjs +1 -1
- package/esm/vite/lower-stage3-decorators.d.mts +2 -3
- package/esm/vite/lower-stage3-decorators.d.mts.map +1 -1
- package/esm/warlock-config/define-config.d.mts +1 -3
- package/esm/warlock-config/define-config.d.mts.map +1 -1
- package/esm/warlock-config/define-config.mjs +3 -2
- package/esm/warlock-config/define-config.mjs.map +1 -1
- package/esm/warlock-config/index.d.mts +2 -1
- package/esm/warlock-config/index.mjs +1 -1
- package/esm/warlock-config/types.d.mts +6 -5
- package/esm/warlock-config/types.d.mts.map +1 -1
- package/esm/warlock-config/warlock-config.manager.d.mts +5 -7
- package/esm/warlock-config/warlock-config.manager.d.mts.map +1 -1
- package/esm/warlock-config/warlock-config.manager.mjs +2 -1
- package/esm/warlock-config/warlock-config.manager.mjs.map +1 -1
- package/esm/warlock-config/warn-deprecated-config.mjs +1 -1
- package/llms-full.txt +55 -5
- package/package.json +17 -15
- package/skills/create-module/SKILL.md +7 -0
- package/skills/index.md +2 -0
- package/skills/report-framework-issue.md +154 -0
- package/skills/run-app/SKILL.md +6 -5
- package/skills/upgrade-from-5-29/SKILL.md +41 -0
- package/skills/warlock-check/SKILL.md +1 -0
- package/esm/tooling/check/index.d.mts +0 -8
- package/esm/tooling/typecheck/index.d.mts +0 -1
|
@@ -2,7 +2,7 @@ import { ConnectorLifecyclePhase, ConnectorPriority } from "./types.mjs";
|
|
|
2
2
|
import { BaseConnector } from "./base-connector.mjs";
|
|
3
3
|
import { setLogConfigurations } from "../logger/logger.mjs";
|
|
4
4
|
import "../logger/index.mjs";
|
|
5
|
-
import
|
|
5
|
+
import baseConfig from "@mongez/config";
|
|
6
6
|
import { log } from "@warlock.js/logger";
|
|
7
7
|
|
|
8
8
|
//#region ../../packages/core/src/connectors/logger-connector.ts
|
|
@@ -22,7 +22,7 @@ var LoggerConnector = class extends BaseConnector {
|
|
|
22
22
|
* Initialize logger configurations
|
|
23
23
|
*/
|
|
24
24
|
async start() {
|
|
25
|
-
const logConfig =
|
|
25
|
+
const logConfig = baseConfig.get("log");
|
|
26
26
|
if (!logConfig) return;
|
|
27
27
|
try {
|
|
28
28
|
setLogConfigurations(logConfig);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger-connector.mjs","names":[],"sources":["../../../../../../../../packages/core/src/connectors/logger-connector.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport { log } from \"@warlock.js/logger\";\nimport { setLogConfigurations } from \"../logger\";\nimport { BaseConnector } from \"./base-connector\";\nimport { ConnectorLifecyclePhase, ConnectorPriority } from \"./types\";\n\n/**\n * Logger Connector\n * Manages logger lifecycle and ensures synchronous flushing on termination\n */\nexport class LoggerConnector extends BaseConnector {\n public readonly name = \"logger\";\n public readonly priority = ConnectorPriority.LOGGER;\n public readonly lifecyclePhase = ConnectorLifecyclePhase.Early;\n\n /**\n * Files that trigger logger restart\n */\n protected readonly watchedFiles = [\"src/config/log.ts\", \"src/config/log.tsx\"];\n\n /**\n * Initialize logger configurations\n */\n public async start(): Promise<void> {\n const logConfig = config.get(\"log\");\n\n if (!logConfig) {\n return;\n }\n\n try {\n setLogConfigurations(logConfig);\n this.active = true;\n } catch (error) {\n console.error(\"Failed to initialize logger:\", error);\n throw error;\n }\n }\n\n /**\n * Shutdown logger and flush messages synchronously\n */\n public async shutdown(): Promise<void> {\n if (!this.active) {\n return;\n }\n\n try {\n log.flushSync();\n this.active = false;\n } catch (error) {\n console.error(\"Failed to flush logger:\", error);\n throw error;\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;AAUA,IAAa,kBAAb,cAAqC,cAAc;;;cAC1B;;;sBAOW,CAAC,qBAAqB,oBAAoB;;;;;CAK5E,MAAa,QAAuB;EAClC,MAAM,
|
|
1
|
+
{"version":3,"file":"logger-connector.mjs","names":["config"],"sources":["../../../../../../../../packages/core/src/connectors/logger-connector.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport { log } from \"@warlock.js/logger\";\nimport { setLogConfigurations } from \"../logger\";\nimport { BaseConnector } from \"./base-connector\";\nimport { ConnectorLifecyclePhase, ConnectorPriority } from \"./types\";\n\n/**\n * Logger Connector\n * Manages logger lifecycle and ensures synchronous flushing on termination\n */\nexport class LoggerConnector extends BaseConnector {\n public readonly name = \"logger\";\n public readonly priority = ConnectorPriority.LOGGER;\n public readonly lifecyclePhase = ConnectorLifecyclePhase.Early;\n\n /**\n * Files that trigger logger restart\n */\n protected readonly watchedFiles = [\"src/config/log.ts\", \"src/config/log.tsx\"];\n\n /**\n * Initialize logger configurations\n */\n public async start(): Promise<void> {\n const logConfig = config.get(\"log\");\n\n if (!logConfig) {\n return;\n }\n\n try {\n setLogConfigurations(logConfig);\n this.active = true;\n } catch (error) {\n console.error(\"Failed to initialize logger:\", error);\n throw error;\n }\n }\n\n /**\n * Shutdown logger and flush messages synchronously\n */\n public async shutdown(): Promise<void> {\n if (!this.active) {\n return;\n }\n\n try {\n log.flushSync();\n this.active = false;\n } catch (error) {\n console.error(\"Failed to flush logger:\", error);\n throw error;\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;AAUA,IAAa,kBAAb,cAAqC,cAAc;;;cAC1B;;;sBAOW,CAAC,qBAAqB,oBAAoB;;;;;CAK5E,MAAa,QAAuB;EAClC,MAAM,YAAYA,WAAO,IAAI,KAAK;EAElC,IAAI,CAAC,WACH;EAGF,IAAI;GACF,qBAAqB,SAAS;GAC9B,KAAK,SAAS;EAChB,SAAS,OAAO;GACd,QAAQ,MAAM,gCAAgC,KAAK;GACnD,MAAM;EACR;CACF;;;;CAKA,MAAa,WAA0B;EACrC,IAAI,CAAC,KAAK,QACR;EAGF,IAAI;GACF,IAAI,UAAU;GACd,KAAK,SAAS;EAChB,SAAS,OAAO;GACd,QAAQ,MAAM,2BAA2B,KAAK;GAC9C,MAAM;EACR;CACF;AACF"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { ConnectorLifecyclePhase, ConnectorPriority } from "./types.mjs";
|
|
2
2
|
import { BaseConnector } from "./base-connector.mjs";
|
|
3
|
-
|
|
4
3
|
//#region ../../packages/core/src/connectors/mail-connector.d.ts
|
|
5
4
|
/**
|
|
6
5
|
* Mailer Connector
|
|
7
6
|
* Manages mailer lifecycle and ensures graceful pool shutdown
|
|
8
7
|
*/
|
|
9
|
-
declare class MailerConnector extends BaseConnector {
|
|
8
|
+
export declare class MailerConnector extends BaseConnector {
|
|
10
9
|
readonly name = "mailer";
|
|
11
10
|
readonly priority = ConnectorPriority.MAILER;
|
|
12
11
|
readonly lifecyclePhase = ConnectorLifecyclePhase.Early;
|
|
@@ -24,5 +23,4 @@ declare class MailerConnector extends BaseConnector {
|
|
|
24
23
|
shutdown(): Promise<void>;
|
|
25
24
|
}
|
|
26
25
|
//#endregion
|
|
27
|
-
export { MailerConnector };
|
|
28
26
|
//# sourceMappingURL=mail-connector.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail-connector.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/connectors/mail-connector.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"mail-connector.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/connectors/mail-connector.ts"],"mappings":";;;;;;;qBASa,wBAAwB;WACnB;WACA,WAAQ,kBAAA;WACR,iBAAc,wBAAA;;;;qBAKX;;;;EAKN,SAAS;;;;EAmBT,YAAY"}
|
|
@@ -3,7 +3,7 @@ import { BaseConnector } from "./base-connector.mjs";
|
|
|
3
3
|
import { setMailConfigurations } from "../mail/config.mjs";
|
|
4
4
|
import { closeAllMailers } from "../mail/mailer-pool.mjs";
|
|
5
5
|
import "../mail/index.mjs";
|
|
6
|
-
import
|
|
6
|
+
import baseConfig from "@mongez/config";
|
|
7
7
|
|
|
8
8
|
//#region ../../packages/core/src/connectors/mail-connector.ts
|
|
9
9
|
/**
|
|
@@ -26,7 +26,7 @@ var MailerConnector = class extends BaseConnector {
|
|
|
26
26
|
* Initialize mailer configurations
|
|
27
27
|
*/
|
|
28
28
|
async start() {
|
|
29
|
-
const mailConfig =
|
|
29
|
+
const mailConfig = baseConfig.get("mail");
|
|
30
30
|
if (!mailConfig) return;
|
|
31
31
|
try {
|
|
32
32
|
setMailConfigurations(mailConfig);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail-connector.mjs","names":[],"sources":["../../../../../../../../packages/core/src/connectors/mail-connector.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport { closeAllMailers, setMailConfigurations } from \"../mail\";\nimport { BaseConnector } from \"./base-connector\";\nimport { ConnectorLifecyclePhase, ConnectorPriority } from \"./types\";\n\n/**\n * Mailer Connector\n * Manages mailer lifecycle and ensures graceful pool shutdown\n */\nexport class MailerConnector extends BaseConnector {\n public readonly name = \"mailer\";\n public readonly priority = ConnectorPriority.MAILER;\n public readonly lifecyclePhase = ConnectorLifecyclePhase.Early;\n\n /**\n * Files that trigger mailer restart\n */\n protected readonly watchedFiles = [\".env\", \"src/config/mail.ts\", \"src/config/mail.tsx\"];\n\n /**\n * Initialize mailer configurations\n */\n public async start(): Promise<void> {\n const mailConfig = config.get(\"mail\");\n\n if (!mailConfig) {\n return;\n }\n\n try {\n setMailConfigurations(mailConfig);\n this.active = true;\n } catch (error) {\n console.error(\"Failed to initialize mailer:\", error);\n throw error;\n }\n }\n\n /**\n * Shutdown mailer pool\n */\n public async shutdown(): Promise<void> {\n if (!this.active) {\n return;\n }\n\n try {\n closeAllMailers();\n this.active = false;\n } catch (error) {\n console.error(\"Failed to close all mailers:\", error);\n throw error;\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;AASA,IAAa,kBAAb,cAAqC,cAAc;;;cAC1B;;;sBAOW;GAAC;GAAQ;GAAsB;EAAqB;;;;;CAKtF,MAAa,QAAuB;EAClC,MAAM,
|
|
1
|
+
{"version":3,"file":"mail-connector.mjs","names":["config"],"sources":["../../../../../../../../packages/core/src/connectors/mail-connector.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport { closeAllMailers, setMailConfigurations } from \"../mail\";\nimport { BaseConnector } from \"./base-connector\";\nimport { ConnectorLifecyclePhase, ConnectorPriority } from \"./types\";\n\n/**\n * Mailer Connector\n * Manages mailer lifecycle and ensures graceful pool shutdown\n */\nexport class MailerConnector extends BaseConnector {\n public readonly name = \"mailer\";\n public readonly priority = ConnectorPriority.MAILER;\n public readonly lifecyclePhase = ConnectorLifecyclePhase.Early;\n\n /**\n * Files that trigger mailer restart\n */\n protected readonly watchedFiles = [\".env\", \"src/config/mail.ts\", \"src/config/mail.tsx\"];\n\n /**\n * Initialize mailer configurations\n */\n public async start(): Promise<void> {\n const mailConfig = config.get(\"mail\");\n\n if (!mailConfig) {\n return;\n }\n\n try {\n setMailConfigurations(mailConfig);\n this.active = true;\n } catch (error) {\n console.error(\"Failed to initialize mailer:\", error);\n throw error;\n }\n }\n\n /**\n * Shutdown mailer pool\n */\n public async shutdown(): Promise<void> {\n if (!this.active) {\n return;\n }\n\n try {\n closeAllMailers();\n this.active = false;\n } catch (error) {\n console.error(\"Failed to close all mailers:\", error);\n throw error;\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;AASA,IAAa,kBAAb,cAAqC,cAAc;;;cAC1B;;;sBAOW;GAAC;GAAQ;GAAsB;EAAqB;;;;;CAKtF,MAAa,QAAuB;EAClC,MAAM,aAAaA,WAAO,IAAI,MAAM;EAEpC,IAAI,CAAC,YACH;EAGF,IAAI;GACF,sBAAsB,UAAU;GAChC,KAAK,SAAS;EAChB,SAAS,OAAO;GACd,QAAQ,MAAM,gCAAgC,KAAK;GACnD,MAAM;EACR;CACF;;;;CAKA,MAAa,WAA0B;EACrC,IAAI,CAAC,KAAK,QACR;EAGF,IAAI;GACF,gBAAgB;GAChB,KAAK,SAAS;EAChB,SAAS,OAAO;GACd,QAAQ,MAAM,gCAAgC,KAAK;GACnD,MAAM;EACR;CACF;AACF"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ConnectorLifecyclePhase, ConnectorPriority } from "./types.mjs";
|
|
2
2
|
import { BaseConnector } from "./base-connector.mjs";
|
|
3
|
-
|
|
4
3
|
//#region ../../packages/core/src/connectors/notifications-connector.d.ts
|
|
5
4
|
/**
|
|
6
5
|
* Notifications Connector
|
|
@@ -14,7 +13,7 @@ import { BaseConnector } from "./base-connector.mjs";
|
|
|
14
13
|
* so core carries no hard dependency on it — the same pattern as the herald
|
|
15
14
|
* connector with `@warlock.js/herald`.
|
|
16
15
|
*/
|
|
17
|
-
declare class NotificationsConnector extends BaseConnector {
|
|
16
|
+
export declare class NotificationsConnector extends BaseConnector {
|
|
18
17
|
readonly name = "notifications";
|
|
19
18
|
readonly priority = ConnectorPriority.NOTIFICATIONS;
|
|
20
19
|
readonly lifecyclePhase = ConnectorLifecyclePhase.Early;
|
|
@@ -34,5 +33,4 @@ declare class NotificationsConnector extends BaseConnector {
|
|
|
34
33
|
shutdown(): Promise<void>;
|
|
35
34
|
}
|
|
36
35
|
//#endregion
|
|
37
|
-
export { NotificationsConnector };
|
|
38
36
|
//# sourceMappingURL=notifications-connector.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications-connector.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/connectors/notifications-connector.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"notifications-connector.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/connectors/notifications-connector.ts"],"mappings":";;;;;;;;;;;;;;;qBAiBa,+BAA+B;WAC1B;WACA,WAAQ,kBAAA;WACR,iBAAc,wBAAA;;;;qBAKX;;;;EAKN,SAAS;;;;;;EAoBT,YAAY"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ConnectorLifecyclePhase, ConnectorPriority } from "./types.mjs";
|
|
2
2
|
import { BaseConnector } from "./base-connector.mjs";
|
|
3
|
-
import
|
|
3
|
+
import baseConfig from "@mongez/config";
|
|
4
4
|
import { log } from "@warlock.js/logger";
|
|
5
5
|
|
|
6
6
|
//#region ../../packages/core/src/connectors/notifications-connector.ts
|
|
@@ -28,7 +28,7 @@ var NotificationsConnector = class extends BaseConnector {
|
|
|
28
28
|
* Register the notifications configuration with the package.
|
|
29
29
|
*/
|
|
30
30
|
async start() {
|
|
31
|
-
const notificationsConfig =
|
|
31
|
+
const notificationsConfig = baseConfig.get("notifications");
|
|
32
32
|
if (!notificationsConfig) return;
|
|
33
33
|
const { setNotificationConfig } = await import("@warlock.js/notifications");
|
|
34
34
|
setNotificationConfig(notificationsConfig);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications-connector.mjs","names":[],"sources":["../../../../../../../../packages/core/src/connectors/notifications-connector.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport { log } from \"@warlock.js/logger\";\nimport { BaseConnector } from \"./base-connector\";\nimport { ConnectorLifecyclePhase, ConnectorPriority } from \"./types\";\n\n/**\n * Notifications Connector\n *\n * Wires `@warlock.js/notifications` from `src/config/notifications.ts` at boot:\n * reads the exported config object and hands it to the package's\n * `setNotificationConfig`. Config files stay declarative — they export the\n * config, the connector performs the side-effect.\n *\n * The package is lazy-imported (only when a notifications config is present),\n * so core carries no hard dependency on it — the same pattern as the herald\n * connector with `@warlock.js/herald`.\n */\nexport class NotificationsConnector extends BaseConnector {\n public readonly name = \"notifications\";\n public readonly priority = ConnectorPriority.NOTIFICATIONS;\n public readonly lifecyclePhase = ConnectorLifecyclePhase.Early;\n\n /**\n * Files that trigger a notifications restart\n */\n protected readonly watchedFiles = [\"src/config/notifications.ts\"];\n\n /**\n * Register the notifications configuration with the package.\n */\n public async start(): Promise<void> {\n const notificationsConfig = config.get(\"notifications\");\n\n if (!notificationsConfig) {\n return;\n }\n\n const { setNotificationConfig } = await import(\"@warlock.js/notifications\");\n\n setNotificationConfig(notificationsConfig);\n this.active = true;\n\n log.info(\"notifications\", \"configured\", \"Notifications wired from config/notifications.ts\");\n }\n\n /**\n * Nothing to tear down — the package holds no external connection of its own\n * (the optional queue worker + its broker own their lifecycle). Clear the\n * active flag so a dev restart re-registers from the (possibly changed) config.\n */\n public async shutdown(): Promise<void> {\n if (!this.active) {\n return;\n }\n\n this.active = false;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAiBA,IAAa,yBAAb,cAA4C,cAAc;;;cACjC;;;sBAOW,CAAC,6BAA6B;;;;;CAKhE,MAAa,QAAuB;EAClC,MAAM,
|
|
1
|
+
{"version":3,"file":"notifications-connector.mjs","names":["config"],"sources":["../../../../../../../../packages/core/src/connectors/notifications-connector.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport { log } from \"@warlock.js/logger\";\nimport { BaseConnector } from \"./base-connector\";\nimport { ConnectorLifecyclePhase, ConnectorPriority } from \"./types\";\n\n/**\n * Notifications Connector\n *\n * Wires `@warlock.js/notifications` from `src/config/notifications.ts` at boot:\n * reads the exported config object and hands it to the package's\n * `setNotificationConfig`. Config files stay declarative — they export the\n * config, the connector performs the side-effect.\n *\n * The package is lazy-imported (only when a notifications config is present),\n * so core carries no hard dependency on it — the same pattern as the herald\n * connector with `@warlock.js/herald`.\n */\nexport class NotificationsConnector extends BaseConnector {\n public readonly name = \"notifications\";\n public readonly priority = ConnectorPriority.NOTIFICATIONS;\n public readonly lifecyclePhase = ConnectorLifecyclePhase.Early;\n\n /**\n * Files that trigger a notifications restart\n */\n protected readonly watchedFiles = [\"src/config/notifications.ts\"];\n\n /**\n * Register the notifications configuration with the package.\n */\n public async start(): Promise<void> {\n const notificationsConfig = config.get(\"notifications\");\n\n if (!notificationsConfig) {\n return;\n }\n\n const { setNotificationConfig } = await import(\"@warlock.js/notifications\");\n\n setNotificationConfig(notificationsConfig);\n this.active = true;\n\n log.info(\"notifications\", \"configured\", \"Notifications wired from config/notifications.ts\");\n }\n\n /**\n * Nothing to tear down — the package holds no external connection of its own\n * (the optional queue worker + its broker own their lifecycle). Clear the\n * active flag so a dev restart re-registers from the (possibly changed) config.\n */\n public async shutdown(): Promise<void> {\n if (!this.active) {\n return;\n }\n\n this.active = false;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAiBA,IAAa,yBAAb,cAA4C,cAAc;;;cACjC;;;sBAOW,CAAC,6BAA6B;;;;;CAKhE,MAAa,QAAuB;EAClC,MAAM,sBAAsBA,WAAO,IAAI,eAAe;EAEtD,IAAI,CAAC,qBACH;EAGF,MAAM,EAAE,0BAA0B,MAAM,OAAO;EAE/C,sBAAsB,mBAAmB;EACzC,KAAK,SAAS;EAEd,IAAI,KAAK,iBAAiB,cAAc,kDAAkD;CAC5F;;;;;;CAOA,MAAa,WAA0B;EACrC,IAAI,CAAC,KAAK,QACR;EAGF,KAAK,SAAS;CAChB;AACF"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { Connector } from "./types.mjs";
|
|
2
|
-
|
|
3
2
|
//#region ../../packages/core/src/connectors/register-configured-connectors.d.ts
|
|
4
|
-
type RegisterConfiguredConnectorsOptions = {
|
|
3
|
+
export type RegisterConfiguredConnectorsOptions = {
|
|
5
4
|
/**
|
|
6
5
|
* The connector names, in order, that the build resolved. The generated
|
|
7
6
|
* production entry bakes this in; every other caller omits it.
|
|
8
7
|
*/
|
|
9
8
|
expectedNames?: string[];
|
|
10
9
|
};
|
|
11
|
-
declare function registerConfiguredConnectors(connectors?: Connector[], options?: RegisterConfiguredConnectorsOptions): void;
|
|
10
|
+
export declare function registerConfiguredConnectors(connectors?: Connector[], options?: RegisterConfiguredConnectorsOptions): void;
|
|
12
11
|
//#endregion
|
|
13
|
-
export { RegisterConfiguredConnectorsOptions, registerConfiguredConnectors };
|
|
14
12
|
//# sourceMappingURL=register-configured-connectors.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-configured-connectors.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/connectors/register-configured-connectors.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"register-configured-connectors.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/connectors/register-configured-connectors.ts"],"mappings":";;YAwCY;;;;;EAKV;;wBAGc,6BACd,aAAa,aACb,UAAS"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { ConnectorLifecyclePhase, ConnectorName, ConnectorPriority } from "./types.mjs";
|
|
2
2
|
import { BaseConnector } from "./base-connector.mjs";
|
|
3
3
|
import { Server } from "socket.io";
|
|
4
|
-
|
|
5
4
|
//#region ../../packages/core/src/connectors/socket-connector.d.ts
|
|
6
5
|
/**
|
|
7
6
|
* Socket Connector
|
|
8
7
|
* Manages Socket server (Socket.IO) lifecycle
|
|
9
8
|
*/
|
|
10
|
-
declare class SocketConnector extends BaseConnector {
|
|
9
|
+
export declare class SocketConnector extends BaseConnector {
|
|
11
10
|
readonly name: ConnectorName;
|
|
12
11
|
readonly priority = ConnectorPriority.SOCKET;
|
|
13
12
|
readonly lifecyclePhase = ConnectorLifecyclePhase.Late;
|
|
@@ -76,5 +75,4 @@ declare class SocketConnector extends BaseConnector {
|
|
|
76
75
|
private restoreListeners;
|
|
77
76
|
}
|
|
78
77
|
//#endregion
|
|
79
|
-
export { SocketConnector };
|
|
80
78
|
//# sourceMappingURL=socket-connector.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-connector.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/connectors/socket-connector.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"socket-connector.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/connectors/socket-connector.ts"],"mappings":";;;;;;;;qBAkCa,wBAAwB;WACnB,MAAM;WACN,WAAQ,kBAAA;WACR,iBAAc,wBAAA;;;;;;qBAOX;YAET,SAAS;;;;;;;;;YAUT;;;;YAKA;;;;;;;YAQA;IACR,OAAO,mBAAmB;IAC1B,SAAS,mBAAmB;;;;;EAMjB,QAAI;;;;EA2EJ,SAAS;;;;;EAgBT,WAAW;;;;;;;;;;EAeX,YAAY;;;;UA8BjB;UAUA;;;;;UAsBA"}
|
|
@@ -2,7 +2,7 @@ import { environment } from "../utils/environment.mjs";
|
|
|
2
2
|
import { container } from "../container/index.mjs";
|
|
3
3
|
import { ConnectorLifecyclePhase, ConnectorPriority } from "./types.mjs";
|
|
4
4
|
import { BaseConnector } from "./base-connector.mjs";
|
|
5
|
-
import
|
|
5
|
+
import baseConfig from "@mongez/config";
|
|
6
6
|
import { log } from "@warlock.js/logger";
|
|
7
7
|
import { createServer } from "http";
|
|
8
8
|
import { createServer as createServer$1 } from "https";
|
|
@@ -46,7 +46,7 @@ var SocketConnector = class extends BaseConnector {
|
|
|
46
46
|
* Boot the connector
|
|
47
47
|
*/
|
|
48
48
|
async boot() {
|
|
49
|
-
const socketConfig =
|
|
49
|
+
const socketConfig = baseConfig.get("socket");
|
|
50
50
|
if (!socketConfig) return;
|
|
51
51
|
let SocketServer;
|
|
52
52
|
try {
|
|
@@ -89,7 +89,7 @@ var SocketConnector = class extends BaseConnector {
|
|
|
89
89
|
* Initialize Socket server
|
|
90
90
|
*/
|
|
91
91
|
async start() {
|
|
92
|
-
if (!
|
|
92
|
+
if (!baseConfig.get("socket") || !this.socket) return;
|
|
93
93
|
log.success("socket", "connection", "Established Socket.IO server");
|
|
94
94
|
this.active = true;
|
|
95
95
|
}
|
|
@@ -114,13 +114,15 @@ var SocketConnector = class extends BaseConnector {
|
|
|
114
114
|
async shutdown() {
|
|
115
115
|
if (!this.active) return;
|
|
116
116
|
const socket = container.tryGet("socket");
|
|
117
|
-
if (socket)
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
117
|
+
if (socket) {
|
|
118
|
+
if (this.ownsRawServer) await new Promise((resolve) => {
|
|
119
|
+
socket.close(() => resolve());
|
|
120
|
+
});
|
|
121
|
+
else {
|
|
122
|
+
socket.of("/").disconnectSockets(true);
|
|
123
|
+
socket.engine.close();
|
|
124
|
+
this.restoreListeners();
|
|
125
|
+
}
|
|
124
126
|
}
|
|
125
127
|
this.active = false;
|
|
126
128
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-connector.mjs","names":["createHttpsServer","createHttpServer"],"sources":["../../../../../../../../packages/core/src/connectors/socket-connector.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport { log } from \"@warlock.js/logger\";\nimport { createServer as createHttpServer } from \"http\";\nimport { createServer as createHttpsServer } from \"https\";\nimport type { Server } from \"socket.io\";\nimport { container } from \"../container\";\nimport { environment } from \"../utils/environment\";\nimport { BaseConnector } from \"./base-connector\";\nimport { ConnectorLifecyclePhase, type ConnectorName, ConnectorPriority } from \"./types\";\n\n/**\n * Shown when a project enables sockets (a `socket` config is present) but the\n * optional `socket.io` peer is not installed.\n */\nconst SOCKET_INSTALL_INSTRUCTIONS = `\nRealtime socket server requires the socket.io package.\nInstall it with:\n\n warlock add socket\n\nOr manually:\n\n npm install socket.io\n pnpm add socket.io\n yarn add socket.io\n`.trim();\n\nconst SINGLE_SERVER_WARNING =\n \"socket: no adapter configured — broadcasts only reach clients connected to this server. Use @socket.io/redis-adapter (socket.adapter) behind a load balancer, with sticky sessions for the polling transport.\";\n\n/**\n * Socket Connector\n * Manages Socket server (Socket.IO) lifecycle\n */\nexport class SocketConnector extends BaseConnector {\n public readonly name: ConnectorName = \"socket\";\n public readonly priority = ConnectorPriority.SOCKET;\n public readonly lifecyclePhase = ConnectorLifecyclePhase.Late;\n\n /**\n * Files that trigger Socket server restart\n * Note: routes.ts changes will be handled by HMR with wildcard routing\n * Connectors receive config file paths directly (not .env) thanks to layer-executor\n */\n protected readonly watchedFiles = [\"src/config/socket.ts\"];\n\n protected socket?: Server;\n\n /**\n * Whether this connector created the underlying node HTTP(S) server.\n *\n * When `http` is present, socket binds onto the HTTP connector's shared\n * `fastify.server` and must NOT close it on shutdown — the HTTP connector\n * owns the graceful drain. Socket only closes the node server when it\n * created one itself (http absent). See {@link shutdown}.\n */\n protected ownsRawServer = false;\n\n /**\n * The shared server socket.io attached to, kept for the detach.\n */\n protected sharedServer?: any;\n\n /**\n * Listener changes socket.io/engine.io made on the shared server at attach:\n * the listeners they added, and the ones they removed (engine.io lifts the\n * existing `request` listeners into its own wrapper). Undone on detach so\n * repeated dev restarts don't stack engines on Fastify's server.\n */\n protected attachedListeners: {\n added: Array<[string, (...args: any[]) => void]>;\n removed: Array<[string, (...args: any[]) => void]>;\n } = { added: [], removed: [] };\n\n /**\n * Boot the connector\n */\n public async boot() {\n const socketConfig = config.get(\"socket\");\n\n if (!socketConfig) return;\n\n // socket.io is an optional peer — load it lazily so projects that don't use\n // realtime sockets never need it installed (mirrors the mail/storage drivers).\n let SocketServer: typeof import(\"socket.io\").Server;\n try {\n ({ Server: SocketServer } = await import(\"socket.io\"));\n } catch {\n throw new Error(SOCKET_INSTALL_INSTRUCTIONS);\n }\n\n log.info(\"socket\", \"connection\", \"Starting Socket.IO server\");\n\n // now we have two cases\n // 1. http is used, then use it (shared — the HTTP connector owns it)\n // 2. http is not used, then create a new server (we own it)\n let server;\n const fastify = container.tryGet(\"http.server\");\n if (fastify) {\n server = fastify.server;\n this.ownsRawServer = false;\n } else {\n server = socketConfig.ssl\n ? createHttpsServer({ key: socketConfig.ssl.key, cert: socketConfig.ssl.cert })\n : createHttpServer();\n // Without a handler, EADDRINUSE is an unhandled 'error' event that crashes\n // the process with no context.\n server.on(\"error\", (error: Error) => {\n log.error(\"socket\", \"connection\", error, { port: socketConfig.port });\n });\n server.listen(socketConfig.port);\n this.ownsRawServer = true;\n }\n\n container.set(\"socket.rawServer\", server);\n\n const before = this.snapshotListeners(server);\n\n this.socket = new SocketServer(server, {\n // The shared raw server may carry OTHER `upgrade` consumers — Vite's HMR\n // websocket does exactly that when `WebConnector` is registered\n // (`web/src/server/web-connector.ts`, `server.hmr.server = fastify.server`).\n // engine.io's default `destroyUpgrade: true` schedules a destroy for every\n // upgrade whose path is not `/socket.io`\n // (`engine.io/build/server.js:676-695`: `setTimeout(… socket.end(), 1000)`),\n // and the only thing saving a foreign websocket today is that it wrote its\n // handshake bytes synchronously and so trips the `bytesWritten <= 0` guard\n // before the 1s timer fires. That is an undocumented race, not a contract.\n // Turning the destroy off removes the coupling outright and makes the\n // shared server safe for any app-owned websocket route.\n // A project can still override it via `socket.options`.\n destroyUpgrade: false,\n ...socketConfig.options,\n });\n\n if (!this.ownsRawServer) {\n this.sharedServer = server;\n this.attachedListeners = this.diffListeners(before, this.snapshotListeners(server));\n }\n\n if (socketConfig.adapter) {\n this.socket.adapter((await socketConfig.adapter(this.socket)) as never);\n } else if (environment() === \"production\" && !socketConfig.silenceSingleServerWarning) {\n log.warn(\"socket\", \"adapter\", SINGLE_SERVER_WARNING);\n }\n\n container.set(\"socket\", this.socket);\n }\n\n /**\n * Initialize Socket server\n */\n public async start(): Promise<void> {\n const socketConfig = config.get(\"socket\");\n\n // `this.socket` is only set by boot() once a socket config is present —\n // use it (not a never-assigned field) to detect a successful boot.\n if (!socketConfig || !this.socket) return;\n\n log.success(\"socket\", \"connection\", \"Established Socket.IO server\");\n\n this.active = true;\n }\n\n /**\n * Restart re-boots too: the closed `io` must be replaced and the new\n * `socket` config read, otherwise a config edit in dev restarts nothing.\n */\n public async restart(): Promise<void> {\n await this.shutdown();\n await this.boot();\n await this.start();\n }\n\n /**\n * Shutdown Socket server\n *\n * Always closes the Socket.IO layer (and awaits the drain). The underlying\n * node HTTP(S) server is only closed here when this connector created it\n * ({@link ownsRawServer}); when `http` owns the shared server, we leave it\n * for the HTTP connector to drain and close, so the two connectors don't\n * race to `close()` the same socket.\n */\n public async shutdown(): Promise<void> {\n if (!this.active) {\n return;\n }\n\n const socket = container.tryGet(\"socket\");\n if (socket) {\n if (this.ownsRawServer) {\n // We own the raw server: `io.close()` closes it too, so it is the only\n // close needed (a second `rawServer.close()` always rejects with\n // ERR_SERVER_NOT_RUNNING).\n await new Promise<void>((resolve) => {\n socket.close(() => resolve());\n });\n } else {\n // Shared mode: `io.close()` calls `httpServer.close()`, which would close\n // Fastify's server from here and bypass its graceful drain. Detach\n // instead: disconnect the clients and close the engine only.\n socket.of(\"/\").disconnectSockets(true);\n socket.engine.close();\n this.restoreListeners();\n }\n }\n\n this.active = false;\n }\n\n /**\n * Current listeners of the events socket.io touches on a node server.\n */\n private snapshotListeners(server: any): Map<string, Array<(...args: any[]) => void>> {\n const snapshot = new Map<string, Array<(...args: any[]) => void>>();\n\n for (const event of [\"request\", \"upgrade\", \"close\", \"listening\"]) {\n snapshot.set(event, server?.listeners?.(event)?.slice() ?? []);\n }\n\n return snapshot;\n }\n\n private diffListeners(\n before: Map<string, Array<(...args: any[]) => void>>,\n after: Map<string, Array<(...args: any[]) => void>>,\n ) {\n const added: Array<[string, (...args: any[]) => void]> = [];\n const removed: Array<[string, (...args: any[]) => void]> = [];\n\n for (const [event, listeners] of before) {\n const now = after.get(event) ?? [];\n\n for (const listener of now) if (!listeners.includes(listener)) added.push([event, listener]);\n for (const listener of listeners)\n if (!now.includes(listener)) removed.push([event, listener]);\n }\n\n return { added, removed };\n }\n\n /**\n * Undo what attaching did to the shared server, leaving listeners other\n * consumers added since (e.g. Vite's HMR upgrade handler) untouched.\n */\n private restoreListeners(): void {\n const server = this.sharedServer;\n\n if (!server) return;\n\n const { added, removed } = this.attachedListeners;\n\n for (const [event, listener] of added) server.removeListener(event, listener);\n for (const [event, listener] of removed) server.on(event, listener);\n\n this.attachedListeners = { added: [], removed: [] };\n this.sharedServer = undefined;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAcA,MAAM,8BAA8B;;;;;;;;;;;EAWlC,KAAK;AAEP,MAAM,wBACJ;;;;;AAMF,IAAa,kBAAb,cAAqC,cAAc;;;cACX;;;sBASJ,CAAC,sBAAsB;uBAY/B;2BAgBtB;GAAE,OAAO,CAAC;GAAG,SAAS,CAAC;EAAE;;;;;CAK7B,MAAa,OAAO;EAClB,MAAM,eAAe,OAAO,IAAI,QAAQ;EAExC,IAAI,CAAC,cAAc;EAInB,IAAI;EACJ,IAAI;GACF,CAAC,CAAE,QAAQ,gBAAiB,MAAM,OAAO;EAC3C,QAAQ;GACN,MAAM,IAAI,MAAM,2BAA2B;EAC7C;EAEA,IAAI,KAAK,UAAU,cAAc,2BAA2B;EAK5D,IAAI;EACJ,MAAM,UAAU,UAAU,OAAO,aAAa;EAC9C,IAAI,SAAS;GACX,SAAS,QAAQ;GACjB,KAAK,gBAAgB;EACvB,OAAO;GACL,SAAS,aAAa,MAClBA,eAAkB;IAAE,KAAK,aAAa,IAAI;IAAK,MAAM,aAAa,IAAI;GAAK,CAAC,IAC5EC,aAAiB;GAGrB,OAAO,GAAG,UAAU,UAAiB;IACnC,IAAI,MAAM,UAAU,cAAc,OAAO,EAAE,MAAM,aAAa,KAAK,CAAC;GACtE,CAAC;GACD,OAAO,OAAO,aAAa,IAAI;GAC/B,KAAK,gBAAgB;EACvB;EAEA,UAAU,IAAI,oBAAoB,MAAM;EAExC,MAAM,SAAS,KAAK,kBAAkB,MAAM;EAE5C,KAAK,SAAS,IAAI,aAAa,QAAQ;GAarC,gBAAgB;GAChB,GAAG,aAAa;EAClB,CAAC;EAED,IAAI,CAAC,KAAK,eAAe;GACvB,KAAK,eAAe;GACpB,KAAK,oBAAoB,KAAK,cAAc,QAAQ,KAAK,kBAAkB,MAAM,CAAC;EACpF;EAEA,IAAI,aAAa,SACf,KAAK,OAAO,QAAS,MAAM,aAAa,QAAQ,KAAK,MAAM,CAAW;OACjE,IAAI,YAAY,MAAM,gBAAgB,CAAC,aAAa,4BACzD,IAAI,KAAK,UAAU,WAAW,qBAAqB;EAGrD,UAAU,IAAI,UAAU,KAAK,MAAM;CACrC;;;;CAKA,MAAa,QAAuB;EAKlC,IAAI,CAJiB,OAAO,IAAI,QAIhB,KAAK,CAAC,KAAK,QAAQ;EAEnC,IAAI,QAAQ,UAAU,cAAc,8BAA8B;EAElE,KAAK,SAAS;CAChB;;;;;CAMA,MAAa,UAAyB;EACpC,MAAM,KAAK,SAAS;EACpB,MAAM,KAAK,KAAK;EAChB,MAAM,KAAK,MAAM;CACnB;;;;;;;;;;CAWA,MAAa,WAA0B;EACrC,IAAI,CAAC,KAAK,QACR;EAGF,MAAM,SAAS,UAAU,OAAO,QAAQ;EACxC,IAAI,QACF,IAAI,KAAK,eAIP,MAAM,IAAI,SAAe,YAAY;GACnC,OAAO,YAAY,QAAQ,CAAC;EAC9B,CAAC;OACI;GAIL,OAAO,GAAG,GAAG,CAAC,CAAC,kBAAkB,IAAI;GACrC,OAAO,OAAO,MAAM;GACpB,KAAK,iBAAiB;EACxB;EAGF,KAAK,SAAS;CAChB;;;;CAKA,AAAQ,kBAAkB,QAA2D;EACnF,MAAM,2BAAW,IAAI,IAA6C;EAElE,KAAK,MAAM,SAAS;GAAC;GAAW;GAAW;GAAS;EAAW,GAC7D,SAAS,IAAI,OAAO,QAAQ,YAAY,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,CAAC;EAG/D,OAAO;CACT;CAEA,AAAQ,cACN,QACA,OACA;EACA,MAAM,QAAmD,CAAC;EAC1D,MAAM,UAAqD,CAAC;EAE5D,KAAK,MAAM,CAAC,OAAO,cAAc,QAAQ;GACvC,MAAM,MAAM,MAAM,IAAI,KAAK,KAAK,CAAC;GAEjC,KAAK,MAAM,YAAY,KAAK,IAAI,CAAC,UAAU,SAAS,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,QAAQ,CAAC;GAC3F,KAAK,MAAM,YAAY,WACrB,IAAI,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,KAAK,CAAC,OAAO,QAAQ,CAAC;EAC/D;EAEA,OAAO;GAAE;GAAO;EAAQ;CAC1B;;;;;CAMA,AAAQ,mBAAyB;EAC/B,MAAM,SAAS,KAAK;EAEpB,IAAI,CAAC,QAAQ;EAEb,MAAM,EAAE,OAAO,YAAY,KAAK;EAEhC,KAAK,MAAM,CAAC,OAAO,aAAa,OAAO,OAAO,eAAe,OAAO,QAAQ;EAC5E,KAAK,MAAM,CAAC,OAAO,aAAa,SAAS,OAAO,GAAG,OAAO,QAAQ;EAElE,KAAK,oBAAoB;GAAE,OAAO,CAAC;GAAG,SAAS,CAAC;EAAE;EAClD,KAAK,eAAe;CACtB;AACF"}
|
|
1
|
+
{"version":3,"file":"socket-connector.mjs","names":["config","createHttpsServer","createHttpServer"],"sources":["../../../../../../../../packages/core/src/connectors/socket-connector.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport { log } from \"@warlock.js/logger\";\nimport { createServer as createHttpServer } from \"http\";\nimport { createServer as createHttpsServer } from \"https\";\nimport type { Server } from \"socket.io\";\nimport { container } from \"../container\";\nimport { environment } from \"../utils/environment\";\nimport { BaseConnector } from \"./base-connector\";\nimport { ConnectorLifecyclePhase, type ConnectorName, ConnectorPriority } from \"./types\";\n\n/**\n * Shown when a project enables sockets (a `socket` config is present) but the\n * optional `socket.io` peer is not installed.\n */\nconst SOCKET_INSTALL_INSTRUCTIONS = `\nRealtime socket server requires the socket.io package.\nInstall it with:\n\n warlock add socket\n\nOr manually:\n\n npm install socket.io\n pnpm add socket.io\n yarn add socket.io\n`.trim();\n\nconst SINGLE_SERVER_WARNING =\n \"socket: no adapter configured — broadcasts only reach clients connected to this server. Use @socket.io/redis-adapter (socket.adapter) behind a load balancer, with sticky sessions for the polling transport.\";\n\n/**\n * Socket Connector\n * Manages Socket server (Socket.IO) lifecycle\n */\nexport class SocketConnector extends BaseConnector {\n public readonly name: ConnectorName = \"socket\";\n public readonly priority = ConnectorPriority.SOCKET;\n public readonly lifecyclePhase = ConnectorLifecyclePhase.Late;\n\n /**\n * Files that trigger Socket server restart\n * Note: routes.ts changes will be handled by HMR with wildcard routing\n * Connectors receive config file paths directly (not .env) thanks to layer-executor\n */\n protected readonly watchedFiles = [\"src/config/socket.ts\"];\n\n protected socket?: Server;\n\n /**\n * Whether this connector created the underlying node HTTP(S) server.\n *\n * When `http` is present, socket binds onto the HTTP connector's shared\n * `fastify.server` and must NOT close it on shutdown — the HTTP connector\n * owns the graceful drain. Socket only closes the node server when it\n * created one itself (http absent). See {@link shutdown}.\n */\n protected ownsRawServer = false;\n\n /**\n * The shared server socket.io attached to, kept for the detach.\n */\n protected sharedServer?: any;\n\n /**\n * Listener changes socket.io/engine.io made on the shared server at attach:\n * the listeners they added, and the ones they removed (engine.io lifts the\n * existing `request` listeners into its own wrapper). Undone on detach so\n * repeated dev restarts don't stack engines on Fastify's server.\n */\n protected attachedListeners: {\n added: Array<[string, (...args: any[]) => void]>;\n removed: Array<[string, (...args: any[]) => void]>;\n } = { added: [], removed: [] };\n\n /**\n * Boot the connector\n */\n public async boot() {\n const socketConfig = config.get(\"socket\");\n\n if (!socketConfig) return;\n\n // socket.io is an optional peer — load it lazily so projects that don't use\n // realtime sockets never need it installed (mirrors the mail/storage drivers).\n let SocketServer: typeof import(\"socket.io\").Server;\n try {\n ({ Server: SocketServer } = await import(\"socket.io\"));\n } catch {\n throw new Error(SOCKET_INSTALL_INSTRUCTIONS);\n }\n\n log.info(\"socket\", \"connection\", \"Starting Socket.IO server\");\n\n // now we have two cases\n // 1. http is used, then use it (shared — the HTTP connector owns it)\n // 2. http is not used, then create a new server (we own it)\n let server;\n const fastify = container.tryGet(\"http.server\");\n if (fastify) {\n server = fastify.server;\n this.ownsRawServer = false;\n } else {\n server = socketConfig.ssl\n ? createHttpsServer({ key: socketConfig.ssl.key, cert: socketConfig.ssl.cert })\n : createHttpServer();\n // Without a handler, EADDRINUSE is an unhandled 'error' event that crashes\n // the process with no context.\n server.on(\"error\", (error: Error) => {\n log.error(\"socket\", \"connection\", error, { port: socketConfig.port });\n });\n server.listen(socketConfig.port);\n this.ownsRawServer = true;\n }\n\n container.set(\"socket.rawServer\", server);\n\n const before = this.snapshotListeners(server);\n\n this.socket = new SocketServer(server, {\n // The shared raw server may carry OTHER `upgrade` consumers — Vite's HMR\n // websocket does exactly that when `WebConnector` is registered\n // (`web/src/server/web-connector.ts`, `server.hmr.server = fastify.server`).\n // engine.io's default `destroyUpgrade: true` schedules a destroy for every\n // upgrade whose path is not `/socket.io`\n // (`engine.io/build/server.js:676-695`: `setTimeout(… socket.end(), 1000)`),\n // and the only thing saving a foreign websocket today is that it wrote its\n // handshake bytes synchronously and so trips the `bytesWritten <= 0` guard\n // before the 1s timer fires. That is an undocumented race, not a contract.\n // Turning the destroy off removes the coupling outright and makes the\n // shared server safe for any app-owned websocket route.\n // A project can still override it via `socket.options`.\n destroyUpgrade: false,\n ...socketConfig.options,\n });\n\n if (!this.ownsRawServer) {\n this.sharedServer = server;\n this.attachedListeners = this.diffListeners(before, this.snapshotListeners(server));\n }\n\n if (socketConfig.adapter) {\n this.socket.adapter((await socketConfig.adapter(this.socket)) as never);\n } else if (environment() === \"production\" && !socketConfig.silenceSingleServerWarning) {\n log.warn(\"socket\", \"adapter\", SINGLE_SERVER_WARNING);\n }\n\n container.set(\"socket\", this.socket);\n }\n\n /**\n * Initialize Socket server\n */\n public async start(): Promise<void> {\n const socketConfig = config.get(\"socket\");\n\n // `this.socket` is only set by boot() once a socket config is present —\n // use it (not a never-assigned field) to detect a successful boot.\n if (!socketConfig || !this.socket) return;\n\n log.success(\"socket\", \"connection\", \"Established Socket.IO server\");\n\n this.active = true;\n }\n\n /**\n * Restart re-boots too: the closed `io` must be replaced and the new\n * `socket` config read, otherwise a config edit in dev restarts nothing.\n */\n public async restart(): Promise<void> {\n await this.shutdown();\n await this.boot();\n await this.start();\n }\n\n /**\n * Shutdown Socket server\n *\n * Always closes the Socket.IO layer (and awaits the drain). The underlying\n * node HTTP(S) server is only closed here when this connector created it\n * ({@link ownsRawServer}); when `http` owns the shared server, we leave it\n * for the HTTP connector to drain and close, so the two connectors don't\n * race to `close()` the same socket.\n */\n public async shutdown(): Promise<void> {\n if (!this.active) {\n return;\n }\n\n const socket = container.tryGet(\"socket\");\n if (socket) {\n if (this.ownsRawServer) {\n // We own the raw server: `io.close()` closes it too, so it is the only\n // close needed (a second `rawServer.close()` always rejects with\n // ERR_SERVER_NOT_RUNNING).\n await new Promise<void>((resolve) => {\n socket.close(() => resolve());\n });\n } else {\n // Shared mode: `io.close()` calls `httpServer.close()`, which would close\n // Fastify's server from here and bypass its graceful drain. Detach\n // instead: disconnect the clients and close the engine only.\n socket.of(\"/\").disconnectSockets(true);\n socket.engine.close();\n this.restoreListeners();\n }\n }\n\n this.active = false;\n }\n\n /**\n * Current listeners of the events socket.io touches on a node server.\n */\n private snapshotListeners(server: any): Map<string, Array<(...args: any[]) => void>> {\n const snapshot = new Map<string, Array<(...args: any[]) => void>>();\n\n for (const event of [\"request\", \"upgrade\", \"close\", \"listening\"]) {\n snapshot.set(event, server?.listeners?.(event)?.slice() ?? []);\n }\n\n return snapshot;\n }\n\n private diffListeners(\n before: Map<string, Array<(...args: any[]) => void>>,\n after: Map<string, Array<(...args: any[]) => void>>,\n ) {\n const added: Array<[string, (...args: any[]) => void]> = [];\n const removed: Array<[string, (...args: any[]) => void]> = [];\n\n for (const [event, listeners] of before) {\n const now = after.get(event) ?? [];\n\n for (const listener of now) if (!listeners.includes(listener)) added.push([event, listener]);\n for (const listener of listeners)\n if (!now.includes(listener)) removed.push([event, listener]);\n }\n\n return { added, removed };\n }\n\n /**\n * Undo what attaching did to the shared server, leaving listeners other\n * consumers added since (e.g. Vite's HMR upgrade handler) untouched.\n */\n private restoreListeners(): void {\n const server = this.sharedServer;\n\n if (!server) return;\n\n const { added, removed } = this.attachedListeners;\n\n for (const [event, listener] of added) server.removeListener(event, listener);\n for (const [event, listener] of removed) server.on(event, listener);\n\n this.attachedListeners = { added: [], removed: [] };\n this.sharedServer = undefined;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAcA,MAAM,8BAA8B;;;;;;;;;;;EAWlC,KAAK;AAEP,MAAM,wBACJ;;;;;AAMF,IAAa,kBAAb,cAAqC,cAAc;;;cACX;;;sBASJ,CAAC,sBAAsB;uBAY/B;2BAgBtB;GAAE,OAAO,CAAC;GAAG,SAAS,CAAC;EAAE;;;;;CAK7B,MAAa,OAAO;EAClB,MAAM,eAAeA,WAAO,IAAI,QAAQ;EAExC,IAAI,CAAC,cAAc;EAInB,IAAI;EACJ,IAAI;GACF,CAAC,CAAE,QAAQ,gBAAiB,MAAM,OAAO;EAC3C,QAAQ;GACN,MAAM,IAAI,MAAM,2BAA2B;EAC7C;EAEA,IAAI,KAAK,UAAU,cAAc,2BAA2B;EAK5D,IAAI;EACJ,MAAM,UAAU,UAAU,OAAO,aAAa;EAC9C,IAAI,SAAS;GACX,SAAS,QAAQ;GACjB,KAAK,gBAAgB;EACvB,OAAO;GACL,SAAS,aAAa,MAClBC,eAAkB;IAAE,KAAK,aAAa,IAAI;IAAK,MAAM,aAAa,IAAI;GAAK,CAAC,IAC5EC,aAAiB;GAGrB,OAAO,GAAG,UAAU,UAAiB;IACnC,IAAI,MAAM,UAAU,cAAc,OAAO,EAAE,MAAM,aAAa,KAAK,CAAC;GACtE,CAAC;GACD,OAAO,OAAO,aAAa,IAAI;GAC/B,KAAK,gBAAgB;EACvB;EAEA,UAAU,IAAI,oBAAoB,MAAM;EAExC,MAAM,SAAS,KAAK,kBAAkB,MAAM;EAE5C,KAAK,SAAS,IAAI,aAAa,QAAQ;GAarC,gBAAgB;GAChB,GAAG,aAAa;EAClB,CAAC;EAED,IAAI,CAAC,KAAK,eAAe;GACvB,KAAK,eAAe;GACpB,KAAK,oBAAoB,KAAK,cAAc,QAAQ,KAAK,kBAAkB,MAAM,CAAC;EACpF;EAEA,IAAI,aAAa,SACf,KAAK,OAAO,QAAS,MAAM,aAAa,QAAQ,KAAK,MAAM,CAAW;OACjE,IAAI,YAAY,MAAM,gBAAgB,CAAC,aAAa,4BACzD,IAAI,KAAK,UAAU,WAAW,qBAAqB;EAGrD,UAAU,IAAI,UAAU,KAAK,MAAM;CACrC;;;;CAKA,MAAa,QAAuB;EAKlC,IAAI,CAJiBF,WAAO,IAAI,QAIhB,KAAK,CAAC,KAAK,QAAQ;EAEnC,IAAI,QAAQ,UAAU,cAAc,8BAA8B;EAElE,KAAK,SAAS;CAChB;;;;;CAMA,MAAa,UAAyB;EACpC,MAAM,KAAK,SAAS;EACpB,MAAM,KAAK,KAAK;EAChB,MAAM,KAAK,MAAM;CACnB;;;;;;;;;;CAWA,MAAa,WAA0B;EACrC,IAAI,CAAC,KAAK,QACR;EAGF,MAAM,SAAS,UAAU,OAAO,QAAQ;EACxC,IAAI,QAAQ;GACV,IAAI,KAAK,eAIP,MAAM,IAAI,SAAe,YAAY;IACnC,OAAO,YAAY,QAAQ,CAAC;GAC9B,CAAC;QACI;IAIL,OAAO,GAAG,GAAG,CAAC,CAAC,kBAAkB,IAAI;IACrC,OAAO,OAAO,MAAM;IACpB,KAAK,iBAAiB;GACxB;EACF;EAEA,KAAK,SAAS;CAChB;;;;CAKA,AAAQ,kBAAkB,QAA2D;EACnF,MAAM,2BAAW,IAAI,IAA6C;EAElE,KAAK,MAAM,SAAS;GAAC;GAAW;GAAW;GAAS;EAAW,GAC7D,SAAS,IAAI,OAAO,QAAQ,YAAY,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,CAAC;EAG/D,OAAO;CACT;CAEA,AAAQ,cACN,QACA,OACA;EACA,MAAM,QAAmD,CAAC;EAC1D,MAAM,UAAqD,CAAC;EAE5D,KAAK,MAAM,CAAC,OAAO,cAAc,QAAQ;GACvC,MAAM,MAAM,MAAM,IAAI,KAAK,KAAK,CAAC;GAEjC,KAAK,MAAM,YAAY,KAAK,IAAI,CAAC,UAAU,SAAS,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,QAAQ,CAAC;GAC3F,KAAK,MAAM,YAAY,WACrB,IAAI,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,KAAK,CAAC,OAAO,QAAQ,CAAC;EAC/D;EAEA,OAAO;GAAE;GAAO;EAAQ;CAC1B;;;;;CAMA,AAAQ,mBAAyB;EAC/B,MAAM,SAAS,KAAK;EAEpB,IAAI,CAAC,QAAQ;EAEb,MAAM,EAAE,OAAO,YAAY,KAAK;EAEhC,KAAK,MAAM,CAAC,OAAO,aAAa,OAAO,OAAO,eAAe,OAAO,QAAQ;EAC5E,KAAK,MAAM,CAAC,OAAO,aAAa,SAAS,OAAO,GAAG,OAAO,QAAQ;EAElE,KAAK,oBAAoB;GAAE,OAAO,CAAC;GAAG,SAAS,CAAC;EAAE;EAClD,KAAK,eAAe;CACtB;AACF"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { ConnectorLifecyclePhase, ConnectorPriority } from "./types.mjs";
|
|
2
2
|
import { BaseConnector } from "./base-connector.mjs";
|
|
3
|
-
|
|
4
3
|
//#region ../../packages/core/src/connectors/storage.connector.d.ts
|
|
5
4
|
/**
|
|
6
5
|
* Cache Connector
|
|
7
6
|
* Manages cache engine connection lifecycle
|
|
8
7
|
*/
|
|
9
|
-
declare class StorageConnector extends BaseConnector {
|
|
8
|
+
export declare class StorageConnector extends BaseConnector {
|
|
10
9
|
readonly name = "storage";
|
|
11
10
|
readonly priority = ConnectorPriority.STORAGE;
|
|
12
11
|
readonly lifecyclePhase = ConnectorLifecyclePhase.Early;
|
|
@@ -37,5 +36,4 @@ declare class StorageConnector extends BaseConnector {
|
|
|
37
36
|
shutdown(): Promise<void>;
|
|
38
37
|
}
|
|
39
38
|
//#endregion
|
|
40
|
-
export { StorageConnector };
|
|
41
39
|
//# sourceMappingURL=storage.connector.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.connector.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/connectors/storage.connector.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage.connector.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/connectors/storage.connector.ts"],"mappings":";;;;;;;qBAaa,yBAAyB;WACpB;WACA,WAAQ,kBAAA;WACR,iBAAc,wBAAA;;;;qBAKX;;;;;;;;;;;;;;;;;EAkBN,SAAS;;;;EAkBT,YAAY"}
|
|
@@ -5,7 +5,7 @@ import "../storage/index.mjs";
|
|
|
5
5
|
import { ConnectorLifecyclePhase, ConnectorPriority } from "./types.mjs";
|
|
6
6
|
import { BaseConnector } from "./base-connector.mjs";
|
|
7
7
|
import { localStorageWarning } from "./single-server-warnings.mjs";
|
|
8
|
-
import
|
|
8
|
+
import baseConfig from "@mongez/config";
|
|
9
9
|
import { log } from "@warlock.js/logger";
|
|
10
10
|
|
|
11
11
|
//#region ../../packages/core/src/connectors/storage.connector.ts
|
|
@@ -40,7 +40,7 @@ var StorageConnector = class extends BaseConnector {
|
|
|
40
40
|
async start() {
|
|
41
41
|
await loadS3();
|
|
42
42
|
await storage.init();
|
|
43
|
-
const warning = localStorageWarning(
|
|
43
|
+
const warning = localStorageWarning(baseConfig.get("storage.default", "local"), environment(), baseConfig.get("storage.silenceSingleServerWarning") === true);
|
|
44
44
|
if (warning) log.warn("storage", "single-server", warning);
|
|
45
45
|
this.active = true;
|
|
46
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.connector.mjs","names":[],"sources":["../../../../../../../../packages/core/src/connectors/storage.connector.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport { log } from \"@warlock.js/logger\";\nimport { storage } from \"../storage\";\nimport { environment } from \"../utils/environment\";\nimport { localStorageWarning } from \"./single-server-warnings\";\nimport { loadS3 } from \"../storage/drivers/cloud-driver\";\nimport { BaseConnector } from \"./base-connector\";\nimport { ConnectorLifecyclePhase, ConnectorPriority } from \"./types\";\n\n/**\n * Cache Connector\n * Manages cache engine connection lifecycle\n */\nexport class StorageConnector extends BaseConnector {\n public readonly name = \"storage\";\n public readonly priority = ConnectorPriority.STORAGE;\n public readonly lifecyclePhase = ConnectorLifecyclePhase.Early;\n\n /**\n * Files that trigger cache restart\n */\n protected readonly watchedFiles = [\"src/config/storage.ts\", \"src/config/storage.tsx\"];\n\n /**\n * Initialize storage.\n *\n * Unlike its siblings (database, cache, herald), this connector does NOT\n * early-return when `config.get(\"storage\")` is absent. Storage is\n * intentionally always-on: `storage.init()` registers a built-in `local`\n * driver rooted at `uploadsPath()` before reading configured drivers, so file\n * storage works out of the box even when a project ships no\n * `src/config/storage.ts`. A config-presence guard here would break that.\n *\n * That fallback is real as of 4.11.0. Until then this comment described it\n * and nothing implemented it, so every app without `src/config/storage.ts`\n * died at boot with `Storage driver \"local\" is not configured` — a decision\n * to skip the guard, taken on the authority of behaviour nobody had written.\n * See `Storage.registerBuiltInLocalDriver`.\n */\n public async start(): Promise<void> {\n await loadS3();\n await storage.init();\n\n const warning = localStorageWarning(\n config.get(\"storage.default\", \"local\"),\n environment(),\n config.get(\"storage.silenceSingleServerWarning\") === true,\n );\n\n if (warning) log.warn(\"storage\", \"single-server\", warning);\n\n this.active = true;\n }\n\n /**\n * Shutdown cache connection\n */\n public async shutdown(): Promise<void> {\n if (!this.active) {\n return;\n }\n\n storage.reset();\n\n this.active = false;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAaA,IAAa,mBAAb,cAAsC,cAAc;;;cAC3B;;;sBAOW,CAAC,yBAAyB,wBAAwB;;;;;;;;;;;;;;;;;;CAkBpF,MAAa,QAAuB;EAClC,MAAM,OAAO;EACb,MAAM,QAAQ,KAAK;EAEnB,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"storage.connector.mjs","names":["config"],"sources":["../../../../../../../../packages/core/src/connectors/storage.connector.ts"],"sourcesContent":["import config from \"@mongez/config\";\nimport { log } from \"@warlock.js/logger\";\nimport { storage } from \"../storage\";\nimport { environment } from \"../utils/environment\";\nimport { localStorageWarning } from \"./single-server-warnings\";\nimport { loadS3 } from \"../storage/drivers/cloud-driver\";\nimport { BaseConnector } from \"./base-connector\";\nimport { ConnectorLifecyclePhase, ConnectorPriority } from \"./types\";\n\n/**\n * Cache Connector\n * Manages cache engine connection lifecycle\n */\nexport class StorageConnector extends BaseConnector {\n public readonly name = \"storage\";\n public readonly priority = ConnectorPriority.STORAGE;\n public readonly lifecyclePhase = ConnectorLifecyclePhase.Early;\n\n /**\n * Files that trigger cache restart\n */\n protected readonly watchedFiles = [\"src/config/storage.ts\", \"src/config/storage.tsx\"];\n\n /**\n * Initialize storage.\n *\n * Unlike its siblings (database, cache, herald), this connector does NOT\n * early-return when `config.get(\"storage\")` is absent. Storage is\n * intentionally always-on: `storage.init()` registers a built-in `local`\n * driver rooted at `uploadsPath()` before reading configured drivers, so file\n * storage works out of the box even when a project ships no\n * `src/config/storage.ts`. A config-presence guard here would break that.\n *\n * That fallback is real as of 4.11.0. Until then this comment described it\n * and nothing implemented it, so every app without `src/config/storage.ts`\n * died at boot with `Storage driver \"local\" is not configured` — a decision\n * to skip the guard, taken on the authority of behaviour nobody had written.\n * See `Storage.registerBuiltInLocalDriver`.\n */\n public async start(): Promise<void> {\n await loadS3();\n await storage.init();\n\n const warning = localStorageWarning(\n config.get(\"storage.default\", \"local\"),\n environment(),\n config.get(\"storage.silenceSingleServerWarning\") === true,\n );\n\n if (warning) log.warn(\"storage\", \"single-server\", warning);\n\n this.active = true;\n }\n\n /**\n * Shutdown cache connection\n */\n public async shutdown(): Promise<void> {\n if (!this.active) {\n return;\n }\n\n storage.reset();\n\n this.active = false;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAaA,IAAa,mBAAb,cAAsC,cAAc;;;cAC3B;;;sBAOW,CAAC,yBAAyB,wBAAwB;;;;;;;;;;;;;;;;;;CAkBpF,MAAa,QAAuB;EAClC,MAAM,OAAO;EACb,MAAM,QAAQ,KAAK;EAEnB,MAAM,UAAU,oBACdA,WAAO,IAAI,mBAAmB,OAAO,GACrC,YAAY,GACZA,WAAO,IAAI,oCAAoC,MAAM,IACvD;EAEA,IAAI,SAAS,IAAI,KAAK,WAAW,iBAAiB,OAAO;EAEzD,KAAK,SAAS;CAChB;;;;CAKA,MAAa,WAA0B;EACrC,IAAI,CAAC,KAAK,QACR;EAGF,QAAQ,MAAM;EAEd,KAAK,SAAS;CAChB;AACF"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { NamedApiRoute } from "../router/types.mjs";
|
|
2
2
|
import { ResolvedBuildConfig } from "../production/resolve-build-config.mjs";
|
|
3
3
|
import { BuildOptions } from "esbuild";
|
|
4
|
-
|
|
5
4
|
//#region ../../packages/core/src/connectors/types.d.ts
|
|
6
5
|
/**
|
|
7
6
|
* Connector Interface
|
|
8
7
|
* All service connectors (Database, HTTP, Cache, etc.) must implement this interface
|
|
9
8
|
*/
|
|
10
|
-
interface Connector {
|
|
9
|
+
export interface Connector {
|
|
11
10
|
/**
|
|
12
11
|
* Unique name of the connector
|
|
13
12
|
*/
|
|
@@ -67,10 +66,14 @@ interface Connector {
|
|
|
67
66
|
* What a build contribution is handed. Everything it needs to write files
|
|
68
67
|
* and shape the bundle, and nothing that would let it reach the runtime.
|
|
69
68
|
*/
|
|
70
|
-
type ConnectorBuildContext = {
|
|
71
|
-
/** Absolute path to `.warlock/production` — deleted after the build */
|
|
72
|
-
|
|
73
|
-
|
|
69
|
+
export type ConnectorBuildContext = {
|
|
70
|
+
/** Absolute path to `.warlock/production` — deleted after the build */
|
|
71
|
+
productionDir: string;
|
|
72
|
+
/** Absolute path to the application root (where `package.json` lives) */
|
|
73
|
+
appRoot: string;
|
|
74
|
+
/** The build config after framework defaults and user overrides */
|
|
75
|
+
options: ResolvedBuildConfig;
|
|
76
|
+
/** Fresh registration-only snapshot, present only when the Web connector is configured. */
|
|
74
77
|
readonly namedApiRoutes?: readonly NamedApiRoute[];
|
|
75
78
|
};
|
|
76
79
|
/**
|
|
@@ -83,11 +86,11 @@ type ConnectorBuildContext = {
|
|
|
83
86
|
* A contributor reaching them would reintroduce the failure the user-level
|
|
84
87
|
* guard exists to prevent.
|
|
85
88
|
*/
|
|
86
|
-
type ConnectorEsbuildPatch = Pick<BuildOptions, "jsx" | "jsxImportSource" | "define" | "external" | "loader" | "plugins">;
|
|
89
|
+
export type ConnectorEsbuildPatch = Pick<BuildOptions, "jsx" | "jsxImportSource" | "define" | "external" | "loader" | "plugins">;
|
|
87
90
|
/**
|
|
88
91
|
* What `generate` may hand back to the builder.
|
|
89
92
|
*/
|
|
90
|
-
type ConnectorBuildGenerateResult = {
|
|
93
|
+
export type ConnectorBuildGenerateResult = {
|
|
91
94
|
/**
|
|
92
95
|
* Lines appended verbatim to section 4 of the generated entry, AFTER the
|
|
93
96
|
* `./routes` import — page registration must see the routes app code
|
|
@@ -95,7 +98,8 @@ type ConnectorBuildGenerateResult = {
|
|
|
95
98
|
*
|
|
96
99
|
* @example ['await import("./pages");']
|
|
97
100
|
*/
|
|
98
|
-
entryImports?: string[];
|
|
101
|
+
entryImports?: string[];
|
|
102
|
+
/** Merged into the esbuild call: defaults < this patch < user `build` */
|
|
99
103
|
esbuild?: ConnectorEsbuildPatch;
|
|
100
104
|
};
|
|
101
105
|
/**
|
|
@@ -112,7 +116,7 @@ type ConnectorBuildGenerateResult = {
|
|
|
112
116
|
* read time by rejecting unknown enumerable keys (`assertClosedContribution`):
|
|
113
117
|
* the type narrows, the runtime asserts.
|
|
114
118
|
*/
|
|
115
|
-
type ConnectorBuildContribution = {
|
|
119
|
+
export type ConnectorBuildContribution = {
|
|
116
120
|
/**
|
|
117
121
|
* Write files into `ctx.productionDir` and/or patch the bundle.
|
|
118
122
|
*
|
|
@@ -134,7 +138,7 @@ type ConnectorBuildContribution = {
|
|
|
134
138
|
*/
|
|
135
139
|
typings?(context: ConnectorBuildContext): Promise<void> | void;
|
|
136
140
|
};
|
|
137
|
-
type ConnectorName = "logger" | "mailer" | "http" | "database" | "cache" | "storage" | "herald" | "socket" | "notifications" | "access" | "ai" | (string & {});
|
|
141
|
+
export type ConnectorName = "logger" | "mailer" | "http" | "database" | "cache" | "storage" | "herald" | "socket" | "notifications" | "access" | "ai" | (string & {});
|
|
138
142
|
/**
|
|
139
143
|
* When a connector boots relative to user code (main, routes, events).
|
|
140
144
|
*
|
|
@@ -144,14 +148,14 @@ type ConnectorName = "logger" | "mailer" | "http" | "database" | "cache" | "stor
|
|
|
144
148
|
* things user code registered (http scans the router; socket
|
|
145
149
|
* depends on http's instance).
|
|
146
150
|
*/
|
|
147
|
-
declare enum ConnectorLifecyclePhase {
|
|
151
|
+
export declare enum ConnectorLifecyclePhase {
|
|
148
152
|
Early = "early",
|
|
149
153
|
Late = "late"
|
|
150
154
|
}
|
|
151
155
|
/**
|
|
152
156
|
* Connector priority constants
|
|
153
157
|
*/
|
|
154
|
-
declare enum ConnectorPriority {
|
|
158
|
+
export declare enum ConnectorPriority {
|
|
155
159
|
LOGGER = 0,
|
|
156
160
|
MAILER = 1,
|
|
157
161
|
DATABASE = 2,
|
|
@@ -165,5 +169,4 @@ declare enum ConnectorPriority {
|
|
|
165
169
|
AI = 10
|
|
166
170
|
}
|
|
167
171
|
//#endregion
|
|
168
|
-
export { Connector, ConnectorBuildContext, ConnectorBuildContribution, ConnectorBuildGenerateResult, ConnectorEsbuildPatch, ConnectorLifecyclePhase, ConnectorName, ConnectorPriority };
|
|
169
172
|
//# sourceMappingURL=types.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/connectors/types.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/connectors/types.ts"],"mappings":";;;;;;;;iBAQiB;;;;WAIN,MAAM;;;;;WAMN;;;;;WAMA,gBAAgB;;;;EAKzB;;;;;EAMA,eAAe;;;;;EAMf,SAAS;;;;;EAMT,WAAW;;;;;EAMX,YAAY;;;;;;EAOZ,cAAc;;;;;;;;;;WAWL,QAAQ;;;;;;YAOP;;EAEV;;EAEA;;EAEA,SAAS;;WAEA,0BAA0B;;;;;;;;;;;;YAazB,wBAAwB,KAClC;;;;YAOU;;;;;;;;EAQV;;EAEA,UAAU;;;;;;;;;;;;;;;;YAiBA;;;;;;EAMV,UACE,SAAS,wBACR,QAAQ,uCAAuC;;;;;;EAOlD,MAAM,SAAS,wBAAwB;;;;;;;;EASvC,SAAS,SAAS,wBAAwB;;YAGhC;;;;;;;;;;oBAuBA;EACV;EACA;;;;;oBAMU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container-instance-registry.mjs","names":[],"sources":["../../../../../../../../packages/core/src/container/container-instance-registry.ts"],"sourcesContent":["/**\n * A single loaded copy of the container module, as seen by\n * {@link registerContainerInstance}.\n */\nexport type ContainerInstanceRecord = {\n /**\n * Generated once per module evaluation — never derived from anything a\n * duplicate evaluation could coincidentally share.\n */\n id: string;\n /**\n * `import.meta.url` of this evaluation, when the runtime exposes it\n * cheaply. Omitted rather than guessed when unavailable.\n */\n moduleUrl?: string;\n};\n\n/**\n * `globalThis` key the registry is stored under. A `Symbol.for` registry\n * key (not a module-scope variable) is required because the whole point of\n * this file is that it gets evaluated more than once per process — Vite's\n * SSR module runner and Node's ESM loader each hold their own copy of\n * `@warlock.js/core` in the monorepo dev path, and `globalThis` is the only\n * object both evaluations actually share.\n */\nconst registryKey = Symbol.for(\"warlock.js/core/container-instance-registry\");\n\ntype GlobalWithContainerRegistry = typeof globalThis & {\n [registryKey]?: ContainerInstanceRecord[];\n};\n\nfunction getRegistry(): ContainerInstanceRecord[] {\n const globalWithRegistry = globalThis as GlobalWithContainerRegistry;\n\n if (!globalWithRegistry[registryKey]) {\n globalWithRegistry[registryKey] = [];\n }\n\n return globalWithRegistry[registryKey];\n}\n\n/**\n * Registers this module evaluation as a live container instance.\n *\n * Called once at module load, and only ever appends — it never reads back\n * what it just wrote to decide anything, so it cannot itself judge whether\n * a duplicate exists. That judgment happens later, and only on the\n * container's miss/throw path (see `getRegisteredContainerInstanceCount`\n * usage in `index.ts`), specifically so re-evaluation under a test runner's\n * module reset is never mistaken for duplication at load time.\n */\nexport function registerContainerInstance(): void {\n const record: ContainerInstanceRecord = {\n id: `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,\n };\n\n if (typeof import.meta !== \"undefined\" && import.meta.url) {\n record.moduleUrl = import.meta.url;\n }\n\n getRegistry().push(record);\n}\n\n/**\n * All container instances registered on this process/runtime so far.\n */\nexport function getRegisteredContainerInstances(): readonly ContainerInstanceRecord[] {\n return getRegistry();\n}\n\n/**\n * Clears the registry. Test-only: lets a spec simulate a second loaded\n * instance, or reset back to the innocent single-instance case, without\n * actually loading a second copy of the module.\n */\nexport function resetContainerInstanceRegistryForTests(): void {\n getRegistry().length = 0;\n}\n"],"mappings":";;;;;;;;;AAyBA,MAAM,cAAc,OAAO,IAAI,6CAA6C;AAM5E,SAAS,cAAyC;CAChD,MAAM,qBAAqB;CAE3B,IAAI,CAAC,mBAAmB,cACtB,mBAAmB,eAAe,CAAC;CAGrC,OAAO,mBAAmB;AAC5B;;;;;;;;;;;AAYA,SAAgB,4BAAkC;CAChD,MAAM,SAAkC,EACtC,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,IACtE;CAEA,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"container-instance-registry.mjs","names":[],"sources":["../../../../../../../../packages/core/src/container/container-instance-registry.ts"],"sourcesContent":["/**\n * A single loaded copy of the container module, as seen by\n * {@link registerContainerInstance}.\n */\nexport type ContainerInstanceRecord = {\n /**\n * Generated once per module evaluation — never derived from anything a\n * duplicate evaluation could coincidentally share.\n */\n id: string;\n /**\n * `import.meta.url` of this evaluation, when the runtime exposes it\n * cheaply. Omitted rather than guessed when unavailable.\n */\n moduleUrl?: string;\n};\n\n/**\n * `globalThis` key the registry is stored under. A `Symbol.for` registry\n * key (not a module-scope variable) is required because the whole point of\n * this file is that it gets evaluated more than once per process — Vite's\n * SSR module runner and Node's ESM loader each hold their own copy of\n * `@warlock.js/core` in the monorepo dev path, and `globalThis` is the only\n * object both evaluations actually share.\n */\nconst registryKey = Symbol.for(\"warlock.js/core/container-instance-registry\");\n\ntype GlobalWithContainerRegistry = typeof globalThis & {\n [registryKey]?: ContainerInstanceRecord[];\n};\n\nfunction getRegistry(): ContainerInstanceRecord[] {\n const globalWithRegistry = globalThis as GlobalWithContainerRegistry;\n\n if (!globalWithRegistry[registryKey]) {\n globalWithRegistry[registryKey] = [];\n }\n\n return globalWithRegistry[registryKey];\n}\n\n/**\n * Registers this module evaluation as a live container instance.\n *\n * Called once at module load, and only ever appends — it never reads back\n * what it just wrote to decide anything, so it cannot itself judge whether\n * a duplicate exists. That judgment happens later, and only on the\n * container's miss/throw path (see `getRegisteredContainerInstanceCount`\n * usage in `index.ts`), specifically so re-evaluation under a test runner's\n * module reset is never mistaken for duplication at load time.\n */\nexport function registerContainerInstance(): void {\n const record: ContainerInstanceRecord = {\n id: `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,\n };\n\n if (typeof import.meta !== \"undefined\" && import.meta.url) {\n record.moduleUrl = import.meta.url;\n }\n\n getRegistry().push(record);\n}\n\n/**\n * All container instances registered on this process/runtime so far.\n */\nexport function getRegisteredContainerInstances(): readonly ContainerInstanceRecord[] {\n return getRegistry();\n}\n\n/**\n * Clears the registry. Test-only: lets a spec simulate a second loaded\n * instance, or reset back to the innocent single-instance case, without\n * actually loading a second copy of the module.\n */\nexport function resetContainerInstanceRegistryForTests(): void {\n getRegistry().length = 0;\n}\n"],"mappings":";;;;;;;;;AAyBA,MAAM,cAAc,OAAO,IAAI,6CAA6C;AAM5E,SAAS,cAAyC;CAChD,MAAM,qBAAqB;CAE3B,IAAI,CAAC,mBAAmB,cACtB,mBAAmB,eAAe,CAAC;CAGrC,OAAO,mBAAmB;AAC5B;;;;;;;;;;;AAYA,SAAgB,4BAAkC;CAChD,MAAM,SAAkC,EACtC,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,IACtE;CAEA,IAAI,OAAO,gBAAgB,eAAe,YAAY,KACpD,OAAO,YAAY,YAAY;CAGjC,YAAY,CAAC,CAAC,KAAK,MAAM;AAC3B;;;;AAKA,SAAgB,kCAAsE;CACpF,OAAO,YAAY;AACrB"}
|
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
* contract: it is not a package-root dev-server export and it exposes no module
|
|
10
10
|
* namespace.
|
|
11
11
|
*/
|
|
12
|
-
type DevelopmentAppModuleEntry = Readonly<{
|
|
13
|
-
/** The file's plain `file://` URL (no query), as `ModuleLoader` imports it. */
|
|
12
|
+
export type DevelopmentAppModuleEntry = Readonly<{
|
|
13
|
+
/** The file's plain `file://` URL (no query), as `ModuleLoader` imports it. */
|
|
14
|
+
url: string;
|
|
14
15
|
/**
|
|
15
16
|
* How many times core has bumped this file. It is the SAME counter the loader
|
|
16
17
|
* hook thread keeps (`version-registry.ts`), so `${url}?v=${generation}` is
|
|
@@ -22,10 +23,11 @@ type DevelopmentAppModuleEntry = Readonly<{
|
|
|
22
23
|
*/
|
|
23
24
|
generation: number;
|
|
24
25
|
}>;
|
|
25
|
-
type DevelopmentAppModules = {
|
|
26
|
-
/** `undefined` when the file was never bumped: its generation is 0. */
|
|
26
|
+
export type DevelopmentAppModules = {
|
|
27
|
+
/** `undefined` when the file was never bumped: its generation is 0. */
|
|
28
|
+
get(absolutePath: string): DevelopmentAppModuleEntry | undefined;
|
|
29
|
+
/** Called once per bumped file, after the hook thread flushed the bump. */
|
|
27
30
|
subscribe(listener: (entry: DevelopmentAppModuleEntry) => void): () => void;
|
|
28
31
|
};
|
|
29
32
|
//#endregion
|
|
30
|
-
export { DevelopmentAppModuleEntry, DevelopmentAppModules };
|
|
31
33
|
//# sourceMappingURL=development-app-modules.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"development-app-modules.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/container/development-app-modules.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"development-app-modules.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/container/development-app-modules.ts"],"mappings":";;;;;;;;;;;YAUY,4BAA4B;;EAEtC;;;;;;;;;;EAUA;;YAGU;;EAEV,IAAI,uBAAuB;;EAE3B,UAAU,WAAW,OAAO"}
|
|
@@ -6,17 +6,18 @@
|
|
|
6
6
|
* This is intentionally a container-only internal contract: it is not a
|
|
7
7
|
* package-root dev-server export and it exposes no module namespace.
|
|
8
8
|
*/
|
|
9
|
-
type DevelopmentModelModuleState = "ready" | "removed";
|
|
10
|
-
type DevelopmentModelModuleEntry = Readonly<{
|
|
11
|
-
/** Exact file URL used by ModuleLoader to import the module. */
|
|
9
|
+
export type DevelopmentModelModuleState = "ready" | "removed";
|
|
10
|
+
export type DevelopmentModelModuleEntry = Readonly<{
|
|
11
|
+
/** Exact file URL used by ModuleLoader to import the module. */
|
|
12
|
+
url: string;
|
|
13
|
+
/** Monotonic for this canonical path, including removal and re-addition. */
|
|
12
14
|
generation: number;
|
|
13
15
|
hasDefault: boolean;
|
|
14
16
|
state: DevelopmentModelModuleState;
|
|
15
17
|
}>;
|
|
16
|
-
type DevelopmentModelModules = {
|
|
18
|
+
export type DevelopmentModelModules = {
|
|
17
19
|
get(absolutePath: string): DevelopmentModelModuleEntry | undefined;
|
|
18
20
|
subscribe(listener: (entry: DevelopmentModelModuleEntry) => void): () => void;
|
|
19
21
|
};
|
|
20
22
|
//#endregion
|
|
21
|
-
export { DevelopmentModelModuleEntry, DevelopmentModelModuleState, DevelopmentModelModules };
|
|
22
23
|
//# sourceMappingURL=development-model-modules.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"development-model-modules.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/container/development-model-modules.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"development-model-modules.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/container/development-model-modules.ts"],"mappings":";;;;;;;;YAOY;YAEA,8BAA8B;;EAExC;;EAEA;EACA;EACA,OAAO;;YAGG;EACV,IAAI,uBAAuB;EAC3B,UAAU,WAAW,OAAO"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { Router } from "../router/router.mjs";
|
|
2
|
+
import "../router/index.mjs";
|
|
2
3
|
import { DevelopmentAppModuleEntry, DevelopmentAppModules } from "./development-app-modules.mjs";
|
|
3
4
|
import { DevelopmentModelModuleEntry, DevelopmentModelModuleState, DevelopmentModelModules } from "./development-model-modules.mjs";
|
|
4
5
|
import { DataSource } from "@warlock.js/cascade";
|
|
5
6
|
import { FastifyInstance } from "fastify";
|
|
6
7
|
import { Server } from "socket.io";
|
|
7
|
-
|
|
8
8
|
//#region ../../packages/core/src/container/index.d.ts
|
|
9
9
|
/**
|
|
10
10
|
* Known container types for better IDE support
|
|
11
11
|
*/
|
|
12
|
-
type ContainerTypes = {
|
|
12
|
+
export type ContainerTypes = {
|
|
13
13
|
router: Router;
|
|
14
14
|
"http.server": FastifyInstance;
|
|
15
15
|
"http.baseUrl": string;
|
|
@@ -63,7 +63,7 @@ declare class Container {
|
|
|
63
63
|
*/
|
|
64
64
|
delete(key: string): void;
|
|
65
65
|
}
|
|
66
|
-
declare const container: Container;
|
|
66
|
+
export declare const container: Container;
|
|
67
67
|
//#endregion
|
|
68
|
-
export {
|
|
68
|
+
export type { DevelopmentAppModuleEntry, DevelopmentAppModules, DevelopmentModelModuleEntry, DevelopmentModelModuleState, DevelopmentModelModules };
|
|
69
69
|
//# sourceMappingURL=index.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/container/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/container/index.ts"],"mappings":";;;;;;;;;;;YA0BY;EACV,QAAQ;EACR,eAAe;EACf;EACA,QAAQ;EACR,mBAAmB;EACnB,4BAA4B;EAC5B,0BAA0B;;KAGvB,sBAAsB;cAErB;;;;EAIG,IAAI,gBAAgB,gBAAgB,KAAK,GAAG,OAAO,eAAe;EAClE,IAAI,SAAS,aAAa,OAAO;;;;;;;;;;;;EAgBjC,IAAI,gBAAgB,gBAAgB,KAAK,IAAI,eAAe;EAC5D,IAAI,SAAS,cAAc;;;;EAa3B,IAAI,KAAK;;;;;;;;;;EAaT,OAAO,gBAAgB,gBAAgB,KAAK,IAAI,eAAe;EAC/D,OAAO,SAAS,cAAc;;;;EAQ9B,UAAU,gBAAgB,gBAAgB,KAAK,IAAI,eAAe;EAClE,UAAU,SAAS,cAAc;;;;EAQjC,OAAO;;qBAKH,WAAS"}
|