@warlock.js/core 5.29.0 → 5.31.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 +168 -4
- 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 +1 -1
- package/esm/application/app.d.mts.map +1 -1
- package/esm/application/app.mjs +1 -1
- package/esm/application/app.mjs.map +1 -1
- package/esm/application/application-config-types.d.mts +1 -1
- package/esm/application/application-config-types.d.mts.map +1 -1
- package/esm/application/application.d.mts +1 -1
- package/esm/application/application.d.mts.map +1 -1
- package/esm/application/application.mjs +1 -1
- package/esm/application/application.mjs.map +1 -1
- package/esm/application/boot-signal.d.mts +1 -1
- package/esm/application/boot-signal.d.mts.map +1 -1
- package/esm/application/boot-signal.mjs +1 -1
- package/esm/application/boot-signal.mjs.map +1 -1
- package/esm/application/public-url.d.mts +1 -1
- package/esm/application/public-url.d.mts.map +1 -1
- package/esm/application/public-url.mjs +1 -1
- package/esm/application/public-url.mjs.map +1 -1
- package/esm/application/roles.d.mts +1 -1
- package/esm/application/roles.d.mts.map +1 -1
- package/esm/application/roles.mjs +1 -1
- package/esm/application/roles.mjs.map +1 -1
- package/esm/benchmark/benchmark-snapshots.d.mts +1 -1
- package/esm/benchmark/benchmark-snapshots.d.mts.map +1 -1
- package/esm/benchmark/benchmark-snapshots.mjs +1 -1
- package/esm/benchmark/benchmark-snapshots.mjs.map +1 -1
- package/esm/benchmark/benchmark.d.mts +1 -1
- package/esm/benchmark/benchmark.d.mts.map +1 -1
- package/esm/benchmark/benchmark.mjs +1 -1
- package/esm/benchmark/benchmark.mjs.map +1 -1
- package/esm/benchmark/channels/console.channel.d.mts +1 -1
- package/esm/benchmark/channels/console.channel.d.mts.map +1 -1
- package/esm/benchmark/channels/console.channel.mjs +1 -1
- package/esm/benchmark/channels/console.channel.mjs.map +1 -1
- package/esm/benchmark/channels/noop.channel.d.mts +1 -1
- package/esm/benchmark/channels/noop.channel.d.mts.map +1 -1
- package/esm/benchmark/channels/noop.channel.mjs +1 -1
- package/esm/benchmark/channels/noop.channel.mjs.map +1 -1
- package/esm/benchmark/profiler.d.mts +1 -1
- package/esm/benchmark/profiler.d.mts.map +1 -1
- package/esm/benchmark/profiler.mjs +1 -1
- package/esm/benchmark/profiler.mjs.map +1 -1
- package/esm/benchmark/types.d.mts +1 -1
- package/esm/benchmark/types.d.mts.map +1 -1
- package/esm/bootstrap/setup.d.mts +1 -1
- package/esm/bootstrap/setup.d.mts.map +1 -1
- package/esm/bootstrap/setup.mjs +1 -1
- package/esm/bootstrap/setup.mjs.map +1 -1
- package/esm/bootstrap.d.mts +1 -1
- package/esm/bootstrap.d.mts.map +1 -1
- package/esm/bootstrap.mjs +1 -1
- package/esm/bootstrap.mjs.map +1 -1
- package/esm/cache/database-cache-driver.d.mts +1 -1
- package/esm/cache/database-cache-driver.d.mts.map +1 -1
- package/esm/cache/database-cache-driver.mjs +1 -1
- package/esm/cache/database-cache-driver.mjs.map +1 -1
- package/esm/cache/index.mjs +1 -1
- package/esm/cache/index.mjs.map +1 -1
- package/esm/cli/cli-commands.manager.mjs +1 -1
- package/esm/cli/cli-commands.manager.mjs.map +1 -1
- package/esm/cli/cli-commands.utils.mjs +1 -1
- package/esm/cli/cli-commands.utils.mjs.map +1 -1
- package/esm/cli/commands/add.command.mjs +5 -3
- package/esm/cli/commands/add.command.mjs.map +1 -1
- package/esm/cli/commands/agents-md/agents-md-command.action.mjs +69 -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 +7 -2
- 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/create-database.command.mjs +1 -1
- package/esm/cli/commands/create-database.command.mjs.map +1 -1
- package/esm/cli/commands/dev-server.command.mjs +10 -2
- package/esm/cli/commands/dev-server.command.mjs.map +1 -1
- package/esm/cli/commands/doctor/boot-for-diagnostics.mjs +9 -4
- package/esm/cli/commands/doctor/boot-for-diagnostics.mjs.map +1 -1
- package/esm/cli/commands/doctor/check.types.d.mts +76 -0
- package/esm/cli/commands/doctor/check.types.d.mts.map +1 -0
- package/esm/cli/commands/doctor/checks/config.check.mjs +2 -1
- package/esm/cli/commands/doctor/checks/config.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/checks/connectors.check.mjs +3 -1
- package/esm/cli/commands/doctor/checks/connectors.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/checks/handler-signature.check.mjs +2 -1
- package/esm/cli/commands/doctor/checks/handler-signature.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/checks/health.check.mjs +4 -1
- package/esm/cli/commands/doctor/checks/health.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/checks/index.mjs +1 -1
- package/esm/cli/commands/doctor/checks/index.mjs.map +1 -1
- package/esm/cli/commands/doctor/checks/jwt-secret.check.mjs +2 -1
- package/esm/cli/commands/doctor/checks/jwt-secret.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/checks/locales-ts-deprecated.check.mjs +2 -1
- package/esm/cli/commands/doctor/checks/locales-ts-deprecated.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/checks/optional-peers.check.mjs +2 -1
- package/esm/cli/commands/doctor/checks/optional-peers.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/checks/release-hygiene.check.mjs +5 -1
- package/esm/cli/commands/doctor/checks/release-hygiene.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/checks/routes.check.mjs +4 -1
- package/esm/cli/commands/doctor/checks/routes.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/doctor-command.action.mjs +15 -7
- package/esm/cli/commands/doctor/doctor-command.action.mjs.map +1 -1
- package/esm/cli/commands/doctor/format-report.mjs +31 -3
- package/esm/cli/commands/doctor/format-report.mjs.map +1 -1
- package/esm/cli/commands/doctor/run-checks.mjs +1 -1
- package/esm/cli/commands/doctor/run-checks.mjs.map +1 -1
- package/esm/cli/commands/doctor.command.mjs +5 -1
- package/esm/cli/commands/doctor.command.mjs.map +1 -1
- package/esm/cli/commands/drop-tables.command.mjs +1 -1
- package/esm/cli/commands/drop-tables.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 +125 -125
- package/esm/cli/commands/generate/generate.command.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/column-dsl-parser.mjs +1 -1
- package/esm/cli/commands/generate/generators/column-dsl-parser.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/controller.generator.mjs +1 -1
- package/esm/cli/commands/generate/generators/controller.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/endpoint.generator.mjs +311 -0
- package/esm/cli/commands/generate/generators/endpoint.generator.mjs.map +1 -0
- package/esm/cli/commands/generate/generators/migration.generator.mjs +2 -2
- package/esm/cli/commands/generate/generators/migration.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/model.generator.mjs +2 -2
- package/esm/cli/commands/generate/generators/model.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/module.generator.mjs +1 -1
- package/esm/cli/commands/generate/generators/module.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/repository.generator.mjs +1 -1
- package/esm/cli/commands/generate/generators/repository.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/resource.generator.mjs +1 -1
- package/esm/cli/commands/generate/generators/resource.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/service.generator.mjs +1 -1
- package/esm/cli/commands/generate/generators/service.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/use-case.generator.mjs +1 -1
- package/esm/cli/commands/generate/generators/use-case.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 +20 -7
- package/esm/cli/commands/generate/templates/stubs.mjs.map +1 -1
- package/esm/cli/commands/generate/utils/endpoint-schema.mjs +137 -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/path-resolver.mjs.map +1 -1
- package/esm/cli/commands/generate/utils/prompt.mjs +1 -1
- package/esm/cli/commands/generate/utils/prompt.mjs.map +1 -1
- package/esm/cli/commands/generate/utils/writer.mjs +39 -14
- package/esm/cli/commands/generate/utils/writer.mjs.map +1 -1
- package/esm/cli/commands/inspect/inspect-command.action.mjs +72 -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/mcp/mcp-command.action.mjs +103 -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/migrate.command.mjs +1 -1
- package/esm/cli/commands/migrate.command.mjs.map +1 -1
- 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 +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 +1 -1
- package/esm/cli/commands/postman-generator.command.mjs.map +1 -1
- package/esm/cli/commands/routes/diff-page-routes.mjs +1 -1
- package/esm/cli/commands/routes/diff-page-routes.mjs.map +1 -1
- package/esm/cli/commands/routes/format-routes-table.mjs +1 -1
- package/esm/cli/commands/routes/format-routes-table.mjs.map +1 -1
- package/esm/cli/commands/routes/route-row.mjs +1 -1
- package/esm/cli/commands/routes/route-row.mjs.map +1 -1
- package/esm/cli/commands/routes/routes-command.action.mjs +1 -1
- package/esm/cli/commands/routes/routes-command.action.mjs.map +1 -1
- package/esm/cli/commands/routes/routes-diff.action.mjs +2 -2
- package/esm/cli/commands/routes/routes-diff.action.mjs.map +1 -1
- package/esm/cli/commands/routes/with-console-on-stderr.mjs +1 -1
- package/esm/cli/commands/routes/with-console-on-stderr.mjs.map +1 -1
- package/esm/cli/commands/routes.command.mjs +1 -1
- package/esm/cli/commands/routes.command.mjs.map +1 -1
- package/esm/cli/commands/seed.command.mjs +1 -1
- package/esm/cli/commands/seed.command.mjs.map +1 -1
- package/esm/cli/commands/start-production.command.mjs +1 -1
- package/esm/cli/commands/start-production.command.mjs.map +1 -1
- package/esm/cli/commands/storage-put.action.mjs +1 -1
- package/esm/cli/commands/storage-put.action.mjs.map +1 -1
- package/esm/cli/commands/storage-put.command.mjs +1 -1
- package/esm/cli/commands/storage-put.command.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/typings-generator.command.mjs +1 -1
- package/esm/cli/commands/typings-generator.command.mjs.map +1 -1
- package/esm/cli/commands/update.command.mjs +1 -1
- package/esm/cli/commands/update.command.mjs.map +1 -1
- 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/commands-loader.mjs.map +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 +24 -2
- package/esm/cli/framework-cli-commands.mjs.map +1 -1
- package/esm/cli/parse-cli-args.mjs +2 -1
- package/esm/cli/parse-cli-args.mjs.map +1 -1
- package/esm/cli/start.mjs +1 -1
- package/esm/cli/start.mjs.map +1 -1
- package/esm/cli/string-similarity.mjs +1 -1
- package/esm/cli/string-similarity.mjs.map +1 -1
- package/esm/commands/cli-command.d.mts +1 -1
- package/esm/commands/cli-command.d.mts.map +1 -1
- package/esm/commands/cli-command.mjs +1 -1
- package/esm/commands/cli-command.mjs.map +1 -1
- package/esm/commands/types.d.mts +1 -1
- package/esm/commands/types.d.mts.map +1 -1
- package/esm/config/config-getter.d.mts +1 -1
- package/esm/config/config-getter.d.mts.map +1 -1
- package/esm/config/config-getter.mjs +1 -1
- package/esm/config/config-getter.mjs.map +1 -1
- package/esm/config/config-handlers.d.mts +1 -1
- package/esm/config/config-handlers.d.mts.map +1 -1
- package/esm/config/config-handlers.mjs +1 -1
- package/esm/config/config-handlers.mjs.map +1 -1
- package/esm/config/config-key-from-path.mjs +1 -1
- package/esm/config/config-key-from-path.mjs.map +1 -1
- package/esm/config/config-loader.d.mts +1 -1
- 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-manager.mjs.map +1 -1
- package/esm/config/config-schema.d.mts +67 -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 +1 -1
- package/esm/config/config-setter.d.mts.map +1 -1
- package/esm/config/config-setter.mjs +1 -1
- package/esm/config/config-setter.mjs.map +1 -1
- package/esm/config/config-special-handlers.d.mts +1 -1
- package/esm/config/config-special-handlers.d.mts.map +1 -1
- package/esm/config/config-special-handlers.mjs +1 -1
- package/esm/config/config-special-handlers.mjs.map +1 -1
- package/esm/config/index.d.mts +6 -0
- package/esm/config/index.mjs +1 -0
- package/esm/config/load-config-files.mjs +1 -1
- package/esm/config/load-config-files.mjs.map +1 -1
- package/esm/config/locale-configuration.mjs +1 -1
- package/esm/config/locale-configuration.mjs.map +1 -1
- package/esm/config/types.d.mts +1 -1
- package/esm/config/types.d.mts.map +1 -1
- package/esm/connectors/access-connector.d.mts +1 -1
- package/esm/connectors/access-connector.d.mts.map +1 -1
- package/esm/connectors/access-connector.mjs +1 -1
- package/esm/connectors/access-connector.mjs.map +1 -1
- package/esm/connectors/ai-connector.d.mts +1 -1
- package/esm/connectors/ai-connector.d.mts.map +1 -1
- package/esm/connectors/ai-connector.mjs +1 -1
- package/esm/connectors/ai-connector.mjs.map +1 -1
- package/esm/connectors/assert-no-reserved-connector-names.d.mts +1 -1
- package/esm/connectors/assert-no-reserved-connector-names.d.mts.map +1 -1
- package/esm/connectors/assert-no-reserved-connector-names.mjs +3 -2
- package/esm/connectors/assert-no-reserved-connector-names.mjs.map +1 -1
- package/esm/connectors/assert-unique-connector-names.d.mts +1 -1
- package/esm/connectors/assert-unique-connector-names.d.mts.map +1 -1
- package/esm/connectors/assert-unique-connector-names.mjs +27 -3
- package/esm/connectors/assert-unique-connector-names.mjs.map +1 -1
- package/esm/connectors/base-connector.d.mts +1 -1
- package/esm/connectors/base-connector.d.mts.map +1 -1
- package/esm/connectors/base-connector.mjs +1 -1
- package/esm/connectors/base-connector.mjs.map +1 -1
- package/esm/connectors/cache-connector.d.mts +1 -1
- package/esm/connectors/cache-connector.d.mts.map +1 -1
- package/esm/connectors/cache-connector.mjs +1 -1
- package/esm/connectors/cache-connector.mjs.map +1 -1
- package/esm/connectors/connectors-manager.d.mts +1 -1
- 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 -1
- package/esm/connectors/database-connector.d.mts.map +1 -1
- package/esm/connectors/database-connector.mjs +1 -1
- package/esm/connectors/database-connector.mjs.map +1 -1
- package/esm/connectors/describe-server-address.mjs +1 -1
- package/esm/connectors/describe-server-address.mjs.map +1 -1
- package/esm/connectors/herald-connector.d.mts +1 -1
- package/esm/connectors/herald-connector.d.mts.map +1 -1
- package/esm/connectors/herald-connector.mjs +1 -1
- package/esm/connectors/herald-connector.mjs.map +1 -1
- package/esm/connectors/http-connector.d.mts +1 -1
- package/esm/connectors/http-connector.d.mts.map +1 -1
- package/esm/connectors/http-connector.mjs +4 -3
- package/esm/connectors/http-connector.mjs.map +1 -1
- package/esm/connectors/logger-connector.d.mts +1 -1
- package/esm/connectors/logger-connector.d.mts.map +1 -1
- package/esm/connectors/logger-connector.mjs +1 -1
- package/esm/connectors/logger-connector.mjs.map +1 -1
- package/esm/connectors/mail-connector.d.mts +1 -1
- package/esm/connectors/mail-connector.d.mts.map +1 -1
- package/esm/connectors/mail-connector.mjs +1 -1
- package/esm/connectors/mail-connector.mjs.map +1 -1
- package/esm/connectors/notifications-connector.d.mts +1 -1
- package/esm/connectors/notifications-connector.d.mts.map +1 -1
- package/esm/connectors/notifications-connector.mjs +1 -1
- package/esm/connectors/notifications-connector.mjs.map +1 -1
- package/esm/connectors/read-bound-port.mjs +1 -1
- package/esm/connectors/read-bound-port.mjs.map +1 -1
- package/esm/connectors/register-configured-connectors.d.mts +1 -1
- package/esm/connectors/register-configured-connectors.d.mts.map +1 -1
- package/esm/connectors/register-configured-connectors.mjs +1 -1
- package/esm/connectors/register-configured-connectors.mjs.map +1 -1
- package/esm/connectors/single-server-warnings.mjs +1 -1
- package/esm/connectors/single-server-warnings.mjs.map +1 -1
- package/esm/connectors/socket-connector.d.mts +1 -1
- package/esm/connectors/socket-connector.d.mts.map +1 -1
- package/esm/connectors/socket-connector.mjs +1 -1
- package/esm/connectors/socket-connector.mjs.map +1 -1
- package/esm/connectors/storage.connector.d.mts +1 -1
- package/esm/connectors/storage.connector.d.mts.map +1 -1
- package/esm/connectors/storage.connector.mjs +1 -1
- package/esm/connectors/storage.connector.mjs.map +1 -1
- package/esm/connectors/types.d.mts +1 -1
- package/esm/connectors/types.d.mts.map +1 -1
- package/esm/connectors/types.mjs +1 -1
- package/esm/connectors/types.mjs.map +1 -1
- package/esm/container/container-instance-registry.mjs +1 -1
- package/esm/container/container-instance-registry.mjs.map +1 -1
- package/esm/container/development-app-modules.d.mts +1 -1
- package/esm/container/development-app-modules.d.mts.map +1 -1
- package/esm/container/development-model-modules.d.mts +1 -1
- package/esm/container/development-model-modules.d.mts.map +1 -1
- package/esm/container/index.d.mts +1 -1
- package/esm/container/index.d.mts.map +1 -1
- package/esm/container/index.mjs +1 -1
- package/esm/container/index.mjs.map +1 -1
- package/esm/database/create-database-action.mjs +1 -1
- package/esm/database/create-database-action.mjs.map +1 -1
- package/esm/database/drop-tables-action.mjs +1 -1
- package/esm/database/drop-tables-action.mjs.map +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 +3 -39
- package/esm/database/models/database-log/database-log.d.mts.map +1 -1
- package/esm/database/models/database-log/database-log.mjs +1 -1
- package/esm/database/models/database-log/database-log.mjs.map +1 -1
- package/esm/database/pending-exit-code.mjs +1 -1
- package/esm/database/pending-exit-code.mjs.map +1 -1
- package/esm/database/resolve-pending-migrations.mjs +1 -1
- package/esm/database/resolve-pending-migrations.mjs.map +1 -1
- package/esm/database/seed-command-action.mjs +1 -1
- package/esm/database/seed-command-action.mjs.map +1 -1
- package/esm/database/seeds/seed-records-table-migration.mjs +1 -1
- package/esm/database/seeds/seed-records-table-migration.mjs.map +1 -1
- package/esm/database/seeds/seeder.d.mts +1 -1
- package/esm/database/seeds/seeder.d.mts.map +1 -1
- package/esm/database/seeds/seeder.errors.d.mts +5 -1
- package/esm/database/seeds/seeder.errors.d.mts.map +1 -1
- package/esm/database/seeds/seeder.errors.mjs +3 -1
- package/esm/database/seeds/seeder.errors.mjs.map +1 -1
- package/esm/database/seeds/seeder.mjs +1 -1
- package/esm/database/seeds/seeder.mjs.map +1 -1
- package/esm/database/seeds/seeders.manager.mjs +1 -1
- package/esm/database/seeds/seeders.manager.mjs.map +1 -1
- package/esm/database/seeds/seeds-table-migration.mjs +1 -1
- package/esm/database/seeds/seeds-table-migration.mjs.map +1 -1
- package/esm/database/seeds/types.d.mts +1 -1
- package/esm/database/seeds/types.d.mts.map +1 -1
- package/esm/database/seeds/utils.mjs +1 -1
- package/esm/database/seeds/utils.mjs.map +1 -1
- package/esm/database/utils.d.mts +1 -1
- package/esm/database/utils.d.mts.map +1 -1
- package/esm/database/utils.mjs +1 -1
- package/esm/database/utils.mjs.map +1 -1
- package/esm/dev-server/app-module-registry.mjs +1 -1
- package/esm/dev-server/app-module-registry.mjs.map +1 -1
- package/esm/dev-server/boot-precondition-error.mjs +2 -1
- package/esm/dev-server/boot-precondition-error.mjs.map +1 -1
- package/esm/dev-server/build-development-openapi-document.mjs +1 -1
- package/esm/dev-server/build-development-openapi-document.mjs.map +1 -1
- package/esm/dev-server/check-for-updates.mjs +1 -1
- package/esm/dev-server/check-for-updates.mjs.map +1 -1
- package/esm/dev-server/collect-development-api-routes.mjs +1 -1
- package/esm/dev-server/collect-development-api-routes.mjs.map +1 -1
- package/esm/dev-server/create-worker.mjs +16 -10
- package/esm/dev-server/create-worker.mjs.map +1 -1
- package/esm/dev-server/dependency-graph.d.mts +1 -1
- 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 +1 -1
- package/esm/dev-server/dev-logger.mjs.map +1 -1
- package/esm/dev-server/development-server.mjs +9 -1
- package/esm/dev-server/development-server.mjs.map +1 -1
- package/esm/dev-server/events.mjs +1 -1
- package/esm/dev-server/events.mjs.map +1 -1
- package/esm/dev-server/extract-translation-keys.mjs +1 -1
- package/esm/dev-server/extract-translation-keys.mjs.map +1 -1
- package/esm/dev-server/file-event-handler.mjs +1 -1
- package/esm/dev-server/file-event-handler.mjs.map +1 -1
- package/esm/dev-server/file-manager.d.mts +1 -1
- package/esm/dev-server/file-manager.d.mts.map +1 -1
- package/esm/dev-server/file-manager.mjs +1 -1
- package/esm/dev-server/file-manager.mjs.map +1 -1
- package/esm/dev-server/file-operations.d.mts +1 -1
- package/esm/dev-server/file-operations.d.mts.map +1 -1
- package/esm/dev-server/file-operations.mjs +1 -1
- package/esm/dev-server/file-operations.mjs.map +1 -1
- package/esm/dev-server/files-orchestrator.mjs +22 -20
- package/esm/dev-server/files-orchestrator.mjs.map +1 -1
- package/esm/dev-server/files-watcher.mjs +2 -2
- package/esm/dev-server/files-watcher.mjs.map +1 -1
- package/esm/dev-server/flags.mjs +1 -1
- package/esm/dev-server/flags.mjs.map +1 -1
- package/esm/dev-server/health-checker/checkers/base-health-checker.mjs +1 -1
- package/esm/dev-server/health-checker/checkers/base-health-checker.mjs.map +1 -1
- package/esm/dev-server/health-checker/checkers/eslint-health-checker.mjs +3 -4
- 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 +1 -1
- 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 +10 -4
- 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 +1 -1
- package/esm/dev-server/health-checker/file-health-result.d.mts.map +1 -1
- package/esm/dev-server/health-checker/file-health-result.mjs +1 -1
- package/esm/dev-server/health-checker/file-health-result.mjs.map +1 -1
- package/esm/dev-server/health-checker/files-healthcare.manager.mjs +16 -5
- package/esm/dev-server/health-checker/files-healthcare.manager.mjs.map +1 -1
- package/esm/dev-server/health-checker/oxlint-runner.mjs +302 -0
- package/esm/dev-server/health-checker/oxlint-runner.mjs.map +1 -0
- package/esm/dev-server/health-checker/workers/eslint-health.worker.mjs +1 -1
- package/esm/dev-server/health-checker/workers/eslint-health.worker.mjs.map +1 -1
- package/esm/dev-server/health-checker/workers/oxlint-health.worker.d.mts +1 -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.mjs +1 -1
- package/esm/dev-server/health-checker/workers/ts-health.worker.mjs.map +1 -1
- package/esm/dev-server/layer-executor.mjs +1 -1
- package/esm/dev-server/layer-executor.mjs.map +1 -1
- package/esm/dev-server/legacy-locales-warning.mjs +1 -1
- package/esm/dev-server/legacy-locales-warning.mjs.map +1 -1
- package/esm/dev-server/loader/build-transpile-init.mjs +1 -1
- package/esm/dev-server/loader/build-transpile-init.mjs.map +1 -1
- package/esm/dev-server/loader/hook-thread.d.mts +1 -1
- package/esm/dev-server/loader/hook-thread.d.mts.map +1 -1
- package/esm/dev-server/loader/hook-thread.mjs +1 -1
- package/esm/dev-server/loader/hook-thread.mjs.map +1 -1
- package/esm/dev-server/loader/load-hook.d.mts +1 -1
- package/esm/dev-server/loader/load-hook.d.mts.map +1 -1
- package/esm/dev-server/loader/load-hook.mjs +1 -1
- package/esm/dev-server/loader/load-hook.mjs.map +1 -1
- package/esm/dev-server/loader/loader-port-acks.mjs +34 -0
- package/esm/dev-server/loader/loader-port-acks.mjs.map +1 -0
- package/esm/dev-server/loader/own-resolver.mjs +1 -1
- package/esm/dev-server/loader/own-resolver.mjs.map +1 -1
- package/esm/dev-server/loader/register-loader.mjs +2 -2
- package/esm/dev-server/loader/register-loader.mjs.map +1 -1
- package/esm/dev-server/loader/resolve-capture.mjs +1 -1
- package/esm/dev-server/loader/resolve-capture.mjs.map +1 -1
- package/esm/dev-server/loader/resolve-hook.d.mts +1 -1
- package/esm/dev-server/loader/resolve-hook.d.mts.map +1 -1
- package/esm/dev-server/loader/resolve-hook.mjs +1 -1
- package/esm/dev-server/loader/resolve-hook.mjs.map +1 -1
- package/esm/dev-server/loader/source-slug.mjs +1 -1
- package/esm/dev-server/loader/source-slug.mjs.map +1 -1
- package/esm/dev-server/loader/transpile-cache.mjs +2 -2
- package/esm/dev-server/loader/transpile-cache.mjs.map +1 -1
- package/esm/dev-server/loader/version-registry.mjs +1 -1
- package/esm/dev-server/loader/version-registry.mjs.map +1 -1
- package/esm/dev-server/manifest-manager.d.mts +1 -1
- package/esm/dev-server/manifest-manager.d.mts.map +1 -1
- package/esm/dev-server/manifest-manager.mjs +1 -1
- package/esm/dev-server/manifest-manager.mjs.map +1 -1
- package/esm/dev-server/model-module-registry.mjs +1 -1
- package/esm/dev-server/model-module-registry.mjs.map +1 -1
- package/esm/dev-server/model-resource-typings.mjs +1 -1
- package/esm/dev-server/model-resource-typings.mjs.map +1 -1
- package/esm/dev-server/module-loader.mjs +2 -1
- package/esm/dev-server/module-loader.mjs.map +1 -1
- package/esm/dev-server/package-json-manager.mjs +1 -1
- package/esm/dev-server/package-json-manager.mjs.map +1 -1
- package/esm/dev-server/parse-imports.mjs +74 -7
- package/esm/dev-server/parse-imports.mjs.map +1 -1
- package/esm/dev-server/read-config-ast.mjs +1 -1
- package/esm/dev-server/read-config-ast.mjs.map +1 -1
- package/esm/dev-server/ready-block.mjs +1 -1
- package/esm/dev-server/ready-block.mjs.map +1 -1
- package/esm/dev-server/register-dev-shortcuts.mjs +1 -1
- package/esm/dev-server/register-dev-shortcuts.mjs.map +1 -1
- package/esm/dev-server/register-installed-devtools.mjs +1 -1
- package/esm/dev-server/register-installed-devtools.mjs.map +1 -1
- package/esm/dev-server/restart-dev-server.mjs +1 -1
- package/esm/dev-server/restart-dev-server.mjs.map +1 -1
- package/esm/dev-server/route-types-publisher.mjs +2 -2
- package/esm/dev-server/route-types-publisher.mjs.map +1 -1
- package/esm/dev-server/run-connector-typings.mjs +1 -1
- package/esm/dev-server/run-connector-typings.mjs.map +1 -1
- package/esm/dev-server/run-typings-generation.mjs +1 -1
- package/esm/dev-server/run-typings-generation.mjs.map +1 -1
- package/esm/dev-server/shortcuts.mjs +1 -1
- package/esm/dev-server/shortcuts.mjs.map +1 -1
- package/esm/dev-server/special-file-patterns.mjs +1 -1
- package/esm/dev-server/special-file-patterns.mjs.map +1 -1
- package/esm/dev-server/special-files-collector.d.mts +1 -1
- package/esm/dev-server/special-files-collector.d.mts.map +1 -1
- package/esm/dev-server/special-files-collector.mjs +1 -1
- package/esm/dev-server/special-files-collector.mjs.map +1 -1
- package/esm/dev-server/start-development-server.mjs +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/supervisor.mjs.map +1 -1
- package/esm/dev-server/translation-keys-sources.mjs +2 -2
- package/esm/dev-server/translation-keys-sources.mjs.map +1 -1
- package/esm/dev-server/tsconfig-manager.mjs +1 -1
- package/esm/dev-server/tsconfig-manager.mjs.map +1 -1
- package/esm/dev-server/type-generator.mjs +33 -12
- package/esm/dev-server/type-generator.mjs.map +1 -1
- package/esm/dev-server/types.d.mts +1 -1
- package/esm/dev-server/types.d.mts.map +1 -1
- package/esm/dev-server/update-check-cache.mjs +1 -1
- package/esm/dev-server/update-check-cache.mjs.map +1 -1
- package/esm/dev-server/utils.mjs +1 -1
- package/esm/dev-server/utils.mjs.map +1 -1
- package/esm/encryption/encrypt.d.mts +1 -1
- package/esm/encryption/encrypt.d.mts.map +1 -1
- package/esm/encryption/encrypt.mjs +1 -1
- package/esm/encryption/encrypt.mjs.map +1 -1
- package/esm/encryption/hash.d.mts +1 -1
- package/esm/encryption/hash.d.mts.map +1 -1
- package/esm/encryption/hash.mjs +1 -1
- package/esm/encryption/hash.mjs.map +1 -1
- package/esm/encryption/password.d.mts +1 -1
- package/esm/encryption/password.d.mts.map +1 -1
- package/esm/encryption/password.mjs +1 -1
- package/esm/encryption/password.mjs.map +1 -1
- package/esm/encryption/types.d.mts +1 -1
- package/esm/encryption/types.d.mts.map +1 -1
- package/esm/errors/container-key-missing-error.mjs +2 -1
- package/esm/errors/container-key-missing-error.mjs.map +1 -1
- package/esm/errors/error-codes.d.mts +653 -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 +2 -1
- package/esm/errors/esbuild-binary-missing-error.mjs.map +1 -1
- package/esm/errors/index.d.mts +4 -0
- package/esm/errors/index.mjs +5 -0
- package/esm/errors/unknown-locale-error.mjs +2 -1
- package/esm/errors/unknown-locale-error.mjs.map +1 -1
- package/esm/errors/warlock-error.d.mts +23 -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 +48 -9
- package/esm/generations/add-command.action.mjs.map +1 -1
- package/esm/generations/features/access.feature.mjs +2 -2
- package/esm/generations/features/access.feature.mjs.map +1 -1
- package/esm/generations/features/ai-anthropic.feature.mjs +1 -1
- package/esm/generations/features/ai-anthropic.feature.mjs.map +1 -1
- package/esm/generations/features/ai-bedrock.feature.mjs +1 -1
- package/esm/generations/features/ai-bedrock.feature.mjs.map +1 -1
- package/esm/generations/features/ai-google.feature.mjs +1 -1
- package/esm/generations/features/ai-google.feature.mjs.map +1 -1
- package/esm/generations/features/ai-ollama.feature.mjs +1 -1
- package/esm/generations/features/ai-ollama.feature.mjs.map +1 -1
- package/esm/generations/features/ai-openai.feature.mjs +1 -1
- package/esm/generations/features/ai-openai.feature.mjs.map +1 -1
- package/esm/generations/features/ai-panoptic.feature.mjs +1 -1
- package/esm/generations/features/ai-panoptic.feature.mjs.map +1 -1
- package/esm/generations/features/ai-tools.feature.mjs +1 -1
- package/esm/generations/features/ai-tools.feature.mjs.map +1 -1
- package/esm/generations/features/ai-workspace.feature.mjs +1 -1
- package/esm/generations/features/ai-workspace.feature.mjs.map +1 -1
- package/esm/generations/features/ai.feature.mjs +1 -1
- package/esm/generations/features/ai.feature.mjs.map +1 -1
- package/esm/generations/features/auth-google.feature.mjs +1 -1
- package/esm/generations/features/auth-google.feature.mjs.map +1 -1
- package/esm/generations/features/auth-passkeys.feature.mjs +1 -1
- package/esm/generations/features/auth-passkeys.feature.mjs.map +1 -1
- package/esm/generations/features/bull-board.feature.mjs +2 -2
- package/esm/generations/features/bull-board.feature.mjs.map +1 -1
- package/esm/generations/features/devtools.feature.mjs +1 -1
- package/esm/generations/features/devtools.feature.mjs.map +1 -1
- package/esm/generations/features/herald.feature.mjs +1 -1
- package/esm/generations/features/herald.feature.mjs.map +1 -1
- package/esm/generations/features/image.feature.mjs +1 -1
- package/esm/generations/features/image.feature.mjs.map +1 -1
- package/esm/generations/features/index.mjs +1 -1
- package/esm/generations/features/index.mjs.map +1 -1
- package/esm/generations/features/mail.feature.mjs +1 -1
- package/esm/generations/features/mail.feature.mjs.map +1 -1
- package/esm/generations/features/mongodb.feature.mjs +1 -1
- package/esm/generations/features/mongodb.feature.mjs.map +1 -1
- package/esm/generations/features/mysql.feature.mjs +1 -1
- package/esm/generations/features/mysql.feature.mjs.map +1 -1
- package/esm/generations/features/notifications.feature.mjs +124 -17
- package/esm/generations/features/notifications.feature.mjs.map +1 -1
- package/esm/generations/features/postgres.feature.mjs +1 -1
- package/esm/generations/features/postgres.feature.mjs.map +1 -1
- package/esm/generations/features/queue.feature.mjs +2 -2
- package/esm/generations/features/queue.feature.mjs.map +1 -1
- package/esm/generations/features/react-email.feature.mjs +2 -2
- package/esm/generations/features/react-email.feature.mjs.map +1 -1
- package/esm/generations/features/react.feature.mjs +1 -1
- package/esm/generations/features/react.feature.mjs.map +1 -1
- package/esm/generations/features/redis.feature.mjs +1 -1
- package/esm/generations/features/redis.feature.mjs.map +1 -1
- package/esm/generations/features/s3.feature.mjs +1 -1
- package/esm/generations/features/s3.feature.mjs.map +1 -1
- package/esm/generations/features/scheduler.feature.mjs +1 -1
- package/esm/generations/features/scheduler.feature.mjs.map +1 -1
- package/esm/generations/features/ses.feature.mjs +1 -1
- package/esm/generations/features/ses.feature.mjs.map +1 -1
- package/esm/generations/features/shadcn.feature.mjs +2 -2
- package/esm/generations/features/shadcn.feature.mjs.map +1 -1
- package/esm/generations/features/shared/insert-connector-entry.mjs +1 -1
- package/esm/generations/features/shared/insert-connector-entry.mjs.map +1 -1
- package/esm/generations/features/shared/insert-queue-dashboard-block.mjs +1 -1
- package/esm/generations/features/shared/insert-queue-dashboard-block.mjs.map +1 -1
- package/esm/generations/features/shared/link-ai-package-import.mjs +2 -2
- package/esm/generations/features/shared/link-ai-package-import.mjs.map +1 -1
- package/esm/generations/features/shared/merge-web-sitemap-config.mjs +1 -1
- package/esm/generations/features/shared/merge-web-sitemap-config.mjs.map +1 -1
- package/esm/generations/features/shared/migration-timestamp.mjs +1 -1
- package/esm/generations/features/shared/migration-timestamp.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/shared/resolve-contact-scaffold.mjs +1 -1
- package/esm/generations/features/shared/resolve-contact-scaffold.mjs.map +1 -1
- package/esm/generations/features/sitemap.feature.mjs +2 -2
- package/esm/generations/features/sitemap.feature.mjs.map +1 -1
- package/esm/generations/features/socket.feature.mjs +1 -1
- package/esm/generations/features/socket.feature.mjs.map +1 -1
- package/esm/generations/features/tailwind.feature.mjs +2 -2
- package/esm/generations/features/tailwind.feature.mjs.map +1 -1
- package/esm/generations/features/test.feature.mjs +12 -7
- package/esm/generations/features/test.feature.mjs.map +1 -1
- package/esm/generations/features/types.mjs +1 -1
- package/esm/generations/features/types.mjs.map +1 -1
- package/esm/generations/features/web.feature.mjs +2 -2
- 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/pnpm-build-approvals.mjs +89 -3
- package/esm/generations/pnpm-build-approvals.mjs.map +1 -1
- package/esm/generations/stubs.mjs +327 -79
- package/esm/generations/stubs.mjs.map +1 -1
- package/esm/http/boot-port-preflight.d.mts +1 -1
- package/esm/http/boot-port-preflight.d.mts.map +1 -1
- package/esm/http/boot-port-preflight.mjs +1 -1
- 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 +1 -1
- package/esm/http/build-cors-options.mjs.map +1 -1
- package/esm/http/build-rate-limit-options.d.mts +35 -1
- package/esm/http/build-rate-limit-options.d.mts.map +1 -1
- package/esm/http/build-rate-limit-options.mjs +7 -1
- package/esm/http/build-rate-limit-options.mjs.map +1 -1
- package/esm/http/conditional-request.d.mts +86 -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 +1 -1
- package/esm/http/config.d.mts.map +1 -1
- package/esm/http/config.mjs +1 -1
- package/esm/http/config.mjs.map +1 -1
- package/esm/http/context/request-context.d.mts +1 -1
- package/esm/http/context/request-context.d.mts.map +1 -1
- package/esm/http/context/request-context.mjs +1 -1
- package/esm/http/context/request-context.mjs.map +1 -1
- package/esm/http/context/request-memo.d.mts +1 -1
- package/esm/http/context/request-memo.d.mts.map +1 -1
- package/esm/http/context/request-memo.mjs +1 -1
- package/esm/http/context/request-memo.mjs.map +1 -1
- package/esm/http/createHttpApplication.d.mts +1 -1
- package/esm/http/createHttpApplication.d.mts.map +1 -1
- package/esm/http/createHttpApplication.mjs +1 -1
- package/esm/http/createHttpApplication.mjs.map +1 -1
- package/esm/http/csp.d.mts +3 -1
- package/esm/http/csp.d.mts.map +1 -1
- package/esm/http/csp.mjs +2 -1
- package/esm/http/csp.mjs.map +1 -1
- package/esm/http/csrf-default-guard.d.mts +1 -1
- 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 +1 -1
- package/esm/http/csrf-origin-policy.d.mts.map +1 -1
- package/esm/http/csrf-origin-policy.mjs +1 -1
- package/esm/http/csrf-origin-policy.mjs.map +1 -1
- package/esm/http/database/RequestLog.d.mts +27 -135
- package/esm/http/database/RequestLog.d.mts.map +1 -1
- package/esm/http/database/RequestLog.mjs +1 -1
- package/esm/http/database/RequestLog.mjs.map +1 -1
- package/esm/http/error-codes.d.mts +1 -1
- package/esm/http/error-codes.d.mts.map +1 -1
- package/esm/http/error-codes.mjs +1 -1
- package/esm/http/error-codes.mjs.map +1 -1
- package/esm/http/error-mapper.d.mts +48 -0
- package/esm/http/error-mapper.d.mts.map +1 -0
- package/esm/http/error-mapper.mjs +48 -0
- package/esm/http/error-mapper.mjs.map +1 -0
- package/esm/http/errors/errors.d.mts +3 -1
- package/esm/http/errors/errors.d.mts.map +1 -1
- package/esm/http/errors/errors.mjs +2 -1
- package/esm/http/errors/errors.mjs.map +1 -1
- package/esm/http/escape-header-value.d.mts +18 -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 +1 -1
- package/esm/http/events.d.mts.map +1 -1
- package/esm/http/events.mjs +1 -1
- package/esm/http/events.mjs.map +1 -1
- package/esm/http/flush-pending-cookies.mjs +1 -1
- package/esm/http/flush-pending-cookies.mjs.map +1 -1
- package/esm/http/health.d.mts +1 -1
- package/esm/http/health.d.mts.map +1 -1
- package/esm/http/health.mjs +1 -1
- package/esm/http/health.mjs.map +1 -1
- package/esm/http/index.d.mts +13 -6
- package/esm/http/index.mjs +12 -6
- 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 +1 -1
- package/esm/http/middleware/cache-response-middleware.d.mts.map +1 -1
- package/esm/http/middleware/cache-response-middleware.mjs +1 -1
- package/esm/http/middleware/cache-response-middleware.mjs.map +1 -1
- package/esm/http/middleware/concurrency-limit.middleware.d.mts +1 -1
- package/esm/http/middleware/concurrency-limit.middleware.d.mts.map +1 -1
- package/esm/http/middleware/concurrency-limit.middleware.mjs +1 -1
- package/esm/http/middleware/concurrency-limit.middleware.mjs.map +1 -1
- package/esm/http/middleware/idempotency.middleware.d.mts +1 -1
- package/esm/http/middleware/idempotency.middleware.d.mts.map +1 -1
- package/esm/http/middleware/idempotency.middleware.mjs +1 -1
- package/esm/http/middleware/idempotency.middleware.mjs.map +1 -1
- package/esm/http/middleware/inject-request-context.d.mts +1 -1
- package/esm/http/middleware/inject-request-context.d.mts.map +1 -1
- package/esm/http/middleware/inject-request-context.mjs +4 -2
- package/esm/http/middleware/inject-request-context.mjs.map +1 -1
- package/esm/http/middleware/ip-filter.middleware.d.mts +1 -1
- package/esm/http/middleware/ip-filter.middleware.d.mts.map +1 -1
- package/esm/http/middleware/ip-filter.middleware.mjs +1 -1
- package/esm/http/middleware/ip-filter.middleware.mjs.map +1 -1
- package/esm/http/middleware/maintenance.middleware.d.mts +1 -1
- package/esm/http/middleware/maintenance.middleware.d.mts.map +1 -1
- package/esm/http/middleware/maintenance.middleware.mjs +1 -1
- package/esm/http/middleware/maintenance.middleware.mjs.map +1 -1
- package/esm/http/middleware/max-body-size.middleware.d.mts +1 -1
- package/esm/http/middleware/max-body-size.middleware.d.mts.map +1 -1
- package/esm/http/middleware/max-body-size.middleware.mjs +1 -1
- package/esm/http/middleware/max-body-size.middleware.mjs.map +1 -1
- package/esm/http/middleware/middleware-list.d.mts +1 -1
- package/esm/http/middleware/middleware-list.d.mts.map +1 -1
- package/esm/http/middleware/middleware-list.mjs +1 -1
- package/esm/http/middleware/middleware-list.mjs.map +1 -1
- package/esm/http/middleware/rate-limit.middleware.d.mts +20 -5
- package/esm/http/middleware/rate-limit.middleware.d.mts.map +1 -1
- package/esm/http/middleware/rate-limit.middleware.mjs +34 -12
- package/esm/http/middleware/rate-limit.middleware.mjs.map +1 -1
- package/esm/http/middleware/utils/cidr-match.d.mts +1 -1
- package/esm/http/middleware/utils/cidr-match.d.mts.map +1 -1
- package/esm/http/middleware/utils/cidr-match.mjs +1 -1
- package/esm/http/middleware/utils/cidr-match.mjs.map +1 -1
- package/esm/http/middleware/utils/idempotency-key.d.mts +1 -1
- package/esm/http/middleware/utils/idempotency-key.d.mts.map +1 -1
- package/esm/http/middleware/utils/idempotency-key.mjs +1 -1
- package/esm/http/middleware/utils/idempotency-key.mjs.map +1 -1
- package/esm/http/middleware/utils/parse-size.d.mts +1 -1
- package/esm/http/middleware/utils/parse-size.d.mts.map +1 -1
- package/esm/http/middleware/utils/parse-size.mjs +1 -1
- package/esm/http/middleware/utils/parse-size.mjs.map +1 -1
- package/esm/http/parse-urlencoded-body.mjs +1 -1
- package/esm/http/parse-urlencoded-body.mjs.map +1 -1
- package/esm/http/plugins.d.mts +9 -2
- package/esm/http/plugins.d.mts.map +1 -1
- package/esm/http/plugins.mjs +23 -6
- package/esm/http/plugins.mjs.map +1 -1
- package/esm/http/port-preflight.d.mts +1 -1
- package/esm/http/port-preflight.d.mts.map +1 -1
- package/esm/http/port-preflight.mjs +1 -1
- package/esm/http/port-preflight.mjs.map +1 -1
- package/esm/http/rate-limit-cache-store.mjs +156 -0
- package/esm/http/rate-limit-cache-store.mjs.map +1 -0
- package/esm/http/ready-report.d.mts +1 -1
- package/esm/http/ready-report.d.mts.map +1 -1
- package/esm/http/ready-report.mjs +1 -1
- package/esm/http/ready-report.mjs.map +1 -1
- package/esm/http/request-controller.d.mts +1 -1
- package/esm/http/request-controller.d.mts.map +1 -1
- package/esm/http/request-controller.mjs +1 -1
- package/esm/http/request-controller.mjs.map +1 -1
- package/esm/http/request-log-snapshot.d.mts +130 -0
- package/esm/http/request-log-snapshot.d.mts.map +1 -0
- package/esm/http/request-log-snapshot.mjs +220 -0
- package/esm/http/request-log-snapshot.mjs.map +1 -0
- package/esm/http/request.d.mts +43 -4
- package/esm/http/request.d.mts.map +1 -1
- package/esm/http/request.mjs +70 -6
- package/esm/http/request.mjs.map +1 -1
- package/esm/http/resolve-bind-port.mjs +1 -1
- package/esm/http/resolve-bind-port.mjs.map +1 -1
- package/esm/http/response.d.mts +51 -9
- package/esm/http/response.d.mts.map +1 -1
- package/esm/http/response.mjs +301 -101
- package/esm/http/response.mjs.map +1 -1
- package/esm/http/safe-redirect.d.mts +51 -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 +1 -1
- package/esm/http/serialized.d.mts.map +1 -1
- package/esm/http/server-rebuilt.d.mts +1 -1
- package/esm/http/server-rebuilt.d.mts.map +1 -1
- package/esm/http/server-rebuilt.mjs +1 -1
- package/esm/http/server-rebuilt.mjs.map +1 -1
- package/esm/http/server.d.mts +36 -6
- package/esm/http/server.d.mts.map +1 -1
- package/esm/http/server.mjs +80 -5
- package/esm/http/server.mjs.map +1 -1
- package/esm/http/stream-react-response.d.mts +1 -1
- package/esm/http/stream-react-response.d.mts.map +1 -1
- package/esm/http/stream-react-response.mjs +1 -1
- package/esm/http/stream-react-response.mjs.map +1 -1
- package/esm/http/stream-transport.mjs +77 -0
- package/esm/http/stream-transport.mjs.map +1 -0
- package/esm/http/tracing/trace-id.d.mts +1 -1
- package/esm/http/tracing/trace-id.d.mts.map +1 -1
- package/esm/http/tracing/trace-id.mjs +1 -1
- package/esm/http/tracing/trace-id.mjs.map +1 -1
- package/esm/http/tracing/tracing-dispatcher.d.mts +1 -1
- package/esm/http/tracing/tracing-dispatcher.d.mts.map +1 -1
- package/esm/http/tracing/tracing-dispatcher.mjs +1 -1
- package/esm/http/tracing/tracing-dispatcher.mjs.map +1 -1
- package/esm/http/tracing/tracing.type.d.mts +1 -1
- package/esm/http/tracing/tracing.type.d.mts.map +1 -1
- package/esm/http/types.d.mts +165 -7
- package/esm/http/types.d.mts.map +1 -1
- package/esm/http/uploaded-file.d.mts +2 -2
- package/esm/http/uploaded-file.d.mts.map +1 -1
- package/esm/http/uploaded-file.mjs +2 -2
- package/esm/http/uploaded-file.mjs.map +1 -1
- package/esm/http/uploads/detect-image-format.mjs +1 -1
- package/esm/http/uploads/detect-image-format.mjs.map +1 -1
- package/esm/http/uploads/generate-image-variant.mjs +2 -2
- package/esm/http/uploads/generate-image-variant.mjs.map +1 -1
- package/esm/http/uploads/generate-image-variants.d.mts +11 -8
- package/esm/http/uploads/generate-image-variants.d.mts.map +1 -1
- package/esm/http/uploads/generate-image-variants.mjs +75 -30
- 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 +185 -0
- package/esm/http/uploads/image-variant-cache.mjs.map +1 -0
- package/esm/http/uploads/image-variant-types.d.mts +3 -1
- package/esm/http/uploads/image-variant-types.d.mts.map +1 -1
- package/esm/http/uploads/image-variants-config-error.d.mts +4 -2
- package/esm/http/uploads/image-variants-config-error.d.mts.map +1 -1
- package/esm/http/uploads/image-variants-config-error.mjs +4 -3
- package/esm/http/uploads/image-variants-config-error.mjs.map +1 -1
- package/esm/http/uploads/index.d.mts +3 -1
- package/esm/http/uploads/index.mjs +3 -1
- package/esm/http/uploads/is-path-inside.mjs +1 -1
- package/esm/http/uploads/is-path-inside.mjs.map +1 -1
- package/esm/http/uploads/load-variant-source.mjs +2 -2
- package/esm/http/uploads/load-variant-source.mjs.map +1 -1
- package/esm/http/uploads/local-disk-root.mjs +24 -0
- package/esm/http/uploads/local-disk-root.mjs.map +1 -0
- 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 +37 -0
- package/esm/http/uploads/purge-image-variants.d.mts.map +1 -0
- package/esm/http/uploads/purge-image-variants.mjs +46 -0
- package/esm/http/uploads/purge-image-variants.mjs.map +1 -0
- package/esm/http/uploads/read-file-head.mjs +1 -1
- package/esm/http/uploads/read-file-head.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 +72 -0
- package/esm/http/uploads/resolve-image-variant.d.mts.map +1 -0
- package/esm/http/uploads/resolve-image-variant.mjs +99 -0
- package/esm/http/uploads/resolve-image-variant.mjs.map +1 -0
- package/esm/http/uploads/resolve-image-variants-config.mjs +6 -4
- package/esm/http/uploads/resolve-image-variants-config.mjs.map +1 -1
- package/esm/http/uploads/resolve-inline-image-content-type.mjs +1 -1
- package/esm/http/uploads/resolve-inline-image-content-type.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/resolve-upload-path.mjs +3 -2
- package/esm/http/uploads/resolve-upload-path.mjs.map +1 -1
- package/esm/http/uploads/resolve-variant-candidate.mjs +1 -1
- package/esm/http/uploads/resolve-variant-candidate.mjs.map +1 -1
- package/esm/http/uploads/single-flight.mjs +1 -1
- package/esm/http/uploads/single-flight.mjs.map +1 -1
- 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 +27 -7
- package/esm/http/uploads/uploaded-file.controller.d.mts.map +1 -1
- package/esm/http/uploads/uploaded-file.controller.mjs +72 -92
- package/esm/http/uploads/uploaded-file.controller.mjs.map +1 -1
- package/esm/http/uploads/variant-cache-key.mjs +31 -6
- package/esm/http/uploads/variant-cache-key.mjs.map +1 -1
- package/esm/http/uploads/variant-generations.mjs +1 -1
- package/esm/http/uploads/variant-generations.mjs.map +1 -1
- package/esm/http/uploads-config.d.mts +1 -1
- package/esm/http/uploads-config.d.mts.map +1 -1
- package/esm/http/uploads-config.mjs +1 -1
- package/esm/http/uploads-config.mjs.map +1 -1
- package/esm/http/uploads-types.d.mts +7 -3
- package/esm/http/uploads-types.d.mts.map +1 -1
- package/esm/http/xmlable.d.mts +1 -1
- package/esm/http/xmlable.d.mts.map +1 -1
- package/esm/image/image.d.mts +1 -1
- package/esm/image/image.d.mts.map +1 -1
- package/esm/image/image.mjs +1 -1
- package/esm/image/image.mjs.map +1 -1
- package/esm/index.d.mts +27 -12
- package/esm/index.mjs +23 -9
- package/esm/loader/app-module-importer.d.mts +1 -1
- package/esm/loader/app-module-importer.d.mts.map +1 -1
- package/esm/loader/app-module-importer.mjs +1 -1
- package/esm/loader/app-module-importer.mjs.map +1 -1
- package/esm/localization/parse-locale-dictionary.d.mts +3 -1
- 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 +1 -1
- package/esm/localization/register-locale-dictionary.d.mts.map +1 -1
- package/esm/localization/register-locale-dictionary.mjs +1 -1
- package/esm/localization/register-locale-dictionary.mjs.map +1 -1
- package/esm/logger/fatal-visibility.d.mts +1 -1
- package/esm/logger/fatal-visibility.d.mts.map +1 -1
- package/esm/logger/fatal-visibility.mjs +1 -1
- package/esm/logger/fatal-visibility.mjs.map +1 -1
- package/esm/logger/logger.d.mts +1 -1
- package/esm/logger/logger.d.mts.map +1 -1
- package/esm/logger/logger.mjs +1 -1
- package/esm/logger/logger.mjs.map +1 -1
- package/esm/logger/types.d.mts +1 -1
- package/esm/logger/types.d.mts.map +1 -1
- package/esm/mail/config.d.mts +13 -2
- package/esm/mail/config.d.mts.map +1 -1
- package/esm/mail/config.mjs +17 -2
- package/esm/mail/config.mjs.map +1 -1
- package/esm/mail/events.d.mts +1 -1
- package/esm/mail/events.d.mts.map +1 -1
- package/esm/mail/events.mjs +1 -1
- package/esm/mail/events.mjs.map +1 -1
- package/esm/mail/index.d.mts +1 -1
- package/esm/mail/index.mjs +1 -1
- package/esm/mail/mail.d.mts +1 -1
- package/esm/mail/mail.d.mts.map +1 -1
- package/esm/mail/mail.mjs +1 -1
- package/esm/mail/mail.mjs.map +1 -1
- package/esm/mail/mailer-pool.d.mts +1 -1
- package/esm/mail/mailer-pool.d.mts.map +1 -1
- package/esm/mail/mailer-pool.mjs +1 -1
- package/esm/mail/mailer-pool.mjs.map +1 -1
- package/esm/mail/react-mail.d.mts +1 -1
- package/esm/mail/react-mail.d.mts.map +1 -1
- package/esm/mail/react-mail.mjs +1 -1
- package/esm/mail/react-mail.mjs.map +1 -1
- package/esm/mail/send-mail.d.mts +1 -1
- package/esm/mail/send-mail.d.mts.map +1 -1
- package/esm/mail/send-mail.mjs +7 -7
- package/esm/mail/send-mail.mjs.map +1 -1
- package/esm/mail/test-mailbox.d.mts +1 -1
- package/esm/mail/test-mailbox.d.mts.map +1 -1
- package/esm/mail/test-mailbox.mjs +1 -1
- package/esm/mail/test-mailbox.mjs.map +1 -1
- package/esm/mail/types.d.mts +1 -1
- package/esm/mail/types.d.mts.map +1 -1
- package/esm/mail/types.mjs +1 -1
- package/esm/mail/types.mjs.map +1 -1
- package/esm/manifest/manifest-manager.mjs +1 -1
- package/esm/manifest/manifest-manager.mjs.map +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 +1 -1
- package/esm/openapi/build-openapi-document.d.mts.map +1 -1
- package/esm/openapi/build-openapi-document.mjs +9 -6
- package/esm/openapi/build-openapi-document.mjs.map +1 -1
- package/esm/openapi/cast-schema.mjs +1 -1
- package/esm/openapi/cast-schema.mjs.map +1 -1
- package/esm/openapi/collect-openapi-document.mjs +1 -1
- package/esm/openapi/collect-openapi-document.mjs.map +1 -1
- package/esm/openapi/development-openapi-provider.d.mts +1 -1
- package/esm/openapi/development-openapi-provider.d.mts.map +1 -1
- package/esm/openapi/development-openapi-provider.mjs +1 -1
- package/esm/openapi/development-openapi-provider.mjs.map +1 -1
- package/esm/openapi/error-responses.mjs +29 -3
- package/esm/openapi/error-responses.mjs.map +1 -1
- package/esm/openapi/openapi-child-output.mjs +1 -1
- package/esm/openapi/openapi-child-output.mjs.map +1 -1
- package/esm/openapi/openapi-protocol.mjs +1 -1
- package/esm/openapi/openapi-protocol.mjs.map +1 -1
- package/esm/openapi/paths.mjs +1 -1
- package/esm/openapi/paths.mjs.map +1 -1
- package/esm/openapi/postman/build-request-body.mjs +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 +1 -1
- package/esm/openapi/postman/build-saved-responses.mjs.map +1 -1
- package/esm/openapi/postman/example-from-schema.d.mts +1 -1
- package/esm/openapi/postman/example-from-schema.d.mts.map +1 -1
- package/esm/openapi/postman/example-from-schema.mjs +1 -1
- package/esm/openapi/postman/example-from-schema.mjs.map +1 -1
- package/esm/openapi/postman/http-status-text.mjs +1 -1
- package/esm/openapi/postman/http-status-text.mjs.map +1 -1
- package/esm/openapi/postman/openapi-to-postman-collection.d.mts +1 -1
- package/esm/openapi/postman/openapi-to-postman-collection.d.mts.map +1 -1
- package/esm/openapi/postman/openapi-to-postman-collection.mjs +1 -1
- package/esm/openapi/postman/openapi-to-postman-collection.mjs.map +1 -1
- package/esm/openapi/postman/postman-types.d.mts +1 -1
- package/esm/openapi/postman/postman-types.d.mts.map +1 -1
- package/esm/openapi/postman/resolve-operation-auth.mjs +1 -1
- package/esm/openapi/postman/resolve-operation-auth.mjs.map +1 -1
- package/esm/openapi/postman/schema-refs.d.mts +1 -1
- package/esm/openapi/postman/schema-refs.d.mts.map +1 -1
- package/esm/openapi/postman/schema-refs.mjs +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 +1 -1
- package/esm/openapi/request-schemas.mjs.map +1 -1
- package/esm/openapi/response-schemas.mjs +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 +1 -1
- 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 +4 -3
- package/esm/openapi/types.d.mts.map +1 -1
- package/esm/production/assert-dist-ready-to-start.mjs +1 -1
- package/esm/production/assert-dist-ready-to-start.mjs.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-app-production.mjs +1 -1
- package/esm/production/build-app-production.mjs.map +1 -1
- package/esm/production/build-contributions.mjs +1 -1
- package/esm/production/build-contributions.mjs.map +1 -1
- package/esm/production/bundle-framework-dependencies.mjs +1 -1
- package/esm/production/bundle-framework-dependencies.mjs.map +1 -1
- package/esm/production/dist-build-manifest.mjs +1 -1
- package/esm/production/dist-build-manifest.mjs.map +1 -1
- package/esm/production/esbuild-plugins.mjs +1 -1
- package/esm/production/esbuild-plugins.mjs.map +1 -1
- package/esm/production/esbuild-preflight.mjs +1 -1
- package/esm/production/esbuild-preflight.mjs.map +1 -1
- package/esm/production/production-builder.mjs +13 -5
- package/esm/production/production-builder.mjs.map +1 -1
- package/esm/production/production-supervisor.mjs +1 -1
- package/esm/production/production-supervisor.mjs.map +1 -1
- package/esm/production/promote-dist.mjs +1 -1
- package/esm/production/promote-dist.mjs.map +1 -1
- package/esm/production/registration-child-runner.mjs +1 -1
- package/esm/production/registration-child-runner.mjs.map +1 -1
- package/esm/production/resolve-build-config.d.mts +1 -1
- 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.mjs +1 -1
- package/esm/production/route-registration-child.mjs.map +1 -1
- package/esm/production/route-registration-snapshot.mjs +1 -1
- package/esm/production/route-registration-snapshot.mjs.map +1 -1
- package/esm/production/tsconfig-path-aliases.mjs +1 -1
- package/esm/production/tsconfig-path-aliases.mjs.map +1 -1
- package/esm/react/index.d.mts +1 -1
- package/esm/react/index.d.mts.map +1 -1
- package/esm/react/index.mjs +1 -1
- package/esm/react/index.mjs.map +1 -1
- package/esm/repositories/adapters/cascade/cascade-adapter.d.mts +1 -1
- package/esm/repositories/adapters/cascade/cascade-adapter.d.mts.map +1 -1
- package/esm/repositories/adapters/cascade/cascade-adapter.mjs +1 -1
- package/esm/repositories/adapters/cascade/cascade-adapter.mjs.map +1 -1
- package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts +1 -1
- package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts.map +1 -1
- package/esm/repositories/adapters/cascade/cascade-query-builder.mjs +1 -1
- package/esm/repositories/adapters/cascade/cascade-query-builder.mjs.map +1 -1
- package/esm/repositories/adapters/cascade/filter-applicator.mjs +1 -1
- package/esm/repositories/adapters/cascade/filter-applicator.mjs.map +1 -1
- package/esm/repositories/contracts/query-builder.contract.d.mts +1 -1
- package/esm/repositories/contracts/query-builder.contract.d.mts.map +1 -1
- package/esm/repositories/contracts/repository-adapter.contract.d.mts +1 -1
- package/esm/repositories/contracts/repository-adapter.contract.d.mts.map +1 -1
- package/esm/repositories/contracts/types.d.mts +1 -1
- package/esm/repositories/contracts/types.d.mts.map +1 -1
- package/esm/repositories/repository.manager.d.mts +1 -1
- package/esm/repositories/repository.manager.d.mts.map +1 -1
- package/esm/repositories/repository.manager.mjs +1 -1
- package/esm/repositories/repository.manager.mjs.map +1 -1
- package/esm/resource/define-resource.d.mts +1 -1
- package/esm/resource/define-resource.d.mts.map +1 -1
- package/esm/resource/define-resource.mjs +1 -1
- package/esm/resource/define-resource.mjs.map +1 -1
- package/esm/resource/nullable-resource.d.mts +1 -1
- package/esm/resource/nullable-resource.d.mts.map +1 -1
- package/esm/resource/nullable-resource.mjs +1 -1
- package/esm/resource/nullable-resource.mjs.map +1 -1
- package/esm/resource/register-resource.d.mts +1 -1
- package/esm/resource/register-resource.d.mts.map +1 -1
- package/esm/resource/register-resource.mjs +1 -1
- package/esm/resource/register-resource.mjs.map +1 -1
- package/esm/resource/resource-field-builder.d.mts +1 -1
- package/esm/resource/resource-field-builder.d.mts.map +1 -1
- package/esm/resource/resource-field-builder.mjs +1 -1
- package/esm/resource/resource-field-builder.mjs.map +1 -1
- package/esm/resource/resource.d.mts +1 -1
- package/esm/resource/resource.d.mts.map +1 -1
- package/esm/resource/resource.mjs +1 -1
- package/esm/resource/resource.mjs.map +1 -1
- package/esm/resource/types.d.mts +1 -1
- package/esm/resource/types.d.mts.map +1 -1
- package/esm/restful/restful.d.mts +6 -6
- package/esm/restful/restful.d.mts.map +1 -1
- package/esm/restful/restful.mjs +1 -1
- package/esm/restful/restful.mjs.map +1 -1
- package/esm/router/build-route-rate-limit.mjs +1 -1
- package/esm/router/build-route-rate-limit.mjs.map +1 -1
- package/esm/router/describe-route-for-log.mjs +1 -1
- package/esm/router/describe-route-for-log.mjs.map +1 -1
- package/esm/router/dev-dispatch.mjs +32 -13
- package/esm/router/dev-dispatch.mjs.map +1 -1
- package/esm/router/index.d.mts +4 -2
- package/esm/router/index.mjs +2 -0
- package/esm/router/log-request-lifecycle.mjs +1 -1
- package/esm/router/log-request-lifecycle.mjs.map +1 -1
- package/esm/router/named-api-routes-with-responses.mjs +1 -1
- package/esm/router/named-api-routes-with-responses.mjs.map +1 -1
- package/esm/router/normalize-request-path.d.mts +1 -1
- package/esm/router/normalize-request-path.d.mts.map +1 -1
- package/esm/router/normalize-request-path.mjs +1 -1
- package/esm/router/normalize-request-path.mjs.map +1 -1
- package/esm/router/normalize-route-path.d.mts +1 -1
- package/esm/router/normalize-route-path.d.mts.map +1 -1
- package/esm/router/normalize-route-path.mjs +1 -1
- package/esm/router/normalize-route-path.mjs.map +1 -1
- package/esm/router/positional-handler-diagnostics.d.mts +1 -1
- package/esm/router/positional-handler-diagnostics.d.mts.map +1 -1
- package/esm/router/positional-handler-diagnostics.mjs +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/response-schema-types.mjs +1 -1
- package/esm/router/response-schema-types.mjs.map +1 -1
- package/esm/router/route-builder.d.mts +1 -1
- package/esm/router/route-builder.d.mts.map +1 -1
- package/esm/router/route-builder.mjs +1 -1
- package/esm/router/route-builder.mjs.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 +1 -1
- package/esm/router/route-name-method-suffix.d.mts.map +1 -1
- package/esm/router/route-name-method-suffix.mjs +1 -1
- package/esm/router/route-name-method-suffix.mjs.map +1 -1
- package/esm/router/route-name-taken-error.d.mts +14 -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 -1
- package/esm/router/route-registry.d.mts.map +1 -1
- package/esm/router/route-registry.mjs +1 -1
- package/esm/router/route-registry.mjs.map +1 -1
- package/esm/router/router.d.mts +35 -9
- package/esm/router/router.d.mts.map +1 -1
- package/esm/router/router.mjs +78 -40
- package/esm/router/router.mjs.map +1 -1
- package/esm/router/types.d.mts +150 -18
- package/esm/router/types.d.mts.map +1 -1
- package/esm/router/unguarded-route-diagnostics.d.mts +40 -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/types.d.mts +1 -1
- package/esm/socket/types.d.mts.map +1 -1
- package/esm/socket/utils.d.mts +1 -1
- package/esm/socket/utils.d.mts.map +1 -1
- package/esm/socket/utils.mjs +1 -1
- package/esm/socket/utils.mjs.map +1 -1
- package/esm/storage/config.d.mts +1 -1
- package/esm/storage/config.d.mts.map +1 -1
- package/esm/storage/config.mjs +1 -1
- package/esm/storage/config.mjs.map +1 -1
- package/esm/storage/context/storage-driver-context.d.mts +1 -1
- package/esm/storage/context/storage-driver-context.d.mts.map +1 -1
- package/esm/storage/context/storage-driver-context.mjs +1 -1
- package/esm/storage/context/storage-driver-context.mjs.map +1 -1
- package/esm/storage/drivers/cloud-driver.d.mts +1 -1
- package/esm/storage/drivers/cloud-driver.d.mts.map +1 -1
- package/esm/storage/drivers/cloud-driver.mjs +1 -1
- package/esm/storage/drivers/cloud-driver.mjs.map +1 -1
- package/esm/storage/drivers/do-spaces-driver.d.mts +1 -1
- package/esm/storage/drivers/do-spaces-driver.d.mts.map +1 -1
- package/esm/storage/drivers/do-spaces-driver.mjs +1 -1
- package/esm/storage/drivers/do-spaces-driver.mjs.map +1 -1
- package/esm/storage/drivers/local-driver.d.mts +12 -1
- package/esm/storage/drivers/local-driver.d.mts.map +1 -1
- package/esm/storage/drivers/local-driver.mjs +33 -1
- package/esm/storage/drivers/local-driver.mjs.map +1 -1
- package/esm/storage/drivers/r2-driver.d.mts +1 -1
- package/esm/storage/drivers/r2-driver.d.mts.map +1 -1
- package/esm/storage/drivers/r2-driver.mjs +1 -1
- package/esm/storage/drivers/r2-driver.mjs.map +1 -1
- package/esm/storage/drivers/s3-driver.d.mts +1 -1
- package/esm/storage/drivers/s3-driver.d.mts.map +1 -1
- package/esm/storage/drivers/s3-driver.mjs +1 -1
- package/esm/storage/drivers/s3-driver.mjs.map +1 -1
- package/esm/storage/index.d.mts +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 +1 -1
- package/esm/storage/scoped-storage.d.mts.map +1 -1
- package/esm/storage/scoped-storage.mjs +1 -1
- package/esm/storage/scoped-storage.mjs.map +1 -1
- package/esm/storage/storage-file.d.mts +1 -1
- package/esm/storage/storage-file.d.mts.map +1 -1
- package/esm/storage/storage-file.mjs +1 -1
- package/esm/storage/storage-file.mjs.map +1 -1
- package/esm/storage/storage.d.mts +17 -3
- package/esm/storage/storage.d.mts.map +1 -1
- package/esm/storage/storage.mjs +23 -1
- package/esm/storage/storage.mjs.map +1 -1
- package/esm/storage/types.d.mts +3 -2
- package/esm/storage/types.d.mts.map +1 -1
- package/esm/storage/utils/classify-ip-address.d.mts +1 -1
- package/esm/storage/utils/classify-ip-address.d.mts.map +1 -1
- package/esm/storage/utils/classify-ip-address.mjs +1 -1
- package/esm/storage/utils/classify-ip-address.mjs.map +1 -1
- package/esm/storage/utils/contain-path.d.mts +1 -1
- package/esm/storage/utils/contain-path.d.mts.map +1 -1
- package/esm/storage/utils/contain-path.mjs +1 -1
- package/esm/storage/utils/contain-path.mjs.map +1 -1
- package/esm/storage/utils/mime.d.mts +1 -1
- package/esm/storage/utils/mime.d.mts.map +1 -1
- package/esm/storage/utils/mime.mjs +1 -1
- package/esm/storage/utils/mime.mjs.map +1 -1
- package/esm/storage/utils/safe-fetch.d.mts +1 -1
- package/esm/storage/utils/safe-fetch.d.mts.map +1 -1
- package/esm/storage/utils/safe-fetch.mjs +1 -1
- package/esm/storage/utils/safe-fetch.mjs.map +1 -1
- package/esm/storage/utils/storage-capability-error.d.mts +1 -1
- package/esm/storage/utils/storage-capability-error.d.mts.map +1 -1
- package/esm/storage/utils/storage-capability-error.mjs +1 -1
- package/esm/storage/utils/storage-capability-error.mjs.map +1 -1
- package/esm/storage/utils/storage-error.d.mts +1 -1
- package/esm/storage/utils/storage-error.d.mts.map +1 -1
- package/esm/storage/utils/storage-error.mjs +1 -1
- package/esm/storage/utils/storage-error.mjs.map +1 -1
- package/esm/storage/utils/storage-not-initialized-error.d.mts +3 -1
- package/esm/storage/utils/storage-not-initialized-error.d.mts.map +1 -1
- package/esm/storage/utils/storage-not-initialized-error.mjs +2 -1
- package/esm/storage/utils/storage-not-initialized-error.mjs.map +1 -1
- package/esm/tests/authenticated-test-client.d.mts +32 -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 +59 -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 +29 -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 +32 -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 +13 -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 +22 -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 +8 -0
- package/esm/tests/fakes/index.mjs +10 -0
- package/esm/tests/fakes/mail-fake.d.mts +41 -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 +48 -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 +31 -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 +39 -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 +14 -2
- package/esm/tests/index.mjs +15 -2
- package/esm/tests/snapshot-response.d.mts +34 -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 +23 -1
- package/esm/tests/start-http-development-server.d.mts.map +1 -1
- package/esm/tests/start-http-development-server.mjs +37 -4
- package/esm/tests/start-http-development-server.mjs.map +1 -1
- package/esm/tests/test-connectors-selection.d.mts +1 -1
- package/esm/tests/test-connectors-selection.d.mts.map +1 -1
- package/esm/tests/test-connectors-selection.mjs +1 -1
- package/esm/tests/test-connectors-selection.mjs.map +1 -1
- package/esm/tests/test-helpers.d.mts +21 -2
- package/esm/tests/test-helpers.d.mts.map +1 -1
- package/esm/tests/test-helpers.mjs +41 -28
- package/esm/tests/test-helpers.mjs.map +1 -1
- package/esm/tests/test-http-server.d.mts +62 -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/test-lifecycle-state.mjs.map +1 -1
- package/esm/tests/test-server-port-channel.mjs +1 -1
- package/esm/tests/test-server-port-channel.mjs.map +1 -1
- package/esm/tests/test-setup-timeout.mjs +1 -1
- package/esm/tests/test-setup-timeout.mjs.map +1 -1
- package/esm/tests/vitest-setup.d.mts +12 -1
- package/esm/tests/vitest-setup.d.mts.map +1 -1
- package/esm/tests/vitest-setup.mjs +13 -5
- package/esm/tests/vitest-setup.mjs.map +1 -1
- package/esm/tooling/agents-md/agents-md-markers.d.mts +27 -0
- package/esm/tooling/agents-md/agents-md-markers.d.mts.map +1 -0
- package/esm/tooling/agents-md/agents-md-markers.mjs +59 -0
- package/esm/tooling/agents-md/agents-md-markers.mjs.map +1 -0
- package/esm/tooling/agents-md/agents-md-refresher.d.mts +36 -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 +30 -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 +33 -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 +33 -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 +31 -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 +109 -0
- package/esm/tooling/board/board.d.mts.map +1 -0
- package/esm/tooling/board/board.mjs +406 -0
- package/esm/tooling/board/board.mjs.map +1 -0
- package/esm/tooling/board/board.types.d.mts +72 -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 +33 -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 +62 -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 +34 -0
- package/esm/tooling/check/conventions-step.d.mts.map +1 -0
- package/esm/tooling/check/conventions-step.mjs +184 -0
- package/esm/tooling/check/conventions-step.mjs.map +1 -0
- package/esm/tooling/check/environment-step.d.mts +18 -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.d.mts +8 -0
- package/esm/tooling/check/index.mjs +10 -0
- package/esm/tooling/check/lint-step.d.mts +19 -0
- package/esm/tooling/check/lint-step.d.mts.map +1 -0
- package/esm/tooling/check/lint-step.mjs +111 -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 +35 -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 +48 -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 +648 -0
- package/esm/tooling/check/security-conventions.mjs.map +1 -0
- package/esm/tooling/check/source-ast.mjs +195 -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 +34 -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 +39 -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 +91 -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 +78 -0
- package/esm/tooling/generate/generation.d.mts.map +1 -0
- package/esm/tooling/generate/generation.mjs +123 -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 +40 -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 +37 -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 +41 -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 +9 -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 +10 -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 +7 -0
- package/esm/tooling/inspect/index.mjs +7 -0
- package/esm/tooling/inspect/inspect-app.d.mts +53 -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 +15 -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 +196 -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 +26 -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 +49 -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 +72 -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 +62 -0
- package/esm/tooling/mcp/load-ai-tools.d.mts.map +1 -0
- package/esm/tooling/mcp/load-ai-tools.mjs +44 -0
- package/esm/tooling/mcp/load-ai-tools.mjs.map +1 -0
- package/esm/tooling/mcp/mcp-tools.d.mts +60 -0
- package/esm/tooling/mcp/mcp-tools.d.mts.map +1 -0
- package/esm/tooling/mcp/mcp-tools.mjs +513 -0
- package/esm/tooling/mcp/mcp-tools.mjs.map +1 -0
- package/esm/tooling/mcp/start-mcp-server.d.mts +56 -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 +45 -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/trace/trace-report.types.d.mts +71 -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 +83 -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.d.mts +1 -0
- package/esm/tooling/typecheck/index.mjs +3 -0
- package/esm/tooling/typecheck/run-typecheck.d.mts +59 -0
- package/esm/tooling/typecheck/run-typecheck.d.mts.map +1 -0
- package/esm/tooling/typecheck/run-typecheck.mjs +153 -0
- package/esm/tooling/typecheck/run-typecheck.mjs.map +1 -0
- package/esm/updater/package-manager.mjs +1 -1
- package/esm/updater/package-manager.mjs.map +1 -1
- package/esm/updater/update-warlock-packages.mjs +1 -1
- 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 +48 -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/types.d.mts +1 -1
- package/esm/use-cases/types.d.mts.map +1 -1
- package/esm/use-cases/use-case-broadcast.d.mts +1 -1
- package/esm/use-cases/use-case-broadcast.d.mts.map +1 -1
- package/esm/use-cases/use-case-broadcast.mjs +1 -1
- package/esm/use-cases/use-case-broadcast.mjs.map +1 -1
- package/esm/use-cases/use-case-events.d.mts +1 -1
- package/esm/use-cases/use-case-events.d.mts.map +1 -1
- package/esm/use-cases/use-case-events.mjs +1 -1
- package/esm/use-cases/use-case-events.mjs.map +1 -1
- package/esm/use-cases/use-case-pipeline.d.mts +1 -1
- package/esm/use-cases/use-case-pipeline.d.mts.map +1 -1
- package/esm/use-cases/use-case-pipeline.mjs +1 -1
- package/esm/use-cases/use-case-pipeline.mjs.map +1 -1
- package/esm/use-cases/use-case.d.mts +1 -1
- package/esm/use-cases/use-case.d.mts.map +1 -1
- package/esm/use-cases/use-case.errors.d.mts +1 -1
- package/esm/use-cases/use-case.errors.d.mts.map +1 -1
- package/esm/use-cases/use-case.errors.mjs +1 -1
- package/esm/use-cases/use-case.errors.mjs.map +1 -1
- package/esm/use-cases/use-case.mjs +1 -1
- package/esm/use-cases/use-case.mjs.map +1 -1
- package/esm/use-cases/use-cases-registry.d.mts +1 -1
- package/esm/use-cases/use-cases-registry.d.mts.map +1 -1
- package/esm/use-cases/use-cases-registry.mjs +1 -1
- package/esm/use-cases/use-cases-registry.mjs.map +1 -1
- package/esm/utils/app-log.d.mts +6 -6
- package/esm/utils/app-log.d.mts.map +1 -1
- package/esm/utils/app-log.mjs +1 -1
- package/esm/utils/app-log.mjs.map +1 -1
- package/esm/utils/clock.d.mts +33 -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 +1 -1
- package/esm/utils/database-log.d.mts.map +1 -1
- package/esm/utils/database-log.mjs +1 -1
- package/esm/utils/database-log.mjs.map +1 -1
- package/esm/utils/detect-environment-overrides.mjs +1 -1
- package/esm/utils/detect-environment-overrides.mjs.map +1 -1
- package/esm/utils/environment.d.mts +1 -1
- package/esm/utils/environment.d.mts.map +1 -1
- package/esm/utils/environment.mjs +1 -1
- package/esm/utils/environment.mjs.map +1 -1
- package/esm/utils/framework-vesion.mjs +2 -2
- package/esm/utils/framework-vesion.mjs.map +1 -1
- package/esm/utils/get-localized.d.mts +1 -1
- package/esm/utils/get-localized.d.mts.map +1 -1
- package/esm/utils/get-localized.mjs +1 -1
- package/esm/utils/get-localized.mjs.map +1 -1
- package/esm/utils/ids.d.mts +32 -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 +3 -0
- package/esm/utils/index.mjs +3 -0
- package/esm/utils/is-test-file.mjs +1 -1
- package/esm/utils/is-test-file.mjs.map +1 -1
- package/esm/utils/load-environment.mjs +1 -1
- package/esm/utils/load-environment.mjs.map +1 -1
- package/esm/utils/normalized-path.d.mts +1 -1
- package/esm/utils/normalized-path.d.mts.map +1 -1
- package/esm/utils/normalized-path.mjs +1 -1
- package/esm/utils/normalized-path.mjs.map +1 -1
- package/esm/utils/npm-registry.d.mts +1 -1
- package/esm/utils/npm-registry.d.mts.map +1 -1
- package/esm/utils/npm-registry.mjs +1 -1
- package/esm/utils/npm-registry.mjs.map +1 -1
- package/esm/utils/paths.d.mts +1 -1
- package/esm/utils/paths.d.mts.map +1 -1
- package/esm/utils/paths.mjs +1 -1
- package/esm/utils/paths.mjs.map +1 -1
- package/esm/utils/promise-all-object.d.mts +1 -1
- package/esm/utils/promise-all-object.d.mts.map +1 -1
- package/esm/utils/promise-all-object.mjs +1 -1
- package/esm/utils/promise-all-object.mjs.map +1 -1
- package/esm/utils/queue.d.mts +1 -1
- package/esm/utils/queue.d.mts.map +1 -1
- package/esm/utils/queue.mjs +1 -1
- package/esm/utils/queue.mjs.map +1 -1
- package/esm/utils/recorded-environment-overrides.mjs +1 -1
- package/esm/utils/recorded-environment-overrides.mjs.map +1 -1
- package/esm/utils/report-environment-overrides.mjs +1 -1
- package/esm/utils/report-environment-overrides.mjs.map +1 -1
- package/esm/utils/runtime.d.mts +59 -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 -1
- package/esm/utils/sleep.d.mts.map +1 -1
- package/esm/utils/sleep.mjs +1 -1
- package/esm/utils/sleep.mjs.map +1 -1
- package/esm/utils/sluggable.d.mts +1 -1
- package/esm/utils/sluggable.d.mts.map +1 -1
- package/esm/utils/sluggable.mjs +1 -1
- package/esm/utils/sluggable.mjs.map +1 -1
- package/esm/utils/to-json.d.mts +1 -1
- package/esm/utils/to-json.d.mts.map +1 -1
- package/esm/utils/to-json.mjs +1 -1
- package/esm/utils/to-json.mjs.map +1 -1
- package/esm/utils/types.d.mts +1 -1
- package/esm/utils/types.d.mts.map +1 -1
- package/esm/utils/urls.d.mts +1 -1
- package/esm/utils/urls.d.mts.map +1 -1
- package/esm/utils/urls.mjs +1 -1
- package/esm/utils/urls.mjs.map +1 -1
- package/esm/utils/version-compare.d.mts +1 -1
- package/esm/utils/version-compare.d.mts.map +1 -1
- package/esm/utils/version-compare.mjs +1 -1
- package/esm/utils/version-compare.mjs.map +1 -1
- package/esm/validation/database/exists-except-current-id.d.mts +1 -1
- package/esm/validation/database/exists-except-current-id.d.mts.map +1 -1
- package/esm/validation/database/exists-except-current-id.mjs +1 -1
- package/esm/validation/database/exists-except-current-id.mjs.map +1 -1
- package/esm/validation/database/exists-except-current-user.d.mts +1 -1
- package/esm/validation/database/exists-except-current-user.d.mts.map +1 -1
- package/esm/validation/database/exists-except-current-user.mjs +1 -1
- package/esm/validation/database/exists-except-current-user.mjs.map +1 -1
- package/esm/validation/database/types.d.mts +1 -1
- package/esm/validation/database/types.d.mts.map +1 -1
- package/esm/validation/database/unique-except-current-id.d.mts +1 -1
- package/esm/validation/database/unique-except-current-id.d.mts.map +1 -1
- package/esm/validation/database/unique-except-current-id.mjs +1 -1
- package/esm/validation/database/unique-except-current-id.mjs.map +1 -1
- package/esm/validation/database/unique-except-current-user.d.mts +1 -1
- package/esm/validation/database/unique-except-current-user.d.mts.map +1 -1
- package/esm/validation/database/unique-except-current-user.mjs +1 -1
- package/esm/validation/database/unique-except-current-user.mjs.map +1 -1
- package/esm/validation/file/file.d.mts +1 -1
- package/esm/validation/file/file.d.mts.map +1 -1
- package/esm/validation/file/file.mjs +1 -1
- package/esm/validation/file/file.mjs.map +1 -1
- package/esm/validation/index.d.mts +1 -1
- package/esm/validation/init.mjs +1 -1
- package/esm/validation/init.mjs.map +1 -1
- package/esm/validation/plugins/database-plugin.mjs +1 -1
- package/esm/validation/plugins/database-plugin.mjs.map +1 -1
- package/esm/validation/plugins/file-plugin.mjs +1 -1
- package/esm/validation/plugins/file-plugin.mjs.map +1 -1
- package/esm/validation/plugins/localized-plugin.mjs +1 -1
- package/esm/validation/plugins/localized-plugin.mjs.map +1 -1
- package/esm/validation/types.d.mts +58 -3
- package/esm/validation/types.d.mts.map +1 -1
- package/esm/validation/validateAll.mjs +20 -3
- 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 +28 -41
- package/esm/validation/validators/file-validator.d.mts.map +1 -1
- package/esm/validation/validators/file-validator.mjs +4 -1
- package/esm/validation/validators/file-validator.mjs.map +1 -1
- package/esm/vite/lower-stage3-decorators.d.mts +1 -1
- package/esm/vite/lower-stage3-decorators.d.mts.map +1 -1
- package/esm/vite/lower-stage3-decorators.mjs +1 -1
- package/esm/vite/lower-stage3-decorators.mjs.map +1 -1
- package/esm/warlock-config/bundle-config.mjs +148 -0
- package/esm/warlock-config/bundle-config.mjs.map +1 -0
- package/esm/warlock-config/default-configurations.mjs +1 -1
- package/esm/warlock-config/default-configurations.mjs.map +1 -1
- package/esm/warlock-config/define-config.d.mts +1 -1
- package/esm/warlock-config/define-config.d.mts.map +1 -1
- package/esm/warlock-config/define-config.mjs +1 -1
- package/esm/warlock-config/define-config.mjs.map +1 -1
- package/esm/warlock-config/index.d.mts +1 -1
- package/esm/warlock-config/index.mjs +1 -1
- package/esm/warlock-config/normalize-build-config.mjs +1 -1
- package/esm/warlock-config/normalize-build-config.mjs.map +1 -1
- package/esm/warlock-config/types.d.mts +28 -4
- package/esm/warlock-config/types.d.mts.map +1 -1
- package/esm/warlock-config/warlock-config.manager.d.mts +32 -7
- package/esm/warlock-config/warlock-config.manager.d.mts.map +1 -1
- package/esm/warlock-config/warlock-config.manager.mjs +94 -18
- package/esm/warlock-config/warlock-config.manager.mjs.map +1 -1
- package/esm/warlock-config/warn-deprecated-config.mjs +1 -1
- package/esm/warlock-config/warn-deprecated-config.mjs.map +1 -1
- package/llms-full.txt +3271 -784
- package/llms.txt +16 -6
- package/package.json +51 -14
- 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 +129 -14
- package/skills/create-controller/SKILL.md +29 -12
- package/skills/create-module/SKILL.md +3 -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 +26 -7
- package/skills/index.md +9 -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 +119 -10
- 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 +111 -20
- package/skills/send-response/SKILL.md +189 -16
- package/skills/store-file/SKILL.md +97 -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 +413 -0
- package/skills/upload-file/SKILL.md +31 -33
- package/skills/use-app-context/SKILL.md +38 -31
- package/skills/use-middleware/SKILL.md +46 -26
- package/skills/use-model-transformers/SKILL.md +37 -28
- package/skills/use-repository/SKILL.md +2 -2
- package/skills/validate-input/SKILL.md +73 -29
- package/skills/warlock-agents-md/SKILL.md +96 -0
- package/skills/warlock-board/SKILL.md +123 -0
- package/skills/warlock-check/SKILL.md +132 -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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-case.mjs","names":["runWithRetry"],"sources":["../../../../../../../core/src/use-cases/use-case.ts"],"sourcesContent":["import { except, Random, retry as runWithRetry } from \"@mongez/reinforcements\";\nimport { log } from \"@warlock.js/logger\";\nimport type { Infer, ObjectValidator } from \"@warlock.js/seal\";\nimport { measure } from \"../benchmark\";\nimport { config } from \"../config\";\nimport type {\n UseCase,\n UseCaseConfigurations,\n UseCaseContext,\n UseCaseErrorResult,\n UseCaseHandler,\n UseCaseResult,\n UseCaseRuntimeOptions,\n UseCaseWithSchema,\n} from \"./types\";\nimport { broadcastUseCaseResult } from \"./use-case-broadcast\";\nimport { fireLifecycleEvent, globalEventsCallbacksMap } from \"./use-case-events\";\nimport { runPipeline } from \"./use-case-pipeline\";\nimport {\n $registerUseCase,\n $unregisterUseCase,\n addUseCaseHistory,\n increaseUseCaseFailedCalls,\n increaseUseCaseSuccessCalls,\n} from \"./use-cases-registry\";\n\nconst defaultUseCaseOptions: UseCaseConfigurations = {\n benchmark: true,\n};\n\n/**\n * Defines and registers a use case.\n *\n * A use case is a named, observable, optionally benchmarked unit of business logic.\n * The returned handler is a typed async function you call with the input data.\n *\n * Execution order: onExecuting → guards → validation → before → handler → after →\n * onCompleted → broadcast. Retry and benchmark wrap the **handler** only.\n *\n * When a `schema` is provided, the handler's input is inferred from it — no manual\n * `Input` generic needed.\n *\n * @example\n * export const createOrderUseCase = useCase({\n * name: \"create_order\",\n * schema: createOrderSchema, // handler `data` is inferred from this\n * guards: [authGuard],\n * handler: async (data, ctx) => orderService.create(data),\n * after: [sendConfirmationEmail],\n * retry: { attempts: 3, delay: 500, backoff: \"exponential\" },\n * broadcast: true,\n * });\n *\n * // In a controller:\n * const output = await createOrderUseCase({ ...validated, user_id: req.user.id });\n */\nexport function useCase<\n Output,\n Schema extends ObjectValidator,\n Ctx extends UseCaseContext = UseCaseContext,\n>(options: UseCaseWithSchema<Output, Schema, Ctx>): UseCaseHandler<Output, Infer<Schema>>;\nexport function useCase<Output = any, Input = any, Ctx extends UseCaseContext = UseCaseContext>(\n options: UseCase<Output, Input, Ctx>,\n): UseCaseHandler<Output, Input>;\nexport function useCase<Output = any, Input = any>(\n options: UseCase<Output, Input>,\n): UseCaseHandler<Output, Input> {\n const { name, handler, schema, guards, before, after, onExecuting, onCompleted, onError } =\n options;\n\n // Merge per-use-case options with global config defaults\n const useCaseConfig = config.get<UseCaseConfigurations>(\"use-cases\", defaultUseCaseOptions);\n const benchmark = options.benchmark ?? useCaseConfig?.benchmark ?? true;\n const retryConfig = options.retry ?? useCaseConfig?.retry;\n const broadcast = options.broadcast;\n const broadcastConfig = useCaseConfig?.broadcast;\n const logEnabled = useCaseConfig?.log === true;\n\n $registerUseCase(name, {\n ...options,\n calls: { success: 0, failed: 0, total: 0 },\n });\n\n const useCaseHandler = async (\n data: Input,\n {\n ctx = {},\n id = `uc-${name}-` + Random.string(),\n onExecuting: invocationOnExecuting,\n onCompleted: invocationOnCompleted,\n onError: invocationOnError,\n }: UseCaseRuntimeOptions = {},\n ): Promise<Output> => {\n ctx.schema = schema;\n ctx.id = id;\n\n const startedAt = new Date();\n let output: Output | undefined;\n let error: Error | undefined;\n let benchmarkResult: { latency: number; state: \"excellent\" | \"good\" | \"poor\" } | undefined;\n // 1-based count of failed attempts (reinforcements' `attempt` arg). Translated\n // into \"retries performed\" at snapshot time — see the `currentRetry` derivation.\n let failedAttempts = 0;\n\n if (logEnabled) {\n log.debug(\"use-cases\", name, \"executing\", { id });\n }\n\n try {\n const transformed = await runPipeline<Input>({\n name,\n id,\n data,\n ctx,\n startedAt,\n schema,\n guards,\n before,\n onExecuting: invocationOnExecuting,\n ucOnExecuting: onExecuting,\n });\n\n // Benchmark wraps ONLY the handler (per attempt) so latency reflects business\n // logic — not the guard/validation prelude, and not the retry backoff delays.\n const runHandler = async (): Promise<Output> => {\n if (!benchmark) {\n return handler(transformed, ctx);\n }\n\n const measured = await measure(\n name,\n () => handler(transformed, ctx),\n benchmark === true ? undefined : benchmark,\n );\n\n benchmarkResult = { latency: measured.latency, state: measured.state };\n\n // measure() never throws — it returns an error result. Re-throw so retry\n // and the outer catch handle failures uniformly.\n if (!measured.success) {\n throw measured.error;\n }\n\n return measured.value;\n };\n\n output = retryConfig\n ? await runWithRetry(runHandler, {\n ...retryConfig,\n onError: (retryError, attempt) => {\n failedAttempts = attempt;\n retryConfig.onError?.(retryError, attempt);\n },\n })\n : await runHandler();\n } catch (err) {\n error = err as Error;\n }\n\n const endedAt = new Date();\n\n // After middleware — fire-and-forget side effects, only on success.\n // Keyed off the error flag alone so void handlers (which return undefined)\n // still run their after middleware.\n if (!error && after) {\n for (const middleware of after) {\n try {\n // On the success path `output` holds the handler's return value; for a\n // void handler that's undefined, which the middleware receives as-is.\n await middleware(output as Output, ctx);\n } catch (afterError) {\n log.error(\"use-cases\", name, \"after middleware failed\", { error: afterError });\n }\n }\n }\n\n // Retries actually performed (0 = succeeded on the first try). On success every\n // failed attempt was followed by a retry; on failure the final failed attempt\n // was NOT retried, so it doesn't count as a retry performed.\n const currentRetry = error ? Math.max(failedAttempts - 1, 0) : failedAttempts;\n\n const snapshot: UseCaseResult<Output> = {\n output,\n ctx,\n startedAt,\n endedAt,\n id,\n name,\n retries: retryConfig\n ? { attempts: retryConfig.attempts ?? 3, delay: retryConfig.delay, currentRetry }\n : undefined,\n benchmarkResult,\n // Set per-branch below so the counter reflects the actual outcome —\n // a failure must never increment the success tally.\n calls: 0,\n };\n\n if (error) {\n snapshot.calls = increaseUseCaseFailedCalls(name);\n\n if (logEnabled) {\n log.error(\"use-cases\", name, \"failed\", { id, error });\n }\n\n await fireLifecycleEvent<UseCaseErrorResult>(\n { ...except(snapshot, [\"output\"]), error },\n {\n invocation: invocationOnError ? [invocationOnError] : undefined,\n useCase: onError ? [onError] : undefined,\n global: globalEventsCallbacksMap.onError.length\n ? globalEventsCallbacksMap.onError\n : undefined,\n },\n );\n\n throw error;\n }\n\n snapshot.calls = increaseUseCaseSuccessCalls(name);\n\n if (logEnabled) {\n log.debug(\"use-cases\", name, \"completed\", { id, latency: benchmarkResult?.latency });\n }\n\n // History is best-effort — a cache rejection must not turn a successful run\n // into a thrown error or skip onCompleted/broadcast.\n try {\n await addUseCaseHistory(name, snapshot);\n } catch (historyError) {\n log.error(\"use-cases\", name, \"history persistence failed\", { id, error: historyError });\n }\n\n await fireLifecycleEvent<UseCaseResult<Output>>(snapshot, {\n invocation: invocationOnCompleted ? [invocationOnCompleted] : undefined,\n useCase: onCompleted ? [onCompleted] : undefined,\n global: globalEventsCallbacksMap.onCompleted.length\n ? globalEventsCallbacksMap.onCompleted\n : undefined,\n });\n\n await broadcastUseCaseResult({\n name,\n id,\n // A void handler resolves to undefined — broadcast it as-is rather than\n // asserting a non-null value that would fabricate a bogus payload.\n output: output as Output,\n result: snapshot,\n broadcast,\n config: broadcastConfig,\n });\n\n return output as Output;\n };\n\n useCaseHandler.$cleanup = () => {\n $unregisterUseCase(name);\n };\n\n return useCaseHandler;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-case.mjs","names":["runWithRetry"],"sources":["../../../../../../../../packages/core/src/use-cases/use-case.ts"],"sourcesContent":["import { except, Random, retry as runWithRetry } from \"@mongez/reinforcements\";\nimport { log } from \"@warlock.js/logger\";\nimport type { Infer, ObjectValidator } from \"@warlock.js/seal\";\nimport { measure } from \"../benchmark\";\nimport { config } from \"../config\";\nimport type {\n UseCase,\n UseCaseConfigurations,\n UseCaseContext,\n UseCaseErrorResult,\n UseCaseHandler,\n UseCaseResult,\n UseCaseRuntimeOptions,\n UseCaseWithSchema,\n} from \"./types\";\nimport { broadcastUseCaseResult } from \"./use-case-broadcast\";\nimport { fireLifecycleEvent, globalEventsCallbacksMap } from \"./use-case-events\";\nimport { runPipeline } from \"./use-case-pipeline\";\nimport {\n $registerUseCase,\n $unregisterUseCase,\n addUseCaseHistory,\n increaseUseCaseFailedCalls,\n increaseUseCaseSuccessCalls,\n} from \"./use-cases-registry\";\n\nconst defaultUseCaseOptions: UseCaseConfigurations = {\n benchmark: true,\n};\n\n/**\n * Defines and registers a use case.\n *\n * A use case is a named, observable, optionally benchmarked unit of business logic.\n * The returned handler is a typed async function you call with the input data.\n *\n * Execution order: onExecuting → guards → validation → before → handler → after →\n * onCompleted → broadcast. Retry and benchmark wrap the **handler** only.\n *\n * When a `schema` is provided, the handler's input is inferred from it — no manual\n * `Input` generic needed.\n *\n * @example\n * export const createOrderUseCase = useCase({\n * name: \"create_order\",\n * schema: createOrderSchema, // handler `data` is inferred from this\n * guards: [authGuard],\n * handler: async (data, ctx) => orderService.create(data),\n * after: [sendConfirmationEmail],\n * retry: { attempts: 3, delay: 500, backoff: \"exponential\" },\n * broadcast: true,\n * });\n *\n * // In a controller:\n * const output = await createOrderUseCase({ ...validated, user_id: req.user.id });\n */\nexport function useCase<\n Output,\n Schema extends ObjectValidator,\n Ctx extends UseCaseContext = UseCaseContext,\n>(options: UseCaseWithSchema<Output, Schema, Ctx>): UseCaseHandler<Output, Infer<Schema>>;\nexport function useCase<Output = any, Input = any, Ctx extends UseCaseContext = UseCaseContext>(\n options: UseCase<Output, Input, Ctx>,\n): UseCaseHandler<Output, Input>;\nexport function useCase<Output = any, Input = any>(\n options: UseCase<Output, Input>,\n): UseCaseHandler<Output, Input> {\n const { name, handler, schema, guards, before, after, onExecuting, onCompleted, onError } =\n options;\n\n // Merge per-use-case options with global config defaults\n const useCaseConfig = config.get<UseCaseConfigurations>(\"use-cases\", defaultUseCaseOptions);\n const benchmark = options.benchmark ?? useCaseConfig?.benchmark ?? true;\n const retryConfig = options.retry ?? useCaseConfig?.retry;\n const broadcast = options.broadcast;\n const broadcastConfig = useCaseConfig?.broadcast;\n const logEnabled = useCaseConfig?.log === true;\n\n $registerUseCase(name, {\n ...options,\n calls: { success: 0, failed: 0, total: 0 },\n });\n\n const useCaseHandler = async (\n data: Input,\n {\n ctx = {},\n id = `uc-${name}-` + Random.string(),\n onExecuting: invocationOnExecuting,\n onCompleted: invocationOnCompleted,\n onError: invocationOnError,\n }: UseCaseRuntimeOptions = {},\n ): Promise<Output> => {\n ctx.schema = schema;\n ctx.id = id;\n\n const startedAt = new Date();\n let output: Output | undefined;\n let error: Error | undefined;\n let benchmarkResult: { latency: number; state: \"excellent\" | \"good\" | \"poor\" } | undefined;\n // 1-based count of failed attempts (reinforcements' `attempt` arg). Translated\n // into \"retries performed\" at snapshot time — see the `currentRetry` derivation.\n let failedAttempts = 0;\n\n if (logEnabled) {\n log.debug(\"use-cases\", name, \"executing\", { id });\n }\n\n try {\n const transformed = await runPipeline<Input>({\n name,\n id,\n data,\n ctx,\n startedAt,\n schema,\n guards,\n before,\n onExecuting: invocationOnExecuting,\n ucOnExecuting: onExecuting,\n });\n\n // Benchmark wraps ONLY the handler (per attempt) so latency reflects business\n // logic — not the guard/validation prelude, and not the retry backoff delays.\n const runHandler = async (): Promise<Output> => {\n if (!benchmark) {\n return handler(transformed, ctx);\n }\n\n const measured = await measure(\n name,\n () => handler(transformed, ctx),\n benchmark === true ? undefined : benchmark,\n );\n\n benchmarkResult = { latency: measured.latency, state: measured.state };\n\n // measure() never throws — it returns an error result. Re-throw so retry\n // and the outer catch handle failures uniformly.\n if (!measured.success) {\n throw measured.error;\n }\n\n return measured.value;\n };\n\n output = retryConfig\n ? await runWithRetry(runHandler, {\n ...retryConfig,\n onError: (retryError, attempt) => {\n failedAttempts = attempt;\n retryConfig.onError?.(retryError, attempt);\n },\n })\n : await runHandler();\n } catch (err) {\n error = err as Error;\n }\n\n const endedAt = new Date();\n\n // After middleware — fire-and-forget side effects, only on success.\n // Keyed off the error flag alone so void handlers (which return undefined)\n // still run their after middleware.\n if (!error && after) {\n for (const middleware of after) {\n try {\n // On the success path `output` holds the handler's return value; for a\n // void handler that's undefined, which the middleware receives as-is.\n await middleware(output as Output, ctx);\n } catch (afterError) {\n log.error(\"use-cases\", name, \"after middleware failed\", { error: afterError });\n }\n }\n }\n\n // Retries actually performed (0 = succeeded on the first try). On success every\n // failed attempt was followed by a retry; on failure the final failed attempt\n // was NOT retried, so it doesn't count as a retry performed.\n const currentRetry = error ? Math.max(failedAttempts - 1, 0) : failedAttempts;\n\n const snapshot: UseCaseResult<Output> = {\n output,\n ctx,\n startedAt,\n endedAt,\n id,\n name,\n retries: retryConfig\n ? { attempts: retryConfig.attempts ?? 3, delay: retryConfig.delay, currentRetry }\n : undefined,\n benchmarkResult,\n // Set per-branch below so the counter reflects the actual outcome —\n // a failure must never increment the success tally.\n calls: 0,\n };\n\n if (error) {\n snapshot.calls = increaseUseCaseFailedCalls(name);\n\n if (logEnabled) {\n log.error(\"use-cases\", name, \"failed\", { id, error });\n }\n\n await fireLifecycleEvent<UseCaseErrorResult>(\n { ...except(snapshot, [\"output\"]), error },\n {\n invocation: invocationOnError ? [invocationOnError] : undefined,\n useCase: onError ? [onError] : undefined,\n global: globalEventsCallbacksMap.onError.length\n ? globalEventsCallbacksMap.onError\n : undefined,\n },\n );\n\n throw error;\n }\n\n snapshot.calls = increaseUseCaseSuccessCalls(name);\n\n if (logEnabled) {\n log.debug(\"use-cases\", name, \"completed\", { id, latency: benchmarkResult?.latency });\n }\n\n // History is best-effort — a cache rejection must not turn a successful run\n // into a thrown error or skip onCompleted/broadcast.\n try {\n await addUseCaseHistory(name, snapshot);\n } catch (historyError) {\n log.error(\"use-cases\", name, \"history persistence failed\", { id, error: historyError });\n }\n\n await fireLifecycleEvent<UseCaseResult<Output>>(snapshot, {\n invocation: invocationOnCompleted ? [invocationOnCompleted] : undefined,\n useCase: onCompleted ? [onCompleted] : undefined,\n global: globalEventsCallbacksMap.onCompleted.length\n ? globalEventsCallbacksMap.onCompleted\n : undefined,\n });\n\n await broadcastUseCaseResult({\n name,\n id,\n // A void handler resolves to undefined — broadcast it as-is rather than\n // asserting a non-null value that would fabricate a bogus payload.\n output: output as Output,\n result: snapshot,\n broadcast,\n config: broadcastConfig,\n });\n\n return output as Output;\n };\n\n useCaseHandler.$cleanup = () => {\n $unregisterUseCase(name);\n };\n\n return useCaseHandler;\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-cases-registry.d.mts","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"use-cases-registry.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/use-cases/use-cases-registry.ts"],"mappings":";;;;;AAaA;iBAAgB,gBAAA,gBACd,IAAA,UACA,OAAA,EAAS,iBAAA,CAAkB,MAAA,EAAQ,KAAA;;;;;;;;iBAgBrB,kBAAA,CAAmB,IAAY;;;;;;;AAhBJ;iBA+B3B,UAAA,gBAA0B,IAAA,WACJ,iBAAA,CAAkB,MAAA,EAAQ,KAAA;;;;iBAMhD,WAAA,IAAW,GAAA,SAAA,iBAAA;AAP3B;;;AAAA,iBAcgB,2BAAA,CAA4B,IAAY;;;;iBAexC,0BAAA,CAA2B,IAAY;;;;;;iBA2BjC,iBAAA,CAAkB,IAAA,WAAe,OAAO,CAAC,aAAA;;AAvDM;AAMrE;;iBA+EsB,iBAAA,CAAkB,IAAA,UAAc,MAAA,EAAQ,aAAA,QAAkB,OAAA"}
|
|
@@ -3,7 +3,7 @@ import "../config/index.mjs";
|
|
|
3
3
|
import { log } from "@warlock.js/logger";
|
|
4
4
|
import { cache } from "@warlock.js/cache";
|
|
5
5
|
|
|
6
|
-
//#region
|
|
6
|
+
//#region ../../packages/core/src/use-cases/use-cases-registry.ts
|
|
7
7
|
/**
|
|
8
8
|
* Store registered use cases
|
|
9
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-cases-registry.mjs","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"use-cases-registry.mjs","names":[],"sources":["../../../../../../../../packages/core/src/use-cases/use-cases-registry.ts"],"sourcesContent":["import { cache } from \"@warlock.js/cache\";\nimport { log } from \"@warlock.js/logger\";\nimport { config } from \"../config\";\nimport { type RegisteredUseCase, type UseCaseConfigurations, type UseCaseResult } from \"./types\";\n\n/**\n * Store registered use cases\n */\nconst useCaseRegister = new Map<string, RegisteredUseCase>();\n\n/**\n * Register a use case\n */\nexport function $registerUseCase<Output, Input>(\n name: string,\n useCase: RegisteredUseCase<Output, Input>,\n) {\n if (useCaseRegister.has(name) && process.env.NODE_ENV !== \"production\") {\n log.warn(\"use-cases\", \"registering\", `Use case \"${name}\" is already registered. Overwriting.`);\n }\n\n useCaseRegister.set(name, useCase);\n}\n\n/**\n * Unregister a use case.\n *\n * Dropping the history namespace is best-effort: `$cleanup` is synchronous, so the\n * async cache removal is fire-and-forget with a `.catch` guard — a rejecting cache\n * driver must never turn cleanup into an unhandled rejection.\n */\nexport function $unregisterUseCase(name: string) {\n useCaseRegister.delete(name);\n\n Promise.resolve(cache.removeNamespace(`use-case:history:${name}`)).catch((error) => {\n log.error(\"use-cases\", name, \"history namespace removal failed\", { error });\n });\n}\n\n/**\n * Get a use case.\n *\n * Returns the `RegisteredUseCase` shape — including the runtime `calls` counters\n * the registry actually stores — so consumers can read call stats without an\n * ad-hoc cast.\n */\nexport function getUseCase<Output, Input>(name: string) {\n return useCaseRegister.get(name) as RegisteredUseCase<Output, Input> | undefined;\n}\n\n/**\n * Get all use cases\n */\nexport function getUseCases() {\n return useCaseRegister;\n}\n\n/**\n * Increase use case success calls\n */\nexport function increaseUseCaseSuccessCalls(name: string): number {\n const useCase = useCaseRegister.get(name);\n if (useCase) {\n useCase.calls.success++;\n useCase.calls.total++;\n\n return useCase.calls.success;\n }\n\n return 0;\n}\n\n/**\n * Increase use case failed calls\n */\nexport function increaseUseCaseFailedCalls(name: string): number {\n const useCase = useCaseRegister.get(name);\n if (useCase) {\n useCase.calls.failed++;\n useCase.calls.total++;\n\n return useCase.calls.failed;\n }\n\n return 0;\n}\n\n/**\n * Resolve the history cache TTL (seconds) from config.\n * `false` means \"use the cache driver's default\", represented as `undefined`.\n */\nfunction resolveHistoryTtl(useCaseConfig?: UseCaseConfigurations): number | undefined {\n const ttlConfig = useCaseConfig?.history?.ttl ?? 3600; // 1 hour default\n\n return ttlConfig === false ? undefined : ttlConfig;\n}\n\n/**\n * Get use case history from cache.\n *\n * Prunes ids whose entries have expired so the list can't accumulate dead refs.\n */\nexport async function getUseCaseHistory(name: string): Promise<UseCaseResult<any>[]> {\n const listKey = `use-case:history:${name}:list`;\n const ids = (await cache.get<string[]>(listKey)) || [];\n\n const entries = await Promise.all(\n ids.map(async (id: string) => ({\n id,\n result: await cache.get<UseCaseResult<any>>(`use-case:history:${name}:${id}`),\n })),\n );\n\n const liveEntries = entries.filter((entry) => Boolean(entry.result));\n\n if (liveEntries.length !== ids.length) {\n const useCaseConfig = config.get<UseCaseConfigurations>(\"use-cases\");\n\n await cache.set(\n listKey,\n liveEntries.map((entry) => entry.id),\n resolveHistoryTtl(useCaseConfig),\n );\n }\n\n return liveEntries.map((entry) => entry.result) as UseCaseResult<any>[];\n}\n\n/**\n * Add use case history to cache, capping the per-use-case list so it can't grow\n * unbounded — oldest entries (and their ids) are evicted past MAX_HISTORY_ENTRIES.\n */\nexport async function addUseCaseHistory(name: string, result: UseCaseResult<any>) {\n const useCaseConfig = config.get<UseCaseConfigurations>(\"use-cases\");\n\n // On by default outside production; opt in to production with `history.enabled: true`.\n const enabled = useCaseConfig?.history?.enabled ?? process.env.NODE_ENV !== \"production\";\n\n if (!enabled) return;\n\n const previous = historyWrites.get(name) ?? Promise.resolve();\n const current = previous.catch(() => undefined).then(() => writeHistory(name, result));\n\n historyWrites.set(name, current);\n\n try {\n await current;\n } finally {\n if (historyWrites.get(name) === current) {\n historyWrites.delete(name);\n }\n }\n}\n\n/**\n * Per-use-case write chain so the list read-modify-write never interleaves\n * within a process (keeps the cap enforced under concurrency).\n */\nconst historyWrites = new Map<string, Promise<unknown>>();\n\nasync function writeHistory(name: string, result: UseCaseResult<any>) {\n const useCaseConfig = config.get<UseCaseConfigurations>(\"use-cases\");\n const ttl = resolveHistoryTtl(useCaseConfig);\n const maxEntries = useCaseConfig?.history?.maxEntries ?? 100;\n const key = `use-case:history:${name}:${result.id}`;\n const listKey = `use-case:history:${name}:list`;\n\n // Store a projection only: `output` and `ctx` (tokens, payloads) never reach the cache.\n const projection = {\n ...result,\n output: undefined,\n ctx: undefined,\n } as unknown as UseCaseResult<any>;\n\n await cache.set(key, projection, ttl);\n\n const list = (await cache.get<string[]>(listKey)) || [];\n\n list.push(result.id);\n\n while (list.length > maxEntries) {\n const evictedId = list.shift();\n\n if (evictedId) {\n await cache.remove(`use-case:history:${name}:${evictedId}`);\n }\n }\n\n await cache.set(listKey, list, ttl);\n}\n"],"mappings":"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"}
|
package/esm/utils/app-log.d.mts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
//#region
|
|
1
|
+
//#region ../../packages/core/src/utils/app-log.d.ts
|
|
2
2
|
declare const appLog: {
|
|
3
|
-
info: (module: string, message: string) =>
|
|
4
|
-
error: (module: string, message: string) =>
|
|
5
|
-
warn: (module: string, message: string) =>
|
|
6
|
-
debug: (module: string, message: string) =>
|
|
7
|
-
success: (module: string, message: string) =>
|
|
3
|
+
info: (module: string, message: string) => import("@warlock.js/logger").Logger;
|
|
4
|
+
error: (module: string, message: string) => import("@warlock.js/logger").Logger;
|
|
5
|
+
warn: (module: string, message: string) => import("@warlock.js/logger").Logger;
|
|
6
|
+
debug: (module: string, message: string) => import("@warlock.js/logger").Logger;
|
|
7
|
+
success: (module: string, message: string) => import("@warlock.js/logger").Logger;
|
|
8
8
|
};
|
|
9
9
|
//#endregion
|
|
10
10
|
export { appLog };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-log.d.mts","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"app-log.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/utils/app-log.ts"],"mappings":";cAEa,MAAA;yBACU,OAAA,0CAAiB,MAAA;0BAChB,OAAA,0CAAiB,MAAA;yBAClB,OAAA,0CAAiB,MAAA;0BAChB,OAAA,0CAAiB,MAAA;4BACf,OAAA,0CAAiB,MAAA;AAAA"}
|
package/esm/utils/app-log.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { log } from "@warlock.js/logger";
|
|
2
2
|
|
|
3
|
-
//#region
|
|
3
|
+
//#region ../../packages/core/src/utils/app-log.ts
|
|
4
4
|
const appLog = {
|
|
5
5
|
info: (module, message) => log.info("app", module, message),
|
|
6
6
|
error: (module, message) => log.error("app", module, message),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-log.mjs","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"app-log.mjs","names":[],"sources":["../../../../../../../../packages/core/src/utils/app-log.ts"],"sourcesContent":["import { log } from \"@warlock.js/logger\";\n\nexport const appLog = {\n info: (module: string, message: string) => log.info(\"app\", module, message),\n error: (module: string, message: string) => log.error(\"app\", module, message),\n warn: (module: string, message: string) => log.warn(\"app\", module, message),\n debug: (module: string, message: string) => log.debug(\"app\", module, message),\n success: (module: string, message: string) => log.success(\"app\", module, message),\n};\n"],"mappings":";;;AAEA,MAAa,SAAS;CACpB,OAAO,QAAgB,YAAoB,IAAI,KAAK,OAAO,QAAQ,OAAO;CAC1E,QAAQ,QAAgB,YAAoB,IAAI,MAAM,OAAO,QAAQ,OAAO;CAC5E,OAAO,QAAgB,YAAoB,IAAI,KAAK,OAAO,QAAQ,OAAO;CAC1E,QAAQ,QAAgB,YAAoB,IAAI,MAAM,OAAO,QAAQ,OAAO;CAC5E,UAAU,QAAgB,YAAoB,IAAI,QAAQ,OAAO,QAAQ,OAAO;AAClF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
//#region ../../packages/core/src/utils/clock.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* The application clock.
|
|
4
|
+
*
|
|
5
|
+
* Read the current time through `clock` instead of `new Date()` / `Date.now()`
|
|
6
|
+
* where a test needs to control it: tokens that expire, "created 5 minutes
|
|
7
|
+
* ago", scheduled cut-offs. In the test environment the test kit swaps the
|
|
8
|
+
* source for a frozen one (`clockFake` from `@warlock.js/core/tests`); in
|
|
9
|
+
* every other environment it is the system clock.
|
|
10
|
+
*
|
|
11
|
+
* Only code that reads `clock` is affected — the global `Date` and timers are
|
|
12
|
+
* never patched, so a fake clock cannot stall `setTimeout` or a driver.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* import { clock } from "@warlock.js/core";
|
|
16
|
+
*
|
|
17
|
+
* const expiresAt = new Date(clock.timestamp() + 15 * 60_000);
|
|
18
|
+
*/
|
|
19
|
+
type ClockSource = {
|
|
20
|
+
/** Milliseconds since the Unix epoch. */now(): number;
|
|
21
|
+
};
|
|
22
|
+
declare const clock: {
|
|
23
|
+
/** The current time as a `Date`. */now(): Date; /** The current time in milliseconds since the Unix epoch. */
|
|
24
|
+
timestamp(): number;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Replace the clock's source, or restore the system clock with `undefined`.
|
|
28
|
+
* The test kit's `clockFake` is built on this.
|
|
29
|
+
*/
|
|
30
|
+
declare function setClockSource(next: ClockSource | undefined): void;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { ClockSource, clock, setClockSource };
|
|
33
|
+
//# sourceMappingURL=clock.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clock.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/utils/clock.ts"],"mappings":";;AAiBA;;;;AAEK;AAeL;;;;;;;;;AAgBA;;KAjCY,WAAA;EAiCyB,yCA/BnC,GAAG;AAAA;AAAA,cAeQ,KAAA;6CAEJ,IAAI;;;;;;;iBAcG,cAAA,CAAe,IAA6B,EAAvB,WAAW"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
//#region ../../packages/core/src/utils/clock.ts
|
|
2
|
+
const systemClock = { now: () => Date.now() };
|
|
3
|
+
const SOURCE_KEY = Symbol.for("warlock.core.clockSource");
|
|
4
|
+
function source() {
|
|
5
|
+
return globalThis[SOURCE_KEY] ?? systemClock;
|
|
6
|
+
}
|
|
7
|
+
const clock = {
|
|
8
|
+
/** The current time as a `Date`. */
|
|
9
|
+
now() {
|
|
10
|
+
return new Date(source().now());
|
|
11
|
+
},
|
|
12
|
+
/** The current time in milliseconds since the Unix epoch. */
|
|
13
|
+
timestamp() {
|
|
14
|
+
return source().now();
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Replace the clock's source, or restore the system clock with `undefined`.
|
|
19
|
+
* The test kit's `clockFake` is built on this.
|
|
20
|
+
*/
|
|
21
|
+
function setClockSource(next) {
|
|
22
|
+
globalThis[SOURCE_KEY] = next;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
//#endregion
|
|
26
|
+
export { clock, setClockSource };
|
|
27
|
+
//# sourceMappingURL=clock.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clock.mjs","names":[],"sources":["../../../../../../../../packages/core/src/utils/clock.ts"],"sourcesContent":["/**\n * The application clock.\n *\n * Read the current time through `clock` instead of `new Date()` / `Date.now()`\n * where a test needs to control it: tokens that expire, \"created 5 minutes\n * ago\", scheduled cut-offs. In the test environment the test kit swaps the\n * source for a frozen one (`clockFake` from `@warlock.js/core/tests`); in\n * every other environment it is the system clock.\n *\n * Only code that reads `clock` is affected — the global `Date` and timers are\n * never patched, so a fake clock cannot stall `setTimeout` or a driver.\n *\n * @example\n * import { clock } from \"@warlock.js/core\";\n *\n * const expiresAt = new Date(clock.timestamp() + 15 * 60_000);\n */\nexport type ClockSource = {\n /** Milliseconds since the Unix epoch. */\n now(): number;\n};\n\nconst systemClock: ClockSource = { now: () => Date.now() };\n\n// On `globalThis` so the framework loaded twice in one Vitest worker (native\n// and through vite-node) still reads one source.\nconst SOURCE_KEY = Symbol.for(\"warlock.core.clockSource\");\n\ntype SourceHolder = { [SOURCE_KEY]?: ClockSource };\n\nfunction source(): ClockSource {\n return (globalThis as SourceHolder)[SOURCE_KEY] ?? systemClock;\n}\n\nexport const clock = {\n /** The current time as a `Date`. */\n now(): Date {\n return new Date(source().now());\n },\n\n /** The current time in milliseconds since the Unix epoch. */\n timestamp(): number {\n return source().now();\n },\n};\n\n/**\n * Replace the clock's source, or restore the system clock with `undefined`.\n * The test kit's `clockFake` is built on this.\n */\nexport function setClockSource(next: ClockSource | undefined): void {\n (globalThis as SourceHolder)[SOURCE_KEY] = next;\n}\n"],"mappings":";AAsBA,MAAM,cAA2B,EAAE,WAAW,KAAK,IAAI,EAAE;AAIzD,MAAM,aAAa,OAAO,IAAI,0BAA0B;AAIxD,SAAS,SAAsB;CAC7B,OAAQ,WAA4B,eAAe;AACrD;AAEA,MAAa,QAAQ;;CAEnB,MAAY;EACV,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC;CAChC;;CAGA,YAAoB;EAClB,OAAO,OAAO,CAAC,CAAC,IAAI;CACtB;AACF;;;;;AAMA,SAAgB,eAAe,MAAqC;CAClE,AAAC,WAA4B,cAAc;AAC7C"}
|
|
@@ -2,7 +2,7 @@ import { DatabaseLogModel } from "../database/models/database-log/database-log.m
|
|
|
2
2
|
import { ChildModel, Model } from "@warlock.js/cascade";
|
|
3
3
|
import { BasicLogConfigurations, LogChannel, LogContract, LoggingData } from "@warlock.js/logger";
|
|
4
4
|
|
|
5
|
-
//#region
|
|
5
|
+
//#region ../../packages/core/src/utils/database-log.d.ts
|
|
6
6
|
type DatabaseLogOptions = BasicLogConfigurations & {
|
|
7
7
|
/**
|
|
8
8
|
* Model to use for logging
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-log.d.mts","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"database-log.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/utils/database-log.ts"],"mappings":";;;;;KAKY,kBAAA,GAAqB,sBAAA;;AAAjC;;EAIE,KAAA,UAAe,gBAAgB;AAAA;AAAA,cAGpB,WAAA,SAAoB,UAAA,CAAW,kBAAA,aAA+B,WAAA;EAHzE;;;EAOO,IAAA;EAJI;;;EAAA,IASA,KAAA,IAAS,UAAA,CAAW,KAAA;EAAA;;;EAOlB,GAAA,CAAI,GAAA,EAAK,WAAA,GAAW,OAAA;AAAA"}
|
|
@@ -2,7 +2,7 @@ import { DatabaseLogModel } from "../database/models/database-log/database-log.m
|
|
|
2
2
|
import "../database/models/database-log/index.mjs";
|
|
3
3
|
import { LogChannel } from "@warlock.js/logger";
|
|
4
4
|
|
|
5
|
-
//#region
|
|
5
|
+
//#region ../../packages/core/src/utils/database-log.ts
|
|
6
6
|
var DatabaseLog = class extends LogChannel {
|
|
7
7
|
constructor(..._args) {
|
|
8
8
|
super(..._args);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-log.mjs","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"database-log.mjs","names":[],"sources":["../../../../../../../../packages/core/src/utils/database-log.ts"],"sourcesContent":["import type { ChildModel, Model } from \"@warlock.js/cascade\";\nimport type { BasicLogConfigurations, LoggingData } from \"@warlock.js/logger\";\nimport { LogChannel, type LogContract, type LogMessage } from \"@warlock.js/logger\";\nimport { DatabaseLogModel } from \"../database/models/database-log\";\n\nexport type DatabaseLogOptions = BasicLogConfigurations & {\n /**\n * Model to use for logging\n */\n model?: typeof DatabaseLogModel;\n};\n\nexport class DatabaseLog extends LogChannel<DatabaseLogOptions> implements LogContract {\n /**\n * {@inheritdoc}\n */\n public name = \"database\";\n\n /**\n * Database model\n */\n public get model(): ChildModel<Model> {\n return this.config(\"model\") ?? DatabaseLogModel;\n }\n\n /**\n * {@inheritdoc}\n */\n public async log(log: LoggingData) {\n const { module, action, message, type: level } = log;\n\n if (!this.model.getDataSource().driver?.isConnected) return;\n\n if (!this.shouldBeLogged(log)) return;\n\n const data: LogMessage = {\n module,\n action,\n content: message,\n level,\n date: new Date().toISOString(),\n };\n\n if (message instanceof Error) {\n data.stack = message.stack;\n data.content = message.message;\n }\n\n try {\n await this.model.create(data);\n } catch (error) {\n console.log(\"Error\", error);\n }\n }\n}\n"],"mappings":";;;;;AAYA,IAAa,cAAb,cAAiC,WAAsD;;;cAIvE;;;;;CAKd,IAAW,QAA2B;EACpC,OAAO,KAAK,OAAO,OAAO,KAAK;CACjC;;;;CAKA,MAAa,IAAI,KAAkB;EACjC,MAAM,EAAE,QAAQ,QAAQ,SAAS,MAAM,UAAU;EAEjD,IAAI,CAAC,KAAK,MAAM,cAAc,CAAC,CAAC,QAAQ,aAAa;EAErD,IAAI,CAAC,KAAK,eAAe,GAAG,GAAG;EAE/B,MAAM,OAAmB;GACvB;GACA;GACA,SAAS;GACT;GACA,uBAAM,IAAI,KAAK,EAAC,CAAC,YAAY;EAC/B;EAEA,IAAI,mBAAmB,OAAO;GAC5B,KAAK,QAAQ,QAAQ;GACrB,KAAK,UAAU,QAAQ;EACzB;EAEA,IAAI;GACF,MAAM,KAAK,MAAM,OAAO,IAAI;EAC9B,SAAS,OAAO;GACd,QAAQ,IAAI,SAAS,KAAK;EAC5B;CACF;AACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from "node:fs";
|
|
2
2
|
|
|
3
|
-
//#region
|
|
3
|
+
//#region ../../packages/core/src/utils/detect-environment-overrides.ts
|
|
4
4
|
/**
|
|
5
5
|
* Minimal `KEY=VALUE` line parser: `#` comments, blank lines, and one layer
|
|
6
6
|
* of surrounding quotes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-environment-overrides.mjs","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"detect-environment-overrides.mjs","names":[],"sources":["../../../../../../../../packages/core/src/utils/detect-environment-overrides.ts"],"sourcesContent":["import { existsSync, readFileSync } from \"node:fs\";\n\n/**\n * One `.env` key whose file value lost to an ambient `process.env` value that\n * was already set before the file was read.\n */\nexport type EnvironmentOverride = {\n key: string;\n effectiveValue: string;\n fileValue: string;\n};\n\n/**\n * Minimal `KEY=VALUE` line parser: `#` comments, blank lines, and one layer\n * of surrounding quotes.\n *\n * Deliberately NOT `@mongez/dotenv`'s own `parseLine` / `parseValue`: those\n * live in the same module as `loadEnv`, and `tests/unit/utils/load-environment.test.ts`\n * replaces that whole module with `vi.mock(\"@mongez/dotenv\", () => ({ loadEnv:\n * ... }))`. Importing any other named export from `@mongez/dotenv` here would\n * resolve to `undefined` under that mock and crash detection during those\n * tests. Comments, blank lines and a surrounding quote pair are the entire\n * feature set this comparison needs — the actual load still goes through the\n * real `@mongez/dotenv` parser via `loadEnv()`.\n */\nfunction parseEnvLine(line: string): [string, string] | undefined {\n const trimmed = line.trim();\n\n if (!trimmed || trimmed.startsWith(\"#\") || !trimmed.includes(\"=\")) {\n return undefined;\n }\n\n const separatorIndex = trimmed.indexOf(\"=\");\n const key = trimmed.slice(0, separatorIndex).trim();\n let value = trimmed.slice(separatorIndex + 1).trim();\n\n const quote = value[0];\n\n if (\n (quote === '\"' || quote === \"'\" || quote === \"`\") &&\n value.length > 1 &&\n value.endsWith(quote)\n ) {\n value = value.slice(1, -1);\n }\n\n return [key, value];\n}\n\n/**\n * Which of the given `.env` files' keys lost to a value the ambient process\n * environment already carried.\n *\n * `snapshot` must be captured BEFORE `loadEnv()` runs: the loader writes into\n * `process.env` for every key the file supplies, so a snapshot taken\n * afterwards can no longer tell an ambient override from a value the loader\n * itself just wrote.\n *\n * `files` should be given in the same order `loadEnv()` actually reads them\n * (`.env.shared` first, then the applicable `.env`/`.env.<NODE_ENV>`), so a\n * key declared in more than one file resolves to the value the real loader\n * would have used absent any ambient override.\n */\nexport function detectEnvironmentOverrides(\n files: string[],\n snapshot: NodeJS.ProcessEnv,\n): EnvironmentOverride[] {\n const fileValues = new Map<string, string>();\n\n for (const file of files) {\n if (!existsSync(file)) {\n continue;\n }\n\n const lines = readFileSync(file, \"utf8\").split(/\\r\\n|\\n/);\n\n for (const line of lines) {\n const parsed = parseEnvLine(line);\n\n if (!parsed) {\n continue;\n }\n\n fileValues.set(parsed[0], parsed[1]);\n }\n }\n\n const overrides: EnvironmentOverride[] = [];\n\n for (const [key, fileValue] of fileValues) {\n if (!Object.prototype.hasOwnProperty.call(snapshot, key)) {\n continue;\n }\n\n const effectiveValue = snapshot[key] as string;\n\n if (effectiveValue !== fileValue) {\n overrides.push({ key, effectiveValue, fileValue });\n }\n }\n\n return overrides;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAyBA,SAAS,aAAa,MAA4C;CAChE,MAAM,UAAU,KAAK,KAAK;CAE1B,IAAI,CAAC,WAAW,QAAQ,WAAW,GAAG,KAAK,CAAC,QAAQ,SAAS,GAAG,GAC9D;CAGF,MAAM,iBAAiB,QAAQ,QAAQ,GAAG;CAC1C,MAAM,MAAM,QAAQ,MAAM,GAAG,cAAc,CAAC,CAAC,KAAK;CAClD,IAAI,QAAQ,QAAQ,MAAM,iBAAiB,CAAC,CAAC,CAAC,KAAK;CAEnD,MAAM,QAAQ,MAAM;CAEpB,KACG,UAAU,QAAO,UAAU,OAAO,UAAU,QAC7C,MAAM,SAAS,KACf,MAAM,SAAS,KAAK,GAEpB,QAAQ,MAAM,MAAM,GAAG,EAAE;CAG3B,OAAO,CAAC,KAAK,KAAK;AACpB;;;;;;;;;;;;;;;AAgBA,SAAgB,2BACd,OACA,UACuB;CACvB,MAAM,6BAAa,IAAI,IAAoB;CAE3C,KAAK,MAAM,QAAQ,OAAO;EACxB,IAAI,CAAC,WAAW,IAAI,GAClB;EAGF,MAAM,QAAQ,aAAa,MAAM,MAAM,CAAC,CAAC,MAAM,SAAS;EAExD,KAAK,MAAM,QAAQ,OAAO;GACxB,MAAM,SAAS,aAAa,IAAI;GAEhC,IAAI,CAAC,QACH;GAGF,WAAW,IAAI,OAAO,IAAI,OAAO,EAAE;EACrC;CACF;CAEA,MAAM,YAAmC,CAAC;CAE1C,KAAK,MAAM,CAAC,KAAK,cAAc,YAAY;EACzC,IAAI,CAAC,OAAO,UAAU,eAAe,KAAK,UAAU,GAAG,GACrD;EAGF,MAAM,iBAAiB,SAAS;EAEhC,IAAI,mBAAmB,WACrB,UAAU,KAAK;GAAE;GAAK;GAAgB;EAAU,CAAC;CAErD;CAEA,OAAO;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.d.mts","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"environment.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/utils/environment.ts"],"mappings":";KAAY,WAAA;AAAZ;;;;AAAA,KAMY,eAAA;AAAA,iBAEI,WAAA,IAAe,WAAW;AAAA,iBAI1B,cAAA,CAAe,GAAgB,EAAX,WAAW"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.mjs","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"environment.mjs","names":[],"sources":["../../../../../../../../packages/core/src/utils/environment.ts"],"sourcesContent":["export type Environment = \"development\" | \"production\" | \"test\";\n\n/**\n * How the framework hosts your code — the dev server (watcher + HMR) or the\n * bundled production output. A separate axis from {@link Environment}.\n */\nexport type RuntimeStrategy = \"production\" | \"development\";\n\nexport function environment(): Environment {\n return (process.env.NODE_ENV as Environment) || \"development\";\n}\n\nexport function setEnvironment(env: Environment) {\n process.env.NODE_ENV = env;\n}\n"],"mappings":";AAQA,SAAgB,cAA2B;CACzC,OAAQ,QAAQ,IAAI,YAA4B;AAClD;AAEA,SAAgB,eAAe,KAAkB;CAC/C,QAAQ,IAAI,WAAW;AACzB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { getJsonFileAsync } from "@warlock.js/fs";
|
|
3
3
|
|
|
4
|
-
//#region
|
|
4
|
+
//#region ../../packages/core/src/utils/framework-vesion.ts
|
|
5
5
|
/**
|
|
6
6
|
* Cached version string
|
|
7
7
|
*/
|
|
@@ -11,7 +11,7 @@ let cachedVersion = null;
|
|
|
11
11
|
*/
|
|
12
12
|
async function getWarlockVersion() {
|
|
13
13
|
if (cachedVersion) return cachedVersion;
|
|
14
|
-
const version = (await getJsonFileAsync(path.join(import.meta.dirname, "./../../package.json"))).version.replace(
|
|
14
|
+
const version = (await getJsonFileAsync(path.join(import.meta.dirname, "./../../package.json"))).version.replace(/\^|~/g, "");
|
|
15
15
|
cachedVersion = version;
|
|
16
16
|
return version;
|
|
17
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framework-vesion.mjs","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"framework-vesion.mjs","names":[],"sources":["../../../../../../../../packages/core/src/utils/framework-vesion.ts"],"sourcesContent":["import { getJsonFileAsync } from \"@warlock.js/fs\";\nimport path from \"node:path\";\n\n/**\n * Cached version string\n */\nlet cachedVersion: string | null = null;\n\n/**\n * Get the framework version from package.json (cached)\n */\nexport async function getWarlockVersion(): Promise<string> {\n if (cachedVersion) return cachedVersion;\n\n const frameworkPackageJson = (await getJsonFileAsync(\n path.join(import.meta.dirname, \"./../../package.json\"),\n )) as { version: string };\n\n const version = frameworkPackageJson.version.replace(/\\^|~/g, \"\");\n cachedVersion = version;\n return version;\n}\n\nexport function getFrameworkVersion(): string | null {\n return cachedVersion;\n}\n"],"mappings":";;;;;;;AAMA,IAAI,gBAA+B;;;;AAKnC,eAAsB,oBAAqC;CACzD,IAAI,eAAe,OAAO;CAM1B,MAAM,WAAU,MAJoB,iBAClC,KAAK,KAAK,OAAO,KAAK,SAAS,sBAAsB,CACvD,EAEoC,CAAC,QAAQ,QAAQ,SAAS,EAAE;CAChE,gBAAgB;CAChB,OAAO;AACT;AAEA,SAAgB,sBAAqC;CACnD,OAAO;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-localized.d.mts","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"get-localized.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/utils/get-localized.ts"],"mappings":";KAEY,eAAA;EACV,UAAA;EACA,KAAK;AAAA;;AAAA;AAOP;;iBAAgB,YAAA,CAAa,MAAA,EAAQ,eAAe,IAAI,UAAA,WAAqB,GAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useRequestStore } from "../http/context/request-context.mjs";
|
|
2
2
|
|
|
3
|
-
//#region
|
|
3
|
+
//#region ../../packages/core/src/utils/get-localized.ts
|
|
4
4
|
/**
|
|
5
5
|
* Get localized value based on the given locale code
|
|
6
6
|
* If the locale code is not given and the function is called within a request context, it will get the current locale code
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-localized.mjs","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"get-localized.mjs","names":[],"sources":["../../../../../../../../packages/core/src/utils/get-localized.ts"],"sourcesContent":["import { useRequestStore } from \"../http/context/request-context\";\n\nexport type LocalizedObject = {\n localeCode: string;\n value: any;\n};\n\n/**\n * Get localized value based on the given locale code\n * If the locale code is not given and the function is called within a request context, it will get the current locale code\n */\nexport function getLocalized(values: LocalizedObject[], localeCode?: string, key = \"value\") {\n if (!values) return values;\n\n if (!localeCode) {\n localeCode = useRequestStore().request?.getLocaleCode();\n }\n\n if (Array.isArray(values)) {\n return values.find((value) => value.localeCode === localeCode)?.[key as keyof LocalizedObject];\n }\n\n return values;\n}\n"],"mappings":";;;;;;;AAWA,SAAgB,aAAa,QAA2B,YAAqB,MAAM,SAAS;CAC1F,IAAI,CAAC,QAAQ,OAAO;CAEpB,IAAI,CAAC,YACH,aAAa,gBAAgB,CAAC,CAAC,SAAS,cAAc;CAGxD,IAAI,MAAM,QAAQ,MAAM,GACtB,OAAO,OAAO,MAAM,UAAU,MAAM,eAAe,UAAU,CAAC,GAAG;CAGnE,OAAO;AACT"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
//#region ../../packages/core/src/utils/ids.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Identifier generation the test kit can make deterministic.
|
|
4
|
+
*
|
|
5
|
+
* Generate ids through `ids` instead of calling `crypto.randomUUID()` directly
|
|
6
|
+
* where a test needs to predict them (a snapshot, a file name, a link). In the
|
|
7
|
+
* test environment `idsFake` from `@warlock.js/core/tests` replaces the source
|
|
8
|
+
* with a numbered sequence; in every other environment the values come from
|
|
9
|
+
* `node:crypto`.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* import { ids } from "@warlock.js/core";
|
|
13
|
+
*
|
|
14
|
+
* const reference = ids.uuid();
|
|
15
|
+
* const resetToken = ids.token(48);
|
|
16
|
+
*/
|
|
17
|
+
type IdsSource = {
|
|
18
|
+
/** A version 4 UUID. */uuid(): string; /** A URL-safe random string of exactly `length` characters. */
|
|
19
|
+
token(length: number): string;
|
|
20
|
+
};
|
|
21
|
+
declare const ids: {
|
|
22
|
+
/** A version 4 UUID. */uuid(): string; /** A URL-safe random string, 32 characters unless `length` says otherwise. */
|
|
23
|
+
token(length?: number): string;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Replace the id source, or restore `node:crypto` with `undefined`.
|
|
27
|
+
* The test kit's `idsFake` is built on this.
|
|
28
|
+
*/
|
|
29
|
+
declare function setIdsSource(next: IdsSource | undefined): void;
|
|
30
|
+
//#endregion
|
|
31
|
+
export { IdsSource, ids, setIdsSource };
|
|
32
|
+
//# sourceMappingURL=ids.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.d.mts","names":[],"sources":["../../../../../../../../packages/core/src/utils/ids.ts"],"mappings":";;AAiBA;;;;;;;;AAIsB;AAmBtB;;;;;KAvBY,SAAA;0BAEV,IAAA;EAEA,KAAA,CAAM,MAAA;AAAA;AAAA,cAmBK,GAAA;EAoBsB;;;;;;;iBAAnB,YAAA,CAAa,IAA2B,EAArB,SAAS"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { randomBytes, randomUUID } from "node:crypto";
|
|
2
|
+
|
|
3
|
+
//#region ../../packages/core/src/utils/ids.ts
|
|
4
|
+
const cryptoIds = {
|
|
5
|
+
uuid: () => randomUUID(),
|
|
6
|
+
token: (length) => randomBytes(Math.ceil(length * 3 / 4) + 1).toString("base64url").slice(0, length)
|
|
7
|
+
};
|
|
8
|
+
const SOURCE_KEY = Symbol.for("warlock.core.idsSource");
|
|
9
|
+
function source() {
|
|
10
|
+
return globalThis[SOURCE_KEY] ?? cryptoIds;
|
|
11
|
+
}
|
|
12
|
+
const ids = {
|
|
13
|
+
/** A version 4 UUID. */
|
|
14
|
+
uuid() {
|
|
15
|
+
return source().uuid();
|
|
16
|
+
},
|
|
17
|
+
/** A URL-safe random string, 32 characters unless `length` says otherwise. */
|
|
18
|
+
token(length = 32) {
|
|
19
|
+
if (!Number.isInteger(length) || length < 1) throw new RangeError(`ids.token(length) needs a positive integer, got ${String(length)}.`);
|
|
20
|
+
return source().token(length);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Replace the id source, or restore `node:crypto` with `undefined`.
|
|
25
|
+
* The test kit's `idsFake` is built on this.
|
|
26
|
+
*/
|
|
27
|
+
function setIdsSource(next) {
|
|
28
|
+
globalThis[SOURCE_KEY] = next;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
//#endregion
|
|
32
|
+
export { ids, setIdsSource };
|
|
33
|
+
//# sourceMappingURL=ids.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.mjs","names":[],"sources":["../../../../../../../../packages/core/src/utils/ids.ts"],"sourcesContent":["import { randomBytes, randomUUID } from \"node:crypto\";\n\n/**\n * Identifier generation the test kit can make deterministic.\n *\n * Generate ids through `ids` instead of calling `crypto.randomUUID()` directly\n * where a test needs to predict them (a snapshot, a file name, a link). In the\n * test environment `idsFake` from `@warlock.js/core/tests` replaces the source\n * with a numbered sequence; in every other environment the values come from\n * `node:crypto`.\n *\n * @example\n * import { ids } from \"@warlock.js/core\";\n *\n * const reference = ids.uuid();\n * const resetToken = ids.token(48);\n */\nexport type IdsSource = {\n /** A version 4 UUID. */\n uuid(): string;\n /** A URL-safe random string of exactly `length` characters. */\n token(length: number): string;\n};\n\nconst cryptoIds: IdsSource = {\n uuid: () => randomUUID(),\n token: (length) =>\n randomBytes(Math.ceil((length * 3) / 4) + 1)\n .toString(\"base64url\")\n .slice(0, length),\n};\n\nconst SOURCE_KEY = Symbol.for(\"warlock.core.idsSource\");\n\ntype SourceHolder = { [SOURCE_KEY]?: IdsSource };\n\nfunction source(): IdsSource {\n return (globalThis as SourceHolder)[SOURCE_KEY] ?? cryptoIds;\n}\n\nexport const ids = {\n /** A version 4 UUID. */\n uuid(): string {\n return source().uuid();\n },\n\n /** A URL-safe random string, 32 characters unless `length` says otherwise. */\n token(length = 32): string {\n if (!Number.isInteger(length) || length < 1) {\n throw new RangeError(`ids.token(length) needs a positive integer, got ${String(length)}.`);\n }\n\n return source().token(length);\n },\n};\n\n/**\n * Replace the id source, or restore `node:crypto` with `undefined`.\n * The test kit's `idsFake` is built on this.\n */\nexport function setIdsSource(next: IdsSource | undefined): void {\n (globalThis as SourceHolder)[SOURCE_KEY] = next;\n}\n"],"mappings":";;;AAwBA,MAAM,YAAuB;CAC3B,YAAY,WAAW;CACvB,QAAQ,WACN,YAAY,KAAK,KAAM,SAAS,IAAK,CAAC,IAAI,CAAC,CAAC,CACzC,SAAS,WAAW,CAAC,CACrB,MAAM,GAAG,MAAM;AACtB;AAEA,MAAM,aAAa,OAAO,IAAI,wBAAwB;AAItD,SAAS,SAAoB;CAC3B,OAAQ,WAA4B,eAAe;AACrD;AAEA,MAAa,MAAM;;CAEjB,OAAe;EACb,OAAO,OAAO,CAAC,CAAC,KAAK;CACvB;;CAGA,MAAM,SAAS,IAAY;EACzB,IAAI,CAAC,OAAO,UAAU,MAAM,KAAK,SAAS,GACxC,MAAM,IAAI,WAAW,mDAAmD,OAAO,MAAM,EAAE,EAAE;EAG3F,OAAO,OAAO,CAAC,CAAC,MAAM,MAAM;CAC9B;AACF;;;;;AAMA,SAAgB,aAAa,MAAmC;CAC9D,AAAC,WAA4B,cAAc;AAC7C"}
|
package/esm/utils/index.d.mts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { LocalizedObject, getLocalized } from "./get-localized.mjs";
|
|
2
2
|
import { Environment, RuntimeStrategy, environment, setEnvironment } from "./environment.mjs";
|
|
3
3
|
import { appLog } from "./app-log.mjs";
|
|
4
|
+
import { ClockSource, clock, setClockSource } from "./clock.mjs";
|
|
4
5
|
import { DatabaseLog, DatabaseLogOptions } from "./database-log.mjs";
|
|
6
|
+
import { IdsSource, ids, setIdsSource } from "./ids.mjs";
|
|
5
7
|
import { Path } from "./normalized-path.mjs";
|
|
6
8
|
import { fetchLatestVersion } from "./npm-registry.mjs";
|
|
7
9
|
import { appPath, cachePath, configPath, logsPath, paths, publicPath, rootPath, sanitizePath, srcPath, storagePath, tempPath, uploadsPath, warlockPath } from "./paths.mjs";
|
|
8
10
|
import { promiseAllObject } from "./promise-all-object.mjs";
|
|
9
11
|
import { Queue } from "./queue.mjs";
|
|
12
|
+
import { JavaScriptRuntime, JavaScriptRuntimeName, SUPPORTED_RUNTIMES_DOCS_URL, assertNodeOnlyCommand, describeJavaScriptRuntime, detectJavaScriptRuntime, nodeOnlyCommandError, unverifiedBuildRuntimeNotice } from "./runtime.mjs";
|
|
10
13
|
import { sleep } from "./sleep.mjs";
|
|
11
14
|
import { sluggable } from "./sluggable.mjs";
|
|
12
15
|
import { toJson } from "./to-json.mjs";
|
package/esm/utils/index.mjs
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { appLog } from "./app-log.mjs";
|
|
2
|
+
import { clock, setClockSource } from "./clock.mjs";
|
|
2
3
|
import { DatabaseLog } from "./database-log.mjs";
|
|
3
4
|
import { environment, setEnvironment } from "./environment.mjs";
|
|
4
5
|
import { getLocalized } from "./get-localized.mjs";
|
|
6
|
+
import { ids, setIdsSource } from "./ids.mjs";
|
|
5
7
|
import { Path } from "./normalized-path.mjs";
|
|
6
8
|
import { fetchLatestVersion } from "./npm-registry.mjs";
|
|
7
9
|
import { appPath, cachePath, configPath, logsPath, paths, publicPath, rootPath, sanitizePath, srcPath, storagePath, tempPath, uploadsPath, warlockPath } from "./paths.mjs";
|
|
8
10
|
import { promiseAllObject } from "./promise-all-object.mjs";
|
|
9
11
|
import { Queue } from "./queue.mjs";
|
|
12
|
+
import { SUPPORTED_RUNTIMES_DOCS_URL, assertNodeOnlyCommand, describeJavaScriptRuntime, detectJavaScriptRuntime, nodeOnlyCommandError, unverifiedBuildRuntimeNotice } from "./runtime.mjs";
|
|
10
13
|
import { sleep } from "./sleep.mjs";
|
|
11
14
|
import { sluggable } from "./sluggable.mjs";
|
|
12
15
|
import { toJson } from "./to-json.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-test-file.mjs","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"is-test-file.mjs","names":[],"sources":["../../../../../../../../packages/core/src/utils/is-test-file.ts"],"sourcesContent":["/** `foo.spec.ts`, `foo.test.tsx`, `foo.spec.mjs` … — a file only a test runner can load. */\nconst TEST_FILE = /\\.(spec|test)\\.[cm]?[jt]sx?$/;\n\n/**\n * Whether a path names a test file. Folder-scanning commands (`warlock seed`,\n * `warlock migrate`) skip these: a spec that sits beside the seeder it tests\n * calls `vi.mock()` at import time, which throws outside Vitest.\n */\nexport function isTestFile(filePath: string): boolean {\n return TEST_FILE.test(filePath);\n}\n"],"mappings":";;AACA,MAAM,YAAY;;;;;;AAOlB,SAAgB,WAAW,UAA2B;CACpD,OAAO,UAAU,KAAK,QAAQ;AAChC"}
|
|
@@ -5,7 +5,7 @@ import { loadEnv } from "@mongez/dotenv";
|
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { existsSync } from "node:fs";
|
|
7
7
|
|
|
8
|
-
//#region
|
|
8
|
+
//#region ../../packages/core/src/utils/load-environment.ts
|
|
9
9
|
/**
|
|
10
10
|
* Core's env precedence policy, in one place because two callers load env:
|
|
11
11
|
* this module at boot, and the dev server when an `.env` file changes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-environment.mjs","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"load-environment.mjs","names":[],"sources":["../../../../../../../../packages/core/src/utils/load-environment.ts"],"sourcesContent":["import { loadEnv, type EnvLoaderOptions } from \"@mongez/dotenv\";\nimport { existsSync } from \"node:fs\";\nimport path from \"node:path\";\nimport { detectEnvironmentOverrides } from \"./detect-environment-overrides\";\nimport { recordEnvironmentOverrides } from \"./recorded-environment-overrides\";\nimport { reportEnvironmentOverrides } from \"./report-environment-overrides\";\n\n/**\n * Core's env precedence policy, in one place because two callers load env:\n * this module at boot, and the dev server when an `.env` file changes.\n *\n * `@mongez/dotenv` defaults to `precedence: \"file-wins\"`, which is backwards.\n * The `.env` file is a checked-in DEFAULT; a variable already exported into\n * `process.env` is the deliberate, situational override — a second instance on\n * another port, CI pointed at another database, a container's configuration.\n * Under the default, `PORT=6060 warlock dev` produced a server on the `.env`\n * file's 3000 and said nothing. A default that silently beats an explicit\n * instruction is the wrong way round, so core opts into `process-wins`:\n * the file supplies only the keys the environment does not already carry.\n *\n * EMPTY STRING — `FOO=` in the environment counts as SET, and wins, so the\n * file's value is discarded and `env(\"FOO\")` returns `\"\"`. Chosen over\n * \"empty means absent\" because the loader cannot tell a deliberate blanking\n * from an accident, and only one of the two readings is expressible: an\n * operator who wants the file's value can unset the variable, whereas under\n * \"empty means absent\" an operator who wants a blank value has no way to ask\n * for one. It also matches POSIX (an exported empty variable is set), dotenv,\n * dotenv-flow and Vite. Note the consequence: a blank export beats the second\n * argument too, so `env(\"FOO\", \"fallback\")` yields `\"\"`, not the fallback.\n *\n * Keys this loader itself wrote are tracked by the library and are NOT treated\n * as process-provided, so editing `.env` during a dev session still takes\n * effect on reload rather than being pinned by the previous load's own writes.\n */\nexport const environmentLoaderOptions: EnvLoaderOptions = {\n precedence: \"process-wins\",\n};\n\n/**\n * The files `loadEnv()` will look for, in the order it considers them.\n *\n * Mirrors `@mongez/dotenv`'s own resolution — `.env.shared` first, then\n * `.env.<NODE_ENV>` if it exists, else plain `.env` — because the presence\n * check has to ask the same question the loader is about to ask.\n */\nfunction candidateEnvFiles(directory: string): string[] {\n const files = [path.join(directory, \".env\"), path.join(directory, \".env.shared\")];\n\n if (process.env.NODE_ENV) {\n files.push(path.join(directory, `.env.${process.env.NODE_ENV}`));\n }\n\n return files;\n}\n\n/**\n * The files `loadEnv()` will actually read, in its own read order.\n *\n * Differs from {@link candidateEnvFiles}, which lists every candidate to\n * answer \"is there anything to load at all\". `loadEnv()` itself only ever\n * reads `.env.shared` (if present) plus ONE of `.env.<NODE_ENV>` /\n * `.env` — the NODE_ENV-specific file when it exists, `.env` otherwise —\n * never both. Override detection has to mirror that exactly, or a key\n * declared only in a file `loadEnv()` would not have touched could be\n * reported as having \"lost\" a comparison it was never actually part of.\n */\nfunction resolveLoadedEnvFiles(directory: string): string[] {\n const files: string[] = [];\n const sharedFile = path.join(directory, \".env.shared\");\n\n if (existsSync(sharedFile)) {\n files.push(sharedFile);\n }\n\n const nodeEnvFile = process.env.NODE_ENV\n ? path.join(directory, `.env.${process.env.NODE_ENV}`)\n : undefined;\n const derivedFile =\n nodeEnvFile && existsSync(nodeEnvFile) ? nodeEnvFile : path.join(directory, \".env\");\n\n if (existsSync(derivedFile)) {\n files.push(derivedFile);\n }\n\n return files;\n}\n\n/**\n * Whether this process has already loaded its env files.\n *\n * Two callers reach here on a bootstrapping command — the CLI preload phase and\n * `bootstrap()` — and `loadEnv()` defaults to `override: true`, so a second pass\n * re-parses the same files and re-writes `process.env`. Anything set in between\n * (a `warlock.config.ts` module body, a config file, an orchestrator) would be\n * silently clobbered by the later load. Same shape as the defect where a\n * caller's test-server port was overwritten by a re-read of `.env`.\n *\n * A deliberate reload is still possible and still used: the dev server calls\n * `loadEnv()` directly when an `.env` file changes on disk, which is a reload\n * the user asked for rather than an accidental second pass.\n */\nlet environmentLoaded = false;\n\n/**\n * Load `.env` files when there are any, and do nothing when there are not.\n *\n * Loads at most **once per process** — see {@link environmentLoaded}.\n *\n * `@mongez/dotenv`'s `loadEnvFile` **throws** when the file is absent. That was\n * survivable while only `dev` loaded env; now that every command loads it —\n * because `warlock.config.ts` calls `env()` in its module body and had been\n * evaluated against an empty store under every command — an unguarded call\n * would turn \"this project has no .env\" from a non-event into a hard failure\n * of `warlock build`. A project without a `.env` is legitimate: config files\n * carry defaults, and containers inject their own variables.\n *\n * The guard lives here rather than waiting on a fix in `@mongez/dotenv`: core\n * decides its own env policy and must not depend on another package's release\n * schedule to avoid crashing a working build.\n */\nexport async function loadEnvironmentFiles(directory: string = process.cwd()): Promise<void> {\n if (environmentLoaded) {\n return;\n }\n\n const hasEnvFile = candidateEnvFiles(directory).some((file) => existsSync(file));\n\n if (!hasEnvFile) {\n // Not latched: a project may create its `.env` between a command's preload\n // and its bootstrap, and there is nothing to protect from a second override\n // when the first pass loaded nothing.\n return;\n }\n\n environmentLoaded = true;\n\n // Snapshot BEFORE `loadEnv()` runs: the loader writes into `process.env` for\n // every key its files supply, so a snapshot taken afterwards could no\n // longer distinguish an ambient override from a value the loader itself\n // just wrote — see `detectEnvironmentOverrides`.\n const processEnvironmentSnapshot = { ...process.env };\n\n // The precedence itself is correct (see `environmentLoaderOptions` above);\n // the defect this guards against is the SILENCE — `.env` losing to an\n // ambient value with no diagnostic at all.\n const overrides = detectEnvironmentOverrides(\n resolveLoadedEnvFiles(directory),\n processEnvironmentSnapshot,\n );\n\n // Print the overrides here AND retain them: a later point in the boot (the\n // port-collision reporter) needs to know an ambient `HTTP_PORT` beat `.env`\n // to avoid advising a rebuild that the env var would just override again —\n // see `recorded-environment-overrides.ts` (finding 8782b840).\n recordEnvironmentOverrides(overrides);\n reportEnvironmentOverrides(overrides);\n\n // `dir` has to be forwarded: `loadEnv()` defaults it to `process.cwd()`, so\n // without this the existence check above asks about `directory` while the\n // load itself reads somewhere else entirely. Identical in production, where\n // `directory` IS `process.cwd()`.\n await loadEnv(undefined, { ...environmentLoaderOptions, dir: directory });\n}\n\n/**\n * Forget that env has been loaded, so the next call loads again.\n *\n * @internal For tests, which run many boots inside one process.\n */\nexport function resetLoadedEnvironment(): void {\n environmentLoaded = false;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAa,2BAA6C,EACxD,YAAY,eACd;;;;;;;;AASA,SAAS,kBAAkB,WAA6B;CACtD,MAAM,QAAQ,CAAC,KAAK,KAAK,WAAW,MAAM,GAAG,KAAK,KAAK,WAAW,aAAa,CAAC;CAEhF,IAAI,QAAQ,IAAI,UACd,MAAM,KAAK,KAAK,KAAK,WAAW,QAAQ,QAAQ,IAAI,UAAU,CAAC;CAGjE,OAAO;AACT;;;;;;;;;;;;AAaA,SAAS,sBAAsB,WAA6B;CAC1D,MAAM,QAAkB,CAAC;CACzB,MAAM,aAAa,KAAK,KAAK,WAAW,aAAa;CAErD,IAAI,WAAW,UAAU,GACvB,MAAM,KAAK,UAAU;CAGvB,MAAM,cAAc,QAAQ,IAAI,WAC5B,KAAK,KAAK,WAAW,QAAQ,QAAQ,IAAI,UAAU,IACnD;CACJ,MAAM,cACJ,eAAe,WAAW,WAAW,IAAI,cAAc,KAAK,KAAK,WAAW,MAAM;CAEpF,IAAI,WAAW,WAAW,GACxB,MAAM,KAAK,WAAW;CAGxB,OAAO;AACT;;;;;;;;;;;;;;;AAgBA,IAAI,oBAAoB;;;;;;;;;;;;;;;;;;AAmBxB,eAAsB,qBAAqB,YAAoB,QAAQ,IAAI,GAAkB;CAC3F,IAAI,mBACF;CAKF,IAAI,CAFe,kBAAkB,SAAS,CAAC,CAAC,MAAM,SAAS,WAAW,IAAI,CAEhE,GAIZ;CAGF,oBAAoB;CAMpB,MAAM,6BAA6B,EAAE,GAAG,QAAQ,IAAI;CAKpD,MAAM,YAAY,2BAChB,sBAAsB,SAAS,GAC/B,0BACF;CAMA,2BAA2B,SAAS;CACpC,2BAA2B,SAAS;CAMpC,MAAM,QAAQ,QAAW;EAAE,GAAG;EAA0B,KAAK;CAAU,CAAC;AAC1E"}
|