@warlock.js/core 4.1.14 → 4.2.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 +24 -0
- package/LICENSE +21 -0
- 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/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-command.d.mts +1 -1
- package/esm/cli/cli-command.d.mts.map +1 -1
- package/esm/cli/cli-command.mjs +1 -1
- package/esm/cli/cli-command.mjs.map +1 -1
- package/esm/cli/types.d.mts +1 -1
- package/esm/cli/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-loader.d.mts +1 -1
- package/esm/config/config-loader.d.mts.map +1 -1
- package/esm/config/config-loader.mjs +1 -1
- 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-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/load-config-files.mjs +1 -1
- package/esm/config/load-config-files.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 +39 -0
- package/esm/connectors/access-connector.d.mts.map +1 -0
- package/esm/connectors/access-connector.mjs +54 -0
- package/esm/connectors/access-connector.mjs.map +1 -0
- 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 +5 -1
- 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/herald-connector.d.mts +1 -1
- package/esm/connectors/herald-connector.d.mts.map +1 -1
- package/esm/connectors/herald-connector.mjs +2 -2
- package/esm/connectors/herald-connector.mjs.map +1 -1
- package/esm/connectors/http-connector.d.mts +1 -1
- package/esm/connectors/http-connector.d.mts.map +1 -1
- package/esm/connectors/http-connector.mjs +3 -1
- package/esm/connectors/http-connector.mjs.map +1 -1
- package/esm/connectors/index.d.mts +2 -0
- package/esm/connectors/index.mjs +2 -0
- 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 +38 -0
- package/esm/connectors/notifications-connector.d.mts.map +1 -0
- package/esm/connectors/notifications-connector.mjs +51 -0
- package/esm/connectors/notifications-connector.mjs.map +1 -0
- 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 +5 -3
- package/esm/connectors/types.d.mts.map +1 -1
- package/esm/connectors/types.mjs +3 -1
- package/esm/connectors/types.mjs.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/models/database-log/database-log.d.mts +1 -1
- 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/seeds/seeder.d.mts +1 -1
- package/esm/database/seeds/seeder.d.mts.map +1 -1
- package/esm/database/seeds/seeder.mjs +1 -1
- package/esm/database/seeds/seeder.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/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/create-worker.mjs +1 -1
- 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-logger.mjs +2 -13
- package/esm/dev-server/dev-logger.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/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.d.mts +1 -1
- package/esm/dev-server/files-orchestrator.d.mts.map +1 -1
- package/esm/dev-server/files-orchestrator.mjs +1 -1
- package/esm/dev-server/files-orchestrator.mjs.map +1 -1
- package/esm/dev-server/files-watcher.d.mts +1 -1
- package/esm/dev-server/files-watcher.d.mts.map +1 -1
- package/esm/dev-server/files-watcher.mjs +1 -1
- 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.d.mts +1 -1
- package/esm/dev-server/health-checker/checkers/base-health-checker.d.mts.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.d.mts +1 -1
- package/esm/dev-server/health-checker/checkers/eslint-health-checker.d.mts.map +1 -1
- package/esm/dev-server/health-checker/checkers/eslint-health-checker.mjs +1 -1
- package/esm/dev-server/health-checker/checkers/eslint-health-checker.mjs.map +1 -1
- package/esm/dev-server/health-checker/checkers/typescript-health-checker.d.mts +1 -1
- package/esm/dev-server/health-checker/checkers/typescript-health-checker.d.mts.map +1 -1
- 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/file-health-checker.contract.d.mts +1 -1
- 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.d.mts +1 -1
- package/esm/dev-server/health-checker/files-healthcare.manager.d.mts.map +1 -1
- package/esm/dev-server/health-checker/files-healthcare.manager.mjs +1 -1
- package/esm/dev-server/health-checker/files-healthcare.manager.mjs.map +1 -1
- 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/ts-health.worker.mjs +1 -1
- package/esm/dev-server/health-checker/workers/ts-health.worker.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/register-loader.mjs +1 -1
- package/esm/dev-server/loader/register-loader.mjs.map +1 -1
- package/esm/dev-server/loader/transpile-cache.mjs +2 -164
- package/esm/dev-server/loader/transpile-cache.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/module-loader.d.mts +1 -1
- package/esm/dev-server/module-loader.d.mts.map +1 -1
- package/esm/dev-server/module-loader.mjs +1 -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 +1 -1
- package/esm/dev-server/parse-imports.mjs.map +1 -1
- package/esm/dev-server/path.mjs +1 -1
- package/esm/dev-server/path.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/tsconfig-manager.mjs +1 -1
- package/esm/dev-server/tsconfig-manager.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/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/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/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/database/RequestLog.d.mts +1 -1
- 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/errors/errors.d.mts +1 -1
- package/esm/http/errors/errors.d.mts.map +1 -1
- package/esm/http/errors/errors.mjs +1 -1
- package/esm/http/errors/errors.mjs.map +1 -1
- 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/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 +1 -1
- 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 +1 -1
- package/esm/http/middleware/rate-limit.middleware.d.mts.map +1 -1
- package/esm/http/middleware/rate-limit.middleware.mjs +1 -1
- 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/plugins.d.mts +1 -1
- package/esm/http/plugins.d.mts.map +1 -1
- package/esm/http/plugins.mjs +1 -1
- package/esm/http/plugins.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.d.mts +1 -1
- package/esm/http/request.d.mts.map +1 -1
- package/esm/http/request.mjs +1 -1
- package/esm/http/request.mjs.map +1 -1
- package/esm/http/response.d.mts +4 -4
- package/esm/http/response.d.mts.map +1 -1
- package/esm/http/response.mjs +1 -1
- package/esm/http/response.mjs.map +1 -1
- package/esm/http/server.d.mts +1 -1
- package/esm/http/server.d.mts.map +1 -1
- package/esm/http/server.mjs +1 -1
- package/esm/http/server.mjs.map +1 -1
- package/esm/http/types.d.mts +1 -1
- package/esm/http/types.d.mts.map +1 -1
- package/esm/http/uploaded-file.d.mts +1 -1
- package/esm/http/uploaded-file.d.mts.map +1 -1
- package/esm/http/uploaded-file.mjs +1 -1
- package/esm/http/uploaded-file.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 +1 -1
- package/esm/http/uploads-types.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 +5 -2
- package/esm/index.mjs +6 -2
- 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 +1 -1
- package/esm/mail/config.d.mts.map +1 -1
- package/esm/mail/config.mjs +1 -1
- 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/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 +1 -1
- 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/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/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 +1 -1
- 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/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-registry.mjs +1 -1
- package/esm/router/route-registry.mjs.map +1 -1
- package/esm/router/router.d.mts +1 -1
- package/esm/router/router.d.mts.map +1 -1
- package/esm/router/router.mjs +1 -1
- package/esm/router/router.mjs.map +1 -1
- package/esm/router/types.d.mts +1 -1
- package/esm/router/types.d.mts.map +1 -1
- 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 +1 -1
- package/esm/storage/drivers/local-driver.d.mts.map +1 -1
- package/esm/storage/drivers/local-driver.mjs +1 -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/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 +1 -1
- package/esm/storage/storage.d.mts.map +1 -1
- package/esm/storage/storage.mjs +1 -1
- package/esm/storage/storage.mjs.map +1 -1
- package/esm/storage/types.d.mts +1 -1
- package/esm/storage/types.d.mts.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/tests/start-http-development-server.d.mts +1 -1
- package/esm/tests/start-http-development-server.d.mts.map +1 -1
- package/esm/tests/start-http-development-server.mjs +4 -2
- package/esm/tests/start-http-development-server.mjs.map +1 -1
- package/esm/tests/test-helpers.d.mts +1 -1
- package/esm/tests/test-helpers.d.mts.map +1 -1
- package/esm/tests/test-helpers.mjs +1 -1
- package/esm/tests/test-helpers.mjs.map +1 -1
- package/esm/tests/vitest-setup.d.mts +1 -1
- package/esm/tests/vitest-setup.d.mts.map +1 -1
- package/esm/tests/vitest-setup.mjs +1 -1
- package/esm/tests/vitest-setup.mjs.map +1 -1
- 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 +1 -1
- 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/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/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 -11
- 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/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/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/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/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 +1 -1
- package/esm/validation/types.d.mts.map +1 -1
- package/esm/validation/validateAll.mjs +1 -1
- package/esm/validation/validateAll.mjs.map +1 -1
- package/esm/validation/validators/file-validator.d.mts +1 -1
- package/esm/validation/validators/file-validator.d.mts.map +1 -1
- package/esm/validation/validators/file-validator.mjs +1 -1
- package/esm/validation/validators/file-validator.mjs.map +1 -1
- package/esm/vite/index.mjs +3 -0
- package/esm/vite/lower-stage3-decorators.d.mts +53 -0
- package/esm/vite/lower-stage3-decorators.d.mts.map +1 -0
- package/esm/vite/lower-stage3-decorators.mjs +63 -0
- package/esm/vite/lower-stage3-decorators.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/types.d.mts +1 -1
- package/esm/warlock-config/types.d.mts.map +1 -1
- package/esm/warlock-config/warlock-config.manager.d.mts +20 -2
- package/esm/warlock-config/warlock-config.manager.d.mts.map +1 -1
- package/esm/warlock-config/warlock-config.manager.mjs +39 -2
- package/esm/warlock-config/warlock-config.manager.mjs.map +1 -1
- package/llms-full.txt +66 -4
- package/llms.txt +1 -0
- package/package.json +9 -33
- package/skills/lower-stage3-decorators/SKILL.md +54 -0
- package/skills/run-app/SKILL.md +2 -0
- package/skills/test-http/SKILL.md +3 -2
- package/skills/test-service/SKILL.md +3 -2
- package/bin/warlock.js +0 -3
- package/esm/_virtual/_rolldown/runtime.mjs +0 -7
- package/esm/cli/cli-commands.manager.mjs +0 -290
- package/esm/cli/cli-commands.manager.mjs.map +0 -1
- package/esm/cli/cli-commands.utils.mjs +0 -217
- package/esm/cli/cli-commands.utils.mjs.map +0 -1
- package/esm/cli/commands/add.command.mjs +0 -27
- package/esm/cli/commands/add.command.mjs.map +0 -1
- package/esm/cli/commands/build.command.mjs +0 -14
- package/esm/cli/commands/build.command.mjs.map +0 -1
- package/esm/cli/commands/create-database.command.mjs +0 -24
- package/esm/cli/commands/create-database.command.mjs.map +0 -1
- package/esm/cli/commands/dev-server.command.mjs +0 -48
- package/esm/cli/commands/dev-server.command.mjs.map +0 -1
- package/esm/cli/commands/drop-tables.command.mjs +0 -23
- package/esm/cli/commands/drop-tables.command.mjs.map +0 -1
- package/esm/cli/commands/generate/generate.command.mjs +0 -201
- package/esm/cli/commands/generate/generate.command.mjs.map +0 -1
- package/esm/cli/commands/generate/generators/column-dsl-parser.mjs +0 -49
- package/esm/cli/commands/generate/generators/column-dsl-parser.mjs.map +0 -1
- package/esm/cli/commands/generate/generators/controller.generator.mjs +0 -48
- package/esm/cli/commands/generate/generators/controller.generator.mjs.map +0 -1
- package/esm/cli/commands/generate/generators/migration.generator.mjs +0 -81
- package/esm/cli/commands/generate/generators/migration.generator.mjs.map +0 -1
- package/esm/cli/commands/generate/generators/model.generator.mjs +0 -60
- package/esm/cli/commands/generate/generators/model.generator.mjs.map +0 -1
- package/esm/cli/commands/generate/generators/module.generator.mjs +0 -113
- package/esm/cli/commands/generate/generators/module.generator.mjs.map +0 -1
- package/esm/cli/commands/generate/generators/repository.generator.mjs +0 -42
- package/esm/cli/commands/generate/generators/repository.generator.mjs.map +0 -1
- package/esm/cli/commands/generate/generators/resource.generator.mjs +0 -42
- package/esm/cli/commands/generate/generators/resource.generator.mjs.map +0 -1
- package/esm/cli/commands/generate/generators/service.generator.mjs +0 -42
- package/esm/cli/commands/generate/generators/service.generator.mjs.map +0 -1
- package/esm/cli/commands/generate/templates/stubs.mjs +0 -514
- package/esm/cli/commands/generate/templates/stubs.mjs.map +0 -1
- package/esm/cli/commands/generate/utils/name-parser.mjs +0 -69
- package/esm/cli/commands/generate/utils/name-parser.mjs.map +0 -1
- package/esm/cli/commands/generate/utils/path-resolver.mjs +0 -56
- package/esm/cli/commands/generate/utils/path-resolver.mjs.map +0 -1
- package/esm/cli/commands/generate/utils/prompt.mjs +0 -28
- package/esm/cli/commands/generate/utils/prompt.mjs.map +0 -1
- package/esm/cli/commands/generate/utils/writer.mjs +0 -60
- package/esm/cli/commands/generate/utils/writer.mjs.map +0 -1
- package/esm/cli/commands/migrate.command.mjs +0 -60
- package/esm/cli/commands/migrate.command.mjs.map +0 -1
- package/esm/cli/commands/seed.command.mjs +0 -41
- package/esm/cli/commands/seed.command.mjs.map +0 -1
- package/esm/cli/commands/start-production.command.mjs +0 -50
- package/esm/cli/commands/start-production.command.mjs.map +0 -1
- package/esm/cli/commands/storage-put.action.mjs +0 -75
- package/esm/cli/commands/storage-put.action.mjs.map +0 -1
- package/esm/cli/commands/storage-put.command.mjs +0 -46
- package/esm/cli/commands/storage-put.command.mjs.map +0 -1
- package/esm/cli/commands/typings-generator.command.mjs +0 -38
- package/esm/cli/commands/typings-generator.command.mjs.map +0 -1
- package/esm/cli/commands-loader.mjs +0 -50
- package/esm/cli/commands-loader.mjs.map +0 -1
- package/esm/cli/framework-cli-commands.mjs +0 -37
- package/esm/cli/framework-cli-commands.mjs.map +0 -1
- package/esm/cli/parse-cli-args.mjs +0 -62
- package/esm/cli/parse-cli-args.mjs.map +0 -1
- package/esm/cli/start.d.mts +0 -1
- package/esm/cli/start.mjs +0 -8
- package/esm/cli/start.mjs.map +0 -1
- package/esm/cli/string-similarity.mjs +0 -56
- package/esm/cli/string-similarity.mjs.map +0 -1
- package/esm/database/create-database-action.mjs +0 -32
- package/esm/database/create-database-action.mjs.map +0 -1
- package/esm/database/drop-tables-action.mjs +0 -35
- package/esm/database/drop-tables-action.mjs.map +0 -1
- package/esm/database/migrate-action.mjs +0 -99
- package/esm/database/migrate-action.mjs.map +0 -1
- package/esm/database/seed-command-action.mjs +0 -74
- package/esm/database/seed-command-action.mjs.map +0 -1
- package/esm/database/seeds/seeders.manager.mjs +0 -129
- package/esm/database/seeds/seeders.manager.mjs.map +0 -1
- package/esm/database/seeds/seeds-table-migration.mjs +0 -31
- package/esm/database/seeds/seeds-table-migration.mjs.map +0 -1
- package/esm/database/seeds/utils.mjs +0 -6
- package/esm/database/seeds/utils.mjs.map +0 -1
- package/esm/dev-server/development-server.mjs +0 -115
- package/esm/dev-server/development-server.mjs.map +0 -1
- package/esm/dev-server/health-checker/workers/eslint-health.worker.d.mts +0 -1
- package/esm/dev-server/health-checker/workers/ts-health.worker.d.mts +0 -1
- package/esm/dev-server/layer-executor.mjs +0 -114
- package/esm/dev-server/layer-executor.mjs.map +0 -1
- package/esm/dev-server/loader/hook-thread.d.mts +0 -48
- package/esm/dev-server/loader/hook-thread.d.mts.map +0 -1
- package/esm/dev-server/loader/hook-thread.mjs +0 -47
- package/esm/dev-server/loader/hook-thread.mjs.map +0 -1
- package/esm/dev-server/loader/load-hook.d.mts +0 -58
- package/esm/dev-server/loader/load-hook.d.mts.map +0 -1
- package/esm/dev-server/loader/load-hook.mjs +0 -86
- package/esm/dev-server/loader/load-hook.mjs.map +0 -1
- package/esm/dev-server/loader/own-resolver.mjs +0 -69
- package/esm/dev-server/loader/own-resolver.mjs.map +0 -1
- package/esm/dev-server/loader/resolve-capture.mjs +0 -43
- package/esm/dev-server/loader/resolve-capture.mjs.map +0 -1
- package/esm/dev-server/loader/resolve-hook.d.mts +0 -41
- package/esm/dev-server/loader/resolve-hook.d.mts.map +0 -1
- package/esm/dev-server/loader/resolve-hook.mjs +0 -87
- package/esm/dev-server/loader/resolve-hook.mjs.map +0 -1
- package/esm/dev-server/loader/source-slug.mjs +0 -22
- package/esm/dev-server/loader/source-slug.mjs.map +0 -1
- package/esm/dev-server/loader/version-registry.mjs +0 -45
- package/esm/dev-server/loader/version-registry.mjs.map +0 -1
- package/esm/dev-server/start-development-server.mjs +0 -63
- package/esm/dev-server/start-development-server.mjs.map +0 -1
- package/esm/dev-server/type-generator.mjs +0 -453
- package/esm/dev-server/type-generator.mjs.map +0 -1
- package/esm/generations/add-command.action.mjs +0 -376
- package/esm/generations/add-command.action.mjs.map +0 -1
- package/esm/generations/stubs.mjs +0 -103
- package/esm/generations/stubs.mjs.map +0 -1
- package/esm/manifest/manifest-manager.mjs +0 -79
- package/esm/manifest/manifest-manager.mjs.map +0 -1
- package/esm/production/build-app-production.mjs +0 -14
- package/esm/production/build-app-production.mjs.map +0 -1
- package/esm/production/esbuild-plugins.mjs +0 -37
- package/esm/production/esbuild-plugins.mjs.map +0 -1
- package/esm/production/production-builder.mjs +0 -264
- package/esm/production/production-builder.mjs.map +0 -1
- package/esm/production/resolve-build-config.mjs +0 -28
- package/esm/production/resolve-build-config.mjs.map +0 -1
|
@@ -2,7 +2,7 @@ import { fireLifecycleEvent, globalEventsCallbacksMap } from "./use-case-events.
|
|
|
2
2
|
import { BadSchemaUseCaseError } from "./use-case.errors.mjs";
|
|
3
3
|
import { v } from "@warlock.js/seal";
|
|
4
4
|
|
|
5
|
-
//#region
|
|
5
|
+
//#region ../@warlock.js/core/src/use-cases/use-case-pipeline.ts
|
|
6
6
|
/**
|
|
7
7
|
* Runs the pre-handler pipeline in order:
|
|
8
8
|
* onExecuting event → guards → validation → before middleware.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-case-pipeline.mjs","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"use-case-pipeline.mjs","names":[],"sources":["../../../../../../../@warlock.js/core/src/use-cases/use-case-pipeline.ts"],"sourcesContent":["import type { ObjectValidator } from \"@warlock.js/seal\";\r\nimport { v } from \"@warlock.js/seal\";\r\nimport type {\r\n UseCaseBeforeMiddleware,\r\n UseCaseContext,\r\n UseCaseGuard,\r\n UseCaseOnExecutingContext,\r\n} from \"./types\";\r\nimport { fireLifecycleEvent, globalEventsCallbacksMap } from \"./use-case-events\";\r\nimport { BadSchemaUseCaseError } from \"./use-case.errors\";\r\n\r\nexport type PipelineOptions<Input> = {\r\n name: string;\r\n id: string;\r\n data: Input;\r\n ctx: UseCaseContext;\r\n startedAt: Date;\r\n schema?: ObjectValidator;\r\n guards?: UseCaseGuard<Input>[];\r\n before?: UseCaseBeforeMiddleware<Input>[];\r\n /** Invocation-level onExecuting override */\r\n onExecuting?: (ctx: UseCaseOnExecutingContext) => void;\r\n /** Use-case-level onExecuting */\r\n ucOnExecuting?: (ctx: UseCaseOnExecutingContext) => void;\r\n};\r\n\r\n/**\r\n * Runs the pre-handler pipeline in order:\r\n * onExecuting event → guards → validation → before middleware.\r\n *\r\n * Returns the validated, transformed data ready for the handler. The handler is\r\n * invoked by the caller so retry/benchmark can wrap it in isolation — keeping\r\n * guards, validation, and onExecuting from re-running on each retry attempt.\r\n *\r\n * Throws on guard failure or validation failure.\r\n *\r\n * @example\r\n * const data = await runPipeline({ name, id, data, ctx, startedAt, schema, guards, before });\r\n */\r\nexport async function runPipeline<Input>(opts: PipelineOptions<Input>): Promise<Input> {\r\n const { name, id, ctx, startedAt, schema, guards, before, onExecuting, ucOnExecuting } = opts;\r\n let data = opts.data;\r\n\r\n await fireLifecycleEvent<UseCaseOnExecutingContext>(\r\n { name, id, data, schema, ctx, startedAt },\r\n {\r\n invocation: onExecuting ? [onExecuting] : undefined,\r\n useCase: ucOnExecuting ? [ucOnExecuting] : undefined,\r\n global: globalEventsCallbacksMap.onExecuting.length\r\n ? globalEventsCallbacksMap.onExecuting\r\n : undefined,\r\n },\r\n );\r\n\r\n if (guards) {\r\n for (const guard of guards) {\r\n await guard(Object.freeze(data) as Readonly<Input>, ctx);\r\n }\r\n }\r\n\r\n if (schema) {\r\n const result = await v.validate(schema, data);\r\n\r\n if (!result.isValid) {\r\n throw new BadSchemaUseCaseError(result);\r\n }\r\n\r\n data = result.data;\r\n }\r\n\r\n let transformed = data;\r\n\r\n if (before) {\r\n for (const middleware of before) {\r\n transformed = await middleware(transformed, ctx);\r\n }\r\n }\r\n\r\n return transformed;\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;AAuCA,eAAsB,YAAmB,MAA8C;CACrF,MAAM,EAAE,MAAM,IAAI,KAAK,WAAW,QAAQ,QAAQ,QAAQ,aAAa,kBAAkB;CACzF,IAAI,OAAO,KAAK;CAEhB,MAAM,mBACJ;EAAE;EAAM;EAAI;EAAM;EAAQ;EAAK;CAAU,GACzC;EACE,YAAY,cAAc,CAAC,WAAW,IAAI;EAC1C,SAAS,gBAAgB,CAAC,aAAa,IAAI;EAC3C,QAAQ,yBAAyB,YAAY,SACzC,yBAAyB,cACzB;CACN,CACF;CAEA,IAAI,QACF,KAAK,MAAM,SAAS,QAClB,MAAM,MAAM,OAAO,OAAO,IAAI,GAAsB,GAAG;CAI3D,IAAI,QAAQ;EACV,MAAM,SAAS,MAAM,EAAE,SAAS,QAAQ,IAAI;EAE5C,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,sBAAsB,MAAM;EAGxC,OAAO,OAAO;CAChB;CAEA,IAAI,cAAc;CAElB,IAAI,QACF,KAAK,MAAM,cAAc,QACvB,cAAc,MAAM,WAAW,aAAa,GAAG;CAInD,OAAO;AACT"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { UseCase, UseCaseContext, UseCaseHandler, UseCaseWithSchema } from "./types.mjs";
|
|
2
2
|
import { Infer, ObjectValidator } from "@warlock.js/seal";
|
|
3
3
|
|
|
4
|
-
//#region
|
|
4
|
+
//#region ../@warlock.js/core/src/use-cases/use-case.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* Defines and registers a use case.
|
|
7
7
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-case.d.mts","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"use-case.d.mts","names":[],"sources":["../../../../../../../@warlock.js/core/src/use-cases/use-case.ts"],"mappings":";;;;;;AAwDA;;;;;;;;;;;;;;;;;;;;;;;;iBAAgB,OAAA,wBAEC,eAAA,cACH,cAAA,GAAiB,cAAA,EAC7B,OAAA,EAAS,iBAAA,CAAkB,MAAA,EAAQ,MAAA,EAAQ,GAAA,IAAO,cAAA,CAAe,MAAA,EAAQ,KAAA,CAAM,MAAA;AAAA,iBACjE,OAAA,wCAA+C,cAAA,GAAiB,cAAA,EAC9E,OAAA,EAAS,OAAA,CAAQ,MAAA,EAAQ,KAAA,EAAO,GAAA,IAC/B,cAAA,CAAe,MAAA,EAAQ,KAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { HttpError } from "../http/errors/errors.mjs";
|
|
2
2
|
import { ValidationResult } from "@warlock.js/seal";
|
|
3
3
|
|
|
4
|
-
//#region
|
|
4
|
+
//#region ../@warlock.js/core/src/use-cases/use-case.errors.d.ts
|
|
5
5
|
declare class BadSchemaUseCaseError extends HttpError {
|
|
6
6
|
constructor(result: ValidationResult);
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-case.errors.d.mts","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"use-case.errors.d.mts","names":[],"sources":["../../../../../../../@warlock.js/core/src/use-cases/use-case.errors.ts"],"mappings":";;;;cAGa,qBAAA,SAA8B,SAAS;cAC/B,MAAA,EAAQ,gBAAA;AAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { HttpError } from "../http/errors/errors.mjs";
|
|
2
2
|
|
|
3
|
-
//#region
|
|
3
|
+
//#region ../@warlock.js/core/src/use-cases/use-case.errors.ts
|
|
4
4
|
var BadSchemaUseCaseError = class extends HttpError {
|
|
5
5
|
constructor(result) {
|
|
6
6
|
super(400, `Invalid input data`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-case.errors.mjs","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"use-case.errors.mjs","names":[],"sources":["../../../../../../../@warlock.js/core/src/use-cases/use-case.errors.ts"],"sourcesContent":["import type { ValidationResult } from \"@warlock.js/seal\";\nimport { HttpError } from \"../http/errors/errors\";\n\nexport class BadSchemaUseCaseError extends HttpError {\n public constructor(result: ValidationResult) {\n super(400, `Invalid input data`, {\n code: \"BAD_SCHEMA_USE_CASE\",\n errors: result.errors,\n });\n }\n}\n"],"mappings":";;;AAGA,IAAa,wBAAb,cAA2C,UAAU;CACnD,AAAO,YAAY,QAA0B;EAC3C,MAAM,KAAK,sBAAsB;GAC/B,MAAM;GACN,QAAQ,OAAO;EACjB,CAAC;CACH;AACF"}
|
|
@@ -9,7 +9,7 @@ import { $registerUseCase, $unregisterUseCase, addUseCaseHistory, increaseUseCas
|
|
|
9
9
|
import { log } from "@warlock.js/logger";
|
|
10
10
|
import { Random, except, retry } from "@mongez/reinforcements";
|
|
11
11
|
|
|
12
|
-
//#region
|
|
12
|
+
//#region ../@warlock.js/core/src/use-cases/use-case.ts
|
|
13
13
|
const defaultUseCaseOptions = { benchmark: true };
|
|
14
14
|
function useCase(options) {
|
|
15
15
|
const { name, handler, schema, guards, before, after, onExecuting, onCompleted, onError } = options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-case.mjs","names":["runWithRetry"],"sources":["../../../../../../@warlock.js/core/src/use-cases/use-case.ts"],"sourcesContent":["import { except, Random, retry as runWithRetry } from \"@mongez/reinforcements\";\r\nimport { log } from \"@warlock.js/logger\";\r\nimport type { Infer, ObjectValidator } from \"@warlock.js/seal\";\r\nimport { measure } from \"../benchmark\";\r\nimport { config } from \"../config\";\r\nimport type {\r\n UseCase,\r\n UseCaseConfigurations,\r\n UseCaseContext,\r\n UseCaseErrorResult,\r\n UseCaseHandler,\r\n UseCaseResult,\r\n UseCaseRuntimeOptions,\r\n UseCaseWithSchema,\r\n} from \"./types\";\r\nimport { broadcastUseCaseResult } from \"./use-case-broadcast\";\r\nimport { fireLifecycleEvent, globalEventsCallbacksMap } from \"./use-case-events\";\r\nimport { runPipeline } from \"./use-case-pipeline\";\r\nimport {\r\n $registerUseCase,\r\n $unregisterUseCase,\r\n addUseCaseHistory,\r\n increaseUseCaseFailedCalls,\r\n increaseUseCaseSuccessCalls,\r\n} from \"./use-cases-registry\";\r\n\r\nconst defaultUseCaseOptions: UseCaseConfigurations = {\r\n benchmark: true,\r\n};\r\n\r\n/**\r\n * Defines and registers a use case.\r\n *\r\n * A use case is a named, observable, optionally benchmarked unit of business logic.\r\n * The returned handler is a typed async function you call with the input data.\r\n *\r\n * Execution order: onExecuting → guards → validation → before → handler → after →\r\n * onCompleted → broadcast. Retry and benchmark wrap the **handler** only.\r\n *\r\n * When a `schema` is provided, the handler's input is inferred from it — no manual\r\n * `Input` generic needed.\r\n *\r\n * @example\r\n * export const createOrderUseCase = useCase({\r\n * name: \"create_order\",\r\n * schema: createOrderSchema, // handler `data` is inferred from this\r\n * guards: [authGuard],\r\n * handler: async (data, ctx) => orderService.create(data),\r\n * after: [sendConfirmationEmail],\r\n * retry: { attempts: 3, delay: 500, backoff: \"exponential\" },\r\n * broadcast: true,\r\n * });\r\n *\r\n * // In a controller:\r\n * const output = await createOrderUseCase({ ...validated, user_id: req.user.id });\r\n */\r\nexport function useCase<\r\n Output,\r\n Schema extends ObjectValidator,\r\n Ctx extends UseCaseContext = UseCaseContext,\r\n>(options: UseCaseWithSchema<Output, Schema, Ctx>): UseCaseHandler<Output, Infer<Schema>>;\r\nexport function useCase<Output = any, Input = any, Ctx extends UseCaseContext = UseCaseContext>(\r\n options: UseCase<Output, Input, Ctx>,\r\n): UseCaseHandler<Output, Input>;\r\nexport function useCase<Output = any, Input = any>(\r\n options: UseCase<Output, Input>,\r\n): UseCaseHandler<Output, Input> {\r\n const { name, handler, schema, guards, before, after, onExecuting, onCompleted, onError } =\r\n options;\r\n\r\n // Merge per-use-case options with global config defaults\r\n const useCaseConfig = config.get<UseCaseConfigurations>(\"use-cases\", defaultUseCaseOptions);\r\n const benchmark = options.benchmark ?? useCaseConfig?.benchmark ?? true;\r\n const retryConfig = options.retry ?? useCaseConfig?.retry;\r\n const broadcast = options.broadcast;\r\n const broadcastConfig = useCaseConfig?.broadcast;\r\n const logEnabled = useCaseConfig?.log === true;\r\n\r\n $registerUseCase(name, {\r\n ...options,\r\n calls: { success: 0, failed: 0, total: 0 },\r\n });\r\n\r\n const useCaseHandler = async (\r\n data: Input,\r\n {\r\n ctx = {},\r\n id = `uc-${name}-` + Random.string(),\r\n onExecuting: invocationOnExecuting,\r\n onCompleted: invocationOnCompleted,\r\n onError: invocationOnError,\r\n }: UseCaseRuntimeOptions = {},\r\n ): Promise<Output> => {\r\n ctx.schema = schema;\r\n ctx.id = id;\r\n\r\n const startedAt = new Date();\r\n let output: Output | undefined;\r\n let error: Error | undefined;\r\n let benchmarkResult: { latency: number; state: \"excellent\" | \"good\" | \"poor\" } | undefined;\r\n let currentRetry = 0;\r\n\r\n if (logEnabled) {\r\n log.debug(\"use-cases\", name, \"executing\", { id });\r\n }\r\n\r\n try {\r\n const transformed = await runPipeline<Input>({\r\n name,\r\n id,\r\n data,\r\n ctx,\r\n startedAt,\r\n schema,\r\n guards,\r\n before,\r\n onExecuting: invocationOnExecuting,\r\n ucOnExecuting: onExecuting,\r\n });\r\n\r\n // Benchmark wraps ONLY the handler (per attempt) so latency reflects business\r\n // logic — not the guard/validation prelude, and not the retry backoff delays.\r\n const runHandler = async (): Promise<Output> => {\r\n if (!benchmark) {\r\n return handler(transformed, ctx);\r\n }\r\n\r\n const measured = await measure(\r\n name,\r\n () => handler(transformed, ctx),\r\n benchmark === true ? undefined : benchmark,\r\n );\r\n\r\n benchmarkResult = { latency: measured.latency, state: measured.state };\r\n\r\n // measure() never throws — it returns an error result. Re-throw so retry\r\n // and the outer catch handle failures uniformly.\r\n if (!measured.success) {\r\n throw measured.error;\r\n }\r\n\r\n return measured.value;\r\n };\r\n\r\n output = retryConfig\r\n ? await runWithRetry(runHandler, {\r\n ...retryConfig,\r\n onError: (retryError, attempt) => {\r\n currentRetry = attempt;\r\n retryConfig.onError?.(retryError, attempt);\r\n },\r\n })\r\n : await runHandler();\r\n } catch (err) {\r\n error = err as Error;\r\n }\r\n\r\n const endedAt = new Date();\r\n\r\n // After middleware — fire-and-forget side effects, only on success\r\n if (!error && after && output !== undefined) {\r\n for (const middleware of after) {\r\n try {\r\n await middleware(output, ctx);\r\n } catch (afterError) {\r\n log.error(\"use-cases\", name, \"after middleware failed\", { error: afterError });\r\n }\r\n }\r\n }\r\n\r\n const snapshot: UseCaseResult<Output> = {\r\n output,\r\n ctx,\r\n startedAt,\r\n endedAt,\r\n id,\r\n name,\r\n retries: retryConfig\r\n ? { attempts: retryConfig.attempts ?? 3, delay: retryConfig.delay, currentRetry }\r\n : undefined,\r\n benchmarkResult,\r\n // Set per-branch below so the counter reflects the actual outcome —\r\n // a failure must never increment the success tally.\r\n calls: 0,\r\n };\r\n\r\n if (error) {\r\n snapshot.calls = increaseUseCaseFailedCalls(name);\r\n\r\n if (logEnabled) {\r\n log.error(\"use-cases\", name, \"failed\", { id, error });\r\n }\r\n\r\n await fireLifecycleEvent<UseCaseErrorResult>(\r\n { ...except(snapshot, [\"output\"]), error },\r\n {\r\n invocation: invocationOnError ? [invocationOnError] : undefined,\r\n useCase: onError ? [onError] : undefined,\r\n global: globalEventsCallbacksMap.onError.length\r\n ? globalEventsCallbacksMap.onError\r\n : undefined,\r\n },\r\n );\r\n\r\n throw error;\r\n }\r\n\r\n snapshot.calls = increaseUseCaseSuccessCalls(name);\r\n\r\n if (logEnabled) {\r\n log.debug(\"use-cases\", name, \"completed\", { id, latency: benchmarkResult?.latency });\r\n }\r\n\r\n await addUseCaseHistory(name, snapshot);\r\n\r\n await fireLifecycleEvent<UseCaseResult<Output>>(snapshot, {\r\n invocation: invocationOnCompleted ? [invocationOnCompleted] : undefined,\r\n useCase: onCompleted ? [onCompleted] : undefined,\r\n global: globalEventsCallbacksMap.onCompleted.length\r\n ? globalEventsCallbacksMap.onCompleted\r\n : undefined,\r\n });\r\n\r\n await broadcastUseCaseResult({\r\n name,\r\n id,\r\n output: output!,\r\n result: snapshot,\r\n broadcast,\r\n config: broadcastConfig,\r\n });\r\n\r\n return output!;\r\n };\r\n\r\n useCaseHandler.$cleanup = () => {\r\n $unregisterUseCase(name);\r\n };\r\n\r\n return useCaseHandler;\r\n}\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-case.mjs","names":["runWithRetry"],"sources":["../../../../../../../@warlock.js/core/src/use-cases/use-case.ts"],"sourcesContent":["import { except, Random, retry as runWithRetry } from \"@mongez/reinforcements\";\r\nimport { log } from \"@warlock.js/logger\";\r\nimport type { Infer, ObjectValidator } from \"@warlock.js/seal\";\r\nimport { measure } from \"../benchmark\";\r\nimport { config } from \"../config\";\r\nimport type {\r\n UseCase,\r\n UseCaseConfigurations,\r\n UseCaseContext,\r\n UseCaseErrorResult,\r\n UseCaseHandler,\r\n UseCaseResult,\r\n UseCaseRuntimeOptions,\r\n UseCaseWithSchema,\r\n} from \"./types\";\r\nimport { broadcastUseCaseResult } from \"./use-case-broadcast\";\r\nimport { fireLifecycleEvent, globalEventsCallbacksMap } from \"./use-case-events\";\r\nimport { runPipeline } from \"./use-case-pipeline\";\r\nimport {\r\n $registerUseCase,\r\n $unregisterUseCase,\r\n addUseCaseHistory,\r\n increaseUseCaseFailedCalls,\r\n increaseUseCaseSuccessCalls,\r\n} from \"./use-cases-registry\";\r\n\r\nconst defaultUseCaseOptions: UseCaseConfigurations = {\r\n benchmark: true,\r\n};\r\n\r\n/**\r\n * Defines and registers a use case.\r\n *\r\n * A use case is a named, observable, optionally benchmarked unit of business logic.\r\n * The returned handler is a typed async function you call with the input data.\r\n *\r\n * Execution order: onExecuting → guards → validation → before → handler → after →\r\n * onCompleted → broadcast. Retry and benchmark wrap the **handler** only.\r\n *\r\n * When a `schema` is provided, the handler's input is inferred from it — no manual\r\n * `Input` generic needed.\r\n *\r\n * @example\r\n * export const createOrderUseCase = useCase({\r\n * name: \"create_order\",\r\n * schema: createOrderSchema, // handler `data` is inferred from this\r\n * guards: [authGuard],\r\n * handler: async (data, ctx) => orderService.create(data),\r\n * after: [sendConfirmationEmail],\r\n * retry: { attempts: 3, delay: 500, backoff: \"exponential\" },\r\n * broadcast: true,\r\n * });\r\n *\r\n * // In a controller:\r\n * const output = await createOrderUseCase({ ...validated, user_id: req.user.id });\r\n */\r\nexport function useCase<\r\n Output,\r\n Schema extends ObjectValidator,\r\n Ctx extends UseCaseContext = UseCaseContext,\r\n>(options: UseCaseWithSchema<Output, Schema, Ctx>): UseCaseHandler<Output, Infer<Schema>>;\r\nexport function useCase<Output = any, Input = any, Ctx extends UseCaseContext = UseCaseContext>(\r\n options: UseCase<Output, Input, Ctx>,\r\n): UseCaseHandler<Output, Input>;\r\nexport function useCase<Output = any, Input = any>(\r\n options: UseCase<Output, Input>,\r\n): UseCaseHandler<Output, Input> {\r\n const { name, handler, schema, guards, before, after, onExecuting, onCompleted, onError } =\r\n options;\r\n\r\n // Merge per-use-case options with global config defaults\r\n const useCaseConfig = config.get<UseCaseConfigurations>(\"use-cases\", defaultUseCaseOptions);\r\n const benchmark = options.benchmark ?? useCaseConfig?.benchmark ?? true;\r\n const retryConfig = options.retry ?? useCaseConfig?.retry;\r\n const broadcast = options.broadcast;\r\n const broadcastConfig = useCaseConfig?.broadcast;\r\n const logEnabled = useCaseConfig?.log === true;\r\n\r\n $registerUseCase(name, {\r\n ...options,\r\n calls: { success: 0, failed: 0, total: 0 },\r\n });\r\n\r\n const useCaseHandler = async (\r\n data: Input,\r\n {\r\n ctx = {},\r\n id = `uc-${name}-` + Random.string(),\r\n onExecuting: invocationOnExecuting,\r\n onCompleted: invocationOnCompleted,\r\n onError: invocationOnError,\r\n }: UseCaseRuntimeOptions = {},\r\n ): Promise<Output> => {\r\n ctx.schema = schema;\r\n ctx.id = id;\r\n\r\n const startedAt = new Date();\r\n let output: Output | undefined;\r\n let error: Error | undefined;\r\n let benchmarkResult: { latency: number; state: \"excellent\" | \"good\" | \"poor\" } | undefined;\r\n let currentRetry = 0;\r\n\r\n if (logEnabled) {\r\n log.debug(\"use-cases\", name, \"executing\", { id });\r\n }\r\n\r\n try {\r\n const transformed = await runPipeline<Input>({\r\n name,\r\n id,\r\n data,\r\n ctx,\r\n startedAt,\r\n schema,\r\n guards,\r\n before,\r\n onExecuting: invocationOnExecuting,\r\n ucOnExecuting: onExecuting,\r\n });\r\n\r\n // Benchmark wraps ONLY the handler (per attempt) so latency reflects business\r\n // logic — not the guard/validation prelude, and not the retry backoff delays.\r\n const runHandler = async (): Promise<Output> => {\r\n if (!benchmark) {\r\n return handler(transformed, ctx);\r\n }\r\n\r\n const measured = await measure(\r\n name,\r\n () => handler(transformed, ctx),\r\n benchmark === true ? undefined : benchmark,\r\n );\r\n\r\n benchmarkResult = { latency: measured.latency, state: measured.state };\r\n\r\n // measure() never throws — it returns an error result. Re-throw so retry\r\n // and the outer catch handle failures uniformly.\r\n if (!measured.success) {\r\n throw measured.error;\r\n }\r\n\r\n return measured.value;\r\n };\r\n\r\n output = retryConfig\r\n ? await runWithRetry(runHandler, {\r\n ...retryConfig,\r\n onError: (retryError, attempt) => {\r\n currentRetry = attempt;\r\n retryConfig.onError?.(retryError, attempt);\r\n },\r\n })\r\n : await runHandler();\r\n } catch (err) {\r\n error = err as Error;\r\n }\r\n\r\n const endedAt = new Date();\r\n\r\n // After middleware — fire-and-forget side effects, only on success\r\n if (!error && after && output !== undefined) {\r\n for (const middleware of after) {\r\n try {\r\n await middleware(output, ctx);\r\n } catch (afterError) {\r\n log.error(\"use-cases\", name, \"after middleware failed\", { error: afterError });\r\n }\r\n }\r\n }\r\n\r\n const snapshot: UseCaseResult<Output> = {\r\n output,\r\n ctx,\r\n startedAt,\r\n endedAt,\r\n id,\r\n name,\r\n retries: retryConfig\r\n ? { attempts: retryConfig.attempts ?? 3, delay: retryConfig.delay, currentRetry }\r\n : undefined,\r\n benchmarkResult,\r\n // Set per-branch below so the counter reflects the actual outcome —\r\n // a failure must never increment the success tally.\r\n calls: 0,\r\n };\r\n\r\n if (error) {\r\n snapshot.calls = increaseUseCaseFailedCalls(name);\r\n\r\n if (logEnabled) {\r\n log.error(\"use-cases\", name, \"failed\", { id, error });\r\n }\r\n\r\n await fireLifecycleEvent<UseCaseErrorResult>(\r\n { ...except(snapshot, [\"output\"]), error },\r\n {\r\n invocation: invocationOnError ? [invocationOnError] : undefined,\r\n useCase: onError ? [onError] : undefined,\r\n global: globalEventsCallbacksMap.onError.length\r\n ? globalEventsCallbacksMap.onError\r\n : undefined,\r\n },\r\n );\r\n\r\n throw error;\r\n }\r\n\r\n snapshot.calls = increaseUseCaseSuccessCalls(name);\r\n\r\n if (logEnabled) {\r\n log.debug(\"use-cases\", name, \"completed\", { id, latency: benchmarkResult?.latency });\r\n }\r\n\r\n await addUseCaseHistory(name, snapshot);\r\n\r\n await fireLifecycleEvent<UseCaseResult<Output>>(snapshot, {\r\n invocation: invocationOnCompleted ? [invocationOnCompleted] : undefined,\r\n useCase: onCompleted ? [onCompleted] : undefined,\r\n global: globalEventsCallbacksMap.onCompleted.length\r\n ? globalEventsCallbacksMap.onCompleted\r\n : undefined,\r\n });\r\n\r\n await broadcastUseCaseResult({\r\n name,\r\n id,\r\n output: output!,\r\n result: snapshot,\r\n broadcast,\r\n config: broadcastConfig,\r\n });\r\n\r\n return output!;\r\n };\r\n\r\n useCaseHandler.$cleanup = () => {\r\n $unregisterUseCase(name);\r\n };\r\n\r\n return useCaseHandler;\r\n}\r\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":["../../../../../../../@warlock.js/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;;;;iBAS/B,UAAA,gBAA0B,IAAA,WACJ,OAAA,CAAQ,MAAA,EAAQ,KAAA;;;;iBAMtC,WAAA,IAAW,GAAA,SAAA,iBAAA;;;AAhCgB;iBAuC3B,2BAAA,CAA4B,IAAY;;;;iBAexC,0BAAA,CAA2B,IAAY;AA7BvD;;;;;AAAA,iBAwDsB,iBAAA,CAAkB,IAAA,WAAe,OAAO,CAAC,aAAA;;;;;iBA8BzC,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 ../@warlock.js/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":["../../../../../../../@warlock.js/core/src/use-cases/use-cases-registry.ts"],"sourcesContent":["import { cache } from \"@warlock.js/cache\";\r\nimport { log } from \"@warlock.js/logger\";\r\nimport { config } from \"../config\";\r\nimport { RegisteredUseCase, UseCase, UseCaseConfigurations, UseCaseResult } from \"./types\";\r\n\r\n/**\r\n * Store registered use cases\r\n */\r\nconst useCaseRegister = new Map<string, RegisteredUseCase>();\r\n\r\n/**\r\n * Register a use case\r\n */\r\nexport function $registerUseCase<Output, Input>(\r\n name: string,\r\n useCase: RegisteredUseCase<Output, Input>,\r\n) {\r\n if (useCaseRegister.has(name) && process.env.NODE_ENV !== \"production\") {\r\n log.warn(\r\n \"use-cases\",\r\n \"registering\",\r\n `Use case \"${name}\" is already registered. Overwriting.`,\r\n );\r\n }\r\n\r\n useCaseRegister.set(name, useCase);\r\n}\r\n\r\n/**\r\n * Unregister a use case\r\n */\r\nexport function $unregisterUseCase(name: string) {\r\n useCaseRegister.delete(name);\r\n\r\n cache.removeNamespace(`use-case:history:${name}`);\r\n}\r\n\r\n/**\r\n * Get a use case\r\n */\r\nexport function getUseCase<Output, Input>(name: string) {\r\n return useCaseRegister.get(name) as UseCase<Output, Input> | undefined;\r\n}\r\n\r\n/**\r\n * Get all use cases\r\n */\r\nexport function getUseCases() {\r\n return useCaseRegister;\r\n}\r\n\r\n/**\r\n * Increase use case success calls\r\n */\r\nexport function increaseUseCaseSuccessCalls(name: string): number {\r\n const useCase = useCaseRegister.get(name);\r\n if (useCase) {\r\n useCase.calls.success++;\r\n useCase.calls.total++;\r\n\r\n return useCase.calls.success;\r\n }\r\n\r\n return 0;\r\n}\r\n\r\n/**\r\n * Increase use case failed calls\r\n */\r\nexport function increaseUseCaseFailedCalls(name: string): number {\r\n const useCase = useCaseRegister.get(name);\r\n if (useCase) {\r\n useCase.calls.failed++;\r\n useCase.calls.total++;\r\n\r\n return useCase.calls.failed;\r\n }\r\n\r\n return 0;\r\n}\r\n\r\n/**\r\n * Resolve the history cache TTL (seconds) from config.\r\n * `false` means \"use the cache driver's default\", represented as `undefined`.\r\n */\r\nfunction resolveHistoryTtl(useCaseConfig?: UseCaseConfigurations): number | undefined {\r\n const ttlConfig = useCaseConfig?.history?.ttl ?? 3600; // 1 hour default\r\n\r\n return ttlConfig === false ? undefined : ttlConfig;\r\n}\r\n\r\n/**\r\n * Get use case history from cache.\r\n *\r\n * Prunes ids whose entries have expired so the list can't accumulate dead refs.\r\n */\r\nexport async function getUseCaseHistory(name: string): Promise<UseCaseResult<any>[]> {\r\n const listKey = `use-case:history:${name}:list`;\r\n const ids = (await cache.get<string[]>(listKey)) || [];\r\n\r\n const entries = await Promise.all(\r\n ids.map(async (id: string) => ({\r\n id,\r\n result: await cache.get<UseCaseResult<any>>(`use-case:history:${name}:${id}`),\r\n })),\r\n );\r\n\r\n const liveEntries = entries.filter((entry) => Boolean(entry.result));\r\n\r\n if (liveEntries.length !== ids.length) {\r\n const useCaseConfig = config.get<UseCaseConfigurations>(\"use-cases\");\r\n\r\n await cache.set(\r\n listKey,\r\n liveEntries.map((entry) => entry.id),\r\n resolveHistoryTtl(useCaseConfig),\r\n );\r\n }\r\n\r\n return liveEntries.map((entry) => entry.result) as UseCaseResult<any>[];\r\n}\r\n\r\n/**\r\n * Add use case history to cache, capping the per-use-case list so it can't grow\r\n * unbounded — oldest entries (and their ids) are evicted past MAX_HISTORY_ENTRIES.\r\n */\r\nexport async function addUseCaseHistory(name: string, result: UseCaseResult<any>) {\r\n const useCaseConfig = config.get<UseCaseConfigurations>(\"use-cases\");\r\n\r\n if (useCaseConfig?.history?.enabled === false) return;\r\n\r\n const ttl = resolveHistoryTtl(useCaseConfig);\r\n const maxEntries = useCaseConfig?.history?.maxEntries ?? 100;\r\n const key = `use-case:history:${name}:${result.id}`;\r\n const listKey = `use-case:history:${name}:list`;\r\n\r\n await cache.set(key, result, ttl);\r\n\r\n const list = (await cache.get<string[]>(listKey)) || [];\r\n\r\n list.push(result.id);\r\n\r\n while (list.length > maxEntries) {\r\n const evictedId = list.shift();\r\n\r\n if (evictedId) {\r\n await cache.remove(`use-case:history:${name}:${evictedId}`);\r\n }\r\n }\r\n\r\n await cache.set(listKey, list, ttl);\r\n}\r\n"],"mappings":";;;;;;;;;AAQA,MAAM,kCAAkB,IAAI,IAA+B;;;;AAK3D,SAAgB,iBACd,MACA,SACA;CACA,IAAI,gBAAgB,IAAI,IAAI,KAAK,QAAQ,IAAI,aAAa,cACxD,IAAI,KACF,aACA,eACA,aAAa,KAAK,sCACpB;CAGF,gBAAgB,IAAI,MAAM,OAAO;AACnC;;;;AAKA,SAAgB,mBAAmB,MAAc;CAC/C,gBAAgB,OAAO,IAAI;CAE3B,MAAM,gBAAgB,oBAAoB,MAAM;AAClD;;;;AAKA,SAAgB,WAA0B,MAAc;CACtD,OAAO,gBAAgB,IAAI,IAAI;AACjC;;;;AAKA,SAAgB,cAAc;CAC5B,OAAO;AACT;;;;AAKA,SAAgB,4BAA4B,MAAsB;CAChE,MAAM,UAAU,gBAAgB,IAAI,IAAI;CACxC,IAAI,SAAS;EACX,QAAQ,MAAM;EACd,QAAQ,MAAM;EAEd,OAAO,QAAQ,MAAM;CACvB;CAEA,OAAO;AACT;;;;AAKA,SAAgB,2BAA2B,MAAsB;CAC/D,MAAM,UAAU,gBAAgB,IAAI,IAAI;CACxC,IAAI,SAAS;EACX,QAAQ,MAAM;EACd,QAAQ,MAAM;EAEd,OAAO,QAAQ,MAAM;CACvB;CAEA,OAAO;AACT;;;;;AAMA,SAAS,kBAAkB,eAA2D;CACpF,MAAM,YAAY,eAAe,SAAS,OAAO;CAEjD,OAAO,cAAc,QAAQ,SAAY;AAC3C;;;;;;AAOA,eAAsB,kBAAkB,MAA6C;CACnF,MAAM,UAAU,oBAAoB,KAAK;CACzC,MAAM,MAAO,MAAM,MAAM,IAAc,OAAO,KAAM,CAAC;CASrD,MAAM,eAAc,MAPE,QAAQ,IAC5B,IAAI,IAAI,OAAO,QAAgB;EAC7B;EACA,QAAQ,MAAM,MAAM,IAAwB,oBAAoB,KAAK,GAAG,IAAI;CAC9E,EAAE,CACJ,EAE2B,CAAC,QAAQ,UAAU,QAAQ,MAAM,MAAM,CAAC;CAEnE,IAAI,YAAY,WAAW,IAAI,QAAQ;EACrC,MAAM,gBAAgB,OAAO,IAA2B,WAAW;EAEnE,MAAM,MAAM,IACV,SACA,YAAY,KAAK,UAAU,MAAM,EAAE,GACnC,kBAAkB,aAAa,CACjC;CACF;CAEA,OAAO,YAAY,KAAK,UAAU,MAAM,MAAM;AAChD;;;;;AAMA,eAAsB,kBAAkB,MAAc,QAA4B;CAChF,MAAM,gBAAgB,OAAO,IAA2B,WAAW;CAEnE,IAAI,eAAe,SAAS,YAAY,OAAO;CAE/C,MAAM,MAAM,kBAAkB,aAAa;CAC3C,MAAM,aAAa,eAAe,SAAS,cAAc;CACzD,MAAM,MAAM,oBAAoB,KAAK,GAAG,OAAO;CAC/C,MAAM,UAAU,oBAAoB,KAAK;CAEzC,MAAM,MAAM,IAAI,KAAK,QAAQ,GAAG;CAEhC,MAAM,OAAQ,MAAM,MAAM,IAAc,OAAO,KAAM,CAAC;CAEtD,KAAK,KAAK,OAAO,EAAE;CAEnB,OAAO,KAAK,SAAS,YAAY;EAC/B,MAAM,YAAY,KAAK,MAAM;EAE7B,IAAI,WACF,MAAM,MAAM,OAAO,oBAAoB,KAAK,GAAG,WAAW;CAE9D;CAEA,MAAM,MAAM,IAAI,SAAS,MAAM,GAAG;AACpC"}
|
package/esm/utils/app-log.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region
|
|
1
|
+
//#region ../@warlock.js/core/src/utils/app-log.d.ts
|
|
2
2
|
declare const appLog: {
|
|
3
3
|
info: (module: string, message: string) => Promise<import("@warlock.js/logger").Logger>;
|
|
4
4
|
error: (module: string, message: string) => Promise<import("@warlock.js/logger").Logger>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-log.d.mts","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"app-log.d.mts","names":[],"sources":["../../../../../../../@warlock.js/core/src/utils/app-log.ts"],"mappings":";cAEa,MAAA;yBACU,OAAA,aAAiB,OAAA,8BAAA,MAAA;0BAChB,OAAA,aAAiB,OAAA,8BAAA,MAAA;yBAClB,OAAA,aAAiB,OAAA,8BAAA,MAAA;0BAChB,OAAA,aAAiB,OAAA,8BAAA,MAAA;4BACf,OAAA,aAAiB,OAAA,8BAAA,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 ../@warlock.js/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":["../../../../../../../@warlock.js/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) =>\n 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,YACxB,IAAI,QAAQ,OAAO,QAAQ,OAAO;AACtC"}
|
|
@@ -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 ../@warlock.js/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":["../../../../../../../@warlock.js/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 ../@warlock.js/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":["../../../../../../../@warlock.js/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 } else {\n data.content = message;\n data.stack = new Error().stack;\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,OAAO;GACL,KAAK,UAAU;GACf,KAAK,yBAAQ,IAAI,MAAM,EAAC,CAAC;EAC3B;EAEA,IAAI;GACF,MAAM,KAAK,MAAM,OAAO,IAAI;EAC9B,SAAS,OAAO;GACd,QAAQ,IAAI,SAAS,KAAK;EAC5B;CACF;AACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region
|
|
1
|
+
//#region ../@warlock.js/core/src/utils/environment.d.ts
|
|
2
2
|
type Environment = "development" | "production" | "test";
|
|
3
3
|
declare function environment(): Environment;
|
|
4
4
|
declare function setEnvironment(env: Environment): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.d.mts","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"environment.d.mts","names":[],"sources":["../../../../../../../@warlock.js/core/src/utils/environment.ts"],"mappings":";KAAY,WAAA;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":["../../../../../../../@warlock.js/core/src/utils/environment.ts"],"sourcesContent":["export type Environment = \"development\" | \"production\" | \"test\";\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":";AAEA,SAAgB,cAA2B;CACzC,OAAQ,QAAQ,IAAI,YAA4B;AAClD;AAEA,SAAgB,eAAe,KAAkB;CAC/C,QAAQ,IAAI,WAAW;AACzB"}
|
|
@@ -1,24 +1,15 @@
|
|
|
1
1
|
import { getJsonFileAsync } from "@warlock.js/fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
|
|
4
|
-
//#region
|
|
4
|
+
//#region ../@warlock.js/core/src/utils/framework-vesion.ts
|
|
5
5
|
/**
|
|
6
6
|
* Cached version string
|
|
7
7
|
*/
|
|
8
8
|
let cachedVersion = null;
|
|
9
|
-
/**
|
|
10
|
-
* Get the framework version from package.json (cached)
|
|
11
|
-
*/
|
|
12
|
-
async function getWarlockVersion() {
|
|
13
|
-
if (cachedVersion) return cachedVersion;
|
|
14
|
-
const version = (await getJsonFileAsync(path.join(import.meta.dirname, "./../../package.json"))).version.replace(/\^|\~/g, "");
|
|
15
|
-
cachedVersion = version;
|
|
16
|
-
return version;
|
|
17
|
-
}
|
|
18
9
|
function getFrameworkVersion() {
|
|
19
10
|
return cachedVersion;
|
|
20
11
|
}
|
|
21
12
|
|
|
22
13
|
//#endregion
|
|
23
|
-
export { getFrameworkVersion
|
|
14
|
+
export { getFrameworkVersion };
|
|
24
15
|
//# sourceMappingURL=framework-vesion.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framework-vesion.mjs","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"framework-vesion.mjs","names":[],"sources":["../../../../../../../@warlock.js/core/src/utils/framework-vesion.ts"],"sourcesContent":["import { getJsonFileAsync } from \"@warlock.js/fs\";\r\nimport path from \"node:path\";\r\n\r\n/**\r\n * Cached version string\r\n */\r\nlet cachedVersion: string | null = null;\r\n\r\n/**\r\n * Get the framework version from package.json (cached)\r\n */\r\nexport async function getWarlockVersion(): Promise<string> {\r\n if (cachedVersion) return cachedVersion;\r\n\r\n const frameworkPackageJson = (await getJsonFileAsync(\r\n path.join(import.meta.dirname, \"./../../package.json\"),\r\n )) as { version: string };\r\n\r\n const version = frameworkPackageJson.version.replace(/\\^|\\~/g, \"\");\r\n cachedVersion = version;\r\n return version;\r\n}\r\n\r\nexport function getFrameworkVersion(): string | null {\r\n return cachedVersion;\r\n}\r\n"],"mappings":";;;;;;;AAMA,IAAI,gBAA+B;AAiBnC,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":["../../../../../../../@warlock.js/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 ../@warlock.js/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":["../../../../../../../@warlock.js/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"}
|
package/esm/utils/paths.d.mts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.mts","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"paths.d.mts","names":[],"sources":["../../../../../../../@warlock.js/core/src/utils/paths.ts"],"mappings":";;AAMA;;iBAAgB,QAAA,IAAY,KAAK;;AAAA;AAOjC;iBAAgB,OAAA,IAAW,KAAK;;;AAAA;AAShC;;iBAAgB,WAAA,CAAY,YAAiB;;AAAA;AAS7C;;;iBAAgB,WAAA,CAAY,YAAiB;AAAA;AAgB7C;;;;AAhB6C,iBAgB7B,UAAA,CAAW,YAAiB;AAS5C;;;;AAA2C;AAA3C,iBAAgB,SAAA,CAAU,YAAiB;;;;iBAO3B,OAAA,CAAQ,YAAiB;AAOzC;;;AAAA,iBAAgB,QAAA,CAAS,YAAiB;AAAA;AAO1C;;AAP0C,iBAO1B,QAAA,CAAS,YAAiB;AAAA,iBAS1B,YAAA,CAAa,QAAgB;AATH;AAS1C;;;AAT0C,iBAiB1B,WAAA,IAAe,IAAI;AARU;AAQ7C;;AAR6C,iBAe7B,UAAA,IAAc,IAAI;AAAA,cAIrB,KAAA"}
|
package/esm/utils/paths.mjs
CHANGED
package/esm/utils/paths.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.mjs","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"paths.mjs","names":[],"sources":["../../../../../../../@warlock.js/core/src/utils/paths.ts"],"sourcesContent":["import config from \"@mongez/config\";\r\nimport path from \"path\";\r\n\r\n/**\r\n * Get root path or join the given paths to the root path\r\n */\r\nexport function rootPath(...paths: string[]) {\r\n return path.resolve(process.cwd(), ...paths);\r\n}\r\n\r\n/**\r\n * Get src directory path or join the given paths to the src directory path\r\n */\r\nexport function srcPath(...paths: string[]) {\r\n return rootPath(\"src\", ...paths);\r\n}\r\n\r\n/**\r\n * Get the absolute path to the storage folder to the given path\r\n *\r\n * If no path is given, it will return the absolute path to the storage folder\r\n */\r\nexport function storagePath(relativePath = \"\") {\r\n return rootPath(\"storage\", relativePath);\r\n}\r\n\r\n/**\r\n * Get the absolute path to the uploads folder to the given path\r\n *\r\n * If no path is given, it will return the absolute path to the uploads folder\r\n */\r\nexport function uploadsPath(relativePath = \"\") {\r\n const configPath = config.get(\"uploads.root\");\r\n if (!configPath) {\r\n return rootPath(\"storage\", \"uploads\", relativePath);\r\n }\r\n\r\n return typeof configPath === \"function\"\r\n ? configPath(relativePath)\r\n : path.resolve(configPath, relativePath);\r\n}\r\n\r\n/**\r\n * Get the absolute path to the public folder to the given path\r\n *\r\n * If no path is given, it will return the absolute path to the public folder\r\n */\r\nexport function publicPath(relativePath = \"\") {\r\n return rootPath(\"public\", relativePath);\r\n}\r\n\r\n/**\r\n * Get the absolute path to the cache folder to the given path\r\n *\r\n * If no path is given, it will return the absolute path to the cache folder\r\n */\r\nexport function cachePath(relativePath = \"\") {\r\n return rootPath(\"storage\", \"cache\", relativePath);\r\n}\r\n\r\n/**\r\n * App path\r\n */\r\nexport function appPath(relativePath = \"\") {\r\n return rootPath(\"src/app\", relativePath);\r\n}\r\n\r\n/**\r\n * Get logs directory path\r\n */\r\nexport function logsPath(relativePath = \"\") {\r\n return rootPath(\"storage/logs\", relativePath);\r\n}\r\n\r\n/**\r\n * Get a temp path\r\n */\r\nexport function tempPath(relativePath = \"\") {\r\n return rootPath(\"storage/tmp\", relativePath);\r\n}\r\n\r\n/**\r\n * Remove any invalid characters from the file path using regex\r\n * It should accept any language character, numbers, and the following characters: _ - .\r\n */\r\nconst invalidCharsRegex = /[<>:\"/\\\\|?*]/g; // Regex to match invalid characters\r\nexport function sanitizePath(filePath: string) {\r\n return filePath.replace(invalidCharsRegex, \"\"); // Replace invalid characters with an empty string\r\n}\r\n\r\n/**\r\n * Warlock path\r\n * PLEASE DO NOT add any files in this directory as it may be deleted\r\n */\r\nexport function warlockPath(...path: string[]) {\r\n return rootPath(\".warlock\", ...path);\r\n}\r\n\r\n/**\r\n * Get config directory path\r\n */\r\nexport function configPath(...path: string[]) {\r\n return rootPath(\"src/config\", ...path);\r\n}\r\n\r\nexport const paths = {\r\n root: rootPath,\r\n src: srcPath,\r\n storage: storagePath,\r\n logs: logsPath,\r\n uploads: uploadsPath,\r\n public: publicPath,\r\n cache: cachePath,\r\n app: appPath,\r\n temp: tempPath,\r\n warlock: warlockPath,\r\n config: configPath,\r\n sanitize: sanitizePath,\r\n};\r\n"],"mappings":";;;;;;;AAMA,SAAgB,SAAS,GAAG,OAAiB;CAC3C,OAAO,KAAK,QAAQ,QAAQ,IAAI,GAAG,GAAG,KAAK;AAC7C;;;;AAKA,SAAgB,QAAQ,GAAG,OAAiB;CAC1C,OAAO,SAAS,OAAO,GAAG,KAAK;AACjC;;;;;;AAOA,SAAgB,YAAY,eAAe,IAAI;CAC7C,OAAO,SAAS,WAAW,YAAY;AACzC;;;;;;AAOA,SAAgB,YAAY,eAAe,IAAI;CAC7C,MAAM,aAAa,OAAO,IAAI,cAAc;CAC5C,IAAI,CAAC,YACH,OAAO,SAAS,WAAW,WAAW,YAAY;CAGpD,OAAO,OAAO,eAAe,aACzB,WAAW,YAAY,IACvB,KAAK,QAAQ,YAAY,YAAY;AAC3C;;;;;;AAOA,SAAgB,WAAW,eAAe,IAAI;CAC5C,OAAO,SAAS,UAAU,YAAY;AACxC;;;;;;AAOA,SAAgB,UAAU,eAAe,IAAI;CAC3C,OAAO,SAAS,WAAW,SAAS,YAAY;AAClD;;;;AAKA,SAAgB,QAAQ,eAAe,IAAI;CACzC,OAAO,SAAS,WAAW,YAAY;AACzC;;;;AAKA,SAAgB,SAAS,eAAe,IAAI;CAC1C,OAAO,SAAS,gBAAgB,YAAY;AAC9C;;;;AAKA,SAAgB,SAAS,eAAe,IAAI;CAC1C,OAAO,SAAS,eAAe,YAAY;AAC7C;;;;;AAMA,MAAM,oBAAoB;AAC1B,SAAgB,aAAa,UAAkB;CAC7C,OAAO,SAAS,QAAQ,mBAAmB,EAAE;AAC/C;;;;;AAMA,SAAgB,YAAY,GAAG,MAAgB;CAC7C,OAAO,SAAS,YAAY,GAAG,IAAI;AACrC;;;;AAKA,SAAgB,WAAW,GAAG,MAAgB;CAC5C,OAAO,SAAS,cAAc,GAAG,IAAI;AACvC;AAEA,MAAa,QAAQ;CACnB,MAAM;CACN,KAAK;CACL,SAAS;CACT,MAAM;CACN,SAAS;CACT,QAAQ;CACR,OAAO;CACP,KAAK;CACL,MAAM;CACN,SAAS;CACT,QAAQ;CACR,UAAU;AACZ"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region
|
|
1
|
+
//#region ../@warlock.js/core/src/utils/promise-all-object.d.ts
|
|
2
2
|
/**
|
|
3
3
|
* Resolve all of the given promises in the object and return the results as an object.
|
|
4
4
|
* This is more convenient than using `Promise.all` and then mapping the results back to the keys.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise-all-object.d.mts","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"promise-all-object.d.mts","names":[],"sources":["../../../../../../../@warlock.js/core/src/utils/promise-all-object.ts"],"mappings":";;AAIA;;;iBAAsB,gBAAA,WAA2B,MAAA,SAAe,OAAA,QAC9D,QAAA,EAAU,CAAA,GACT,OAAA,eAAsB,CAAA,GAAI,CAAA,CAAE,CAAA,UAAW,OAAA,YAAmB,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region
|
|
1
|
+
//#region ../@warlock.js/core/src/utils/promise-all-object.ts
|
|
2
2
|
/**
|
|
3
3
|
* Resolve all of the given promises in the object and return the results as an object.
|
|
4
4
|
* This is more convenient than using `Promise.all` and then mapping the results back to the keys.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise-all-object.mjs","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"promise-all-object.mjs","names":[],"sources":["../../../../../../../@warlock.js/core/src/utils/promise-all-object.ts"],"sourcesContent":["/**\n * Resolve all of the given promises in the object and return the results as an object.\n * This is more convenient than using `Promise.all` and then mapping the results back to the keys.\n */\nexport async function promiseAllObject<T extends Record<string, Promise<any>>>(\n promises: T,\n): Promise<{ [K in keyof T]: T[K] extends Promise<infer U> ? U : never }> {\n const results = await Promise.all(Object.values(promises));\n const keys = Object.keys(promises);\n\n return keys.reduce(\n (result, key, index) => {\n (result as any)[key] = results[index];\n return result;\n },\n {} as { [K in keyof T]: T[K] extends Promise<infer U> ? U : never },\n );\n}\n"],"mappings":";;;;;AAIA,eAAsB,iBACpB,UACwE;CACxE,MAAM,UAAU,MAAM,QAAQ,IAAI,OAAO,OAAO,QAAQ,CAAC;CAGzD,OAFa,OAAO,KAAK,QAEf,CAAC,CAAC,QACT,QAAQ,KAAK,UAAU;EACtB,AAAC,OAAe,OAAO,QAAQ;EAC/B,OAAO;CACT,GACA,CAAC,CACH;AACF"}
|
package/esm/utils/queue.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region
|
|
1
|
+
//#region ../@warlock.js/core/src/utils/queue.d.ts
|
|
2
2
|
/**
|
|
3
3
|
* A utility class for managing a queue of operations.
|
|
4
4
|
* Allows enqueuing values and executing a function when the queue reaches a certain size or after a specified interval.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.mts","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"queue.d.mts","names":[],"sources":["../../../../../../../@warlock.js/core/src/utils/queue.ts"],"mappings":";;AAKA;;;;cAAa,KAAA;EAqDU;EAAA,QAnDb,KAAA;EAmDc;EAAA,iBAhDL,OAAA;EAHT;EAAA,iBAMS,QAAA;EAAA;EAAA,iBAGA,SAAA;EAGT;EAAA,QAAA,KAAA;EAMS;EAAA,iBAHA,iBAAA;;mBAGA,SAAA;EAcH;EAAA,QAXN,WAAA;EAWN;;;;;;;;cAAA,SAAA,GAAY,KAAA,EAAO,CAAA,OAAQ,OAAA,QAC3B,iBAAA,uBACA,YAAA,sBACA,SAAA,UACA,OAAA;EAyCY;;AAAO;;;;EA1Bd,OAAA,CAAQ,IAAA,EAAM,CAAA;;;;UAcb,UAAA;;;;;UAYM,OAAA;AAAA"}
|
package/esm/utils/queue.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region
|
|
1
|
+
//#region ../@warlock.js/core/src/utils/queue.ts
|
|
2
2
|
/**
|
|
3
3
|
* A utility class for managing a queue of operations.
|
|
4
4
|
* Allows enqueuing values and executing a function when the queue reaches a certain size or after a specified interval.
|
package/esm/utils/queue.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.mjs","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"queue.mjs","names":[],"sources":["../../../../../../../@warlock.js/core/src/utils/queue.ts"],"sourcesContent":["/**\n * A utility class for managing a queue of operations.\n * Allows enqueuing values and executing a function when the queue reaches a certain size or after a specified interval.\n * Supports both parallel and sequential execution of the queued operations.\n */\nexport class Queue<T> {\n /** The items currently in the queue. */\n private items: T[] = [];\n\n /** The maximum size of the queue before triggering execution. */\n private readonly maxSize?: number;\n\n /** The interval in milliseconds after which the queue will be executed if not already triggered by size. */\n private readonly interval: number;\n\n /** The function to execute with the items in the queue. */\n private readonly executeFn: (items: T[]) => Promise<void>;\n\n /** Timer for managing the interval-based execution. */\n private timer: NodeJS.Timeout | null = null;\n\n /** Flag to determine if execution should be parallel or sequential. */\n private readonly executeInParallel: boolean;\n\n /** The batch size for processing items. */\n private readonly batchSize: number;\n\n /** Whether the current queue is busy executing */\n private isExecuting = false;\n\n /**\n * Constructs a new Queue instance.\n * @param executeFn - The function to execute with the items in the queue.\n * @param maxSize - The maximum number of items before the queue is executed.\n * @param executeEvery - The time in milliseconds after which the queue is executed if not already triggered.\n * @param executeInParallel - Whether to execute the function in parallel or sequentially.\n * @param batchSize - The number of items to process in each batch.\n */\n public constructor(\n executeFn: (items: T[]) => Promise<void>,\n executeInParallel: boolean = true,\n executeEvery: number = 5000,\n batchSize: number,\n maxSize?: number,\n ) {\n this.executeFn = executeFn;\n this.maxSize = maxSize;\n this.interval = executeEvery;\n this.executeInParallel = executeInParallel;\n this.batchSize = batchSize;\n }\n\n /**\n * Adds an item to the queue.\n * Triggers execution if the queue reaches the maximum size.\n * Starts a timer if not already running.\n * @param item - The item to add to the queue.\n */\n public enqueue(item: T): void {\n this.items.push(item);\n if (this.maxSize && this.items.length >= this.maxSize) {\n this.execute();\n }\n\n if (!this.timer) {\n this.startTimer();\n }\n }\n\n /**\n * Starts a timer to execute the queue after the specified interval.\n */\n private startTimer(): void {\n this.timer = setInterval(() => {\n if (this.items.length > 0) {\n this.execute();\n }\n }, this.interval);\n }\n\n /**\n * Executes the function with the current items in the queue.\n * Processes items in batches and resets the timer.\n */\n private async execute(): Promise<void> {\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = null;\n }\n\n this.isExecuting = true;\n\n // Now there are couple scenarios:\n // 1. Batch size has value, we need to check if its going to be executed in parallel or sequentially\n // 2. Batch size is not provided, we will execute all items in a single call\n if (this.batchSize) {\n const itemsToProcess = this.items.splice(0, this.batchSize);\n if (this.executeInParallel) {\n await Promise.all(itemsToProcess.map(item => this.executeFn([item])));\n } else {\n for (const item of itemsToProcess) {\n await this.executeFn([item]);\n }\n }\n }\n\n this.isExecuting = false;\n }\n}\n"],"mappings":";;;;;;AAKA,IAAa,QAAb,MAAsB;;;;;;;;;CAiCpB,AAAO,YACL,WACA,oBAA6B,MAC7B,eAAuB,KACvB,WACA,SACA;eArCmB,CAAC;eAYiB;qBASjB;EAiBpB,KAAK,YAAY;EACjB,KAAK,UAAU;EACf,KAAK,WAAW;EAChB,KAAK,oBAAoB;EACzB,KAAK,YAAY;CACnB;;;;;;;CAQA,AAAO,QAAQ,MAAe;EAC5B,KAAK,MAAM,KAAK,IAAI;EACpB,IAAI,KAAK,WAAW,KAAK,MAAM,UAAU,KAAK,SAC5C,KAAK,QAAQ;EAGf,IAAI,CAAC,KAAK,OACR,KAAK,WAAW;CAEpB;;;;CAKA,AAAQ,aAAmB;EACzB,KAAK,QAAQ,kBAAkB;GAC7B,IAAI,KAAK,MAAM,SAAS,GACtB,KAAK,QAAQ;EAEjB,GAAG,KAAK,QAAQ;CAClB;;;;;CAMA,MAAc,UAAyB;EACrC,IAAI,KAAK,OAAO;GACd,cAAc,KAAK,KAAK;GACxB,KAAK,QAAQ;EACf;EAEA,KAAK,cAAc;EAKnB,IAAI,KAAK,WAAW;GAClB,MAAM,iBAAiB,KAAK,MAAM,OAAO,GAAG,KAAK,SAAS;GAC1D,IAAI,KAAK,mBACP,MAAM,QAAQ,IAAI,eAAe,KAAI,SAAQ,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpE,KAAK,MAAM,QAAQ,gBACjB,MAAM,KAAK,UAAU,CAAC,IAAI,CAAC;EAGjC;EAEA,KAAK,cAAc;CACrB;AACF"}
|
package/esm/utils/sleep.d.mts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sleep.d.mts","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"sleep.d.mts","names":[],"sources":["../../../../../../../@warlock.js/core/src/utils/sleep.ts"],"mappings":";iBAAgB,KAAA,CAAM,EAAA,WAAU,OAAA"}
|
package/esm/utils/sleep.mjs
CHANGED
package/esm/utils/sleep.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sleep.mjs","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"sleep.mjs","names":[],"sources":["../../../../../../../@warlock.js/core/src/utils/sleep.ts"],"sourcesContent":["export function sleep(ms: number) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n"],"mappings":";AAAA,SAAgB,MAAM,IAAY;CAChC,OAAO,IAAI,SAAQ,YAAW,WAAW,SAAS,EAAE,CAAC;AACvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sluggable.d.mts","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"sluggable.d.mts","names":[],"sources":["../../../../../../../@warlock.js/core/src/utils/sluggable.ts"],"mappings":";;;;;AAMA;iBAAgB,SAAA,CAAU,YAAA,UAAsB,cAAA,aACtC,KAAA,EAAO,KAAK"}
|
package/esm/utils/sluggable.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sluggable.mjs","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"sluggable.mjs","names":[],"sources":["../../../../../../../@warlock.js/core/src/utils/sluggable.ts"],"sourcesContent":["import slug from \"@mongez/slug\";\nimport type { Model } from \"@warlock.js/cascade\";\n\n/**\n * Used for model castings\n */\nexport function sluggable(generateFrom: string, slugLocaleCode = \"en\") {\n return (model: Model) => {\n let value = model.get(generateFrom);\n\n if (!value) return \"\";\n\n if (Array.isArray(value)) {\n value = (value as any[]).find((value) => value.localeCode === slugLocaleCode)?.value;\n }\n\n const slugFunction = (slug as any).default || slug;\n\n return slugFunction(String(value));\n };\n}\n"],"mappings":";;;;;;AAMA,SAAgB,UAAU,cAAsB,iBAAiB,MAAM;CACrE,QAAQ,UAAiB;EACvB,IAAI,QAAQ,MAAM,IAAI,YAAY;EAElC,IAAI,CAAC,OAAO,OAAO;EAEnB,IAAI,MAAM,QAAQ,KAAK,GACrB,QAAS,MAAgB,MAAM,UAAU,MAAM,eAAe,cAAc,CAAC,EAAE;EAKjF,QAFsB,KAAa,WAAW,KAE3B,CAAC,OAAO,KAAK,CAAC;CACnC;AACF"}
|
package/esm/utils/to-json.d.mts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-json.d.mts","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"to-json.d.mts","names":[],"sources":["../../../../../../../@warlock.js/core/src/utils/to-json.ts"],"mappings":";iBAEsB,MAAA,CAAO,KAAA,QAAa,OAAO"}
|
package/esm/utils/to-json.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isIterable, isPlainObject, isScalar } from "@mongez/supportive-is";
|
|
2
2
|
|
|
3
|
-
//#region
|
|
3
|
+
//#region ../@warlock.js/core/src/utils/to-json.ts
|
|
4
4
|
async function toJson(value) {
|
|
5
5
|
if (!value || isScalar(value)) return value;
|
|
6
6
|
if (value.toJSON) return await value.toJSON();
|