@warlock.js/core 5.30.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 +165 -36
- package/README.md +28 -23
- package/bin/source-load-hook.mjs +63 -0
- package/bin/warlock.js +102 -42
- 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/add.command.mjs +4 -2
- package/esm/cli/commands/add.command.mjs.map +1 -1
- package/esm/cli/commands/agents-md/agents-md-command.action.mjs +70 -0
- package/esm/cli/commands/agents-md/agents-md-command.action.mjs.map +1 -0
- package/esm/cli/commands/agents-md.command.mjs +38 -0
- package/esm/cli/commands/agents-md.command.mjs.map +1 -0
- package/esm/cli/commands/board/board-command.action.mjs +279 -0
- package/esm/cli/commands/board/board-command.action.mjs.map +1 -0
- package/esm/cli/commands/board.command.mjs +78 -0
- package/esm/cli/commands/board.command.mjs.map +1 -0
- package/esm/cli/commands/build.command.mjs +6 -1
- package/esm/cli/commands/build.command.mjs.map +1 -1
- package/esm/cli/commands/check/check-command.action.mjs +57 -0
- package/esm/cli/commands/check/check-command.action.mjs.map +1 -0
- package/esm/cli/commands/check/child-typecheck.mjs +66 -0
- package/esm/cli/commands/check/child-typecheck.mjs.map +1 -0
- package/esm/cli/commands/check/format-problems.mjs +43 -0
- package/esm/cli/commands/check/format-problems.mjs.map +1 -0
- package/esm/cli/commands/check/typecheck-command.action.mjs +61 -0
- package/esm/cli/commands/check/typecheck-command.action.mjs.map +1 -0
- package/esm/cli/commands/check.command.mjs +50 -0
- package/esm/cli/commands/check.command.mjs.map +1 -0
- package/esm/cli/commands/dev-server.command.mjs +12 -3
- package/esm/cli/commands/dev-server.command.mjs.map +1 -1
- package/esm/cli/commands/doctor/boot-for-diagnostics.mjs +8 -3
- package/esm/cli/commands/doctor/boot-for-diagnostics.mjs.map +1 -1
- package/esm/cli/commands/doctor/check.types.d.mts +89 -0
- package/esm/cli/commands/doctor/check.types.d.mts.map +1 -0
- package/esm/cli/commands/doctor/checks/config.check.mjs +1 -0
- package/esm/cli/commands/doctor/checks/config.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/checks/connectors.check.mjs +2 -0
- package/esm/cli/commands/doctor/checks/connectors.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/checks/handler-signature.check.mjs +1 -0
- package/esm/cli/commands/doctor/checks/handler-signature.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/checks/health.check.mjs +3 -0
- package/esm/cli/commands/doctor/checks/health.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/checks/jwt-secret.check.mjs +1 -0
- package/esm/cli/commands/doctor/checks/jwt-secret.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/checks/locales-ts-deprecated.check.mjs +23 -27
- package/esm/cli/commands/doctor/checks/locales-ts-deprecated.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/checks/optional-peers.check.mjs +1 -0
- package/esm/cli/commands/doctor/checks/optional-peers.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/checks/release-hygiene.check.mjs +4 -0
- package/esm/cli/commands/doctor/checks/release-hygiene.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/checks/routes.check.mjs +3 -0
- package/esm/cli/commands/doctor/checks/routes.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/doctor-command.action.mjs +15 -6
- package/esm/cli/commands/doctor/doctor-command.action.mjs.map +1 -1
- package/esm/cli/commands/doctor/format-report.mjs +30 -2
- package/esm/cli/commands/doctor/format-report.mjs.map +1 -1
- package/esm/cli/commands/doctor.command.mjs +4 -0
- package/esm/cli/commands/doctor.command.mjs.map +1 -1
- package/esm/cli/commands/explain/explain-command.action.mjs +64 -0
- package/esm/cli/commands/explain/explain-command.action.mjs.map +1 -0
- package/esm/cli/commands/explain.command.mjs +23 -0
- package/esm/cli/commands/explain.command.mjs.map +1 -0
- package/esm/cli/commands/generate/generate.command.mjs +124 -124
- package/esm/cli/commands/generate/generate.command.mjs.map +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 +313 -0
- package/esm/cli/commands/generate/generators/endpoint.generator.mjs.map +1 -0
- package/esm/cli/commands/generate/generators/migration.generator.mjs +1 -1
- package/esm/cli/commands/generate/generators/migration.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/model.generator.mjs +4 -3
- 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 +341 -0
- package/esm/cli/commands/generate/templates/endpoint-stubs.mjs.map +1 -0
- package/esm/cli/commands/generate/templates/stubs.mjs +19 -6
- package/esm/cli/commands/generate/templates/stubs.mjs.map +1 -1
- package/esm/cli/commands/generate/utils/endpoint-schema.mjs +136 -0
- package/esm/cli/commands/generate/utils/endpoint-schema.mjs.map +1 -0
- package/esm/cli/commands/generate/utils/name-parser.mjs +2 -2
- package/esm/cli/commands/generate/utils/name-parser.mjs.map +1 -1
- package/esm/cli/commands/generate/utils/path-resolver.mjs +1 -1
- package/esm/cli/commands/generate/utils/prompt.mjs.map +1 -1
- package/esm/cli/commands/generate/utils/writer.mjs +38 -13
- package/esm/cli/commands/generate/utils/writer.mjs.map +1 -1
- package/esm/cli/commands/inspect/inspect-command.action.mjs +73 -0
- package/esm/cli/commands/inspect/inspect-command.action.mjs.map +1 -0
- package/esm/cli/commands/inspect.command.mjs +39 -0
- package/esm/cli/commands/inspect.command.mjs.map +1 -0
- 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 +104 -0
- package/esm/cli/commands/mcp/mcp-command.action.mjs.map +1 -0
- package/esm/cli/commands/mcp.command.mjs +76 -0
- package/esm/cli/commands/mcp.command.mjs.map +1 -0
- package/esm/cli/commands/openapi-generator.action.mjs +1 -1
- package/esm/cli/commands/openapi-generator.action.mjs.map +1 -1
- package/esm/cli/commands/openapi-generator.command.mjs.map +1 -1
- package/esm/cli/commands/postman-generator.action.mjs +1 -1
- package/esm/cli/commands/postman-generator.action.mjs.map +1 -1
- package/esm/cli/commands/postman-generator.command.mjs.map +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 +3 -3
- package/esm/cli/commands/routes/routes-diff.action.mjs.map +1 -1
- package/esm/cli/commands/test.command.mjs +131 -0
- package/esm/cli/commands/test.command.mjs.map +1 -0
- package/esm/cli/commands/trace/trace-command.action.mjs +145 -0
- package/esm/cli/commands/trace/trace-command.action.mjs.map +1 -0
- package/esm/cli/commands/trace.command.mjs +60 -0
- package/esm/cli/commands/trace.command.mjs.map +1 -0
- package/esm/cli/commands/typecheck.command.mjs +40 -0
- package/esm/cli/commands/typecheck.command.mjs.map +1 -0
- package/esm/cli/commands/upgrade.command.mjs +46 -0
- package/esm/cli/commands/upgrade.command.mjs.map +1 -0
- package/esm/cli/commands-loader.mjs +1 -1
- package/esm/cli/flush-and-exit.mjs +34 -0
- package/esm/cli/flush-and-exit.mjs.map +1 -0
- package/esm/cli/framework-cli-commands.mjs +25 -1
- package/esm/cli/framework-cli-commands.mjs.map +1 -1
- package/esm/cli/parse-cli-args.mjs +3 -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 +35 -14
- package/esm/config/config-loader.mjs.map +1 -1
- package/esm/config/config-manager.mjs +1 -1
- package/esm/config/config-schema.d.mts +70 -0
- package/esm/config/config-schema.d.mts.map +1 -0
- package/esm/config/config-schema.mjs +77 -0
- package/esm/config/config-schema.mjs.map +1 -0
- 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 +7 -0
- package/esm/config/index.mjs +2 -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-no-reserved-connector-names.mjs +2 -1
- package/esm/connectors/assert-no-reserved-connector-names.mjs.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 +26 -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 +11 -9
- 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/single-server-warnings.mjs.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/container/index.mjs.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/migrate-action.mjs.map +1 -1
- package/esm/database/models/database-log/database-log.d.mts +2 -31
- 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 +6 -3
- package/esm/database/seeds/seeder.errors.d.mts.map +1 -1
- package/esm/database/seeds/seeder.errors.mjs +2 -0
- package/esm/database/seeds/seeder.errors.mjs.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/boot-precondition-error.mjs +1 -0
- package/esm/dev-server/boot-precondition-error.mjs.map +1 -1
- package/esm/dev-server/create-worker.mjs +17 -9
- 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/dev-agent-tooling.mjs +135 -0
- package/esm/dev-server/dev-agent-tooling.mjs.map +1 -0
- package/esm/dev-server/dev-logger.mjs.map +1 -1
- package/esm/dev-server/development-server.mjs +8 -0
- package/esm/dev-server/development-server.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-orchestrator.mjs +4 -5
- package/esm/dev-server/files-orchestrator.mjs.map +1 -1
- package/esm/dev-server/files-watcher.mjs +12 -11
- package/esm/dev-server/files-watcher.mjs.map +1 -1
- package/esm/dev-server/health-checker/checkers/eslint-health-checker.mjs +2 -3
- package/esm/dev-server/health-checker/checkers/eslint-health-checker.mjs.map +1 -1
- package/esm/dev-server/health-checker/checkers/oxlint-health-checker.mjs +33 -0
- package/esm/dev-server/health-checker/checkers/oxlint-health-checker.mjs.map +1 -0
- package/esm/dev-server/health-checker/checkers/typescript-health-checker.mjs +36 -115
- package/esm/dev-server/health-checker/checkers/typescript-health-checker.mjs.map +1 -1
- package/esm/dev-server/health-checker/default-health-checkers.mjs +31 -0
- package/esm/dev-server/health-checker/default-health-checkers.mjs.map +1 -0
- package/esm/dev-server/health-checker/file-health-checker.contract.d.mts +12 -6
- package/esm/dev-server/health-checker/file-health-checker.contract.d.mts.map +1 -1
- package/esm/dev-server/health-checker/file-health-result.d.mts +2 -2
- package/esm/dev-server/health-checker/file-health-result.d.mts.map +1 -1
- package/esm/dev-server/health-checker/files-healthcare.manager.mjs +16 -4
- package/esm/dev-server/health-checker/files-healthcare.manager.mjs.map +1 -1
- package/esm/dev-server/health-checker/oxlint-runner.mjs +303 -0
- package/esm/dev-server/health-checker/oxlint-runner.mjs.map +1 -0
- 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 -0
- package/esm/dev-server/health-checker/workers/oxlint-health.worker.mjs +42 -0
- package/esm/dev-server/health-checker/workers/oxlint-health.worker.mjs.map +1 -0
- 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/loader-port-acks.mjs +1 -1
- package/esm/dev-server/loader/loader-port-acks.mjs.map +1 -1
- package/esm/dev-server/loader/own-resolver.mjs +1 -1
- package/esm/dev-server/loader/register-loader.mjs +4 -3
- 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 +3 -2
- package/esm/dev-server/loader/resolve-hook.mjs.map +1 -1
- package/esm/dev-server/loader/transpile-cache.mjs +3 -2
- 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 +3 -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 +7 -39
- 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/route-types-publisher.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/start-development-server.mjs.map +1 -1
- package/esm/dev-server/supervisor.mjs +1 -1
- package/esm/dev-server/translation-keys-sources.mjs +1 -1
- package/esm/dev-server/translation-keys-sources.mjs.map +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 +31 -38
- 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/container-key-missing-error.mjs +1 -0
- package/esm/errors/container-key-missing-error.mjs.map +1 -1
- package/esm/errors/error-codes.d.mts +660 -0
- package/esm/errors/error-codes.d.mts.map +1 -0
- package/esm/errors/error-codes.mjs +634 -0
- package/esm/errors/error-codes.mjs.map +1 -0
- package/esm/errors/esbuild-binary-missing-error.mjs +1 -0
- package/esm/errors/esbuild-binary-missing-error.mjs.map +1 -1
- package/esm/errors/index.d.mts +3 -1
- package/esm/errors/index.mjs +3 -1
- package/esm/errors/unknown-locale-error.mjs +1 -0
- package/esm/errors/unknown-locale-error.mjs.map +1 -1
- package/esm/errors/warlock-error.d.mts +21 -0
- package/esm/errors/warlock-error.d.mts.map +1 -0
- package/esm/errors/warlock-error.mjs +22 -0
- package/esm/errors/warlock-error.mjs.map +1 -0
- package/esm/generations/add-command.action.mjs +22 -5
- package/esm/generations/add-command.action.mjs.map +1 -1
- package/esm/generations/features/access.feature.mjs +1 -1
- package/esm/generations/features/access.feature.mjs.map +1 -1
- package/esm/generations/features/bull-board.feature.mjs +3 -2
- package/esm/generations/features/bull-board.feature.mjs.map +1 -1
- package/esm/generations/features/mysql.feature.mjs.map +1 -1
- package/esm/generations/features/notifications.feature.mjs +7 -3
- package/esm/generations/features/notifications.feature.mjs.map +1 -1
- package/esm/generations/features/queue.feature.mjs +1 -1
- package/esm/generations/features/queue.feature.mjs.map +1 -1
- package/esm/generations/features/react-email.feature.mjs +1 -1
- package/esm/generations/features/react-email.feature.mjs.map +1 -1
- package/esm/generations/features/shadcn.feature.mjs +1 -1
- package/esm/generations/features/shadcn.feature.mjs.map +1 -1
- package/esm/generations/features/shared/link-ai-package-import.mjs +1 -1
- package/esm/generations/features/shared/link-ai-package-import.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 +2 -2
- package/esm/generations/features/shared/patch-tsconfig-include.mjs.map +1 -1
- package/esm/generations/features/shared/relocate-conflicting-home-route.mjs +2 -2
- package/esm/generations/features/shared/relocate-conflicting-home-route.mjs.map +1 -1
- package/esm/generations/features/sitemap.feature.mjs +3 -2
- package/esm/generations/features/sitemap.feature.mjs.map +1 -1
- package/esm/generations/features/tailwind.feature.mjs +1 -1
- package/esm/generations/features/tailwind.feature.mjs.map +1 -1
- package/esm/generations/features/test.feature.mjs +11 -6
- package/esm/generations/features/test.feature.mjs.map +1 -1
- package/esm/generations/features/web.feature.mjs +1 -1
- package/esm/generations/features/web.feature.mjs.map +1 -1
- package/esm/generations/generation-fs.mjs +73 -0
- package/esm/generations/generation-fs.mjs.map +1 -0
- package/esm/generations/generation-run.mjs +185 -0
- package/esm/generations/generation-run.mjs.map +1 -0
- package/esm/generations/stubs.mjs +156 -14
- 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 +10 -0
- package/esm/http/bounded-stream-queue.d.mts.map +1 -0
- package/esm/http/bounded-stream-queue.mjs +97 -0
- package/esm/http/bounded-stream-queue.mjs.map +1 -0
- 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 +15 -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 +87 -0
- package/esm/http/conditional-request.d.mts.map +1 -0
- package/esm/http/conditional-request.mjs +121 -0
- package/esm/http/conditional-request.mjs.map +1 -0
- 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 +12 -12
- package/esm/http/csp.d.mts.map +1 -1
- package/esm/http/csp.mjs +3 -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 +26 -87
- 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 +30 -29
- package/esm/http/errors/errors.d.mts.map +1 -1
- package/esm/http/errors/errors.mjs +1 -0
- package/esm/http/errors/errors.mjs.map +1 -1
- package/esm/http/escape-header-value.d.mts +17 -0
- package/esm/http/escape-header-value.d.mts.map +1 -0
- package/esm/http/escape-header-value.mjs +27 -0
- package/esm/http/escape-header-value.mjs.map +1 -0
- package/esm/http/events.d.mts +2 -4
- package/esm/http/events.d.mts.map +1 -1
- package/esm/http/flush-pending-cookies.mjs.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 +9 -3
- package/esm/http/index.mjs +5 -2
- package/esm/http/lazy-static.mjs +194 -0
- package/esm/http/lazy-static.mjs.map +1 -0
- 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 +17 -14
- 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 +6 -4
- 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 +26 -15
- package/esm/http/request-log-snapshot.d.mts.map +1 -1
- package/esm/http/request-log-snapshot.mjs +85 -6
- package/esm/http/request-log-snapshot.mjs.map +1 -1
- package/esm/http/request.d.mts +6 -5
- package/esm/http/request.d.mts.map +1 -1
- package/esm/http/request.mjs +13 -11
- package/esm/http/request.mjs.map +1 -1
- package/esm/http/response.d.mts +23 -12
- package/esm/http/response.d.mts.map +1 -1
- package/esm/http/response.mjs +169 -81
- package/esm/http/response.mjs.map +1 -1
- package/esm/http/safe-redirect.d.mts +50 -0
- package/esm/http/safe-redirect.d.mts.map +1 -0
- package/esm/http/safe-redirect.mjs +80 -0
- package/esm/http/safe-redirect.mjs.map +1 -0
- 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 +11 -9
- package/esm/http/server.d.mts.map +1 -1
- package/esm/http/server.mjs +17 -7
- 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/stream-transport.mjs +4 -2
- package/esm/http/stream-transport.mjs.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 +78 -39
- 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-variant.mjs +1 -1
- package/esm/http/uploads/generate-image-variants.d.mts +13 -10
- package/esm/http/uploads/generate-image-variants.d.mts.map +1 -1
- package/esm/http/uploads/generate-image-variants.mjs +62 -25
- package/esm/http/uploads/generate-image-variants.mjs.map +1 -1
- package/esm/http/uploads/image-variant-cache-entries.mjs +78 -0
- package/esm/http/uploads/image-variant-cache-entries.mjs.map +1 -0
- package/esm/http/uploads/image-variant-cache.mjs +72 -30
- package/esm/http/uploads/image-variant-cache.mjs.map +1 -1
- package/esm/http/uploads/image-variant-types.d.mts +9 -9
- package/esm/http/uploads/image-variant-types.d.mts.map +1 -1
- package/esm/http/uploads/image-variants-config-error.d.mts +4 -3
- package/esm/http/uploads/image-variants-config-error.d.mts.map +1 -1
- package/esm/http/uploads/image-variants-config-error.mjs +3 -2
- package/esm/http/uploads/image-variants-config-error.mjs.map +1 -1
- package/esm/http/uploads/index.d.mts +2 -1
- package/esm/http/uploads/index.mjs +1 -1
- package/esm/http/uploads/load-variant-source.mjs +1 -1
- package/esm/http/uploads/load-variant-source.mjs.map +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 +9 -6
- package/esm/http/uploads/purge-image-variants.d.mts.map +1 -1
- package/esm/http/uploads/purge-image-variants.mjs +16 -16
- package/esm/http/uploads/purge-image-variants.mjs.map +1 -1
- package/esm/http/uploads/remote-variant-source.mjs +115 -0
- package/esm/http/uploads/remote-variant-source.mjs.map +1 -0
- package/esm/http/uploads/resolve-image-variant.d.mts +6 -9
- package/esm/http/uploads/resolve-image-variant.d.mts.map +1 -1
- package/esm/http/uploads/resolve-image-variant.mjs +10 -18
- package/esm/http/uploads/resolve-image-variant.mjs.map +1 -1
- package/esm/http/uploads/resolve-image-variants-config.mjs +7 -5
- 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/resolve-remote-image-variant.mjs +89 -0
- package/esm/http/uploads/resolve-remote-image-variant.mjs.map +1 -0
- package/esm/http/uploads/trim-image-variant-cache.mjs +193 -0
- package/esm/http/uploads/trim-image-variant-cache.mjs.map +1 -0
- package/esm/http/uploads/uploaded-file.controller.d.mts +9 -6
- package/esm/http/uploads/uploaded-file.controller.d.mts.map +1 -1
- package/esm/http/uploads/uploaded-file.controller.mjs +18 -9
- package/esm/http/uploads/uploaded-file.controller.mjs.map +1 -1
- package/esm/http/uploads/variant-cache-key.mjs +2 -2
- 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 +22 -16
- 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 +38 -6
- package/esm/index.mjs +14 -3
- 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 +6 -5
- package/esm/localization/parse-locale-dictionary.d.mts.map +1 -1
- package/esm/localization/parse-locale-dictionary.mjs +2 -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 +21 -12
- package/esm/mail/config.d.mts.map +1 -1
- package/esm/mail/config.mjs +16 -1
- package/esm/mail/config.mjs.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 +3 -2
- package/esm/mail/index.mjs +2 -2
- 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/net/index.d.mts +2 -0
- package/esm/net/index.mjs +3 -0
- package/esm/openapi/build-openapi-document.d.mts +2 -4
- package/esm/openapi/build-openapi-document.d.mts.map +1 -1
- package/esm/openapi/build-openapi-document.mjs +8 -5
- package/esm/openapi/build-openapi-document.mjs.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/error-responses.mjs +28 -2
- package/esm/openapi/error-responses.mjs.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-body.mjs.map +1 -1
- package/esm/openapi/postman/build-request-url.mjs +1 -1
- package/esm/openapi/postman/build-request-url.mjs.map +1 -1
- package/esm/openapi/postman/build-saved-responses.mjs.map +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/example-from-schema.mjs.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/openapi-to-postman-collection.mjs.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/schema-refs.mjs.map +1 -1
- package/esm/openapi/postman/uuid-v5.mjs +1 -1
- package/esm/openapi/postman/uuid-v5.mjs.map +1 -1
- package/esm/openapi/request-schemas.mjs.map +1 -1
- package/esm/openapi/response-schemas.mjs.map +1 -1
- package/esm/openapi/schema-registry.d.mts +1 -0
- package/esm/openapi/schema-registry.mjs.map +1 -1
- package/esm/openapi/security.mjs +1 -1
- package/esm/openapi/security.mjs.map +1 -1
- package/esm/openapi/types.d.mts +23 -20
- package/esm/openapi/types.d.mts.map +1 -1
- package/esm/production/assert-generated-imports.mjs +2 -1
- package/esm/production/assert-generated-imports.mjs.map +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 +14 -5
- 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 +2 -1
- package/esm/production/resolve-build-config.mjs.map +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/route-registration-snapshot.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 +11 -31
- package/esm/restful/restful.d.mts.map +1 -1
- package/esm/restful/restful.mjs.map +1 -1
- package/esm/router/build-route-rate-limit.mjs.map +1 -1
- package/esm/router/dev-dispatch.mjs +31 -12
- package/esm/router/dev-dispatch.mjs.map +1 -1
- package/esm/router/index.d.mts +5 -2
- package/esm/router/index.mjs +3 -1
- package/esm/router/log-request-lifecycle.mjs.map +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/positional-handler-diagnostics.mjs.map +1 -1
- package/esm/router/resolve-route-rate-limit.mjs +47 -0
- package/esm/router/resolve-route-rate-limit.mjs.map +1 -0
- package/esm/router/resolve-route-validation.mjs +19 -0
- package/esm/router/resolve-route-validation.mjs.map +1 -0
- 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 +30 -0
- package/esm/router/route-guard-names.mjs.map +1 -0
- 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 +12 -0
- package/esm/router/route-name-taken-error.d.mts.map +1 -0
- package/esm/router/route-name-taken-error.mjs +18 -0
- package/esm/router/route-name-taken-error.mjs.map +1 -0
- 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 +34 -17
- package/esm/router/router.d.mts.map +1 -1
- package/esm/router/router.mjs +74 -39
- package/esm/router/router.mjs.map +1 -1
- package/esm/router/types.d.mts +156 -37
- package/esm/router/types.d.mts.map +1 -1
- package/esm/router/unguarded-route-diagnostics.d.mts +38 -0
- package/esm/router/unguarded-route-diagnostics.d.mts.map +1 -0
- package/esm/router/unguarded-route-diagnostics.mjs +95 -0
- package/esm/router/unguarded-route-diagnostics.mjs.map +1 -0
- 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 +24 -0
- package/esm/storage/local-disk-roots.mjs.map +1 -0
- 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 +17 -4
- package/esm/storage/storage.d.mts.map +1 -1
- package/esm/storage/storage.mjs +22 -0
- package/esm/storage/storage.mjs.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 +3 -2
- package/esm/storage/utils/storage-not-initialized-error.d.mts.map +1 -1
- package/esm/storage/utils/storage-not-initialized-error.mjs +1 -0
- package/esm/storage/utils/storage-not-initialized-error.mjs.map +1 -1
- package/esm/tests/authenticated-test-client.d.mts +31 -0
- package/esm/tests/authenticated-test-client.d.mts.map +1 -0
- package/esm/tests/authenticated-test-client.mjs +40 -0
- package/esm/tests/authenticated-test-client.mjs.map +1 -0
- package/esm/tests/factories.d.mts +74 -0
- package/esm/tests/factories.d.mts.map +1 -0
- package/esm/tests/factories.mjs +105 -0
- package/esm/tests/factories.mjs.map +1 -0
- package/esm/tests/fakes/cache-fake.d.mts +34 -0
- package/esm/tests/fakes/cache-fake.d.mts.map +1 -0
- package/esm/tests/fakes/cache-fake.mjs +79 -0
- package/esm/tests/fakes/cache-fake.mjs.map +1 -0
- package/esm/tests/fakes/clock-fake.d.mts +37 -0
- package/esm/tests/fakes/clock-fake.d.mts.map +1 -0
- package/esm/tests/fakes/clock-fake.mjs +69 -0
- package/esm/tests/fakes/clock-fake.mjs.map +1 -0
- package/esm/tests/fakes/fake-assertion-error.d.mts +12 -0
- package/esm/tests/fakes/fake-assertion-error.d.mts.map +1 -0
- package/esm/tests/fakes/fake-assertion-error.mjs +20 -0
- package/esm/tests/fakes/fake-assertion-error.mjs.map +1 -0
- package/esm/tests/fakes/ids-fake.d.mts +23 -0
- package/esm/tests/fakes/ids-fake.d.mts.map +1 -0
- package/esm/tests/fakes/ids-fake.mjs +57 -0
- package/esm/tests/fakes/ids-fake.mjs.map +1 -0
- package/esm/tests/fakes/index.d.mts +9 -0
- package/esm/tests/fakes/index.mjs +10 -0
- package/esm/tests/fakes/mail-fake.d.mts +49 -0
- package/esm/tests/fakes/mail-fake.d.mts.map +1 -0
- package/esm/tests/fakes/mail-fake.mjs +111 -0
- package/esm/tests/fakes/mail-fake.mjs.map +1 -0
- package/esm/tests/fakes/queue-fake.d.mts +56 -0
- package/esm/tests/fakes/queue-fake.d.mts.map +1 -0
- package/esm/tests/fakes/queue-fake.mjs +134 -0
- package/esm/tests/fakes/queue-fake.mjs.map +1 -0
- package/esm/tests/fakes/storage-fake.d.mts +35 -0
- package/esm/tests/fakes/storage-fake.d.mts.map +1 -0
- package/esm/tests/fakes/storage-fake.mjs +122 -0
- package/esm/tests/fakes/storage-fake.mjs.map +1 -0
- package/esm/tests/fakes/test-fakes.d.mts +38 -0
- package/esm/tests/fakes/test-fakes.d.mts.map +1 -0
- package/esm/tests/fakes/test-fakes.mjs +90 -0
- package/esm/tests/fakes/test-fakes.mjs.map +1 -0
- package/esm/tests/index.d.mts +15 -2
- package/esm/tests/index.mjs +15 -2
- package/esm/tests/snapshot-response.d.mts +33 -0
- package/esm/tests/snapshot-response.d.mts.map +1 -0
- package/esm/tests/snapshot-response.mjs +42 -0
- package/esm/tests/snapshot-response.mjs.map +1 -0
- package/esm/tests/start-http-development-server.d.mts +25 -5
- package/esm/tests/start-http-development-server.d.mts.map +1 -1
- package/esm/tests/start-http-development-server.mjs +41 -8
- 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 +28 -10
- package/esm/tests/test-helpers.d.mts.map +1 -1
- package/esm/tests/test-helpers.mjs +40 -27
- package/esm/tests/test-helpers.mjs.map +1 -1
- package/esm/tests/test-http-server.d.mts +66 -0
- package/esm/tests/test-http-server.d.mts.map +1 -0
- package/esm/tests/test-http-server.mjs +119 -0
- package/esm/tests/test-http-server.mjs.map +1 -0
- package/esm/tests/test-lifecycle-state.mjs +1 -1
- package/esm/tests/vitest-setup.d.mts +17 -7
- package/esm/tests/vitest-setup.d.mts.map +1 -1
- package/esm/tests/vitest-setup.mjs +12 -4
- package/esm/tests/vitest-setup.mjs.map +1 -1
- package/esm/tooling/agents-md/agents-md-markers.d.mts +26 -0
- package/esm/tooling/agents-md/agents-md-markers.d.mts.map +1 -0
- package/esm/tooling/agents-md/agents-md-markers.mjs +60 -0
- package/esm/tooling/agents-md/agents-md-markers.mjs.map +1 -0
- package/esm/tooling/agents-md/agents-md-refresher.d.mts +43 -0
- package/esm/tooling/agents-md/agents-md-refresher.d.mts.map +1 -0
- package/esm/tooling/agents-md/agents-md-refresher.mjs +72 -0
- package/esm/tooling/agents-md/agents-md-refresher.mjs.map +1 -0
- package/esm/tooling/agents-md/index.mjs +7 -0
- package/esm/tooling/agents-md/installed-skills.d.mts +34 -0
- package/esm/tooling/agents-md/installed-skills.d.mts.map +1 -0
- package/esm/tooling/agents-md/installed-skills.mjs +74 -0
- package/esm/tooling/agents-md/installed-skills.mjs.map +1 -0
- package/esm/tooling/agents-md/render-agents-md.d.mts +34 -0
- package/esm/tooling/agents-md/render-agents-md.d.mts.map +1 -0
- package/esm/tooling/agents-md/render-agents-md.mjs +195 -0
- package/esm/tooling/agents-md/render-agents-md.mjs.map +1 -0
- package/esm/tooling/agents-md/write-agents-md.d.mts +38 -0
- package/esm/tooling/agents-md/write-agents-md.d.mts.map +1 -0
- package/esm/tooling/agents-md/write-agents-md.mjs +49 -0
- package/esm/tooling/agents-md/write-agents-md.mjs.map +1 -0
- package/esm/tooling/board/board-message.d.mts +29 -0
- package/esm/tooling/board/board-message.d.mts.map +1 -0
- package/esm/tooling/board/board-message.mjs +86 -0
- package/esm/tooling/board/board-message.mjs.map +1 -0
- package/esm/tooling/board/board.d.mts +121 -0
- package/esm/tooling/board/board.d.mts.map +1 -0
- package/esm/tooling/board/board.mjs +407 -0
- package/esm/tooling/board/board.mjs.map +1 -0
- package/esm/tooling/board/board.types.d.mts +81 -0
- package/esm/tooling/board/board.types.d.mts.map +1 -0
- package/esm/tooling/board/board.types.mjs +54 -0
- package/esm/tooling/board/board.types.mjs.map +1 -0
- package/esm/tooling/check/changed-files.d.mts +31 -0
- package/esm/tooling/check/changed-files.d.mts.map +1 -0
- package/esm/tooling/check/changed-files.mjs +73 -0
- package/esm/tooling/check/changed-files.mjs.map +1 -0
- package/esm/tooling/check/check-report.types.d.mts +67 -0
- package/esm/tooling/check/check-report.types.d.mts.map +1 -0
- package/esm/tooling/check/check-report.types.mjs +37 -0
- package/esm/tooling/check/check-report.types.mjs.map +1 -0
- package/esm/tooling/check/code-style-conventions.mjs +106 -0
- package/esm/tooling/check/code-style-conventions.mjs.map +1 -0
- package/esm/tooling/check/conventions-step.d.mts +32 -0
- package/esm/tooling/check/conventions-step.d.mts.map +1 -0
- package/esm/tooling/check/conventions-step.mjs +173 -0
- package/esm/tooling/check/conventions-step.mjs.map +1 -0
- package/esm/tooling/check/environment-step.d.mts +16 -0
- package/esm/tooling/check/environment-step.d.mts.map +1 -0
- package/esm/tooling/check/environment-step.mjs +78 -0
- package/esm/tooling/check/environment-step.mjs.map +1 -0
- package/esm/tooling/check/index.mjs +10 -0
- package/esm/tooling/check/lint-step.d.mts +18 -0
- package/esm/tooling/check/lint-step.d.mts.map +1 -0
- package/esm/tooling/check/lint-step.mjs +112 -0
- package/esm/tooling/check/lint-step.mjs.map +1 -0
- package/esm/tooling/check/request-input.mjs +132 -0
- package/esm/tooling/check/request-input.mjs.map +1 -0
- package/esm/tooling/check/run-check.d.mts +43 -0
- package/esm/tooling/check/run-check.d.mts.map +1 -0
- package/esm/tooling/check/run-check.mjs +192 -0
- package/esm/tooling/check/run-check.mjs.map +1 -0
- package/esm/tooling/check/run-tests.d.mts +55 -0
- package/esm/tooling/check/run-tests.d.mts.map +1 -0
- package/esm/tooling/check/run-tests.mjs +93 -0
- package/esm/tooling/check/run-tests.mjs.map +1 -0
- package/esm/tooling/check/security-conventions.mjs +650 -0
- package/esm/tooling/check/security-conventions.mjs.map +1 -0
- package/esm/tooling/check/source-ast.mjs +155 -0
- package/esm/tooling/check/source-ast.mjs.map +1 -0
- package/esm/tooling/check/source-files.mjs +27 -0
- package/esm/tooling/check/source-files.mjs.map +1 -0
- package/esm/tooling/check/tests-step.d.mts +33 -0
- package/esm/tooling/check/tests-step.d.mts.map +1 -0
- package/esm/tooling/check/tests-step.mjs +177 -0
- package/esm/tooling/check/tests-step.mjs.map +1 -0
- package/esm/tooling/dev-state/dev-server-state.d.mts +43 -0
- package/esm/tooling/dev-state/dev-server-state.d.mts.map +1 -0
- package/esm/tooling/dev-state/dev-server-state.mjs +67 -0
- package/esm/tooling/dev-state/dev-server-state.mjs.map +1 -0
- package/esm/tooling/devtools/devtools-client.d.mts +100 -0
- package/esm/tooling/devtools/devtools-client.d.mts.map +1 -0
- package/esm/tooling/devtools/devtools-client.mjs +155 -0
- package/esm/tooling/devtools/devtools-client.mjs.map +1 -0
- package/esm/tooling/generate/generation.d.mts +90 -0
- package/esm/tooling/generate/generation.d.mts.map +1 -0
- package/esm/tooling/generate/generation.mjs +127 -0
- package/esm/tooling/generate/generation.mjs.map +1 -0
- package/esm/tooling/generate/generator-spec.d.mts +57 -0
- package/esm/tooling/generate/generator-spec.d.mts.map +1 -0
- package/esm/tooling/generate/generator-spec.mjs +102 -0
- package/esm/tooling/generate/generator-spec.mjs.map +1 -0
- package/esm/tooling/generate/index.mjs +6 -0
- package/esm/tooling/generate/project-files.mjs +121 -0
- package/esm/tooling/generate/project-files.mjs.map +1 -0
- package/esm/tooling/generate/run-cli.d.mts +43 -0
- package/esm/tooling/generate/run-cli.d.mts.map +1 -0
- package/esm/tooling/generate/run-cli.mjs +93 -0
- package/esm/tooling/generate/run-cli.mjs.map +1 -0
- package/esm/tooling/generate/unified-diff.d.mts +40 -0
- package/esm/tooling/generate/unified-diff.d.mts.map +1 -0
- package/esm/tooling/generate/unified-diff.mjs +161 -0
- package/esm/tooling/generate/unified-diff.mjs.map +1 -0
- package/esm/tooling/index.d.mts +42 -0
- package/esm/tooling/index.mjs +45 -0
- package/esm/tooling/inspect/boot-for-inspect.d.mts +23 -0
- package/esm/tooling/inspect/boot-for-inspect.d.mts.map +1 -0
- package/esm/tooling/inspect/boot-for-inspect.mjs +63 -0
- package/esm/tooling/inspect/boot-for-inspect.mjs.map +1 -0
- package/esm/tooling/inspect/collect-config.mjs +77 -0
- package/esm/tooling/inspect/collect-config.mjs.map +1 -0
- package/esm/tooling/inspect/collect-models.d.mts +10 -0
- package/esm/tooling/inspect/collect-models.d.mts.map +1 -0
- package/esm/tooling/inspect/collect-models.mjs +154 -0
- package/esm/tooling/inspect/collect-models.mjs.map +1 -0
- package/esm/tooling/inspect/collect-packages.d.mts +9 -0
- package/esm/tooling/inspect/collect-packages.d.mts.map +1 -0
- package/esm/tooling/inspect/collect-packages.mjs +157 -0
- package/esm/tooling/inspect/collect-packages.mjs.map +1 -0
- package/esm/tooling/inspect/collect-pages.mjs +108 -0
- package/esm/tooling/inspect/collect-pages.mjs.map +1 -0
- package/esm/tooling/inspect/collect-routes.mjs +168 -0
- package/esm/tooling/inspect/collect-routes.mjs.map +1 -0
- package/esm/tooling/inspect/event-recorder.d.mts +37 -0
- package/esm/tooling/inspect/event-recorder.d.mts.map +1 -0
- package/esm/tooling/inspect/event-recorder.mjs +91 -0
- package/esm/tooling/inspect/event-recorder.mjs.map +1 -0
- package/esm/tooling/inspect/index.d.mts +8 -0
- package/esm/tooling/inspect/index.mjs +7 -0
- package/esm/tooling/inspect/inspect-app.d.mts +62 -0
- package/esm/tooling/inspect/inspect-app.d.mts.map +1 -0
- package/esm/tooling/inspect/inspect-app.mjs +92 -0
- package/esm/tooling/inspect/inspect-app.mjs.map +1 -0
- package/esm/tooling/inspect/inspect-report.schema.d.mts +14 -0
- package/esm/tooling/inspect/inspect-report.schema.d.mts.map +1 -0
- package/esm/tooling/inspect/inspect-report.schema.mjs +463 -0
- package/esm/tooling/inspect/inspect-report.schema.mjs.map +1 -0
- package/esm/tooling/inspect/inspect-report.types.d.mts +228 -0
- package/esm/tooling/inspect/inspect-report.types.d.mts.map +1 -0
- package/esm/tooling/inspect/inspect-report.types.mjs +33 -0
- package/esm/tooling/inspect/inspect-report.types.mjs.map +1 -0
- package/esm/tooling/mcp/create-mcp-context.d.mts +29 -0
- package/esm/tooling/mcp/create-mcp-context.d.mts.map +1 -0
- package/esm/tooling/mcp/create-mcp-context.mjs +75 -0
- package/esm/tooling/mcp/create-mcp-context.mjs.map +1 -0
- package/esm/tooling/mcp/db-schema.d.mts +50 -0
- package/esm/tooling/mcp/db-schema.d.mts.map +1 -0
- package/esm/tooling/mcp/db-schema.mjs +56 -0
- package/esm/tooling/mcp/db-schema.mjs.map +1 -0
- package/esm/tooling/mcp/docs-search.d.mts +77 -0
- package/esm/tooling/mcp/docs-search.d.mts.map +1 -0
- package/esm/tooling/mcp/docs-search.mjs +178 -0
- package/esm/tooling/mcp/docs-search.mjs.map +1 -0
- package/esm/tooling/mcp/index.mjs +9 -0
- package/esm/tooling/mcp/load-ai-tools.d.mts +61 -0
- package/esm/tooling/mcp/load-ai-tools.d.mts.map +1 -0
- package/esm/tooling/mcp/load-ai-tools.mjs +45 -0
- package/esm/tooling/mcp/load-ai-tools.mjs.map +1 -0
- package/esm/tooling/mcp/mcp-tools.d.mts +70 -0
- package/esm/tooling/mcp/mcp-tools.d.mts.map +1 -0
- package/esm/tooling/mcp/mcp-tools.mjs +514 -0
- package/esm/tooling/mcp/mcp-tools.mjs.map +1 -0
- package/esm/tooling/mcp/start-mcp-server.d.mts +63 -0
- package/esm/tooling/mcp/start-mcp-server.d.mts.map +1 -0
- package/esm/tooling/mcp/start-mcp-server.mjs +126 -0
- package/esm/tooling/mcp/start-mcp-server.mjs.map +1 -0
- package/esm/tooling/mcp/tool-input.d.mts +75 -0
- package/esm/tooling/mcp/tool-input.d.mts.map +1 -0
- package/esm/tooling/mcp/tool-input.mjs +72 -0
- package/esm/tooling/mcp/tool-input.mjs.map +1 -0
- package/esm/tooling/problem.d.mts +55 -0
- package/esm/tooling/problem.d.mts.map +1 -0
- package/esm/tooling/problem.mjs +28 -0
- package/esm/tooling/problem.mjs.map +1 -0
- 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 +85 -0
- package/esm/tooling/trace/trace-report.types.d.mts.map +1 -0
- package/esm/tooling/trace/trace-report.types.mjs +7 -0
- package/esm/tooling/trace/trace-report.types.mjs.map +1 -0
- package/esm/tooling/trace/trace-request.d.mts +90 -0
- package/esm/tooling/trace/trace-request.d.mts.map +1 -0
- package/esm/tooling/trace/trace-request.mjs +241 -0
- package/esm/tooling/trace/trace-request.mjs.map +1 -0
- package/esm/tooling/typecheck/index.mjs +3 -0
- package/esm/tooling/typecheck/run-typecheck.d.mts +26 -0
- package/esm/tooling/typecheck/run-typecheck.d.mts.map +1 -0
- package/esm/tooling/typecheck/run-typecheck.mjs +90 -0
- package/esm/tooling/typecheck/run-typecheck.mjs.map +1 -0
- 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/head-viewport.mjs +46 -0
- package/esm/upgrade/codemods/head-viewport.mjs.map +1 -0
- package/esm/upgrade/codemods/helpers.mjs +81 -0
- package/esm/upgrade/codemods/helpers.mjs.map +1 -0
- package/esm/upgrade/codemods/index.mjs +34 -0
- package/esm/upgrade/codemods/index.mjs.map +1 -0
- package/esm/upgrade/codemods/logger-sync-calls.mjs +57 -0
- package/esm/upgrade/codemods/logger-sync-calls.mjs.map +1 -0
- package/esm/upgrade/codemods/package-json.mjs +122 -0
- package/esm/upgrade/codemods/package-json.mjs.map +1 -0
- package/esm/upgrade/codemods/request-log-snapshot.mjs +82 -0
- package/esm/upgrade/codemods/request-log-snapshot.mjs.map +1 -0
- package/esm/upgrade/codemods/review-sites.mjs +262 -0
- package/esm/upgrade/codemods/review-sites.mjs.map +1 -0
- package/esm/upgrade/diff.mjs +119 -0
- package/esm/upgrade/diff.mjs.map +1 -0
- package/esm/upgrade/format-upgrade-report.mjs +32 -0
- package/esm/upgrade/format-upgrade-report.mjs.map +1 -0
- package/esm/upgrade/load-ts-morph.mjs +49 -0
- package/esm/upgrade/load-ts-morph.mjs.map +1 -0
- package/esm/upgrade/notes.mjs +16 -0
- package/esm/upgrade/notes.mjs.map +1 -0
- package/esm/upgrade/run-upgrade.mjs +246 -0
- package/esm/upgrade/run-upgrade.mjs.map +1 -0
- package/esm/upgrade/upgrade-command.action.mjs +37 -0
- package/esm/upgrade/upgrade-command.action.mjs.map +1 -0
- package/esm/upgrade/version.mjs +39 -0
- package/esm/upgrade/version.mjs.map +1 -0
- 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/use-cases/use-cases-registry.mjs.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 +35 -0
- package/esm/utils/clock.d.mts.map +1 -0
- package/esm/utils/clock.mjs +27 -0
- package/esm/utils/clock.mjs.map +1 -0
- 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 +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 +35 -0
- package/esm/utils/ids.d.mts.map +1 -0
- package/esm/utils/ids.mjs +33 -0
- package/esm/utils/ids.mjs.map +1 -0
- package/esm/utils/index.d.mts +5 -1
- package/esm/utils/index.mjs +4 -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 +60 -0
- package/esm/utils/runtime.d.mts.map +1 -0
- package/esm/utils/runtime.mjs +85 -0
- package/esm/utils/runtime.mjs.map +1 -0
- 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 +6 -2
- package/esm/validation/index.mjs +1 -1
- package/esm/validation/plugins/index.mjs +1 -1
- package/esm/validation/types.d.mts +61 -4
- package/esm/validation/types.d.mts.map +1 -1
- package/esm/validation/validateAll.mjs +21 -4
- package/esm/validation/validateAll.mjs.map +1 -1
- package/esm/validation/validation-failure-status.mjs +15 -0
- package/esm/validation/validation-failure-status.mjs.map +1 -0
- package/esm/validation/validators/file-validator.d.mts +2 -20
- 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/bundle-config.mjs +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 +31 -6
- package/esm/warlock-config/types.d.mts.map +1 -1
- package/esm/warlock-config/warlock-config.manager.d.mts +5 -7
- package/esm/warlock-config/warlock-config.manager.d.mts.map +1 -1
- package/esm/warlock-config/warlock-config.manager.mjs +2 -1
- package/esm/warlock-config/warlock-config.manager.mjs.map +1 -1
- package/esm/warlock-config/warn-deprecated-config.mjs +1 -1
- package/llms-full.txt +3211 -731
- package/llms.txt +16 -6
- package/package.json +47 -15
- package/schemas/inspect-report.schema.json +554 -0
- package/skills/README.md +9 -0
- package/skills/add-connector/SKILL.md +26 -38
- package/skills/benchmark-code/SKILL.md +30 -24
- package/skills/build-restful/SKILL.md +14 -14
- package/skills/build-url/SKILL.md +18 -18
- package/skills/configure-app/SKILL.md +107 -14
- package/skills/create-controller/SKILL.md +25 -12
- package/skills/create-module/SKILL.md +10 -3
- package/skills/define-resource/SKILL.md +32 -29
- package/skills/encrypt-data/SKILL.md +21 -19
- package/skills/generate-openapi/SKILL.md +50 -24
- package/skills/hash-password/SKILL.md +2 -2
- package/skills/health-checks/SKILL.md +24 -7
- package/skills/index.md +11 -4
- package/skills/lower-stage3-decorators/SKILL.md +4 -4
- package/skills/make-endpoint/SKILL.md +110 -0
- package/skills/model-factories/SKILL.md +92 -0
- package/skills/process-image/SKILL.md +32 -30
- package/skills/register-route/SKILL.md +109 -10
- package/skills/report-framework-issue.md +154 -0
- package/skills/request-memo/SKILL.md +1 -1
- package/skills/request-tracing/SKILL.md +4 -1
- package/skills/resolve-path/SKILL.md +45 -44
- package/skills/retry-operation/SKILL.md +20 -11
- package/skills/run-app/SKILL.md +107 -22
- package/skills/send-response/SKILL.md +179 -14
- package/skills/store-file/SKILL.md +93 -53
- package/skills/test-fakes/SKILL.md +123 -0
- package/skills/test-http/SKILL.md +125 -21
- package/skills/test-service/SKILL.md +41 -1
- package/skills/update-packages/SKILL.md +29 -18
- package/skills/upgrade-from-5-29/SKILL.md +454 -0
- package/skills/upload-file/SKILL.md +31 -33
- package/skills/use-app-context/SKILL.md +38 -31
- package/skills/use-middleware/SKILL.md +45 -25
- package/skills/use-model-transformers/SKILL.md +37 -28
- package/skills/use-repository/SKILL.md +2 -2
- package/skills/validate-input/SKILL.md +72 -28
- package/skills/warlock-agents-md/SKILL.md +96 -0
- package/skills/warlock-board/SKILL.md +123 -0
- package/skills/warlock-check/SKILL.md +133 -0
- package/skills/warlock-conventions/SKILL.md +115 -0
- package/skills/warlock-doctor/SKILL.md +55 -22
- package/skills/warlock-inspect/SKILL.md +134 -0
- package/skills/warlock-mcp/SKILL.md +120 -0
- package/skills/warlock-routes/SKILL.md +18 -11
- package/skills/warlock-trace/SKILL.md +81 -0
- package/skills/wire-socket/SKILL.md +8 -8
- package/skills/write-seeder/SKILL.md +46 -32
- package/skills/write-use-case/SKILL.md +40 -27
- package/esm/http/uploads/matches-if-none-match.mjs +0 -13
- package/esm/http/uploads/matches-if-none-match.mjs.map +0 -1
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { AGENTS_MD_FILE } from "../../../tooling/agents-md/agents-md-markers.mjs";
|
|
2
|
+
import { listInstalledSkills } from "../../../tooling/agents-md/installed-skills.mjs";
|
|
3
|
+
import { listAppModules, renderAgentsMdSection } from "../../../tooling/agents-md/render-agents-md.mjs";
|
|
4
|
+
import { writeAgentsMd } from "../../../tooling/agents-md/write-agents-md.mjs";
|
|
5
|
+
import { bootForInspect, inspectOptionsFromBoot } from "../../../tooling/inspect/boot-for-inspect.mjs";
|
|
6
|
+
import { inspectApp } from "../../../tooling/inspect/inspect-app.mjs";
|
|
7
|
+
import { withConsoleOnStderr } from "../routes/with-console-on-stderr.mjs";
|
|
8
|
+
import path from "node:path";
|
|
9
|
+
|
|
10
|
+
//#region ../../packages/core/src/cli/commands/agents-md/agents-md-command.action.ts
|
|
11
|
+
/** The inspect sections the generated section reads. */
|
|
12
|
+
const AGENTS_MD_SECTIONS = [
|
|
13
|
+
"routes",
|
|
14
|
+
"models",
|
|
15
|
+
"packages"
|
|
16
|
+
];
|
|
17
|
+
/** The one line `warlock agents-md --write` prints. */
|
|
18
|
+
function formatWriteStatus(result) {
|
|
19
|
+
const file = path.relative(process.cwd(), result.file) || "AGENTS.md";
|
|
20
|
+
switch (result.status) {
|
|
21
|
+
case "created": return `Created ${file} with the generated section.`;
|
|
22
|
+
case "updated": return `Updated the generated section of ${file}.`;
|
|
23
|
+
case "unchanged": return `${file} is up to date.`;
|
|
24
|
+
default: return `${file} does not exist; nothing written.`;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Action behind `warlock agents-md`.
|
|
29
|
+
*
|
|
30
|
+
* Boots the app read-only (the inspect boot pass) with boot output on stderr,
|
|
31
|
+
* then prints the section (no flag), writes it (`--write`) or prints
|
|
32
|
+
* `{ file, status, section }` (`--json`; `status` is `"printed"` without
|
|
33
|
+
* `--write`). Malformed markers throw `WL7501` and nothing is written.
|
|
34
|
+
*
|
|
35
|
+
* @param data Parsed CLI args: `options.write`, `options.json`.
|
|
36
|
+
*/
|
|
37
|
+
async function agentsMdCommandAction({ options }) {
|
|
38
|
+
const cwd = process.cwd();
|
|
39
|
+
const boot = await withConsoleOnStderr(() => bootForInspect(cwd));
|
|
40
|
+
const report = await inspectApp({
|
|
41
|
+
...inspectOptionsFromBoot(boot),
|
|
42
|
+
cwd,
|
|
43
|
+
sections: AGENTS_MD_SECTIONS
|
|
44
|
+
});
|
|
45
|
+
if (options.write === true) {
|
|
46
|
+
const result = writeAgentsMd({
|
|
47
|
+
cwd,
|
|
48
|
+
report
|
|
49
|
+
});
|
|
50
|
+
console.log(options.json === true ? JSON.stringify(result, null, 2) : formatWriteStatus(result));
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const section = renderAgentsMdSection(report, {
|
|
54
|
+
skills: listInstalledSkills(cwd),
|
|
55
|
+
modules: listAppModules(cwd)
|
|
56
|
+
});
|
|
57
|
+
if (options.json === true) {
|
|
58
|
+
console.log(JSON.stringify({
|
|
59
|
+
file: path.join(cwd, AGENTS_MD_FILE),
|
|
60
|
+
status: "printed",
|
|
61
|
+
section
|
|
62
|
+
}, null, 2));
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
process.stdout.write(section);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
//#endregion
|
|
69
|
+
export { AGENTS_MD_SECTIONS, agentsMdCommandAction, formatWriteStatus };
|
|
70
|
+
//# sourceMappingURL=agents-md-command.action.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents-md-command.action.mjs","names":[],"sources":["../../../../../../../../../../packages/core/src/cli/commands/agents-md/agents-md-command.action.ts"],"sourcesContent":["import path from \"node:path\";\nimport type { CommandActionData } from \"../../../commands/types\";\nimport { AGENTS_MD_FILE } from \"../../../tooling/agents-md/agents-md-markers\";\nimport { listInstalledSkills } from \"../../../tooling/agents-md/installed-skills\";\nimport { listAppModules, renderAgentsMdSection } from \"../../../tooling/agents-md/render-agents-md\";\nimport {\n writeAgentsMd,\n type WriteAgentsMdResult,\n} from \"../../../tooling/agents-md/write-agents-md\";\nimport { bootForInspect, inspectOptionsFromBoot } from \"../../../tooling/inspect/boot-for-inspect\";\nimport { inspectApp } from \"../../../tooling/inspect/inspect-app\";\nimport type { InspectSection } from \"../../../tooling/inspect/inspect-report.types\";\nimport { withConsoleOnStderr } from \"../routes/with-console-on-stderr\";\n\n/** The inspect sections the generated section reads. */\nexport const AGENTS_MD_SECTIONS: readonly InspectSection[] = [\"routes\", \"models\", \"packages\"];\n\n/** The one line `warlock agents-md --write` prints. */\nexport function formatWriteStatus(result: Pick<WriteAgentsMdResult, \"file\" | \"status\">): string {\n const file = path.relative(process.cwd(), result.file) || AGENTS_MD_FILE;\n\n switch (result.status) {\n case \"created\":\n return `Created ${file} with the generated section.`;\n case \"updated\":\n return `Updated the generated section of ${file}.`;\n case \"unchanged\":\n return `${file} is up to date.`;\n default:\n return `${file} does not exist; nothing written.`;\n }\n}\n\n/**\n * Action behind `warlock agents-md`.\n *\n * Boots the app read-only (the inspect boot pass) with boot output on stderr,\n * then prints the section (no flag), writes it (`--write`) or prints\n * `{ file, status, section }` (`--json`; `status` is `\"printed\"` without\n * `--write`). Malformed markers throw `WL7501` and nothing is written.\n *\n * @param data Parsed CLI args: `options.write`, `options.json`.\n */\nexport async function agentsMdCommandAction({ options }: CommandActionData): Promise<void> {\n const cwd = process.cwd();\n const boot = await withConsoleOnStderr(() => bootForInspect(cwd));\n const report = await inspectApp({\n ...inspectOptionsFromBoot(boot),\n cwd,\n sections: AGENTS_MD_SECTIONS,\n });\n\n if (options.write === true) {\n const result = writeAgentsMd({ cwd, report });\n\n console.log(\n options.json === true ? JSON.stringify(result, null, 2) : formatWriteStatus(result),\n );\n return;\n }\n\n const section = renderAgentsMdSection(report, {\n skills: listInstalledSkills(cwd),\n modules: listAppModules(cwd),\n });\n\n if (options.json === true) {\n console.log(\n JSON.stringify({ file: path.join(cwd, AGENTS_MD_FILE), status: \"printed\", section }, null, 2),\n );\n return;\n }\n\n process.stdout.write(section);\n}\n"],"mappings":";;;;;;;;;;;AAeA,MAAa,qBAAgD;CAAC;CAAU;CAAU;AAAU;;AAG5F,SAAgB,kBAAkB,QAA8D;CAC9F,MAAM,OAAO,KAAK,SAAS,QAAQ,IAAI,GAAG,OAAO,IAAI;CAErD,QAAQ,OAAO,QAAf;EACE,KAAK,WACH,OAAO,WAAW,KAAK;EACzB,KAAK,WACH,OAAO,oCAAoC,KAAK;EAClD,KAAK,aACH,OAAO,GAAG,KAAK;EACjB,SACE,OAAO,GAAG,KAAK;CACnB;AACF;;;;;;;;;;;AAYA,eAAsB,sBAAsB,EAAE,WAA6C;CACzF,MAAM,MAAM,QAAQ,IAAI;CACxB,MAAM,OAAO,MAAM,0BAA0B,eAAe,GAAG,CAAC;CAChE,MAAM,SAAS,MAAM,WAAW;EAC9B,GAAG,uBAAuB,IAAI;EAC9B;EACA,UAAU;CACZ,CAAC;CAED,IAAI,QAAQ,UAAU,MAAM;EAC1B,MAAM,SAAS,cAAc;GAAE;GAAK;EAAO,CAAC;EAE5C,QAAQ,IACN,QAAQ,SAAS,OAAO,KAAK,UAAU,QAAQ,MAAM,CAAC,IAAI,kBAAkB,MAAM,CACpF;EACA;CACF;CAEA,MAAM,UAAU,sBAAsB,QAAQ;EAC5C,QAAQ,oBAAoB,GAAG;EAC/B,SAAS,eAAe,GAAG;CAC7B,CAAC;CAED,IAAI,QAAQ,SAAS,MAAM;EACzB,QAAQ,IACN,KAAK,UAAU;GAAE,MAAM,KAAK,KAAK,KAAK,cAAc;GAAG,QAAQ;GAAW;EAAQ,GAAG,MAAM,CAAC,CAC9F;EACA;CACF;CAEA,QAAQ,OAAO,MAAM,OAAO;AAC9B"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { command } from "../../commands/cli-command.mjs";
|
|
2
|
+
import { agentsMdCommandAction } from "./agents-md/agents-md-command.action.mjs";
|
|
3
|
+
|
|
4
|
+
//#region ../../packages/core/src/cli/commands/agents-md.command.ts
|
|
5
|
+
/**
|
|
6
|
+
* `warlock agents-md` — render the app-specific AGENTS.md section from the
|
|
7
|
+
* booted app (modules, routes, models, conventions, installed skills, verify
|
|
8
|
+
* commands). Prints it; `--write` puts it between the
|
|
9
|
+
* `<!-- warlock:generated:start -->` / `end` markers of AGENTS.md, creating
|
|
10
|
+
* the file when missing and never touching content outside the markers.
|
|
11
|
+
*
|
|
12
|
+
* Boots like `warlock inspect`: connectors boot but none starts, so no
|
|
13
|
+
* connection opens and no port binds.
|
|
14
|
+
*/
|
|
15
|
+
const agentsMdCommand = command({
|
|
16
|
+
name: "agents-md",
|
|
17
|
+
description: "Generate the app-specific AGENTS.md section from the booted app; --write updates it between its markers",
|
|
18
|
+
action: agentsMdCommandAction,
|
|
19
|
+
preload: {
|
|
20
|
+
runtimeStrategy: "development",
|
|
21
|
+
config: true,
|
|
22
|
+
env: true,
|
|
23
|
+
bootstrap: true
|
|
24
|
+
},
|
|
25
|
+
options: [{
|
|
26
|
+
text: "--write, -w",
|
|
27
|
+
description: "Write the section into AGENTS.md between its markers (creates the file when missing)",
|
|
28
|
+
type: "boolean"
|
|
29
|
+
}, {
|
|
30
|
+
text: "--json, -j",
|
|
31
|
+
description: "Print { file, status, section } as JSON",
|
|
32
|
+
type: "boolean"
|
|
33
|
+
}]
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
//#endregion
|
|
37
|
+
export { agentsMdCommand };
|
|
38
|
+
//# sourceMappingURL=agents-md.command.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents-md.command.mjs","names":[],"sources":["../../../../../../../../../packages/core/src/cli/commands/agents-md.command.ts"],"sourcesContent":["import { command } from \"../../commands/cli-command\";\nimport { agentsMdCommandAction } from \"./agents-md/agents-md-command.action\";\n\n/**\n * `warlock agents-md` — render the app-specific AGENTS.md section from the\n * booted app (modules, routes, models, conventions, installed skills, verify\n * commands). Prints it; `--write` puts it between the\n * `<!-- warlock:generated:start -->` / `end` markers of AGENTS.md, creating\n * the file when missing and never touching content outside the markers.\n *\n * Boots like `warlock inspect`: connectors boot but none starts, so no\n * connection opens and no port binds.\n */\nexport const agentsMdCommand = command({\n name: \"agents-md\",\n description:\n \"Generate the app-specific AGENTS.md section from the booted app; --write updates it between its markers\",\n action: agentsMdCommandAction,\n preload: {\n runtimeStrategy: \"development\",\n config: true,\n env: true,\n bootstrap: true,\n },\n options: [\n {\n text: \"--write, -w\",\n description:\n \"Write the section into AGENTS.md between its markers (creates the file when missing)\",\n type: \"boolean\",\n },\n {\n text: \"--json, -j\",\n description: \"Print { file, status, section } as JSON\",\n type: \"boolean\",\n },\n ],\n});\n"],"mappings":";;;;;;;;;;;;;;AAaA,MAAa,kBAAkB,QAAQ;CACrC,MAAM;CACN,aACE;CACF,QAAQ;CACR,SAAS;EACP,iBAAiB;EACjB,QAAQ;EACR,KAAK;EACL,WAAW;CACb;CACA,SAAS,CACP;EACE,MAAM;EACN,aACE;EACF,MAAM;CACR,GACA;EACE,MAAM;EACN,aAAa;EACb,MAAM;CACR,CACF;AACF,CAAC"}
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import { WarlockError } from "../../../errors/warlock-error.mjs";
|
|
2
|
+
import { BOARD_STATES, BOARD_VERDICT_LINES, isBoardState, isBoardVerdict } from "../../../tooling/board/board.types.mjs";
|
|
3
|
+
import { addBoardItem, initBoard, moveBoardItem, nextBoardStates, readBoardItem, readBoardStatus, sendBoardMessage, watchBoard } from "../../../tooling/board/board.mjs";
|
|
4
|
+
import { flushAndExit } from "../../flush-and-exit.mjs";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { readFileSync } from "node:fs";
|
|
7
|
+
|
|
8
|
+
//#region ../../packages/core/src/cli/commands/board/board-command.action.ts
|
|
9
|
+
/** The exit code of `warlock board watch` when it times out. */
|
|
10
|
+
const BOARD_WATCH_TIMEOUT_EXIT_CODE = 3;
|
|
11
|
+
/** The sub-commands of `warlock board`. */
|
|
12
|
+
const BOARD_ACTIONS = [
|
|
13
|
+
"init",
|
|
14
|
+
"add",
|
|
15
|
+
"status",
|
|
16
|
+
"send",
|
|
17
|
+
"watch"
|
|
18
|
+
];
|
|
19
|
+
function stringOption(options, key) {
|
|
20
|
+
const value = options[key];
|
|
21
|
+
if (typeof value === "number") return String(value);
|
|
22
|
+
return typeof value === "string" && value.trim().length > 0 ? value.trim() : void 0;
|
|
23
|
+
}
|
|
24
|
+
function parseId(value, label) {
|
|
25
|
+
const id = value === void 0 ? NaN : Number(value);
|
|
26
|
+
if (!Number.isInteger(id) || id < 1) throw new Error(`${label} must be a positive whole number, got ${JSON.stringify(value)}.`);
|
|
27
|
+
return id;
|
|
28
|
+
}
|
|
29
|
+
/** `--body text` as is; `--body @notes.md` reads the file (relative to `cwd`). */
|
|
30
|
+
function readBodyOption(value, cwd) {
|
|
31
|
+
if (value === void 0) return "";
|
|
32
|
+
return value.startsWith("@") ? readFileSync(path.resolve(cwd, value.slice(1)), "utf8") : value;
|
|
33
|
+
}
|
|
34
|
+
/** The current agent: the explicit option, else `WARLOCK_AGENT`, else `null`. */
|
|
35
|
+
function agentOf(options, key, environment) {
|
|
36
|
+
return stringOption(options, key) ?? environment.WARLOCK_AGENT ?? null;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Turn `warlock board <action> [args...]` into a {@link BoardInvocation}.
|
|
40
|
+
* Throws on an unknown action, a missing argument or an invalid value.
|
|
41
|
+
*
|
|
42
|
+
* @param args Positionals after `board`: the action first.
|
|
43
|
+
* @param options Parsed flags.
|
|
44
|
+
* @param cwd Where `--body @file` resolves.
|
|
45
|
+
* @param environment Where `WARLOCK_AGENT` is read.
|
|
46
|
+
*/
|
|
47
|
+
function parseBoardInvocation(args, options, cwd = process.cwd(), environment = process.env) {
|
|
48
|
+
const [action, ...rest] = args;
|
|
49
|
+
switch (action) {
|
|
50
|
+
case "init": return { type: "init" };
|
|
51
|
+
case "add": {
|
|
52
|
+
const title = rest.join(" ").trim();
|
|
53
|
+
if (title.length === 0) throw new Error("Usage: warlock board add \"<title>\" [--assignee a --reviewer b]");
|
|
54
|
+
return {
|
|
55
|
+
type: "add",
|
|
56
|
+
title,
|
|
57
|
+
assignee: stringOption(options, "assignee") ?? null,
|
|
58
|
+
reviewer: stringOption(options, "reviewer") ?? null,
|
|
59
|
+
by: agentOf(options, "by", environment)
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
case "status": {
|
|
63
|
+
const [idText, state] = rest;
|
|
64
|
+
if (idText === void 0) return { type: "overview" };
|
|
65
|
+
const id = parseId(idText, "The item id");
|
|
66
|
+
if (state === void 0) return {
|
|
67
|
+
type: "item",
|
|
68
|
+
id
|
|
69
|
+
};
|
|
70
|
+
if (!isBoardState(state)) throw new Error(`Unknown state ${JSON.stringify(state)}. States: ${BOARD_STATES.join(", ")}.`);
|
|
71
|
+
return {
|
|
72
|
+
type: "move",
|
|
73
|
+
id,
|
|
74
|
+
state,
|
|
75
|
+
by: agentOf(options, "by", environment),
|
|
76
|
+
note: stringOption(options, "note") ?? null
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
case "send": {
|
|
80
|
+
const [to, ...subjectWords] = rest;
|
|
81
|
+
const subject = subjectWords.join(" ").trim();
|
|
82
|
+
if (to === void 0 || subject.length === 0) throw new Error("Usage: warlock board send <agent> \"<subject>\" --from <agent> [--item id --body text|@file --verdict approved|changes-requested]");
|
|
83
|
+
const from = agentOf(options, "from", environment);
|
|
84
|
+
if (from === null) throw new Error("Name the sender with --from <agent> (or set WARLOCK_AGENT).");
|
|
85
|
+
const verdict = stringOption(options, "verdict");
|
|
86
|
+
if (verdict !== void 0 && !isBoardVerdict(verdict)) throw new Error(`--verdict must be "approved" or "changes-requested", got ${JSON.stringify(verdict)}.`);
|
|
87
|
+
const item = stringOption(options, "item");
|
|
88
|
+
return {
|
|
89
|
+
type: "send",
|
|
90
|
+
to,
|
|
91
|
+
from,
|
|
92
|
+
subject,
|
|
93
|
+
body: readBodyOption(stringOption(options, "body"), cwd),
|
|
94
|
+
item: item === void 0 ? null : parseId(item, "--item"),
|
|
95
|
+
verdict: verdict ?? null
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
case "watch": {
|
|
99
|
+
const [agent] = rest;
|
|
100
|
+
if (agent === void 0) throw new Error("Usage: warlock board watch <agent> [--timeout seconds --since N]");
|
|
101
|
+
const timeout = stringOption(options, "timeout");
|
|
102
|
+
const seconds = timeout === void 0 ? 600 : Number(timeout);
|
|
103
|
+
if (!Number.isFinite(seconds) || seconds <= 0) throw new Error(`--timeout must be a positive number of seconds, got ${JSON.stringify(timeout)}.`);
|
|
104
|
+
const since = stringOption(options, "since");
|
|
105
|
+
const sinceNumber = since === void 0 ? void 0 : Number(since);
|
|
106
|
+
if (sinceNumber !== void 0 && (!Number.isInteger(sinceNumber) || sinceNumber < 0)) throw new Error(`--since must be a whole number, got ${JSON.stringify(since)}.`);
|
|
107
|
+
return {
|
|
108
|
+
type: "watch",
|
|
109
|
+
agent,
|
|
110
|
+
timeoutMs: Math.round(seconds * 1e3),
|
|
111
|
+
since: sinceNumber
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
default: throw new Error(`Unknown board action ${JSON.stringify(action ?? "")}. Actions: ${BOARD_ACTIONS.join(", ")}.`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/** `#3 [in-progress] Add the orders module (implementer → reviewer)` */
|
|
118
|
+
function formatBoardItemLine(item) {
|
|
119
|
+
const people = item.assignee || item.reviewer ? ` (${item.assignee ?? "-"} → ${item.reviewer ?? "-"})` : "";
|
|
120
|
+
return `#${item.id} [${item.state}] ${item.title}${people}`;
|
|
121
|
+
}
|
|
122
|
+
function formatMessage(message) {
|
|
123
|
+
const about = message.item === null ? "" : ` (item #${message.item})`;
|
|
124
|
+
return [
|
|
125
|
+
`── ${message.file}`,
|
|
126
|
+
`From ${message.from}${about}: ${message.subject}`,
|
|
127
|
+
...message.body.length > 0 ? ["", message.body] : [],
|
|
128
|
+
...message.verdict ? ["", BOARD_VERDICT_LINES[message.verdict]] : [],
|
|
129
|
+
""
|
|
130
|
+
];
|
|
131
|
+
}
|
|
132
|
+
/** Run one parsed invocation against the board in `cwd`. Throws `WarlockError`s with WL74xx codes. */
|
|
133
|
+
async function runBoardInvocation(invocation, cwd = process.cwd()) {
|
|
134
|
+
switch (invocation.type) {
|
|
135
|
+
case "init": {
|
|
136
|
+
const result = initBoard(cwd);
|
|
137
|
+
return {
|
|
138
|
+
json: {
|
|
139
|
+
ok: true,
|
|
140
|
+
...result
|
|
141
|
+
},
|
|
142
|
+
lines: [result.created ? `Created ${result.directory}/` : `${result.directory}/ already exists`, ...result.gitignoreUpdated ? [`Added ${result.directory}/ to .gitignore`] : []],
|
|
143
|
+
exitCode: 0
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
case "add": {
|
|
147
|
+
const item = addBoardItem({
|
|
148
|
+
title: invocation.title,
|
|
149
|
+
assignee: invocation.assignee,
|
|
150
|
+
reviewer: invocation.reviewer,
|
|
151
|
+
by: invocation.by
|
|
152
|
+
}, cwd);
|
|
153
|
+
return {
|
|
154
|
+
json: {
|
|
155
|
+
ok: true,
|
|
156
|
+
item
|
|
157
|
+
},
|
|
158
|
+
lines: [`Added ${formatBoardItemLine(item)}`],
|
|
159
|
+
exitCode: 0
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
case "overview": {
|
|
163
|
+
const status = readBoardStatus(cwd);
|
|
164
|
+
const lines = status.items.length === 0 ? ["No items. Add one with `warlock board add \"<title>\"`."] : status.items.map(formatBoardItemLine);
|
|
165
|
+
if (status.inboxes.length > 0) {
|
|
166
|
+
lines.push("", "Inboxes:");
|
|
167
|
+
for (const inbox of status.inboxes) lines.push(` ${inbox.agent.padEnd(16)} ${inbox.messages} message(s), ${inbox.unread} unread`);
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
json: {
|
|
171
|
+
ok: true,
|
|
172
|
+
...status
|
|
173
|
+
},
|
|
174
|
+
lines,
|
|
175
|
+
exitCode: 0
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
case "item": {
|
|
179
|
+
const item = readBoardItem(invocation.id, cwd);
|
|
180
|
+
const next = nextBoardStates(item.state);
|
|
181
|
+
return {
|
|
182
|
+
json: {
|
|
183
|
+
ok: true,
|
|
184
|
+
item,
|
|
185
|
+
next
|
|
186
|
+
},
|
|
187
|
+
lines: [
|
|
188
|
+
formatBoardItemLine(item),
|
|
189
|
+
` next: ${next.join(", ")}`,
|
|
190
|
+
...item.history.map((entry) => ` ${entry.at} ${entry.from ?? "∅"} → ${entry.to}${entry.by ? ` by ${entry.by}` : ""}${entry.note ? ` — ${entry.note}` : ""}`)
|
|
191
|
+
],
|
|
192
|
+
exitCode: 0
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
case "move": {
|
|
196
|
+
const item = moveBoardItem(invocation.id, invocation.state, {
|
|
197
|
+
by: invocation.by,
|
|
198
|
+
note: invocation.note
|
|
199
|
+
}, cwd);
|
|
200
|
+
return {
|
|
201
|
+
json: {
|
|
202
|
+
ok: true,
|
|
203
|
+
item
|
|
204
|
+
},
|
|
205
|
+
lines: [`Moved ${formatBoardItemLine(item)}`],
|
|
206
|
+
exitCode: 0
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
case "send": {
|
|
210
|
+
const result = sendBoardMessage({
|
|
211
|
+
to: invocation.to,
|
|
212
|
+
from: invocation.from,
|
|
213
|
+
subject: invocation.subject,
|
|
214
|
+
body: invocation.body,
|
|
215
|
+
item: invocation.item,
|
|
216
|
+
verdict: invocation.verdict
|
|
217
|
+
}, cwd);
|
|
218
|
+
return {
|
|
219
|
+
json: {
|
|
220
|
+
ok: true,
|
|
221
|
+
...result
|
|
222
|
+
},
|
|
223
|
+
lines: [`Wrote ${result.message.file}`, ...result.item ? [`Moved ${formatBoardItemLine(result.item)}`] : []],
|
|
224
|
+
exitCode: 0
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
case "watch": {
|
|
228
|
+
const result = await watchBoard({
|
|
229
|
+
agent: invocation.agent,
|
|
230
|
+
timeoutMs: invocation.timeoutMs,
|
|
231
|
+
since: invocation.since
|
|
232
|
+
}, cwd);
|
|
233
|
+
return {
|
|
234
|
+
json: {
|
|
235
|
+
ok: true,
|
|
236
|
+
timedOut: false,
|
|
237
|
+
...result
|
|
238
|
+
},
|
|
239
|
+
lines: result.messages.flatMap(formatMessage),
|
|
240
|
+
exitCode: 0
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Action behind `warlock board <action> [args...]`.
|
|
247
|
+
*
|
|
248
|
+
* With `--json`, stdout carries exactly one JSON object — `{ ok: true, … }`, or
|
|
249
|
+
* `{ ok: false, code, message }` for a coded failure (`timedOut: true` for a
|
|
250
|
+
* watch timeout). Exit codes: 0 done, 1 refused or invalid, 3 watch timed out.
|
|
251
|
+
*
|
|
252
|
+
* @param data Parsed CLI args: the action and its positionals, and the flags.
|
|
253
|
+
*/
|
|
254
|
+
async function boardCommandAction({ args, options }) {
|
|
255
|
+
const json = options.json === true;
|
|
256
|
+
try {
|
|
257
|
+
const outcome = await runBoardInvocation(parseBoardInvocation(args, options));
|
|
258
|
+
if (json) console.log(JSON.stringify(outcome.json, null, 2));
|
|
259
|
+
else for (const line of outcome.lines) console.log(line);
|
|
260
|
+
if (outcome.exitCode !== 0) await flushAndExit(outcome.exitCode);
|
|
261
|
+
} catch (error) {
|
|
262
|
+
const timedOut = error instanceof WarlockError && error.code === "WL7404";
|
|
263
|
+
const exitCode = timedOut ? 3 : 1;
|
|
264
|
+
if (!json && !timedOut) throw error;
|
|
265
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
266
|
+
if (json) console.log(JSON.stringify({
|
|
267
|
+
ok: false,
|
|
268
|
+
code: error instanceof WarlockError ? error.code : null,
|
|
269
|
+
message,
|
|
270
|
+
...timedOut ? { timedOut: true } : {}
|
|
271
|
+
}, null, 2));
|
|
272
|
+
else console.error(message);
|
|
273
|
+
await flushAndExit(exitCode);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
//#endregion
|
|
278
|
+
export { BOARD_ACTIONS, boardCommandAction, formatBoardItemLine, parseBoardInvocation, readBodyOption, runBoardInvocation };
|
|
279
|
+
//# sourceMappingURL=board-command.action.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"board-command.action.mjs","names":[],"sources":["../../../../../../../../../../packages/core/src/cli/commands/board/board-command.action.ts"],"sourcesContent":["import { readFileSync } from \"node:fs\";\nimport path from \"node:path\";\nimport type { CommandActionData } from \"../../../commands/types\";\nimport { WarlockError } from \"../../../errors/warlock-error\";\nimport {\n addBoardItem,\n initBoard,\n moveBoardItem,\n nextBoardStates,\n readBoardItem,\n readBoardStatus,\n sendBoardMessage,\n watchBoard,\n} from \"../../../tooling/board/board\";\nimport {\n BOARD_STATES,\n BOARD_VERDICT_LINES,\n type BoardItem,\n type BoardMessage,\n type BoardState,\n type BoardVerdict,\n isBoardState,\n isBoardVerdict,\n} from \"../../../tooling/board/board.types\";\nimport { flushAndExit } from \"../../flush-and-exit\";\n\n/** The exit code of `warlock board watch` when it times out. */\nexport const BOARD_WATCH_TIMEOUT_EXIT_CODE = 3;\n\n/** The sub-commands of `warlock board`. */\nexport const BOARD_ACTIONS = [\"init\", \"add\", \"status\", \"send\", \"watch\"] as const;\n\n/** One parsed `warlock board …` invocation. */\nexport type BoardInvocation =\n | { type: \"init\" }\n | {\n type: \"add\";\n title: string;\n assignee: string | null;\n reviewer: string | null;\n by: string | null;\n }\n | { type: \"overview\" }\n | { type: \"item\"; id: number }\n | { type: \"move\"; id: number; state: BoardState; by: string | null; note: string | null }\n | {\n type: \"send\";\n to: string;\n from: string;\n subject: string;\n body: string;\n item: number | null;\n verdict: BoardVerdict | null;\n }\n | { type: \"watch\"; agent: string; timeoutMs: number; since: number | undefined };\n\ntype Options = CommandActionData[\"options\"];\n\nfunction stringOption(options: Options, key: string): string | undefined {\n const value = options[key];\n\n if (typeof value === \"number\") return String(value);\n\n return typeof value === \"string\" && value.trim().length > 0 ? value.trim() : undefined;\n}\n\nfunction parseId(value: string | undefined, label: string): number {\n const id = value === undefined ? Number.NaN : Number(value);\n\n if (!Number.isInteger(id) || id < 1) {\n throw new Error(`${label} must be a positive whole number, got ${JSON.stringify(value)}.`);\n }\n\n return id;\n}\n\n/** `--body text` as is; `--body @notes.md` reads the file (relative to `cwd`). */\nexport function readBodyOption(value: string | undefined, cwd: string): string {\n if (value === undefined) return \"\";\n\n return value.startsWith(\"@\") ? readFileSync(path.resolve(cwd, value.slice(1)), \"utf8\") : value;\n}\n\n/** The current agent: the explicit option, else `WARLOCK_AGENT`, else `null`. */\nfunction agentOf(options: Options, key: string, environment: NodeJS.ProcessEnv): string | null {\n return stringOption(options, key) ?? environment.WARLOCK_AGENT ?? null;\n}\n\n/**\n * Turn `warlock board <action> [args...]` into a {@link BoardInvocation}.\n * Throws on an unknown action, a missing argument or an invalid value.\n *\n * @param args Positionals after `board`: the action first.\n * @param options Parsed flags.\n * @param cwd Where `--body @file` resolves.\n * @param environment Where `WARLOCK_AGENT` is read.\n */\nexport function parseBoardInvocation(\n args: readonly string[],\n options: Options,\n cwd = process.cwd(),\n environment: NodeJS.ProcessEnv = process.env,\n): BoardInvocation {\n const [action, ...rest] = args;\n\n switch (action) {\n case \"init\":\n return { type: \"init\" };\n\n case \"add\": {\n const title = rest.join(\" \").trim();\n\n if (title.length === 0)\n throw new Error('Usage: warlock board add \"<title>\" [--assignee a --reviewer b]');\n\n return {\n type: \"add\",\n title,\n assignee: stringOption(options, \"assignee\") ?? null,\n reviewer: stringOption(options, \"reviewer\") ?? null,\n by: agentOf(options, \"by\", environment),\n };\n }\n\n case \"status\": {\n const [idText, state] = rest;\n\n if (idText === undefined) return { type: \"overview\" };\n\n const id = parseId(idText, \"The item id\");\n\n if (state === undefined) return { type: \"item\", id };\n\n if (!isBoardState(state)) {\n throw new Error(\n `Unknown state ${JSON.stringify(state)}. States: ${BOARD_STATES.join(\", \")}.`,\n );\n }\n\n return {\n type: \"move\",\n id,\n state,\n by: agentOf(options, \"by\", environment),\n note: stringOption(options, \"note\") ?? null,\n };\n }\n\n case \"send\": {\n const [to, ...subjectWords] = rest;\n const subject = subjectWords.join(\" \").trim();\n\n if (to === undefined || subject.length === 0) {\n throw new Error(\n 'Usage: warlock board send <agent> \"<subject>\" --from <agent> [--item id --body text|@file --verdict approved|changes-requested]',\n );\n }\n\n const from = agentOf(options, \"from\", environment);\n\n if (from === null) {\n throw new Error(\"Name the sender with --from <agent> (or set WARLOCK_AGENT).\");\n }\n\n const verdict = stringOption(options, \"verdict\");\n\n if (verdict !== undefined && !isBoardVerdict(verdict)) {\n throw new Error(\n `--verdict must be \"approved\" or \"changes-requested\", got ${JSON.stringify(verdict)}.`,\n );\n }\n\n const item = stringOption(options, \"item\");\n\n return {\n type: \"send\",\n to,\n from,\n subject,\n body: readBodyOption(stringOption(options, \"body\"), cwd),\n item: item === undefined ? null : parseId(item, \"--item\"),\n verdict: verdict ?? null,\n };\n }\n\n case \"watch\": {\n const [agent] = rest;\n\n if (agent === undefined)\n throw new Error(\"Usage: warlock board watch <agent> [--timeout seconds --since N]\");\n\n const timeout = stringOption(options, \"timeout\");\n const seconds = timeout === undefined ? 600 : Number(timeout);\n\n if (!Number.isFinite(seconds) || seconds <= 0) {\n throw new Error(\n `--timeout must be a positive number of seconds, got ${JSON.stringify(timeout)}.`,\n );\n }\n\n const since = stringOption(options, \"since\");\n const sinceNumber = since === undefined ? undefined : Number(since);\n\n if (sinceNumber !== undefined && (!Number.isInteger(sinceNumber) || sinceNumber < 0)) {\n throw new Error(`--since must be a whole number, got ${JSON.stringify(since)}.`);\n }\n\n return { type: \"watch\", agent, timeoutMs: Math.round(seconds * 1000), since: sinceNumber };\n }\n\n default:\n throw new Error(\n `Unknown board action ${JSON.stringify(action ?? \"\")}. Actions: ${BOARD_ACTIONS.join(\", \")}.`,\n );\n }\n}\n\n/** `#3 [in-progress] Add the orders module (implementer → reviewer)` */\nexport function formatBoardItemLine(item: BoardItem): string {\n const people =\n item.assignee || item.reviewer ? ` (${item.assignee ?? \"-\"} → ${item.reviewer ?? \"-\"})` : \"\";\n\n return `#${item.id} [${item.state}] ${item.title}${people}`;\n}\n\nfunction formatMessage(message: BoardMessage): string[] {\n const about = message.item === null ? \"\" : ` (item #${message.item})`;\n\n return [\n `── ${message.file}`,\n `From ${message.from}${about}: ${message.subject}`,\n ...(message.body.length > 0 ? [\"\", message.body] : []),\n ...(message.verdict ? [\"\", BOARD_VERDICT_LINES[message.verdict]] : []),\n \"\",\n ];\n}\n\n/** What one invocation produced: the JSON to print, the human lines, and the exit code. */\nexport type BoardOutcome = { json: unknown; lines: string[]; exitCode: number };\n\n/** Run one parsed invocation against the board in `cwd`. Throws `WarlockError`s with WL74xx codes. */\nexport async function runBoardInvocation(\n invocation: BoardInvocation,\n cwd = process.cwd(),\n): Promise<BoardOutcome> {\n switch (invocation.type) {\n case \"init\": {\n const result = initBoard(cwd);\n\n return {\n json: { ok: true, ...result },\n lines: [\n result.created ? `Created ${result.directory}/` : `${result.directory}/ already exists`,\n ...(result.gitignoreUpdated ? [`Added ${result.directory}/ to .gitignore`] : []),\n ],\n exitCode: 0,\n };\n }\n\n case \"add\": {\n const item = addBoardItem(\n {\n title: invocation.title,\n assignee: invocation.assignee,\n reviewer: invocation.reviewer,\n by: invocation.by,\n },\n cwd,\n );\n\n return {\n json: { ok: true, item },\n lines: [`Added ${formatBoardItemLine(item)}`],\n exitCode: 0,\n };\n }\n\n case \"overview\": {\n const status = readBoardStatus(cwd);\n const lines =\n status.items.length === 0\n ? ['No items. Add one with `warlock board add \"<title>\"`.']\n : status.items.map(formatBoardItemLine);\n\n if (status.inboxes.length > 0) {\n lines.push(\"\", \"Inboxes:\");\n\n for (const inbox of status.inboxes) {\n lines.push(\n ` ${inbox.agent.padEnd(16)} ${inbox.messages} message(s), ${inbox.unread} unread`,\n );\n }\n }\n\n return { json: { ok: true, ...status }, lines, exitCode: 0 };\n }\n\n case \"item\": {\n const item = readBoardItem(invocation.id, cwd);\n const next = nextBoardStates(item.state);\n\n return {\n json: { ok: true, item, next },\n lines: [\n formatBoardItemLine(item),\n ` next: ${next.join(\", \")}`,\n ...item.history.map(\n (entry) =>\n ` ${entry.at} ${entry.from ?? \"∅\"} → ${entry.to}${entry.by ? ` by ${entry.by}` : \"\"}${entry.note ? ` — ${entry.note}` : \"\"}`,\n ),\n ],\n exitCode: 0,\n };\n }\n\n case \"move\": {\n const item = moveBoardItem(\n invocation.id,\n invocation.state,\n { by: invocation.by, note: invocation.note },\n cwd,\n );\n\n return {\n json: { ok: true, item },\n lines: [`Moved ${formatBoardItemLine(item)}`],\n exitCode: 0,\n };\n }\n\n case \"send\": {\n const result = sendBoardMessage(\n {\n to: invocation.to,\n from: invocation.from,\n subject: invocation.subject,\n body: invocation.body,\n item: invocation.item,\n verdict: invocation.verdict,\n },\n cwd,\n );\n\n return {\n json: { ok: true, ...result },\n lines: [\n `Wrote ${result.message.file}`,\n ...(result.item ? [`Moved ${formatBoardItemLine(result.item)}`] : []),\n ],\n exitCode: 0,\n };\n }\n\n case \"watch\": {\n const result = await watchBoard(\n { agent: invocation.agent, timeoutMs: invocation.timeoutMs, since: invocation.since },\n cwd,\n );\n\n return {\n json: { ok: true, timedOut: false, ...result },\n lines: result.messages.flatMap(formatMessage),\n exitCode: 0,\n };\n }\n }\n}\n\n/**\n * Action behind `warlock board <action> [args...]`.\n *\n * With `--json`, stdout carries exactly one JSON object — `{ ok: true, … }`, or\n * `{ ok: false, code, message }` for a coded failure (`timedOut: true` for a\n * watch timeout). Exit codes: 0 done, 1 refused or invalid, 3 watch timed out.\n *\n * @param data Parsed CLI args: the action and its positionals, and the flags.\n */\nexport async function boardCommandAction({ args, options }: CommandActionData): Promise<void> {\n const json = options.json === true;\n\n try {\n const outcome = await runBoardInvocation(parseBoardInvocation(args, options));\n\n if (json) {\n console.log(JSON.stringify(outcome.json, null, 2));\n } else {\n for (const line of outcome.lines) console.log(line);\n }\n\n if (outcome.exitCode !== 0) await flushAndExit(outcome.exitCode);\n } catch (error) {\n const timedOut = error instanceof WarlockError && error.code === \"WL7404\";\n const exitCode = timedOut ? BOARD_WATCH_TIMEOUT_EXIT_CODE : 1;\n\n if (!json && !timedOut) throw error;\n\n const message = error instanceof Error ? error.message : String(error);\n\n if (json) {\n console.log(\n JSON.stringify(\n {\n ok: false,\n code: error instanceof WarlockError ? error.code : null,\n message,\n ...(timedOut ? { timedOut: true } : {}),\n },\n null,\n 2,\n ),\n );\n } else {\n console.error(message);\n }\n\n await flushAndExit(exitCode);\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { command } from "../../commands/cli-command.mjs";
|
|
2
|
+
import { boardCommandAction } from "./board/board-command.action.mjs";
|
|
3
|
+
|
|
4
|
+
//#region ../../packages/core/src/cli/commands/board.command.ts
|
|
5
|
+
/**
|
|
6
|
+
* `warlock board <action>` — the agent board: work items and append-only
|
|
7
|
+
* messages two coding agents (an implementer and a reviewer) share in the
|
|
8
|
+
* git-ignored `.warlock/board/` folder.
|
|
9
|
+
*
|
|
10
|
+
* Actions: `init`, `add <title>`, `status [id] [state]`, `send <agent>
|
|
11
|
+
* <subject>`, `watch <agent>`. No preload: it reads and writes files only.
|
|
12
|
+
*/
|
|
13
|
+
const boardCommand = command({
|
|
14
|
+
name: "board <action> [args...]",
|
|
15
|
+
description: "Agent board: init | add <title> | status [id] [state] | send <agent> <subject> | watch <agent> (items and messages in .warlock/board/)",
|
|
16
|
+
action: boardCommandAction,
|
|
17
|
+
options: [
|
|
18
|
+
{
|
|
19
|
+
text: "--json, -j",
|
|
20
|
+
description: "Print one JSON object (stdout carries only the JSON)",
|
|
21
|
+
type: "boolean"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
text: "--assignee",
|
|
25
|
+
description: "add: the agent doing the work",
|
|
26
|
+
type: "string"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
text: "--reviewer",
|
|
30
|
+
description: "add: the agent reviewing it",
|
|
31
|
+
type: "string"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
text: "--by",
|
|
35
|
+
description: "add, status: the agent making the change (default: WARLOCK_AGENT)",
|
|
36
|
+
type: "string"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
text: "--note",
|
|
40
|
+
description: "status <id> <state>: why the item moved",
|
|
41
|
+
type: "string"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
text: "--from",
|
|
45
|
+
description: "send: the sending agent (default: WARLOCK_AGENT)",
|
|
46
|
+
type: "string"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
text: "--item",
|
|
50
|
+
description: "send: the item id the message is about",
|
|
51
|
+
type: "string"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
text: "--body",
|
|
55
|
+
description: "send: the message body, or @file to read it from a file",
|
|
56
|
+
type: "string"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
text: "--verdict",
|
|
60
|
+
description: "send: approved | changes-requested (also moves --item to that state)",
|
|
61
|
+
type: "string"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
text: "--timeout",
|
|
65
|
+
description: "watch: seconds to wait before giving up with exit code 3 (default 600)",
|
|
66
|
+
type: "string"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
text: "--since",
|
|
70
|
+
description: "watch: return messages numbered above N (default: the agent's cursor)",
|
|
71
|
+
type: "string"
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
//#endregion
|
|
77
|
+
export { boardCommand };
|
|
78
|
+
//# sourceMappingURL=board.command.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"board.command.mjs","names":[],"sources":["../../../../../../../../../packages/core/src/cli/commands/board.command.ts"],"sourcesContent":["import { command } from \"../../commands/cli-command\";\nimport { boardCommandAction } from \"./board/board-command.action\";\n\n/**\n * `warlock board <action>` — the agent board: work items and append-only\n * messages two coding agents (an implementer and a reviewer) share in the\n * git-ignored `.warlock/board/` folder.\n *\n * Actions: `init`, `add <title>`, `status [id] [state]`, `send <agent>\n * <subject>`, `watch <agent>`. No preload: it reads and writes files only.\n */\nexport const boardCommand = command({\n name: \"board <action> [args...]\",\n description:\n \"Agent board: init | add <title> | status [id] [state] | send <agent> <subject> | watch <agent> (items and messages in .warlock/board/)\",\n action: boardCommandAction,\n options: [\n {\n text: \"--json, -j\",\n description: \"Print one JSON object (stdout carries only the JSON)\",\n type: \"boolean\",\n },\n {\n text: \"--assignee\",\n description: \"add: the agent doing the work\",\n type: \"string\",\n },\n {\n text: \"--reviewer\",\n description: \"add: the agent reviewing it\",\n type: \"string\",\n },\n {\n text: \"--by\",\n description: \"add, status: the agent making the change (default: WARLOCK_AGENT)\",\n type: \"string\",\n },\n {\n text: \"--note\",\n description: \"status <id> <state>: why the item moved\",\n type: \"string\",\n },\n {\n text: \"--from\",\n description: \"send: the sending agent (default: WARLOCK_AGENT)\",\n type: \"string\",\n },\n {\n text: \"--item\",\n description: \"send: the item id the message is about\",\n type: \"string\",\n },\n {\n text: \"--body\",\n description: \"send: the message body, or @file to read it from a file\",\n type: \"string\",\n },\n {\n text: \"--verdict\",\n description: \"send: approved | changes-requested (also moves --item to that state)\",\n type: \"string\",\n },\n {\n text: \"--timeout\",\n description: \"watch: seconds to wait before giving up with exit code 3 (default 600)\",\n type: \"string\",\n },\n {\n text: \"--since\",\n description: \"watch: return messages numbered above N (default: the agent's cursor)\",\n type: \"string\",\n },\n ],\n});\n"],"mappings":";;;;;;;;;;;;AAWA,MAAa,eAAe,QAAQ;CAClC,MAAM;CACN,aACE;CACF,QAAQ;CACR,SAAS;EACP;GACE,MAAM;GACN,aAAa;GACb,MAAM;EACR;EACA;GACE,MAAM;GACN,aAAa;GACb,MAAM;EACR;EACA;GACE,MAAM;GACN,aAAa;GACb,MAAM;EACR;EACA;GACE,MAAM;GACN,aAAa;GACb,MAAM;EACR;EACA;GACE,MAAM;GACN,aAAa;GACb,MAAM;EACR;EACA;GACE,MAAM;GACN,aAAa;GACb,MAAM;EACR;EACA;GACE,MAAM;GACN,aAAa;GACb,MAAM;EACR;EACA;GACE,MAAM;GACN,aAAa;GACb,MAAM;EACR;EACA;GACE,MAAM;GACN,aAAa;GACb,MAAM;EACR;EACA;GACE,MAAM;GACN,aAAa;GACb,MAAM;EACR;EACA;GACE,MAAM;GACN,aAAa;GACb,MAAM;EACR;CACF;AACF,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { unverifiedBuildRuntimeNotice } from "../../utils/runtime.mjs";
|
|
1
2
|
import { command } from "../../commands/cli-command.mjs";
|
|
2
3
|
import { buildAppProduction } from "../../production/build-app-production.mjs";
|
|
3
4
|
|
|
@@ -6,7 +7,11 @@ const buildCommand = command({
|
|
|
6
7
|
name: "build",
|
|
7
8
|
description: "Build the project for production",
|
|
8
9
|
action: buildAppProduction,
|
|
9
|
-
preload: { warlockConfig: true }
|
|
10
|
+
preload: { warlockConfig: true },
|
|
11
|
+
preAction: () => {
|
|
12
|
+
const notice = unverifiedBuildRuntimeNotice();
|
|
13
|
+
if (notice !== void 0) console.error(notice);
|
|
14
|
+
}
|
|
10
15
|
});
|
|
11
16
|
|
|
12
17
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.command.mjs","names":[],"sources":["../../../../../../../../../packages/core/src/cli/commands/build.command.ts"],"sourcesContent":["import { buildAppProduction } from \"../../production/build-app-production\";\nimport { command } from \"../../commands/cli-command\";\n\nexport const buildCommand = command({\n name: \"build\",\n description: \"Build the project for production\",\n action: buildAppProduction,\n preload: {\n warlockConfig: true,\n },\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.command.mjs","names":[],"sources":["../../../../../../../../../packages/core/src/cli/commands/build.command.ts"],"sourcesContent":["import { buildAppProduction } from \"../../production/build-app-production\";\nimport { command } from \"../../commands/cli-command\";\nimport { unverifiedBuildRuntimeNotice } from \"../../utils/runtime\";\n\nexport const buildCommand = command({\n name: \"build\",\n description: \"Build the project for production\",\n action: buildAppProduction,\n preload: {\n warlockConfig: true,\n },\n preAction: () => {\n // Bun and Deno can usually run the build, but only the Node build is\n // verified; say so on stderr without failing the command.\n const notice = unverifiedBuildRuntimeNotice();\n\n if (notice !== undefined) {\n console.error(notice);\n }\n },\n});\n"],"mappings":";;;;;AAIA,MAAa,eAAe,QAAQ;CAClC,MAAM;CACN,aAAa;CACb,QAAQ;CACR,SAAS,EACP,eAAe,KACjB;CACA,iBAAiB;EAGf,MAAM,SAAS,6BAA6B;EAE5C,IAAI,WAAW,QACb,QAAQ,MAAM,MAAM;CAExB;AACF,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { flushAndExit } from "../../flush-and-exit.mjs";
|
|
2
|
+
import { CHECK_STEPS } from "../../../tooling/check/check-report.types.mjs";
|
|
3
|
+
import { runCheck } from "../../../tooling/check/run-check.mjs";
|
|
4
|
+
import { childTypecheckRunner } from "./child-typecheck.mjs";
|
|
5
|
+
import { formatCheckSummary, printProblems } from "./format-problems.mjs";
|
|
6
|
+
|
|
7
|
+
//#region ../../packages/core/src/cli/commands/check/check-command.action.ts
|
|
8
|
+
function stringOption(value) {
|
|
9
|
+
return typeof value === "string" && value.trim().length > 0 ? value.trim() : void 0;
|
|
10
|
+
}
|
|
11
|
+
function isStepName(value) {
|
|
12
|
+
return CHECK_STEPS.includes(value);
|
|
13
|
+
}
|
|
14
|
+
/** Parse `--skip typecheck,lint`; throws on an unknown step name. */
|
|
15
|
+
function parseSkippedSteps(value) {
|
|
16
|
+
if (!value) return [];
|
|
17
|
+
const names = value.split(",").map((name) => name.trim()).filter((name) => name.length > 0);
|
|
18
|
+
const unknown = names.filter((name) => !isStepName(name));
|
|
19
|
+
if (unknown.length > 0) throw new Error(`Unknown check step(s): ${unknown.join(", ")}. Valid steps: ${CHECK_STEPS.join(", ")}.`);
|
|
20
|
+
return names.filter(isStepName);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Action behind `warlock check`.
|
|
24
|
+
*
|
|
25
|
+
* Runs {@link runCheck} with the typecheck in a child `warlock typecheck`
|
|
26
|
+
* process (so a heap overflow is reported, not fatal), prints the problems and
|
|
27
|
+
* the step summary — or, with `--json`, exactly the report — and exits with
|
|
28
|
+
* the report's code: 0 clean, 1 your code, 2 this machine.
|
|
29
|
+
*
|
|
30
|
+
* @param data Parsed CLI args: `changed`, `base`, `skip`, `project`, `json`.
|
|
31
|
+
*/
|
|
32
|
+
async function checkCommandAction({ options }) {
|
|
33
|
+
const base = stringOption(options.base);
|
|
34
|
+
const changed = options.changed === true || base !== void 0;
|
|
35
|
+
const project = stringOption(options.project);
|
|
36
|
+
const skip = parseSkippedSteps(stringOption(options.skip));
|
|
37
|
+
const cliEntry = process.argv[1];
|
|
38
|
+
const flags = [...changed ? ["--changed"] : [], ...base ? ["--base", base] : []];
|
|
39
|
+
const report = await runCheck({
|
|
40
|
+
changed,
|
|
41
|
+
base,
|
|
42
|
+
skip,
|
|
43
|
+
project,
|
|
44
|
+
...cliEntry ? { typecheck: childTypecheckRunner(cliEntry, flags) } : {}
|
|
45
|
+
});
|
|
46
|
+
if (options.json === true) console.log(JSON.stringify(report, null, 2));
|
|
47
|
+
else {
|
|
48
|
+
printProblems(report.problems);
|
|
49
|
+
if (report.problems.length > 0) console.log("");
|
|
50
|
+
for (const line of formatCheckSummary(report)) console.log(line);
|
|
51
|
+
}
|
|
52
|
+
if (report.exitCode !== 0) await flushAndExit(report.exitCode);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
//#endregion
|
|
56
|
+
export { checkCommandAction, parseSkippedSteps };
|
|
57
|
+
//# sourceMappingURL=check-command.action.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-command.action.mjs","names":[],"sources":["../../../../../../../../../../packages/core/src/cli/commands/check/check-command.action.ts"],"sourcesContent":["import type { CommandActionData } from \"../../../commands/types\";\nimport { CHECK_STEPS, type CheckStepName } from \"../../../tooling/check/check-report.types\";\nimport { runCheck } from \"../../../tooling/check/run-check\";\nimport { flushAndExit } from \"../../flush-and-exit\";\nimport { childTypecheckRunner } from \"./child-typecheck\";\nimport { formatCheckSummary, printProblems } from \"./format-problems\";\n\nfunction stringOption(value: string | number | boolean | undefined): string | undefined {\n return typeof value === \"string\" && value.trim().length > 0 ? value.trim() : undefined;\n}\n\nfunction isStepName(value: string): value is CheckStepName {\n return (CHECK_STEPS as readonly string[]).includes(value);\n}\n\n/** Parse `--skip typecheck,lint`; throws on an unknown step name. */\nexport function parseSkippedSteps(value: string | undefined): CheckStepName[] {\n if (!value) return [];\n\n const names = value\n .split(\",\")\n .map((name) => name.trim())\n .filter((name) => name.length > 0);\n const unknown = names.filter((name) => !isStepName(name));\n\n if (unknown.length > 0) {\n throw new Error(\n `Unknown check step(s): ${unknown.join(\", \")}. Valid steps: ${CHECK_STEPS.join(\", \")}.`,\n );\n }\n\n return names.filter(isStepName);\n}\n\n/**\n * Action behind `warlock check`.\n *\n * Runs {@link runCheck} with the typecheck in a child `warlock typecheck`\n * process (so a heap overflow is reported, not fatal), prints the problems and\n * the step summary — or, with `--json`, exactly the report — and exits with\n * the report's code: 0 clean, 1 your code, 2 this machine.\n *\n * @param data Parsed CLI args: `changed`, `base`, `skip`, `project`, `json`.\n */\nexport async function checkCommandAction({ options }: CommandActionData): Promise<void> {\n const base = stringOption(options.base);\n const changed = options.changed === true || base !== undefined;\n const project = stringOption(options.project);\n const skip = parseSkippedSteps(stringOption(options.skip));\n const cliEntry = process.argv[1];\n const flags = [...(changed ? [\"--changed\"] : []), ...(base ? [\"--base\", base] : [])];\n\n const report = await runCheck({\n changed,\n base,\n skip,\n project,\n ...(cliEntry ? { typecheck: childTypecheckRunner(cliEntry, flags) } : {}),\n });\n\n if (options.json === true) {\n console.log(JSON.stringify(report, null, 2));\n } else {\n printProblems(report.problems);\n\n if (report.problems.length > 0) console.log(\"\");\n\n for (const line of formatCheckSummary(report)) {\n console.log(line);\n }\n }\n\n if (report.exitCode !== 0) {\n await flushAndExit(report.exitCode);\n }\n}\n"],"mappings":";;;;;;;AAOA,SAAS,aAAa,OAAkE;CACtF,OAAO,OAAO,UAAU,YAAY,MAAM,KAAK,CAAC,CAAC,SAAS,IAAI,MAAM,KAAK,IAAI;AAC/E;AAEA,SAAS,WAAW,OAAuC;CACzD,OAAQ,YAAkC,SAAS,KAAK;AAC1D;;AAGA,SAAgB,kBAAkB,OAA4C;CAC5E,IAAI,CAAC,OAAO,OAAO,CAAC;CAEpB,MAAM,QAAQ,MACX,MAAM,GAAG,CAAC,CACV,KAAK,SAAS,KAAK,KAAK,CAAC,CAAC,CAC1B,QAAQ,SAAS,KAAK,SAAS,CAAC;CACnC,MAAM,UAAU,MAAM,QAAQ,SAAS,CAAC,WAAW,IAAI,CAAC;CAExD,IAAI,QAAQ,SAAS,GACnB,MAAM,IAAI,MACR,0BAA0B,QAAQ,KAAK,IAAI,EAAE,iBAAiB,YAAY,KAAK,IAAI,EAAE,EACvF;CAGF,OAAO,MAAM,OAAO,UAAU;AAChC;;;;;;;;;;;AAYA,eAAsB,mBAAmB,EAAE,WAA6C;CACtF,MAAM,OAAO,aAAa,QAAQ,IAAI;CACtC,MAAM,UAAU,QAAQ,YAAY,QAAQ,SAAS;CACrD,MAAM,UAAU,aAAa,QAAQ,OAAO;CAC5C,MAAM,OAAO,kBAAkB,aAAa,QAAQ,IAAI,CAAC;CACzD,MAAM,WAAW,QAAQ,KAAK;CAC9B,MAAM,QAAQ,CAAC,GAAI,UAAU,CAAC,WAAW,IAAI,CAAC,GAAI,GAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,CAAE;CAEnF,MAAM,SAAS,MAAM,SAAS;EAC5B;EACA;EACA;EACA;EACA,GAAI,WAAW,EAAE,WAAW,qBAAqB,UAAU,KAAK,EAAE,IAAI,CAAC;CACzE,CAAC;CAED,IAAI,QAAQ,SAAS,MACnB,QAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;MACtC;EACL,cAAc,OAAO,QAAQ;EAE7B,IAAI,OAAO,SAAS,SAAS,GAAG,QAAQ,IAAI,EAAE;EAE9C,KAAK,MAAM,QAAQ,mBAAmB,MAAM,GAC1C,QAAQ,IAAI,IAAI;CAEpB;CAEA,IAAI,OAAO,aAAa,GACtB,MAAM,aAAa,OAAO,QAAQ;AAEtC"}
|