ddd-ts-kit 0.12.0 → 0.13.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/README.md +13 -2
- package/dist/check/catalogue/architecture-rules.d.ts.map +1 -1
- package/dist/check/catalogue/architecture-rules.js +4 -0
- package/dist/check/catalogue/architecture-rules.js.map +1 -1
- package/dist/check/explain/rule-docs.d.ts.map +1 -1
- package/dist/check/explain/rule-docs.js +2 -0
- package/dist/check/explain/rule-docs.js.map +1 -1
- package/dist/check/explain/schema-docs.d.ts +3 -0
- package/dist/check/explain/schema-docs.d.ts.map +1 -0
- package/dist/check/explain/schema-docs.js +28 -0
- package/dist/check/explain/schema-docs.js.map +1 -0
- package/dist/check/fixtures/fixtures.d.ts.map +1 -1
- package/dist/check/fixtures/fixtures.js +2 -0
- package/dist/check/fixtures/fixtures.js.map +1 -1
- package/dist/check/fixtures/schema-fixtures.d.ts +3 -0
- package/dist/check/fixtures/schema-fixtures.d.ts.map +1 -0
- package/dist/check/fixtures/schema-fixtures.js +129 -0
- package/dist/check/fixtures/schema-fixtures.js.map +1 -0
- package/dist/check/rules/schema-no-duplicate-shape.d.ts +3 -0
- package/dist/check/rules/schema-no-duplicate-shape.d.ts.map +1 -0
- package/dist/check/rules/schema-no-duplicate-shape.js +60 -0
- package/dist/check/rules/schema-no-duplicate-shape.js.map +1 -0
- package/dist/check/rules/schema-presentation-only.d.ts +3 -0
- package/dist/check/rules/schema-presentation-only.d.ts.map +1 -0
- package/dist/check/rules/schema-presentation-only.js +53 -0
- package/dist/check/rules/schema-presentation-only.js.map +1 -0
- package/dist/check/schemas/class-shapes.d.ts +9 -0
- package/dist/check/schemas/class-shapes.d.ts.map +1 -0
- package/dist/check/schemas/class-shapes.js +52 -0
- package/dist/check/schemas/class-shapes.js.map +1 -0
- package/dist/check/schemas/declared-shape.d.ts +9 -0
- package/dist/check/schemas/declared-shape.d.ts.map +1 -0
- package/dist/check/schemas/declared-shape.js +2 -0
- package/dist/check/schemas/declared-shape.js.map +1 -0
- package/dist/check/schemas/holds-schemas.d.ts +5 -0
- package/dist/check/schemas/holds-schemas.d.ts.map +1 -0
- package/dist/check/schemas/holds-schemas.js +12 -0
- package/dist/check/schemas/holds-schemas.js.map +1 -0
- package/dist/check/schemas/object-shapes.d.ts +8 -0
- package/dist/check/schemas/object-shapes.d.ts.map +1 -0
- package/dist/check/schemas/object-shapes.js +31 -0
- package/dist/check/schemas/object-shapes.js.map +1 -0
- package/dist/check/schemas/restored-code.d.ts +7 -0
- package/dist/check/schemas/restored-code.d.ts.map +1 -0
- package/dist/check/schemas/restored-code.js +17 -0
- package/dist/check/schemas/restored-code.js.map +1 -0
- package/dist/check/schemas/shared-presentation.d.ts +4 -0
- package/dist/check/schemas/shared-presentation.d.ts.map +1 -0
- package/dist/check/schemas/shared-presentation.js +5 -0
- package/dist/check/schemas/shared-presentation.js.map +1 -0
- package/dist/check/schemas/shares-schemas.d.ts +4 -0
- package/dist/check/schemas/shares-schemas.d.ts.map +1 -0
- package/dist/check/schemas/shares-schemas.js +5 -0
- package/dist/check/schemas/shares-schemas.js.map +1 -0
- package/dist/check/schemas/still-generated.d.ts +8 -0
- package/dist/check/schemas/still-generated.d.ts.map +1 -0
- package/dist/check/schemas/still-generated.js +11 -0
- package/dist/check/schemas/still-generated.js.map +1 -0
- package/dist/check/schemas/top-level-statements.d.ts +3 -0
- package/dist/check/schemas/top-level-statements.d.ts.map +1 -0
- package/dist/check/schemas/top-level-statements.js +21 -0
- package/dist/check/schemas/top-level-statements.js.map +1 -0
- package/dist/check/schemas/validation-packages.d.ts +3 -0
- package/dist/check/schemas/validation-packages.d.ts.map +1 -0
- package/dist/check/schemas/validation-packages.js +13 -0
- package/dist/check/schemas/validation-packages.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +1 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/config/default-allowed-packages.d.ts.map +1 -1
- package/dist/config/default-allowed-packages.js +1 -0
- package/dist/config/default-allowed-packages.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/parse-stack.d.ts.map +1 -1
- package/dist/config/parse-stack.js +2 -1
- package/dist/config/parse-stack.js.map +1 -1
- package/dist/config/stack.d.ts +11 -2
- package/dist/config/stack.d.ts.map +1 -1
- package/dist/config/stack.js +3 -2
- package/dist/config/stack.js.map +1 -1
- package/dist/generate/kinds/route/controller-imports.d.ts.map +1 -1
- package/dist/generate/kinds/route/controller-imports.js +2 -1
- package/dist/generate/kinds/route/controller-imports.js.map +1 -1
- package/dist/generate/kinds/route/controller-types.d.ts.map +1 -1
- package/dist/generate/kinds/route/controller-types.js +4 -2
- package/dist/generate/kinds/route/controller-types.js.map +1 -1
- package/dist/generate/kinds/route/controller-vars.d.ts.map +1 -1
- package/dist/generate/kinds/route/controller-vars.js +21 -9
- package/dist/generate/kinds/route/controller-vars.js.map +1 -1
- package/dist/generate/kinds/route/dto-classes.d.ts +5 -2
- package/dist/generate/kinds/route/dto-classes.d.ts.map +1 -1
- package/dist/generate/kinds/route/dto-classes.js +6 -3
- package/dist/generate/kinds/route/dto-classes.js.map +1 -1
- package/dist/generate/kinds/route/route-vars.d.ts.map +1 -1
- package/dist/generate/kinds/route/route-vars.js +17 -4
- package/dist/generate/kinds/route/route-vars.js.map +1 -1
- package/dist/generate/kinds/route/search-line-libraries.d.ts +3 -0
- package/dist/generate/kinds/route/search-line-libraries.d.ts.map +1 -0
- package/dist/generate/kinds/route/search-line-libraries.js +3 -0
- package/dist/generate/kinds/route/search-line-libraries.js.map +1 -0
- package/dist/generate/kinds/route/shares-schemas.d.ts +4 -0
- package/dist/generate/kinds/route/shares-schemas.d.ts.map +1 -0
- package/dist/generate/kinds/route/shares-schemas.js +5 -0
- package/dist/generate/kinds/route/shares-schemas.js.map +1 -0
- package/dist/generate/kinds/route/write-controller.d.ts.map +1 -1
- package/dist/generate/kinds/route/write-controller.js +4 -2
- package/dist/generate/kinds/route/write-controller.js.map +1 -1
- package/dist/generate/kinds/route-kind.d.ts.map +1 -1
- package/dist/generate/kinds/route-kind.js +4 -2
- package/dist/generate/kinds/route-kind.js.map +1 -1
- package/dist/generate/kinds/schema-kind.d.ts +3 -0
- package/dist/generate/kinds/schema-kind.d.ts.map +1 -0
- package/dist/generate/kinds/schema-kind.js +36 -0
- package/dist/generate/kinds/schema-kind.js.map +1 -0
- package/dist/generate/kinds.d.ts.map +1 -1
- package/dist/generate/kinds.js +2 -0
- package/dist/generate/kinds.js.map +1 -1
- package/dist/generate/shared-writes.d.ts.map +1 -1
- package/dist/generate/shared-writes.js +5 -0
- package/dist/generate/shared-writes.js.map +1 -1
- package/dist/help/usage.d.ts +1 -1
- package/dist/help/usage.d.ts.map +1 -1
- package/dist/help/usage.js +3 -1
- package/dist/help/usage.js.map +1 -1
- package/dist/init/manifest/dependencies-for.d.ts.map +1 -1
- package/dist/init/manifest/dependencies-for.js +2 -0
- package/dist/init/manifest/dependencies-for.js.map +1 -1
- package/dist/init/manifest/versions.d.ts.map +1 -1
- package/dist/init/manifest/versions.js +27 -24
- package/dist/init/manifest/versions.js.map +1 -1
- package/dist/init/stack/resolve-stack.d.ts.map +1 -1
- package/dist/init/stack/resolve-stack.js +4 -2
- package/dist/init/stack/resolve-stack.js.map +1 -1
- package/dist/init/stack/stack-options.d.ts +1 -0
- package/dist/init/stack/stack-options.d.ts.map +1 -1
- package/dist/init/validation-dependencies.d.ts.map +1 -1
- package/dist/init/validation-dependencies.js +1 -0
- package/dist/init/validation-dependencies.js.map +1 -1
- package/dist/stack/stack-vars.js +6 -5
- package/dist/stack/stack-vars.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
- package/templates/controller/controller.class-validator.ts.tpl +2 -2
- package/templates/controller/controller.none.ts.tpl +2 -2
- package/templates/controller/controller.search.ts.tpl +14 -0
- package/templates/controller/controller.standard-schema.ts.tpl +2 -2
- package/templates/controller/controller.typebox.ts.tpl +98 -0
- package/templates/controller/controller.zod.ts.tpl +2 -2
- package/templates/init/platform/http/start-http-server.hono.ts.tpl +84 -0
- package/templates/init/rules/presentation.md.tpl +3 -0
- package/templates/pipeline/package-scripts.json +1 -1
- package/templates/route/route.class-validator.ts.tpl +3 -3
- package/templates/route/route.none.ts.tpl +3 -3
- package/templates/route/route.search.ts.tpl +14 -0
- package/templates/route/route.standard-schema.ts.tpl +3 -3
- package/templates/route/route.typebox.ts.tpl +79 -0
- package/templates/route/route.zod.ts.tpl +3 -3
- package/templates/schema/schema.class-validator.ts.tpl +3 -0
- package/templates/schema/schema.custom.ts.tpl +14 -0
- package/templates/schema/schema.typebox.ts.tpl +8 -0
- package/templates/schema/schema.zod.ts.tpl +7 -0
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
/** Ranges written to the generated package.json; bumped together with the kit. */
|
|
2
2
|
export const VERSIONS = {
|
|
3
|
-
'@ddd-ts-kit/kernel': '^0.
|
|
4
|
-
'@ddd-ts-kit/validation': '^0.
|
|
5
|
-
'@ddd-ts-kit/http': '^0.
|
|
6
|
-
'@ddd-ts-kit/tracing': '^0.
|
|
7
|
-
'@ddd-ts-kit/di': '^0.
|
|
8
|
-
'@ddd-ts-kit/events': '^0.
|
|
9
|
-
'@ddd-ts-kit/testing': '^0.
|
|
10
|
-
'@ddd-ts-kit/drizzle': '^0.
|
|
11
|
-
'@ddd-ts-kit/knex': '^0.
|
|
12
|
-
'@ddd-ts-kit/prisma': '^0.
|
|
13
|
-
'@ddd-ts-kit/typeorm': '^0.
|
|
14
|
-
'@ddd-ts-kit/auth': '^0.
|
|
15
|
-
'@ddd-ts-kit/rabbitmq': '^0.
|
|
16
|
-
'@ddd-ts-kit/aspects': '^0.
|
|
17
|
-
'@ddd-ts-kit/audit': '^0.
|
|
18
|
-
'@ddd-ts-kit/redis': '^0.
|
|
19
|
-
'@ddd-ts-kit/kafka': '^0.
|
|
20
|
-
'@ddd-ts-kit/nats': '^0.
|
|
21
|
-
'@ddd-ts-kit/scheduling': '^0.
|
|
22
|
-
'@ddd-ts-kit/sentry': '^0.
|
|
23
|
-
'@ddd-ts-kit/s3': '^0.
|
|
3
|
+
'@ddd-ts-kit/kernel': '^0.13.0',
|
|
4
|
+
'@ddd-ts-kit/validation': '^0.13.0',
|
|
5
|
+
'@ddd-ts-kit/http': '^0.13.0',
|
|
6
|
+
'@ddd-ts-kit/tracing': '^0.13.0',
|
|
7
|
+
'@ddd-ts-kit/di': '^0.13.0',
|
|
8
|
+
'@ddd-ts-kit/events': '^0.13.0',
|
|
9
|
+
'@ddd-ts-kit/testing': '^0.13.0',
|
|
10
|
+
'@ddd-ts-kit/drizzle': '^0.13.0',
|
|
11
|
+
'@ddd-ts-kit/knex': '^0.13.0',
|
|
12
|
+
'@ddd-ts-kit/prisma': '^0.13.0',
|
|
13
|
+
'@ddd-ts-kit/typeorm': '^0.13.0',
|
|
14
|
+
'@ddd-ts-kit/auth': '^0.13.0',
|
|
15
|
+
'@ddd-ts-kit/rabbitmq': '^0.13.0',
|
|
16
|
+
'@ddd-ts-kit/aspects': '^0.13.0',
|
|
17
|
+
'@ddd-ts-kit/audit': '^0.13.0',
|
|
18
|
+
'@ddd-ts-kit/redis': '^0.13.0',
|
|
19
|
+
'@ddd-ts-kit/kafka': '^0.13.0',
|
|
20
|
+
'@ddd-ts-kit/nats': '^0.13.0',
|
|
21
|
+
'@ddd-ts-kit/scheduling': '^0.13.0',
|
|
22
|
+
'@ddd-ts-kit/sentry': '^0.13.0',
|
|
23
|
+
'@ddd-ts-kit/s3': '^0.13.0',
|
|
24
24
|
'@aws-sdk/client-s3': '^3.1150.0',
|
|
25
25
|
'@aws-sdk/lib-storage': '^3.1150.0',
|
|
26
26
|
'@aws-sdk/s3-request-presigner': '^3.1150.0',
|
|
27
27
|
busboy: '^1.6.0',
|
|
28
28
|
'@sentry/node': '^11.6.0',
|
|
29
|
-
'@ddd-ts-kit/pino': '^0.
|
|
29
|
+
'@ddd-ts-kit/pino': '^0.13.0',
|
|
30
30
|
pino: '^10.4.0',
|
|
31
31
|
'pino-pretty': '^13.2.0',
|
|
32
|
-
'@ddd-ts-kit/winston': '^0.
|
|
32
|
+
'@ddd-ts-kit/winston': '^0.13.0',
|
|
33
33
|
winston: '^3.19.0',
|
|
34
34
|
'@confluentinc/kafka-javascript': '^1.11.0',
|
|
35
35
|
'@nats-io/jetstream': '^3.4.0',
|
|
@@ -37,12 +37,15 @@ export const VERSIONS = {
|
|
|
37
37
|
ioredis: '^6.0.0',
|
|
38
38
|
jose: '^6.0.0',
|
|
39
39
|
amqplib: '^2.2.0',
|
|
40
|
-
'ddd-ts-kit': '^0.
|
|
40
|
+
'ddd-ts-kit': '^0.13.0',
|
|
41
41
|
tsx: '^4.23.15',
|
|
42
42
|
vitest: '^5.0.3',
|
|
43
43
|
zod: '^4.6.5',
|
|
44
44
|
express: '^5.3.0',
|
|
45
45
|
fastify: '^5.12.5',
|
|
46
|
+
hono: '^4.13.13',
|
|
47
|
+
'@hono/node-server': '^2.1.4',
|
|
48
|
+
typebox: '^1.3.37',
|
|
46
49
|
tsyringe: '^4.10.0',
|
|
47
50
|
'reflect-metadata': '^0.2.2',
|
|
48
51
|
'@opentelemetry/api': '^1.9.1',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../src/init/manifest/versions.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,MAAM,CAAC,MAAM,QAAQ,GAAqC;IACxD,oBAAoB,EAAE,SAAS;IAC/B,wBAAwB,EAAE,SAAS;IACnC,kBAAkB,EAAE,SAAS;IAC7B,qBAAqB,EAAE,SAAS;IAChC,gBAAgB,EAAE,SAAS;IAC3B,oBAAoB,EAAE,SAAS;IAC/B,qBAAqB,EAAE,SAAS;IAChC,qBAAqB,EAAE,SAAS;IAChC,kBAAkB,EAAE,SAAS;IAC7B,oBAAoB,EAAE,SAAS;IAC/B,qBAAqB,EAAE,SAAS;IAChC,kBAAkB,EAAE,SAAS;IAC7B,sBAAsB,EAAE,SAAS;IACjC,qBAAqB,EAAE,SAAS;IAChC,mBAAmB,EAAE,SAAS;IAC9B,mBAAmB,EAAE,SAAS;IAC9B,mBAAmB,EAAE,SAAS;IAC9B,kBAAkB,EAAE,SAAS;IAC7B,wBAAwB,EAAE,SAAS;IACnC,oBAAoB,EAAE,SAAS;IAC/B,gBAAgB,EAAE,SAAS;IAC3B,oBAAoB,EAAE,WAAW;IACjC,sBAAsB,EAAE,WAAW;IACnC,+BAA+B,EAAE,WAAW;IAC5C,MAAM,EAAE,QAAQ;IAChB,cAAc,EAAE,SAAS;IACzB,kBAAkB,EAAE,SAAS;IAC7B,IAAI,EAAE,SAAS;IACf,aAAa,EAAE,SAAS;IACxB,qBAAqB,EAAE,SAAS;IAChC,OAAO,EAAE,SAAS;IAClB,gCAAgC,EAAE,SAAS;IAC3C,oBAAoB,EAAE,QAAQ;IAC9B,yBAAyB,EAAE,QAAQ;IACnC,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,QAAQ;IACjB,YAAY,EAAE,SAAS;IACvB,GAAG,EAAE,UAAU;IACf,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,QAAQ;IACb,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,SAAS;IACnB,kBAAkB,EAAE,QAAQ;IAC5B,oBAAoB,EAAE,QAAQ;IAC9B,yBAAyB,EAAE,UAAU;IACrC,2CAA2C,EAAE,SAAS;IACtD,yCAAyC,EAAE,UAAU;IACrD,+BAA+B,EAAE,SAAS;IAC1C,oCAAoC,EAAE,SAAS;IAC/C,gBAAgB,EAAE,SAAS;IAC3B,cAAc,EAAE,SAAS;IACzB,0BAA0B,EAAE,SAAS;IACrC,IAAI,EAAE,QAAQ;IACd,iBAAiB,EAAE,SAAS;IAC5B,mBAAmB,EAAE,QAAQ;IAC7B,4BAA4B,EAAE,QAAQ;IACtC,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,UAAU;IACzB,EAAE,EAAE,SAAS;IACb,WAAW,EAAE,SAAS;IACtB,sBAAsB,EAAE,OAAO;IAC/B,6BAA6B,EAAE,QAAQ;IACvC,IAAI,EAAE,QAAQ;IACd,gBAAgB,EAAE,SAAS;IAC3B,oBAAoB,EAAE,SAAS;IAC/B,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,QAAQ;IACjB,iBAAiB,EAAE,SAAS;IAC5B,aAAa,EAAE,SAAS;IACxB,gBAAgB,EAAE,QAAQ;IAC1B,IAAI,EAAE,SAAS;IACf,eAAe,EAAE,SAAS;IAC1B,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,SAAS;CACvB,CAAC"}
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../src/init/manifest/versions.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,MAAM,CAAC,MAAM,QAAQ,GAAqC;IACxD,oBAAoB,EAAE,SAAS;IAC/B,wBAAwB,EAAE,SAAS;IACnC,kBAAkB,EAAE,SAAS;IAC7B,qBAAqB,EAAE,SAAS;IAChC,gBAAgB,EAAE,SAAS;IAC3B,oBAAoB,EAAE,SAAS;IAC/B,qBAAqB,EAAE,SAAS;IAChC,qBAAqB,EAAE,SAAS;IAChC,kBAAkB,EAAE,SAAS;IAC7B,oBAAoB,EAAE,SAAS;IAC/B,qBAAqB,EAAE,SAAS;IAChC,kBAAkB,EAAE,SAAS;IAC7B,sBAAsB,EAAE,SAAS;IACjC,qBAAqB,EAAE,SAAS;IAChC,mBAAmB,EAAE,SAAS;IAC9B,mBAAmB,EAAE,SAAS;IAC9B,mBAAmB,EAAE,SAAS;IAC9B,kBAAkB,EAAE,SAAS;IAC7B,wBAAwB,EAAE,SAAS;IACnC,oBAAoB,EAAE,SAAS;IAC/B,gBAAgB,EAAE,SAAS;IAC3B,oBAAoB,EAAE,WAAW;IACjC,sBAAsB,EAAE,WAAW;IACnC,+BAA+B,EAAE,WAAW;IAC5C,MAAM,EAAE,QAAQ;IAChB,cAAc,EAAE,SAAS;IACzB,kBAAkB,EAAE,SAAS;IAC7B,IAAI,EAAE,SAAS;IACf,aAAa,EAAE,SAAS;IACxB,qBAAqB,EAAE,SAAS;IAChC,OAAO,EAAE,SAAS;IAClB,gCAAgC,EAAE,SAAS;IAC3C,oBAAoB,EAAE,QAAQ;IAC9B,yBAAyB,EAAE,QAAQ;IACnC,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,QAAQ;IACjB,YAAY,EAAE,SAAS;IACvB,GAAG,EAAE,UAAU;IACf,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,QAAQ;IACb,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,UAAU;IAChB,mBAAmB,EAAE,QAAQ;IAC7B,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,SAAS;IACnB,kBAAkB,EAAE,QAAQ;IAC5B,oBAAoB,EAAE,QAAQ;IAC9B,yBAAyB,EAAE,UAAU;IACrC,2CAA2C,EAAE,SAAS;IACtD,yCAAyC,EAAE,UAAU;IACrD,+BAA+B,EAAE,SAAS;IAC1C,oCAAoC,EAAE,SAAS;IAC/C,gBAAgB,EAAE,SAAS;IAC3B,cAAc,EAAE,SAAS;IACzB,0BAA0B,EAAE,SAAS;IACrC,IAAI,EAAE,QAAQ;IACd,iBAAiB,EAAE,SAAS;IAC5B,mBAAmB,EAAE,QAAQ;IAC7B,4BAA4B,EAAE,QAAQ;IACtC,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,UAAU;IACzB,EAAE,EAAE,SAAS;IACb,WAAW,EAAE,SAAS;IACtB,sBAAsB,EAAE,OAAO;IAC/B,6BAA6B,EAAE,QAAQ;IACvC,IAAI,EAAE,QAAQ;IACd,gBAAgB,EAAE,SAAS;IAC3B,oBAAoB,EAAE,SAAS;IAC/B,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,QAAQ;IACjB,iBAAiB,EAAE,SAAS;IAC5B,aAAa,EAAE,SAAS;IACxB,gBAAgB,EAAE,QAAQ;IAC1B,IAAI,EAAE,SAAS;IACf,eAAe,EAAE,SAAS;IAC1B,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,SAAS;CACvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-stack.d.ts","sourceRoot":"","sources":["../../../src/init/stack/resolve-stack.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"resolve-stack.d.ts","sourceRoot":"","sources":["../../../src/init/stack/resolve-stack.ts"],"names":[],"mappings":"AAEA,OAAO,EA6BL,KAAK,MAAM,EACZ,MAAM,uBAAuB,CAAC;AAW/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,CAiBxE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import { AUDIT_MODES, AUTHN_STACKS, AUTHZ_STACKS, BROKER_STACKS, CACHE_STACKS, CI_PLATFORMS, CONFIG_FILE, DEFAULT_IMPORT_ALIAS, DEFAULT_IMPORT_EXTENSION, DEFAULT_SDK_NAME, DI_STACKS, DOCS_UIS, ERROR_REPORTERS, HTTP_CACHE_STACKS, HTTP_STACKS, IMPORT_EXTENSIONS, LOGGERS, REFUSAL_FORMS, ROUTE_FORMS, PACKAGE_MANAGERS, STORAGE_STACKS, parseConfig, readConfig, TEST_STACKS, VALIDATION_STACKS, VALUE_OBJECT_FORMS, LITERAL_FORMS, } from '../../config/index.js';
|
|
3
|
+
import { AUDIT_MODES, AUTHN_STACKS, AUTHZ_STACKS, BROKER_STACKS, CACHE_STACKS, CI_PLATFORMS, CONFIG_FILE, DEFAULT_IMPORT_ALIAS, DEFAULT_IMPORT_EXTENSION, DEFAULT_SDK_NAME, DI_STACKS, DOCS_UIS, ERROR_REPORTERS, HTTP_CACHE_STACKS, HTTP_STACKS, IMPORT_EXTENSIONS, LOGGERS, REFUSAL_FORMS, ROUTE_FORMS, SCHEMA_FORMS, PACKAGE_MANAGERS, STORAGE_STACKS, parseConfig, readConfig, TEST_STACKS, VALIDATION_STACKS, VALUE_OBJECT_FORMS, LITERAL_FORMS, } from '../../config/index.js';
|
|
4
4
|
import { aliasProblem } from '../../alias/index.js';
|
|
5
5
|
import { DEFAULT_PACKAGE_MANAGER } from '../../package-manager/default-package-manager.js';
|
|
6
6
|
import { CliError } from '../../cli-error.js';
|
|
@@ -125,6 +125,8 @@ function resolveWriting(options) {
|
|
|
125
125
|
refusals: choose(REFUSAL_FORMS, options.refusals, 'refusals') ?? 'factories',
|
|
126
126
|
// A new project writes each route as a controller class; a recorded one keeps the form it says, or the functions of 0.3.
|
|
127
127
|
routes: choose(ROUTE_FORMS, options.routes, 'routes') ?? 'controllers',
|
|
128
|
+
// A new project declares a shape once and shares it; a recorded one keeps the form it says, or one schema per route as 0.5.
|
|
129
|
+
schemas: choose(SCHEMA_FORMS, options.schemas, 'schemas') ?? 'shared',
|
|
128
130
|
// A new project throws the refusals of its value objects; a recorded one keeps the form it says, or the Result of 0.5.
|
|
129
131
|
valueObjects: choose(VALUE_OBJECT_FORMS, options.valueObjects, 'value-objects') ?? 'throwing',
|
|
130
132
|
// A new project names its closed values and its numbers; a recorded one keeps the form it says, or the free literals of 0.5.
|
|
@@ -164,6 +166,6 @@ function assertNestGoesWithNest(http, di) {
|
|
|
164
166
|
if ((http === 'nest') === (di === 'nest')) {
|
|
165
167
|
return;
|
|
166
168
|
}
|
|
167
|
-
throw new CliError(`--http ${http} cannot be combined with --di ${di}.`, 'NestJS hosts the application as a whole: use --http nest together with --di nest, or pick express or
|
|
169
|
+
throw new CliError(`--http ${http} cannot be combined with --di ${di}.`, 'NestJS hosts the application as a whole: use --http nest together with --di nest, or pick express, fastify or hono with tsyringe or manual.');
|
|
168
170
|
}
|
|
169
171
|
//# sourceMappingURL=resolve-stack.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-stack.js","sourceRoot":"","sources":["../../../src/init/stack/resolve-stack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,OAAO,EACP,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,GAEd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAKtD;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,OAAqB;IAC9D,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAErD,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7C,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IAC9F,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5G,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAC/C,qHAAqH;IACrH,MAAM,MAAM,GAAG,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;IACjH,MAAM,KAAK,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IACzC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IAC7E,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,GAAG,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAEnG,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;AACtG,CAAC;AAED,iGAAiG;AACjG,SAAS,KAAK,CAAC,OAAqB,EAAE,MAAc;IAClD,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QACrD,OAAO,MAAM,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACjC,MAAM,IAAI,QAAQ,CAChB,4CAA4C,EAC5C,mHAAmH,CACpH,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACvD,CAAC;AAED,2GAA2G;AAC3G,SAAS,cAAc,CAAC,IAAY,EAAE,KAAc;IAClD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QACjD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,6HAA6H;AAC7H,SAAS,QAAQ,CAAC,OAAqB,EAAE,QAA4B;IACnE,MAAM,SAAS,GAAG,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;IAEzF,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,QAAQ,EAAE,WAAW,IAAI,oBAAoB;QACjF,eAAe,EAAE,SAAS,IAAI,QAAQ,EAAE,eAAe,IAAI,wBAAwB;KACpF,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,OAAqB;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,SAAS,CAAC;IACpE,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAE1F,sBAAsB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEjC,MAAM,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC;IACrG,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IAEvD,OAAO;QACL,IAAI;QACJ,EAAE;QACF,GAAG,cAAc,CAAC,OAAO,CAAC;QAC1B,GAAG,WAAW;QACd,MAAM;QACN,GAAG,eAAe,CAAC,OAAO,CAAC;QAC3B,MAAM;QACN,SAAS,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC;QAC9D,GAAG,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC;QAC9C,GAAG,cAAc,CAAC,OAAO,CAAC;QAC1B,GAAG,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5B,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC;QACjD,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;KAC3D,CAAC;AACJ,CAAC;AAED,8HAA8H;AAC9H,SAAS,cAAc,CAAC,MAAc;IACpC,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAEjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,QAAQ,CAChB,qBAAqB,MAAM,CAAC,WAAW,uBAAuB,OAAO,GAAG,EACxE,QAAQ,oBAAoB,wDAAwD,WAAW,IAAI,CACpG,CAAC;AACJ,CAAC;AAED,gIAAgI;AAChI,SAAS,SAAS,CAAC,IAAY,EAAE,MAAc;IAC7C,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAClF,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,iBAAiB,CACxB,OAAqB,EACrB,GAAW;IAEX,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM;QAC7D,yJAAyJ;QACzJ,OAAO,EAAE,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,OAAO;QACtE,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACrF,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM;QACnE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,QAAQ;KAC9D,CAAC;AACJ,CAAC;AAED,4HAA4H;AAC5H,SAAS,cAAc,
|
|
1
|
+
{"version":3,"file":"resolve-stack.js","sourceRoot":"","sources":["../../../src/init/stack/resolve-stack.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack-options.d.ts","sourceRoot":"","sources":["../../../src/init/stack/stack-options.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,8GAA8G;IAC9G,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,iFAAiF;IACjF,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB"}
|
|
1
|
+
{"version":3,"file":"stack-options.d.ts","sourceRoot":"","sources":["../../../src/init/stack/stack-options.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,8GAA8G;IAC9G,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,iFAAiF;IACjF,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-dependencies.d.ts","sourceRoot":"","sources":["../../src/init/validation-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"validation-dependencies.d.ts","sourceRoot":"","sources":["../../src/init/validation-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAajD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAO/D"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
const LIBRARIES = {
|
|
3
3
|
zod: ['zod'],
|
|
4
4
|
'class-validator': ['class-validator', 'class-transformer', 'class-validator-jsonschema'],
|
|
5
|
+
typebox: ['typebox'],
|
|
5
6
|
};
|
|
6
7
|
const VALIDATION_PACKAGE = '@ddd-ts-kit/validation';
|
|
7
8
|
/** What knip counts as used by NestJS itself, whose validation pipe loads them. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-dependencies.js","sourceRoot":"","sources":["../../src/init/validation-dependencies.ts"],"names":[],"mappings":"AAEA,4IAA4I;AAC5I,MAAM,SAAS,GAAgD;IAC7D,GAAG,EAAE,CAAC,KAAK,CAAC;IACZ,iBAAiB,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"validation-dependencies.js","sourceRoot":"","sources":["../../src/init/validation-dependencies.ts"],"names":[],"mappings":"AAEA,4IAA4I;AAC5I,MAAM,SAAS,GAAgD;IAC7D,GAAG,EAAE,CAAC,KAAK,CAAC;IACZ,iBAAiB,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,4BAA4B,CAAC;IACzF,OAAO,EAAE,CAAC,SAAS,CAAC;CACrB,CAAC;AAEF,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AACpD,mFAAmF;AACnF,MAAM,cAAc,GAAG,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACnD,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,KAAK,MAAM,CAAC;IAC7B,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACxG,MAAM,QAAQ,GAAG,UAAU,KAAK,iBAAiB,IAAI,EAAE,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5G,OAAO,CAAC,kBAAkB,EAAE,GAAG,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC;AACvD,CAAC"}
|
package/dist/stack/stack-vars.js
CHANGED
|
@@ -19,7 +19,7 @@ export function stackVars(config) {
|
|
|
19
19
|
assembly: assemblyVars(config),
|
|
20
20
|
decorators: { legacy, standard: !legacy },
|
|
21
21
|
...edgeVars(config),
|
|
22
|
-
validation: one(validation, ['zod', 'class-validator', 'standard-schema', 'none']),
|
|
22
|
+
validation: one(validation, ['zod', 'class-validator', 'typebox', 'standard-schema', 'none']),
|
|
23
23
|
di: one(di, ['tsyringe', 'nest', 'manual']),
|
|
24
24
|
orm: { ...one(orm, ['drizzle', 'knex', 'prisma', 'typeorm', 'custom', 'none']), any: orm !== 'none' },
|
|
25
25
|
events: eventVars(config),
|
|
@@ -55,11 +55,12 @@ function queueVars(config) {
|
|
|
55
55
|
processTable: queue !== 'memory' && (orm === 'knex' || orm === 'drizzle'),
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
|
-
/** How the code
|
|
58
|
+
/** How the code is written: its refusals, its shared schemas, its value objects, its closed values. */
|
|
59
59
|
function modelWritingVars(config) {
|
|
60
|
-
const { refusals, valueObjects, literals } = config.stack;
|
|
60
|
+
const { refusals, schemas, valueObjects, literals } = config.stack;
|
|
61
61
|
return {
|
|
62
62
|
refusals: one(refusals, ['factories', 'classes']),
|
|
63
|
+
schemas: one(schemas, ['shared', 'per-route']),
|
|
63
64
|
valueObjects: one(valueObjects, ['throwing', 'result']),
|
|
64
65
|
literals: one(literals, ['named', 'free']),
|
|
65
66
|
};
|
|
@@ -96,9 +97,9 @@ function edgeVars(config) {
|
|
|
96
97
|
function httpVars(config) {
|
|
97
98
|
const { http } = config.stack;
|
|
98
99
|
return {
|
|
99
|
-
...one(http, ['express', 'fastify', 'nest', 'none']),
|
|
100
|
+
...one(http, ['express', 'fastify', 'hono', 'nest', 'none']),
|
|
100
101
|
any: http !== 'none',
|
|
101
|
-
plain: http === 'express' || http === 'fastify',
|
|
102
|
+
plain: http === 'express' || http === 'fastify' || http === 'hono',
|
|
102
103
|
};
|
|
103
104
|
}
|
|
104
105
|
function platformPaths(config) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack-vars.js","sourceRoot":"","sources":["../../src/stack/stack-vars.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,6GAA6G;AAC7G,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IACnF,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAE5C,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC3C,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC;QAC9B,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE;QACzC,GAAG,QAAQ,CAAC,MAAM,CAAC;QACnB,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"stack-vars.js","sourceRoot":"","sources":["../../src/stack/stack-vars.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,6GAA6G;AAC7G,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IACnF,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAE5C,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC3C,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC;QAC9B,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE;QACzC,GAAG,QAAQ,CAAC,MAAM,CAAC;QACnB,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC7F,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3C,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,MAAM,EAAE;QACrG,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC;QACzB,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC;QACjC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACtD,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC;QAC1B,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC;QACxB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC;QACxB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC;QACxB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC;QACxB,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC;QACzB,GAAG,gBAAgB,CAAC,MAAM,CAAC;QAC3B,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC;QACzB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAClD,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE;QACnG,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE;QAClD,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC;QAC7B,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC;QACxB,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC;QACpC,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,KAAK,MAAM,EAAE;QAC/E,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC;KACzB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,MAAc;IAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IAEpC,OAAO;QACL,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,EAAE,KAAK,KAAK,QAAQ;QAC1B,YAAY,EAAE,KAAK,KAAK,QAAQ,IAAI,CAAC,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,SAAS,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,uGAAuG;AACvG,SAAS,gBAAgB,CAAC,MAAc;IACtC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IAEnE,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACjD,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC9C,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACvD,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,MAAc;IAC/B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IACpD,MAAM,mBAAmB,GAAG,IAAI,KAAK,MAAM,IAAI,KAAK,KAAK,UAAU,CAAC;IAEpE,OAAO;QACL,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAC5C,MAAM,EAAE,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,UAAU,IAAI,MAAM,KAAK,aAAa,CAAC;QAC9E,mBAAmB;QACnB,iBAAiB,EAAE,mBAAmB,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,KAAK,aAAa,CAAC;KAC1G,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,MAAc;IAClC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IAEzC,OAAO;QACL,MAAM,EAAE,KAAK,KAAK,UAAU,IAAI,QAAQ,KAAK,QAAQ;QACrD,SAAS,EAAE,KAAK,KAAK,UAAU,IAAI,QAAQ,KAAK,WAAW;KAC5D,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,SAAS,QAAQ,CAAC,MAAc;IAC9B,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IAC5C,sGAAsG;IACtG,MAAM,SAAS,GAAG,SAAS,KAAK,MAAM,IAAI,OAAO,KAAK,MAAM,CAAC;IAE7D,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC;AACtG,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc;IAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IAE9B,OAAO;QACL,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5D,GAAG,EAAE,IAAI,KAAK,MAAM;QACpB,KAAK,EAAE,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM;KACnE,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC;AACJ,CAAC"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.
|
|
1
|
+
export declare const VERSION = "0.13.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '0.
|
|
1
|
+
export const VERSION = '0.13.0';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ddd-ts-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "Bootstrap, scaffold and verify DDD and Clean Architecture TypeScript projects.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -29,6 +29,6 @@
|
|
|
29
29
|
"clean:packages": "node dist/bin.js check --clean-only ../kernel/src ../validation/src ../http/src ../tracing/src ../di/src ../events/src ../testing/src ../s3/src ../drizzle/src ../knex/src ../prisma/src ../typeorm/src ../aspects/src ../rabbitmq/src ../auth/src ../audit/src ../redis/src ../scheduling/src ../pino/src ../winston/src ../sentry/src ../kafka/src ../nats/src ../eslint-plugin/src"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@ddd-ts-kit/kernel": "^0.
|
|
32
|
+
"@ddd-ts-kit/kernel": "^0.13.0"
|
|
33
33
|
}
|
|
34
34
|
}
|
|
@@ -12,7 +12,7 @@ const params = classSchema({{name.pascal}}Params);
|
|
|
12
12
|
// TODO(domain): once {{name.pascal}}Body has its decorated fields, drop the second argument: it only lets a class without any decorated field through.
|
|
13
13
|
const body = classSchema({{name.pascal}}Body, { validator: { forbidUnknownValues: false } });
|
|
14
14
|
{{/if}}
|
|
15
|
-
{{#if route.
|
|
15
|
+
{{#if route.ownAccepted}}
|
|
16
16
|
const accepted = classSchema({{name.pascal}}Accepted);
|
|
17
17
|
{{/if}}
|
|
18
18
|
{{#if route.isQuery}}
|
|
@@ -34,7 +34,7 @@ const answer = classSchema({{name.pascal}}Answer, { validator: { forbidUnknownVa
|
|
|
34
34
|
body,
|
|
35
35
|
{{/if}}
|
|
36
36
|
{{#if route.returnsId}}
|
|
37
|
-
response: { status: {{route.status}}, description: 'Done; the body carries the identifier.', body:
|
|
37
|
+
response: { status: {{route.status}}, description: 'Done; the body carries the identifier.', body: {{route.acceptedBody}} },
|
|
38
38
|
{{/if}}
|
|
39
39
|
{{#if route.returnsNothing}}
|
|
40
40
|
response: { status: {{route.status}}, description: 'Done.' },
|
|
@@ -23,7 +23,7 @@ const anyObject = customSchema<Record<string, unknown>>(
|
|
|
23
23
|
const body = anyObject;
|
|
24
24
|
|
|
25
25
|
{{/if}}
|
|
26
|
-
{{#if route.
|
|
26
|
+
{{#if route.ownAccepted}}
|
|
27
27
|
const accepted = customSchema<{ readonly id: string }>(
|
|
28
28
|
(input) =>
|
|
29
29
|
typeof input === 'object' && input !== null && 'id' in input && typeof input.id === 'string'
|
|
@@ -50,7 +50,7 @@ const answer = anyObject;
|
|
|
50
50
|
body,
|
|
51
51
|
{{/if}}
|
|
52
52
|
{{#if route.returnsId}}
|
|
53
|
-
response: { status: {{route.status}}, description: 'Done; the body carries the identifier.', body:
|
|
53
|
+
response: { status: {{route.status}}, description: 'Done; the body carries the identifier.', body: {{route.acceptedBody}} },
|
|
54
54
|
{{/if}}
|
|
55
55
|
{{#if route.returnsNothing}}
|
|
56
56
|
response: { status: {{route.status}}, description: 'Done.' },
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{{#if validation.zod}}
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
{{/if}}
|
|
4
|
+
{{#if validation.typebox}}
|
|
5
|
+
import Type from 'typebox';
|
|
6
|
+
{{/if}}
|
|
4
7
|
import {
|
|
5
8
|
Controller,
|
|
6
9
|
pageQuerySchema,
|
|
@@ -23,6 +26,9 @@ import { zodSchema } from '@ddd-ts-kit/validation/zod';
|
|
|
23
26
|
{{#if validation.classValidator}}
|
|
24
27
|
import { classSchema } from '@ddd-ts-kit/validation/class-validator';
|
|
25
28
|
{{/if}}
|
|
29
|
+
{{#if validation.typebox}}
|
|
30
|
+
import { typeboxSchema } from '@ddd-ts-kit/validation/typebox';
|
|
31
|
+
{{/if}}
|
|
26
32
|
{{route.imports}}
|
|
27
33
|
|
|
28
34
|
// TODO(domain): list here the fields of {{name.pascal}}Sort a client may sort by, and bound the size of a page.
|
|
@@ -40,6 +46,14 @@ const line = zodSchema(
|
|
|
40
46
|
{{#if validation.classValidator}}
|
|
41
47
|
const line = classSchema({{name.pascal}}Line);
|
|
42
48
|
{{/if}}
|
|
49
|
+
{{#if validation.typebox}}
|
|
50
|
+
const line = typeboxSchema(
|
|
51
|
+
Type.Object({
|
|
52
|
+
id: Type.String(),
|
|
53
|
+
// TODO(domain): declare the fields of {{name.pascal}}Item that are part of the public contract.
|
|
54
|
+
}),
|
|
55
|
+
);
|
|
56
|
+
{{/if}}
|
|
43
57
|
{{#if search.customSchema}}
|
|
44
58
|
interface {{name.pascal}}Line {
|
|
45
59
|
readonly id: string;
|
|
@@ -26,7 +26,7 @@ const anyObject: StandardSchemaV1<unknown, Record<string, unknown>> = {
|
|
|
26
26
|
const body = standardSchema(anyObject, { type: 'object' });
|
|
27
27
|
|
|
28
28
|
{{/if}}
|
|
29
|
-
{{#if route.
|
|
29
|
+
{{#if route.ownAccepted}}
|
|
30
30
|
const acceptedShape: StandardSchemaV1<unknown, { readonly id: string }> = {
|
|
31
31
|
'~standard': {
|
|
32
32
|
version: 1,
|
|
@@ -62,7 +62,7 @@ const answer = standardSchema(anyObject, { type: 'object' });
|
|
|
62
62
|
body,
|
|
63
63
|
{{/if}}
|
|
64
64
|
{{#if route.returnsId}}
|
|
65
|
-
response: { status: {{route.status}}, description: 'Done; the body carries the identifier.', body:
|
|
65
|
+
response: { status: {{route.status}}, description: 'Done; the body carries the identifier.', body: {{route.acceptedBody}} },
|
|
66
66
|
{{/if}}
|
|
67
67
|
{{#if route.returnsNothing}}
|
|
68
68
|
response: { status: {{route.status}}, description: 'Done.' },
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
{{#if route.declaresSchema}}
|
|
2
|
+
import Type from 'typebox';
|
|
3
|
+
{{/if}}
|
|
4
|
+
import { {{route.httpImports}} } from '@ddd-ts-kit/http';
|
|
5
|
+
import type { {{route.busType}} } from '@ddd-ts-kit/kernel';
|
|
6
|
+
{{#if route.usesInfer}}
|
|
7
|
+
import type { Infer } from '@ddd-ts-kit/validation';
|
|
8
|
+
{{/if}}
|
|
9
|
+
{{#if route.declaresSchema}}
|
|
10
|
+
import { typeboxSchema } from '@ddd-ts-kit/validation/typebox';
|
|
11
|
+
{{/if}}
|
|
12
|
+
{{route.imports}}
|
|
13
|
+
|
|
14
|
+
{{#if route.hasParams}}
|
|
15
|
+
const params = typeboxSchema(Type.Object({ {{route.typeboxParams}} }));
|
|
16
|
+
|
|
17
|
+
{{/if}}
|
|
18
|
+
{{#if route.hasBody}}
|
|
19
|
+
const body = typeboxSchema(
|
|
20
|
+
Type.Object({
|
|
21
|
+
// TODO(domain): declare the fields the client sends for "{{name.words}}", with shape constraints only (types, formats, lengths); business rules stay in the domain.
|
|
22
|
+
}),
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
{{/if}}
|
|
26
|
+
{{#if route.ownAccepted}}
|
|
27
|
+
const accepted = typeboxSchema(Type.Object({ id: Type.String() }));
|
|
28
|
+
|
|
29
|
+
{{/if}}
|
|
30
|
+
{{#if route.isQuery}}
|
|
31
|
+
const answer = typeboxSchema(
|
|
32
|
+
Type.Object({
|
|
33
|
+
// TODO(domain): declare the fields of {{name.pascal}}Result that are part of the public contract.
|
|
34
|
+
}),
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
{{/if}}
|
|
38
|
+
@Controller({
|
|
39
|
+
{{route.access}}
|
|
40
|
+
method: '{{route.method}}',
|
|
41
|
+
path: '{{route.groupPath}}',
|
|
42
|
+
summary: '{{name.title}}',
|
|
43
|
+
{{#if route.hasTypedParams}}
|
|
44
|
+
params,
|
|
45
|
+
{{/if}}
|
|
46
|
+
{{#if route.hasBody}}
|
|
47
|
+
body,
|
|
48
|
+
{{/if}}
|
|
49
|
+
{{#if route.returnsId}}
|
|
50
|
+
response: { status: {{route.status}}, description: 'Done; the body carries the identifier.', body: {{route.acceptedBody}} },
|
|
51
|
+
{{/if}}
|
|
52
|
+
{{#if route.returnsNothing}}
|
|
53
|
+
response: { status: {{route.status}}, description: 'Done.' },
|
|
54
|
+
{{/if}}
|
|
55
|
+
{{#if route.isQuery}}
|
|
56
|
+
response: { status: {{route.status}}, description: 'The answer.', body: answer },
|
|
57
|
+
{{/if}}
|
|
58
|
+
// TODO(domain): list the codes of the refusals "{{name.words}}" can raise, as their factories set them, so that they appear in the contract with their status (`errors/known-code`).
|
|
59
|
+
errors: [],
|
|
60
|
+
})
|
|
61
|
+
export class {{name.pascal}}Controller {
|
|
62
|
+
constructor({{route.constructorParams}}) {}
|
|
63
|
+
|
|
64
|
+
{{#if route.isQuery}}
|
|
65
|
+
async handle({{route.requestParam}}): Promise<{{route.answerType}}> {
|
|
66
|
+
{{#unless route.mapper}}
|
|
67
|
+
// TODO(domain): build the query from `request` (params, query string); the actor is already there.
|
|
68
|
+
{{/unless}}
|
|
69
|
+
{{#if route.serializer}}
|
|
70
|
+
return this.serializer.serialize(await this.{{route.bus}}.execute({{route.message}}));
|
|
71
|
+
{{/if}}
|
|
72
|
+
{{#unless route.serializer}}
|
|
73
|
+
// TODO(domain): map the answer of the query to the public fields.
|
|
74
|
+
await this.{{route.bus}}.execute({{route.message}});
|
|
75
|
+
|
|
76
|
+
return {};
|
|
77
|
+
{{/unless}}
|
|
78
|
+
}
|
|
79
|
+
{{/if}}
|
|
80
|
+
{{#if route.returnsId}}
|
|
81
|
+
async handle({{route.requestParam}}): Promise<{{route.acceptedType}}> {
|
|
82
|
+
{{#unless route.mapper}}
|
|
83
|
+
// TODO(domain): build the command from `request` (body, params); the actor is already there.
|
|
84
|
+
{{/unless}}
|
|
85
|
+
const id = await this.{{route.bus}}.execute({{route.message}});
|
|
86
|
+
|
|
87
|
+
return { id };
|
|
88
|
+
}
|
|
89
|
+
{{/if}}
|
|
90
|
+
{{#if route.returnsNothing}}
|
|
91
|
+
async handle({{route.requestParam}}): Promise<void> {
|
|
92
|
+
{{#unless route.mapper}}
|
|
93
|
+
// TODO(domain): build the command from `request` (body, params); the actor is already there.
|
|
94
|
+
{{/unless}}
|
|
95
|
+
await this.{{route.bus}}.execute({{route.message}});
|
|
96
|
+
}
|
|
97
|
+
{{/if}}
|
|
98
|
+
}
|
|
@@ -23,7 +23,7 @@ const body = zodSchema(
|
|
|
23
23
|
);
|
|
24
24
|
|
|
25
25
|
{{/if}}
|
|
26
|
-
{{#if route.
|
|
26
|
+
{{#if route.ownAccepted}}
|
|
27
27
|
const accepted = zodSchema(z.object({ id: z.string() }), { io: 'output' });
|
|
28
28
|
|
|
29
29
|
{{/if}}
|
|
@@ -48,7 +48,7 @@ const answer = zodSchema(
|
|
|
48
48
|
body,
|
|
49
49
|
{{/if}}
|
|
50
50
|
{{#if route.returnsId}}
|
|
51
|
-
response: { status: {{route.status}}, description: 'Done; the body carries the identifier.', body:
|
|
51
|
+
response: { status: {{route.status}}, description: 'Done; the body carries the identifier.', body: {{route.acceptedBody}} },
|
|
52
52
|
{{/if}}
|
|
53
53
|
{{#if route.returnsNothing}}
|
|
54
54
|
response: { status: {{route.status}}, description: 'Done.' },
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { AddressInfo } from 'node:net';
|
|
2
|
+
import { serve, type ServerType } from '@hono/node-server';
|
|
3
|
+
{{#if cache.rateLimit}}
|
|
4
|
+
import { getConnInfo } from '@hono/node-server/conninfo';
|
|
5
|
+
{{/if}}
|
|
6
|
+
import { Hono } from 'hono';
|
|
7
|
+
import { mountHono } from '@ddd-ts-kit/http/hono';
|
|
8
|
+
import type { Application } from '{{alias.platform}}/compose-application{{alias.ext}}';
|
|
9
|
+
import type { AppConfig } from '{{alias.platform}}/config/app-config{{alias.ext}}';
|
|
10
|
+
{{#if cache.rateLimit}}
|
|
11
|
+
import { refusalFor } from '{{alias.platform}}/http/refusal-for{{alias.ext}}';
|
|
12
|
+
{{/if}}
|
|
13
|
+
{{#if docs.any}}
|
|
14
|
+
import { withDocumentation } from '{{alias.platform}}/http/with-documentation{{alias.ext}}';
|
|
15
|
+
{{/if}}
|
|
16
|
+
|
|
17
|
+
export interface HttpServer {
|
|
18
|
+
/** The port really bound: differs from the configured one when that was 0. */
|
|
19
|
+
readonly port: number;
|
|
20
|
+
|
|
21
|
+
close(): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** What the server needs of the application: its routes and what stands at its edge. */
|
|
25
|
+
type Served = Pick<Application, 'routes' | 'boundary'{{#if cache.rateLimit}} | 'rateLimiter' | 'ready'{{/if}}>;
|
|
26
|
+
|
|
27
|
+
export async function startHttpServer(served: Served, config: AppConfig): Promise<HttpServer> {
|
|
28
|
+
const app = new Hono();
|
|
29
|
+
|
|
30
|
+
{{#if cache.rateLimit}}
|
|
31
|
+
guardTheDoor(app, served, config);
|
|
32
|
+
{{/if}}
|
|
33
|
+
{{#if docs.any}}
|
|
34
|
+
mountHono(app, withDocumentation(served.routes, config), served.boundary);
|
|
35
|
+
{{/if}}
|
|
36
|
+
{{#unless docs.any}}
|
|
37
|
+
mountHono(app, served.routes, served.boundary);
|
|
38
|
+
{{/unless}}
|
|
39
|
+
|
|
40
|
+
const server = await listen(app, config.port);
|
|
41
|
+
|
|
42
|
+
return { port: boundPort(server), close: () => close(server) };
|
|
43
|
+
}
|
|
44
|
+
{{#if cache.rateLimit}}
|
|
45
|
+
|
|
46
|
+
/** The readiness probe, then the limiter, before any route. */
|
|
47
|
+
function guardTheDoor(app: Hono, served: Served, config: AppConfig): void {
|
|
48
|
+
app.get('/health/ready', async (context) => {
|
|
49
|
+
const ready = await served.ready();
|
|
50
|
+
|
|
51
|
+
return context.json({ status: ready ? 'up' : 'down' }, ready ? 200 : 503);
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
app.use(async (context, next) => {
|
|
55
|
+
const refusal = await refusalFor(served.rateLimiter, config.rateLimit, getConnInfo(context).remote.address);
|
|
56
|
+
|
|
57
|
+
if (refusal === undefined) {
|
|
58
|
+
await next();
|
|
59
|
+
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return new Response(JSON.stringify(refusal.problem), { status: refusal.problem.status, headers: refusal.headers });
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
{{/if}}
|
|
67
|
+
|
|
68
|
+
function listen(app: Hono, port: number): Promise<ServerType> {
|
|
69
|
+
return new Promise<ServerType>((resolve) => {
|
|
70
|
+
const server = serve({ fetch: app.fetch, port }, () => resolve(server));
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function boundPort(server: ServerType): number {
|
|
75
|
+
const address: AddressInfo | string | null = server.address();
|
|
76
|
+
|
|
77
|
+
return typeof address === 'object' && address !== null ? address.port : 0;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function close(server: ServerType): Promise<void> {
|
|
81
|
+
return new Promise<void>((resolve, reject) => {
|
|
82
|
+
server.close((error) => (error === undefined ? resolve() : reject(error)));
|
|
83
|
+
});
|
|
84
|
+
}
|
|
@@ -29,6 +29,9 @@ paths:
|
|
|
29
29
|
{{/if}}
|
|
30
30
|
- No role or ownership test in a controller or a route (`authz/in-application`): a guard of the group asks for a role at the edge, the bus asks for the permission, a policy decides on loaded state.
|
|
31
31
|
- Request and response types are presentation types, one class or schema per file next to the controller (`*.body.ts`, `*.params.ts`, `*.answer.ts`...; `*.dto.ts` for function routes and under `shared/`): never an aggregate, never a row.
|
|
32
|
+
{{#if schemas.shared}}
|
|
33
|
+
- A shape several routes use is declared once, in `presentation/http/shared/<name>.schema.ts` (`npx ddd-ts-kit generate schema <context> <Name>`), or in `presentation/` of the shared kernel when several contexts answer with it (`generate schema shared-kernel <Name>`), and shared: the contract documents it once and every route refers to it. A route takes the part it needs from it (pick, omit, partial, extend) instead of copying it, and answers an identifier with `acceptedSchema` of `@ddd-ts-kit/http` (`schema/no-duplicate-shape`). Only presentation layers import a schema (`schema/presentation-only`).
|
|
34
|
+
{{/if}}
|
|
32
35
|
- A read declares how caches may keep its answer in `cache` (its controller, its route group, or the spec of a function route): `private` for what a caller reads again, with `etag`; `public` only for what is the same for everybody, with `tags` naming the resources it shows. A route that knows its caller is `no-store` unless it says otherwise, and a `public` answer of such a route is refused unless `vary` names who calls (`Authorization`, `Cookie`) or the header its tenant is read from (`presentation/shared-cache-varies`, then the mount): never cache a decision of authorization across actors. A group policy reaches the reads of the group only. A write that must not overwrite a newer version declares `ifMatch` and hands `context.expectedVersion` to its command; the handler calls `expectVersion` (412). A change purges the answers it makes stale from a `before-commit` handler of its domain event, `CacheInvalidation.invalidate([cacheTag(...)])` (`platform.cacheInvalidation` on a platform wired by hand): the purge then runs after the commit, through the outbox. Every event that changes what a kept answer shows, its version included, purges it, not only the one the route is about.
|
|
33
36
|
- Never put the message of an unexpected failure in a response or a log.
|
|
34
37
|
- Files: the canonical tree of `presentation/http/` (`naming/suffix`, `tree/closed`): a folder per controller, `*.routes.ts` for the groups, `guards/`, `shared/`; function routes stay flat (`*.route.ts`, `*.dto.ts`).
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"@biomejs/biome": "2.5.15",
|
|
24
24
|
"@commitlint/cli": "^21.2.3",
|
|
25
25
|
"@commitlint/config-conventional": "^21.2.3",
|
|
26
|
-
"@ddd-ts-kit/eslint-plugin": "^0.
|
|
26
|
+
"@ddd-ts-kit/eslint-plugin": "^0.13.0",
|
|
27
27
|
"@eslint/js": "^10.0.1",
|
|
28
28
|
"@typescript/native": "npm:typescript@~7.0.2",
|
|
29
29
|
"@vitest/coverage-v8": "5.0.3",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{{#if route.protected}}
|
|
2
2
|
import { actorOf } from '@ddd-ts-kit/auth';
|
|
3
3
|
{{/if}}
|
|
4
|
-
import { defineRoute, type Route } from '@ddd-ts-kit/http';
|
|
4
|
+
import { {{#if route.sharedAccepted}}acceptedSchema, {{/if}}defineRoute, type Route } from '@ddd-ts-kit/http';
|
|
5
5
|
import type { {{route.busType}} } from '@ddd-ts-kit/kernel';
|
|
6
6
|
import { classSchema } from '@ddd-ts-kit/validation/class-validator';
|
|
7
7
|
{{route.useCaseImport}}
|
|
@@ -14,7 +14,7 @@ const params = classSchema({{name.pascal}}Params);
|
|
|
14
14
|
// TODO(domain): once {{name.pascal}}Body has its decorated fields, drop the second argument: it only lets a class without any decorated field through.
|
|
15
15
|
const body = classSchema({{name.pascal}}Body, { validator: { forbidUnknownValues: false } });
|
|
16
16
|
{{/if}}
|
|
17
|
-
{{#if route.
|
|
17
|
+
{{#if route.ownAccepted}}
|
|
18
18
|
const accepted = classSchema({{name.pascal}}Accepted);
|
|
19
19
|
{{/if}}
|
|
20
20
|
{{#if route.isQuery}}
|
|
@@ -34,7 +34,7 @@ export function {{name.camel}}Route({{route.bus}}: {{route.busType}}): Route {
|
|
|
34
34
|
request: { {{route.requestParts}} },
|
|
35
35
|
{{/if}}
|
|
36
36
|
{{#if route.returnsId}}
|
|
37
|
-
responses: { {{route.status}}: { description: 'Done; the body carries the identifier.', body:
|
|
37
|
+
responses: { {{route.status}}: { description: 'Done; the body carries the identifier.', body: {{route.acceptedBody}} } },
|
|
38
38
|
{{/if}}
|
|
39
39
|
{{#if route.returnsNothing}}
|
|
40
40
|
responses: { {{route.status}}: { description: 'Done.' } },
|