@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,126 @@
|
|
|
1
|
+
import { WarlockError } from "../../errors/warlock-error.mjs";
|
|
2
|
+
import { loadAiToolsServe } from "./load-ai-tools.mjs";
|
|
3
|
+
import { toStandardSchema, validateToolInput } from "./tool-input.mjs";
|
|
4
|
+
import { createWarlockMcpTools, describeToolError } from "./mcp-tools.mjs";
|
|
5
|
+
|
|
6
|
+
//#region ../../packages/core/src/tooling/mcp/start-mcp-server.ts
|
|
7
|
+
const LOOPBACK_HOSTS = /* @__PURE__ */ new Set([
|
|
8
|
+
"127.0.0.1",
|
|
9
|
+
"::1",
|
|
10
|
+
"[::1]",
|
|
11
|
+
"localhost"
|
|
12
|
+
]);
|
|
13
|
+
/** Whether a bind host is loopback-only. */
|
|
14
|
+
function isLoopbackHost(host) {
|
|
15
|
+
return LOOPBACK_HOSTS.has(host.trim().toLowerCase());
|
|
16
|
+
}
|
|
17
|
+
/** Resolve the transport, refusing a non-loopback bind without a token (`WL7004`). */
|
|
18
|
+
function resolveMcpTransport(transport = { type: "stdio" }) {
|
|
19
|
+
if (transport.type === "stdio") return { type: "stdio" };
|
|
20
|
+
const host = transport.host ?? "127.0.0.1";
|
|
21
|
+
const token = transport.token?.trim();
|
|
22
|
+
if (!isLoopbackHost(host) && !token) throw new WarlockError("WL7004", `warlock mcp --http refuses to listen on ${host} without a token: anything that can reach that address could call the tools. Pass --token or set WARLOCK_MCP_TOKEN.`);
|
|
23
|
+
return {
|
|
24
|
+
type: "http",
|
|
25
|
+
host,
|
|
26
|
+
port: transport.port ?? 0,
|
|
27
|
+
path: transport.path ?? "/mcp",
|
|
28
|
+
...token ? { auth: { bearer: token } } : {}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const EMPTY_USAGE = {
|
|
32
|
+
input: 0,
|
|
33
|
+
output: 0,
|
|
34
|
+
total: 0
|
|
35
|
+
};
|
|
36
|
+
function report(name, status, startedAt) {
|
|
37
|
+
const endedAt = /* @__PURE__ */ new Date();
|
|
38
|
+
return {
|
|
39
|
+
runId: `warlock-mcp-${startedAt.getTime()}`,
|
|
40
|
+
name,
|
|
41
|
+
type: "tool",
|
|
42
|
+
status,
|
|
43
|
+
startedAt: startedAt.toISOString(),
|
|
44
|
+
endedAt: endedAt.toISOString(),
|
|
45
|
+
duration: endedAt.getTime() - startedAt.getTime(),
|
|
46
|
+
usage: EMPTY_USAGE,
|
|
47
|
+
children: []
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function isRecord(value) {
|
|
51
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Turn a Warlock tool into the contract `ai.mcp.serve` runs: arguments are
|
|
55
|
+
* prechecked (a write on a read-only server), validated against the advertised
|
|
56
|
+
* schema, then run; a failure becomes an `isError` result carrying the WL code
|
|
57
|
+
* and its fix, never a crashed server.
|
|
58
|
+
*/
|
|
59
|
+
function toServeContract(tool) {
|
|
60
|
+
return {
|
|
61
|
+
name: tool.name,
|
|
62
|
+
description: tool.description,
|
|
63
|
+
input: toStandardSchema(tool.input),
|
|
64
|
+
execute: (input) => tool.run(input),
|
|
65
|
+
async invoke(raw) {
|
|
66
|
+
const startedAt = /* @__PURE__ */ new Date();
|
|
67
|
+
const input = isRecord(raw) ? raw : {};
|
|
68
|
+
const refusal = tool.precheck?.(input) ?? null;
|
|
69
|
+
const issues = refusal ? [refusal] : validateToolInput(tool.input, raw);
|
|
70
|
+
if (issues.length > 0) return {
|
|
71
|
+
error: /* @__PURE__ */ new Error(`Invalid arguments for ${tool.name}: ${issues.join("; ")}`),
|
|
72
|
+
usage: EMPTY_USAGE,
|
|
73
|
+
report: report(tool.name, "failed", startedAt)
|
|
74
|
+
};
|
|
75
|
+
try {
|
|
76
|
+
return {
|
|
77
|
+
data: await tool.run(input),
|
|
78
|
+
usage: EMPTY_USAGE,
|
|
79
|
+
report: report(tool.name, "completed", startedAt)
|
|
80
|
+
};
|
|
81
|
+
} catch (error) {
|
|
82
|
+
return {
|
|
83
|
+
error: new Error(describeToolError(error)),
|
|
84
|
+
usage: EMPTY_USAGE,
|
|
85
|
+
report: report(tool.name, "failed", startedAt)
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Serve the app's tools over MCP — stdio by default, or Streamable HTTP
|
|
93
|
+
* through `@warlock.js/ai-tools` (loopback by default; a token is required off
|
|
94
|
+
* loopback). Read-only unless `context.allowWrites`.
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* const server = await startWarlockMcpServer({
|
|
98
|
+
* context,
|
|
99
|
+
* transport: { type: "http", token: process.env.WARLOCK_MCP_TOKEN },
|
|
100
|
+
* });
|
|
101
|
+
* console.error(`MCP at ${server.url}`);
|
|
102
|
+
* await server.close();
|
|
103
|
+
*/
|
|
104
|
+
async function startWarlockMcpServer(options) {
|
|
105
|
+
const transport = resolveMcpTransport(options.transport);
|
|
106
|
+
const module = await (options.loadServe ?? (() => loadAiToolsServe(options.context.cwd)))();
|
|
107
|
+
const tools = createWarlockMcpTools(options.context);
|
|
108
|
+
const server = module.serve(tools.map(toServeContract), {
|
|
109
|
+
name: options.name ?? "warlock",
|
|
110
|
+
version: options.version,
|
|
111
|
+
transport
|
|
112
|
+
});
|
|
113
|
+
const handle = await server.start();
|
|
114
|
+
return {
|
|
115
|
+
...handle.url ? { url: handle.url } : {},
|
|
116
|
+
tools: tools.map((tool) => tool.name),
|
|
117
|
+
close: async () => {
|
|
118
|
+
await handle.close();
|
|
119
|
+
await server.stop();
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
//#endregion
|
|
125
|
+
export { isLoopbackHost, resolveMcpTransport, startWarlockMcpServer, toServeContract };
|
|
126
|
+
//# sourceMappingURL=start-mcp-server.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start-mcp-server.mjs","names":[],"sources":["../../../../../../../../../packages/core/src/tooling/mcp/start-mcp-server.ts"],"sourcesContent":["import { WarlockError } from \"../../errors/warlock-error\";\nimport {\n type AiToolsServeModule,\n loadAiToolsServe,\n type ServeToolContract,\n type ServeTransportOptions,\n} from \"./load-ai-tools\";\nimport {\n createWarlockMcpTools,\n describeToolError,\n type WarlockMcpContext,\n type WarlockMcpTool,\n} from \"./mcp-tools\";\nimport { toStandardSchema, validateToolInput } from \"./tool-input\";\n\n/** Where the server listens. */\nexport type WarlockMcpTransport =\n | { type: \"stdio\" }\n | {\n type: \"http\";\n /** Default `127.0.0.1`. Any other host requires `token`. */\n host?: string;\n /** Default `0` (a free port; read it from the returned `url`). */\n port?: number;\n /** Default `/mcp`. */\n path?: string;\n /** Bearer token clients must send (`Authorization: Bearer <token>`). */\n token?: string;\n };\n\n/** Options of {@link startWarlockMcpServer}. */\nexport type StartWarlockMcpServerOptions = {\n context: WarlockMcpContext;\n /** Default `{ type: \"stdio\" }`. */\n transport?: WarlockMcpTransport;\n /** Advertised in `initialize`. Default `\"warlock\"`. */\n name?: string;\n version?: string;\n /** How `@warlock.js/ai-tools` is loaded (tests inject it). */\n loadServe?: () => Promise<AiToolsServeModule>;\n};\n\n/** A running server. */\nexport type WarlockMcpServerHandle = {\n /** The endpoint (HTTP only), e.g. `http://127.0.0.1:53211/mcp`. */\n url?: string;\n /** The exposed tool names. */\n tools: string[];\n close(): Promise<void>;\n};\n\nconst LOOPBACK_HOSTS = new Set([\"127.0.0.1\", \"::1\", \"[::1]\", \"localhost\"]);\n\n/** Whether a bind host is loopback-only. */\nexport function isLoopbackHost(host: string): boolean {\n return LOOPBACK_HOSTS.has(host.trim().toLowerCase());\n}\n\n/** Resolve the transport, refusing a non-loopback bind without a token (`WL7004`). */\nexport function resolveMcpTransport(\n transport: WarlockMcpTransport = { type: \"stdio\" },\n): ServeTransportOptions {\n if (transport.type === \"stdio\") return { type: \"stdio\" };\n\n const host = transport.host ?? \"127.0.0.1\";\n const token = transport.token?.trim();\n\n if (!isLoopbackHost(host) && !token) {\n throw new WarlockError(\n \"WL7004\",\n `warlock mcp --http refuses to listen on ${host} without a token: anything that can reach that address could call the tools. Pass --token or set WARLOCK_MCP_TOKEN.`,\n );\n }\n\n return {\n type: \"http\",\n host,\n port: transport.port ?? 0,\n path: transport.path ?? \"/mcp\",\n ...(token ? { auth: { bearer: token } } : {}),\n };\n}\n\nconst EMPTY_USAGE = { input: 0, output: 0, total: 0 };\n\nfunction report(name: string, status: \"completed\" | \"failed\", startedAt: Date) {\n const endedAt = new Date();\n\n return {\n runId: `warlock-mcp-${startedAt.getTime()}`,\n name,\n type: \"tool\",\n status,\n startedAt: startedAt.toISOString(),\n endedAt: endedAt.toISOString(),\n duration: endedAt.getTime() - startedAt.getTime(),\n usage: EMPTY_USAGE,\n children: [],\n };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\n/**\n * Turn a Warlock tool into the contract `ai.mcp.serve` runs: arguments are\n * prechecked (a write on a read-only server), validated against the advertised\n * schema, then run; a failure becomes an `isError` result carrying the WL code\n * and its fix, never a crashed server.\n */\nexport function toServeContract(tool: WarlockMcpTool): ServeToolContract {\n return {\n name: tool.name,\n description: tool.description,\n input: toStandardSchema(tool.input),\n execute: (input) => tool.run(input),\n async invoke(raw) {\n const startedAt = new Date();\n const input = isRecord(raw) ? raw : {};\n const refusal = tool.precheck?.(input) ?? null;\n const issues = refusal ? [refusal] : validateToolInput(tool.input, raw);\n\n if (issues.length > 0) {\n return {\n error: new Error(`Invalid arguments for ${tool.name}: ${issues.join(\"; \")}`),\n usage: EMPTY_USAGE,\n report: report(tool.name, \"failed\", startedAt),\n };\n }\n\n try {\n const data = await tool.run(input);\n\n return { data, usage: EMPTY_USAGE, report: report(tool.name, \"completed\", startedAt) };\n } catch (error) {\n return {\n error: new Error(describeToolError(error)),\n usage: EMPTY_USAGE,\n report: report(tool.name, \"failed\", startedAt),\n };\n }\n },\n };\n}\n\n/**\n * Serve the app's tools over MCP — stdio by default, or Streamable HTTP\n * through `@warlock.js/ai-tools` (loopback by default; a token is required off\n * loopback). Read-only unless `context.allowWrites`.\n *\n * @example\n * const server = await startWarlockMcpServer({\n * context,\n * transport: { type: \"http\", token: process.env.WARLOCK_MCP_TOKEN },\n * });\n * console.error(`MCP at ${server.url}`);\n * await server.close();\n */\nexport async function startWarlockMcpServer(\n options: StartWarlockMcpServerOptions,\n): Promise<WarlockMcpServerHandle> {\n const transport = resolveMcpTransport(options.transport);\n const module = await (options.loadServe ?? (() => loadAiToolsServe(options.context.cwd)))();\n const tools = createWarlockMcpTools(options.context);\n const server = module.serve(tools.map(toServeContract), {\n name: options.name ?? \"warlock\",\n version: options.version,\n transport,\n });\n const handle = await server.start();\n\n return {\n ...(handle.url ? { url: handle.url } : {}),\n tools: tools.map((tool) => tool.name),\n close: async () => {\n await handle.close();\n await server.stop();\n },\n };\n}\n"],"mappings":";;;;;;AAmDA,MAAM,iCAAiB,IAAI,IAAI;CAAC;CAAa;CAAO;CAAS;AAAW,CAAC;;AAGzE,SAAgB,eAAe,MAAuB;CACpD,OAAO,eAAe,IAAI,KAAK,KAAK,CAAC,CAAC,YAAY,CAAC;AACrD;;AAGA,SAAgB,oBACd,YAAiC,EAAE,MAAM,QAAQ,GAC1B;CACvB,IAAI,UAAU,SAAS,SAAS,OAAO,EAAE,MAAM,QAAQ;CAEvD,MAAM,OAAO,UAAU,QAAQ;CAC/B,MAAM,QAAQ,UAAU,OAAO,KAAK;CAEpC,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC,OAC5B,MAAM,IAAI,aACR,UACA,2CAA2C,KAAK,oHAClD;CAGF,OAAO;EACL,MAAM;EACN;EACA,MAAM,UAAU,QAAQ;EACxB,MAAM,UAAU,QAAQ;EACxB,GAAI,QAAQ,EAAE,MAAM,EAAE,QAAQ,MAAM,EAAE,IAAI,CAAC;CAC7C;AACF;AAEA,MAAM,cAAc;CAAE,OAAO;CAAG,QAAQ;CAAG,OAAO;AAAE;AAEpD,SAAS,OAAO,MAAc,QAAgC,WAAiB;CAC7E,MAAM,0BAAU,IAAI,KAAK;CAEzB,OAAO;EACL,OAAO,eAAe,UAAU,QAAQ;EACxC;EACA,MAAM;EACN;EACA,WAAW,UAAU,YAAY;EACjC,SAAS,QAAQ,YAAY;EAC7B,UAAU,QAAQ,QAAQ,IAAI,UAAU,QAAQ;EAChD,OAAO;EACP,UAAU,CAAC;CACb;AACF;AAEA,SAAS,SAAS,OAAkD;CAClE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;;;;;;;AAQA,SAAgB,gBAAgB,MAAyC;CACvE,OAAO;EACL,MAAM,KAAK;EACX,aAAa,KAAK;EAClB,OAAO,iBAAiB,KAAK,KAAK;EAClC,UAAU,UAAU,KAAK,IAAI,KAAK;EAClC,MAAM,OAAO,KAAK;GAChB,MAAM,4BAAY,IAAI,KAAK;GAC3B,MAAM,QAAQ,SAAS,GAAG,IAAI,MAAM,CAAC;GACrC,MAAM,UAAU,KAAK,WAAW,KAAK,KAAK;GAC1C,MAAM,SAAS,UAAU,CAAC,OAAO,IAAI,kBAAkB,KAAK,OAAO,GAAG;GAEtE,IAAI,OAAO,SAAS,GAClB,OAAO;IACL,uBAAO,IAAI,MAAM,yBAAyB,KAAK,KAAK,IAAI,OAAO,KAAK,IAAI,GAAG;IAC3E,OAAO;IACP,QAAQ,OAAO,KAAK,MAAM,UAAU,SAAS;GAC/C;GAGF,IAAI;IAGF,OAAO;KAAE,YAFU,KAAK,IAAI,KAAK;KAElB,OAAO;KAAa,QAAQ,OAAO,KAAK,MAAM,aAAa,SAAS;IAAE;GACvF,SAAS,OAAO;IACd,OAAO;KACL,OAAO,IAAI,MAAM,kBAAkB,KAAK,CAAC;KACzC,OAAO;KACP,QAAQ,OAAO,KAAK,MAAM,UAAU,SAAS;IAC/C;GACF;EACF;CACF;AACF;;;;;;;;;;;;;;AAeA,eAAsB,sBACpB,SACiC;CACjC,MAAM,YAAY,oBAAoB,QAAQ,SAAS;CACvD,MAAM,SAAS,OAAO,QAAQ,oBAAoB,iBAAiB,QAAQ,QAAQ,GAAG,GAAE,CAAE;CAC1F,MAAM,QAAQ,sBAAsB,QAAQ,OAAO;CACnD,MAAM,SAAS,OAAO,MAAM,MAAM,IAAI,eAAe,GAAG;EACtD,MAAM,QAAQ,QAAQ;EACtB,SAAS,QAAQ;EACjB;CACF,CAAC;CACD,MAAM,SAAS,MAAM,OAAO,MAAM;CAElC,OAAO;EACL,GAAI,OAAO,MAAM,EAAE,KAAK,OAAO,IAAI,IAAI,CAAC;EACxC,OAAO,MAAM,KAAK,SAAS,KAAK,IAAI;EACpC,OAAO,YAAY;GACjB,MAAM,OAAO,MAAM;GACnB,MAAM,OAAO,KAAK;EACpB;CACF;AACF"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
//#region ../../packages/core/src/tooling/mcp/tool-input.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* The input schemas of the `warlock mcp` tools, and the small validator that
|
|
4
|
+
* checks arguments against them.
|
|
5
|
+
*
|
|
6
|
+
* The tools only take flat objects of strings, numbers, booleans, string
|
|
7
|
+
* enums and string arrays, so a JSON Schema subset is enough and core needs no
|
|
8
|
+
* validator dependency. The same object is what `tools/list` advertises.
|
|
9
|
+
*/
|
|
10
|
+
/** One property of a tool input. */
|
|
11
|
+
export type McpInputProperty = {
|
|
12
|
+
type: "string";
|
|
13
|
+
description: string;
|
|
14
|
+
enum?: readonly string[];
|
|
15
|
+
} | {
|
|
16
|
+
type: "integer";
|
|
17
|
+
description: string;
|
|
18
|
+
minimum?: number;
|
|
19
|
+
maximum?: number;
|
|
20
|
+
} | {
|
|
21
|
+
type: "boolean";
|
|
22
|
+
description: string;
|
|
23
|
+
} | {
|
|
24
|
+
type: "array";
|
|
25
|
+
description: string;
|
|
26
|
+
items: {
|
|
27
|
+
type: "string";
|
|
28
|
+
enum?: readonly string[];
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
/** A tool's input schema: a closed object. */
|
|
32
|
+
export type McpInputSchema = {
|
|
33
|
+
type: "object";
|
|
34
|
+
properties: Record<string, McpInputProperty>;
|
|
35
|
+
required?: readonly string[];
|
|
36
|
+
additionalProperties: false;
|
|
37
|
+
};
|
|
38
|
+
/** Build an {@link McpInputSchema}. */
|
|
39
|
+
export declare function inputSchema(properties: Record<string, McpInputProperty>, required?: readonly string[]): McpInputSchema;
|
|
40
|
+
/**
|
|
41
|
+
* Check arguments against a schema. Returns the problems (empty when valid).
|
|
42
|
+
* `undefined` / `null` arguments are read as `{}`.
|
|
43
|
+
*/
|
|
44
|
+
export declare function validateToolInput(schema: McpInputSchema, input: unknown): string[];
|
|
45
|
+
/** The Standard Schema result shape (spec v1). */
|
|
46
|
+
type StandardResult = {
|
|
47
|
+
value: Record<string, unknown>;
|
|
48
|
+
} | {
|
|
49
|
+
issues: {
|
|
50
|
+
message: string;
|
|
51
|
+
}[];
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* The input as a Standard Schema (v1) with the Standard JSON Schema extension,
|
|
55
|
+
* which is what `@warlock.js/ai` tools take: `~standard.validate` checks the
|
|
56
|
+
* arguments, `~standard.jsonSchema.input()` returns the schema `tools/list`
|
|
57
|
+
* advertises.
|
|
58
|
+
*/
|
|
59
|
+
export type StandardInputSchema = {
|
|
60
|
+
"~standard": {
|
|
61
|
+
version: 1;
|
|
62
|
+
vendor: string;
|
|
63
|
+
validate(value: unknown): StandardResult;
|
|
64
|
+
jsonSchema: {
|
|
65
|
+
input(options?: {
|
|
66
|
+
target?: string;
|
|
67
|
+
}): McpInputSchema;
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
/** Wrap a schema as a {@link StandardInputSchema}. */
|
|
72
|
+
export declare function toStandardSchema(schema: McpInputSchema): StandardInputSchema;
|
|
73
|
+
//#endregion
|
|
74
|
+
export {};
|
|
75
|
+
//# sourceMappingURL=tool-input.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-input.d.mts","names":[],"sources":["../../../../../../../../../packages/core/src/tooling/mcp/tool-input.ts"],"mappings":";;;;;;;;;;YAUY;EACN;EAAgB;EAAqB;;EACrC;EAAiB;EAAqB;EAAkB;;EACxD;EAAiB;;EAEjB;EACA;EACA;IAAS;IAAgB;;;;YAInB;EACV;EACA,YAAY,eAAe;EAC3B;EACA;;;wBAIc,YACd,YAAY,eAAe,mBAC3B,+BACC;;;;;wBAqDa,kBAAkB,QAAQ,gBAAgB;;KA8BrD;EAAmB,OAAO;;EAA8B;IAAU;;;;;;;;;YAQ3D;EACV;IACE;IACA;IACA,SAAS,iBAAiB;IAC1B;MAAc,MAAM;QAAY;UAAoB;;;;;wBAKxC,iBAAiB,QAAQ,iBAAiB"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
//#region ../../packages/core/src/tooling/mcp/tool-input.ts
|
|
2
|
+
/** Build an {@link McpInputSchema}. */
|
|
3
|
+
function inputSchema(properties, required = []) {
|
|
4
|
+
return {
|
|
5
|
+
type: "object",
|
|
6
|
+
properties,
|
|
7
|
+
...required.length > 0 ? { required } : {},
|
|
8
|
+
additionalProperties: false
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
function isRecord(value) {
|
|
12
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
13
|
+
}
|
|
14
|
+
function checkProperty(name, property, value) {
|
|
15
|
+
switch (property.type) {
|
|
16
|
+
case "string":
|
|
17
|
+
if (typeof value !== "string") return `"${name}" must be a string`;
|
|
18
|
+
if (property.enum && !property.enum.includes(value)) return `"${name}" must be one of: ${property.enum.join(", ")}`;
|
|
19
|
+
return null;
|
|
20
|
+
case "integer":
|
|
21
|
+
if (typeof value !== "number" || !Number.isInteger(value)) return `"${name}" must be an integer`;
|
|
22
|
+
if (property.minimum !== void 0 && value < property.minimum) return `"${name}" must be at least ${property.minimum}`;
|
|
23
|
+
if (property.maximum !== void 0 && value > property.maximum) return `"${name}" must be at most ${property.maximum}`;
|
|
24
|
+
return null;
|
|
25
|
+
case "boolean": return typeof value === "boolean" ? null : `"${name}" must be a boolean`;
|
|
26
|
+
case "array":
|
|
27
|
+
if (!Array.isArray(value)) return `"${name}" must be an array of strings`;
|
|
28
|
+
for (const item of value) {
|
|
29
|
+
if (typeof item !== "string") return `"${name}" must be an array of strings`;
|
|
30
|
+
if (property.items.enum && !property.items.enum.includes(item)) return `"${name}" items must be one of: ${property.items.enum.join(", ")}`;
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Check arguments against a schema. Returns the problems (empty when valid).
|
|
37
|
+
* `undefined` / `null` arguments are read as `{}`.
|
|
38
|
+
*/
|
|
39
|
+
function validateToolInput(schema, input) {
|
|
40
|
+
const value = input === void 0 || input === null ? {} : input;
|
|
41
|
+
if (!isRecord(value)) return ["arguments must be an object"];
|
|
42
|
+
const issues = [];
|
|
43
|
+
for (const name of schema.required ?? []) if (value[name] === void 0) issues.push(`"${name}" is required`);
|
|
44
|
+
for (const [name, item] of Object.entries(value)) {
|
|
45
|
+
const property = schema.properties[name];
|
|
46
|
+
if (!property) {
|
|
47
|
+
issues.push(`unknown argument "${name}"`);
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (item === void 0) continue;
|
|
51
|
+
const issue = checkProperty(name, property, item);
|
|
52
|
+
if (issue) issues.push(issue);
|
|
53
|
+
}
|
|
54
|
+
return issues;
|
|
55
|
+
}
|
|
56
|
+
/** Wrap a schema as a {@link StandardInputSchema}. */
|
|
57
|
+
function toStandardSchema(schema) {
|
|
58
|
+
return { "~standard": {
|
|
59
|
+
version: 1,
|
|
60
|
+
vendor: "warlock-mcp",
|
|
61
|
+
validate(value) {
|
|
62
|
+
const issues = validateToolInput(schema, value);
|
|
63
|
+
if (issues.length > 0) return { issues: issues.map((message) => ({ message })) };
|
|
64
|
+
return { value: isRecord(value) ? value : {} };
|
|
65
|
+
},
|
|
66
|
+
jsonSchema: { input: () => schema }
|
|
67
|
+
} };
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
//#endregion
|
|
71
|
+
export { inputSchema, toStandardSchema, validateToolInput };
|
|
72
|
+
//# sourceMappingURL=tool-input.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-input.mjs","names":[],"sources":["../../../../../../../../../packages/core/src/tooling/mcp/tool-input.ts"],"sourcesContent":["/**\n * The input schemas of the `warlock mcp` tools, and the small validator that\n * checks arguments against them.\n *\n * The tools only take flat objects of strings, numbers, booleans, string\n * enums and string arrays, so a JSON Schema subset is enough and core needs no\n * validator dependency. The same object is what `tools/list` advertises.\n */\n\n/** One property of a tool input. */\nexport type McpInputProperty =\n | { type: \"string\"; description: string; enum?: readonly string[] }\n | { type: \"integer\"; description: string; minimum?: number; maximum?: number }\n | { type: \"boolean\"; description: string }\n | {\n type: \"array\";\n description: string;\n items: { type: \"string\"; enum?: readonly string[] };\n };\n\n/** A tool's input schema: a closed object. */\nexport type McpInputSchema = {\n type: \"object\";\n properties: Record<string, McpInputProperty>;\n required?: readonly string[];\n additionalProperties: false;\n};\n\n/** Build an {@link McpInputSchema}. */\nexport function inputSchema(\n properties: Record<string, McpInputProperty>,\n required: readonly string[] = [],\n): McpInputSchema {\n return {\n type: \"object\",\n properties,\n ...(required.length > 0 ? { required } : {}),\n additionalProperties: false,\n };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction checkProperty(name: string, property: McpInputProperty, value: unknown): string | null {\n switch (property.type) {\n case \"string\":\n if (typeof value !== \"string\") return `\"${name}\" must be a string`;\n if (property.enum && !property.enum.includes(value)) {\n return `\"${name}\" must be one of: ${property.enum.join(\", \")}`;\n }\n return null;\n case \"integer\":\n if (typeof value !== \"number\" || !Number.isInteger(value)) {\n return `\"${name}\" must be an integer`;\n }\n if (property.minimum !== undefined && value < property.minimum) {\n return `\"${name}\" must be at least ${property.minimum}`;\n }\n if (property.maximum !== undefined && value > property.maximum) {\n return `\"${name}\" must be at most ${property.maximum}`;\n }\n return null;\n case \"boolean\":\n return typeof value === \"boolean\" ? null : `\"${name}\" must be a boolean`;\n case \"array\": {\n if (!Array.isArray(value)) return `\"${name}\" must be an array of strings`;\n\n for (const item of value) {\n if (typeof item !== \"string\") return `\"${name}\" must be an array of strings`;\n if (property.items.enum && !property.items.enum.includes(item)) {\n return `\"${name}\" items must be one of: ${property.items.enum.join(\", \")}`;\n }\n }\n\n return null;\n }\n }\n}\n\n/**\n * Check arguments against a schema. Returns the problems (empty when valid).\n * `undefined` / `null` arguments are read as `{}`.\n */\nexport function validateToolInput(schema: McpInputSchema, input: unknown): string[] {\n const value = input === undefined || input === null ? {} : input;\n\n if (!isRecord(value)) return [\"arguments must be an object\"];\n\n const issues: string[] = [];\n\n for (const name of schema.required ?? []) {\n if (value[name] === undefined) issues.push(`\"${name}\" is required`);\n }\n\n for (const [name, item] of Object.entries(value)) {\n const property = schema.properties[name];\n\n if (!property) {\n issues.push(`unknown argument \"${name}\"`);\n continue;\n }\n\n if (item === undefined) continue;\n\n const issue = checkProperty(name, property, item);\n\n if (issue) issues.push(issue);\n }\n\n return issues;\n}\n\n/** The Standard Schema result shape (spec v1). */\ntype StandardResult = { value: Record<string, unknown> } | { issues: { message: string }[] };\n\n/**\n * The input as a Standard Schema (v1) with the Standard JSON Schema extension,\n * which is what `@warlock.js/ai` tools take: `~standard.validate` checks the\n * arguments, `~standard.jsonSchema.input()` returns the schema `tools/list`\n * advertises.\n */\nexport type StandardInputSchema = {\n \"~standard\": {\n version: 1;\n vendor: string;\n validate(value: unknown): StandardResult;\n jsonSchema: { input(options?: { target?: string }): McpInputSchema };\n };\n};\n\n/** Wrap a schema as a {@link StandardInputSchema}. */\nexport function toStandardSchema(schema: McpInputSchema): StandardInputSchema {\n return {\n \"~standard\": {\n version: 1,\n vendor: \"warlock-mcp\",\n validate(value) {\n const issues = validateToolInput(schema, value);\n\n if (issues.length > 0) return { issues: issues.map((message) => ({ message })) };\n\n return { value: isRecord(value) ? value : {} };\n },\n jsonSchema: { input: () => schema },\n },\n };\n}\n"],"mappings":";;AA6BA,SAAgB,YACd,YACA,WAA8B,CAAC,GACf;CAChB,OAAO;EACL,MAAM;EACN;EACA,GAAI,SAAS,SAAS,IAAI,EAAE,SAAS,IAAI,CAAC;EAC1C,sBAAsB;CACxB;AACF;AAEA,SAAS,SAAS,OAAkD;CAClE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAEA,SAAS,cAAc,MAAc,UAA4B,OAA+B;CAC9F,QAAQ,SAAS,MAAjB;EACE,KAAK;GACH,IAAI,OAAO,UAAU,UAAU,OAAO,IAAI,KAAK;GAC/C,IAAI,SAAS,QAAQ,CAAC,SAAS,KAAK,SAAS,KAAK,GAChD,OAAO,IAAI,KAAK,oBAAoB,SAAS,KAAK,KAAK,IAAI;GAE7D,OAAO;EACT,KAAK;GACH,IAAI,OAAO,UAAU,YAAY,CAAC,OAAO,UAAU,KAAK,GACtD,OAAO,IAAI,KAAK;GAElB,IAAI,SAAS,YAAY,UAAa,QAAQ,SAAS,SACrD,OAAO,IAAI,KAAK,qBAAqB,SAAS;GAEhD,IAAI,SAAS,YAAY,UAAa,QAAQ,SAAS,SACrD,OAAO,IAAI,KAAK,oBAAoB,SAAS;GAE/C,OAAO;EACT,KAAK,WACH,OAAO,OAAO,UAAU,YAAY,OAAO,IAAI,KAAK;EACtD,KAAK;GACH,IAAI,CAAC,MAAM,QAAQ,KAAK,GAAG,OAAO,IAAI,KAAK;GAE3C,KAAK,MAAM,QAAQ,OAAO;IACxB,IAAI,OAAO,SAAS,UAAU,OAAO,IAAI,KAAK;IAC9C,IAAI,SAAS,MAAM,QAAQ,CAAC,SAAS,MAAM,KAAK,SAAS,IAAI,GAC3D,OAAO,IAAI,KAAK,0BAA0B,SAAS,MAAM,KAAK,KAAK,IAAI;GAE3E;GAEA,OAAO;CAEX;AACF;;;;;AAMA,SAAgB,kBAAkB,QAAwB,OAA0B;CAClF,MAAM,QAAQ,UAAU,UAAa,UAAU,OAAO,CAAC,IAAI;CAE3D,IAAI,CAAC,SAAS,KAAK,GAAG,OAAO,CAAC,6BAA6B;CAE3D,MAAM,SAAmB,CAAC;CAE1B,KAAK,MAAM,QAAQ,OAAO,YAAY,CAAC,GACrC,IAAI,MAAM,UAAU,QAAW,OAAO,KAAK,IAAI,KAAK,cAAc;CAGpE,KAAK,MAAM,CAAC,MAAM,SAAS,OAAO,QAAQ,KAAK,GAAG;EAChD,MAAM,WAAW,OAAO,WAAW;EAEnC,IAAI,CAAC,UAAU;GACb,OAAO,KAAK,qBAAqB,KAAK,EAAE;GACxC;EACF;EAEA,IAAI,SAAS,QAAW;EAExB,MAAM,QAAQ,cAAc,MAAM,UAAU,IAAI;EAEhD,IAAI,OAAO,OAAO,KAAK,KAAK;CAC9B;CAEA,OAAO;AACT;;AAqBA,SAAgB,iBAAiB,QAA6C;CAC5E,OAAO,EACL,aAAa;EACX,SAAS;EACT,QAAQ;EACR,SAAS,OAAO;GACd,MAAM,SAAS,kBAAkB,QAAQ,KAAK;GAE9C,IAAI,OAAO,SAAS,GAAG,OAAO,EAAE,QAAQ,OAAO,KAAK,aAAa,EAAE,QAAQ,EAAE,EAAE;GAE/E,OAAO,EAAE,OAAO,SAAS,KAAK,IAAI,QAAQ,CAAC,EAAE;EAC/C;EACA,YAAY,EAAE,aAAa,OAAO;CACpC,EACF;AACF"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { ErrorCodeCategory, WarlockErrorCode } from "../errors/error-codes.mjs";
|
|
2
|
+
//#region ../../packages/core/src/tooling/problem.d.ts
|
|
3
|
+
/** The tool that found a problem. */
|
|
4
|
+
export type ProblemSource = "typescript" | "eslint" | "oxlint" | "vitest" | "convention" | "environment" | "doctor";
|
|
5
|
+
/**
|
|
6
|
+
* One problem, in the shape every machine-readable command prints
|
|
7
|
+
* (`warlock check --json`, `warlock typecheck --json`, `warlock doctor --json`).
|
|
8
|
+
*
|
|
9
|
+
* Every key is always present, so a consumer never has to test for one:
|
|
10
|
+
* `file`, `line` and `column` are `null` when the problem has no position.
|
|
11
|
+
*/
|
|
12
|
+
export type ToolingProblem = {
|
|
13
|
+
/** Stable Warlock error code; `warlock explain <code>` prints the fix. */
|
|
14
|
+
code: WarlockErrorCode;
|
|
15
|
+
/** `code` = fix the project; `environment` = fix this machine. */
|
|
16
|
+
category: ErrorCodeCategory;
|
|
17
|
+
/** `error` fails the run; `warning` is reported and does not. */
|
|
18
|
+
severity: "error" | "warning";
|
|
19
|
+
/** The tool that reported it. */
|
|
20
|
+
source: ProblemSource;
|
|
21
|
+
/** Project-relative POSIX path, or `null`. */
|
|
22
|
+
file: string | null;
|
|
23
|
+
/** 1-based line, or `null`. */
|
|
24
|
+
line: number | null;
|
|
25
|
+
/** 1-based column, or `null`. */
|
|
26
|
+
column: number | null;
|
|
27
|
+
/** What is wrong, in the reporting tool's words. */
|
|
28
|
+
message: string;
|
|
29
|
+
/** One line on what to do, from the code registry. */
|
|
30
|
+
hint: string;
|
|
31
|
+
/** Slug of the skill that explains the fix. */
|
|
32
|
+
skill: string;
|
|
33
|
+
/** Docs URL of the code. */
|
|
34
|
+
docs: string;
|
|
35
|
+
/** The tool's own rule or code (`TS2345`, `no-unused-vars`, a test name), or `null`. */
|
|
36
|
+
rule: string | null;
|
|
37
|
+
};
|
|
38
|
+
/** The fields a reporter supplies; the rest come from the registry. */
|
|
39
|
+
export type ProblemInput = {
|
|
40
|
+
code: WarlockErrorCode;
|
|
41
|
+
source: ProblemSource;
|
|
42
|
+
message: string;
|
|
43
|
+
severity?: "error" | "warning";
|
|
44
|
+
file?: string | null;
|
|
45
|
+
line?: number | null;
|
|
46
|
+
column?: number | null;
|
|
47
|
+
rule?: string | null;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Build a {@link ToolingProblem}, filling `category`, `hint`, `skill` and `docs`
|
|
51
|
+
* from the code registry so every reporter describes a code the same way.
|
|
52
|
+
*/
|
|
53
|
+
export declare function createProblem(input: ProblemInput): ToolingProblem;
|
|
54
|
+
//#endregion
|
|
55
|
+
//# sourceMappingURL=problem.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"problem.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/tooling/problem.ts"],"mappings":";;;YAQY;;;;;;;;YAgBA;;EAEV,MAAM;;EAEN,UAAU;;EAEV;;EAEA,QAAQ;;EAER;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;;YAIU;EACV,MAAM;EACN,QAAQ;EACR;EACA;EACA;EACA;EACA;EACA;;;;;;wBAOc,cAAc,OAAO,eAAe"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ERROR_CODES, errorCodeDocsUrl } from "../errors/error-codes.mjs";
|
|
2
|
+
|
|
3
|
+
//#region ../../packages/core/src/tooling/problem.ts
|
|
4
|
+
/**
|
|
5
|
+
* Build a {@link ToolingProblem}, filling `category`, `hint`, `skill` and `docs`
|
|
6
|
+
* from the code registry so every reporter describes a code the same way.
|
|
7
|
+
*/
|
|
8
|
+
function createProblem(input) {
|
|
9
|
+
const definition = ERROR_CODES[input.code];
|
|
10
|
+
return {
|
|
11
|
+
code: input.code,
|
|
12
|
+
category: definition.category,
|
|
13
|
+
severity: input.severity ?? "error",
|
|
14
|
+
source: input.source,
|
|
15
|
+
file: input.file ?? null,
|
|
16
|
+
line: input.line ?? null,
|
|
17
|
+
column: input.column ?? null,
|
|
18
|
+
message: input.message,
|
|
19
|
+
hint: definition.fix,
|
|
20
|
+
skill: definition.skill,
|
|
21
|
+
docs: errorCodeDocsUrl(input.code),
|
|
22
|
+
rule: input.rule ?? null
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
//#endregion
|
|
27
|
+
export { createProblem };
|
|
28
|
+
//# sourceMappingURL=problem.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"problem.mjs","names":[],"sources":["../../../../../../../../packages/core/src/tooling/problem.ts"],"sourcesContent":["import {\n ERROR_CODES,\n errorCodeDocsUrl,\n type ErrorCodeCategory,\n type WarlockErrorCode,\n} from \"../errors/error-codes\";\n\n/** The tool that found a problem. */\nexport type ProblemSource =\n | \"typescript\"\n | \"eslint\"\n | \"oxlint\"\n | \"vitest\"\n | \"convention\"\n | \"environment\"\n | \"doctor\";\n\n/**\n * One problem, in the shape every machine-readable command prints\n * (`warlock check --json`, `warlock typecheck --json`, `warlock doctor --json`).\n *\n * Every key is always present, so a consumer never has to test for one:\n * `file`, `line` and `column` are `null` when the problem has no position.\n */\nexport type ToolingProblem = {\n /** Stable Warlock error code; `warlock explain <code>` prints the fix. */\n code: WarlockErrorCode;\n /** `code` = fix the project; `environment` = fix this machine. */\n category: ErrorCodeCategory;\n /** `error` fails the run; `warning` is reported and does not. */\n severity: \"error\" | \"warning\";\n /** The tool that reported it. */\n source: ProblemSource;\n /** Project-relative POSIX path, or `null`. */\n file: string | null;\n /** 1-based line, or `null`. */\n line: number | null;\n /** 1-based column, or `null`. */\n column: number | null;\n /** What is wrong, in the reporting tool's words. */\n message: string;\n /** One line on what to do, from the code registry. */\n hint: string;\n /** Slug of the skill that explains the fix. */\n skill: string;\n /** Docs URL of the code. */\n docs: string;\n /** The tool's own rule or code (`TS2345`, `no-unused-vars`, a test name), or `null`. */\n rule: string | null;\n};\n\n/** The fields a reporter supplies; the rest come from the registry. */\nexport type ProblemInput = {\n code: WarlockErrorCode;\n source: ProblemSource;\n message: string;\n severity?: \"error\" | \"warning\";\n file?: string | null;\n line?: number | null;\n column?: number | null;\n rule?: string | null;\n};\n\n/**\n * Build a {@link ToolingProblem}, filling `category`, `hint`, `skill` and `docs`\n * from the code registry so every reporter describes a code the same way.\n */\nexport function createProblem(input: ProblemInput): ToolingProblem {\n const definition = ERROR_CODES[input.code];\n\n return {\n code: input.code,\n category: definition.category,\n severity: input.severity ?? \"error\",\n source: input.source,\n file: input.file ?? null,\n line: input.line ?? null,\n column: input.column ?? null,\n message: input.message,\n hint: definition.fix,\n skill: definition.skill,\n docs: errorCodeDocsUrl(input.code),\n rule: input.rule ?? null,\n };\n}\n"],"mappings":";;;;;;;AAmEA,SAAgB,cAAc,OAAqC;CACjE,MAAM,aAAa,YAAY,MAAM;CAErC,OAAO;EACL,MAAM,MAAM;EACZ,UAAU,WAAW;EACrB,UAAU,MAAM,YAAY;EAC5B,QAAQ,MAAM;EACd,MAAM,MAAM,QAAQ;EACpB,MAAM,MAAM,QAAQ;EACpB,QAAQ,MAAM,UAAU;EACxB,SAAS,MAAM;EACf,MAAM,WAAW;EACjB,OAAO,WAAW;EAClB,MAAM,iBAAiB,MAAM,IAAI;EACjC,MAAM,MAAM,QAAQ;CACtB;AACF"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { parseSync, visitorKeys } from "oxc-parser";
|
|
2
|
+
|
|
3
|
+
//#region ../../packages/core/src/tooling/syntax/ast.ts
|
|
4
|
+
const parents = /* @__PURE__ */ new WeakMap();
|
|
5
|
+
const sources = /* @__PURE__ */ new WeakMap();
|
|
6
|
+
function forEachChild(node, visit) {
|
|
7
|
+
const record = node;
|
|
8
|
+
for (const key of visitorKeys[node.type] ?? []) {
|
|
9
|
+
const value = record[key];
|
|
10
|
+
for (const child of Array.isArray(value) ? value : [value]) if (child && typeof child === "object" && "type" in child) visit(child);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
function parseSourceFile(fileName, text) {
|
|
14
|
+
const source = Object.assign(parseSync(fileName, text).program, {
|
|
15
|
+
fileName,
|
|
16
|
+
text
|
|
17
|
+
});
|
|
18
|
+
const attach = (node) => {
|
|
19
|
+
sources.set(node, source);
|
|
20
|
+
forEachChild(node, (child) => {
|
|
21
|
+
parents.set(child, node);
|
|
22
|
+
attach(child);
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
attach(source);
|
|
26
|
+
return source;
|
|
27
|
+
}
|
|
28
|
+
function parentOf(node) {
|
|
29
|
+
return parents.get(node);
|
|
30
|
+
}
|
|
31
|
+
function sourceOf(node) {
|
|
32
|
+
const source = sources.get(node);
|
|
33
|
+
if (!source) throw new Error("Node has no source file.");
|
|
34
|
+
return source;
|
|
35
|
+
}
|
|
36
|
+
function textOf(node) {
|
|
37
|
+
return node.type === "Identifier" ? node.name : sourceOf(node).text.slice(node.start, node.end);
|
|
38
|
+
}
|
|
39
|
+
function keyName(node) {
|
|
40
|
+
if (!node) return void 0;
|
|
41
|
+
const parent = parentOf(node);
|
|
42
|
+
if (parent && "computed" in parent && parent.computed) return void 0;
|
|
43
|
+
if (node.type === "Identifier" || node.type === "PrivateIdentifier") return node.name;
|
|
44
|
+
if (node.type === "JSXIdentifier") return node.name;
|
|
45
|
+
if (node.type === "Literal" && (typeof node.value === "string" || typeof node.value === "number")) return String(node.value);
|
|
46
|
+
if (node.type === "TemplateLiteral" && node.expressions.length === 0) return node.quasis[0]?.value.cooked ?? void 0;
|
|
47
|
+
}
|
|
48
|
+
function positionOf(source, node) {
|
|
49
|
+
const lines = source.text.slice(0, node.start).split("\n");
|
|
50
|
+
return {
|
|
51
|
+
line: lines.length,
|
|
52
|
+
column: (lines.at(-1)?.length ?? 0) + 1
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function expressionOf(node) {
|
|
56
|
+
if (node.type === "CallExpression" || node.type === "NewExpression") return node.callee;
|
|
57
|
+
if (node.type === "MemberExpression") return node.object;
|
|
58
|
+
if (node.type === "AwaitExpression" || node.type === "SpreadElement") return node.argument;
|
|
59
|
+
if (node.type === "IfStatement") return node.test;
|
|
60
|
+
if ("expression" in node && node.expression && typeof node.expression === "object") return node.expression;
|
|
61
|
+
throw new Error(`No expression on ${node.type}.`);
|
|
62
|
+
}
|
|
63
|
+
function nameNode(node) {
|
|
64
|
+
if ("id" in node && node.id) return node.id;
|
|
65
|
+
if ("key" in node) return node.key;
|
|
66
|
+
if (node.type === "ImportSpecifier" || node.type === "ImportDefaultSpecifier" || node.type === "ImportNamespaceSpecifier") return node.local;
|
|
67
|
+
if (node.type === "JSXAttribute") return node.name;
|
|
68
|
+
throw new Error(`No name on ${node.type}.`);
|
|
69
|
+
}
|
|
70
|
+
function declarationName(node) {
|
|
71
|
+
return "id" in node && node.id?.type === "Identifier" ? node.id.name : void 0;
|
|
72
|
+
}
|
|
73
|
+
function valueText(node) {
|
|
74
|
+
return keyName(node) ?? (node.type === "Literal" ? node.raw ?? "" : textOf(node));
|
|
75
|
+
}
|
|
76
|
+
function isCallExpression(node) {
|
|
77
|
+
return node.type === "CallExpression";
|
|
78
|
+
}
|
|
79
|
+
function isNewExpression(node) {
|
|
80
|
+
return node.type === "NewExpression";
|
|
81
|
+
}
|
|
82
|
+
function isIdentifier(node) {
|
|
83
|
+
return node.type === "Identifier";
|
|
84
|
+
}
|
|
85
|
+
function isObjectLiteralExpression(node) {
|
|
86
|
+
return node.type === "ObjectExpression";
|
|
87
|
+
}
|
|
88
|
+
function isVariableDeclaration(node) {
|
|
89
|
+
return node.type === "VariableDeclarator";
|
|
90
|
+
}
|
|
91
|
+
function isVariableStatement(node) {
|
|
92
|
+
return node.type === "VariableDeclaration";
|
|
93
|
+
}
|
|
94
|
+
function isImportDeclaration(node) {
|
|
95
|
+
return node.type === "ImportDeclaration";
|
|
96
|
+
}
|
|
97
|
+
function isPropertyAssignment(node) {
|
|
98
|
+
return node.type === "Property" && !node.shorthand && !node.method && node.kind === "init";
|
|
99
|
+
}
|
|
100
|
+
function isShorthandPropertyAssignment(node) {
|
|
101
|
+
return node.type === "Property" && node.shorthand;
|
|
102
|
+
}
|
|
103
|
+
function isPropertyDeclaration(node) {
|
|
104
|
+
return node.type === "PropertyDefinition";
|
|
105
|
+
}
|
|
106
|
+
function isExportAssignment(node) {
|
|
107
|
+
return node.type === "ExportDefaultDeclaration";
|
|
108
|
+
}
|
|
109
|
+
function isExportDeclaration(node) {
|
|
110
|
+
return node.type === "ExportNamedDeclaration";
|
|
111
|
+
}
|
|
112
|
+
function isClassDeclaration(node) {
|
|
113
|
+
return node.type === "ClassDeclaration";
|
|
114
|
+
}
|
|
115
|
+
function isFunctionDeclaration(node) {
|
|
116
|
+
return node.type === "FunctionDeclaration";
|
|
117
|
+
}
|
|
118
|
+
function isFunctionExpression(node) {
|
|
119
|
+
return node.type === "FunctionExpression";
|
|
120
|
+
}
|
|
121
|
+
function isArrowFunction(node) {
|
|
122
|
+
return node.type === "ArrowFunctionExpression";
|
|
123
|
+
}
|
|
124
|
+
function isInterfaceDeclaration(node) {
|
|
125
|
+
return node.type === "TSInterfaceDeclaration";
|
|
126
|
+
}
|
|
127
|
+
function isTypeAliasDeclaration(node) {
|
|
128
|
+
return node.type === "TSTypeAliasDeclaration";
|
|
129
|
+
}
|
|
130
|
+
function isAwaitExpression(node) {
|
|
131
|
+
return node.type === "AwaitExpression";
|
|
132
|
+
}
|
|
133
|
+
function isArrayLiteralExpression(node) {
|
|
134
|
+
return node.type === "ArrayExpression";
|
|
135
|
+
}
|
|
136
|
+
function isSpreadElement(node) {
|
|
137
|
+
return node.type === "SpreadElement";
|
|
138
|
+
}
|
|
139
|
+
function isSpreadAssignment(node) {
|
|
140
|
+
return node.type === "SpreadElement";
|
|
141
|
+
}
|
|
142
|
+
function isAsExpression(node) {
|
|
143
|
+
return node.type === "TSAsExpression";
|
|
144
|
+
}
|
|
145
|
+
function isNonNullExpression(node) {
|
|
146
|
+
return node.type === "TSNonNullExpression";
|
|
147
|
+
}
|
|
148
|
+
function isSatisfiesExpression(node) {
|
|
149
|
+
return node.type === "TSSatisfiesExpression";
|
|
150
|
+
}
|
|
151
|
+
function isTypeAssertionExpression(node) {
|
|
152
|
+
return node.type === "TSTypeAssertion";
|
|
153
|
+
}
|
|
154
|
+
function isParenthesizedExpression(node) {
|
|
155
|
+
return node.type === "ParenthesizedExpression";
|
|
156
|
+
}
|
|
157
|
+
function isJsxAttribute(node) {
|
|
158
|
+
return node.type === "JSXAttribute";
|
|
159
|
+
}
|
|
160
|
+
function isJsxExpression(node) {
|
|
161
|
+
return node.type === "JSXExpressionContainer";
|
|
162
|
+
}
|
|
163
|
+
function isJsxOpeningElement(node) {
|
|
164
|
+
return node.type === "JSXOpeningElement";
|
|
165
|
+
}
|
|
166
|
+
function isJsxSelfClosingElement(node) {
|
|
167
|
+
return node.type === "JSXOpeningElement" && node.selfClosing;
|
|
168
|
+
}
|
|
169
|
+
function isIfStatement(node) {
|
|
170
|
+
return node.type === "IfStatement";
|
|
171
|
+
}
|
|
172
|
+
function isConditionalExpression(node) {
|
|
173
|
+
return node.type === "ConditionalExpression";
|
|
174
|
+
}
|
|
175
|
+
function isTemplateExpression(node) {
|
|
176
|
+
return node.type === "TemplateLiteral" && node.expressions.length > 0;
|
|
177
|
+
}
|
|
178
|
+
function isPropertySignature(node) {
|
|
179
|
+
return node.type === "TSPropertySignature";
|
|
180
|
+
}
|
|
181
|
+
function isUnionTypeNode(node) {
|
|
182
|
+
return node.type === "TSUnionType";
|
|
183
|
+
}
|
|
184
|
+
function isLiteralTypeNode(node) {
|
|
185
|
+
return node.type === "TSLiteralType";
|
|
186
|
+
}
|
|
187
|
+
function isExpressionStatement(node) {
|
|
188
|
+
return node.type === "ExpressionStatement";
|
|
189
|
+
}
|
|
190
|
+
function isStringLiteral(node) {
|
|
191
|
+
return node.type === "Literal" && typeof node.value === "string";
|
|
192
|
+
}
|
|
193
|
+
function isNumericLiteral(node) {
|
|
194
|
+
return node.type === "Literal" && typeof node.value === "number";
|
|
195
|
+
}
|
|
196
|
+
function isNoSubstitutionTemplateLiteral(node) {
|
|
197
|
+
return node.type === "TemplateLiteral" && node.expressions.length === 0;
|
|
198
|
+
}
|
|
199
|
+
function isBinaryExpression(node) {
|
|
200
|
+
return node.type === "BinaryExpression" || node.type === "LogicalExpression" || node.type === "AssignmentExpression";
|
|
201
|
+
}
|
|
202
|
+
function isRegularExpressionLiteral(node) {
|
|
203
|
+
return node.type === "Literal" && "regex" in node;
|
|
204
|
+
}
|
|
205
|
+
function isElementAccessExpression(node) {
|
|
206
|
+
return node.type === "MemberExpression" && node.computed;
|
|
207
|
+
}
|
|
208
|
+
function isComputedPropertyName(node) {
|
|
209
|
+
const parent = parentOf(node);
|
|
210
|
+
return !!parent && "computed" in parent && parent.computed;
|
|
211
|
+
}
|
|
212
|
+
function isOmittedExpression(node) {
|
|
213
|
+
return node === null;
|
|
214
|
+
}
|
|
215
|
+
function hasModifier(node, modifier) {
|
|
216
|
+
const parent = parentOf(node);
|
|
217
|
+
if (modifier === "export") return parent?.type === "ExportNamedDeclaration" || parent?.type === "ExportDefaultDeclaration";
|
|
218
|
+
if (modifier === "default") return parent?.type === "ExportDefaultDeclaration";
|
|
219
|
+
return modifier in node && Reflect.get(node, modifier) === true;
|
|
220
|
+
}
|
|
221
|
+
function topLevelDeclarations(source) {
|
|
222
|
+
return source.body.map((statement) => (statement.type === "ExportNamedDeclaration" || statement.type === "ExportDefaultDeclaration") && statement.declaration ? statement.declaration : statement);
|
|
223
|
+
}
|
|
224
|
+
function isEnumDeclaration(node) {
|
|
225
|
+
return node.type === "TSEnumDeclaration";
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
//#endregion
|
|
229
|
+
export { declarationName, expressionOf, forEachChild, hasModifier, isArrayLiteralExpression, isArrowFunction, isAsExpression, isAwaitExpression, isBinaryExpression, isCallExpression, isClassDeclaration, isComputedPropertyName, isConditionalExpression, isElementAccessExpression, isEnumDeclaration, isExportAssignment, isExportDeclaration, isExpressionStatement, isFunctionDeclaration, isFunctionExpression, isIdentifier, isIfStatement, isImportDeclaration, isInterfaceDeclaration, isJsxAttribute, isJsxExpression, isJsxOpeningElement, isJsxSelfClosingElement, isLiteralTypeNode, isNewExpression, isNoSubstitutionTemplateLiteral, isNonNullExpression, isNumericLiteral, isObjectLiteralExpression, isOmittedExpression, isParenthesizedExpression, isPropertyAssignment, isPropertyDeclaration, isPropertySignature, isRegularExpressionLiteral, isSatisfiesExpression, isShorthandPropertyAssignment, isSpreadAssignment, isSpreadElement, isStringLiteral, isTemplateExpression, isTypeAliasDeclaration, isTypeAssertionExpression, isUnionTypeNode, isVariableDeclaration, isVariableStatement, keyName, nameNode, parentOf, parseSourceFile, positionOf, sourceOf, textOf, topLevelDeclarations, valueText };
|
|
230
|
+
//# sourceMappingURL=ast.mjs.map
|