@warlock.js/core 5.31.0 → 5.33.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 +61 -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 +9 -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 +22 -20
- package/esm/application/boot-signal.d.mts.map +1 -1
- package/esm/application/boot-signal.mjs +15 -9
- package/esm/application/boot-signal.mjs.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/ai/ai-command.action.mjs +140 -0
- package/esm/cli/commands/ai/ai-command.action.mjs.map +1 -0
- package/esm/cli/commands/ai.command.mjs +50 -0
- package/esm/cli/commands/ai.command.mjs.map +1 -0
- package/esm/cli/commands/board/board-command.action.mjs +1 -1
- package/esm/cli/commands/check/check-command.action.mjs +4 -1
- package/esm/cli/commands/check/check-command.action.mjs.map +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/check.command.mjs +6 -1
- package/esm/cli/commands/check.command.mjs.map +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/pm2/pm2-command.action.mjs +91 -0
- package/esm/cli/commands/pm2/pm2-command.action.mjs.map +1 -0
- package/esm/cli/commands/pm2/pm2-config.mjs +115 -0
- package/esm/cli/commands/pm2/pm2-config.mjs.map +1 -0
- package/esm/cli/commands/pm2.command.mjs +53 -0
- package/esm/cli/commands/pm2.command.mjs.map +1 -0
- 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 +6 -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 +3 -6
- 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/shutdown-timeout.mjs +7 -0
- package/esm/connectors/shutdown-timeout.mjs.map +1 -0
- 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 +20 -11
- 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/eslint-health-checker.mjs +6 -8
- package/esm/dev-server/health-checker/checkers/eslint-health-checker.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/default-health-checkers.mjs +6 -15
- package/esm/dev-server/health-checker/default-health-checkers.mjs.map +1 -1
- package/esm/dev-server/health-checker/eslint-support.mjs +27 -0
- package/esm/dev-server/health-checker/eslint-support.mjs.map +1 -0
- package/esm/dev-server/health-checker/file-health-checker.contract.d.mts +7 -6
- 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/eslint-health.worker.mjs +2 -11
- package/esm/dev-server/health-checker/workers/eslint-health.worker.mjs.map +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/index.mjs +2 -0
- package/esm/generations/features/index.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/process.feature.mjs +65 -0
- package/esm/generations/features/process.feature.mjs.map +1 -0
- 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/port-preflight.mjs +2 -0
- package/esm/http/port-preflight.mjs.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 +28 -2
- package/esm/index.mjs +7 -2
- 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/secrets/errors.d.mts +9 -0
- package/esm/secrets/errors.d.mts.map +1 -0
- package/esm/secrets/errors.mjs +22 -0
- package/esm/secrets/errors.mjs.map +1 -0
- package/esm/secrets/file-backend.mjs +167 -0
- package/esm/secrets/file-backend.mjs.map +1 -0
- package/esm/secrets/index.d.mts +6 -0
- package/esm/secrets/index.mjs +6 -0
- package/esm/secrets/keyring-backend.mjs +50 -0
- package/esm/secrets/keyring-backend.mjs.map +1 -0
- package/esm/secrets/memory-backend.d.mts +12 -0
- package/esm/secrets/memory-backend.d.mts.map +1 -0
- package/esm/secrets/memory-backend.mjs +28 -0
- package/esm/secrets/memory-backend.mjs.map +1 -0
- package/esm/secrets/secret-store.d.mts +25 -0
- package/esm/secrets/secret-store.d.mts.map +1 -0
- package/esm/secrets/secret-store.mjs +117 -0
- package/esm/secrets/secret-store.mjs.map +1 -0
- package/esm/secrets/secrets.d.mts +11 -0
- package/esm/secrets/secrets.d.mts.map +1 -0
- package/esm/secrets/secrets.mjs +63 -0
- package/esm/secrets/secrets.mjs.map +1 -0
- package/esm/secrets/types.d.mts +22 -0
- package/esm/secrets/types.d.mts.map +1 -0
- package/esm/socket/index.d.mts +2 -1
- package/esm/socket/index.mjs +2 -2
- package/esm/socket/types.d.mts +2 -4
- package/esm/socket/types.d.mts.map +1 -1
- package/esm/socket/utils.d.mts +8 -3
- package/esm/socket/utils.d.mts.map +1 -1
- package/esm/socket/utils.mjs +12 -1
- package/esm/socket/utils.mjs.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 +3 -1
- package/esm/tests/fakes/index.mjs +2 -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/secrets-fake.d.mts +13 -0
- package/esm/tests/fakes/secrets-fake.d.mts.map +1 -0
- package/esm/tests/fakes/secrets-fake.mjs +50 -0
- package/esm/tests/fakes/secrets-fake.mjs.map +1 -0
- 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 +9 -10
- package/esm/tests/fakes/test-fakes.d.mts.map +1 -1
- package/esm/tests/fakes/test-fakes.mjs +6 -3
- package/esm/tests/fakes/test-fakes.mjs.map +1 -1
- package/esm/tests/index.d.mts +3 -1
- package/esm/tests/index.mjs +2 -1
- 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 +7 -8
- package/esm/tests/vitest-setup.d.mts.map +1 -1
- package/esm/tests/vitest-setup.mjs.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 +5 -12
- package/esm/tooling/check/lint-step.d.mts.map +1 -1
- package/esm/tooling/check/lint-step.mjs +16 -12
- 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 +24 -14
- package/esm/tooling/check/run-check.d.mts.map +1 -1
- package/esm/tooling/check/run-check.mjs +2 -2
- package/esm/tooling/check/run-check.mjs.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 +3 -1
- package/esm/upgrade/codemods/index.mjs.map +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/oxc-toolchain.mjs +142 -0
- package/esm/upgrade/codemods/oxc-toolchain.mjs.map +1 -0
- package/esm/upgrade/codemods/request-log-snapshot.mjs +1 -1
- package/esm/upgrade/codemods/request-log-snapshot.mjs.map +1 -1
- package/esm/upgrade/codemods/toolchain-templates.mjs +244 -0
- package/esm/upgrade/codemods/toolchain-templates.mjs.map +1 -0
- 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 +26 -7
- package/esm/upgrade/run-upgrade.mjs.map +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 +8 -6
- 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 +379 -22
- package/llms.txt +3 -2
- package/package.json +27 -15
- package/skills/README.md +2 -1
- package/skills/create-module/SKILL.md +7 -0
- package/skills/index.md +3 -1
- package/skills/report-framework-issue.md +154 -0
- package/skills/run-app/SKILL.md +120 -10
- package/skills/store-secrets/SKILL.md +102 -0
- package/skills/test-fakes/SKILL.md +13 -11
- package/skills/upgrade-from-5-29/SKILL.md +78 -0
- package/skills/warlock-check/SKILL.md +6 -1
- package/skills/warlock-doctor/SKILL.md +9 -0
- package/skills/wire-socket/SKILL.md +19 -0
- package/skills/write-cli-command/SKILL.md +21 -0
- package/esm/tooling/check/index.d.mts +0 -8
- package/esm/tooling/typecheck/index.d.mts +0 -1
|
@@ -5,7 +5,7 @@ import { CODEMODS } from "./codemods/index.mjs";
|
|
|
5
5
|
import { unifiedDiff } from "./diff.mjs";
|
|
6
6
|
import { UPGRADE_NOTES } from "./notes.mjs";
|
|
7
7
|
import path from "node:path";
|
|
8
|
-
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
8
|
+
import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync } from "node:fs";
|
|
9
9
|
import glob from "fast-glob";
|
|
10
10
|
|
|
11
11
|
//#region ../../packages/core/src/upgrade/run-upgrade.ts
|
|
@@ -64,6 +64,15 @@ async function runUpgrade(options) {
|
|
|
64
64
|
relativePath: (sourceFile) => relativeOf.get(sourceFile) ?? path.relative(root, sourceFile.getFilePath()).split(path.sep).join("/"),
|
|
65
65
|
text: {
|
|
66
66
|
read: (file) => textFiles.read(file),
|
|
67
|
+
list: () => readdirSync(root),
|
|
68
|
+
remove: (file, change) => {
|
|
69
|
+
textFiles.remove(file);
|
|
70
|
+
if (activeCodemod) applied.push({
|
|
71
|
+
codemod: activeCodemod.id,
|
|
72
|
+
file,
|
|
73
|
+
...change
|
|
74
|
+
});
|
|
75
|
+
},
|
|
67
76
|
write: (file, content, change) => {
|
|
68
77
|
textFiles.write(file, content);
|
|
69
78
|
if (activeCodemod) applied.push({
|
|
@@ -143,8 +152,15 @@ async function runUpgrade(options) {
|
|
|
143
152
|
});
|
|
144
153
|
for (const change of textFiles.changes()) changes.push(change);
|
|
145
154
|
changes.sort((left, right) => left.file.localeCompare(right.file));
|
|
146
|
-
if (!options.dryRun) for (const change of changes)
|
|
147
|
-
|
|
155
|
+
if (!options.dryRun) for (const change of changes) {
|
|
156
|
+
const target = path.join(root, change.file);
|
|
157
|
+
if (change.after === void 0) rmSync(target, { force: true });
|
|
158
|
+
else {
|
|
159
|
+
mkdirSync(path.dirname(target), { recursive: true });
|
|
160
|
+
writeFileSync(target, change.after);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
const packageJsonChanged = changes.some((change) => change.file === "package.json");
|
|
148
164
|
return {
|
|
149
165
|
from,
|
|
150
166
|
to,
|
|
@@ -154,7 +170,7 @@ async function runUpgrade(options) {
|
|
|
154
170
|
manual,
|
|
155
171
|
notes: UPGRADE_NOTES.filter((note) => compareVersions(note.version, from) > 0 && compareVersions(note.version, to) <= 0),
|
|
156
172
|
changedFiles: changes.map((change) => change.file),
|
|
157
|
-
diff: changes.map((change) => unifiedDiff(change.file, change.before, change.after)).join(""),
|
|
173
|
+
diff: changes.map((change) => unifiedDiff(change.file, change.before, change.after ?? "")).join(""),
|
|
158
174
|
...packageJsonChanged && { installHint: getInstallCommand(await detectPackageManager(root)) }
|
|
159
175
|
};
|
|
160
176
|
}
|
|
@@ -233,14 +249,17 @@ function createTextFiles(root) {
|
|
|
233
249
|
write: (file, content) => {
|
|
234
250
|
entry(file).current = content;
|
|
235
251
|
},
|
|
236
|
-
|
|
252
|
+
remove: (file) => {
|
|
253
|
+
entry(file).current = void 0;
|
|
254
|
+
},
|
|
255
|
+
changes: () => [...files.entries()].filter(([, value]) => value.current !== value.before).map(([file, value]) => ({
|
|
237
256
|
file,
|
|
238
257
|
before: value.before ?? "",
|
|
239
|
-
after: value.current
|
|
258
|
+
after: value.current
|
|
240
259
|
}))
|
|
241
260
|
};
|
|
242
261
|
}
|
|
243
262
|
|
|
244
263
|
//#endregion
|
|
245
|
-
export { UpgradeUsageError, runUpgrade };
|
|
264
|
+
export { UpgradeUsageError, detectInstalledVersion, runUpgrade };
|
|
246
265
|
//# sourceMappingURL=run-upgrade.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-upgrade.mjs","names":[],"sources":["../../../../../../../../packages/core/src/upgrade/run-upgrade.ts"],"sourcesContent":["import glob from \"fast-glob\";\nimport { existsSync, readFileSync, writeFileSync } from \"node:fs\";\nimport path from \"node:path\";\nimport { detectPackageManager, getInstallCommand } from \"../updater/package-manager\";\nimport { CODEMODS } from \"./codemods\";\nimport { unifiedDiff } from \"./diff\";\nimport { loadTsMorph } from \"./load-ts-morph\";\nimport { UPGRADE_NOTES } from \"./notes\";\nimport type {\n AppliedChange,\n Codemod,\n CodemodContext,\n ManualItem,\n SourceEdit,\n SourceFile,\n TextFiles,\n TsMorphModule,\n UpgradeResult,\n} from \"./types\";\nimport { compareVersions, normalizeVersion, parseVersion } from \"./version\";\n\nexport type RunUpgradeOptions = {\n /** App root. Defaults to the current directory. */\n root?: string;\n /** Target version, e.g. `5.31` or `5.31.0`. */\n to: string;\n /** Version upgrading from; detected from the installed `@warlock.js/core` when omitted. */\n from?: string;\n /** Compute and report everything, write nothing. */\n dryRun?: boolean;\n /** Override the codemod list (tests). */\n codemods?: readonly Codemod[];\n /** Override how ts-morph is loaded (tests). */\n loadTsMorph?: (root: string) => Promise<TsMorphModule>;\n};\n\n/** Thrown for a request the command cannot act on (bad versions, nothing to detect). */\nexport class UpgradeUsageError extends Error {\n public override readonly name = \"UpgradeUsageError\";\n}\n\n/**\n * Apply the mechanical edits for every breaking change between two releases\n * and list what needs a decision. Writes nothing with `dryRun`.\n */\nexport async function runUpgrade(options: RunUpgradeOptions): Promise<UpgradeResult> {\n const root = path.resolve(options.root ?? process.cwd());\n const to = toVersion(options.to);\n const from = options.from ? toVersion(options.from) : detectInstalledVersion(root);\n\n if (compareVersions(from, to) >= 0) {\n throw new UpgradeUsageError(notNewerMessage(from, to, options.from !== undefined));\n }\n\n const selected = (options.codemods ?? CODEMODS).filter(\n (codemod) =>\n codemod.version === \"target\" ||\n (compareVersions(codemod.version, from) > 0 && compareVersions(codemod.version, to) <= 0),\n );\n\n const tsMorph = await (options.loadTsMorph ?? loadTsMorph)(root);\n const project = new tsMorph.Project({\n skipAddingFilesFromTsConfig: true,\n skipFileDependencyResolution: true,\n compilerOptions: { jsx: tsMorph.ts.JsxEmit.Preserve, allowJs: false },\n });\n\n const relativePaths = await glob(\"src/**/*.{ts,tsx}\", {\n cwd: root,\n ignore: [\"**/node_modules/**\", \"**/dist/**\", \"**/.warlock/**\", \"**/*.d.ts\"],\n dot: false,\n });\n relativePaths.sort();\n\n const originals = new Map<string, string>();\n const sourceFiles: SourceFile[] = [];\n for (const relative of relativePaths) {\n const content = readFileSync(path.join(root, relative), \"utf8\");\n originals.set(relative, content);\n sourceFiles.push(\n project.createSourceFile(path.join(root, relative), content, { overwrite: true }),\n );\n }\n\n const relativeOf = new Map<SourceFile, string>(\n sourceFiles.map((sourceFile, index) => [sourceFile, relativePaths[index] ?? \"\"]),\n );\n\n const applied: AppliedChange[] = [];\n const manual: ManualItem[] = [];\n const textFiles = createTextFiles(root);\n let activeCodemod: Codemod | undefined;\n\n const text: TextFiles = {\n read: (file) => textFiles.read(file),\n write: (file, content, change) => {\n textFiles.write(file, content);\n if (activeCodemod) {\n applied.push({ codemod: activeCodemod.id, file, ...change });\n }\n },\n };\n\n const context: CodemodContext = {\n tsMorph,\n sourceFiles,\n relativePath: (sourceFile) =>\n relativeOf.get(sourceFile) ??\n path.relative(root, sourceFile.getFilePath()).split(path.sep).join(\"/\"),\n text,\n targetVersion: to,\n };\n\n const summary: UpgradeResult[\"codemods\"] = [];\n\n for (const codemod of selected) {\n activeCodemod = codemod;\n const appliedBefore = applied.length;\n const output = codemod.run(context);\n\n for (const finding of output.manual) {\n manual.push({ ...finding, codemod: codemod.id, skill: codemod.skill });\n }\n\n const byFile = new Map<string, SourceEdit[]>();\n for (const edit of output.edits) {\n const list = byFile.get(edit.file) ?? [];\n list.push(edit);\n byFile.set(edit.file, list);\n }\n\n for (const [file, edits] of byFile) {\n const sourceFile = sourceFiles[relativePaths.indexOf(file)];\n if (!sourceFile) continue;\n\n let content = sourceFile.getFullText();\n let lowestStart = Number.POSITIVE_INFINITY;\n for (const edit of [...edits].sort((left, right) => right.start - left.start)) {\n // Overlapping edits (one inside another) would corrupt the file: keep the outer one.\n if (edit.end > lowestStart) {\n manual.push({\n codemod: codemod.id,\n skill: codemod.skill,\n file,\n line: edit.line,\n hint: `Not edited automatically (overlaps another change): ${edit.description}. Run the upgrade again after reviewing.`,\n });\n continue;\n }\n content = content.slice(0, edit.start) + edit.text + content.slice(edit.end);\n lowestStart = edit.start;\n applied.push({ codemod: codemod.id, file, line: edit.line, description: edit.description });\n }\n\n sourceFile.replaceWithText(content);\n }\n\n summary.push({\n id: codemod.id,\n version: codemod.version === \"target\" ? to : codemod.version,\n title: codemod.title,\n applied: applied.length - appliedBefore,\n manual: manual.filter((item) => item.codemod === codemod.id).length,\n });\n }\n activeCodemod = undefined;\n\n applied.sort(byFileAndLine);\n manual.sort(byFileAndLine);\n\n const changes: { file: string; before: string; after: string }[] = [];\n sourceFiles.forEach((sourceFile, index) => {\n const file = relativePaths[index];\n if (file === undefined) return;\n const before = originals.get(file) ?? \"\";\n const after = sourceFile.getFullText();\n if (before !== after) changes.push({ file, before, after });\n });\n for (const change of textFiles.changes()) changes.push(change);\n changes.sort((left, right) => left.file.localeCompare(right.file));\n\n if (!options.dryRun) {\n for (const change of changes) writeFileSync(path.join(root, change.file), change.after);\n }\n\n const packageJsonChanged = changes.some(\n (change) =>\n change.file === \"package.json\" &&\n applied.some((item) => item.codemod === \"warlock-versions\" && item.file === \"package.json\"),\n );\n\n return {\n from,\n to,\n dryRun: options.dryRun === true,\n codemods: summary,\n applied,\n manual,\n notes: UPGRADE_NOTES.filter(\n (note) => compareVersions(note.version, from) > 0 && compareVersions(note.version, to) <= 0,\n ),\n changedFiles: changes.map((change) => change.file),\n diff: changes.map((change) => unifiedDiff(change.file, change.before, change.after)).join(\"\"),\n ...(packageJsonChanged && {\n installHint: getInstallCommand(await detectPackageManager(root)),\n }),\n };\n}\n\n/**\n * Explain why `--to` is not newer than the starting version. The usual cause\n * is running the command after installing the new release: the starting\n * version is read from the installed `@warlock.js/core`, which is then already\n * the target, so the command needs `--from`.\n */\nfunction notNewerMessage(from: string, to: string, fromWasPassed: boolean): string {\n if (fromWasPassed) {\n return `--from ${from} is not older than --to ${to}. Pass the version this app is upgrading from.`;\n }\n\n const example = `warlock upgrade --from ${previousMinor(to)} --to ${to}`;\n\n if (compareVersions(from, to) === 0) {\n return `The installed @warlock.js/core is already ${from}, the --to version, so the version this app is upgrading from cannot be detected. Pass it with --from <previous version>, e.g. ${example}.`;\n }\n\n return `This app is already on ${from}; --to ${to} is not newer. If the detected version is wrong, pass --from <previous version>, e.g. ${example}.`;\n}\n\n/** `5.31.0` → `5.30`. A major's first release has no minor to step back to, so it gets a placeholder. */\nfunction previousMinor(version: string): string {\n const [major, minor] = parseVersion(version) ?? [0, 0, 0];\n\n return minor > 0 ? `${major}.${minor - 1}` : \"<previous version>\";\n}\n\nfunction toVersion(value: string): string {\n try {\n return normalizeVersion(value);\n } catch (error) {\n throw new UpgradeUsageError(error instanceof Error ? error.message : String(error));\n }\n}\n\n/** The installed `@warlock.js/core`, or the version its package.json range names. */\nexport function detectInstalledVersion(root: string): string {\n const installed = path.join(root, \"node_modules\", \"@warlock.js\", \"core\", \"package.json\");\n if (existsSync(installed)) {\n const version = (JSON.parse(readFileSync(installed, \"utf8\")) as { version?: unknown }).version;\n if (typeof version === \"string\" && parseVersion(version))\n return normalizeVersion(stripRange(version));\n }\n\n const manifest = path.join(root, \"package.json\");\n if (existsSync(manifest)) {\n const pkg = JSON.parse(readFileSync(manifest, \"utf8\")) as {\n dependencies?: Record<string, unknown>;\n devDependencies?: Record<string, unknown>;\n };\n const spec =\n pkg.dependencies?.[\"@warlock.js/core\"] ?? pkg.devDependencies?.[\"@warlock.js/core\"];\n const parsed = typeof spec === \"string\" ? parseVersion(spec) : undefined;\n if (parsed) return parsed.join(\".\");\n }\n\n throw new UpgradeUsageError(\n \"Could not tell which Warlock version this app is on (no installed @warlock.js/core). Pass it with --from, e.g. --from 5.29.\",\n );\n}\n\nfunction stripRange(version: string): string {\n return (parseVersion(version) ?? [0, 0, 0]).join(\".\");\n}\n\nfunction byFileAndLine(\n left: { file: string; line: number },\n right: { file: string; line: number },\n) {\n return left.file.localeCompare(right.file) || left.line - right.line;\n}\n\n/** Non-TypeScript files a codemod reads and rewrites, buffered until the end. */\nfunction createTextFiles(root: string) {\n const files = new Map<string, { before: string | undefined; current: string | undefined }>();\n\n const entry = (file: string) => {\n let existing = files.get(file);\n if (!existing) {\n const absolute = path.join(root, file);\n const content = existsSync(absolute) ? readFileSync(absolute, \"utf8\") : undefined;\n existing = { before: content, current: content };\n files.set(file, existing);\n }\n return existing;\n };\n\n return {\n read: (file: string) => entry(file).current,\n write: (file: string, content: string) => {\n entry(file).current = content;\n },\n changes: () =>\n [...files.entries()]\n .filter(([, value]) => value.current !== undefined && value.current !== value.before)\n .map(([file, value]) => ({ file, before: value.before ?? \"\", after: value.current ?? \"\" })),\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-upgrade.mjs","names":[],"sources":["../../../../../../../../packages/core/src/upgrade/run-upgrade.ts"],"sourcesContent":["import glob from \"fast-glob\";\nimport { existsSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from \"node:fs\";\nimport path from \"node:path\";\nimport { detectPackageManager, getInstallCommand } from \"../updater/package-manager\";\nimport { CODEMODS } from \"./codemods\";\nimport { unifiedDiff } from \"./diff\";\nimport { loadTsMorph } from \"./load-ts-morph\";\nimport { UPGRADE_NOTES } from \"./notes\";\nimport type {\n AppliedChange,\n Codemod,\n CodemodContext,\n ManualItem,\n SourceEdit,\n SourceFile,\n TextFiles,\n TsMorphModule,\n UpgradeResult,\n} from \"./types\";\nimport { compareVersions, normalizeVersion, parseVersion } from \"./version\";\n\nexport type RunUpgradeOptions = {\n /** App root. Defaults to the current directory. */\n root?: string;\n /** Target version, e.g. `5.31` or `5.31.0`. */\n to: string;\n /** Version upgrading from; detected from the installed `@warlock.js/core` when omitted. */\n from?: string;\n /** Compute and report everything, write nothing. */\n dryRun?: boolean;\n /** Override the codemod list (tests). */\n codemods?: readonly Codemod[];\n /** Override how ts-morph is loaded (tests). */\n loadTsMorph?: (root: string) => Promise<TsMorphModule>;\n};\n\n/** Thrown for a request the command cannot act on (bad versions, nothing to detect). */\nexport class UpgradeUsageError extends Error {\n public override readonly name = \"UpgradeUsageError\";\n}\n\n/**\n * Apply the mechanical edits for every breaking change between two releases\n * and list what needs a decision. Writes nothing with `dryRun`.\n */\nexport async function runUpgrade(options: RunUpgradeOptions): Promise<UpgradeResult> {\n const root = path.resolve(options.root ?? process.cwd());\n const to = toVersion(options.to);\n const from = options.from ? toVersion(options.from) : detectInstalledVersion(root);\n\n if (compareVersions(from, to) >= 0) {\n throw new UpgradeUsageError(notNewerMessage(from, to, options.from !== undefined));\n }\n\n const selected = (options.codemods ?? CODEMODS).filter(\n (codemod) =>\n codemod.version === \"target\" ||\n (compareVersions(codemod.version, from) > 0 && compareVersions(codemod.version, to) <= 0),\n );\n\n const tsMorph = await (options.loadTsMorph ?? loadTsMorph)(root);\n const project = new tsMorph.Project({\n skipAddingFilesFromTsConfig: true,\n skipFileDependencyResolution: true,\n compilerOptions: { jsx: tsMorph.ts.JsxEmit.Preserve, allowJs: false },\n });\n\n const relativePaths = await glob(\"src/**/*.{ts,tsx}\", {\n cwd: root,\n ignore: [\"**/node_modules/**\", \"**/dist/**\", \"**/.warlock/**\", \"**/*.d.ts\"],\n dot: false,\n });\n relativePaths.sort();\n\n const originals = new Map<string, string>();\n const sourceFiles: SourceFile[] = [];\n for (const relative of relativePaths) {\n const content = readFileSync(path.join(root, relative), \"utf8\");\n originals.set(relative, content);\n sourceFiles.push(\n project.createSourceFile(path.join(root, relative), content, { overwrite: true }),\n );\n }\n\n const relativeOf = new Map<SourceFile, string>(\n sourceFiles.map((sourceFile, index) => [sourceFile, relativePaths[index] ?? \"\"]),\n );\n\n const applied: AppliedChange[] = [];\n const manual: ManualItem[] = [];\n const textFiles = createTextFiles(root);\n let activeCodemod: Codemod | undefined;\n\n const text: TextFiles = {\n read: (file) => textFiles.read(file),\n list: () => readdirSync(root),\n remove: (file, change) => {\n textFiles.remove(file);\n if (activeCodemod) applied.push({ codemod: activeCodemod.id, file, ...change });\n },\n write: (file, content, change) => {\n textFiles.write(file, content);\n if (activeCodemod) {\n applied.push({ codemod: activeCodemod.id, file, ...change });\n }\n },\n };\n\n const context: CodemodContext = {\n tsMorph,\n sourceFiles,\n relativePath: (sourceFile) =>\n relativeOf.get(sourceFile) ??\n path.relative(root, sourceFile.getFilePath()).split(path.sep).join(\"/\"),\n text,\n targetVersion: to,\n };\n\n const summary: UpgradeResult[\"codemods\"] = [];\n\n for (const codemod of selected) {\n activeCodemod = codemod;\n const appliedBefore = applied.length;\n const output = codemod.run(context);\n\n for (const finding of output.manual) {\n manual.push({ ...finding, codemod: codemod.id, skill: codemod.skill });\n }\n\n const byFile = new Map<string, SourceEdit[]>();\n for (const edit of output.edits) {\n const list = byFile.get(edit.file) ?? [];\n list.push(edit);\n byFile.set(edit.file, list);\n }\n\n for (const [file, edits] of byFile) {\n const sourceFile = sourceFiles[relativePaths.indexOf(file)];\n if (!sourceFile) continue;\n\n let content = sourceFile.getFullText();\n let lowestStart = Number.POSITIVE_INFINITY;\n for (const edit of [...edits].sort((left, right) => right.start - left.start)) {\n // Overlapping edits (one inside another) would corrupt the file: keep the outer one.\n if (edit.end > lowestStart) {\n manual.push({\n codemod: codemod.id,\n skill: codemod.skill,\n file,\n line: edit.line,\n hint: `Not edited automatically (overlaps another change): ${edit.description}. Run the upgrade again after reviewing.`,\n });\n continue;\n }\n content = content.slice(0, edit.start) + edit.text + content.slice(edit.end);\n lowestStart = edit.start;\n applied.push({ codemod: codemod.id, file, line: edit.line, description: edit.description });\n }\n\n sourceFile.replaceWithText(content);\n }\n\n summary.push({\n id: codemod.id,\n version: codemod.version === \"target\" ? to : codemod.version,\n title: codemod.title,\n applied: applied.length - appliedBefore,\n manual: manual.filter((item) => item.codemod === codemod.id).length,\n });\n }\n activeCodemod = undefined;\n\n applied.sort(byFileAndLine);\n manual.sort(byFileAndLine);\n\n const changes: { file: string; before: string; after: string | undefined }[] = [];\n sourceFiles.forEach((sourceFile, index) => {\n const file = relativePaths[index];\n if (file === undefined) return;\n const before = originals.get(file) ?? \"\";\n const after = sourceFile.getFullText();\n if (before !== after) changes.push({ file, before, after });\n });\n for (const change of textFiles.changes()) changes.push(change);\n changes.sort((left, right) => left.file.localeCompare(right.file));\n\n if (!options.dryRun) {\n for (const change of changes) {\n const target = path.join(root, change.file);\n if (change.after === undefined) rmSync(target, { force: true });\n else {\n mkdirSync(path.dirname(target), { recursive: true });\n writeFileSync(target, change.after);\n }\n }\n }\n\n const packageJsonChanged = changes.some((change) => change.file === \"package.json\");\n\n return {\n from,\n to,\n dryRun: options.dryRun === true,\n codemods: summary,\n applied,\n manual,\n notes: UPGRADE_NOTES.filter(\n (note) => compareVersions(note.version, from) > 0 && compareVersions(note.version, to) <= 0,\n ),\n changedFiles: changes.map((change) => change.file),\n diff: changes\n .map((change) => unifiedDiff(change.file, change.before, change.after ?? \"\"))\n .join(\"\"),\n ...(packageJsonChanged && {\n installHint: getInstallCommand(await detectPackageManager(root)),\n }),\n };\n}\n\n/**\n * Explain why `--to` is not newer than the starting version. The usual cause\n * is running the command after installing the new release: the starting\n * version is read from the installed `@warlock.js/core`, which is then already\n * the target, so the command needs `--from`.\n */\nfunction notNewerMessage(from: string, to: string, fromWasPassed: boolean): string {\n if (fromWasPassed) {\n return `--from ${from} is not older than --to ${to}. Pass the version this app is upgrading from.`;\n }\n\n const example = `warlock upgrade --from ${previousMinor(to)} --to ${to}`;\n\n if (compareVersions(from, to) === 0) {\n return `The installed @warlock.js/core is already ${from}, the --to version, so the version this app is upgrading from cannot be detected. Pass it with --from <previous version>, e.g. ${example}.`;\n }\n\n return `This app is already on ${from}; --to ${to} is not newer. If the detected version is wrong, pass --from <previous version>, e.g. ${example}.`;\n}\n\n/** `5.31.0` → `5.30`. A major's first release has no minor to step back to, so it gets a placeholder. */\nfunction previousMinor(version: string): string {\n const [major, minor] = parseVersion(version) ?? [0, 0, 0];\n\n return minor > 0 ? `${major}.${minor - 1}` : \"<previous version>\";\n}\n\nfunction toVersion(value: string): string {\n try {\n return normalizeVersion(value);\n } catch (error) {\n throw new UpgradeUsageError(error instanceof Error ? error.message : String(error));\n }\n}\n\n/** The installed `@warlock.js/core`, or the version its package.json range names. */\nexport function detectInstalledVersion(root: string): string {\n const installed = path.join(root, \"node_modules\", \"@warlock.js\", \"core\", \"package.json\");\n if (existsSync(installed)) {\n const version = (JSON.parse(readFileSync(installed, \"utf8\")) as { version?: unknown }).version;\n if (typeof version === \"string\" && parseVersion(version))\n return normalizeVersion(stripRange(version));\n }\n\n const manifest = path.join(root, \"package.json\");\n if (existsSync(manifest)) {\n const pkg = JSON.parse(readFileSync(manifest, \"utf8\")) as {\n dependencies?: Record<string, unknown>;\n devDependencies?: Record<string, unknown>;\n };\n const spec =\n pkg.dependencies?.[\"@warlock.js/core\"] ?? pkg.devDependencies?.[\"@warlock.js/core\"];\n const parsed = typeof spec === \"string\" ? parseVersion(spec) : undefined;\n if (parsed) return parsed.join(\".\");\n }\n\n throw new UpgradeUsageError(\n \"Could not tell which Warlock version this app is on (no installed @warlock.js/core). Pass it with --from, e.g. --from 5.29.\",\n );\n}\n\nfunction stripRange(version: string): string {\n return (parseVersion(version) ?? [0, 0, 0]).join(\".\");\n}\n\nfunction byFileAndLine(\n left: { file: string; line: number },\n right: { file: string; line: number },\n) {\n return left.file.localeCompare(right.file) || left.line - right.line;\n}\n\n/** Non-TypeScript files a codemod reads and rewrites, buffered until the end. */\nfunction createTextFiles(root: string) {\n const files = new Map<string, { before: string | undefined; current: string | undefined }>();\n\n const entry = (file: string) => {\n let existing = files.get(file);\n if (!existing) {\n const absolute = path.join(root, file);\n const content = existsSync(absolute) ? readFileSync(absolute, \"utf8\") : undefined;\n existing = { before: content, current: content };\n files.set(file, existing);\n }\n return existing;\n };\n\n return {\n read: (file: string) => entry(file).current,\n write: (file: string, content: string) => {\n entry(file).current = content;\n },\n remove: (file: string) => {\n entry(file).current = undefined;\n },\n changes: () =>\n [...files.entries()]\n .filter(([, value]) => value.current !== value.before)\n .map(([file, value]) => ({ file, before: value.before ?? \"\", after: value.current })),\n };\n}\n"],"mappings":"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"}
|
|
@@ -4,4 +4,5 @@ import { broadcastUseCaseResult } from "./use-case-broadcast.mjs";
|
|
|
4
4
|
import { fireLifecycleEvent, globalEventsCallbacksMap, globalUseCasesEvents } from "./use-case-events.mjs";
|
|
5
5
|
import { PipelineOptions, runPipeline } from "./use-case-pipeline.mjs";
|
|
6
6
|
import { BadSchemaUseCaseError } from "./use-case.errors.mjs";
|
|
7
|
-
import { $registerUseCase, $unregisterUseCase, addUseCaseHistory, getUseCase, getUseCaseHistory, getUseCases, increaseUseCaseFailedCalls, increaseUseCaseSuccessCalls } from "./use-cases-registry.mjs";
|
|
7
|
+
import { $registerUseCase, $unregisterUseCase, addUseCaseHistory, getUseCase, getUseCaseHistory, getUseCases, increaseUseCaseFailedCalls, increaseUseCaseSuccessCalls } from "./use-cases-registry.mjs";
|
|
8
|
+
export { $registerUseCase, $unregisterUseCase, BadSchemaUseCaseError, PipelineOptions, RegisteredUseCase, UseCase, UseCaseAfterMiddleware, UseCaseBeforeMiddleware, UseCaseBroadcastChannel, UseCaseBroadcastEvent, UseCaseBroadcastOption, UseCaseConfigurations, UseCaseContext, UseCaseErrorResult, UseCaseEventsCallbacksMap, UseCaseGuard, UseCaseHandler, UseCaseOnExecutingContext, UseCaseResult, UseCaseRuntimeOptions, UseCaseWithSchema, addUseCaseHistory, broadcastUseCaseResult, fireLifecycleEvent, getUseCase, getUseCaseHistory, getUseCases, globalEventsCallbacksMap, globalUseCasesEvents, increaseUseCaseFailedCalls, increaseUseCaseSuccessCalls, runPipeline, useCase };
|
package/esm/use-cases/index.mjs
CHANGED
|
@@ -5,4 +5,4 @@ import { runPipeline } from "./use-case-pipeline.mjs";
|
|
|
5
5
|
import { $registerUseCase, $unregisterUseCase, addUseCaseHistory, getUseCase, getUseCaseHistory, getUseCases, increaseUseCaseFailedCalls, increaseUseCaseSuccessCalls } from "./use-cases-registry.mjs";
|
|
6
6
|
import { useCase } from "./use-case.mjs";
|
|
7
7
|
|
|
8
|
-
export {
|
|
8
|
+
export { $registerUseCase, $unregisterUseCase, BadSchemaUseCaseError, addUseCaseHistory, broadcastUseCaseResult, fireLifecycleEvent, getUseCase, getUseCaseHistory, getUseCases, globalEventsCallbacksMap, globalUseCasesEvents, increaseUseCaseFailedCalls, increaseUseCaseSuccessCalls, runPipeline, useCase };
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { BenchmarkOptions } from "../benchmark/types.mjs";
|
|
2
2
|
import { Infer, ObjectValidator } from "@warlock.js/seal";
|
|
3
3
|
import { RetryOptions } from "@mongez/reinforcements";
|
|
4
|
-
|
|
5
4
|
//#region ../../packages/core/src/use-cases/types.d.ts
|
|
6
5
|
/**
|
|
7
6
|
* Shared context object passed through the entire use case pipeline.
|
|
8
7
|
* Contains the optional schema and can be enriched by guards/middleware
|
|
9
8
|
* with arbitrary data (e.g., currentUser, permissions, request metadata).
|
|
10
9
|
*/
|
|
11
|
-
type UseCaseContext = {
|
|
10
|
+
export type UseCaseContext = {
|
|
12
11
|
schema?: ObjectValidator;
|
|
13
12
|
} & Record<string, any>;
|
|
14
13
|
/**
|
|
@@ -30,7 +29,7 @@ type UseCaseContext = {
|
|
|
30
29
|
* @template Input - The shape of the use case input data
|
|
31
30
|
* @template Ctx - The shape of the shared context
|
|
32
31
|
*/
|
|
33
|
-
type UseCaseGuard<Input, Ctx extends UseCaseContext = UseCaseContext> = (data: Readonly<Input>, ctx: Ctx) => void | Promise<void>;
|
|
32
|
+
export type UseCaseGuard<Input, Ctx extends UseCaseContext = UseCaseContext> = (data: Readonly<Input>, ctx: Ctx) => void | Promise<void>;
|
|
34
33
|
/**
|
|
35
34
|
* Before middleware that runs **after** schema validation.
|
|
36
35
|
*
|
|
@@ -47,7 +46,7 @@ type UseCaseGuard<Input, Ctx extends UseCaseContext = UseCaseContext> = (data: R
|
|
|
47
46
|
* @template Input - The shape of the use case input data
|
|
48
47
|
* @template Ctx - The shape of the shared context
|
|
49
48
|
*/
|
|
50
|
-
type UseCaseBeforeMiddleware<Input, Ctx extends UseCaseContext = UseCaseContext> = (data: Input, ctx: Ctx) => Input | Promise<Input>;
|
|
49
|
+
export type UseCaseBeforeMiddleware<Input, Ctx extends UseCaseContext = UseCaseContext> = (data: Input, ctx: Ctx) => Input | Promise<Input>;
|
|
51
50
|
/**
|
|
52
51
|
* After middleware that runs **after** the handler succeeds.
|
|
53
52
|
*
|
|
@@ -65,17 +64,23 @@ type UseCaseBeforeMiddleware<Input, Ctx extends UseCaseContext = UseCaseContext>
|
|
|
65
64
|
* @template Output - The shape of the use case output data
|
|
66
65
|
* @template Ctx - The shape of the shared context
|
|
67
66
|
*/
|
|
68
|
-
type UseCaseAfterMiddleware<Output, Ctx extends UseCaseContext = UseCaseContext> = (output: Output, ctx: Ctx) => void | Promise<void>;
|
|
67
|
+
export type UseCaseAfterMiddleware<Output, Ctx extends UseCaseContext = UseCaseContext> = (output: Output, ctx: Ctx) => void | Promise<void>;
|
|
69
68
|
/**
|
|
70
69
|
* Context passed to `onExecuting` lifecycle event callbacks.
|
|
71
70
|
* Fired at the start of each use case execution, before guards run.
|
|
72
71
|
*/
|
|
73
|
-
type UseCaseOnExecutingContext = {
|
|
74
|
-
/** The shared pipeline context */
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
72
|
+
export type UseCaseOnExecutingContext = {
|
|
73
|
+
/** The shared pipeline context */
|
|
74
|
+
ctx: UseCaseContext;
|
|
75
|
+
/** Unique execution ID */
|
|
76
|
+
id: string;
|
|
77
|
+
/** Use case name */
|
|
78
|
+
name: string;
|
|
79
|
+
/** Raw input data */
|
|
80
|
+
data: any;
|
|
81
|
+
/** Schema validator (if defined) */
|
|
82
|
+
schema?: ObjectValidator;
|
|
83
|
+
/** Timestamp when execution started */
|
|
79
84
|
startedAt: Date;
|
|
80
85
|
};
|
|
81
86
|
/**
|
|
@@ -84,11 +89,16 @@ type UseCaseOnExecutingContext = {
|
|
|
84
89
|
* An envelope (not the bare payload) so consumers get a correlation `id` for
|
|
85
90
|
* tracing/idempotency under at-least-once delivery.
|
|
86
91
|
*/
|
|
87
|
-
type UseCaseBroadcastEvent = {
|
|
88
|
-
/** Use case name */
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
+
export type UseCaseBroadcastEvent = {
|
|
93
|
+
/** Use case name */
|
|
94
|
+
useCase: string;
|
|
95
|
+
/** Channel/event name — defaults to the use case name */
|
|
96
|
+
event: string;
|
|
97
|
+
/** Execution id (correlation / idempotency) */
|
|
98
|
+
id: string;
|
|
99
|
+
/** Emission timestamp */
|
|
100
|
+
at: Date;
|
|
101
|
+
/** The output as-is, or the projected shape from `broadcast.output` */
|
|
92
102
|
payload: unknown;
|
|
93
103
|
};
|
|
94
104
|
/**
|
|
@@ -104,7 +114,7 @@ type UseCaseBroadcastEvent = {
|
|
|
104
114
|
* broadcast: { enabled: true, channels: [heraldBroadcast({ broker: "default" })] }
|
|
105
115
|
* ```
|
|
106
116
|
*/
|
|
107
|
-
interface UseCaseBroadcastChannel {
|
|
117
|
+
export interface UseCaseBroadcastChannel {
|
|
108
118
|
broadcast(event: UseCaseBroadcastEvent): void | Promise<void>;
|
|
109
119
|
}
|
|
110
120
|
/**
|
|
@@ -113,8 +123,10 @@ interface UseCaseBroadcastChannel {
|
|
|
113
123
|
*
|
|
114
124
|
* @template Output - The shape of the handler's return value
|
|
115
125
|
*/
|
|
116
|
-
type UseCaseBroadcastOption<Output> = boolean | {
|
|
117
|
-
/** Channel/event name; defaults to the use case name */
|
|
126
|
+
export type UseCaseBroadcastOption<Output> = boolean | {
|
|
127
|
+
/** Channel/event name; defaults to the use case name */
|
|
128
|
+
event?: string;
|
|
129
|
+
/** Project the payload before broadcasting (e.g. strip sensitive fields) */
|
|
118
130
|
output?: (output: Output, result: UseCaseResult<Output>) => unknown;
|
|
119
131
|
};
|
|
120
132
|
/**
|
|
@@ -143,16 +155,26 @@ type UseCaseBroadcastOption<Output> = boolean | {
|
|
|
143
155
|
* @template Input - The shape of the input data (before transformation)
|
|
144
156
|
* @template Ctx - The shape of the shared context
|
|
145
157
|
*/
|
|
146
|
-
type UseCase<Output = any, Input = any, Ctx extends UseCaseContext = UseCaseContext> = {
|
|
147
|
-
/** Unique use case identifier, used for registration, logging, and cache keys */
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
158
|
+
export type UseCase<Output = any, Input = any, Ctx extends UseCaseContext = UseCaseContext> = {
|
|
159
|
+
/** Unique use case identifier, used for registration, logging, and cache keys */
|
|
160
|
+
name: string;
|
|
161
|
+
/** Human-readable description, surfaced in the registry and observability */
|
|
162
|
+
description?: string;
|
|
163
|
+
/** Core business logic handler. Receives validated + transformed data and context */
|
|
164
|
+
handler: (data: Input, ctx: Ctx) => Promise<Output>;
|
|
165
|
+
/** Optional schema validator (from @warlock.js/seal). Runs after guards */
|
|
166
|
+
schema?: ObjectValidator;
|
|
167
|
+
/** Guards to run before validation. Sequential, can enrich ctx, cannot mutate data */
|
|
168
|
+
guards?: UseCaseGuard<Input, Ctx>[];
|
|
169
|
+
/** Before middleware to run after validation. Sequential, can transform data */
|
|
170
|
+
before?: UseCaseBeforeMiddleware<Input, Ctx>[];
|
|
171
|
+
/** After middleware to run on success. Fire-and-forget, errors are logged not thrown */
|
|
172
|
+
after?: UseCaseAfterMiddleware<Output, Ctx>[];
|
|
173
|
+
/** Lifecycle callback: fires when execution starts (before guards) */
|
|
174
|
+
onExecuting?: (ctx: UseCaseOnExecutingContext) => void;
|
|
175
|
+
/** Lifecycle callback: fires on successful completion with full result snapshot */
|
|
176
|
+
onCompleted?: (result: UseCaseResult<Output>) => void;
|
|
177
|
+
/** Lifecycle callback: fires on error with error details and execution context */
|
|
156
178
|
onError?: (ctx: UseCaseErrorResult) => void;
|
|
157
179
|
/**
|
|
158
180
|
* Retry configuration (from `@mongez/reinforcements`). When set, the **handler**
|
|
@@ -178,7 +200,7 @@ type UseCase<Output = any, Input = any, Ctx extends UseCaseContext = UseCaseCont
|
|
|
178
200
|
* @template Schema - The schema validator the input is inferred from
|
|
179
201
|
* @template Ctx - The shape of the shared context
|
|
180
202
|
*/
|
|
181
|
-
type UseCaseWithSchema<Output, Schema extends ObjectValidator, Ctx extends UseCaseContext = UseCaseContext> = Omit<UseCase<Output, Infer<Schema>, Ctx>, "schema"> & {
|
|
203
|
+
export type UseCaseWithSchema<Output, Schema extends ObjectValidator, Ctx extends UseCaseContext = UseCaseContext> = Omit<UseCase<Output, Infer<Schema>, Ctx>, "schema"> & {
|
|
182
204
|
schema: Schema;
|
|
183
205
|
};
|
|
184
206
|
/**
|
|
@@ -188,17 +210,21 @@ type UseCaseWithSchema<Output, Schema extends ObjectValidator, Ctx extends UseCa
|
|
|
188
210
|
* @template Output - The shape of the handler's return value
|
|
189
211
|
* @template Input - The shape of the input data
|
|
190
212
|
*/
|
|
191
|
-
type UseCaseHandler<Output, Input> = ((data: Input, options?: UseCaseRuntimeOptions<Output>) => Promise<Output>) & {
|
|
213
|
+
export type UseCaseHandler<Output, Input> = ((data: Input, options?: UseCaseRuntimeOptions<Output>) => Promise<Output>) & {
|
|
192
214
|
$cleanup: () => void;
|
|
193
215
|
};
|
|
194
216
|
/**
|
|
195
217
|
* A registered use case with call tracking metadata.
|
|
196
218
|
* Created internally when a use case is registered via `useCase()`.
|
|
197
219
|
*/
|
|
198
|
-
type RegisteredUseCase<Output = any, Input = any> = UseCase<Output, Input> & {
|
|
199
|
-
/** Execution call counters */
|
|
200
|
-
|
|
201
|
-
|
|
220
|
+
export type RegisteredUseCase<Output = any, Input = any> = UseCase<Output, Input> & {
|
|
221
|
+
/** Execution call counters */
|
|
222
|
+
calls: {
|
|
223
|
+
/** Number of successful executions */
|
|
224
|
+
success: number;
|
|
225
|
+
/** Number of failed executions */
|
|
226
|
+
failed: number;
|
|
227
|
+
/** Total executions (success + failed) */
|
|
202
228
|
total: number;
|
|
203
229
|
};
|
|
204
230
|
};
|
|
@@ -217,19 +243,25 @@ type RegisteredUseCase<Output = any, Input = any> = UseCase<Output, Input> & {
|
|
|
217
243
|
*
|
|
218
244
|
* @template Output - The shape of the use case output data
|
|
219
245
|
*/
|
|
220
|
-
type UseCaseRuntimeOptions<Output = any> = {
|
|
221
|
-
/** Override the auto-generated execution ID */
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
246
|
+
export type UseCaseRuntimeOptions<Output = any> = {
|
|
247
|
+
/** Override the auto-generated execution ID */
|
|
248
|
+
id?: string;
|
|
249
|
+
/** Provide a pre-populated context object */
|
|
250
|
+
ctx?: UseCaseContext;
|
|
251
|
+
/** Invocation-level lifecycle callback: fires first, before use case and global */
|
|
252
|
+
onExecuting?: (ctx: UseCaseOnExecutingContext) => void;
|
|
253
|
+
/** Invocation-level lifecycle callback: fires first on success */
|
|
254
|
+
onCompleted?: (result: UseCaseResult<Output>) => void;
|
|
255
|
+
/** Invocation-level lifecycle callback: fires first on error */
|
|
225
256
|
onError?: (ctx: UseCaseErrorResult) => void;
|
|
226
257
|
};
|
|
227
258
|
/**
|
|
228
259
|
* Error result snapshot, emitted via `onError` lifecycle callbacks.
|
|
229
260
|
* Contains all fields from `UseCaseResult` except `output`, plus the thrown error.
|
|
230
261
|
*/
|
|
231
|
-
type UseCaseErrorResult = Omit<UseCaseResult, "output"> & {
|
|
232
|
-
/** The error that caused the failure */
|
|
262
|
+
export type UseCaseErrorResult = Omit<UseCaseResult, "output"> & {
|
|
263
|
+
/** The error that caused the failure */
|
|
264
|
+
error: Error;
|
|
233
265
|
};
|
|
234
266
|
/**
|
|
235
267
|
* Success result snapshot, emitted via `onCompleted` lifecycle callbacks
|
|
@@ -237,21 +269,35 @@ type UseCaseErrorResult = Omit<UseCaseResult, "output"> & {
|
|
|
237
269
|
*
|
|
238
270
|
* @template Output - The shape of the handler's return value
|
|
239
271
|
*/
|
|
240
|
-
type UseCaseResult<Output = any> = {
|
|
241
|
-
/** Handler return value (undefined if execution failed) */
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
272
|
+
export type UseCaseResult<Output = any> = {
|
|
273
|
+
/** Handler return value (undefined if execution failed) */
|
|
274
|
+
output?: Output;
|
|
275
|
+
/** The pipeline context at time of completion */
|
|
276
|
+
ctx: UseCaseContext;
|
|
277
|
+
/** Timestamp when execution started */
|
|
278
|
+
startedAt: Date;
|
|
279
|
+
/** Timestamp when execution ended */
|
|
280
|
+
endedAt: Date;
|
|
281
|
+
/** Unique execution ID */
|
|
282
|
+
id: string;
|
|
283
|
+
/** Use case name */
|
|
284
|
+
name: string;
|
|
285
|
+
/** Success or failed call count at time of completion (matches the outcome) */
|
|
286
|
+
calls: number;
|
|
287
|
+
/** Retry state (present only if retry was configured) */
|
|
248
288
|
retries?: {
|
|
249
|
-
/** Total allowed attempts (initial try + retries) */
|
|
250
|
-
|
|
289
|
+
/** Total allowed attempts (initial try + retries) */
|
|
290
|
+
attempts: number;
|
|
291
|
+
/** Delay between attempts in ms */
|
|
292
|
+
delay?: number;
|
|
293
|
+
/** Actual retry attempts performed (0 = succeeded on first try) */
|
|
251
294
|
currentRetry: number;
|
|
252
|
-
};
|
|
295
|
+
};
|
|
296
|
+
/** Benchmark result (present only if benchmark was enabled) */
|
|
253
297
|
benchmarkResult?: {
|
|
254
|
-
/** Execution time in milliseconds */
|
|
298
|
+
/** Execution time in milliseconds */
|
|
299
|
+
latency: number;
|
|
300
|
+
/** Performance classification */
|
|
255
301
|
state: "poor" | "good" | "excellent";
|
|
256
302
|
};
|
|
257
303
|
};
|
|
@@ -259,7 +305,7 @@ type UseCaseResult<Output = any> = {
|
|
|
259
305
|
* Internal registry of global lifecycle event callback arrays.
|
|
260
306
|
* Used by `globalUseCasesEvents` to manage subscriptions.
|
|
261
307
|
*/
|
|
262
|
-
type UseCaseEventsCallbacksMap = {
|
|
308
|
+
export type UseCaseEventsCallbacksMap = {
|
|
263
309
|
onExecuting: ((ctx: UseCaseOnExecutingContext) => void)[];
|
|
264
310
|
onCompleted: ((result: UseCaseResult<any>) => void)[];
|
|
265
311
|
onError: ((ctx: UseCaseErrorResult) => void)[];
|
|
@@ -279,7 +325,7 @@ type UseCaseEventsCallbacksMap = {
|
|
|
279
325
|
* } satisfies UseCaseConfigurations;
|
|
280
326
|
* ```
|
|
281
327
|
*/
|
|
282
|
-
type UseCaseConfigurations = {
|
|
328
|
+
export type UseCaseConfigurations = {
|
|
283
329
|
/**
|
|
284
330
|
* Default retry for all use cases (from `@mongez/reinforcements`).
|
|
285
331
|
* When set, every use case retries its handler unless it overrides `retry`.
|
|
@@ -289,18 +335,25 @@ type UseCaseConfigurations = {
|
|
|
289
335
|
* Default benchmark setting for all use cases.
|
|
290
336
|
* For standalone benchmark usage, use `config.get("benchmark")` instead.
|
|
291
337
|
*/
|
|
292
|
-
benchmark?: boolean | BenchmarkOptions;
|
|
338
|
+
benchmark?: boolean | BenchmarkOptions;
|
|
339
|
+
/** Broadcast transport — registered channels plus a global kill-switch */
|
|
293
340
|
broadcast?: {
|
|
294
|
-
/** Global on/off — `false` disables broadcasting for every use case */
|
|
341
|
+
/** Global on/off — `false` disables broadcasting for every use case */
|
|
342
|
+
enabled?: boolean;
|
|
343
|
+
/** Channels every broadcast fans out to */
|
|
295
344
|
channels?: UseCaseBroadcastChannel[];
|
|
296
|
-
};
|
|
297
|
-
|
|
345
|
+
};
|
|
346
|
+
/** Per-step debug logging through `@warlock.js/logger` (default: false) */
|
|
347
|
+
log?: boolean;
|
|
348
|
+
/** Execution history cache settings */
|
|
298
349
|
history?: {
|
|
299
|
-
/** Enable/disable history storage (default: true) */
|
|
300
|
-
|
|
350
|
+
/** Enable/disable history storage (default: true) */
|
|
351
|
+
enabled?: boolean;
|
|
352
|
+
/** Cache TTL in seconds (default: 3600). `false` uses the cache driver default */
|
|
353
|
+
ttl?: number | false;
|
|
354
|
+
/** Max history entries kept per use case before oldest are evicted (default: 100) */
|
|
301
355
|
maxEntries?: number;
|
|
302
356
|
};
|
|
303
357
|
};
|
|
304
358
|
//#endregion
|
|
305
|
-
export { RegisteredUseCase, UseCase, UseCaseAfterMiddleware, UseCaseBeforeMiddleware, UseCaseBroadcastChannel, UseCaseBroadcastEvent, UseCaseBroadcastOption, UseCaseConfigurations, UseCaseContext, UseCaseErrorResult, UseCaseEventsCallbacksMap, UseCaseGuard, UseCaseHandler, UseCaseOnExecutingContext, UseCaseResult, UseCaseRuntimeOptions, UseCaseWithSchema };
|
|
306
359
|
//# sourceMappingURL=types.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/use-cases/types.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/use-cases/types.ts"],"mappings":";;;;;;;;;YASY;EACV,SAAS;IACP;;;;;;;;;;;;;;;;;;;;YAqBQ,aAAa,OAAO,YAAY,iBAAiB,mBAC3D,MAAM,SAAS,QACf,KAAK,eACK;;;;;;;;;;;;;;;;;YAkBA,wBAAwB,OAAO,YAAY,iBAAiB,mBACtE,MAAM,OACN,KAAK,QACF,QAAQ,QAAQ;;;;;;;;;;;;;;;;;;YAmBT,uBAAuB,QAAQ,YAAY,iBAAiB,mBACtE,QAAQ,QACR,KAAK,eACK;;;;;YAMA;;EAEV,KAAK;;EAEL;;EAEA;;EAEA;;EAEA,SAAS;;EAET,WAAW;;;;;;;;YASD;;EAEV;;EAEA;;EAEA;;EAEA,IAAI;;EAEJ;;;;;;;;;;;;;;;iBAgBe;EACf,UAAU,OAAO,+BAA+B;;;;;;;;YAStC,uBAAuB;;EAI7B;;EAEA,UAAU,QAAQ,QAAQ,QAAQ,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA6B1C,QAAQ,cAAc,aAAa,YAAY,iBAAiB;;EAE1E;;EAEA;;EAEA,UAAU,MAAM,OAAO,KAAK,QAAQ,QAAQ;;EAE5C,SAAS;;EAET,SAAS,aAAa,OAAO;;EAE7B,SAAS,wBAAwB,OAAO;;EAExC,QAAQ,uBAAuB,QAAQ;;EAEvC,eAAe,KAAK;;EAEpB,eAAe,QAAQ,cAAc;;EAErC,WAAW,KAAK;;;;;EAKhB,QAAQ;;;;;EAKR,sBAAsB;;;;;EAKtB,YAAY,uBAAuB;;;;;;;;;;YAWzB,kBACV,QACA,eAAe,iBACf,YAAY,iBAAiB,kBAC3B,KAAK,QAAQ,QAAQ,MAAM,SAAS;EACtC,QAAQ;;;;;;;;;YAUE,eAAe,QAAQ,WACjC,MAAM,OACN,UAAU,sBAAsB,YAC7B,QAAQ;EACX;;;;;;YAOU,kBAAkB,cAAc,eAAe,QAAQ,QAAQ;;EAEzE;;IAEE;;IAEA;;IAEA;;;;;;;;;;;;;;;;;;YAmBQ,sBAAsB;;EAEhC;;EAEA,MAAM;;EAEN,eAAe,KAAK;;EAEpB,eAAe,QAAQ,cAAc;;EAErC,WAAW,KAAK;;;;;;YAON,qBAAqB,KAAK;;EAEpC,OAAO;;;;;;;;YASG,cAAc;;EAExB,SAAS;;EAET,KAAK;;EAEL,WAAW;;EAEX,SAAS;;EAET;;EAEA;;EAEA;;EAEA;;IAEE;;IAEA;;IAEA;;;EAGF;;IAEE;;IAEA;;;;;;;YAQQ;EACV,eAAe,KAAK;EACpB,eAAe,QAAQ;EACvB,WAAW,KAAK;;;;;;;;;;;;;;;;;YAkBN;;;;;EAKV,QAAQ;;;;;EAKR,sBAAsB;;EAEtB;;IAEE;;IAEA,WAAW;;;EAGb;;EAEA;;IAEE;;IAEA;;IAEA"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { UseCaseBroadcastOption, UseCaseConfigurations, UseCaseResult } from "./types.mjs";
|
|
2
|
-
|
|
3
2
|
//#region ../../packages/core/src/use-cases/use-case-broadcast.d.ts
|
|
4
3
|
/**
|
|
5
4
|
* Broadcast a successful use-case result through the globally-configured channels.
|
|
@@ -11,7 +10,7 @@ import { UseCaseBroadcastOption, UseCaseConfigurations, UseCaseResult } from "./
|
|
|
11
10
|
* @example
|
|
12
11
|
* await broadcastUseCaseResult({ name, id, output, result, broadcast, config });
|
|
13
12
|
*/
|
|
14
|
-
declare function broadcastUseCaseResult<Output>(params: {
|
|
13
|
+
export declare function broadcastUseCaseResult<Output>(params: {
|
|
15
14
|
name: string;
|
|
16
15
|
id: string;
|
|
17
16
|
output: Output;
|
|
@@ -20,5 +19,4 @@ declare function broadcastUseCaseResult<Output>(params: {
|
|
|
20
19
|
config?: UseCaseConfigurations["broadcast"];
|
|
21
20
|
}): Promise<void>;
|
|
22
21
|
//#endregion
|
|
23
|
-
export { broadcastUseCaseResult };
|
|
24
22
|
//# sourceMappingURL=use-case-broadcast.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-case-broadcast.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/use-cases/use-case-broadcast.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-case-broadcast.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/use-cases/use-case-broadcast.ts"],"mappings":";;;;;;;;;;;;wBAkBsB,uBAAuB,QAAQ;EACnD;EACA;EACA,QAAQ;EACR,QAAQ,cAAc;EACtB,YAAY,uBAAuB;EACnC,SAAS;IACP"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { UseCaseErrorResult, UseCaseEventsCallbacksMap, UseCaseOnExecutingContext, UseCaseResult } from "./types.mjs";
|
|
2
|
-
|
|
3
2
|
//#region ../../packages/core/src/use-cases/use-case-events.d.ts
|
|
4
3
|
/**
|
|
5
4
|
* Global event callbacks — shared across all use case instances.
|
|
6
5
|
*/
|
|
7
|
-
declare const globalEventsCallbacksMap: UseCaseEventsCallbacksMap;
|
|
6
|
+
export declare const globalEventsCallbacksMap: UseCaseEventsCallbacksMap;
|
|
8
7
|
/**
|
|
9
8
|
* Subscribe to lifecycle events fired by any use case.
|
|
10
9
|
*
|
|
@@ -12,7 +11,7 @@ declare const globalEventsCallbacksMap: UseCaseEventsCallbacksMap;
|
|
|
12
11
|
* globalUseCasesEvents.onCompleted((result) => metrics.track(result.name, result.benchmarkResult));
|
|
13
12
|
* globalUseCasesEvents.onError((ctx) => logger.error(ctx.name, ctx.error));
|
|
14
13
|
*/
|
|
15
|
-
declare const globalUseCasesEvents: {
|
|
14
|
+
export declare const globalUseCasesEvents: {
|
|
16
15
|
onExecuting(callback: (ctx: UseCaseOnExecutingContext) => void): {
|
|
17
16
|
unsubscribe: () => void;
|
|
18
17
|
};
|
|
@@ -30,11 +29,10 @@ declare const globalUseCasesEvents: {
|
|
|
30
29
|
* observer can't stall the others, and a throwing one can't break the pipeline (e.g.
|
|
31
30
|
* a successful use case must not fail because a metrics/broadcast observer threw).
|
|
32
31
|
*/
|
|
33
|
-
declare function fireLifecycleEvent<EventCtx>(ctx: EventCtx, observers: {
|
|
32
|
+
export declare function fireLifecycleEvent<EventCtx>(ctx: EventCtx, observers: {
|
|
34
33
|
invocation?: ((ctx: EventCtx) => void | Promise<void>)[];
|
|
35
34
|
useCase?: ((ctx: EventCtx) => void | Promise<void>)[];
|
|
36
35
|
global?: ((ctx: EventCtx) => void | Promise<void>)[];
|
|
37
36
|
}): Promise<void>;
|
|
38
37
|
//#endregion
|
|
39
|
-
export { fireLifecycleEvent, globalEventsCallbacksMap, globalUseCasesEvents };
|
|
40
38
|
//# sourceMappingURL=use-case-events.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-case-events.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/use-cases/use-case-events.ts"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"use-case-events.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/use-cases/use-case-events.ts"],"mappings":";;;;;qBAWa,0BAA0B;;;;;;;;qBAa1B;EACX,YAAW,WAAY,KAAK;IAGxB;;EAMJ,YAAY,QAAM,WAAa,QAAQ,cAAc;IAGjD;;EAMJ,QAAO,WAAY,KAAK;IAGpB;;;;;;;;;;wBAegB,mBAAmB,UACvC,KAAK,UACL;EACE,eAAe,KAAK,oBAAoB;EACxC,YAAY,KAAK,oBAAoB;EACrC,WAAW,KAAK,oBAAoB;IACrC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { UseCaseBeforeMiddleware, UseCaseContext, UseCaseGuard, UseCaseOnExecutingContext } from "./types.mjs";
|
|
2
2
|
import { ObjectValidator } from "@warlock.js/seal";
|
|
3
|
-
|
|
4
3
|
//#region ../../packages/core/src/use-cases/use-case-pipeline.d.ts
|
|
5
|
-
type PipelineOptions<Input> = {
|
|
4
|
+
export type PipelineOptions<Input> = {
|
|
6
5
|
name: string;
|
|
7
6
|
id: string;
|
|
8
7
|
data: Input;
|
|
@@ -10,8 +9,10 @@ type PipelineOptions<Input> = {
|
|
|
10
9
|
startedAt: Date;
|
|
11
10
|
schema?: ObjectValidator;
|
|
12
11
|
guards?: UseCaseGuard<Input>[];
|
|
13
|
-
before?: UseCaseBeforeMiddleware<Input>[];
|
|
14
|
-
|
|
12
|
+
before?: UseCaseBeforeMiddleware<Input>[];
|
|
13
|
+
/** Invocation-level onExecuting override */
|
|
14
|
+
onExecuting?: (ctx: UseCaseOnExecutingContext) => void;
|
|
15
|
+
/** Use-case-level onExecuting */
|
|
15
16
|
ucOnExecuting?: (ctx: UseCaseOnExecutingContext) => void;
|
|
16
17
|
};
|
|
17
18
|
/**
|
|
@@ -27,7 +28,6 @@ type PipelineOptions<Input> = {
|
|
|
27
28
|
* @example
|
|
28
29
|
* const data = await runPipeline({ name, id, data, ctx, startedAt, schema, guards, before });
|
|
29
30
|
*/
|
|
30
|
-
declare function runPipeline<Input>(opts: PipelineOptions<Input>): Promise<Input>;
|
|
31
|
+
export declare function runPipeline<Input>(opts: PipelineOptions<Input>): Promise<Input>;
|
|
31
32
|
//#endregion
|
|
32
|
-
export { PipelineOptions, runPipeline };
|
|
33
33
|
//# sourceMappingURL=use-case-pipeline.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-case-pipeline.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/use-cases/use-case-pipeline.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-case-pipeline.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/use-cases/use-case-pipeline.ts"],"mappings":";;;YAWY,gBAAgB;EAC1B;EACA;EACA,MAAM;EACN,KAAK;EACL,WAAW;EACX,SAAS;EACT,SAAS,aAAa;EACtB,SAAS,wBAAwB;;EAEjC,eAAe,KAAK;;EAEpB,iBAAiB,KAAK;;;;;;;;;;;;;;;wBAgBF,YAAY,OAAO,MAAM,gBAAgB,SAAS,QAAQ"}
|