stratal 0.0.1 → 0.0.2
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/README.md +101 -25
- package/dist/application.d.ts +0 -1
- package/dist/application.d.ts.map +1 -1
- package/dist/application.js +1 -2
- package/dist/application.js.map +1 -1
- package/dist/cache/errors/cache-delete.error.d.ts +1 -1
- package/dist/cache/errors/cache-delete.error.d.ts.map +1 -1
- package/dist/cache/errors/cache-delete.error.js +1 -1
- package/dist/cache/errors/cache-delete.error.js.map +1 -1
- package/dist/cache/errors/cache-get.error.d.ts +1 -1
- package/dist/cache/errors/cache-get.error.d.ts.map +1 -1
- package/dist/cache/errors/cache-get.error.js +1 -1
- package/dist/cache/errors/cache-get.error.js.map +1 -1
- package/dist/cache/errors/cache-list.error.d.ts +1 -1
- package/dist/cache/errors/cache-list.error.d.ts.map +1 -1
- package/dist/cache/errors/cache-list.error.js +1 -1
- package/dist/cache/errors/cache-list.error.js.map +1 -1
- package/dist/cache/errors/cache-put.error.d.ts +1 -1
- package/dist/cache/errors/cache-put.error.d.ts.map +1 -1
- package/dist/cache/errors/cache-put.error.js +1 -1
- package/dist/cache/errors/cache-put.error.js.map +1 -1
- package/dist/config/config.types.d.ts +2 -2
- package/dist/config/errors/config-not-initialized.error.d.ts +1 -1
- package/dist/config/errors/config-not-initialized.error.d.ts.map +1 -1
- package/dist/config/errors/config-not-initialized.error.js +1 -1
- package/dist/config/errors/config-not-initialized.error.js.map +1 -1
- package/dist/config/services/config.service.d.ts +6 -5
- package/dist/config/services/config.service.d.ts.map +1 -1
- package/dist/config/services/config.service.js +25 -8
- package/dist/config/services/config.service.js.map +1 -1
- package/dist/cron/cron-job.d.ts +5 -6
- package/dist/cron/cron-job.d.ts.map +1 -1
- package/dist/cron/errors/cron-execution.error.d.ts +1 -1
- package/dist/cron/errors/cron-execution.error.d.ts.map +1 -1
- package/dist/cron/errors/cron-execution.error.js +1 -1
- package/dist/cron/errors/cron-execution.error.js.map +1 -1
- package/dist/di/container.d.ts +0 -4
- package/dist/di/container.d.ts.map +1 -1
- package/dist/di/container.js +0 -4
- package/dist/di/container.js.map +1 -1
- package/dist/di/decorators.d.ts +1 -1
- package/dist/di/decorators.js +1 -1
- package/dist/di/errors/conditional-binding-fallback.error.d.ts +1 -1
- package/dist/di/errors/conditional-binding-fallback.error.d.ts.map +1 -1
- package/dist/di/errors/conditional-binding-fallback.error.js +1 -1
- package/dist/di/errors/conditional-binding-fallback.error.js.map +1 -1
- package/dist/di/errors/request-scope-operation-not-allowed.error.d.ts +1 -1
- package/dist/di/errors/request-scope-operation-not-allowed.error.d.ts.map +1 -1
- package/dist/di/errors/request-scope-operation-not-allowed.error.js +1 -1
- package/dist/di/errors/request-scope-operation-not-allowed.error.js.map +1 -1
- package/dist/email/consumers/email.consumer.d.ts.map +1 -1
- package/dist/email/consumers/email.consumer.js +1 -5
- package/dist/email/consumers/email.consumer.js.map +1 -1
- package/dist/email/services/email.service.d.ts +1 -1
- package/dist/email/services/email.service.js +1 -1
- package/dist/errors/application-error.d.ts +1 -1
- package/dist/errors/application-error.d.ts.map +1 -1
- package/dist/errors/error-codes.d.ts +0 -2
- package/dist/errors/error-codes.d.ts.map +1 -1
- package/dist/errors/error-codes.js +0 -2
- package/dist/errors/error-codes.js.map +1 -1
- package/dist/errors/error-response.d.ts.map +1 -0
- package/dist/errors/error-response.js.map +1 -0
- package/dist/{infrastructure/error-handler → errors}/global-error-handler.d.ts +3 -3
- package/dist/errors/global-error-handler.d.ts.map +1 -0
- package/dist/{infrastructure/error-handler → errors}/global-error-handler.js +5 -5
- package/dist/errors/global-error-handler.js.map +1 -0
- package/dist/errors/index.d.ts +4 -0
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +4 -0
- package/dist/errors/index.js.map +1 -1
- package/dist/{infrastructure/error-handler → errors}/internal-error.d.ts +1 -1
- package/dist/errors/internal-error.d.ts.map +1 -0
- package/dist/{infrastructure/error-handler → errors}/internal-error.js +2 -2
- package/dist/errors/internal-error.js.map +1 -0
- package/dist/{infrastructure/errors → errors}/request-container-not-initialized.error.d.ts +1 -1
- package/dist/errors/request-container-not-initialized.error.d.ts.map +1 -0
- package/dist/{infrastructure/errors → errors}/request-container-not-initialized.error.js +2 -2
- package/dist/errors/request-container-not-initialized.error.js.map +1 -0
- package/dist/guards/types.d.ts +1 -1
- package/dist/guards/use-guards.decorator.d.ts +4 -4
- package/dist/guards/use-guards.decorator.js +4 -4
- package/dist/i18n/errors/locale-not-supported.error.d.ts +1 -1
- package/dist/i18n/errors/locale-not-supported.error.d.ts.map +1 -1
- package/dist/i18n/errors/locale-not-supported.error.js +1 -1
- package/dist/i18n/errors/locale-not-supported.error.js.map +1 -1
- package/dist/i18n/errors/translation-missing.error.d.ts +1 -1
- package/dist/i18n/errors/translation-missing.error.d.ts.map +1 -1
- package/dist/i18n/errors/translation-missing.error.js +1 -2
- package/dist/i18n/errors/translation-missing.error.js.map +1 -1
- package/dist/i18n/i18n.module.d.ts +3 -3
- package/dist/i18n/i18n.module.d.ts.map +1 -1
- package/dist/i18n/i18n.module.js +3 -3
- package/dist/i18n/i18n.module.js.map +1 -1
- package/dist/i18n/i18n.options.d.ts +2 -2
- package/dist/i18n/i18n.options.js +1 -1
- package/dist/i18n/i18n.tokens.d.ts +1 -1
- package/dist/i18n/i18n.tokens.d.ts.map +1 -1
- package/dist/i18n/i18n.tokens.js +1 -1
- package/dist/i18n/i18n.tokens.js.map +1 -1
- package/dist/i18n/messages/en/common.d.ts +1 -5
- package/dist/i18n/messages/en/common.d.ts.map +1 -1
- package/dist/i18n/messages/en/common.js +1 -5
- package/dist/i18n/messages/en/common.js.map +1 -1
- package/dist/i18n/messages/en/errors.d.ts +0 -7
- package/dist/i18n/messages/en/errors.d.ts.map +1 -1
- package/dist/i18n/messages/en/errors.js +0 -8
- package/dist/i18n/messages/en/errors.js.map +1 -1
- package/dist/i18n/messages/en/zod.js +1 -1
- package/dist/i18n/services/message-loader.service.d.ts +1 -1
- package/dist/i18n/services/message-loader.service.js +1 -1
- package/dist/index.d.ts +0 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -19
- package/dist/index.js.map +1 -1
- package/dist/logger/contracts/log-context.d.ts +1 -3
- package/dist/logger/contracts/log-context.d.ts.map +1 -1
- package/dist/logger/formatters/json-formatter.d.ts +0 -1
- package/dist/logger/formatters/json-formatter.d.ts.map +1 -1
- package/dist/logger/formatters/json-formatter.js +0 -1
- package/dist/logger/formatters/json-formatter.js.map +1 -1
- package/dist/logger/formatters/pretty-formatter.d.ts +0 -1
- package/dist/logger/formatters/pretty-formatter.d.ts.map +1 -1
- package/dist/logger/formatters/pretty-formatter.js +0 -1
- package/dist/logger/formatters/pretty-formatter.js.map +1 -1
- package/dist/logger/services/logger.service.d.ts +2 -2
- package/dist/logger/services/logger.service.js +2 -2
- package/dist/middleware/middleware-consumer.d.ts +3 -3
- package/dist/middleware/middleware-consumer.js +4 -4
- package/dist/middleware/types.d.ts +2 -2
- package/dist/module/errors/invalid-module-provider.error.d.ts +1 -1
- package/dist/module/errors/invalid-module-provider.error.d.ts.map +1 -1
- package/dist/module/errors/invalid-module-provider.error.js +1 -2
- package/dist/module/errors/invalid-module-provider.error.js.map +1 -1
- package/dist/module/errors/module-already-registered.error.d.ts +1 -1
- package/dist/module/errors/module-already-registered.error.d.ts.map +1 -1
- package/dist/module/errors/module-already-registered.error.js +1 -2
- package/dist/module/errors/module-already-registered.error.js.map +1 -1
- package/dist/module/errors/module-circular-dependency.error.d.ts +1 -1
- package/dist/module/errors/module-circular-dependency.error.d.ts.map +1 -1
- package/dist/module/errors/module-circular-dependency.error.js +1 -2
- package/dist/module/errors/module-circular-dependency.error.js.map +1 -1
- package/dist/module/errors/module-dependency-not-found.error.d.ts +1 -1
- package/dist/module/errors/module-dependency-not-found.error.d.ts.map +1 -1
- package/dist/module/errors/module-dependency-not-found.error.js +1 -2
- package/dist/module/errors/module-dependency-not-found.error.js.map +1 -1
- package/dist/module/module-registry.d.ts +1 -1
- package/dist/module/module-registry.js +2 -2
- package/dist/module/module-registry.js.map +1 -1
- package/dist/module/module.decorator.d.ts +3 -3
- package/dist/module/module.decorator.js +3 -3
- package/dist/module/types.d.ts +11 -11
- package/dist/module/types.d.ts.map +1 -1
- package/dist/openapi/openapi.module.d.ts +1 -1
- package/dist/openapi/openapi.module.js +1 -1
- package/dist/openapi/services/openapi-config.service.d.ts +1 -1
- package/dist/openapi/services/openapi-config.service.js +1 -1
- package/dist/queue/errors/queue-binding-not-found.error.d.ts +1 -1
- package/dist/queue/errors/queue-binding-not-found.error.d.ts.map +1 -1
- package/dist/queue/errors/queue-binding-not-found.error.js +1 -2
- package/dist/queue/errors/queue-binding-not-found.error.js.map +1 -1
- package/dist/queue/errors/queue-provider-not-supported.error.d.ts +1 -1
- package/dist/queue/errors/queue-provider-not-supported.error.d.ts.map +1 -1
- package/dist/queue/errors/queue-provider-not-supported.error.js +1 -2
- package/dist/queue/errors/queue-provider-not-supported.error.js.map +1 -1
- package/dist/queue/queue-consumer.d.ts +0 -2
- package/dist/queue/queue-consumer.d.ts.map +1 -1
- package/dist/queue/queue-name.d.ts +2 -2
- package/dist/queue/queue-name.js +1 -1
- package/dist/queue/queue.module.d.ts +1 -1
- package/dist/queue/queue.module.js +1 -1
- package/dist/router/controller.d.ts +1 -1
- package/dist/router/decorators/controller.decorator.d.ts +2 -18
- package/dist/router/decorators/controller.decorator.d.ts.map +1 -1
- package/dist/router/decorators/controller.decorator.js +2 -18
- package/dist/router/decorators/controller.decorator.js.map +1 -1
- package/dist/router/decorators/index.js +0 -2
- package/dist/router/decorators/index.js.map +1 -1
- package/dist/router/errors/controller-method-not-found.error.d.ts +1 -1
- package/dist/router/errors/controller-method-not-found.error.d.ts.map +1 -1
- package/dist/router/errors/controller-method-not-found.error.js +1 -2
- package/dist/router/errors/controller-method-not-found.error.js.map +1 -1
- package/dist/router/errors/controller-registration.error.d.ts +2 -2
- package/dist/router/errors/controller-registration.error.d.ts.map +1 -1
- package/dist/router/errors/controller-registration.error.js +2 -3
- package/dist/router/errors/controller-registration.error.js.map +1 -1
- package/dist/router/errors/index.js +0 -2
- package/dist/router/errors/index.js.map +1 -1
- package/dist/router/errors/openapi-route-registration.error.d.ts +1 -1
- package/dist/router/errors/openapi-route-registration.error.d.ts.map +1 -1
- package/dist/router/errors/openapi-route-registration.error.js +1 -2
- package/dist/router/errors/openapi-route-registration.error.js.map +1 -1
- package/dist/router/errors/openapi-validation.error.d.ts +1 -1
- package/dist/router/errors/openapi-validation.error.d.ts.map +1 -1
- package/dist/router/errors/openapi-validation.error.js +1 -2
- package/dist/router/errors/openapi-validation.error.js.map +1 -1
- package/dist/router/errors/route-not-found.error.d.ts +1 -1
- package/dist/router/errors/route-not-found.error.d.ts.map +1 -1
- package/dist/router/errors/route-not-found.error.js +1 -2
- package/dist/router/errors/route-not-found.error.js.map +1 -1
- package/dist/router/errors/schema-validation.error.d.ts +1 -1
- package/dist/router/errors/schema-validation.error.d.ts.map +1 -1
- package/dist/router/errors/schema-validation.error.js +1 -2
- package/dist/router/errors/schema-validation.error.js.map +1 -1
- package/dist/router/router-context.js +1 -1
- package/dist/router/router-context.js.map +1 -1
- package/dist/router/router.service.d.ts +1 -1
- package/dist/router/router.service.d.ts.map +1 -1
- package/dist/router/router.service.js +2 -2
- package/dist/router/router.service.js.map +1 -1
- package/dist/router/services/request-scope.service.d.ts +2 -4
- package/dist/router/services/request-scope.service.d.ts.map +1 -1
- package/dist/router/services/request-scope.service.js +2 -4
- package/dist/router/services/request-scope.service.js.map +1 -1
- package/dist/router/types.d.ts.map +1 -1
- package/dist/storage/dom.polyfill.d.ts.map +1 -0
- package/dist/storage/dom.polyfill.js.map +1 -0
- package/dist/storage/providers/s3-storage.provider.d.ts +1 -1
- package/dist/storage/providers/s3-storage.provider.d.ts.map +1 -1
- package/dist/storage/services/storage.service.d.ts +2 -5
- package/dist/storage/services/storage.service.d.ts.map +1 -1
- package/dist/storage/services/storage.service.js +2 -5
- package/dist/storage/services/storage.service.js.map +1 -1
- package/dist/storage/storage.module.d.ts +1 -1
- package/dist/storage/storage.module.js +1 -1
- package/dist/worker/stratal-worker.d.ts +2 -1
- package/dist/worker/stratal-worker.d.ts.map +1 -1
- package/dist/worker/stratal-worker.js +1 -0
- package/dist/worker/stratal-worker.js.map +1 -1
- package/package.json +30 -25
- package/dist/infrastructure/error-handler/error-response.d.ts.map +0 -1
- package/dist/infrastructure/error-handler/error-response.js.map +0 -1
- package/dist/infrastructure/error-handler/global-error-handler.d.ts.map +0 -1
- package/dist/infrastructure/error-handler/global-error-handler.js.map +0 -1
- package/dist/infrastructure/error-handler/index.d.ts +0 -6
- package/dist/infrastructure/error-handler/index.d.ts.map +0 -1
- package/dist/infrastructure/error-handler/index.js +0 -5
- package/dist/infrastructure/error-handler/index.js.map +0 -1
- package/dist/infrastructure/error-handler/internal-error.d.ts.map +0 -1
- package/dist/infrastructure/error-handler/internal-error.js.map +0 -1
- package/dist/infrastructure/errors/index.d.ts +0 -2
- package/dist/infrastructure/errors/index.d.ts.map +0 -1
- package/dist/infrastructure/errors/index.js +0 -2
- package/dist/infrastructure/errors/index.js.map +0 -1
- package/dist/infrastructure/errors/request-container-not-initialized.error.d.ts.map +0 -1
- package/dist/infrastructure/errors/request-container-not-initialized.error.js.map +0 -1
- package/dist/infrastructure/index.d.ts +0 -3
- package/dist/infrastructure/index.d.ts.map +0 -1
- package/dist/infrastructure/index.js +0 -3
- package/dist/infrastructure/index.js.map +0 -1
- package/dist/polyfills/dom.polyfill.d.ts.map +0 -1
- package/dist/polyfills/dom.polyfill.js.map +0 -1
- package/dist/polyfills/index.d.ts +0 -8
- package/dist/polyfills/index.d.ts.map +0 -1
- package/dist/polyfills/index.js +0 -8
- package/dist/polyfills/index.js.map +0 -1
- package/dist/worker/module-worker.d.ts +0 -48
- package/dist/worker/module-worker.d.ts.map +0 -1
- package/dist/worker/module-worker.js +0 -88
- package/dist/worker/module-worker.js.map +0 -1
- /package/dist/{infrastructure/error-handler → errors}/error-response.d.ts +0 -0
- /package/dist/{infrastructure/error-handler → errors}/error-response.js +0 -0
- /package/dist/{polyfills → storage}/dom.polyfill.d.ts +0 -0
- /package/dist/{polyfills → storage}/dom.polyfill.js +0 -0
package/README.md
CHANGED
|
@@ -1,50 +1,126 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Stratal
|
|
2
2
|
|
|
3
|
-
A modular Cloudflare Workers
|
|
3
|
+
A modular framework for building Cloudflare Workers with dependency injection, OpenAPI documentation, queues, cron jobs, and more.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
[](https://www.npmjs.com/package/stratal)
|
|
6
|
+
[](https://github.com/strataljs/stratal/actions/workflows/ci.yml)
|
|
7
|
+
[](https://github.com/strataljs/stratal/actions/workflows/benchmark.yml)
|
|
8
|
+
[](https://opensource.org/licenses/MIT)
|
|
9
|
+
[](https://securityscorecards.dev/viewer/?uri=github.com/strataljs/stratal)
|
|
10
|
+
[](https://snyk.io/test/github/strataljs/stratal)
|
|
11
|
+
[](https://www.npmjs.com/package/stratal)
|
|
12
|
+
[](https://www.typescriptlang.org/)
|
|
13
|
+
[](https://bundlephobia.com/package/stratal)
|
|
14
|
+
[](https://github.com/strataljs/stratal/pulls)
|
|
15
|
+
[](https://github.com/strataljs/stratal)
|
|
16
|
+
|
|
17
|
+
## Documentation
|
|
18
|
+
|
|
19
|
+
Full guides and examples are available at **[stratal.dev](https://stratal.dev)**. API reference lives at **[api-reference.stratal.dev](https://api-reference.stratal.dev)**.
|
|
20
|
+
|
|
21
|
+
## Features
|
|
22
|
+
|
|
23
|
+
- **Dependency Injection** — Two-tier DI container (global + request-scoped) powered by tsyringe
|
|
24
|
+
- **OpenAPI Documentation** — Define Zod schemas once and get a full OpenAPI 3.0 spec with interactive docs
|
|
25
|
+
- **Modular Architecture** — NestJS-style modules with lifecycle hooks, dynamic configuration, and middleware
|
|
26
|
+
- **Hono Routing** — Convention-based RESTful controllers with automatic HTTP method mapping
|
|
27
|
+
- **Queue Consumers** — Typed Cloudflare Queue consumers with message-type filtering
|
|
28
|
+
- **Cron Jobs** — Scheduled tasks via Cloudflare Workers cron triggers
|
|
29
|
+
- **Storage** — S3-compatible file storage with presigned URLs and TUS upload support
|
|
30
|
+
- **Email** — Resend and SMTP providers with React Email template support
|
|
31
|
+
- **i18n** — Type-safe internationalization with locale detection from request headers
|
|
32
|
+
- **Guards and Middleware** — Route protection and per-module middleware configuration
|
|
33
|
+
|
|
34
|
+
> **Note:** Stratal is in active development and APIs may change before v1. It is okay to use in projects, but consider pinning your dependency version so that a new patch does not break your existing code.
|
|
6
35
|
|
|
7
36
|
## Installation
|
|
8
37
|
|
|
38
|
+
Scaffold a new project from an official template:
|
|
39
|
+
|
|
9
40
|
```bash
|
|
10
|
-
npm
|
|
41
|
+
npm create stratal my-app
|
|
42
|
+
# or
|
|
43
|
+
yarn create stratal my-app
|
|
11
44
|
# or
|
|
12
|
-
|
|
45
|
+
pnpm create stratal my-app
|
|
13
46
|
```
|
|
14
47
|
|
|
15
|
-
|
|
48
|
+
Available templates:
|
|
49
|
+
|
|
50
|
+
| Template | Description | Example |
|
|
51
|
+
|---|---|---|
|
|
52
|
+
| `hello-world` | A minimal Stratal app with a single GET endpoint | [Source](https://github.com/strataljs/stratal/tree/main/examples/01-hello-world) |
|
|
53
|
+
| `crud-api` | RESTful notes API with full CRUD operations and DI | [Source](https://github.com/strataljs/stratal/tree/main/examples/02-crud-api) |
|
|
54
|
+
| `testing` | Vitest + @stratal/testing with Cloudflare worker pool | [Source](https://github.com/strataljs/stratal/tree/main/examples/03-testing) |
|
|
55
|
+
| `guards` | Route protection with @UseGuards and CanActivate | [Source](https://github.com/strataljs/stratal/tree/main/examples/04-guards) |
|
|
56
|
+
| `middleware` | Middleware configuration with apply/exclude/forRoutes | [Source](https://github.com/strataljs/stratal/tree/main/examples/05-middleware) |
|
|
57
|
+
| `queues` | Queue producer/consumer pattern with Cloudflare Queues | [Source](https://github.com/strataljs/stratal/tree/main/examples/06-queues) |
|
|
58
|
+
| `scheduled-tasks` | Cron job scheduling with the CronJob interface | [Source](https://github.com/strataljs/stratal/tree/main/examples/07-scheduled-tasks) |
|
|
59
|
+
| `openapi` | OpenAPI docs with Scalar UI and Zod schema integration | [Source](https://github.com/strataljs/stratal/tree/main/examples/08-openapi) |
|
|
60
|
+
|
|
61
|
+
For benchmarks, see the [main README](https://github.com/strataljs/stratal#benchmarks).
|
|
62
|
+
|
|
63
|
+
You can also specify a template directly:
|
|
16
64
|
|
|
17
|
-
|
|
65
|
+
```bash
|
|
66
|
+
npm create stratal my-app -- -t crud-api
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Or add Stratal to an existing project:
|
|
18
70
|
|
|
19
71
|
```bash
|
|
20
|
-
|
|
21
|
-
|
|
72
|
+
npm install stratal
|
|
73
|
+
```
|
|
22
74
|
|
|
23
|
-
|
|
24
|
-
npm install resend react react-dom @react-email/components
|
|
75
|
+
### AI Agent Skills
|
|
25
76
|
|
|
26
|
-
|
|
27
|
-
npm install nodemailer
|
|
77
|
+
Stratal provides [Agent Skills](https://agentskills.io) for AI coding assistants like Claude Code and Cursor. Install to give your AI agent knowledge of Stratal patterns, conventions, and APIs:
|
|
28
78
|
|
|
29
|
-
|
|
30
|
-
|
|
79
|
+
```bash
|
|
80
|
+
npx skills add strataljs/stratal
|
|
31
81
|
```
|
|
32
82
|
|
|
33
|
-
##
|
|
83
|
+
## Quick Start
|
|
34
84
|
|
|
35
|
-
|
|
85
|
+
Define a module with a controller and wire it up as a Cloudflare Worker:
|
|
36
86
|
|
|
37
87
|
```typescript
|
|
38
|
-
import {
|
|
39
|
-
import {
|
|
40
|
-
import {
|
|
41
|
-
import {
|
|
42
|
-
import {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
88
|
+
import { type ApplicationConfig } from 'stratal'
|
|
89
|
+
import { Module } from 'stratal/module'
|
|
90
|
+
import { Controller, Route, type RouterContext } from 'stratal/router'
|
|
91
|
+
import { StratalWorker } from 'stratal/worker'
|
|
92
|
+
import { z } from 'stratal/validation'
|
|
93
|
+
|
|
94
|
+
// Define a controller
|
|
95
|
+
@Controller('/api/greetings')
|
|
96
|
+
class GreetingsController {
|
|
97
|
+
@Route({
|
|
98
|
+
summary: 'Say hello',
|
|
99
|
+
response: z.object({ message: z.string() }),
|
|
100
|
+
})
|
|
101
|
+
async index(ctx: RouterContext) {
|
|
102
|
+
return ctx.json({ message: 'Hello from Stratal!' })
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// Create the root module
|
|
107
|
+
@Module({
|
|
108
|
+
controllers: [GreetingsController],
|
|
109
|
+
})
|
|
110
|
+
class AppModule {}
|
|
111
|
+
|
|
112
|
+
// Worker entry point
|
|
113
|
+
export default class Backend extends StratalWorker {
|
|
114
|
+
protected configure(): ApplicationConfig {
|
|
115
|
+
return { module: AppModule }
|
|
116
|
+
}
|
|
117
|
+
}
|
|
46
118
|
```
|
|
47
119
|
|
|
120
|
+
## Contributing
|
|
121
|
+
|
|
122
|
+
Contributions are welcome! Please see [CONTRIBUTING.md](https://github.com/strataljs/stratal/blob/main/CONTRIBUTING.md) for guidelines.
|
|
123
|
+
|
|
48
124
|
## License
|
|
49
125
|
|
|
50
126
|
MIT
|
package/dist/application.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,OAAO,CAAA;AAGvC,OAAO,EAAiE,QAAQ,EAAmB,MAAM,UAAU,CAAA;AAEnH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAMhE,OAAO,EAAkD,KAAK,aAAa,EAAE,MAAM,UAAU,CAAA;AAG7F,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,MAAM,EAAE,WAAW,GAAG,aAAa,CAAA;IACnC,oEAAoE;IACpE,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,QAAQ,CAAA;QAChB,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;KAC9B,CAAA;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,WAAW;IAapB,QAAQ,CAAC,GAAG,EAAE,UAAU;IACxB,QAAQ,CAAC,GAAG,EAAE,gBAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAd5B;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAW;IAE7B,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAQ;gBAGhB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,gBAAgB,EACb,SAAS,EAAE,iBAAiB;IAwB/C;;;;;;;OAOG;IACH,IAAI,SAAS,IAAI,SAAS,CAEzB;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAkCjC;;;;;OAKG;IACH,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;IAU5B;;;;;OAKG;IACG,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBxE;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAerE;;;;;;;OAOG;IACH,uBAAuB,CAAC,MAAM,SAAO,GAAG,aAAa;IAQ/C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAK/B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;CAO7B"}
|
package/dist/application.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import 'reflect-metadata';
|
|
2
1
|
import { container as tsyringeRootContainer } from 'tsyringe';
|
|
3
2
|
import { CacheModule } from './cache';
|
|
4
3
|
import { CronManager } from './cron/cron-manager';
|
|
5
4
|
import { Container } from './di/container';
|
|
6
5
|
import { DI_TOKENS } from './di/tokens';
|
|
6
|
+
import { GlobalErrorHandler } from './errors';
|
|
7
7
|
import { I18nModule } from './i18n/i18n.module';
|
|
8
|
-
import { GlobalErrorHandler } from './infrastructure/error-handler';
|
|
9
8
|
import { ConsoleTransport, JsonFormatter, LOGGER_TOKENS, LoggerService, LogLevel, PrettyFormatter } from './logger';
|
|
10
9
|
import { ModuleRegistry } from './module/module-registry';
|
|
11
10
|
import { OpenAPIModule } from './openapi';
|
package/dist/application.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-delete.error.d.ts","sourceRoot":"","sources":["../../../src/cache/errors/cache-delete.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cache-delete.error.d.ts","sourceRoot":"","sources":["../../../src/cache/errors/cache-delete.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,gBAAgB;gBACxC,GAAG,EAAE,MAAM;CAGxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-delete.error.js","sourceRoot":"","sources":["../../../src/cache/errors/cache-delete.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cache-delete.error.js","sourceRoot":"","sources":["../../../src/cache/errors/cache-delete.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;GAKG;AACH,MAAM,OAAO,gBAAiB,SAAQ,gBAAgB;IACpD,YAAY,GAAW;QACrB,KAAK,CAAC,2BAA2B,EAAE,WAAW,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;IACtF,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-get.error.d.ts","sourceRoot":"","sources":["../../../src/cache/errors/cache-get.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cache-get.error.d.ts","sourceRoot":"","sources":["../../../src/cache/errors/cache-get.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;gBACrC,GAAG,EAAE,MAAM;CAGxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-get.error.js","sourceRoot":"","sources":["../../../src/cache/errors/cache-get.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cache-get.error.js","sourceRoot":"","sources":["../../../src/cache/errors/cache-get.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;GAKG;AACH,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IACjD,YAAY,GAAW;QACrB,KAAK,CAAC,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;IACnF,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-list.error.d.ts","sourceRoot":"","sources":["../../../src/cache/errors/cache-list.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cache-list.error.d.ts","sourceRoot":"","sources":["../../../src/cache/errors/cache-list.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,gBAAgB;;CAInD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-list.error.js","sourceRoot":"","sources":["../../../src/cache/errors/cache-list.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cache-list.error.js","sourceRoot":"","sources":["../../../src/cache/errors/cache-list.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;GAIG;AACH,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAClD;QACE,KAAK,CAAC,yBAAyB,EAAE,WAAW,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAA;IAC/E,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-put.error.d.ts","sourceRoot":"","sources":["../../../src/cache/errors/cache-put.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cache-put.error.d.ts","sourceRoot":"","sources":["../../../src/cache/errors/cache-put.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;gBACrC,GAAG,EAAE,MAAM;CAGxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-put.error.js","sourceRoot":"","sources":["../../../src/cache/errors/cache-put.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cache-put.error.js","sourceRoot":"","sources":["../../../src/cache/errors/cache-put.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;GAKG;AACH,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IACjD,YAAY,GAAW;QACrB,KAAK,CAAC,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;IACnF,CAAC;CACF"}
|
|
@@ -47,8 +47,8 @@ export interface IConfigService<T extends object = ModuleConfig> {
|
|
|
47
47
|
*/
|
|
48
48
|
get<P extends ConfigPath<T>>(path: P): ConfigPathValue<T, P>;
|
|
49
49
|
/**
|
|
50
|
-
* Set config value at runtime (for
|
|
51
|
-
* @example config.set('email.from.name', '
|
|
50
|
+
* Set config value at runtime (for runtime overrides)
|
|
51
|
+
* @example config.set('email.from.name', 'Custom Name')
|
|
52
52
|
*/
|
|
53
53
|
set<P extends ConfigPath<T>>(path: P, value: ConfigPathValue<T, P>): void;
|
|
54
54
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-not-initialized.error.d.ts","sourceRoot":"","sources":["../../../src/config/errors/config-not-initialized.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"config-not-initialized.error.d.ts","sourceRoot":"","sources":["../../../src/config/errors/config-not-initialized.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;;GAMG;AACH,qBAAa,yBAA0B,SAAQ,gBAAgB;;CAO9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-not-initialized.error.js","sourceRoot":"","sources":["../../../src/config/errors/config-not-initialized.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"config-not-initialized.error.js","sourceRoot":"","sources":["../../../src/config/errors/config-not-initialized.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;;GAMG;AACH,MAAM,OAAO,yBAA0B,SAAQ,gBAAgB;IAC7D;QACE,KAAK,CACH,6BAA6B,EAC7B,WAAW,CAAC,MAAM,CAAC,sBAAsB,CAC1C,CAAA;IACH,CAAC;CACF"}
|
|
@@ -2,7 +2,7 @@ import type { ConfigPath, ConfigPathValue, IConfigService, ModuleConfig } from '
|
|
|
2
2
|
/**
|
|
3
3
|
* ConfigService with dot notation support for get/set operations
|
|
4
4
|
*
|
|
5
|
-
* Supports runtime overrides via set() - useful for
|
|
5
|
+
* Supports runtime overrides via set() - useful for request-specific config overrides.
|
|
6
6
|
* Use reset() to restore original values.
|
|
7
7
|
*
|
|
8
8
|
* @example
|
|
@@ -11,8 +11,8 @@ import type { ConfigPath, ConfigPathValue, IConfigService, ModuleConfig } from '
|
|
|
11
11
|
* const url = config.get('database.url')
|
|
12
12
|
* const fromName = config.get('email.from.name')
|
|
13
13
|
*
|
|
14
|
-
* // Set at runtime (e.g., in middleware for
|
|
15
|
-
* config.set('email.from.name',
|
|
14
|
+
* // Set at runtime (e.g., in middleware for runtime override)
|
|
15
|
+
* config.set('email.from.name', 'Custom Name')
|
|
16
16
|
*
|
|
17
17
|
* // Reset to original
|
|
18
18
|
* config.reset('email.from.name') // reset specific path
|
|
@@ -33,8 +33,8 @@ export declare class ConfigService<T extends object = ModuleConfig> implements I
|
|
|
33
33
|
*/
|
|
34
34
|
get<P extends ConfigPath<T>>(path: P): ConfigPathValue<T, P>;
|
|
35
35
|
/**
|
|
36
|
-
* Set config value at runtime (for
|
|
37
|
-
* @example config.set('email.from.name', '
|
|
36
|
+
* Set config value at runtime (for runtime overrides)
|
|
37
|
+
* @example config.set('email.from.name', 'Custom Name')
|
|
38
38
|
*/
|
|
39
39
|
set<P extends ConfigPath<T>>(path: P, value: ConfigPathValue<T, P>): void;
|
|
40
40
|
/**
|
|
@@ -52,6 +52,7 @@ export declare class ConfigService<T extends object = ModuleConfig> implements I
|
|
|
52
52
|
has(path: ConfigPath<T>): boolean;
|
|
53
53
|
private getByPath;
|
|
54
54
|
private setByPath;
|
|
55
|
+
private isDangerousKey;
|
|
55
56
|
private ensureInitialized;
|
|
56
57
|
private deepClone;
|
|
57
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.service.d.ts","sourceRoot":"","sources":["../../../src/config/services/config.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAGhG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBACa,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,YAAY,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;IACtF,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,aAAa,CAAe;IAEpC;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;IAK3B;;;OAGG;IACH,GAAG,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;IAK5D;;;OAGG;IACH,GAAG,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IAKzE;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IAUjC;;OAEG;IACH,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC;IAKlB;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO;IAKjC,OAAO,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"config.service.d.ts","sourceRoot":"","sources":["../../../src/config/services/config.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAGhG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBACa,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,YAAY,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;IACtF,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,aAAa,CAAe;IAEpC;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;IAK3B;;;OAGG;IACH,GAAG,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;IAK5D;;;OAGG;IACH,GAAG,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IAKzE;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IAUjC;;OAEG;IACH,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC;IAKlB;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO;IAKjC,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,SAAS;IAwBjB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,SAAS;CAMlB"}
|
|
@@ -10,7 +10,7 @@ import { ConfigNotInitializedError } from '../errors';
|
|
|
10
10
|
/**
|
|
11
11
|
* ConfigService with dot notation support for get/set operations
|
|
12
12
|
*
|
|
13
|
-
* Supports runtime overrides via set() - useful for
|
|
13
|
+
* Supports runtime overrides via set() - useful for request-specific config overrides.
|
|
14
14
|
* Use reset() to restore original values.
|
|
15
15
|
*
|
|
16
16
|
* @example
|
|
@@ -19,8 +19,8 @@ import { ConfigNotInitializedError } from '../errors';
|
|
|
19
19
|
* const url = config.get('database.url')
|
|
20
20
|
* const fromName = config.get('email.from.name')
|
|
21
21
|
*
|
|
22
|
-
* // Set at runtime (e.g., in middleware for
|
|
23
|
-
* config.set('email.from.name',
|
|
22
|
+
* // Set at runtime (e.g., in middleware for runtime override)
|
|
23
|
+
* config.set('email.from.name', 'Custom Name')
|
|
24
24
|
*
|
|
25
25
|
* // Reset to original
|
|
26
26
|
* config.reset('email.from.name') // reset specific path
|
|
@@ -47,8 +47,8 @@ let ConfigService = class ConfigService {
|
|
|
47
47
|
return this.getByPath(this.currentConfig, path);
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
50
|
-
* Set config value at runtime (for
|
|
51
|
-
* @example config.set('email.from.name', '
|
|
50
|
+
* Set config value at runtime (for runtime overrides)
|
|
51
|
+
* @example config.set('email.from.name', 'Custom Name')
|
|
52
52
|
*/
|
|
53
53
|
set(path, value) {
|
|
54
54
|
this.ensureInitialized();
|
|
@@ -86,6 +86,8 @@ let ConfigService = class ConfigService {
|
|
|
86
86
|
const keys = path.split('.');
|
|
87
87
|
let current = obj;
|
|
88
88
|
for (const key of keys) {
|
|
89
|
+
if (this.isDangerousKey(key))
|
|
90
|
+
return undefined;
|
|
89
91
|
if (current === null || current === undefined)
|
|
90
92
|
return undefined;
|
|
91
93
|
current = current[key];
|
|
@@ -94,15 +96,30 @@ let ConfigService = class ConfigService {
|
|
|
94
96
|
}
|
|
95
97
|
setByPath(obj, path, value) {
|
|
96
98
|
const keys = path.split('.');
|
|
99
|
+
if (keys.some((key) => this.isDangerousKey(key)))
|
|
100
|
+
return;
|
|
97
101
|
let current = obj;
|
|
98
102
|
for (let i = 0; i < keys.length - 1; i++) {
|
|
99
103
|
const key = keys[i];
|
|
100
|
-
if (!(key
|
|
101
|
-
current
|
|
104
|
+
if (!Object.hasOwn(current, key) || typeof current[key] !== 'object' || current[key] === null) {
|
|
105
|
+
Object.defineProperty(current, key, {
|
|
106
|
+
value: {},
|
|
107
|
+
writable: true,
|
|
108
|
+
enumerable: true,
|
|
109
|
+
configurable: true,
|
|
110
|
+
});
|
|
102
111
|
}
|
|
103
112
|
current = current[key];
|
|
104
113
|
}
|
|
105
|
-
current
|
|
114
|
+
Object.defineProperty(current, keys[keys.length - 1], {
|
|
115
|
+
value,
|
|
116
|
+
writable: true,
|
|
117
|
+
enumerable: true,
|
|
118
|
+
configurable: true,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
isDangerousKey(key) {
|
|
122
|
+
return key === '__proto__' || key === 'constructor' || key === 'prototype';
|
|
106
123
|
}
|
|
107
124
|
ensureInitialized() {
|
|
108
125
|
if (!this.currentConfig) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/config/services/config.service.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAErD;;;;;;;;;;;;;;;;;;;GAmBG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAa;IAChB,cAAc,CAAe;IAC7B,aAAa,CAAe;IAEpC;;;OAGG;IACH,UAAU,CAAC,MAAS;QAClB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAC5C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAC7C,CAAC;IAED;;;OAGG;IACH,GAAG,CAA0B,IAAO;QAClC,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAA0B,CAAA;IAC1E,CAAC;IAED;;;OAGG;IACH,GAAG,CAA0B,IAAO,EAAE,KAA4B;QAChE,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IACjD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAoB;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;YAC/D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;QACzE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC1D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,GAAG;QACD,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,OAAO,IAAI,CAAC,aAA4B,CAAA;IAC1C,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,IAAmB;QACrB,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,SAAS,CAAA;IAC/D,CAAC;IAEO,SAAS,CAAC,GAAY,EAAE,IAAY;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC5B,IAAI,OAAO,GAAG,GAAG,CAAA;QACjB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAA;YAC/D,OAAO,GAAI,OAAmC,CAAC,GAAG,CAAC,CAAA;QACrD,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,SAAS,CAAC,GAAY,EAAE,IAAY,EAAE,KAAc;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC5B,IAAI,OAAO,GAAG,GAA8B,CAAA;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACnB,IAAI,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/config/services/config.service.ts"],"names":[],"mappings":"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"}
|
package/dist/cron/cron-job.d.ts
CHANGED
|
@@ -7,21 +7,20 @@
|
|
|
7
7
|
* @example
|
|
8
8
|
* ```typescript
|
|
9
9
|
* @Transient()
|
|
10
|
-
* export class
|
|
10
|
+
* export class DataCleanupJob implements CronJob {
|
|
11
11
|
* readonly schedule = '0 2 * * *' // Daily at 2 AM UTC
|
|
12
12
|
*
|
|
13
13
|
* constructor(
|
|
14
|
-
* @inject(
|
|
15
|
-
* @inject(TENANTS_TOKENS.TenantsService) private tenantsService: TenantsService
|
|
14
|
+
* @inject(LOGGER_TOKENS.LoggerService) private logger: LoggerService,
|
|
16
15
|
* ) {}
|
|
17
16
|
*
|
|
18
17
|
* async execute(controller: ScheduledController): Promise<void> {
|
|
19
|
-
* this.logger.info('Running
|
|
20
|
-
* await this.
|
|
18
|
+
* this.logger.info('Running data cleanup')
|
|
19
|
+
* await this.cleanupExpiredData()
|
|
21
20
|
* }
|
|
22
21
|
*
|
|
23
22
|
* async onError(error: Error): Promise<void> {
|
|
24
|
-
* this.logger.error('
|
|
23
|
+
* this.logger.error('Data cleanup failed', { error: error.message })
|
|
25
24
|
* }
|
|
26
25
|
* }
|
|
27
26
|
* ```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron-job.d.ts","sourceRoot":"","sources":["../../src/cron/cron-job.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cron-job.d.ts","sourceRoot":"","sources":["../../src/cron/cron-job.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,OAAO;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IAEzB;;;;;OAKG;IACH,OAAO,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEvD;;;;;;;OAOG;IACH,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACtE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron-execution.error.d.ts","sourceRoot":"","sources":["../../../src/cron/errors/cron-execution.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cron-execution.error.d.ts","sourceRoot":"","sources":["../../../src/cron/errors/cron-execution.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAG/C;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,gBAAgB;gBAEtD,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM;CAYjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron-execution.error.js","sourceRoot":"","sources":["../../../src/cron/errors/cron-execution.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cron-execution.error.js","sourceRoot":"","sources":["../../../src/cron/errors/cron-execution.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C;;;;GAIG;AACH,MAAM,OAAO,kBAAmB,SAAQ,gBAAgB;IACvD,YACC,QAAgB,EAChB,eAAuB,EACvB,QAAgB;QAEhB,KAAK,CACJ,4BAA4B,EAC5B,WAAW,CAAC,MAAM,CAAC,qBAAqB,EACxC;YACC,QAAQ;YACR,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,QAAQ;SACd,CACD,CAAA;IACF,CAAC;CACD"}
|
package/dist/di/container.d.ts
CHANGED
|
@@ -88,7 +88,6 @@ export interface ContainerOptions {
|
|
|
88
88
|
* @example Request scope (manual lifecycle)
|
|
89
89
|
* ```typescript
|
|
90
90
|
* const reqContainer = container.createRequestScope(routerContext)
|
|
91
|
-
* reqContainer.registerValue(DI_TOKENS.TenantContext, tenantContext)
|
|
92
91
|
* await reqContainer.runWithContextStore(async () => {
|
|
93
92
|
* // use reqContainer...
|
|
94
93
|
* })
|
|
@@ -159,7 +158,6 @@ export declare class Container {
|
|
|
159
158
|
*
|
|
160
159
|
* @param token - DI token for resolution
|
|
161
160
|
* @param factory - Factory function that receives the Container
|
|
162
|
-
* @param scope - Optional lifecycle scope (defaults to Transient)
|
|
163
161
|
*
|
|
164
162
|
* @example
|
|
165
163
|
* ```typescript
|
|
@@ -332,7 +330,6 @@ export declare class Container {
|
|
|
332
330
|
* @example
|
|
333
331
|
* ```typescript
|
|
334
332
|
* const reqContainer = container.createRequestScope(routerContext)
|
|
335
|
-
* reqContainer.registerValue(DI_TOKENS.TenantContext, tenantContext)
|
|
336
333
|
* await reqContainer.runWithContextStore(async () => {
|
|
337
334
|
* // use reqContainer...
|
|
338
335
|
* })
|
|
@@ -354,7 +351,6 @@ export declare class Container {
|
|
|
354
351
|
* @example
|
|
355
352
|
* ```typescript
|
|
356
353
|
* const reqContainer = container.createRequestScope(routerContext)
|
|
357
|
-
* reqContainer.registerValue(DI_TOKENS.TenantContext, tenantContext)
|
|
358
354
|
* await reqContainer.runWithContextStore(async () => {
|
|
359
355
|
* const i18n = reqContainer.resolve(I18N_TOKENS.I18nService)
|
|
360
356
|
* // ...
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/di/container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,KAAK,mBAAmB,EAAkB,MAAM,UAAU,CAAA;AACnE,OAAO,KAAK,cAAc,MAAM,iDAAiD,CAAA;AACjF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAA;AAExC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAiC,KAAK,yBAAyB,EAAE,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAItI,OAAO,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,GAAG,EAAE,UAAU,CAAA;IACf,mCAAmC;IACnC,GAAG,EAAE,gBAAgB,CAAA;IACrB,sCAAsC;IACtC,SAAS,EAAE,mBAAmB,CAAA;IAC9B,iDAAiD;IACjD,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED
|
|
1
|
+
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/di/container.ts"],"names":[],"mappings":"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"}
|