@warlock.js/core 5.31.0 → 5.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/esm/application/app.d.mts +3 -3
- package/esm/application/app.d.mts.map +1 -1
- package/esm/application/application-config-types.d.mts +1 -2
- package/esm/application/application-config-types.d.mts.map +1 -1
- package/esm/application/application.d.mts +5 -7
- package/esm/application/application.d.mts.map +1 -1
- package/esm/application/application.mjs +3 -1
- package/esm/application/application.mjs.map +1 -1
- package/esm/application/boot-signal.d.mts +14 -12
- package/esm/application/boot-signal.d.mts.map +1 -1
- package/esm/application/index.d.mts +2 -1
- package/esm/application/index.mjs +1 -1
- package/esm/application/public-url.d.mts +1 -2
- package/esm/application/public-url.d.mts.map +1 -1
- package/esm/application/roles.d.mts +10 -11
- package/esm/application/roles.d.mts.map +1 -1
- package/esm/benchmark/benchmark-snapshots.d.mts +1 -3
- package/esm/benchmark/benchmark-snapshots.d.mts.map +1 -1
- package/esm/benchmark/benchmark.d.mts +1 -3
- package/esm/benchmark/benchmark.d.mts.map +1 -1
- package/esm/benchmark/channels/console.channel.d.mts +1 -3
- package/esm/benchmark/channels/console.channel.d.mts.map +1 -1
- package/esm/benchmark/channels/noop.channel.d.mts +1 -3
- package/esm/benchmark/channels/noop.channel.d.mts.map +1 -1
- package/esm/benchmark/index.mjs +1 -1
- package/esm/benchmark/profiler.d.mts +1 -3
- package/esm/benchmark/profiler.d.mts.map +1 -1
- package/esm/benchmark/profiler.mjs +2 -1
- package/esm/benchmark/profiler.mjs.map +1 -1
- package/esm/benchmark/types.d.mts +22 -17
- package/esm/benchmark/types.d.mts.map +1 -1
- package/esm/bootstrap/setup.d.mts +1 -2
- package/esm/bootstrap/setup.d.mts.map +1 -1
- package/esm/bootstrap.d.mts +1 -2
- package/esm/bootstrap.d.mts.map +1 -1
- package/esm/cache/database-cache-driver.d.mts +3 -5
- package/esm/cache/database-cache-driver.d.mts.map +1 -1
- package/esm/cache/database-cache-driver.mjs +1 -1
- package/esm/cache/index.d.mts +2 -1
- package/esm/cache/index.mjs +1 -1
- package/esm/cli/cli-commands.manager.mjs +6 -3
- package/esm/cli/cli-commands.manager.mjs.map +1 -1
- package/esm/cli/commands/agents-md/agents-md-command.action.mjs +3 -2
- package/esm/cli/commands/agents-md/agents-md-command.action.mjs.map +1 -1
- package/esm/cli/commands/board/board-command.action.mjs +1 -1
- package/esm/cli/commands/check/check-command.action.mjs +1 -1
- package/esm/cli/commands/check/child-typecheck.mjs +1 -1
- package/esm/cli/commands/check/child-typecheck.mjs.map +1 -1
- package/esm/cli/commands/check/format-problems.mjs +1 -1
- package/esm/cli/commands/dev-server.command.mjs +3 -2
- package/esm/cli/commands/dev-server.command.mjs.map +1 -1
- package/esm/cli/commands/doctor/check.types.d.mts +29 -16
- package/esm/cli/commands/doctor/check.types.d.mts.map +1 -1
- package/esm/cli/commands/doctor/checks/locales-ts-deprecated.check.mjs +22 -27
- package/esm/cli/commands/doctor/checks/locales-ts-deprecated.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/doctor-command.action.mjs +2 -1
- package/esm/cli/commands/doctor/doctor-command.action.mjs.map +1 -1
- package/esm/cli/commands/explain/explain-command.action.mjs +1 -1
- package/esm/cli/commands/generate/generators/controller.generator.mjs +5 -2
- package/esm/cli/commands/generate/generators/controller.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/endpoint.generator.mjs +5 -3
- package/esm/cli/commands/generate/generators/endpoint.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/model.generator.mjs +3 -2
- package/esm/cli/commands/generate/generators/model.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/repository.generator.mjs +3 -1
- package/esm/cli/commands/generate/generators/repository.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/resource.generator.mjs +3 -1
- package/esm/cli/commands/generate/generators/resource.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/service.generator.mjs +3 -1
- package/esm/cli/commands/generate/generators/service.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/templates/endpoint-stubs.mjs +2 -2
- package/esm/cli/commands/generate/templates/endpoint-stubs.mjs.map +1 -1
- package/esm/cli/commands/generate/utils/endpoint-schema.mjs +1 -2
- package/esm/cli/commands/generate/utils/endpoint-schema.mjs.map +1 -1
- package/esm/cli/commands/generate/utils/name-parser.mjs +1 -1
- package/esm/cli/commands/generate/utils/path-resolver.mjs +1 -1
- package/esm/cli/commands/inspect/inspect-command.action.mjs +3 -2
- package/esm/cli/commands/inspect/inspect-command.action.mjs.map +1 -1
- package/esm/cli/commands/issue/collect-environment.mjs +187 -0
- package/esm/cli/commands/issue/collect-environment.mjs.map +1 -0
- package/esm/cli/commands/issue/issue-command.action.mjs +70 -0
- package/esm/cli/commands/issue/issue-command.action.mjs.map +1 -0
- package/esm/cli/commands/issue.command.mjs +31 -0
- package/esm/cli/commands/issue.command.mjs.map +1 -0
- package/esm/cli/commands/mcp/mcp-command.action.mjs +15 -14
- package/esm/cli/commands/mcp/mcp-command.action.mjs.map +1 -1
- package/esm/cli/commands/openapi-generator.action.mjs +1 -1
- package/esm/cli/commands/postman-generator.action.mjs +1 -1
- package/esm/cli/commands/routes/format-routes-table.mjs +1 -1
- package/esm/cli/commands/routes/route-row.mjs +1 -1
- package/esm/cli/commands/routes/routes-diff.action.mjs +2 -2
- package/esm/cli/commands/routes/routes-diff.action.mjs.map +1 -1
- package/esm/cli/commands/test.command.mjs +1 -1
- package/esm/cli/commands/trace/trace-command.action.mjs +1 -1
- package/esm/cli/commands-loader.mjs +1 -1
- package/esm/cli/framework-cli-commands.mjs +2 -0
- package/esm/cli/framework-cli-commands.mjs.map +1 -1
- package/esm/cli/parse-cli-args.mjs +2 -2
- package/esm/cli/parse-cli-args.mjs.map +1 -1
- package/esm/cli/start.d.mts +1 -1
- package/esm/cli/string-similarity.mjs +1 -1
- package/esm/commands/cli-command.d.mts +2 -4
- package/esm/commands/cli-command.d.mts.map +1 -1
- package/esm/commands/index.d.mts +2 -1
- package/esm/commands/index.mjs +1 -1
- package/esm/commands/types.d.mts +8 -8
- package/esm/commands/types.d.mts.map +1 -1
- package/esm/config/config-getter.d.mts +2 -3
- package/esm/config/config-getter.d.mts.map +1 -1
- package/esm/config/config-getter.mjs +5 -5
- package/esm/config/config-getter.mjs.map +1 -1
- package/esm/config/config-handlers.d.mts +1 -3
- package/esm/config/config-handlers.d.mts.map +1 -1
- package/esm/config/config-loader.d.mts +1 -2
- package/esm/config/config-loader.d.mts.map +1 -1
- package/esm/config/config-loader.mjs +3 -3
- package/esm/config/config-loader.mjs.map +1 -1
- package/esm/config/config-manager.mjs +1 -1
- package/esm/config/config-schema.d.mts +19 -16
- package/esm/config/config-schema.d.mts.map +1 -1
- package/esm/config/config-setter.d.mts +2 -4
- package/esm/config/config-setter.d.mts.map +1 -1
- package/esm/config/config-setter.mjs +2 -2
- package/esm/config/config-setter.mjs.map +1 -1
- package/esm/config/config-special-handlers.d.mts +2 -4
- package/esm/config/config-special-handlers.d.mts.map +1 -1
- package/esm/config/index.d.mts +2 -1
- package/esm/config/index.mjs +1 -1
- package/esm/config/types.d.mts +4 -5
- package/esm/config/types.d.mts.map +1 -1
- package/esm/connectors/access-connector.d.mts +1 -3
- package/esm/connectors/access-connector.d.mts.map +1 -1
- package/esm/connectors/access-connector.mjs +2 -2
- package/esm/connectors/access-connector.mjs.map +1 -1
- package/esm/connectors/ai-connector.d.mts +1 -3
- package/esm/connectors/ai-connector.d.mts.map +1 -1
- package/esm/connectors/ai-connector.mjs +2 -2
- package/esm/connectors/ai-connector.mjs.map +1 -1
- package/esm/connectors/assert-no-reserved-connector-names.d.mts +1 -3
- package/esm/connectors/assert-no-reserved-connector-names.d.mts.map +1 -1
- package/esm/connectors/assert-unique-connector-names.d.mts +1 -3
- package/esm/connectors/assert-unique-connector-names.d.mts.map +1 -1
- package/esm/connectors/assert-unique-connector-names.mjs +2 -1
- package/esm/connectors/assert-unique-connector-names.mjs.map +1 -1
- package/esm/connectors/base-connector.d.mts +1 -3
- package/esm/connectors/base-connector.d.mts.map +1 -1
- package/esm/connectors/cache-connector.d.mts +1 -3
- package/esm/connectors/cache-connector.d.mts.map +1 -1
- package/esm/connectors/cache-connector.mjs +3 -3
- package/esm/connectors/cache-connector.mjs.map +1 -1
- package/esm/connectors/connectors-manager.d.mts +2 -4
- package/esm/connectors/connectors-manager.d.mts.map +1 -1
- package/esm/connectors/connectors-manager.mjs +2 -2
- package/esm/connectors/connectors-manager.mjs.map +1 -1
- package/esm/connectors/database-connector.d.mts +1 -3
- package/esm/connectors/database-connector.d.mts.map +1 -1
- package/esm/connectors/database-connector.mjs +2 -2
- package/esm/connectors/database-connector.mjs.map +1 -1
- package/esm/connectors/describe-server-address.mjs +4 -4
- package/esm/connectors/describe-server-address.mjs.map +1 -1
- package/esm/connectors/herald-connector.d.mts +1 -3
- package/esm/connectors/herald-connector.d.mts.map +1 -1
- package/esm/connectors/herald-connector.mjs +2 -2
- package/esm/connectors/herald-connector.mjs.map +1 -1
- package/esm/connectors/http-connector.d.mts +1 -3
- package/esm/connectors/http-connector.d.mts.map +1 -1
- package/esm/connectors/http-connector.mjs +8 -7
- package/esm/connectors/http-connector.mjs.map +1 -1
- package/esm/connectors/index.d.mts +2 -1
- package/esm/connectors/index.mjs +1 -1
- package/esm/connectors/logger-connector.d.mts +1 -3
- package/esm/connectors/logger-connector.d.mts.map +1 -1
- package/esm/connectors/logger-connector.mjs +2 -2
- package/esm/connectors/logger-connector.mjs.map +1 -1
- package/esm/connectors/mail-connector.d.mts +1 -3
- package/esm/connectors/mail-connector.d.mts.map +1 -1
- package/esm/connectors/mail-connector.mjs +2 -2
- package/esm/connectors/mail-connector.mjs.map +1 -1
- package/esm/connectors/notifications-connector.d.mts +1 -3
- package/esm/connectors/notifications-connector.d.mts.map +1 -1
- package/esm/connectors/notifications-connector.mjs +2 -2
- package/esm/connectors/notifications-connector.mjs.map +1 -1
- package/esm/connectors/register-configured-connectors.d.mts +2 -4
- package/esm/connectors/register-configured-connectors.d.mts.map +1 -1
- package/esm/connectors/socket-connector.d.mts +1 -3
- package/esm/connectors/socket-connector.d.mts.map +1 -1
- package/esm/connectors/socket-connector.mjs +12 -10
- package/esm/connectors/socket-connector.mjs.map +1 -1
- package/esm/connectors/storage.connector.d.mts +1 -3
- package/esm/connectors/storage.connector.d.mts.map +1 -1
- package/esm/connectors/storage.connector.mjs +2 -2
- package/esm/connectors/storage.connector.mjs.map +1 -1
- package/esm/connectors/types.d.mts +17 -14
- package/esm/connectors/types.d.mts.map +1 -1
- package/esm/container/container-instance-registry.mjs.map +1 -1
- package/esm/container/development-app-modules.d.mts +7 -5
- package/esm/container/development-app-modules.d.mts.map +1 -1
- package/esm/container/development-model-modules.d.mts +6 -5
- package/esm/container/development-model-modules.d.mts.map +1 -1
- package/esm/container/index.d.mts +4 -4
- package/esm/container/index.d.mts.map +1 -1
- package/esm/database/index.d.mts +3 -1
- package/esm/database/index.mjs +1 -1
- package/esm/database/migrate-action.mjs +1 -1
- package/esm/database/models/database-log/database-log.d.mts +2 -3
- package/esm/database/models/database-log/database-log.d.mts.map +1 -1
- package/esm/database/models/database-log/index.d.mts +2 -1
- package/esm/database/models/database-log/index.mjs +1 -1
- package/esm/database/seed-command-action.mjs +1 -1
- package/esm/database/seeds/seeder.d.mts +2 -4
- package/esm/database/seeds/seeder.d.mts.map +1 -1
- package/esm/database/seeds/seeder.errors.d.mts +2 -3
- package/esm/database/seeds/seeder.errors.d.mts.map +1 -1
- package/esm/database/seeds/seeders.manager.mjs +2 -1
- package/esm/database/seeds/seeders.manager.mjs.map +1 -1
- package/esm/database/seeds/types.d.mts +7 -8
- package/esm/database/seeds/types.d.mts.map +1 -1
- package/esm/database/utils.d.mts +4 -5
- package/esm/database/utils.d.mts.map +1 -1
- package/esm/dev-server/app-module-registry.mjs +1 -1
- package/esm/dev-server/create-worker.mjs +5 -3
- package/esm/dev-server/create-worker.mjs.map +1 -1
- package/esm/dev-server/dependency-graph.d.mts +1 -3
- package/esm/dev-server/dependency-graph.d.mts.map +1 -1
- package/esm/dev-server/dependency-graph.mjs +1 -1
- package/esm/dev-server/dependency-graph.mjs.map +1 -1
- package/esm/dev-server/extract-translation-keys.mjs +16 -17
- package/esm/dev-server/extract-translation-keys.mjs.map +1 -1
- package/esm/dev-server/file-manager.d.mts +3 -7
- package/esm/dev-server/file-manager.d.mts.map +1 -1
- package/esm/dev-server/file-operations.d.mts +1 -3
- package/esm/dev-server/file-operations.d.mts.map +1 -1
- package/esm/dev-server/files-watcher.mjs +12 -11
- package/esm/dev-server/files-watcher.mjs.map +1 -1
- package/esm/dev-server/health-checker/checkers/typescript-health-checker.mjs +36 -115
- package/esm/dev-server/health-checker/checkers/typescript-health-checker.mjs.map +1 -1
- package/esm/dev-server/health-checker/file-health-checker.contract.d.mts +5 -5
- package/esm/dev-server/health-checker/file-health-checker.contract.d.mts.map +1 -1
- package/esm/dev-server/health-checker/file-health-result.d.mts +2 -2
- package/esm/dev-server/health-checker/file-health-result.d.mts.map +1 -1
- package/esm/dev-server/health-checker/files-healthcare.manager.mjs +1 -0
- package/esm/dev-server/health-checker/files-healthcare.manager.mjs.map +1 -1
- package/esm/dev-server/health-checker/oxlint-runner.mjs +6 -5
- package/esm/dev-server/health-checker/oxlint-runner.mjs.map +1 -1
- package/esm/dev-server/health-checker/workers/eslint-health.worker.d.mts +1 -1
- package/esm/dev-server/health-checker/workers/oxlint-health.worker.d.mts +1 -1
- package/esm/dev-server/health-checker/workers/ts-health.worker.d.mts +1 -1
- package/esm/dev-server/health-checker/workers/ts-health.worker.mjs +40 -174
- package/esm/dev-server/health-checker/workers/ts-health.worker.mjs.map +1 -1
- package/esm/dev-server/loader/hook-thread.d.mts +4 -8
- package/esm/dev-server/loader/hook-thread.d.mts.map +1 -1
- package/esm/dev-server/loader/load-hook.d.mts +10 -6
- package/esm/dev-server/loader/load-hook.d.mts.map +1 -1
- package/esm/dev-server/loader/load-hook.mjs +4 -3
- package/esm/dev-server/loader/load-hook.mjs.map +1 -1
- package/esm/dev-server/loader/own-resolver.mjs +1 -1
- package/esm/dev-server/loader/register-loader.mjs +3 -2
- package/esm/dev-server/loader/register-loader.mjs.map +1 -1
- package/esm/dev-server/loader/resolve-hook.d.mts +2 -2
- package/esm/dev-server/loader/resolve-hook.d.mts.map +1 -1
- package/esm/dev-server/loader/resolve-hook.mjs +2 -1
- package/esm/dev-server/loader/resolve-hook.mjs.map +1 -1
- package/esm/dev-server/loader/transpile-cache.mjs +2 -1
- package/esm/dev-server/loader/transpile-cache.mjs.map +1 -1
- package/esm/dev-server/manifest-manager.d.mts +1 -3
- package/esm/dev-server/manifest-manager.d.mts.map +1 -1
- package/esm/dev-server/model-module-registry.mjs +3 -3
- package/esm/dev-server/model-module-registry.mjs.map +1 -1
- package/esm/dev-server/model-resource-typings.mjs +40 -47
- package/esm/dev-server/model-resource-typings.mjs.map +1 -1
- package/esm/dev-server/module-loader.mjs +2 -2
- package/esm/dev-server/module-loader.mjs.map +1 -1
- package/esm/dev-server/package-json-manager.mjs +1 -1
- package/esm/dev-server/parse-imports.mjs +6 -38
- package/esm/dev-server/parse-imports.mjs.map +1 -1
- package/esm/dev-server/read-config-ast.mjs +3 -33
- package/esm/dev-server/read-config-ast.mjs.map +1 -1
- package/esm/dev-server/ready-block.mjs +1 -1
- package/esm/dev-server/shortcuts.mjs +1 -1
- package/esm/dev-server/special-files-collector.d.mts +2 -4
- package/esm/dev-server/special-files-collector.d.mts.map +1 -1
- package/esm/dev-server/supervisor.mjs +1 -1
- package/esm/dev-server/tsconfig-manager.mjs +3 -3
- package/esm/dev-server/tsconfig-manager.mjs.map +1 -1
- package/esm/dev-server/type-generator.mjs +28 -35
- package/esm/dev-server/type-generator.mjs.map +1 -1
- package/esm/dev-server/types.d.mts +3 -4
- package/esm/dev-server/types.d.mts.map +1 -1
- package/esm/dev-server/update-check-cache.mjs +2 -2
- package/esm/dev-server/update-check-cache.mjs.map +1 -1
- package/esm/encryption/encrypt.d.mts +2 -3
- package/esm/encryption/encrypt.d.mts.map +1 -1
- package/esm/encryption/hash.d.mts +1 -2
- package/esm/encryption/hash.d.mts.map +1 -1
- package/esm/encryption/index.mjs +1 -1
- package/esm/encryption/password.d.mts +2 -3
- package/esm/encryption/password.d.mts.map +1 -1
- package/esm/encryption/types.d.mts +2 -3
- package/esm/encryption/types.d.mts.map +1 -1
- package/esm/errors/error-codes.d.mts +29 -22
- package/esm/errors/error-codes.d.mts.map +1 -1
- package/esm/errors/warlock-error.d.mts +1 -3
- package/esm/errors/warlock-error.d.mts.map +1 -1
- package/esm/generations/add-command.action.mjs +3 -2
- package/esm/generations/add-command.action.mjs.map +1 -1
- package/esm/generations/features/bull-board.feature.mjs +2 -1
- package/esm/generations/features/bull-board.feature.mjs.map +1 -1
- package/esm/generations/features/notifications.feature.mjs +2 -1
- package/esm/generations/features/notifications.feature.mjs.map +1 -1
- package/esm/generations/features/shared/merge-web-sitemap-config.mjs +16 -23
- package/esm/generations/features/shared/merge-web-sitemap-config.mjs.map +1 -1
- package/esm/generations/features/shared/patch-tsconfig-include.mjs +1 -1
- package/esm/generations/features/shared/relocate-conflicting-home-route.mjs +1 -1
- package/esm/generations/features/sitemap.feature.mjs +2 -1
- package/esm/generations/features/sitemap.feature.mjs.map +1 -1
- package/esm/generations/generation-fs.mjs +1 -1
- package/esm/generations/generation-run.mjs +1 -1
- package/esm/generations/stubs.mjs +1 -1
- package/esm/generations/stubs.mjs.map +1 -1
- package/esm/http/boot-port-preflight.d.mts +4 -5
- package/esm/http/boot-port-preflight.d.mts.map +1 -1
- package/esm/http/boot-port-preflight.mjs +2 -2
- package/esm/http/boot-port-preflight.mjs.map +1 -1
- package/esm/http/bounded-stream-queue.d.mts +4 -4
- package/esm/http/bounded-stream-queue.d.mts.map +1 -1
- package/esm/http/bounded-stream-queue.mjs +1 -1
- package/esm/http/bounded-stream-queue.mjs.map +1 -1
- package/esm/http/build-cors-options.mjs +2 -2
- package/esm/http/build-cors-options.mjs.map +1 -1
- package/esm/http/build-rate-limit-options.d.mts +2 -3
- package/esm/http/build-rate-limit-options.d.mts.map +1 -1
- package/esm/http/build-rate-limit-options.mjs +1 -1
- package/esm/http/build-rate-limit-options.mjs.map +1 -1
- package/esm/http/conditional-request.d.mts +14 -13
- package/esm/http/conditional-request.d.mts.map +1 -1
- package/esm/http/config.d.mts +2 -4
- package/esm/http/config.d.mts.map +1 -1
- package/esm/http/config.mjs +2 -2
- package/esm/http/config.mjs.map +1 -1
- package/esm/http/context/request-context.d.mts +6 -7
- package/esm/http/context/request-context.d.mts.map +1 -1
- package/esm/http/context/request-memo.d.mts +1 -2
- package/esm/http/context/request-memo.d.mts.map +1 -1
- package/esm/http/createHttpApplication.d.mts +2 -3
- package/esm/http/createHttpApplication.d.mts.map +1 -1
- package/esm/http/createHttpApplication.mjs +2 -2
- package/esm/http/createHttpApplication.mjs.map +1 -1
- package/esm/http/csp.d.mts +10 -12
- package/esm/http/csp.d.mts.map +1 -1
- package/esm/http/csp.mjs +2 -2
- package/esm/http/csp.mjs.map +1 -1
- package/esm/http/csrf-default-guard.d.mts +2 -4
- package/esm/http/csrf-default-guard.d.mts.map +1 -1
- package/esm/http/csrf-default-guard.mjs +1 -1
- package/esm/http/csrf-default-guard.mjs.map +1 -1
- package/esm/http/csrf-origin-policy.d.mts +7 -9
- package/esm/http/csrf-origin-policy.d.mts.map +1 -1
- package/esm/http/csrf-origin-policy.mjs +2 -2
- package/esm/http/csrf-origin-policy.mjs.map +1 -1
- package/esm/http/database/RequestLog.d.mts +2 -3
- package/esm/http/database/RequestLog.d.mts.map +1 -1
- package/esm/http/error-codes.d.mts +1 -2
- package/esm/http/error-codes.d.mts.map +1 -1
- package/esm/http/error-mapper.d.mts +2 -4
- package/esm/http/error-mapper.d.mts.map +1 -1
- package/esm/http/error-mapper.mjs +2 -2
- package/esm/http/error-mapper.mjs.map +1 -1
- package/esm/http/errors/errors.d.mts +28 -29
- package/esm/http/errors/errors.d.mts.map +1 -1
- package/esm/http/escape-header-value.d.mts +1 -2
- package/esm/http/escape-header-value.d.mts.map +1 -1
- package/esm/http/events.d.mts +2 -4
- package/esm/http/events.d.mts.map +1 -1
- package/esm/http/health.d.mts +4 -4
- package/esm/http/health.d.mts.map +1 -1
- package/esm/http/index.d.mts +4 -1
- package/esm/http/index.mjs +1 -1
- package/esm/http/middleware/cache-response-middleware.d.mts +2 -4
- package/esm/http/middleware/cache-response-middleware.d.mts.map +1 -1
- package/esm/http/middleware/concurrency-limit.middleware.d.mts +3 -3
- package/esm/http/middleware/concurrency-limit.middleware.d.mts.map +1 -1
- package/esm/http/middleware/idempotency.middleware.d.mts +3 -3
- package/esm/http/middleware/idempotency.middleware.d.mts.map +1 -1
- package/esm/http/middleware/idempotency.middleware.mjs +6 -6
- package/esm/http/middleware/idempotency.middleware.mjs.map +1 -1
- package/esm/http/middleware/index.d.mts +3 -1
- package/esm/http/middleware/index.mjs +1 -1
- package/esm/http/middleware/inject-request-context.d.mts +2 -4
- package/esm/http/middleware/inject-request-context.d.mts.map +1 -1
- package/esm/http/middleware/inject-request-context.mjs +3 -3
- package/esm/http/middleware/inject-request-context.mjs.map +1 -1
- package/esm/http/middleware/ip-filter.middleware.d.mts +3 -3
- package/esm/http/middleware/ip-filter.middleware.d.mts.map +1 -1
- package/esm/http/middleware/maintenance.middleware.d.mts +3 -3
- package/esm/http/middleware/maintenance.middleware.d.mts.map +1 -1
- package/esm/http/middleware/maintenance.middleware.mjs +4 -4
- package/esm/http/middleware/maintenance.middleware.mjs.map +1 -1
- package/esm/http/middleware/max-body-size.middleware.d.mts +2 -2
- package/esm/http/middleware/max-body-size.middleware.d.mts.map +1 -1
- package/esm/http/middleware/middleware-list.d.mts +1 -3
- package/esm/http/middleware/middleware-list.d.mts.map +1 -1
- package/esm/http/middleware/rate-limit.middleware.d.mts +3 -3
- package/esm/http/middleware/rate-limit.middleware.d.mts.map +1 -1
- package/esm/http/middleware/rate-limit.middleware.mjs +2 -2
- package/esm/http/middleware/rate-limit.middleware.mjs.map +1 -1
- package/esm/http/middleware/utils/cidr-match.d.mts +2 -3
- package/esm/http/middleware/utils/cidr-match.d.mts.map +1 -1
- package/esm/http/middleware/utils/idempotency-key.d.mts +3 -5
- package/esm/http/middleware/utils/idempotency-key.d.mts.map +1 -1
- package/esm/http/middleware/utils/index.d.mts +2 -1
- package/esm/http/middleware/utils/parse-size.d.mts +1 -2
- package/esm/http/middleware/utils/parse-size.d.mts.map +1 -1
- package/esm/http/middleware/utils/parse-size.mjs +2 -2
- package/esm/http/middleware/utils/parse-size.mjs.map +1 -1
- package/esm/http/plugins.d.mts +2 -4
- package/esm/http/plugins.d.mts.map +1 -1
- package/esm/http/plugins.mjs +10 -10
- package/esm/http/plugins.mjs.map +1 -1
- package/esm/http/port-preflight.d.mts +3 -4
- package/esm/http/port-preflight.d.mts.map +1 -1
- package/esm/http/rate-limit-cache-store.mjs +4 -3
- package/esm/http/rate-limit-cache-store.mjs.map +1 -1
- package/esm/http/ready-report.d.mts +15 -10
- package/esm/http/ready-report.d.mts.map +1 -1
- package/esm/http/request-controller.d.mts +1 -3
- package/esm/http/request-controller.d.mts.map +1 -1
- package/esm/http/request-log-snapshot.d.mts +20 -16
- package/esm/http/request-log-snapshot.d.mts.map +1 -1
- package/esm/http/request-log-snapshot.mjs +3 -3
- package/esm/http/request-log-snapshot.mjs.map +1 -1
- package/esm/http/request.d.mts +8 -7
- package/esm/http/request.d.mts.map +1 -1
- package/esm/http/request.mjs +8 -7
- package/esm/http/request.mjs.map +1 -1
- package/esm/http/response.d.mts +12 -11
- package/esm/http/response.d.mts.map +1 -1
- package/esm/http/response.mjs +7 -7
- package/esm/http/response.mjs.map +1 -1
- package/esm/http/safe-redirect.d.mts +3 -4
- package/esm/http/safe-redirect.d.mts.map +1 -1
- package/esm/http/serialized.d.mts +12 -13
- package/esm/http/serialized.d.mts.map +1 -1
- package/esm/http/server-rebuilt.d.mts +3 -5
- package/esm/http/server-rebuilt.d.mts.map +1 -1
- package/esm/http/server.d.mts +9 -9
- package/esm/http/server.d.mts.map +1 -1
- package/esm/http/server.mjs +4 -4
- package/esm/http/server.mjs.map +1 -1
- package/esm/http/stream-react-response.d.mts +7 -7
- package/esm/http/stream-react-response.d.mts.map +1 -1
- package/esm/http/tracing/index.mjs +1 -1
- package/esm/http/tracing/trace-id.d.mts +2 -3
- package/esm/http/tracing/trace-id.d.mts.map +1 -1
- package/esm/http/tracing/tracing-dispatcher.d.mts +10 -11
- package/esm/http/tracing/tracing-dispatcher.d.mts.map +1 -1
- package/esm/http/tracing/tracing-dispatcher.mjs +2 -2
- package/esm/http/tracing/tracing-dispatcher.mjs.map +1 -1
- package/esm/http/tracing/tracing.type.d.mts +11 -9
- package/esm/http/tracing/tracing.type.d.mts.map +1 -1
- package/esm/http/types.d.mts +49 -43
- package/esm/http/types.d.mts.map +1 -1
- package/esm/http/uploaded-file.d.mts +6 -5
- package/esm/http/uploaded-file.d.mts.map +1 -1
- package/esm/http/uploads/generate-image-variants.d.mts +6 -6
- package/esm/http/uploads/generate-image-variants.d.mts.map +1 -1
- package/esm/http/uploads/generate-image-variants.mjs +1 -1
- package/esm/http/uploads/generate-image-variants.mjs.map +1 -1
- package/esm/http/uploads/image-variant-cache-entries.mjs +1 -1
- package/esm/http/uploads/image-variant-cache.mjs +8 -8
- package/esm/http/uploads/image-variant-cache.mjs.map +1 -1
- package/esm/http/uploads/image-variant-types.d.mts +7 -9
- package/esm/http/uploads/image-variant-types.d.mts.map +1 -1
- package/esm/http/uploads/image-variants-config-error.d.mts +1 -2
- package/esm/http/uploads/image-variants-config-error.d.mts.map +1 -1
- package/esm/http/uploads/index.d.mts +2 -1
- package/esm/http/uploads/index.mjs +1 -1
- package/esm/http/uploads/parse-uploaded-file-query.mjs +1 -1
- package/esm/http/uploads/parse-uploaded-file-query.mjs.map +1 -1
- package/esm/http/uploads/purge-image-variants.d.mts +2 -4
- package/esm/http/uploads/purge-image-variants.d.mts.map +1 -1
- package/esm/http/uploads/resolve-image-variant.d.mts +3 -5
- package/esm/http/uploads/resolve-image-variant.d.mts.map +1 -1
- package/esm/http/uploads/resolve-image-variants-config.mjs +4 -4
- package/esm/http/uploads/resolve-image-variants-config.mjs.map +1 -1
- package/esm/http/uploads/resolve-original-content-type.mjs +1 -1
- package/esm/http/uploads/resolve-original-content-type.mjs.map +1 -1
- package/esm/http/uploads/trim-image-variant-cache.mjs +3 -3
- package/esm/http/uploads/trim-image-variant-cache.mjs.map +1 -1
- package/esm/http/uploads/uploaded-file.controller.d.mts +6 -5
- package/esm/http/uploads/uploaded-file.controller.d.mts.map +1 -1
- package/esm/http/uploads/uploaded-file.controller.mjs +2 -1
- package/esm/http/uploads/uploaded-file.controller.mjs.map +1 -1
- package/esm/http/uploads/variant-cache-key.mjs +1 -1
- package/esm/http/uploads-config.d.mts +2 -4
- package/esm/http/uploads-config.d.mts.map +1 -1
- package/esm/http/uploads-types.d.mts +19 -17
- package/esm/http/uploads-types.d.mts.map +1 -1
- package/esm/http/xmlable.d.mts +1 -2
- package/esm/http/xmlable.d.mts.map +1 -1
- package/esm/image/image.d.mts +6 -7
- package/esm/image/image.d.mts.map +1 -1
- package/esm/image/image.mjs.map +1 -1
- package/esm/image/index.d.mts +2 -1
- package/esm/image/index.mjs +1 -1
- package/esm/index.d.mts +21 -0
- package/esm/loader/app-module-importer.d.mts +1 -2
- package/esm/loader/app-module-importer.d.mts.map +1 -1
- package/esm/localization/index.mjs +1 -1
- package/esm/localization/parse-locale-dictionary.d.mts +4 -5
- package/esm/localization/parse-locale-dictionary.d.mts.map +1 -1
- package/esm/localization/parse-locale-dictionary.mjs +1 -1
- package/esm/localization/parse-locale-dictionary.mjs.map +1 -1
- package/esm/localization/register-locale-dictionary.d.mts +3 -4
- package/esm/localization/register-locale-dictionary.d.mts.map +1 -1
- package/esm/localization/register-locale-dictionary.mjs +2 -2
- package/esm/localization/register-locale-dictionary.mjs.map +1 -1
- package/esm/logger/fatal-visibility.d.mts +1 -2
- package/esm/logger/fatal-visibility.d.mts.map +1 -1
- package/esm/logger/index.d.mts +2 -1
- package/esm/logger/index.mjs +1 -1
- package/esm/logger/logger.d.mts +1 -3
- package/esm/logger/logger.d.mts.map +1 -1
- package/esm/logger/types.d.mts +2 -3
- package/esm/logger/types.d.mts.map +1 -1
- package/esm/mail/config.d.mts +12 -14
- package/esm/mail/config.d.mts.map +1 -1
- package/esm/mail/events.d.mts +4 -6
- package/esm/mail/events.d.mts.map +1 -1
- package/esm/mail/index.d.mts +2 -1
- package/esm/mail/index.mjs +1 -1
- package/esm/mail/mail.d.mts +1 -3
- package/esm/mail/mail.d.mts.map +1 -1
- package/esm/mail/mailer-pool.d.mts +5 -7
- package/esm/mail/mailer-pool.d.mts.map +1 -1
- package/esm/mail/react-mail.d.mts +1 -3
- package/esm/mail/react-mail.d.mts.map +1 -1
- package/esm/mail/send-mail.d.mts +1 -3
- package/esm/mail/send-mail.d.mts.map +1 -1
- package/esm/mail/send-mail.mjs +2 -1
- package/esm/mail/send-mail.mjs.map +1 -1
- package/esm/mail/test-mailbox.d.mts +11 -13
- package/esm/mail/test-mailbox.d.mts.map +1 -1
- package/esm/mail/types.d.mts +17 -18
- package/esm/mail/types.d.mts.map +1 -1
- package/esm/manifest/manifest-manager.mjs +1 -1
- package/esm/openapi/build-openapi-document.d.mts +2 -4
- package/esm/openapi/build-openapi-document.d.mts.map +1 -1
- package/esm/openapi/cast-schema.mjs +1 -1
- package/esm/openapi/development-openapi-provider.d.mts +5 -6
- package/esm/openapi/development-openapi-provider.d.mts.map +1 -1
- package/esm/openapi/index.d.mts +3 -1
- package/esm/openapi/index.mjs +1 -1
- package/esm/openapi/openapi-child-output.mjs +2 -2
- package/esm/openapi/openapi-child-output.mjs.map +1 -1
- package/esm/openapi/postman/build-request-url.mjs +1 -1
- package/esm/openapi/postman/example-from-schema.d.mts +1 -3
- package/esm/openapi/postman/example-from-schema.d.mts.map +1 -1
- package/esm/openapi/postman/index.d.mts +2 -1
- package/esm/openapi/postman/openapi-to-postman-collection.d.mts +3 -5
- package/esm/openapi/postman/openapi-to-postman-collection.d.mts.map +1 -1
- package/esm/openapi/postman/postman-types.d.mts +19 -18
- package/esm/openapi/postman/postman-types.d.mts.map +1 -1
- package/esm/openapi/postman/schema-refs.d.mts +1 -3
- package/esm/openapi/postman/schema-refs.d.mts.map +1 -1
- package/esm/openapi/postman/uuid-v5.mjs +1 -1
- package/esm/openapi/schema-registry.d.mts +1 -1
- package/esm/openapi/security.mjs +1 -1
- package/esm/openapi/types.d.mts +23 -21
- package/esm/openapi/types.d.mts.map +1 -1
- package/esm/production/assert-generated-imports.mjs +1 -1
- package/esm/production/build-contributions.mjs +1 -1
- package/esm/production/bundle-framework-dependencies.mjs +1 -1
- package/esm/production/dist-build-manifest.mjs +1 -1
- package/esm/production/esbuild-plugins.mjs.map +1 -1
- package/esm/production/esbuild-preflight.mjs +1 -1
- package/esm/production/production-builder.mjs +2 -1
- package/esm/production/production-builder.mjs.map +1 -1
- package/esm/production/production-supervisor.mjs +1 -1
- package/esm/production/registration-child-runner.mjs +4 -3
- package/esm/production/registration-child-runner.mjs.map +1 -1
- package/esm/production/resolve-build-config.d.mts +4 -4
- package/esm/production/resolve-build-config.d.mts.map +1 -1
- package/esm/production/resolve-build-config.mjs +1 -1
- package/esm/production/route-registration-child.d.mts +1 -1
- package/esm/production/route-registration-child.mjs +8 -7
- package/esm/production/route-registration-child.mjs.map +1 -1
- package/esm/production/tsconfig-path-aliases.mjs +1 -1
- package/esm/react/index.d.mts +1 -3
- package/esm/react/index.d.mts.map +1 -1
- package/esm/react/index.mjs.map +1 -1
- package/esm/repositories/adapters/cascade/cascade-adapter.d.mts +3 -4
- package/esm/repositories/adapters/cascade/cascade-adapter.d.mts.map +1 -1
- package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts +2 -3
- package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts.map +1 -1
- package/esm/repositories/adapters/cascade/filter-applicator.mjs +10 -9
- package/esm/repositories/adapters/cascade/filter-applicator.mjs.map +1 -1
- package/esm/repositories/adapters/cascade/index.d.mts +2 -1
- package/esm/repositories/adapters/cascade/index.mjs +1 -1
- package/esm/repositories/contracts/index.d.mts +2 -1
- package/esm/repositories/contracts/query-builder.contract.d.mts +4 -6
- package/esm/repositories/contracts/query-builder.contract.d.mts.map +1 -1
- package/esm/repositories/contracts/repository-adapter.contract.d.mts +1 -3
- package/esm/repositories/contracts/repository-adapter.contract.d.mts.map +1 -1
- package/esm/repositories/contracts/types.d.mts +23 -25
- package/esm/repositories/contracts/types.d.mts.map +1 -1
- package/esm/repositories/index.d.mts +4 -1
- package/esm/repositories/index.mjs +1 -1
- package/esm/repositories/repository.manager.d.mts +2 -3
- package/esm/repositories/repository.manager.d.mts.map +1 -1
- package/esm/repositories/repository.manager.mjs +2 -2
- package/esm/repositories/repository.manager.mjs.map +1 -1
- package/esm/resource/define-resource.d.mts +3 -5
- package/esm/resource/define-resource.d.mts.map +1 -1
- package/esm/resource/index.d.mts +2 -1
- package/esm/resource/index.mjs +1 -1
- package/esm/resource/nullable-resource.d.mts +5 -7
- package/esm/resource/nullable-resource.d.mts.map +1 -1
- package/esm/resource/register-resource.d.mts +1 -3
- package/esm/resource/register-resource.d.mts.map +1 -1
- package/esm/resource/resource-field-builder.d.mts +1 -3
- package/esm/resource/resource-field-builder.d.mts.map +1 -1
- package/esm/resource/resource.d.mts +3 -5
- package/esm/resource/resource.d.mts.map +1 -1
- package/esm/resource/resource.mjs +4 -2
- package/esm/resource/resource.mjs.map +1 -1
- package/esm/resource/types.d.mts +21 -21
- package/esm/resource/types.d.mts.map +1 -1
- package/esm/restful/index.d.mts +2 -1
- package/esm/restful/index.mjs +1 -1
- package/esm/restful/restful.d.mts +12 -32
- package/esm/restful/restful.d.mts.map +1 -1
- package/esm/router/index.d.mts +2 -1
- package/esm/router/index.mjs +1 -1
- package/esm/router/named-api-routes-with-responses.mjs +2 -1
- package/esm/router/named-api-routes-with-responses.mjs.map +1 -1
- package/esm/router/normalize-request-path.d.mts +1 -2
- package/esm/router/normalize-request-path.d.mts.map +1 -1
- package/esm/router/normalize-route-path.d.mts +1 -2
- package/esm/router/normalize-route-path.d.mts.map +1 -1
- package/esm/router/positional-handler-diagnostics.d.mts +15 -13
- package/esm/router/positional-handler-diagnostics.d.mts.map +1 -1
- package/esm/router/resolve-route-rate-limit.mjs +3 -3
- package/esm/router/resolve-route-rate-limit.mjs.map +1 -1
- package/esm/router/route-builder.d.mts +1 -3
- package/esm/router/route-builder.d.mts.map +1 -1
- package/esm/router/route-guard-names.mjs +1 -1
- package/esm/router/route-guard-names.mjs.map +1 -1
- package/esm/router/route-name-method-suffix.d.mts +2 -3
- package/esm/router/route-name-method-suffix.d.mts.map +1 -1
- package/esm/router/route-name-taken-error.d.mts +1 -3
- package/esm/router/route-name-taken-error.d.mts.map +1 -1
- package/esm/router/route-registry.d.mts +1 -3
- package/esm/router/route-registry.d.mts.map +1 -1
- package/esm/router/router.d.mts +2 -4
- package/esm/router/router.d.mts.map +1 -1
- package/esm/router/router.mjs +8 -6
- package/esm/router/router.mjs.map +1 -1
- package/esm/router/types.d.mts +25 -26
- package/esm/router/types.d.mts.map +1 -1
- package/esm/router/unguarded-route-diagnostics.d.mts +6 -8
- package/esm/router/unguarded-route-diagnostics.d.mts.map +1 -1
- package/esm/socket/index.d.mts +2 -1
- package/esm/socket/index.mjs +1 -1
- package/esm/socket/types.d.mts +2 -4
- package/esm/socket/types.d.mts.map +1 -1
- package/esm/socket/utils.d.mts +1 -3
- package/esm/socket/utils.d.mts.map +1 -1
- package/esm/storage/config.d.mts +4 -6
- package/esm/storage/config.d.mts.map +1 -1
- package/esm/storage/context/storage-driver-context.d.mts +3 -4
- package/esm/storage/context/storage-driver-context.d.mts.map +1 -1
- package/esm/storage/drivers/cloud-driver.d.mts +2 -4
- package/esm/storage/drivers/cloud-driver.d.mts.map +1 -1
- package/esm/storage/drivers/cloud-driver.mjs.map +1 -1
- package/esm/storage/drivers/do-spaces-driver.d.mts +1 -3
- package/esm/storage/drivers/do-spaces-driver.d.mts.map +1 -1
- package/esm/storage/drivers/local-driver.d.mts +2 -3
- package/esm/storage/drivers/local-driver.d.mts.map +1 -1
- package/esm/storage/drivers/local-driver.mjs +8 -3
- package/esm/storage/drivers/local-driver.mjs.map +1 -1
- package/esm/storage/drivers/r2-driver.d.mts +1 -3
- package/esm/storage/drivers/r2-driver.d.mts.map +1 -1
- package/esm/storage/drivers/s3-driver.d.mts +1 -3
- package/esm/storage/drivers/s3-driver.d.mts.map +1 -1
- package/esm/storage/index.d.mts +2 -1
- package/esm/storage/index.mjs +1 -1
- package/esm/storage/local-disk-roots.mjs +2 -2
- package/esm/storage/local-disk-roots.mjs.map +1 -1
- package/esm/storage/scoped-storage.d.mts +2 -3
- package/esm/storage/scoped-storage.d.mts.map +1 -1
- package/esm/storage/storage-file.d.mts +1 -3
- package/esm/storage/storage-file.d.mts.map +1 -1
- package/esm/storage/storage.d.mts +3 -4
- package/esm/storage/storage.d.mts.map +1 -1
- package/esm/storage/types.d.mts +36 -36
- package/esm/storage/types.d.mts.map +1 -1
- package/esm/storage/utils/classify-ip-address.d.mts +1 -2
- package/esm/storage/utils/classify-ip-address.d.mts.map +1 -1
- package/esm/storage/utils/contain-path.d.mts +1 -2
- package/esm/storage/utils/contain-path.d.mts.map +1 -1
- package/esm/storage/utils/mime.d.mts +2 -3
- package/esm/storage/utils/mime.d.mts.map +1 -1
- package/esm/storage/utils/safe-fetch.d.mts +6 -6
- package/esm/storage/utils/safe-fetch.d.mts.map +1 -1
- package/esm/storage/utils/safe-fetch.mjs +3 -3
- package/esm/storage/utils/safe-fetch.mjs.map +1 -1
- package/esm/storage/utils/storage-capability-error.d.mts +1 -3
- package/esm/storage/utils/storage-capability-error.d.mts.map +1 -1
- package/esm/storage/utils/storage-error.d.mts +2 -3
- package/esm/storage/utils/storage-error.d.mts.map +1 -1
- package/esm/storage/utils/storage-not-initialized-error.d.mts +1 -2
- package/esm/storage/utils/storage-not-initialized-error.d.mts.map +1 -1
- package/esm/tests/authenticated-test-client.d.mts +5 -6
- package/esm/tests/authenticated-test-client.d.mts.map +1 -1
- package/esm/tests/factories.d.mts +38 -23
- package/esm/tests/factories.d.mts.map +1 -1
- package/esm/tests/fakes/cache-fake.d.mts +14 -9
- package/esm/tests/fakes/cache-fake.d.mts.map +1 -1
- package/esm/tests/fakes/clock-fake.d.mts +13 -8
- package/esm/tests/fakes/clock-fake.d.mts.map +1 -1
- package/esm/tests/fakes/fake-assertion-error.d.mts +2 -3
- package/esm/tests/fakes/fake-assertion-error.d.mts.map +1 -1
- package/esm/tests/fakes/ids-fake.d.mts +5 -4
- package/esm/tests/fakes/ids-fake.d.mts.map +1 -1
- package/esm/tests/fakes/index.d.mts +2 -1
- package/esm/tests/fakes/index.mjs +1 -1
- package/esm/tests/fakes/mail-fake.d.mts +21 -13
- package/esm/tests/fakes/mail-fake.d.mts.map +1 -1
- package/esm/tests/fakes/queue-fake.d.mts +21 -13
- package/esm/tests/fakes/queue-fake.d.mts.map +1 -1
- package/esm/tests/fakes/storage-fake.d.mts +12 -8
- package/esm/tests/fakes/storage-fake.d.mts.map +1 -1
- package/esm/tests/fakes/storage-fake.mjs +1 -1
- package/esm/tests/fakes/test-fakes.d.mts +8 -9
- package/esm/tests/fakes/test-fakes.d.mts.map +1 -1
- package/esm/tests/fakes/test-fakes.mjs +1 -1
- package/esm/tests/fakes/test-fakes.mjs.map +1 -1
- package/esm/tests/index.d.mts +1 -0
- package/esm/tests/snapshot-response.d.mts +4 -5
- package/esm/tests/snapshot-response.d.mts.map +1 -1
- package/esm/tests/start-http-development-server.d.mts +4 -6
- package/esm/tests/start-http-development-server.d.mts.map +1 -1
- package/esm/tests/start-http-development-server.mjs +5 -5
- package/esm/tests/start-http-development-server.mjs.map +1 -1
- package/esm/tests/test-connectors-selection.d.mts +2 -2
- package/esm/tests/test-connectors-selection.d.mts.map +1 -1
- package/esm/tests/test-connectors-selection.mjs +1 -1
- package/esm/tests/test-helpers.d.mts +11 -12
- package/esm/tests/test-helpers.d.mts.map +1 -1
- package/esm/tests/test-http-server.d.mts +14 -10
- package/esm/tests/test-http-server.d.mts.map +1 -1
- package/esm/tests/test-lifecycle-state.mjs +1 -1
- package/esm/tests/vitest-setup.d.mts +6 -7
- package/esm/tests/vitest-setup.d.mts.map +1 -1
- package/esm/tooling/agents-md/agents-md-markers.d.mts +4 -5
- package/esm/tooling/agents-md/agents-md-markers.d.mts.map +1 -1
- package/esm/tooling/agents-md/agents-md-markers.mjs +2 -1
- package/esm/tooling/agents-md/agents-md-markers.mjs.map +1 -1
- package/esm/tooling/agents-md/agents-md-refresher.d.mts +19 -12
- package/esm/tooling/agents-md/agents-md-refresher.d.mts.map +1 -1
- package/esm/tooling/agents-md/installed-skills.d.mts +13 -9
- package/esm/tooling/agents-md/installed-skills.d.mts.map +1 -1
- package/esm/tooling/agents-md/render-agents-md.d.mts +8 -7
- package/esm/tooling/agents-md/render-agents-md.d.mts.map +1 -1
- package/esm/tooling/agents-md/render-agents-md.mjs +2 -2
- package/esm/tooling/agents-md/render-agents-md.mjs.map +1 -1
- package/esm/tooling/agents-md/write-agents-md.d.mts +17 -12
- package/esm/tooling/agents-md/write-agents-md.d.mts.map +1 -1
- package/esm/tooling/board/board-message.d.mts +4 -6
- package/esm/tooling/board/board-message.d.mts.map +1 -1
- package/esm/tooling/board/board.d.mts +50 -38
- package/esm/tooling/board/board.d.mts.map +1 -1
- package/esm/tooling/board/board.mjs +4 -3
- package/esm/tooling/board/board.mjs.map +1 -1
- package/esm/tooling/board/board.types.d.mts +32 -23
- package/esm/tooling/board/board.types.d.mts.map +1 -1
- package/esm/tooling/check/changed-files.d.mts +4 -6
- package/esm/tooling/check/changed-files.d.mts.map +1 -1
- package/esm/tooling/check/changed-files.mjs +2 -2
- package/esm/tooling/check/changed-files.mjs.map +1 -1
- package/esm/tooling/check/check-report.types.d.mts +22 -17
- package/esm/tooling/check/check-report.types.d.mts.map +1 -1
- package/esm/tooling/check/code-style-conventions.mjs +25 -25
- package/esm/tooling/check/code-style-conventions.mjs.map +1 -1
- package/esm/tooling/check/conventions-step.d.mts +4 -6
- package/esm/tooling/check/conventions-step.d.mts.map +1 -1
- package/esm/tooling/check/conventions-step.mjs +7 -18
- package/esm/tooling/check/conventions-step.mjs.map +1 -1
- package/esm/tooling/check/environment-step.d.mts +2 -4
- package/esm/tooling/check/environment-step.d.mts.map +1 -1
- package/esm/tooling/check/environment-step.mjs +1 -1
- package/esm/tooling/check/index.mjs +1 -1
- package/esm/tooling/check/lint-step.d.mts +4 -5
- package/esm/tooling/check/lint-step.d.mts.map +1 -1
- package/esm/tooling/check/lint-step.mjs +2 -1
- package/esm/tooling/check/lint-step.mjs.map +1 -1
- package/esm/tooling/check/request-input.mjs +15 -15
- package/esm/tooling/check/request-input.mjs.map +1 -1
- package/esm/tooling/check/run-check.d.mts +22 -14
- package/esm/tooling/check/run-check.d.mts.map +1 -1
- package/esm/tooling/check/run-tests.d.mts +22 -15
- package/esm/tooling/check/run-tests.d.mts.map +1 -1
- package/esm/tooling/check/security-conventions.mjs +133 -131
- package/esm/tooling/check/security-conventions.mjs.map +1 -1
- package/esm/tooling/check/source-ast.mjs +92 -132
- package/esm/tooling/check/source-ast.mjs.map +1 -1
- package/esm/tooling/check/tests-step.d.mts +7 -8
- package/esm/tooling/check/tests-step.d.mts.map +1 -1
- package/esm/tooling/check/tests-step.mjs +3 -3
- package/esm/tooling/check/tests-step.mjs.map +1 -1
- package/esm/tooling/dev-state/dev-server-state.d.mts +17 -13
- package/esm/tooling/dev-state/dev-server-state.d.mts.map +1 -1
- package/esm/tooling/devtools/devtools-client.d.mts +29 -20
- package/esm/tooling/devtools/devtools-client.d.mts.map +1 -1
- package/esm/tooling/generate/generation.d.mts +34 -22
- package/esm/tooling/generate/generation.d.mts.map +1 -1
- package/esm/tooling/generate/generation.mjs +9 -5
- package/esm/tooling/generate/generation.mjs.map +1 -1
- package/esm/tooling/generate/generator-spec.d.mts +9 -9
- package/esm/tooling/generate/generator-spec.d.mts.map +1 -1
- package/esm/tooling/generate/index.mjs +1 -1
- package/esm/tooling/generate/project-files.mjs +3 -3
- package/esm/tooling/generate/project-files.mjs.map +1 -1
- package/esm/tooling/generate/run-cli.d.mts +14 -11
- package/esm/tooling/generate/run-cli.d.mts.map +1 -1
- package/esm/tooling/generate/run-cli.mjs +2 -2
- package/esm/tooling/generate/run-cli.mjs.map +1 -1
- package/esm/tooling/generate/unified-diff.d.mts +10 -7
- package/esm/tooling/generate/unified-diff.d.mts.map +1 -1
- package/esm/tooling/index.d.mts +1 -0
- package/esm/tooling/inspect/boot-for-inspect.d.mts +7 -7
- package/esm/tooling/inspect/boot-for-inspect.d.mts.map +1 -1
- package/esm/tooling/inspect/collect-config.mjs +3 -3
- package/esm/tooling/inspect/collect-config.mjs.map +1 -1
- package/esm/tooling/inspect/collect-models.d.mts +4 -3
- package/esm/tooling/inspect/collect-models.d.mts.map +1 -1
- package/esm/tooling/inspect/collect-models.mjs +1 -1
- package/esm/tooling/inspect/collect-packages.d.mts +1 -2
- package/esm/tooling/inspect/collect-packages.d.mts.map +1 -1
- package/esm/tooling/inspect/collect-pages.mjs +10 -10
- package/esm/tooling/inspect/collect-pages.mjs.map +1 -1
- package/esm/tooling/inspect/collect-routes.mjs +1 -1
- package/esm/tooling/inspect/event-recorder.d.mts +7 -7
- package/esm/tooling/inspect/event-recorder.d.mts.map +1 -1
- package/esm/tooling/inspect/index.d.mts +2 -1
- package/esm/tooling/inspect/index.mjs +1 -1
- package/esm/tooling/inspect/inspect-app.d.mts +25 -16
- package/esm/tooling/inspect/inspect-app.d.mts.map +1 -1
- package/esm/tooling/inspect/inspect-report.schema.d.mts +1 -2
- package/esm/tooling/inspect/inspect-report.schema.d.mts.map +1 -1
- package/esm/tooling/inspect/inspect-report.types.d.mts +86 -54
- package/esm/tooling/inspect/inspect-report.types.d.mts.map +1 -1
- package/esm/tooling/mcp/create-mcp-context.d.mts +11 -8
- package/esm/tooling/mcp/create-mcp-context.d.mts.map +1 -1
- package/esm/tooling/mcp/db-schema.d.mts +10 -9
- package/esm/tooling/mcp/db-schema.d.mts.map +1 -1
- package/esm/tooling/mcp/docs-search.d.mts +20 -15
- package/esm/tooling/mcp/docs-search.d.mts.map +1 -1
- package/esm/tooling/mcp/index.mjs +1 -1
- package/esm/tooling/mcp/load-ai-tools.d.mts +7 -8
- package/esm/tooling/mcp/load-ai-tools.d.mts.map +1 -1
- package/esm/tooling/mcp/load-ai-tools.mjs +2 -1
- package/esm/tooling/mcp/load-ai-tools.mjs.map +1 -1
- package/esm/tooling/mcp/mcp-tools.d.mts +29 -19
- package/esm/tooling/mcp/mcp-tools.d.mts.map +1 -1
- package/esm/tooling/mcp/mcp-tools.mjs +3 -2
- package/esm/tooling/mcp/mcp-tools.mjs.map +1 -1
- package/esm/tooling/mcp/start-mcp-server.d.mts +24 -17
- package/esm/tooling/mcp/start-mcp-server.d.mts.map +1 -1
- package/esm/tooling/mcp/start-mcp-server.mjs +1 -1
- package/esm/tooling/mcp/start-mcp-server.mjs.map +1 -1
- package/esm/tooling/mcp/tool-input.d.mts +7 -7
- package/esm/tooling/mcp/tool-input.d.mts.map +1 -1
- package/esm/tooling/problem.d.mts +27 -17
- package/esm/tooling/problem.d.mts.map +1 -1
- package/esm/tooling/syntax/ast.mjs +230 -0
- package/esm/tooling/syntax/ast.mjs.map +1 -0
- package/esm/tooling/syntax/imports.mjs +34 -0
- package/esm/tooling/syntax/imports.mjs.map +1 -0
- package/esm/tooling/trace/trace-report.types.d.mts +36 -22
- package/esm/tooling/trace/trace-report.types.d.mts.map +1 -1
- package/esm/tooling/trace/trace-request.d.mts +27 -20
- package/esm/tooling/trace/trace-request.d.mts.map +1 -1
- package/esm/tooling/trace/trace-request.mjs +2 -2
- package/esm/tooling/trace/trace-request.mjs.map +1 -1
- package/esm/tooling/typecheck/index.mjs +1 -1
- package/esm/tooling/typecheck/run-typecheck.d.mts +15 -48
- package/esm/tooling/typecheck/run-typecheck.d.mts.map +1 -1
- package/esm/tooling/typecheck/run-typecheck.mjs +42 -105
- package/esm/tooling/typecheck/run-typecheck.mjs.map +1 -1
- package/esm/tooling/typescript/compiler.d.mts +31 -0
- package/esm/tooling/typescript/compiler.d.mts.map +1 -0
- package/esm/tooling/typescript/compiler.mjs +120 -0
- package/esm/tooling/typescript/compiler.mjs.map +1 -0
- package/esm/updater/update-warlock-packages.mjs +3 -2
- package/esm/updater/update-warlock-packages.mjs.map +1 -1
- package/esm/upgrade/codemods/index.mjs +1 -1
- package/esm/upgrade/codemods/logger-sync-calls.mjs +1 -1
- package/esm/upgrade/codemods/logger-sync-calls.mjs.map +1 -1
- package/esm/upgrade/codemods/request-log-snapshot.mjs +1 -1
- package/esm/upgrade/codemods/request-log-snapshot.mjs.map +1 -1
- package/esm/upgrade/diff.mjs +1 -1
- package/esm/upgrade/diff.mjs.map +1 -1
- package/esm/upgrade/load-ts-morph.mjs +3 -2
- package/esm/upgrade/load-ts-morph.mjs.map +1 -1
- package/esm/upgrade/run-upgrade.mjs +1 -1
- package/esm/use-cases/index.d.mts +2 -1
- package/esm/use-cases/index.mjs +1 -1
- package/esm/use-cases/types.d.mts +116 -63
- package/esm/use-cases/types.d.mts.map +1 -1
- package/esm/use-cases/use-case-broadcast.d.mts +1 -3
- package/esm/use-cases/use-case-broadcast.d.mts.map +1 -1
- package/esm/use-cases/use-case-events.d.mts +3 -5
- package/esm/use-cases/use-case-events.d.mts.map +1 -1
- package/esm/use-cases/use-case-pipeline.d.mts +6 -6
- package/esm/use-cases/use-case-pipeline.d.mts.map +1 -1
- package/esm/use-cases/use-case.d.mts +2 -4
- package/esm/use-cases/use-case.d.mts.map +1 -1
- package/esm/use-cases/use-case.errors.d.mts +1 -3
- package/esm/use-cases/use-case.errors.d.mts.map +1 -1
- package/esm/use-cases/use-cases-registry.d.mts +8 -10
- package/esm/use-cases/use-cases-registry.d.mts.map +1 -1
- package/esm/utils/app-log.d.mts +1 -2
- package/esm/utils/app-log.d.mts.map +1 -1
- package/esm/utils/clock.d.mts +8 -6
- package/esm/utils/clock.d.mts.map +1 -1
- package/esm/utils/database-log.d.mts +3 -4
- package/esm/utils/database-log.d.mts.map +1 -1
- package/esm/utils/environment.d.mts +4 -5
- package/esm/utils/environment.d.mts.map +1 -1
- package/esm/utils/framework-vesion.mjs.map +1 -1
- package/esm/utils/get-localized.d.mts +2 -3
- package/esm/utils/get-localized.d.mts.map +1 -1
- package/esm/utils/ids.d.mts +9 -6
- package/esm/utils/ids.d.mts.map +1 -1
- package/esm/utils/index.d.mts +2 -1
- package/esm/utils/index.mjs +1 -1
- package/esm/utils/normalized-path.d.mts +1 -2
- package/esm/utils/normalized-path.d.mts.map +1 -1
- package/esm/utils/npm-registry.d.mts +1 -2
- package/esm/utils/npm-registry.d.mts.map +1 -1
- package/esm/utils/paths.d.mts +13 -14
- package/esm/utils/paths.d.mts.map +1 -1
- package/esm/utils/paths.mjs +2 -2
- package/esm/utils/paths.mjs.map +1 -1
- package/esm/utils/promise-all-object.d.mts +1 -2
- package/esm/utils/promise-all-object.d.mts.map +1 -1
- package/esm/utils/queue.d.mts +1 -2
- package/esm/utils/queue.d.mts.map +1 -1
- package/esm/utils/runtime.d.mts +11 -10
- package/esm/utils/runtime.d.mts.map +1 -1
- package/esm/utils/sleep.d.mts +1 -2
- package/esm/utils/sleep.d.mts.map +1 -1
- package/esm/utils/sluggable.d.mts +1 -3
- package/esm/utils/sluggable.d.mts.map +1 -1
- package/esm/utils/to-json.d.mts +1 -2
- package/esm/utils/to-json.d.mts.map +1 -1
- package/esm/utils/types.d.mts +1 -2
- package/esm/utils/types.d.mts.map +1 -1
- package/esm/utils/urls.d.mts +5 -6
- package/esm/utils/urls.d.mts.map +1 -1
- package/esm/utils/version-compare.d.mts +1 -2
- package/esm/utils/version-compare.d.mts.map +1 -1
- package/esm/validation/database/exists-except-current-id.d.mts +2 -3
- package/esm/validation/database/exists-except-current-id.d.mts.map +1 -1
- package/esm/validation/database/exists-except-current-user.d.mts +2 -3
- package/esm/validation/database/exists-except-current-user.d.mts.map +1 -1
- package/esm/validation/database/index.d.mts +2 -1
- package/esm/validation/database/index.mjs +1 -1
- package/esm/validation/database/types.d.mts +14 -10
- package/esm/validation/database/types.d.mts.map +1 -1
- package/esm/validation/database/unique-except-current-id.d.mts +2 -3
- package/esm/validation/database/unique-except-current-id.d.mts.map +1 -1
- package/esm/validation/database/unique-except-current-user.d.mts +2 -3
- package/esm/validation/database/unique-except-current-user.d.mts.map +1 -1
- package/esm/validation/file/file.d.mts +4 -6
- package/esm/validation/file/file.d.mts.map +1 -1
- package/esm/validation/file/index.d.mts +2 -1
- package/esm/validation/file/index.mjs +1 -1
- package/esm/validation/index.d.mts +5 -1
- package/esm/validation/index.mjs +1 -1
- package/esm/validation/plugins/index.mjs +1 -1
- package/esm/validation/types.d.mts +6 -4
- package/esm/validation/types.d.mts.map +1 -1
- package/esm/validation/validateAll.mjs +2 -2
- package/esm/validation/validateAll.mjs.map +1 -1
- package/esm/validation/validation-failure-status.mjs +2 -2
- package/esm/validation/validation-failure-status.mjs.map +1 -1
- package/esm/validation/validators/file-validator.d.mts +2 -4
- package/esm/validation/validators/file-validator.d.mts.map +1 -1
- package/esm/validation/validators/index.d.mts +2 -1
- package/esm/validation/validators/index.mjs +1 -1
- package/esm/vite/lower-stage3-decorators.d.mts +2 -3
- package/esm/vite/lower-stage3-decorators.d.mts.map +1 -1
- package/esm/warlock-config/define-config.d.mts +1 -3
- package/esm/warlock-config/define-config.d.mts.map +1 -1
- package/esm/warlock-config/define-config.mjs +3 -2
- package/esm/warlock-config/define-config.mjs.map +1 -1
- package/esm/warlock-config/index.d.mts +2 -1
- package/esm/warlock-config/index.mjs +1 -1
- package/esm/warlock-config/types.d.mts +6 -5
- package/esm/warlock-config/types.d.mts.map +1 -1
- package/esm/warlock-config/warlock-config.manager.d.mts +5 -7
- package/esm/warlock-config/warlock-config.manager.d.mts.map +1 -1
- package/esm/warlock-config/warlock-config.manager.mjs +2 -1
- package/esm/warlock-config/warlock-config.manager.mjs.map +1 -1
- package/esm/warlock-config/warn-deprecated-config.mjs +1 -1
- package/llms-full.txt +55 -5
- package/package.json +17 -15
- package/skills/create-module/SKILL.md +7 -0
- package/skills/index.md +2 -0
- package/skills/report-framework-issue.md +154 -0
- package/skills/run-app/SKILL.md +6 -5
- package/skills/upgrade-from-5-29/SKILL.md +41 -0
- package/skills/warlock-check/SKILL.md +1 -0
- package/esm/tooling/check/index.d.mts +0 -8
- package/esm/tooling/typecheck/index.d.mts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/types.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/types.ts"],"mappings":";;;;;;;;;;;YAcY;;;;EAIV;;;;IAIE;;;;IAIA;;;;IAIA;;;;;;;;;;;;;EAcF,QAAQ,KAAK;;;;;;IAMX;;;;;;;;;;;IAWA;;;;;;IAMA;;;;;;;IAOA;;;;;;;;;;;;;;;;;IAiBA;;;;;;;;;;;;;;;;IAgBA;;;;;;IAMA;;;;;;IAMA;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BF,aAAa;;;;EAKb;IACE,WAAW;;;;;EAMb;;;;IAIE;;;;;;MAME;;;;;;MAMA;;;;;;IAMF,iBAAiB,8BAA8B;;;;;IAK/C;;;;;;;;;IASA;;;;;;;;;IASA;;;;;;;;;;IAUA;;;;;;;;;;;;IAYA;;;;;;;;;;IAUA;;;;;;;;;IASA;;MAIM;;MAEA;;MAEA;;;;;;EAOR;;;;;;;;;;;;;;;;;;IAkBE,aAAa,MAAM;;;;;;;;EASrB;;;;;;;;;IASE;;;;;;;;IASA"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { WarlockConfig } from "./types.mjs";
|
|
2
|
-
|
|
3
2
|
//#region ../../packages/core/src/warlock-config/warlock-config.manager.d.ts
|
|
4
3
|
/**
|
|
5
4
|
* True when `error` is Node's "this runtime can't import a `.ts` file" error.
|
|
@@ -9,7 +8,7 @@ import { WarlockConfig } from "./types.mjs";
|
|
|
9
8
|
* `import("warlock.config.ts")` throws `ERR_UNKNOWN_FILE_EXTENSION` — which is
|
|
10
9
|
* the signal to fall back to transpiling the config ourselves.
|
|
11
10
|
*/
|
|
12
|
-
declare function isUnknownTsExtensionError(error: unknown): boolean;
|
|
11
|
+
export declare function isUnknownTsExtensionError(error: unknown): boolean;
|
|
13
12
|
/**
|
|
14
13
|
* True when `error` is Node failing to RESOLVE an import of the config's OWN
|
|
15
14
|
* graph: an extensionless relative import (`./src/connectors/local`), a
|
|
@@ -24,20 +23,20 @@ declare function isUnknownTsExtensionError(error: unknown): boolean;
|
|
|
24
23
|
* `pathAliases` are the tsconfig `paths` patterns (`app/*`). When the message
|
|
25
24
|
* cannot be parsed the error is treated as a graph error, as before.
|
|
26
25
|
*/
|
|
27
|
-
declare function isUnresolvedConfigImportError(error: unknown, pathAliases?: readonly string[]): boolean;
|
|
26
|
+
export declare function isUnresolvedConfigImportError(error: unknown, pathAliases?: readonly string[]): boolean;
|
|
28
27
|
/**
|
|
29
28
|
* True when `error` is native type stripping refusing TypeScript it cannot
|
|
30
29
|
* strip (an `enum`, a `namespace`, a parameter property) or a `.ts` file under
|
|
31
30
|
* `node_modules`. Both are raised while loading, before the graph runs.
|
|
32
31
|
*/
|
|
33
|
-
declare function isUnsupportedTypeStrippingError(error: unknown): boolean;
|
|
32
|
+
export declare function isUnsupportedTypeStrippingError(error: unknown): boolean;
|
|
34
33
|
/**
|
|
35
34
|
* Warlock Config Manager
|
|
36
35
|
*
|
|
37
36
|
* Manages lazy loading of the pre-compiled warlock.config.js file
|
|
38
37
|
* from the .warlock/cache directory.
|
|
39
38
|
*/
|
|
40
|
-
declare class WarlockConfigManager {
|
|
39
|
+
export declare class WarlockConfigManager {
|
|
41
40
|
/**
|
|
42
41
|
* Cached config instance
|
|
43
42
|
*/
|
|
@@ -123,7 +122,6 @@ declare class WarlockConfigManager {
|
|
|
123
122
|
* await warlockConfig.load();
|
|
124
123
|
* const commands = warlockConfig.get("cli.commands");
|
|
125
124
|
*/
|
|
126
|
-
declare const warlockConfigManager: WarlockConfigManager;
|
|
125
|
+
export declare const warlockConfigManager: WarlockConfigManager;
|
|
127
126
|
//#endregion
|
|
128
|
-
export { WarlockConfigManager, isUnknownTsExtensionError, isUnresolvedConfigImportError, isUnsupportedTypeStrippingError, warlockConfigManager };
|
|
129
127
|
//# sourceMappingURL=warlock-config.manager.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warlock-config.manager.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/warlock-config.manager.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"warlock-config.manager.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/warlock-config.manager.ts"],"mappings":";;;;;;;;;;wBAyBgB,0BAA0B;;;;;;;;;;;;;;;wBAqB1B,8BACd,gBACA;;;;;;wBA4Bc,gCAAgC;;;;;;;qBA+BnC;;;;UAIH;;;;UAKA;;;;;;EAOK,QAAQ,QAAQ;;;;;;;UA8Bf;;;;;;;;;;;;;UAwDA;;;;;;;;;;;;EAgCP,IAAI,kBAAkB,eAC3B,KAAK,KACL,eAAe,cAAc,OAC5B,cAAc;;;;;;;;;;;EAkBX,QAAQ,kBAAkB,eAC9B,KAAK,KACL,eAAe,cAAc,OAC5B,QAAQ,cAAc;;;;MAQd;;;;;;EASJ,UAAU;;;;EAWJ,UAAU;;;;;;;;;;;;;;;qBAwDZ,sBAAoB"}
|
|
@@ -207,7 +207,8 @@ function configPathAliases(configPath) {
|
|
|
207
207
|
function nameOriginalConfig(error, compiledPath, configPath) {
|
|
208
208
|
const code = error?.code;
|
|
209
209
|
if (typeof code !== "string" || !code.startsWith("ERR_")) return error;
|
|
210
|
-
const
|
|
210
|
+
const message = String(error.message ?? error).split(pathToFileURL(compiledPath).href).join(pathToFileURL(configPath).href).split(compiledPath).join(configPath);
|
|
211
|
+
const wrapped = new ErrorWithCause(`Failed to load warlock.config.ts: ${message}`, { cause: error });
|
|
211
212
|
wrapped.code = code;
|
|
212
213
|
return wrapped;
|
|
213
214
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warlock-config.manager.mjs","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/warlock-config.manager.ts"],"sourcesContent":["import { fileExistsAsync } from \"@warlock.js/fs\";\nimport { get } from \"@mongez/reinforcements\";\nimport { getTsconfig } from \"get-tsconfig\";\nimport { unlink, writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"url\";\nimport { rootPath } from \"../utils\";\nimport { bundleWarlockConfig } from \"./bundle-config\";\nimport { type WarlockConfig } from \"./types\";\nimport { getDeprecatedConfigWarnings } from \"./warn-deprecated-config\";\n\n/**\n * `Error` with the ES2022 `cause` option, typed for packages still compiled\n * against an older lib (see `application.ts`).\n */\nconst ErrorWithCause = Error as new (message: string, options: { cause: unknown }) => Error;\n\n/**\n * True when `error` is Node's \"this runtime can't import a `.ts` file\" error.\n *\n * Node only executes TypeScript natively from v22.18 / v23.6 onward (earlier\n * 22.x needs `--experimental-strip-types`). On older runtimes a bare\n * `import(\"warlock.config.ts\")` throws `ERR_UNKNOWN_FILE_EXTENSION` — which is\n * the signal to fall back to transpiling the config ourselves.\n */\nexport function isUnknownTsExtensionError(error: unknown): boolean {\n return (\n (error as { code?: string })?.code === \"ERR_UNKNOWN_FILE_EXTENSION\" ||\n /Unknown file extension \"\\.tsx?\"/.test(String((error as Error)?.message))\n );\n}\n\n/**\n * True when `error` is Node failing to RESOLVE an import of the config's OWN\n * graph: an extensionless relative import (`./src/connectors/local`), a\n * directory import, or a tsconfig `paths` alias (`app/connectors`) — all of\n * which only a TypeScript toolchain resolves. Native type stripping\n * (Node ≥ 22.18) loads `warlock.config.ts` itself, then fails here.\n *\n * A package that is genuinely not installed is NOT a fallback case: the error\n * names a bare specifier that matches no `paths` pattern, and it is rethrown\n * as is. Neither is a missing module imported from inside `node_modules`.\n *\n * `pathAliases` are the tsconfig `paths` patterns (`app/*`). When the message\n * cannot be parsed the error is treated as a graph error, as before.\n */\nexport function isUnresolvedConfigImportError(\n error: unknown,\n pathAliases: readonly string[] = [],\n): boolean {\n const code = (error as { code?: string })?.code;\n\n if (code === \"ERR_UNSUPPORTED_DIR_IMPORT\") return true;\n if (code !== \"ERR_MODULE_NOT_FOUND\") return false;\n\n const message = String((error as Error)?.message ?? \"\");\n const match = /Cannot find (module|package) '([^']+)' imported from (.+)$/m.exec(message);\n\n if (!match) return true;\n\n const [, kind, specifier = \"\", importer = \"\"] = match;\n\n if (/[\\\\/]node_modules[\\\\/]/.test(importer)) return false;\n\n // An unresolved relative or absolute path: an extensionless TS import.\n if (kind === \"module\") return true;\n\n // A bare name: only a tsconfig alias is the config graph's own code.\n return pathAliases.some((pattern) => aliasCovers(pattern, specifier));\n}\n\n/**\n * True when `error` is native type stripping refusing TypeScript it cannot\n * strip (an `enum`, a `namespace`, a parameter property) or a `.ts` file under\n * `node_modules`. Both are raised while loading, before the graph runs.\n */\nexport function isUnsupportedTypeStrippingError(error: unknown): boolean {\n const code = (error as { code?: string })?.code;\n\n return (\n code === \"ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX\" ||\n code === \"ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING\"\n );\n}\n\n/**\n * True when a tsconfig `paths` pattern can produce `packageName` as the first\n * segment(s) of a specifier: `app/*` covers `app`, `@shared/*` covers\n * `@shared`, a catch-all `*` covers anything.\n */\nfunction aliasCovers(pattern: string, packageName: string): boolean {\n const star = pattern.indexOf(\"*\");\n const prefix = star === -1 ? pattern : pattern.slice(0, star);\n\n if (prefix === \"\") return true;\n\n return (\n prefix === packageName || prefix.startsWith(`${packageName}/`) || packageName.startsWith(prefix)\n );\n}\n\n/**\n * Warlock Config Manager\n *\n * Manages lazy loading of the pre-compiled warlock.config.js file\n * from the .warlock/cache directory.\n */\nexport class WarlockConfigManager {\n /**\n * Cached config instance\n */\n private config?: WarlockConfig;\n\n /**\n * Loading promise to prevent duplicate loads\n */\n private loading?: Promise<WarlockConfig | undefined>;\n\n /**\n * Load warlock.config.js (cached after first load)\n *\n * @returns The resolved Warlock configuration\n */\n public async load(): Promise<WarlockConfig | undefined> {\n // Already loaded\n if (this.config) {\n return this.config;\n }\n\n // Currently loading (prevent duplicate loads)\n if (this.loading) {\n return this.loading;\n }\n\n // Start loading\n this.loading = this.doLoad();\n this.config = await this.loading;\n this.loading = undefined;\n\n // Console, not the logger: this runs before any log channel exists.\n for (const warning of getDeprecatedConfigWarnings(this.config)) {\n console.warn(warning);\n }\n\n return this.config;\n }\n\n /**\n * Internal load implementation\n *\n * The ESM loader hook transpiles `warlock.config.ts` on import — no\n * separate compile-to-disk step is needed.\n */\n private async doLoad(): Promise<WarlockConfig | undefined> {\n const configPath = rootPath(\"warlock.config.ts\");\n\n if (!(await fileExistsAsync(configPath))) {\n // Written straight to the console, NOT through `@warlock.js/logger`.\n // This runs during CLI bootstrap, before `LoggerConnector.start()` has\n // configured a single channel, so a logger call here reaches nobody in\n // any application — the warning would be silently dropped exactly when\n // the user most needs it.\n console.warn(\n \"warlock.config.ts is missing — create it at the project root (see https://warlock.js.org/docs for the config reference)\",\n );\n return;\n }\n\n try {\n const configModule = await import(pathToFileURL(configPath).href);\n return configModule.default;\n } catch (error) {\n // `dev` registers a TS loader hook, and Node ≥ 22.18 / 23.6 strips types\n // natively — in both cases the direct import above works for a\n // self-contained config. But `build` / `start` register no hook, so on an\n // older Node the import throws ERR_UNKNOWN_FILE_EXTENSION; native\n // stripping cannot resolve extensionless or tsconfig-aliased local\n // imports, nor strip an `enum` or a parameter property. Bundle the\n // config's local graph with esbuild ourselves so config loading is\n // Node-version-independent.\n //\n // These errors are raised while resolving and loading the STATIC graph,\n // before any of it runs. An unresolved import reached later — a dynamic\n // `import()` while the config runs — is indistinguishable by code, so the\n // fallback is limited to the config's own relative and aliased imports.\n if (\n isUnknownTsExtensionError(error) ||\n isUnsupportedTypeStrippingError(error) ||\n isUnresolvedConfigImportError(error, configPathAliases(configPath))\n ) {\n return await this.loadViaEsbuild(configPath);\n }\n\n throw new ErrorWithCause(`Failed to load warlock.config.ts: ${error}`, { cause: error });\n }\n }\n\n /**\n * Fallback config loader for runtimes that cannot import the config as written.\n *\n * Bundles `warlock.config.ts` with its LOCAL import graph (relative imports,\n * extensionless TS imports, tsconfig `paths` aliases) through esbuild, keeping\n * every package external so `BaseConnector`, the container and other\n * registries keep the application's identity (see `bundleWarlockConfig`).\n * The bundle is written as a sibling `.mjs` — so its external imports resolve\n * from the project exactly as they would from the original config — imported\n * once, then removed whether it loaded or threw. An error thrown by the\n * user's config propagates unchanged.\n */\n private async loadViaEsbuild(configPath: string): Promise<WarlockConfig | undefined> {\n const code = await bundleWarlockConfig(configPath);\n\n // Unique sibling name so concurrent processes never clobber each other.\n const compiledPath = configPath.replace(\n /warlock\\.config\\.ts$/,\n `.warlock.config.${process.pid}.${Date.now()}.mjs`,\n );\n\n await writeFile(compiledPath, code, \"utf8\");\n\n try {\n const configModule = await import(pathToFileURL(compiledPath).href);\n return configModule.default;\n } catch (error) {\n throw nameOriginalConfig(error, compiledPath, configPath);\n } finally {\n await unlink(compiledPath).catch(() => {});\n }\n }\n\n /**\n * Get config value by key (dot notation supported)\n *\n * @example\n * config.get(\"server.port\") // Returns 3000\n * config.get(\"cli.commands\") // Returns array of commands\n *\n * @param key - Config key (supports dot notation), autocompletes for first level only\n * @returns The config value\n * @throws Error if config is not loaded\n */\n public get<Key extends keyof WarlockConfig>(\n key: Key,\n defaultValue?: WarlockConfig[Key],\n ): WarlockConfig[Key] {\n if (!this.config) {\n throw new Error(\"WarlockConfig not loaded. Call load() first or use lazyGet().\");\n }\n\n return get(this.config, key as string, defaultValue);\n }\n\n /**\n * Lazy get - loads config if not already loaded\n *\n * @example\n * const port = await config.lazyGet(\"server\");\n *\n * @param key - Config key (supports dot notation), autocompletes for first level only\n * @param defaultValue - Default value if config key is undefined\n * @returns The config value\n */\n async lazyGet<Key extends keyof WarlockConfig>(\n key: Key,\n defaultValue?: WarlockConfig[Key],\n ): Promise<WarlockConfig[Key]> {\n await this.load();\n return this.get(key, defaultValue);\n }\n\n /**\n * Check if config is loaded\n */\n public get isLoaded(): boolean {\n return this.config !== undefined;\n }\n\n /**\n * Get the entire config object\n *\n * @throws Error if config is not loaded\n */\n public getAll(): WarlockConfig {\n if (!this.config) {\n throw new Error(\"WarlockConfig not loaded. Call load() first or use lazyGet().\");\n }\n\n return this.config;\n }\n\n /**\n * Reload config (useful for HMR/development)\n */\n public async reload(): Promise<void> {\n this.config = undefined;\n this.loading = undefined;\n await this.load();\n }\n}\n\n/**\n * The tsconfig `paths` patterns of the project holding `configPath`.\n */\nfunction configPathAliases(configPath: string): string[] {\n try {\n return Object.keys(getTsconfig(path.dirname(configPath))?.config.compilerOptions?.paths ?? {});\n } catch {\n return [];\n }\n}\n\n/**\n * A loader error raised by the bundled config names the temporary `.mjs`\n * module. Rewrite it to name `warlock.config.ts`, keeping the original as the\n * cause. An error thrown by the user's own config is returned unchanged.\n */\nfunction nameOriginalConfig(error: unknown, compiledPath: string, configPath: string): unknown {\n const code = (error as { code?: string })?.code;\n\n if (typeof code !== \"string\" || !code.startsWith(\"ERR_\")) return error;\n\n const message = String((error as Error).message ?? error)\n .split(pathToFileURL(compiledPath).href)\n .join(pathToFileURL(configPath).href)\n .split(compiledPath)\n .join(configPath);\n\n const wrapped = new ErrorWithCause(`Failed to load warlock.config.ts: ${message}`, {\n cause: error,\n });\n\n (wrapped as Error & { code?: string }).code = code;\n\n return wrapped;\n}\n\n/**\n * Exported singleton instance\n *\n * @example\n * import { warlockConfig } from \"@warlock.js/core\";\n *\n * // Lazy load and get value\n * const port = await warlockConfig.lazyGet(\"server.port\");\n *\n * // Or load first, then get\n * await warlockConfig.load();\n * const commands = warlockConfig.get(\"cli.commands\");\n */\nexport const warlockConfigManager = new WarlockConfigManager();\n"],"mappings":";;;;;;;;;;;;;;;;AAeA,MAAM,iBAAiB;;;;;;;;;AAUvB,SAAgB,0BAA0B,OAAyB;CACjE,OACG,OAA6B,SAAS,gCACvC,kCAAkC,KAAK,OAAQ,OAAiB,OAAO,CAAC;AAE5E;;;;;;;;;;;;;;;AAgBA,SAAgB,8BACd,OACA,cAAiC,CAAC,GACzB;CACT,MAAM,OAAQ,OAA6B;CAE3C,IAAI,SAAS,8BAA8B,OAAO;CAClD,IAAI,SAAS,wBAAwB,OAAO;CAE5C,MAAM,UAAU,OAAQ,OAAiB,WAAW,EAAE;CACtD,MAAM,QAAQ,8DAA8D,KAAK,OAAO;CAExF,IAAI,CAAC,OAAO,OAAO;CAEnB,MAAM,GAAG,MAAM,YAAY,IAAI,WAAW,MAAM;CAEhD,IAAI,yBAAyB,KAAK,QAAQ,GAAG,OAAO;CAGpD,IAAI,SAAS,UAAU,OAAO;CAG9B,OAAO,YAAY,MAAM,YAAY,YAAY,SAAS,SAAS,CAAC;AACtE;;;;;;AAOA,SAAgB,gCAAgC,OAAyB;CACvE,MAAM,OAAQ,OAA6B;CAE3C,OACE,SAAS,uCACT,SAAS;AAEb;;;;;;AAOA,SAAS,YAAY,SAAiB,aAA8B;CAClE,MAAM,OAAO,QAAQ,QAAQ,GAAG;CAChC,MAAM,SAAS,SAAS,KAAK,UAAU,QAAQ,MAAM,GAAG,IAAI;CAE5D,IAAI,WAAW,IAAI,OAAO;CAE1B,OACE,WAAW,eAAe,OAAO,WAAW,GAAG,YAAY,EAAE,KAAK,YAAY,WAAW,MAAM;AAEnG;;;;;;;AAQA,IAAa,uBAAb,MAAkC;;;;;;CAgBhC,MAAa,OAA2C;EAEtD,IAAI,KAAK,QACP,OAAO,KAAK;EAId,IAAI,KAAK,SACP,OAAO,KAAK;EAId,KAAK,UAAU,KAAK,OAAO;EAC3B,KAAK,SAAS,MAAM,KAAK;EACzB,KAAK,UAAU;EAGf,KAAK,MAAM,WAAW,4BAA4B,KAAK,MAAM,GAC3D,QAAQ,KAAK,OAAO;EAGtB,OAAO,KAAK;CACd;;;;;;;CAQA,MAAc,SAA6C;EACzD,MAAM,aAAa,SAAS,mBAAmB;EAE/C,IAAI,CAAE,MAAM,gBAAgB,UAAU,GAAI;GAMxC,QAAQ,KACN,yHACF;GACA;EACF;EAEA,IAAI;GAEF,QAAO,MADoB,OAAO,cAAc,UAAU,CAAC,CAAC,MACzC,CAAC;EACtB,SAAS,OAAO;GAcd,IACE,0BAA0B,KAAK,KAC/B,gCAAgC,KAAK,KACrC,8BAA8B,OAAO,kBAAkB,UAAU,CAAC,GAElE,OAAO,MAAM,KAAK,eAAe,UAAU;GAG7C,MAAM,IAAI,eAAe,qCAAqC,SAAS,EAAE,OAAO,MAAM,CAAC;EACzF;CACF;;;;;;;;;;;;;CAcA,MAAc,eAAe,YAAwD;EACnF,MAAM,OAAO,MAAM,oBAAoB,UAAU;EAGjD,MAAM,eAAe,WAAW,QAC9B,wBACA,mBAAmB,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,KAC/C;EAEA,MAAM,UAAU,cAAc,MAAM,MAAM;EAE1C,IAAI;GAEF,QAAO,MADoB,OAAO,cAAc,YAAY,CAAC,CAAC,MAC3C,CAAC;EACtB,SAAS,OAAO;GACd,MAAM,mBAAmB,OAAO,cAAc,UAAU;EAC1D,UAAU;GACR,MAAM,OAAO,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC;EAC3C;CACF;;;;;;;;;;;;CAaA,AAAO,IACL,KACA,cACoB;EACpB,IAAI,CAAC,KAAK,QACR,MAAM,IAAI,MAAM,+DAA+D;EAGjF,OAAO,IAAI,KAAK,QAAQ,KAAe,YAAY;CACrD;;;;;;;;;;;CAYA,MAAM,QACJ,KACA,cAC6B;EAC7B,MAAM,KAAK,KAAK;EAChB,OAAO,KAAK,IAAI,KAAK,YAAY;CACnC;;;;CAKA,IAAW,WAAoB;EAC7B,OAAO,KAAK,WAAW;CACzB;;;;;;CAOA,AAAO,SAAwB;EAC7B,IAAI,CAAC,KAAK,QACR,MAAM,IAAI,MAAM,+DAA+D;EAGjF,OAAO,KAAK;CACd;;;;CAKA,MAAa,SAAwB;EACnC,KAAK,SAAS;EACd,KAAK,UAAU;EACf,MAAM,KAAK,KAAK;CAClB;AACF;;;;AAKA,SAAS,kBAAkB,YAA8B;CACvD,IAAI;EACF,OAAO,OAAO,KAAK,YAAY,KAAK,QAAQ,UAAU,CAAC,CAAC,EAAE,OAAO,iBAAiB,SAAS,CAAC,CAAC;CAC/F,QAAQ;EACN,OAAO,CAAC;CACV;AACF;;;;;;AAOA,SAAS,mBAAmB,OAAgB,cAAsB,YAA6B;CAC7F,MAAM,OAAQ,OAA6B;CAE3C,IAAI,OAAO,SAAS,YAAY,CAAC,KAAK,WAAW,MAAM,GAAG,OAAO;CAQjE,MAAM,UAAU,IAAI,eAAe,qCANnB,OAAQ,MAAgB,WAAW,KAAK,CAAC,CACtD,MAAM,cAAc,YAAY,CAAC,CAAC,IAAI,CAAC,CACvC,KAAK,cAAc,UAAU,CAAC,CAAC,IAAI,CAAC,CACpC,MAAM,YAAY,CAAC,CACnB,KAAK,UAEsE,KAAK,EACjF,OAAO,MACT,CAAC;CAED,AAAC,QAAsC,OAAO;CAE9C,OAAO;AACT;;;;;;;;;;;;;;AAeA,MAAa,uBAAuB,IAAI,qBAAqB"}
|
|
1
|
+
{"version":3,"file":"warlock-config.manager.mjs","names":[],"sources":["../../../../../../../../packages/core/src/warlock-config/warlock-config.manager.ts"],"sourcesContent":["import { fileExistsAsync } from \"@warlock.js/fs\";\nimport { get } from \"@mongez/reinforcements\";\nimport { getTsconfig } from \"get-tsconfig\";\nimport { unlink, writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"url\";\nimport { rootPath } from \"../utils\";\nimport { bundleWarlockConfig } from \"./bundle-config\";\nimport { type WarlockConfig } from \"./types\";\nimport { getDeprecatedConfigWarnings } from \"./warn-deprecated-config\";\n\n/**\n * `Error` with the ES2022 `cause` option, typed for packages still compiled\n * against an older lib (see `application.ts`).\n */\nconst ErrorWithCause = Error as new (message: string, options: { cause: unknown }) => Error;\n\n/**\n * True when `error` is Node's \"this runtime can't import a `.ts` file\" error.\n *\n * Node only executes TypeScript natively from v22.18 / v23.6 onward (earlier\n * 22.x needs `--experimental-strip-types`). On older runtimes a bare\n * `import(\"warlock.config.ts\")` throws `ERR_UNKNOWN_FILE_EXTENSION` — which is\n * the signal to fall back to transpiling the config ourselves.\n */\nexport function isUnknownTsExtensionError(error: unknown): boolean {\n return (\n (error as { code?: string })?.code === \"ERR_UNKNOWN_FILE_EXTENSION\" ||\n /Unknown file extension \"\\.tsx?\"/.test(String((error as Error)?.message))\n );\n}\n\n/**\n * True when `error` is Node failing to RESOLVE an import of the config's OWN\n * graph: an extensionless relative import (`./src/connectors/local`), a\n * directory import, or a tsconfig `paths` alias (`app/connectors`) — all of\n * which only a TypeScript toolchain resolves. Native type stripping\n * (Node ≥ 22.18) loads `warlock.config.ts` itself, then fails here.\n *\n * A package that is genuinely not installed is NOT a fallback case: the error\n * names a bare specifier that matches no `paths` pattern, and it is rethrown\n * as is. Neither is a missing module imported from inside `node_modules`.\n *\n * `pathAliases` are the tsconfig `paths` patterns (`app/*`). When the message\n * cannot be parsed the error is treated as a graph error, as before.\n */\nexport function isUnresolvedConfigImportError(\n error: unknown,\n pathAliases: readonly string[] = [],\n): boolean {\n const code = (error as { code?: string })?.code;\n\n if (code === \"ERR_UNSUPPORTED_DIR_IMPORT\") return true;\n if (code !== \"ERR_MODULE_NOT_FOUND\") return false;\n\n const message = String((error as Error)?.message ?? \"\");\n const match = /Cannot find (module|package) '([^']+)' imported from (.+)$/m.exec(message);\n\n if (!match) return true;\n\n const [, kind, specifier = \"\", importer = \"\"] = match;\n\n if (/[\\\\/]node_modules[\\\\/]/.test(importer)) return false;\n\n // An unresolved relative or absolute path: an extensionless TS import.\n if (kind === \"module\") return true;\n\n // A bare name: only a tsconfig alias is the config graph's own code.\n return pathAliases.some((pattern) => aliasCovers(pattern, specifier));\n}\n\n/**\n * True when `error` is native type stripping refusing TypeScript it cannot\n * strip (an `enum`, a `namespace`, a parameter property) or a `.ts` file under\n * `node_modules`. Both are raised while loading, before the graph runs.\n */\nexport function isUnsupportedTypeStrippingError(error: unknown): boolean {\n const code = (error as { code?: string })?.code;\n\n return (\n code === \"ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX\" ||\n code === \"ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING\"\n );\n}\n\n/**\n * True when a tsconfig `paths` pattern can produce `packageName` as the first\n * segment(s) of a specifier: `app/*` covers `app`, `@shared/*` covers\n * `@shared`, a catch-all `*` covers anything.\n */\nfunction aliasCovers(pattern: string, packageName: string): boolean {\n const star = pattern.indexOf(\"*\");\n const prefix = star === -1 ? pattern : pattern.slice(0, star);\n\n if (prefix === \"\") return true;\n\n return (\n prefix === packageName || prefix.startsWith(`${packageName}/`) || packageName.startsWith(prefix)\n );\n}\n\n/**\n * Warlock Config Manager\n *\n * Manages lazy loading of the pre-compiled warlock.config.js file\n * from the .warlock/cache directory.\n */\nexport class WarlockConfigManager {\n /**\n * Cached config instance\n */\n private config?: WarlockConfig;\n\n /**\n * Loading promise to prevent duplicate loads\n */\n private loading?: Promise<WarlockConfig | undefined>;\n\n /**\n * Load warlock.config.js (cached after first load)\n *\n * @returns The resolved Warlock configuration\n */\n public async load(): Promise<WarlockConfig | undefined> {\n // Already loaded\n if (this.config) {\n return this.config;\n }\n\n // Currently loading (prevent duplicate loads)\n if (this.loading) {\n return this.loading;\n }\n\n // Start loading\n this.loading = this.doLoad();\n this.config = await this.loading;\n this.loading = undefined;\n\n // Console, not the logger: this runs before any log channel exists.\n for (const warning of getDeprecatedConfigWarnings(this.config)) {\n console.warn(warning);\n }\n\n return this.config;\n }\n\n /**\n * Internal load implementation\n *\n * The ESM loader hook transpiles `warlock.config.ts` on import — no\n * separate compile-to-disk step is needed.\n */\n private async doLoad(): Promise<WarlockConfig | undefined> {\n const configPath = rootPath(\"warlock.config.ts\");\n\n if (!(await fileExistsAsync(configPath))) {\n // Written straight to the console, NOT through `@warlock.js/logger`.\n // This runs during CLI bootstrap, before `LoggerConnector.start()` has\n // configured a single channel, so a logger call here reaches nobody in\n // any application — the warning would be silently dropped exactly when\n // the user most needs it.\n console.warn(\n \"warlock.config.ts is missing — create it at the project root (see https://warlock.js.org/docs for the config reference)\",\n );\n return;\n }\n\n try {\n const configModule = await import(pathToFileURL(configPath).href);\n return configModule.default;\n } catch (error) {\n // `dev` registers a TS loader hook, and Node ≥ 22.18 / 23.6 strips types\n // natively — in both cases the direct import above works for a\n // self-contained config. But `build` / `start` register no hook, so on an\n // older Node the import throws ERR_UNKNOWN_FILE_EXTENSION; native\n // stripping cannot resolve extensionless or tsconfig-aliased local\n // imports, nor strip an `enum` or a parameter property. Bundle the\n // config's local graph with esbuild ourselves so config loading is\n // Node-version-independent.\n //\n // These errors are raised while resolving and loading the STATIC graph,\n // before any of it runs. An unresolved import reached later — a dynamic\n // `import()` while the config runs — is indistinguishable by code, so the\n // fallback is limited to the config's own relative and aliased imports.\n if (\n isUnknownTsExtensionError(error) ||\n isUnsupportedTypeStrippingError(error) ||\n isUnresolvedConfigImportError(error, configPathAliases(configPath))\n ) {\n return await this.loadViaEsbuild(configPath);\n }\n\n throw new ErrorWithCause(`Failed to load warlock.config.ts: ${error}`, { cause: error });\n }\n }\n\n /**\n * Fallback config loader for runtimes that cannot import the config as written.\n *\n * Bundles `warlock.config.ts` with its LOCAL import graph (relative imports,\n * extensionless TS imports, tsconfig `paths` aliases) through esbuild, keeping\n * every package external so `BaseConnector`, the container and other\n * registries keep the application's identity (see `bundleWarlockConfig`).\n * The bundle is written as a sibling `.mjs` — so its external imports resolve\n * from the project exactly as they would from the original config — imported\n * once, then removed whether it loaded or threw. An error thrown by the\n * user's config propagates unchanged.\n */\n private async loadViaEsbuild(configPath: string): Promise<WarlockConfig | undefined> {\n const code = await bundleWarlockConfig(configPath);\n\n // Unique sibling name so concurrent processes never clobber each other.\n const compiledPath = configPath.replace(\n /warlock\\.config\\.ts$/,\n `.warlock.config.${process.pid}.${Date.now()}.mjs`,\n );\n\n await writeFile(compiledPath, code, \"utf8\");\n\n try {\n const configModule = await import(pathToFileURL(compiledPath).href);\n return configModule.default;\n } catch (error) {\n throw nameOriginalConfig(error, compiledPath, configPath);\n } finally {\n await unlink(compiledPath).catch(() => {});\n }\n }\n\n /**\n * Get config value by key (dot notation supported)\n *\n * @example\n * config.get(\"server.port\") // Returns 3000\n * config.get(\"cli.commands\") // Returns array of commands\n *\n * @param key - Config key (supports dot notation), autocompletes for first level only\n * @returns The config value\n * @throws Error if config is not loaded\n */\n public get<Key extends keyof WarlockConfig>(\n key: Key,\n defaultValue?: WarlockConfig[Key],\n ): WarlockConfig[Key] {\n if (!this.config) {\n throw new Error(\"WarlockConfig not loaded. Call load() first or use lazyGet().\");\n }\n\n return get(this.config, key as string, defaultValue);\n }\n\n /**\n * Lazy get - loads config if not already loaded\n *\n * @example\n * const port = await config.lazyGet(\"server\");\n *\n * @param key - Config key (supports dot notation), autocompletes for first level only\n * @param defaultValue - Default value if config key is undefined\n * @returns The config value\n */\n async lazyGet<Key extends keyof WarlockConfig>(\n key: Key,\n defaultValue?: WarlockConfig[Key],\n ): Promise<WarlockConfig[Key]> {\n await this.load();\n return this.get(key, defaultValue);\n }\n\n /**\n * Check if config is loaded\n */\n public get isLoaded(): boolean {\n return this.config !== undefined;\n }\n\n /**\n * Get the entire config object\n *\n * @throws Error if config is not loaded\n */\n public getAll(): WarlockConfig {\n if (!this.config) {\n throw new Error(\"WarlockConfig not loaded. Call load() first or use lazyGet().\");\n }\n\n return this.config;\n }\n\n /**\n * Reload config (useful for HMR/development)\n */\n public async reload(): Promise<void> {\n this.config = undefined;\n this.loading = undefined;\n await this.load();\n }\n}\n\n/**\n * The tsconfig `paths` patterns of the project holding `configPath`.\n */\nfunction configPathAliases(configPath: string): string[] {\n try {\n return Object.keys(getTsconfig(path.dirname(configPath))?.config.compilerOptions?.paths ?? {});\n } catch {\n return [];\n }\n}\n\n/**\n * A loader error raised by the bundled config names the temporary `.mjs`\n * module. Rewrite it to name `warlock.config.ts`, keeping the original as the\n * cause. An error thrown by the user's own config is returned unchanged.\n */\nfunction nameOriginalConfig(error: unknown, compiledPath: string, configPath: string): unknown {\n const code = (error as { code?: string })?.code;\n\n if (typeof code !== \"string\" || !code.startsWith(\"ERR_\")) return error;\n\n const message = String((error as Error).message ?? error)\n .split(pathToFileURL(compiledPath).href)\n .join(pathToFileURL(configPath).href)\n .split(compiledPath)\n .join(configPath);\n\n const wrapped = new ErrorWithCause(`Failed to load warlock.config.ts: ${message}`, {\n cause: error,\n });\n\n (wrapped as Error & { code?: string }).code = code;\n\n return wrapped;\n}\n\n/**\n * Exported singleton instance\n *\n * @example\n * import { warlockConfig } from \"@warlock.js/core\";\n *\n * // Lazy load and get value\n * const port = await warlockConfig.lazyGet(\"server.port\");\n *\n * // Or load first, then get\n * await warlockConfig.load();\n * const commands = warlockConfig.get(\"cli.commands\");\n */\nexport const warlockConfigManager = new WarlockConfigManager();\n"],"mappings":"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"}
|
package/llms-full.txt
CHANGED
|
@@ -1877,6 +1877,13 @@ await warmupProductCache();
|
|
|
1877
1877
|
- The `write-seeder` topic — populating the generated `seeds/` folder.
|
|
1878
1878
|
- The `use-localization` topic — populating the generated `utils/locales.ts`.
|
|
1879
1879
|
|
|
1880
|
+
## Verify generated imports
|
|
1881
|
+
|
|
1882
|
+
Generated web starter files match the scaffold’s Prettier configuration, using
|
|
1883
|
+
`@ianvs/prettier-plugin-sort-imports` with Babel independently of TypeScript 7.
|
|
1884
|
+
After editing generated code, run `npm run format` and `npm run lint:check`.
|
|
1885
|
+
Formatting retains unused imports; the linter reports them.
|
|
1886
|
+
|
|
1880
1887
|
|
|
1881
1888
|
## define-resource `@warlock.js/core/define-resource/SKILL.md`
|
|
1882
1889
|
|
|
@@ -5022,11 +5029,12 @@ diagnostics keep their specific message. Command failure messages contain a
|
|
|
5022
5029
|
bounded status/output summary, without the batch command line. Shutdown gives
|
|
5023
5030
|
workers up to 500 ms to exit and reap owned CLI children before forcing termination.
|
|
5024
5031
|
|
|
5025
|
-
Source TypeScript health workers use the framework's JavaScript
|
|
5026
|
-
Node.js 22.15
|
|
5027
|
-
|
|
5028
|
-
|
|
5029
|
-
|
|
5032
|
+
Source TypeScript health workers use the framework's JavaScript bootstrap to
|
|
5033
|
+
register tsx inside each worker on Node.js 22.15 and Node.js 24. Registration
|
|
5034
|
+
remains active for later TypeScript imports and lets native dependencies load
|
|
5035
|
+
Node builtins through `createRequire`. Published JavaScript workers start
|
|
5036
|
+
directly. Regression tests cover both paths without inherited loader hooks,
|
|
5037
|
+
including configured declaration roots, source updates and deleted declarations.
|
|
5030
5038
|
|
|
5031
5039
|
|
|
5032
5040
|
## send-mail `@warlock.js/core/send-mail/SKILL.md`
|
|
@@ -7945,6 +7953,12 @@ instead of a plain `ProviderError`; update exhaustive `AIErrorCode` switches and
|
|
|
7945
7953
|
custom `fallbackModel({ retryOn })` lists. Bedrock calls with a `cacheControl`
|
|
7946
7954
|
breakpoint now also cache the system prompt and (Claude) tool definitions.
|
|
7947
7955
|
|
|
7956
|
+
## 5.31 to 5.32 notifications with the herald queue
|
|
7957
|
+
|
|
7958
|
+
Apps that call `.queue()` with `heraldQueue()` must now install `@warlock.js/herald` themselves (it became an
|
|
7959
|
+
optional peer of `@warlock.js/notifications`; 5.31.0 bundled a private copy of it). Install it at the same version
|
|
7960
|
+
as the rest of the family.
|
|
7961
|
+
|
|
7948
7962
|
## Verify the application paths that changed
|
|
7949
7963
|
|
|
7950
7964
|
Run the app's type check, its logger channel tests, any tools with ordered side
|
|
@@ -7975,6 +7989,41 @@ It also writes `.warlock/dev-server.json` (the server's address, for
|
|
|
7975
7989
|
`warlock trace` and `warlock mcp`); `.warlock/` is already git-ignored by the
|
|
7976
7990
|
starter. See the `warlock-agents-md` topic.
|
|
7977
7991
|
|
|
7992
|
+
## 5.31 to 5.32 TypeScript 7
|
|
7993
|
+
|
|
7994
|
+
With the default Oxlint/Oxfmt toolchain, pin the app's development dependency to
|
|
7995
|
+
`typescript@7.0.2`. The regular `tsc`
|
|
7996
|
+
command is now the native Go compiler; no native-preview package is needed.
|
|
7997
|
+
Remove `baseUrl` from every app tsconfig and resolve each `paths` target relative
|
|
7998
|
+
to the config. For example, `baseUrl: "src"` with `"app/*": ["app/*"]` becomes
|
|
7999
|
+
`"app/*": ["./src/app/*"]`. Replace `moduleResolution: "node"` / `"node10"` with
|
|
8000
|
+
`"bundler"` and use `module: "ESNext"` for Warlock's build pipeline. Explicitly
|
|
8001
|
+
include Node ambient types with `"types": ["node"]`; set `rootDir` if sources
|
|
8002
|
+
sit outside the config folder. Keep strict checking enabled.
|
|
8003
|
+
|
|
8004
|
+
```bash
|
|
8005
|
+
npm install --save-dev --save-exact typescript@7.0.2
|
|
8006
|
+
npx tsc --noEmit
|
|
8007
|
+
npx warlock typecheck
|
|
8008
|
+
npx warlock typecheck --changed
|
|
8009
|
+
```
|
|
8010
|
+
|
|
8011
|
+
The CLI preserves incremental state and changed-file filtering. Development
|
|
8012
|
+
health checks keep one native compiler session and update its snapshots. Syntax
|
|
8013
|
+
analysis uses OXC. `warlock upgrade` still parses/transforms with ts-morph's own
|
|
8014
|
+
bundled TypeScript, without using it as the app's compiler. New scaffolds default
|
|
8015
|
+
to Oxlint/Oxfmt (`--lint=oxc`). Explicit `--lint=eslint` pins the app's compiler to
|
|
8016
|
+
TypeScript **6.0.3** because typescript-eslint requires the old JavaScript API
|
|
8017
|
+
and supports `>=4.8.4 <6.1.0`. Keep ESLint apps on 6.0.3 until switching tools:
|
|
8018
|
+
|
|
8019
|
+
```bash
|
|
8020
|
+
npm install --save-dev --save-exact typescript@6.0.3
|
|
8021
|
+
npx tsc --noEmit
|
|
8022
|
+
```
|
|
8023
|
+
|
|
8024
|
+
The same tsconfig cleanups work with TS6. ESLint mode prints a compatibility
|
|
8025
|
+
notice and is planned for deprecation in 5.33 and removal in 5.34.
|
|
8026
|
+
|
|
7978
8027
|
|
|
7979
8028
|
## upload-file `@warlock.js/core/upload-file/SKILL.md`
|
|
7980
8029
|
|
|
@@ -10794,6 +10843,7 @@ const types = runTypecheck({ files: ["src/app/posts/services/publish.service.ts"
|
|
|
10794
10843
|
|
|
10795
10844
|
## See also
|
|
10796
10845
|
|
|
10846
|
+
- `report-framework-issue.md` — confirm a framework bug or missing capability, collect `warlock issue` output, and get the user's approval before filing.
|
|
10797
10847
|
- The `warlock-doctor` topic — boot-time diagnostics; `doctor --json` uses the same codes and fields.
|
|
10798
10848
|
- The `warlock-inspect` topic — the app's routes, models and config as JSON.
|
|
10799
10849
|
- The `warlock-conventions` topic — the rules behind `WL9001`–`WL9012`, with the fix for each.
|
package/package.json
CHANGED
|
@@ -25,17 +25,17 @@
|
|
|
25
25
|
"@mongez/slug": "^1.0.7",
|
|
26
26
|
"@mongez/supportive-is": "^3.0.0",
|
|
27
27
|
"@mongez/time-wizard": "^1.0.6",
|
|
28
|
-
"@warlock.js/cache": "5.
|
|
29
|
-
"@warlock.js/cascade": "5.
|
|
30
|
-
"@warlock.js/context": "5.
|
|
31
|
-
"@warlock.js/fs": "5.
|
|
32
|
-
"@warlock.js/logger": "5.
|
|
33
|
-
"@warlock.js/seal": "5.
|
|
28
|
+
"@warlock.js/cache": "5.32.0",
|
|
29
|
+
"@warlock.js/cascade": "5.32.0",
|
|
30
|
+
"@warlock.js/context": "5.32.0",
|
|
31
|
+
"@warlock.js/fs": "5.32.0",
|
|
32
|
+
"@warlock.js/logger": "5.32.0",
|
|
33
|
+
"@warlock.js/seal": "5.32.0",
|
|
34
34
|
"bcryptjs": "^3.0.3",
|
|
35
35
|
"chokidar": "^5.0.0",
|
|
36
36
|
"dayjs": "^1.11.19",
|
|
37
37
|
"es-module-lexer": "^2.0.0",
|
|
38
|
-
"esbuild": "^0.
|
|
38
|
+
"esbuild": "^0.28.2",
|
|
39
39
|
"eslint": "^9.18.0",
|
|
40
40
|
"fast-glob": "^3.3.3",
|
|
41
41
|
"fastify": "^5.12.5",
|
|
@@ -43,9 +43,11 @@
|
|
|
43
43
|
"get-tsconfig": "^5.0.0-beta.5",
|
|
44
44
|
"glob": "^13.0.6",
|
|
45
45
|
"import-meta-resolve": "^4.2.0",
|
|
46
|
+
"jsonc-parser": "3.3.1",
|
|
46
47
|
"mime": "^4.1.0",
|
|
48
|
+
"oxc-parser": "0.154.0",
|
|
47
49
|
"pluralize-esm": "^9.0.5",
|
|
48
|
-
"typescript": "
|
|
50
|
+
"typescript": "7.0.2"
|
|
49
51
|
},
|
|
50
52
|
"peerDependencies": {
|
|
51
53
|
"@aws-sdk/client-s3": "^3.955.0",
|
|
@@ -53,12 +55,12 @@
|
|
|
53
55
|
"@aws-sdk/lib-storage": "^3.955.0",
|
|
54
56
|
"@aws-sdk/s3-request-presigner": "^3.955.0",
|
|
55
57
|
"@react-email/render": "^2.0.5",
|
|
56
|
-
"@warlock.js/access": "5.
|
|
57
|
-
"@warlock.js/ai": "5.
|
|
58
|
-
"@warlock.js/ai-tools": "5.
|
|
59
|
-
"@warlock.js/devtools": "5.
|
|
60
|
-
"@warlock.js/herald": "5.
|
|
61
|
-
"@warlock.js/notifications": "5.
|
|
58
|
+
"@warlock.js/access": "5.32.0",
|
|
59
|
+
"@warlock.js/ai": "5.32.0",
|
|
60
|
+
"@warlock.js/ai-tools": "5.32.0",
|
|
61
|
+
"@warlock.js/devtools": "5.32.0",
|
|
62
|
+
"@warlock.js/herald": "5.32.0",
|
|
63
|
+
"@warlock.js/notifications": "5.32.0",
|
|
62
64
|
"nodemailer": "^8.0.5",
|
|
63
65
|
"react": "^19.2.3",
|
|
64
66
|
"react-dom": "^19.2.3",
|
|
@@ -140,7 +142,7 @@
|
|
|
140
142
|
"engines": {
|
|
141
143
|
"node": ">=22.15"
|
|
142
144
|
},
|
|
143
|
-
"version": "5.
|
|
145
|
+
"version": "5.32.0",
|
|
144
146
|
"type": "module",
|
|
145
147
|
"main": "./esm/index.mjs",
|
|
146
148
|
"module": "./esm/index.mjs",
|
|
@@ -188,3 +188,10 @@ await warmupProductCache();
|
|
|
188
188
|
- The `validate-input` topic — wiring `schema/*.schema.ts` to controllers.
|
|
189
189
|
- The `write-seeder` topic — populating the generated `seeds/` folder.
|
|
190
190
|
- The `use-localization` topic — populating the generated `utils/locales.ts`.
|
|
191
|
+
|
|
192
|
+
## Verify generated imports
|
|
193
|
+
|
|
194
|
+
Generated web starter files match the scaffold’s Prettier configuration, using
|
|
195
|
+
`@ianvs/prettier-plugin-sort-imports` with Babel independently of TypeScript 7.
|
|
196
|
+
After editing generated code, run `npm run format` and `npm run lint:check`.
|
|
197
|
+
Formatting retains unused imports; the linter reports them.
|
package/skills/index.md
CHANGED
|
@@ -14,6 +14,8 @@ Core is the application runtime: it boots the app, auto-loads each module's spec
|
|
|
14
14
|
4. Return via `response.*` (`send-response.md`) and shape output with a resource (`define-resource.md`); declare `responseSchema` for typed clients and docs (`create-controller.md`, `generate-openapi.md`).
|
|
15
15
|
5. Configure and run (`configure-app.md`, `run-app.md`); check setup with `warlock-doctor.md`, read the app with `warlock-inspect.md` (or serve it to an agent with `warlock-mcp.md`), verify a change with `warlock-check.md`, and a request's runtime behaviour with `warlock-trace.md`.
|
|
16
16
|
|
|
17
|
+
When the framework is wrong or missing a capability, follow `report-framework-issue.md` to prepare a public report and ask the user before filing.
|
|
18
|
+
|
|
17
19
|
## Topics by area
|
|
18
20
|
|
|
19
21
|
- **Foundations:** warlock-conventions, create-module, make-endpoint, configure-app, use-app-context, resolve-path, build-url, update-packages, lower-stage3-decorators
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# Report a Warlock.js framework issue
|
|
2
|
+
|
|
3
|
+
Use this topic when behavior contradicts the installed version's docs or skills,
|
|
4
|
+
a crash originates inside `@warlock.js/*`, or a needed framework capability is
|
|
5
|
+
missing. Framework reports belong at <https://github.com/warlockjs/framework>.
|
|
6
|
+
|
|
7
|
+
## Confirm and search first
|
|
8
|
+
|
|
9
|
+
1. Reduce the problem to a minimal reproduction in a clean, generic app. Isolate
|
|
10
|
+
application logic, third-party packages and configuration mistakes; a stack
|
|
11
|
+
frame in the framework alone does not prove a framework bug.
|
|
12
|
+
2. Read the **installed version's** package `CHANGELOG.md` and skills. Confirm
|
|
13
|
+
that the documented API exists in that version and check whether a later
|
|
14
|
+
release already addresses it. For a feature, describe the missing capability
|
|
15
|
+
and why the documented APIs or an app-level workaround are insufficient.
|
|
16
|
+
3. Run `warlock doctor --json` (see `warlock-doctor.md`). Fix app/environment
|
|
17
|
+
findings first. If boot fails, retain only the sanitized failure; `warlock
|
|
18
|
+
issue` itself does not boot the app.
|
|
19
|
+
4. Search existing reports, including closed issues, using distinctive public
|
|
20
|
+
terms. If a matching issue exists, show its link and help draft a useful
|
|
21
|
+
follow-up instead of opening a duplicate. Ask before posting that follow-up.
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
gh issue list -R warlockjs/framework --state all --search "public error or capability"
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Without GitHub CLI, use
|
|
28
|
+
<https://github.com/warlockjs/framework/issues?q=is%3Aissue> and enter those terms.
|
|
29
|
+
|
|
30
|
+
## Collect and protect
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
warlock issue --type bug --title "Public description of the failure"
|
|
34
|
+
warlock issue --type feature --title "Public description of the capability" --json
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Collect affected package names and **installed versions**, Node and package
|
|
38
|
+
manager versions, OS/architecture, TypeScript version, the reviewed `warlock
|
|
39
|
+
issue` environment output, a minimal reproduction with exact steps, expected
|
|
40
|
+
versus actual behavior, and relevant sanitized logs / `warlock doctor --json`
|
|
41
|
+
output. If a tool cannot run or there are no relevant logs, explain why.
|
|
42
|
+
|
|
43
|
+
**Never paste secrets, tokens, `.env` contents, customer data, proprietary code or
|
|
44
|
+
private app names** into titles, bodies, logs, screenshots, repro repositories,
|
|
45
|
+
search queries or URLs. Replace the original app with a minimal generic repro.
|
|
46
|
+
Review even generated environment output and stack traces; remove local paths,
|
|
47
|
+
hostnames and identifying details. The command reads installed package metadata
|
|
48
|
+
and a static config summary; it never reads `.env` or executes the app/config.
|
|
49
|
+
Do not attach the app's full config or diagnostic report without sanitizing it.
|
|
50
|
+
|
|
51
|
+
## Draft and get consent
|
|
52
|
+
|
|
53
|
+
Choose one template below, replace every prompt with concrete evidence, and
|
|
54
|
+
write the sanitized body to a local UTF-8 file such as `framework-issue.md`.
|
|
55
|
+
**Always show the complete drafted title and body to the user and explicitly ask
|
|
56
|
+
before filing.** Generating a draft or URL is not consent to publish. If the user
|
|
57
|
+
requests edits, show the revised draft and obtain approval for that version.
|
|
58
|
+
|
|
59
|
+
### Bug body
|
|
60
|
+
|
|
61
|
+
```markdown
|
|
62
|
+
### Summary
|
|
63
|
+
|
|
64
|
+
Public description of the framework failure and affected packages.
|
|
65
|
+
|
|
66
|
+
### Environment / warlock issue output
|
|
67
|
+
|
|
68
|
+
Reviewed environment output: installed @warlock.js package versions, Node,
|
|
69
|
+
package manager + version, OS/arch, TypeScript, static config summary.
|
|
70
|
+
|
|
71
|
+
### Minimal reproduction
|
|
72
|
+
|
|
73
|
+
Public minimal code or repro link, setup commands and exact steps.
|
|
74
|
+
|
|
75
|
+
### Expected behavior
|
|
76
|
+
|
|
77
|
+
What should happen, with the installed version's docs/skills reference.
|
|
78
|
+
|
|
79
|
+
### Actual / current behavior
|
|
80
|
+
|
|
81
|
+
What happens instead, including the error and impact.
|
|
82
|
+
|
|
83
|
+
### Sanitized logs / doctor output
|
|
84
|
+
|
|
85
|
+
Relevant logs and warlock doctor --json, or why unavailable / not applicable.
|
|
86
|
+
|
|
87
|
+
### Checks
|
|
88
|
+
|
|
89
|
+
- [ ] Searched existing issues and checked installed-version CHANGELOG and skills.
|
|
90
|
+
- [ ] Removed secrets, tokens, .env, customer data, proprietary code and private app names.
|
|
91
|
+
- [ ] User reviewed this complete draft and approved filing.
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Feature request body
|
|
95
|
+
|
|
96
|
+
```markdown
|
|
97
|
+
### Problem / use case
|
|
98
|
+
|
|
99
|
+
Public description of the missing framework capability and affected packages.
|
|
100
|
+
|
|
101
|
+
### Environment / warlock issue output
|
|
102
|
+
|
|
103
|
+
Reviewed environment output: installed @warlock.js package versions, Node,
|
|
104
|
+
package manager + version, OS/arch, TypeScript, static config summary.
|
|
105
|
+
|
|
106
|
+
### Minimal reproduction
|
|
107
|
+
|
|
108
|
+
Minimal public example of the capability that cannot currently be expressed.
|
|
109
|
+
|
|
110
|
+
### Proposed behavior
|
|
111
|
+
|
|
112
|
+
Desired API/behavior, with an example and why it belongs in the framework.
|
|
113
|
+
|
|
114
|
+
### Actual / current behavior
|
|
115
|
+
|
|
116
|
+
Current limitation and relevant installed-version docs/skills.
|
|
117
|
+
|
|
118
|
+
### Alternatives considered
|
|
119
|
+
|
|
120
|
+
Existing APIs, app-level workarounds and their limitations.
|
|
121
|
+
|
|
122
|
+
### Sanitized logs / doctor output
|
|
123
|
+
|
|
124
|
+
Relevant logs and warlock doctor --json, or why unavailable / not applicable.
|
|
125
|
+
|
|
126
|
+
### Checks
|
|
127
|
+
|
|
128
|
+
- [ ] Searched existing issues and checked installed-version CHANGELOG and skills.
|
|
129
|
+
- [ ] Removed secrets, tokens, .env, customer data, proprietary code and private app names.
|
|
130
|
+
- [ ] User reviewed this complete draft and approved filing.
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Only check a box after completing that step, including obtaining consent.
|
|
134
|
+
|
|
135
|
+
## File the approved draft
|
|
136
|
+
|
|
137
|
+
Check `gh --version` and `gh auth status --hostname github.com`. If GitHub CLI is
|
|
138
|
+
available and authenticated, **after approval** run:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
gh issue create -R warlockjs/framework --title "Approved public title" --body-file framework-issue.md
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Return the created issue's link. If GitHub CLI is unavailable or unauthenticated,
|
|
145
|
+
give the user the pre-filled new-issue URL printed by `warlock issue` together
|
|
146
|
+
with the approved body. The URL selects `bug.yml` or `feature.yml` and prefills
|
|
147
|
+
the environment field; the user must complete the remaining form fields. URLs
|
|
148
|
+
are capped at 7,500 characters and may include a truncation note: restore the
|
|
149
|
+
remaining reviewed output manually. Never claim the issue was filed from merely
|
|
150
|
+
printing or opening a URL. `warlock issue` never sends anything itself.
|
|
151
|
+
|
|
152
|
+
GitHub CLI flags: [list](https://cli.github.com/manual/gh_issue_list),
|
|
153
|
+
[create](https://cli.github.com/manual/gh_issue_create),
|
|
154
|
+
[authentication](https://cli.github.com/manual/gh_auth_status).
|
package/skills/run-app/SKILL.md
CHANGED
|
@@ -599,8 +599,9 @@ diagnostics keep their specific message. Command failure messages contain a
|
|
|
599
599
|
bounded status/output summary, without the batch command line. Shutdown gives
|
|
600
600
|
workers up to 500 ms to exit and reap owned CLI children before forcing termination.
|
|
601
601
|
|
|
602
|
-
Source TypeScript health workers use the framework's JavaScript
|
|
603
|
-
Node.js 22.15
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
602
|
+
Source TypeScript health workers use the framework's JavaScript bootstrap to
|
|
603
|
+
register tsx inside each worker on Node.js 22.15 and Node.js 24. Registration
|
|
604
|
+
remains active for later TypeScript imports and lets native dependencies load
|
|
605
|
+
Node builtins through `createRequire`. Published JavaScript workers start
|
|
606
|
+
directly. Regression tests cover both paths without inherited loader hooks,
|
|
607
|
+
including configured declaration roots, source updates and deleted declarations.
|
|
@@ -382,6 +382,12 @@ instead of a plain `ProviderError`; update exhaustive `AIErrorCode` switches and
|
|
|
382
382
|
custom `fallbackModel({ retryOn })` lists. Bedrock calls with a `cacheControl`
|
|
383
383
|
breakpoint now also cache the system prompt and (Claude) tool definitions.
|
|
384
384
|
|
|
385
|
+
## 5.31 to 5.32 notifications with the herald queue
|
|
386
|
+
|
|
387
|
+
Apps that call `.queue()` with `heraldQueue()` must now install `@warlock.js/herald` themselves (it became an
|
|
388
|
+
optional peer of `@warlock.js/notifications`; 5.31.0 bundled a private copy of it). Install it at the same version
|
|
389
|
+
as the rest of the family.
|
|
390
|
+
|
|
385
391
|
## Verify the application paths that changed
|
|
386
392
|
|
|
387
393
|
Run the app's type check, its logger channel tests, any tools with ordered side
|
|
@@ -411,3 +417,38 @@ export default defineConfig({
|
|
|
411
417
|
It also writes `.warlock/dev-server.json` (the server's address, for
|
|
412
418
|
`warlock trace` and `warlock mcp`); `.warlock/` is already git-ignored by the
|
|
413
419
|
starter. See the `warlock-agents-md` topic.
|
|
420
|
+
|
|
421
|
+
## 5.31 to 5.32 TypeScript 7
|
|
422
|
+
|
|
423
|
+
With the default Oxlint/Oxfmt toolchain, pin the app's development dependency to
|
|
424
|
+
`typescript@7.0.2`. The regular `tsc`
|
|
425
|
+
command is now the native Go compiler; no native-preview package is needed.
|
|
426
|
+
Remove `baseUrl` from every app tsconfig and resolve each `paths` target relative
|
|
427
|
+
to the config. For example, `baseUrl: "src"` with `"app/*": ["app/*"]` becomes
|
|
428
|
+
`"app/*": ["./src/app/*"]`. Replace `moduleResolution: "node"` / `"node10"` with
|
|
429
|
+
`"bundler"` and use `module: "ESNext"` for Warlock's build pipeline. Explicitly
|
|
430
|
+
include Node ambient types with `"types": ["node"]`; set `rootDir` if sources
|
|
431
|
+
sit outside the config folder. Keep strict checking enabled.
|
|
432
|
+
|
|
433
|
+
```bash
|
|
434
|
+
npm install --save-dev --save-exact typescript@7.0.2
|
|
435
|
+
npx tsc --noEmit
|
|
436
|
+
npx warlock typecheck
|
|
437
|
+
npx warlock typecheck --changed
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
The CLI preserves incremental state and changed-file filtering. Development
|
|
441
|
+
health checks keep one native compiler session and update its snapshots. Syntax
|
|
442
|
+
analysis uses OXC. `warlock upgrade` still parses/transforms with ts-morph's own
|
|
443
|
+
bundled TypeScript, without using it as the app's compiler. New scaffolds default
|
|
444
|
+
to Oxlint/Oxfmt (`--lint=oxc`). Explicit `--lint=eslint` pins the app's compiler to
|
|
445
|
+
TypeScript **6.0.3** because typescript-eslint requires the old JavaScript API
|
|
446
|
+
and supports `>=4.8.4 <6.1.0`. Keep ESLint apps on 6.0.3 until switching tools:
|
|
447
|
+
|
|
448
|
+
```bash
|
|
449
|
+
npm install --save-dev --save-exact typescript@6.0.3
|
|
450
|
+
npx tsc --noEmit
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
The same tsconfig cleanups work with TS6. ESLint mode prints a compatibility
|
|
454
|
+
notice and is planned for deprecation in 5.33 and removal in 5.34.
|
|
@@ -127,6 +127,7 @@ const types = runTypecheck({ files: ["src/app/posts/services/publish.service.ts"
|
|
|
127
127
|
|
|
128
128
|
## See also
|
|
129
129
|
|
|
130
|
+
- `report-framework-issue.md` — confirm a framework bug or missing capability, collect `warlock issue` output, and get the user's approval before filing.
|
|
130
131
|
- The `warlock-doctor` topic — boot-time diagnostics; `doctor --json` uses the same codes and fields.
|
|
131
132
|
- The `warlock-inspect` topic — the app's routes, models and config as JSON.
|
|
132
133
|
- The `warlock-conventions` topic — the rules behind `WL9001`–`WL9012`, with the fix for each.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { GitResult, GitRunner, listChangedFiles, runGit } from "./changed-files.mjs";
|
|
2
|
-
import { CHECK_EXIT_CODES, CHECK_STEPS, CheckExitCode, CheckReport, CheckStep, CheckStepName, CheckStepStatus, checkExitCode } from "./check-report.types.mjs";
|
|
3
|
-
import { checkFileConventions, checkTsconfigConventions, isAutoLoadedFile, runConventions } from "./conventions-step.mjs";
|
|
4
|
-
import { MIN_NODE_VERSION, checkNodeVersion } from "./environment-step.mjs";
|
|
5
|
-
import { LintOutcome, runLint } from "./lint-step.mjs";
|
|
6
|
-
import { VitestRun, VitestRunner, findVitest, parseVitestReport, runVitest } from "./tests-step.mjs";
|
|
7
|
-
import { CheckOptions, TypecheckRunner, runCheck } from "./run-check.mjs";
|
|
8
|
-
import { RunTestsOptions, TestRunReport, runTests, testRunArguments } from "./run-tests.mjs";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_TYPECHECK_BUILD_INFO, TypecheckOptions, TypecheckResult, diagnosticToProblem, directImporters, runTypecheck } from "./run-typecheck.mjs";
|