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.
Files changed (165) hide show
  1. package/README.md +13 -2
  2. package/dist/check/catalogue/architecture-rules.d.ts.map +1 -1
  3. package/dist/check/catalogue/architecture-rules.js +4 -0
  4. package/dist/check/catalogue/architecture-rules.js.map +1 -1
  5. package/dist/check/explain/rule-docs.d.ts.map +1 -1
  6. package/dist/check/explain/rule-docs.js +2 -0
  7. package/dist/check/explain/rule-docs.js.map +1 -1
  8. package/dist/check/explain/schema-docs.d.ts +3 -0
  9. package/dist/check/explain/schema-docs.d.ts.map +1 -0
  10. package/dist/check/explain/schema-docs.js +28 -0
  11. package/dist/check/explain/schema-docs.js.map +1 -0
  12. package/dist/check/fixtures/fixtures.d.ts.map +1 -1
  13. package/dist/check/fixtures/fixtures.js +2 -0
  14. package/dist/check/fixtures/fixtures.js.map +1 -1
  15. package/dist/check/fixtures/schema-fixtures.d.ts +3 -0
  16. package/dist/check/fixtures/schema-fixtures.d.ts.map +1 -0
  17. package/dist/check/fixtures/schema-fixtures.js +129 -0
  18. package/dist/check/fixtures/schema-fixtures.js.map +1 -0
  19. package/dist/check/rules/schema-no-duplicate-shape.d.ts +3 -0
  20. package/dist/check/rules/schema-no-duplicate-shape.d.ts.map +1 -0
  21. package/dist/check/rules/schema-no-duplicate-shape.js +60 -0
  22. package/dist/check/rules/schema-no-duplicate-shape.js.map +1 -0
  23. package/dist/check/rules/schema-presentation-only.d.ts +3 -0
  24. package/dist/check/rules/schema-presentation-only.d.ts.map +1 -0
  25. package/dist/check/rules/schema-presentation-only.js +53 -0
  26. package/dist/check/rules/schema-presentation-only.js.map +1 -0
  27. package/dist/check/schemas/class-shapes.d.ts +9 -0
  28. package/dist/check/schemas/class-shapes.d.ts.map +1 -0
  29. package/dist/check/schemas/class-shapes.js +52 -0
  30. package/dist/check/schemas/class-shapes.js.map +1 -0
  31. package/dist/check/schemas/declared-shape.d.ts +9 -0
  32. package/dist/check/schemas/declared-shape.d.ts.map +1 -0
  33. package/dist/check/schemas/declared-shape.js +2 -0
  34. package/dist/check/schemas/declared-shape.js.map +1 -0
  35. package/dist/check/schemas/holds-schemas.d.ts +5 -0
  36. package/dist/check/schemas/holds-schemas.d.ts.map +1 -0
  37. package/dist/check/schemas/holds-schemas.js +12 -0
  38. package/dist/check/schemas/holds-schemas.js.map +1 -0
  39. package/dist/check/schemas/object-shapes.d.ts +8 -0
  40. package/dist/check/schemas/object-shapes.d.ts.map +1 -0
  41. package/dist/check/schemas/object-shapes.js +31 -0
  42. package/dist/check/schemas/object-shapes.js.map +1 -0
  43. package/dist/check/schemas/restored-code.d.ts +7 -0
  44. package/dist/check/schemas/restored-code.d.ts.map +1 -0
  45. package/dist/check/schemas/restored-code.js +17 -0
  46. package/dist/check/schemas/restored-code.js.map +1 -0
  47. package/dist/check/schemas/shared-presentation.d.ts +4 -0
  48. package/dist/check/schemas/shared-presentation.d.ts.map +1 -0
  49. package/dist/check/schemas/shared-presentation.js +5 -0
  50. package/dist/check/schemas/shared-presentation.js.map +1 -0
  51. package/dist/check/schemas/shares-schemas.d.ts +4 -0
  52. package/dist/check/schemas/shares-schemas.d.ts.map +1 -0
  53. package/dist/check/schemas/shares-schemas.js +5 -0
  54. package/dist/check/schemas/shares-schemas.js.map +1 -0
  55. package/dist/check/schemas/still-generated.d.ts +8 -0
  56. package/dist/check/schemas/still-generated.d.ts.map +1 -0
  57. package/dist/check/schemas/still-generated.js +11 -0
  58. package/dist/check/schemas/still-generated.js.map +1 -0
  59. package/dist/check/schemas/top-level-statements.d.ts +3 -0
  60. package/dist/check/schemas/top-level-statements.d.ts.map +1 -0
  61. package/dist/check/schemas/top-level-statements.js +21 -0
  62. package/dist/check/schemas/top-level-statements.js.map +1 -0
  63. package/dist/check/schemas/validation-packages.d.ts +3 -0
  64. package/dist/check/schemas/validation-packages.d.ts.map +1 -0
  65. package/dist/check/schemas/validation-packages.js +13 -0
  66. package/dist/check/schemas/validation-packages.js.map +1 -0
  67. package/dist/commands/init.d.ts.map +1 -1
  68. package/dist/commands/init.js +1 -0
  69. package/dist/commands/init.js.map +1 -1
  70. package/dist/config/default-allowed-packages.d.ts.map +1 -1
  71. package/dist/config/default-allowed-packages.js +1 -0
  72. package/dist/config/default-allowed-packages.js.map +1 -1
  73. package/dist/config/index.d.ts +1 -1
  74. package/dist/config/index.d.ts.map +1 -1
  75. package/dist/config/index.js +1 -1
  76. package/dist/config/index.js.map +1 -1
  77. package/dist/config/parse-stack.d.ts.map +1 -1
  78. package/dist/config/parse-stack.js +2 -1
  79. package/dist/config/parse-stack.js.map +1 -1
  80. package/dist/config/stack.d.ts +11 -2
  81. package/dist/config/stack.d.ts.map +1 -1
  82. package/dist/config/stack.js +3 -2
  83. package/dist/config/stack.js.map +1 -1
  84. package/dist/generate/kinds/route/controller-imports.d.ts.map +1 -1
  85. package/dist/generate/kinds/route/controller-imports.js +2 -1
  86. package/dist/generate/kinds/route/controller-imports.js.map +1 -1
  87. package/dist/generate/kinds/route/controller-types.d.ts.map +1 -1
  88. package/dist/generate/kinds/route/controller-types.js +4 -2
  89. package/dist/generate/kinds/route/controller-types.js.map +1 -1
  90. package/dist/generate/kinds/route/controller-vars.d.ts.map +1 -1
  91. package/dist/generate/kinds/route/controller-vars.js +21 -9
  92. package/dist/generate/kinds/route/controller-vars.js.map +1 -1
  93. package/dist/generate/kinds/route/dto-classes.d.ts +5 -2
  94. package/dist/generate/kinds/route/dto-classes.d.ts.map +1 -1
  95. package/dist/generate/kinds/route/dto-classes.js +6 -3
  96. package/dist/generate/kinds/route/dto-classes.js.map +1 -1
  97. package/dist/generate/kinds/route/route-vars.d.ts.map +1 -1
  98. package/dist/generate/kinds/route/route-vars.js +17 -4
  99. package/dist/generate/kinds/route/route-vars.js.map +1 -1
  100. package/dist/generate/kinds/route/search-line-libraries.d.ts +3 -0
  101. package/dist/generate/kinds/route/search-line-libraries.d.ts.map +1 -0
  102. package/dist/generate/kinds/route/search-line-libraries.js +3 -0
  103. package/dist/generate/kinds/route/search-line-libraries.js.map +1 -0
  104. package/dist/generate/kinds/route/shares-schemas.d.ts +4 -0
  105. package/dist/generate/kinds/route/shares-schemas.d.ts.map +1 -0
  106. package/dist/generate/kinds/route/shares-schemas.js +5 -0
  107. package/dist/generate/kinds/route/shares-schemas.js.map +1 -0
  108. package/dist/generate/kinds/route/write-controller.d.ts.map +1 -1
  109. package/dist/generate/kinds/route/write-controller.js +4 -2
  110. package/dist/generate/kinds/route/write-controller.js.map +1 -1
  111. package/dist/generate/kinds/route-kind.d.ts.map +1 -1
  112. package/dist/generate/kinds/route-kind.js +4 -2
  113. package/dist/generate/kinds/route-kind.js.map +1 -1
  114. package/dist/generate/kinds/schema-kind.d.ts +3 -0
  115. package/dist/generate/kinds/schema-kind.d.ts.map +1 -0
  116. package/dist/generate/kinds/schema-kind.js +36 -0
  117. package/dist/generate/kinds/schema-kind.js.map +1 -0
  118. package/dist/generate/kinds.d.ts.map +1 -1
  119. package/dist/generate/kinds.js +2 -0
  120. package/dist/generate/kinds.js.map +1 -1
  121. package/dist/generate/shared-writes.d.ts.map +1 -1
  122. package/dist/generate/shared-writes.js +5 -0
  123. package/dist/generate/shared-writes.js.map +1 -1
  124. package/dist/help/usage.d.ts +1 -1
  125. package/dist/help/usage.d.ts.map +1 -1
  126. package/dist/help/usage.js +3 -1
  127. package/dist/help/usage.js.map +1 -1
  128. package/dist/init/manifest/dependencies-for.d.ts.map +1 -1
  129. package/dist/init/manifest/dependencies-for.js +2 -0
  130. package/dist/init/manifest/dependencies-for.js.map +1 -1
  131. package/dist/init/manifest/versions.d.ts.map +1 -1
  132. package/dist/init/manifest/versions.js +27 -24
  133. package/dist/init/manifest/versions.js.map +1 -1
  134. package/dist/init/stack/resolve-stack.d.ts.map +1 -1
  135. package/dist/init/stack/resolve-stack.js +4 -2
  136. package/dist/init/stack/resolve-stack.js.map +1 -1
  137. package/dist/init/stack/stack-options.d.ts +1 -0
  138. package/dist/init/stack/stack-options.d.ts.map +1 -1
  139. package/dist/init/validation-dependencies.d.ts.map +1 -1
  140. package/dist/init/validation-dependencies.js +1 -0
  141. package/dist/init/validation-dependencies.js.map +1 -1
  142. package/dist/stack/stack-vars.js +6 -5
  143. package/dist/stack/stack-vars.js.map +1 -1
  144. package/dist/version.d.ts +1 -1
  145. package/dist/version.js +1 -1
  146. package/package.json +2 -2
  147. package/templates/controller/controller.class-validator.ts.tpl +2 -2
  148. package/templates/controller/controller.none.ts.tpl +2 -2
  149. package/templates/controller/controller.search.ts.tpl +14 -0
  150. package/templates/controller/controller.standard-schema.ts.tpl +2 -2
  151. package/templates/controller/controller.typebox.ts.tpl +98 -0
  152. package/templates/controller/controller.zod.ts.tpl +2 -2
  153. package/templates/init/platform/http/start-http-server.hono.ts.tpl +84 -0
  154. package/templates/init/rules/presentation.md.tpl +3 -0
  155. package/templates/pipeline/package-scripts.json +1 -1
  156. package/templates/route/route.class-validator.ts.tpl +3 -3
  157. package/templates/route/route.none.ts.tpl +3 -3
  158. package/templates/route/route.search.ts.tpl +14 -0
  159. package/templates/route/route.standard-schema.ts.tpl +3 -3
  160. package/templates/route/route.typebox.ts.tpl +79 -0
  161. package/templates/route/route.zod.ts.tpl +3 -3
  162. package/templates/schema/schema.class-validator.ts.tpl +3 -0
  163. package/templates/schema/schema.custom.ts.tpl +14 -0
  164. package/templates/schema/schema.typebox.ts.tpl +8 -0
  165. 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.12.0',
4
- '@ddd-ts-kit/validation': '^0.12.0',
5
- '@ddd-ts-kit/http': '^0.12.0',
6
- '@ddd-ts-kit/tracing': '^0.12.0',
7
- '@ddd-ts-kit/di': '^0.12.0',
8
- '@ddd-ts-kit/events': '^0.12.0',
9
- '@ddd-ts-kit/testing': '^0.12.0',
10
- '@ddd-ts-kit/drizzle': '^0.12.0',
11
- '@ddd-ts-kit/knex': '^0.12.0',
12
- '@ddd-ts-kit/prisma': '^0.12.0',
13
- '@ddd-ts-kit/typeorm': '^0.12.0',
14
- '@ddd-ts-kit/auth': '^0.12.0',
15
- '@ddd-ts-kit/rabbitmq': '^0.12.0',
16
- '@ddd-ts-kit/aspects': '^0.12.0',
17
- '@ddd-ts-kit/audit': '^0.12.0',
18
- '@ddd-ts-kit/redis': '^0.12.0',
19
- '@ddd-ts-kit/kafka': '^0.12.0',
20
- '@ddd-ts-kit/nats': '^0.12.0',
21
- '@ddd-ts-kit/scheduling': '^0.12.0',
22
- '@ddd-ts-kit/sentry': '^0.12.0',
23
- '@ddd-ts-kit/s3': '^0.12.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.12.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.12.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.12.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,EA4BL,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
+ {"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 fastify with tsyringe or manual.');
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,CAAC,OAAqB;IAC3C,OAAO;QACL,sHAAsH;QACtH,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,WAAW;QAC5E,yHAAyH;QACzH,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,aAAa;QACtE,uHAAuH;QACvH,YAAY,EAAE,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,YAAY,EAAE,eAAe,CAAC,IAAI,UAAU;QAC7F,6HAA6H;QAC7H,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,OAAO;KACzE,CAAC;AACJ,CAAC;AAED,4HAA4H;AAC5H,SAAS,gBAAgB,CAAC,OAAqB,EAAE,IAAY,EAAE,MAAc;IAC3E,MAAM,SAAS,GAAG,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC;IAEvF,IAAI,SAAS,KAAK,MAAM,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;QACrE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,QAAQ,CAChB,gBAAgB,SAAS,mCAAmC,IAAI,aAAa,MAAM,GAAG,EACtF,6KAA6K,CAC9K,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,OAAqB;IAC5C,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,KAAK;QAC5D,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM;KAC9D,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAqB,EAAE,GAAW;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC;IAEzE,IAAI,MAAM,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,QAAQ,CAChB,YAAY,MAAM,sCAAsC,EACxD,mHAAmH,CACpH,CAAC;AACJ,CAAC;AAID,SAAS,cAAc,CAAC,OAAqB;IAC3C,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,KAAK;QAChF,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,QAAQ;QAC9D,EAAE,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,QAAQ;QACtD,cAAc,EAAE,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,cAAc,EAAE,iBAAiB,CAAC,IAAI,uBAAuB;KAC/G,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY,EAAE,EAAU;IACtD,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,MAAM,IAAI,QAAQ,CAChB,UAAU,IAAI,iCAAiC,EAAE,GAAG,EACpD,uIAAuI,CACxI,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"resolve-stack.js","sourceRoot":"","sources":["../../../src/init/stack/resolve-stack.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,7 @@ export interface StackOptions {
26
26
  readonly dependencies?: string;
27
27
  readonly refusals?: string;
28
28
  readonly routes?: string;
29
+ readonly schemas?: string;
29
30
  readonly valueObjects?: string;
30
31
  readonly literals?: string;
31
32
  readonly tenancy?: string;
@@ -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;AAYjD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAO/D"}
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;CAC1F,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"}
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"}
@@ -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 of the model is written: its refusals, its value objects, its closed values. */
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":"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"}
1
+ {"version":3,"file":"stack-vars.js","sourceRoot":"","sources":["../../src/stack/stack-vars.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.12.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.12.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.12.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.12.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.returnsId}}
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: accepted },
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.returnsId}}
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: accepted },
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.returnsId}}
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: accepted },
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.returnsId}}
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: accepted },
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.12.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.returnsId}}
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: accepted } },
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.' } },