ddd-ts-kit 0.18.0 → 0.20.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 (95) hide show
  1. package/CHANGELOG.md +1294 -0
  2. package/README.fr.md +11 -6
  3. package/README.md +9 -5
  4. package/dist/check/authz/is-granted.d.ts +8 -0
  5. package/dist/check/authz/is-granted.d.ts.map +1 -0
  6. package/dist/check/authz/is-granted.js +11 -0
  7. package/dist/check/authz/is-granted.js.map +1 -0
  8. package/dist/check/authz/permission-sets.d.ts +13 -0
  9. package/dist/check/authz/permission-sets.d.ts.map +1 -0
  10. package/dist/check/authz/permission-sets.js +19 -0
  11. package/dist/check/authz/permission-sets.js.map +1 -0
  12. package/dist/check/catalogue/architecture-rules.d.ts.map +1 -1
  13. package/dist/check/catalogue/architecture-rules.js +4 -0
  14. package/dist/check/catalogue/architecture-rules.js.map +1 -1
  15. package/dist/check/catalogue/default-severities.d.ts.map +1 -1
  16. package/dist/check/catalogue/default-severities.js +1 -0
  17. package/dist/check/catalogue/default-severities.js.map +1 -1
  18. package/dist/check/explain/authz-docs.d.ts.map +1 -1
  19. package/dist/check/explain/authz-docs.js +15 -0
  20. package/dist/check/explain/authz-docs.js.map +1 -1
  21. package/dist/check/explain/events-docs.d.ts.map +1 -1
  22. package/dist/check/explain/events-docs.js +13 -2
  23. package/dist/check/explain/events-docs.js.map +1 -1
  24. package/dist/check/fixtures/authz-granted-fixtures.d.ts +3 -0
  25. package/dist/check/fixtures/authz-granted-fixtures.d.ts.map +1 -0
  26. package/dist/check/fixtures/authz-granted-fixtures.js +71 -0
  27. package/dist/check/fixtures/authz-granted-fixtures.js.map +1 -0
  28. package/dist/check/fixtures/event-sourcing-fixtures.js +3 -3
  29. package/dist/check/fixtures/event-sourcing-fixtures.js.map +1 -1
  30. package/dist/check/fixtures/events-fixtures.d.ts.map +1 -1
  31. package/dist/check/fixtures/events-fixtures.js +30 -1
  32. package/dist/check/fixtures/events-fixtures.js.map +1 -1
  33. package/dist/check/fixtures/fixtures.d.ts.map +1 -1
  34. package/dist/check/fixtures/fixtures.js +2 -0
  35. package/dist/check/fixtures/fixtures.js.map +1 -1
  36. package/dist/check/fixtures/language-fixtures.d.ts.map +1 -1
  37. package/dist/check/fixtures/language-fixtures.js +1 -1
  38. package/dist/check/fixtures/language-fixtures.js.map +1 -1
  39. package/dist/check/fixtures/vocabulary-fixtures.d.ts.map +1 -1
  40. package/dist/check/fixtures/vocabulary-fixtures.js +4 -0
  41. package/dist/check/fixtures/vocabulary-fixtures.js.map +1 -1
  42. package/dist/check/language/declared-vocabularies.d.ts.map +1 -1
  43. package/dist/check/language/declared-vocabularies.js +8 -28
  44. package/dist/check/language/declared-vocabularies.js.map +1 -1
  45. package/dist/check/rules/authz-granted.d.ts +11 -0
  46. package/dist/check/rules/authz-granted.d.ts.map +1 -0
  47. package/dist/check/rules/authz-granted.js +45 -0
  48. package/dist/check/rules/authz-granted.js.map +1 -0
  49. package/dist/check/rules/events-name-declared-once.d.ts +3 -0
  50. package/dist/check/rules/events-name-declared-once.d.ts.map +1 -0
  51. package/dist/check/rules/events-name-declared-once.js +51 -0
  52. package/dist/check/rules/events-name-declared-once.js.map +1 -0
  53. package/dist/check/text/depth-at.d.ts +3 -0
  54. package/dist/check/text/depth-at.d.ts.map +1 -0
  55. package/dist/check/text/depth-at.js +11 -0
  56. package/dist/check/text/depth-at.js.map +1 -0
  57. package/dist/commands/generate.js +2 -0
  58. package/dist/commands/generate.js.map +1 -1
  59. package/dist/generate/access-vars.d.ts.map +1 -1
  60. package/dist/generate/access-vars.js +5 -0
  61. package/dist/generate/access-vars.js.map +1 -1
  62. package/dist/generate/grant-permission.d.ts +9 -0
  63. package/dist/generate/grant-permission.d.ts.map +1 -0
  64. package/dist/generate/grant-permission.js +111 -0
  65. package/dist/generate/grant-permission.js.map +1 -0
  66. package/dist/generate/kind.d.ts +2 -0
  67. package/dist/generate/kind.d.ts.map +1 -1
  68. package/dist/generate/kinds/command-kind.js +1 -1
  69. package/dist/generate/kinds/command-kind.js.map +1 -1
  70. package/dist/generate/kinds/file-upload-kind.js +2 -2
  71. package/dist/generate/kinds/file-upload-kind.js.map +1 -1
  72. package/dist/generate/kinds/query-kind.js +2 -2
  73. package/dist/generate/kinds/query-kind.js.map +1 -1
  74. package/dist/generate/shared-writes.d.ts.map +1 -1
  75. package/dist/generate/shared-writes.js +10 -3
  76. package/dist/generate/shared-writes.js.map +1 -1
  77. package/dist/init/manifest/versions.js +24 -24
  78. package/dist/init/run-init.js +1 -1
  79. package/dist/init/run-init.js.map +1 -1
  80. package/dist/progress/format-progress.js +4 -0
  81. package/dist/progress/format-progress.js.map +1 -1
  82. package/dist/progress/progress.d.ts +2 -0
  83. package/dist/progress/progress.d.ts.map +1 -1
  84. package/dist/progress/read-progress.js +1 -0
  85. package/dist/progress/read-progress.js.map +1 -1
  86. package/dist/progress/read-slices.d.ts +5 -1
  87. package/dist/progress/read-slices.d.ts.map +1 -1
  88. package/dist/progress/read-slices.js +17 -7
  89. package/dist/progress/read-slices.js.map +1 -1
  90. package/dist/version.d.ts +1 -1
  91. package/dist/version.js +1 -1
  92. package/package.json +6 -4
  93. package/templates/init/rules/application.md.tpl +2 -2
  94. package/templates/init/rules/domain.md.tpl +1 -1
  95. package/templates/pipeline/package-scripts.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grant-permission.js","sourceRoot":"","sources":["../../src/generate/grant-permission.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,8 @@ export interface KindFlags {
29
29
  readonly allowName: boolean;
30
30
  /** The permission a use case requires, as `<aggregate>.<action>`. */
31
31
  readonly permission?: string;
32
+ /** The role that holds the new permission, written in the roles of the platform. */
33
+ readonly grant?: string;
32
34
  /** The use case is reachable by anybody, on purpose. */
33
35
  readonly public: boolean;
34
36
  readonly tenantScoped: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"kind.d.ts","sourceRoot":"","sources":["../../src/generate/kind.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kind.d.ts","sourceRoot":"","sources":["../../src/generate/kind.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ import { generateRepository } from './generate-repository.js';
11
11
  export const commandKind = {
12
12
  name: 'command',
13
13
  aliases: [],
14
- usage: 'command <context> <UseCaseName> (--permission <aggregate>.<action> | --public) [--aggregate <Name>] [--term "<Term>=<meaning>"]...',
14
+ usage: 'command <context> <UseCaseName> (--permission <aggregate>.<action> [--grant <role>] | --public) [--aggregate <Name>] [--term "<Term>=<meaning>"]...',
15
15
  summary: 'A command, its handler with injected ports, its spec and its registration on the command bus.',
16
16
  positionals: ['context', 'UseCaseName'],
17
17
  writesShared: true,
@@ -1 +1 @@
1
- {"version":3,"file":"command-kind.js","sourceRoot":"","sources":["../../../src/generate/kinds/command-kind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,CAAC,MAAM,WAAW,GAAS;IAC/B,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,EAAE;IACX,KAAK,EACH,oIAAoI;IACtI,OAAO,EAAE,+FAA+F;IACxG,WAAW,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC;IACvC,YAAY,EAAE,IAAI;IAClB,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;QACf,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAEjC,UAAU,CAAC,KAAK,CAAC,CAAC;QAElB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QAExG,MAAM,SAAS,GACb,OAAO,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAExG,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC;QAEnC,MAAM,OAAO,GAAG,cAAc,CAC5B,KAAK,EACL,EAAE,IAAI,EAAE,SAAS,EAAE,EACnB,UAAU,KAAK,SAAS,IAAI,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,CAC/D,CAAC;QAEF,IACE,SAAS,KAAK,SAAS;YACvB,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,wBAAwB,SAAS,CAAC,KAAK,gBAAgB,CAAC,EACrF,CAAC;YACD,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"command-kind.js","sourceRoot":"","sources":["../../../src/generate/kinds/command-kind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,CAAC,MAAM,WAAW,GAAS;IAC/B,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,EAAE;IACX,KAAK,EACH,qJAAqJ;IACvJ,OAAO,EAAE,+FAA+F;IACxG,WAAW,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC;IACvC,YAAY,EAAE,IAAI;IAClB,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;QACf,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAEjC,UAAU,CAAC,KAAK,CAAC,CAAC;QAElB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QAExG,MAAM,SAAS,GACb,OAAO,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAExG,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC;QAEnC,MAAM,OAAO,GAAG,cAAc,CAC5B,KAAK,EACL,EAAE,IAAI,EAAE,SAAS,EAAE,EACnB,UAAU,KAAK,SAAS,IAAI,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,CAC/D,CAAC;QAEF,IACE,SAAS,KAAK,SAAS;YACvB,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,wBAAwB,SAAS,CAAC,KAAK,gBAAgB,CAAC,EACrF,CAAC;YACD,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;CACF,CAAC"}
@@ -16,10 +16,10 @@ import { planController } from './route/plan-controller.js';
16
16
  export const fileUploadKind = {
17
17
  name: 'file-upload',
18
18
  aliases: [],
19
- usage: 'file-upload <context> <UseCaseName> --path <path> (--permission <aggregate>.<action> | --public) [--method <POST|PUT>] [--group <Name>]',
19
+ usage: 'file-upload <context> <UseCaseName> --path <path> (--permission <aggregate>.<action> [--grant <role>] | --public) [--method <POST|PUT>] [--group <Name>]',
20
20
  summary: 'An upload: a controller that declares the file it receives (size and media types in the contract, checked as it streams), the command that carries it as a FileUpload (staged by the command bus before the transaction), the handler that records it and promotes it with the commit, and their specs. Needs "stack.storage".',
21
21
  positionals: ['context', 'UseCaseName'],
22
- writesShared: false,
22
+ writesShared: true,
23
23
  run: (request) => {
24
24
  const scope = openScope(request);
25
25
  assertFileStack(scope);
@@ -1 +1 @@
1
- {"version":3,"file":"file-upload-kind.js","sourceRoot":"","sources":["../../../src/generate/kinds/file-upload-kind.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-upload-kind.js","sourceRoot":"","sources":["../../../src/generate/kinds/file-upload-kind.ts"],"names":[],"mappings":"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"}
@@ -11,10 +11,10 @@ import { queryOutputs } from './query-outputs.js';
11
11
  export const queryKind = {
12
12
  name: 'query',
13
13
  aliases: [],
14
- usage: 'query <context> <UseCaseName> (--permission <aggregate>.<action> | --public) [--search] [--term "<Term>=<meaning>"]...',
14
+ usage: 'query <context> <UseCaseName> (--permission <aggregate>.<action> [--grant <role>] | --public) [--search] [--term "<Term>=<meaning>"]...',
15
15
  summary: 'A query, its result, its handler, its read port with an in-memory adapter and a fake, its spec and its registration on the query bus; with --search, one page of a search filtered by the access scope of the actor.',
16
16
  positionals: ['context', 'UseCaseName'],
17
- writesShared: false,
17
+ writesShared: true,
18
18
  run: (request) => {
19
19
  const scope = openScope(request);
20
20
  learnTerms(scope);
@@ -1 +1 @@
1
- {"version":3,"file":"query-kind.js","sourceRoot":"","sources":["../../../src/generate/kinds/query-kind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAC;AAErE,MAAM,CAAC,MAAM,SAAS,GAAS;IAC7B,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,EAAE;IACX,KAAK,EACH,wHAAwH;IAC1H,OAAO,EACL,sNAAsN;IACxN,WAAW,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC;IACvC,YAAY,EAAE,KAAK;IACnB,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;QACf,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAEjC,UAAU,CAAC,KAAK,CAAC,CAAC;QAElB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QACtG,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC;QACnC,MAAM,UAAU,GAAG,OAAO,KAAK,EAAE,IAAI,UAAU,KAAK,SAAS,IAAI,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACpG,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAEtD,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAEhE,mHAAmH;QACnH,IAAI,OAAO,KAAK,EAAE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC/C,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;CACF,CAAC;AAEF,iIAAiI;AACjI,SAAS,YAAY,CAAC,KAAY;IAChC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,QAAQ,CAChB,4CAA4C,EAC5C,6LAA6L,CAC9L,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"query-kind.js","sourceRoot":"","sources":["../../../src/generate/kinds/query-kind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAC;AAErE,MAAM,CAAC,MAAM,SAAS,GAAS;IAC7B,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,EAAE;IACX,KAAK,EACH,yIAAyI;IAC3I,OAAO,EACL,sNAAsN;IACxN,WAAW,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC;IACvC,YAAY,EAAE,IAAI;IAClB,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;QACf,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAEjC,UAAU,CAAC,KAAK,CAAC,CAAC;QAElB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QACtG,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC;QACnC,MAAM,UAAU,GAAG,OAAO,KAAK,EAAE,IAAI,UAAU,KAAK,SAAS,IAAI,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACpG,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAEtD,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAEhE,mHAAmH;QACnH,IAAI,OAAO,KAAK,EAAE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC/C,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;CACF,CAAC;AAEF,iIAAiI;AACjI,SAAS,YAAY,CAAC,KAAY;IAChC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,QAAQ,CAChB,4CAA4C,EAC5C,6LAA6L,CAC9L,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"shared-writes.d.ts","sourceRoot":"","sources":["../../src/generate/shared-writes.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,WAAW,WAAW;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAOD,uJAAuJ;AACvJ,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAqE/D,CAAC"}
1
+ {"version":3,"file":"shared-writes.d.ts","sourceRoot":"","sources":["../../src/generate/shared-writes.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,WAAW,WAAW;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAcD,uJAAuJ;AACvJ,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAuE/D,CAAC"}
@@ -1,4 +1,9 @@
1
1
  const STORAGE = ['the schema index of the platform (<platformDir>/database/schema.ts)', 'prisma/schema.prisma'];
2
+ const GRANTS = [
3
+ 'the roles of the platform (<platformDir>/auth/roles.ts)',
4
+ 'the role vocabulary of the platform (<platformDir>/auth/role.ts)',
5
+ ];
6
+ const GRANTED = '--grant <role> names the role that holds the permission (stack.authz rbac)';
2
7
  const STORED = 'the repository is the first of its context with drizzle, knex or typeorm (the tables file of the context joins the schema index), or stack.orm is prisma (every model joins the one schema)';
3
8
  /** One entry per kind whose `writesShared` is true: `--local-only` refuses those writes, the conductor of a parallel build makes them on the trunk. */
4
9
  export const SHARED_WRITES = {
@@ -16,10 +21,12 @@ export const SHARED_WRITES = {
16
21
  },
17
22
  repository: { files: STORAGE, when: STORED },
18
23
  command: {
19
- files: STORAGE,
20
- when: `--aggregate names an aggregate without a repository, which is created with the command, and ${STORED}`,
21
- worker: 'on an aggregate that has its repository',
24
+ files: [...STORAGE, ...GRANTS],
25
+ when: `--aggregate names an aggregate without a repository, which is created with the command, and ${STORED}; or ${GRANTED}`,
26
+ worker: 'on an aggregate that has its repository, without --grant',
22
27
  },
28
+ query: { files: GRANTS, when: GRANTED, worker: 'without --grant' },
29
+ 'file-upload': { files: GRANTS, when: GRANTED, worker: 'without --grant' },
23
30
  'integration-event': {
24
31
  files: ['the audited events registry (<platformDir>/audit/audited-events.ts)', 'docs/context-map.md'],
25
32
  when: 'the audit trail is wired, or the event type is new',
@@ -1 +1 @@
1
- {"version":3,"file":"shared-writes.js","sourceRoot":"","sources":["../../src/generate/shared-writes.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,GAAG,CAAC,qEAAqE,EAAE,sBAAsB,CAAC,CAAC;AAEhH,MAAM,MAAM,GACV,6LAA6L,CAAC;AAEhM,uJAAuJ;AACvJ,MAAM,CAAC,MAAM,aAAa,GAA0C;IAClE,OAAO,EAAE;QACP,KAAK,EAAE;YACL,wBAAwB;YACxB,6DAA6D;YAC7D,uCAAuC;YACvC,8DAA8D;YAC9D,iCAAiC;YACjC,qBAAqB;YACrB,yBAAyB;YACzB,+BAA+B;SAChC;KACF;IACD,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IAC5C,OAAO,EAAE;QACP,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,+FAA+F,MAAM,EAAE;QAC7G,MAAM,EAAE,yCAAyC;KAClD;IACD,mBAAmB,EAAE;QACnB,KAAK,EAAE,CAAC,qEAAqE,EAAE,qBAAqB,CAAC;QACrG,IAAI,EAAE,oDAAoD;KAC3D;IACD,OAAO,EAAE;QACP,KAAK,EAAE,CAAC,wCAAwC,CAAC;QACjD,IAAI,EAAE,iHAAiH;QACvH,MAAM,EAAE,wCAAwC;KACjD;IACD,aAAa,EAAE;QACb,KAAK,EAAE,CAAC,kEAAkE,CAAC;QAC3E,IAAI,EAAE,sDAAsD;QAC5D,MAAM,EAAE,6DAA6D;KACtE;IACD,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,+BAA+B,EAAE,qDAAqD,CAAC,EAAE;IACxG,MAAM,EAAE;QACN,KAAK,EAAE,CAAC,sEAAsE,CAAC;QAC/E,IAAI,EAAE,yBAAyB;KAChC;IACD,OAAO,EAAE;QACP,KAAK,EAAE;YACL,2EAA2E;YAC3E,+EAA+E;SAChF;KACF;IACD,OAAO,EAAE;QACP,KAAK,EAAE;YACL,qCAAqC;YACrC,cAAc;YACd,WAAW;YACX,wBAAwB;YACxB,oBAAoB;YACpB,qBAAqB;SACtB;KACF;IACD,MAAM,EAAE;QACN,KAAK,EAAE;YACL,kCAAkC;YAClC,cAAc;YACd,wBAAwB;YACxB,oBAAoB;YACpB,qCAAqC;SACtC;KACF;IACD,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,2CAA2C,CAAC,EAAE;IAC1E,MAAM,EAAE;QACN,KAAK,EAAE,CAAC,iDAAiD,CAAC;QAC1D,IAAI,EAAE,4EAA4E;QAClF,MAAM,EAAE,sDAAsD;KAC/D;CACF,CAAC"}
1
+ {"version":3,"file":"shared-writes.js","sourceRoot":"","sources":["../../src/generate/shared-writes.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,GAAG,CAAC,qEAAqE,EAAE,sBAAsB,CAAC,CAAC;AAEhH,MAAM,MAAM,GAAG;IACb,yDAAyD;IACzD,kEAAkE;CACnE,CAAC;AAEF,MAAM,OAAO,GAAG,4EAA4E,CAAC;AAE7F,MAAM,MAAM,GACV,6LAA6L,CAAC;AAEhM,uJAAuJ;AACvJ,MAAM,CAAC,MAAM,aAAa,GAA0C;IAClE,OAAO,EAAE;QACP,KAAK,EAAE;YACL,wBAAwB;YACxB,6DAA6D;YAC7D,uCAAuC;YACvC,8DAA8D;YAC9D,iCAAiC;YACjC,qBAAqB;YACrB,yBAAyB;YACzB,+BAA+B;SAChC;KACF;IACD,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IAC5C,OAAO,EAAE;QACP,KAAK,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC;QAC9B,IAAI,EAAE,+FAA+F,MAAM,QAAQ,OAAO,EAAE;QAC5H,MAAM,EAAE,0DAA0D;KACnE;IACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE;IAClE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE;IAC1E,mBAAmB,EAAE;QACnB,KAAK,EAAE,CAAC,qEAAqE,EAAE,qBAAqB,CAAC;QACrG,IAAI,EAAE,oDAAoD;KAC3D;IACD,OAAO,EAAE;QACP,KAAK,EAAE,CAAC,wCAAwC,CAAC;QACjD,IAAI,EAAE,iHAAiH;QACvH,MAAM,EAAE,wCAAwC;KACjD;IACD,aAAa,EAAE;QACb,KAAK,EAAE,CAAC,kEAAkE,CAAC;QAC3E,IAAI,EAAE,sDAAsD;QAC5D,MAAM,EAAE,6DAA6D;KACtE;IACD,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,+BAA+B,EAAE,qDAAqD,CAAC,EAAE;IACxG,MAAM,EAAE;QACN,KAAK,EAAE,CAAC,sEAAsE,CAAC;QAC/E,IAAI,EAAE,yBAAyB;KAChC;IACD,OAAO,EAAE;QACP,KAAK,EAAE;YACL,2EAA2E;YAC3E,+EAA+E;SAChF;KACF;IACD,OAAO,EAAE;QACP,KAAK,EAAE;YACL,qCAAqC;YACrC,cAAc;YACd,WAAW;YACX,wBAAwB;YACxB,oBAAoB;YACpB,qBAAqB;SACtB;KACF;IACD,MAAM,EAAE;QACN,KAAK,EAAE;YACL,kCAAkC;YAClC,cAAc;YACd,wBAAwB;YACxB,oBAAoB;YACpB,qCAAqC;SACtC;KACF;IACD,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,2CAA2C,CAAC,EAAE;IAC1E,MAAM,EAAE;QACN,KAAK,EAAE,CAAC,iDAAiD,CAAC;QAC1D,IAAI,EAAE,4EAA4E;QAClF,MAAM,EAAE,sDAAsD;KAC/D;CACF,CAAC"}
@@ -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.18.0',
4
- '@ddd-ts-kit/validation': '^0.18.0',
5
- '@ddd-ts-kit/http': '^0.18.0',
6
- '@ddd-ts-kit/tracing': '^0.18.0',
7
- '@ddd-ts-kit/di': '^0.18.0',
8
- '@ddd-ts-kit/events': '^0.18.0',
9
- '@ddd-ts-kit/testing': '^0.18.0',
10
- '@ddd-ts-kit/drizzle': '^0.18.0',
11
- '@ddd-ts-kit/knex': '^0.18.0',
12
- '@ddd-ts-kit/prisma': '^0.18.0',
13
- '@ddd-ts-kit/typeorm': '^0.18.0',
14
- '@ddd-ts-kit/auth': '^0.18.0',
15
- '@ddd-ts-kit/rabbitmq': '^0.18.0',
16
- '@ddd-ts-kit/aspects': '^0.18.0',
17
- '@ddd-ts-kit/audit': '^0.18.0',
18
- '@ddd-ts-kit/redis': '^0.18.0',
19
- '@ddd-ts-kit/kafka': '^0.18.0',
20
- '@ddd-ts-kit/nats': '^0.18.0',
21
- '@ddd-ts-kit/scheduling': '^0.18.0',
22
- '@ddd-ts-kit/sentry': '^0.18.0',
23
- '@ddd-ts-kit/s3': '^0.18.0',
3
+ '@ddd-ts-kit/kernel': '^0.20.0',
4
+ '@ddd-ts-kit/validation': '^0.20.0',
5
+ '@ddd-ts-kit/http': '^0.20.0',
6
+ '@ddd-ts-kit/tracing': '^0.20.0',
7
+ '@ddd-ts-kit/di': '^0.20.0',
8
+ '@ddd-ts-kit/events': '^0.20.0',
9
+ '@ddd-ts-kit/testing': '^0.20.0',
10
+ '@ddd-ts-kit/drizzle': '^0.20.0',
11
+ '@ddd-ts-kit/knex': '^0.20.0',
12
+ '@ddd-ts-kit/prisma': '^0.20.0',
13
+ '@ddd-ts-kit/typeorm': '^0.20.0',
14
+ '@ddd-ts-kit/auth': '^0.20.0',
15
+ '@ddd-ts-kit/rabbitmq': '^0.20.0',
16
+ '@ddd-ts-kit/aspects': '^0.20.0',
17
+ '@ddd-ts-kit/audit': '^0.20.0',
18
+ '@ddd-ts-kit/redis': '^0.20.0',
19
+ '@ddd-ts-kit/kafka': '^0.20.0',
20
+ '@ddd-ts-kit/nats': '^0.20.0',
21
+ '@ddd-ts-kit/scheduling': '^0.20.0',
22
+ '@ddd-ts-kit/sentry': '^0.20.0',
23
+ '@ddd-ts-kit/s3': '^0.20.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.18.0',
29
+ '@ddd-ts-kit/pino': '^0.20.0',
30
30
  pino: '^10.4.0',
31
31
  'pino-pretty': '^13.2.0',
32
- '@ddd-ts-kit/winston': '^0.18.0',
32
+ '@ddd-ts-kit/winston': '^0.20.0',
33
33
  winston: '^3.19.0',
34
34
  '@confluentinc/kafka-javascript': '^1.11.0',
35
35
  '@nats-io/jetstream': '^3.4.0',
@@ -37,7 +37,7 @@ 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.18.0',
40
+ 'ddd-ts-kit': '^0.20.0',
41
41
  tsx: '^4.23.15',
42
42
  vitest: '^5.0.3',
43
43
  zod: '^4.6.5',
@@ -78,7 +78,7 @@ function rewireContexts(ws, config) {
78
78
  wireContext(ws, { config, context: parseContextName(name), request: { name, classification, upstreams } });
79
79
  }
80
80
  if (present.length > 0) {
81
- ws.note(`--force rewrote the files of the platform from their templates and wired the declared contexts again (${present.map(([name]) => name).join(', ')}). What a generator had added to one of those files besides (the value of a gateway, the settings of a job, a policy of its own) is gone: run \`npm run verify\`, and generate again what it reports missing.`);
81
+ ws.note(`--force rewrote the files of the platform from their templates and wired the declared contexts again (${present.map(([name]) => name).join(', ')}). What a generator had added to one of those files besides (the value of a gateway, the settings of a job, the grant of a role, a policy of its own) is gone: run \`npm run verify\`, and generate again what it reports missing.`);
82
82
  }
83
83
  }
84
84
  /** The contexts asked of this run, then what every context of the project needs from the analyzers: one that is initialised again keeps its own. */
@@ -1 +1 @@
1
- {"version":3,"file":"run-init.js","sourceRoot":"","sources":["../../src/init/run-init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-init.js","sourceRoot":"","sources":["../../src/init/run-init.ts"],"names":[],"mappings":"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"}
@@ -23,8 +23,12 @@ function sliceLines(slices) {
23
23
  .filter((status) => status !== 'done')
24
24
  .flatMap((status) => [` ${status}`, ...slices.rows.filter((row) => row.status === status).map(rowLine)]);
25
25
  const owners = Object.entries(slices.byOwner).map(([owner, byStatus]) => ` ${owner}: ${counts(byStatus, statuses)}`);
26
+ const duplicated = slices.duplicates.length === 0
27
+ ? []
28
+ : [` row numbers used more than once: ${slices.duplicates.join(', ')} (give each row its own number)`];
26
29
  return [
27
30
  `Slices (${slices.file}): ${slices.rows.length}, ${counts(slices.byStatus, statuses)}`,
31
+ ...duplicated,
28
32
  ...open,
29
33
  ' by owner',
30
34
  ...owners,
@@ -1 +1 @@
1
- {"version":3,"file":"format-progress.js","sourceRoot":"","sources":["../../src/progress/format-progress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format-progress.js","sourceRoot":"","sources":["../../src/progress/format-progress.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,8 @@ export interface SlicesProgress {
15
15
  readonly byStatus: Readonly<Record<string, readonly string[]>>;
16
16
  /** The ids of the rows, by owner then by status. */
17
17
  readonly byOwner: Readonly<Record<string, Readonly<Record<string, readonly string[]>>>>;
18
+ /** The ids that more than one row carries, across the tables of the file: each such row is counted. */
19
+ readonly duplicates: readonly string[];
18
20
  }
19
21
  export interface RemainingCount {
20
22
  readonly context: string;
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/progress/progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,0GAA0G;AAC1G,MAAM,WAAW,QAAQ;IACvB,4HAA4H;IAC5H,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mGAAmG;IACnG,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,sHAAsH;IACtH,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,CAAC;IAChC,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IAC/D,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CACzF;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,yBAAyB;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/progress/progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,0GAA0G;AAC1G,MAAM,WAAW,QAAQ;IACvB,4HAA4H;IAC5H,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mGAAmG;IACnG,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,sHAAsH;IACtH,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,CAAC;IAChC,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IAC/D,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,uGAAuG;IACvG,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,yBAAyB;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB"}
@@ -17,6 +17,7 @@ function slicesProgress(rows) {
17
17
  rows,
18
18
  byStatus: idsByStatus(rows),
19
19
  byOwner: Object.fromEntries(owners.map((owner) => [owner, idsByStatus(rows.filter((row) => row.owner === owner))])),
20
+ duplicates: [...new Set(rows.map((row) => row.id).filter((id, index, ids) => ids.indexOf(id) !== index))],
20
21
  };
21
22
  }
22
23
  function idsByStatus(rows) {
@@ -1 +1 @@
1
- {"version":3,"file":"read-progress.js","sourceRoot":"","sources":["../../src/progress/read-progress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read-progress.js","sourceRoot":"","sources":["../../src/progress/read-progress.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
1
  import type { Workspace } from '../workspace/index.js';
2
2
  import type { Slice } from './slice.js';
3
3
  export declare const SLICES_FILE = "docs/architecture/slices.md";
4
- /** The rows of the slices table; undefined when the project has no slices file or the file has no such table. */
4
+ /**
5
+ * The rows of every slices table, in the order of the file: a plan may keep one table per
6
+ * milestone or story, each under the same header. Undefined when the project has no slices file
7
+ * or the file has no such table.
8
+ */
5
9
  export declare function readSlices(ws: Workspace): Slice[] | undefined;
6
10
  //# sourceMappingURL=read-slices.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"read-slices.d.ts","sourceRoot":"","sources":["../../src/progress/read-slices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,eAAO,MAAM,WAAW,gCAAgC,CAAC;AAIzD,iHAAiH;AACjH,wBAAgB,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,SAAS,CAqB7D"}
1
+ {"version":3,"file":"read-slices.d.ts","sourceRoot":"","sources":["../../src/progress/read-slices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,eAAO,MAAM,WAAW,gCAAgC,CAAC;AAIzD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,SAAS,CAS7D"}
@@ -1,20 +1,30 @@
1
1
  export const SLICES_FILE = 'docs/architecture/slices.md';
2
2
  const COLUMNS = ['#', 'context', 'kind', 'slice', 'start with', 'depends on', 'owner', 'status'];
3
- /** The rows of the slices table; undefined when the project has no slices file or the file has no such table. */
3
+ /**
4
+ * The rows of every slices table, in the order of the file: a plan may keep one table per
5
+ * milestone or story, each under the same header. Undefined when the project has no slices file
6
+ * or the file has no such table.
7
+ */
4
8
  export function readSlices(ws) {
5
9
  const lines = (ws.read(SLICES_FILE) ?? '').split('\n');
6
- const header = lines.findIndex((line) => cellsOf(line)
7
- .map((cell) => cell.toLowerCase())
8
- .join('|') === COLUMNS.join('|'));
9
- if (header === -1) {
10
+ const headers = lines.flatMap((line, index) => (isHeader(line) ? [index] : []));
11
+ if (headers.length === 0) {
10
12
  return undefined;
11
13
  }
14
+ return headers.flatMap((header) => tableRows(lines, header)).map(sliceOf);
15
+ }
16
+ function isHeader(line) {
17
+ return (cellsOf(line)
18
+ .map((cell) => cell.toLowerCase())
19
+ .join('|') === COLUMNS.join('|'));
20
+ }
21
+ /** The rows under a header and its separator, up to the first line that is not a row. */
22
+ function tableRows(lines, header) {
12
23
  const end = lines.findIndex((line, index) => index > header + 1 && !line.trim().startsWith('|'));
13
24
  return lines
14
25
  .slice(header + 2, end === -1 ? undefined : end)
15
26
  .map(cellsOf)
16
- .filter((cells) => cells.length === COLUMNS.length)
17
- .map(sliceOf);
27
+ .filter((cells) => cells.length === COLUMNS.length);
18
28
  }
19
29
  /** The cells of a table row; a `\|` inside a cell is a bar of its text. */
20
30
  function cellsOf(line) {
@@ -1 +1 @@
1
- {"version":3,"file":"read-slices.js","sourceRoot":"","sources":["../../src/progress/read-slices.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,WAAW,GAAG,6BAA6B,CAAC;AAEzD,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAEjG,iHAAiH;AACjH,MAAM,UAAU,UAAU,CAAC,EAAa;IACtC,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAC5B,CAAC,IAAI,EAAE,EAAE,CACP,OAAO,CAAC,IAAI,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SACjC,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CACrC,CAAC;IAEF,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAEjG,OAAO,KAAK;SACT,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;SAC/C,GAAG,CAAC,OAAO,CAAC;SACZ,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;SAClD,GAAG,CAAC,OAAO,CAAC,CAAC;AAClB,CAAC;AAED,2EAA2E;AAC3E,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAExB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,GAAG;SACP,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACZ,KAAK,CAAC,WAAW,CAAC;SAClB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,OAAO,CAAC,KAAwB;IACvC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;IAEtH,OAAO;QACL,EAAE;QACF,OAAO;QACP,IAAI;QACJ,KAAK;QACL,SAAS;QACT,SAAS,EAAE,SAAS;aACjB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;aACxB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC;QAC9B,KAAK;QACL,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE;KAC7B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"read-slices.js","sourceRoot":"","sources":["../../src/progress/read-slices.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.18.0";
1
+ export declare const VERSION = "0.20.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = '0.18.0';
1
+ export const VERSION = '0.20.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.18.0",
3
+ "version": "0.20.0",
4
4
  "description": "Bootstrap, scaffold and verify Domain-Driven Design (DDD), Clean Architecture and hexagonal TypeScript backends on Node.js: project and code generators, architecture checks, OpenAPI and AsyncAPI documents, for developers and AI coding agents (Claude Code, Codex, GitHub Copilot).",
5
5
  "keywords": [
6
6
  "ddd",
@@ -29,7 +29,7 @@
29
29
  "url": "git+https://github.com/gbourgeat/ddd-ts-kit.git",
30
30
  "directory": "packages/cli"
31
31
  },
32
- "homepage": "https://github.com/gbourgeat/ddd-ts-kit/tree/main/packages/cli#readme",
32
+ "homepage": "https://gbourgeat.github.io/ddd-ts-kit/",
33
33
  "bugs": "https://github.com/gbourgeat/ddd-ts-kit/issues",
34
34
  "publishConfig": {
35
35
  "access": "public",
@@ -42,14 +42,16 @@
42
42
  },
43
43
  "files": [
44
44
  "dist",
45
- "templates"
45
+ "templates",
46
+ "CHANGELOG.md"
46
47
  ],
47
48
  "scripts": {
48
49
  "build": "tsc -b",
50
+ "prepack": "node -e \"require('node:fs').copyFileSync('../../CHANGELOG.md', 'CHANGELOG.md')\"",
49
51
  "clean:self": "node dist/bin.js check --clean-only src test",
50
52
  "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"
51
53
  },
52
54
  "devDependencies": {
53
- "@ddd-ts-kit/kernel": "^0.18.0"
55
+ "@ddd-ts-kit/kernel": "^0.20.0"
54
56
  }
55
57
  }
@@ -10,12 +10,12 @@ paths:
10
10
  - Events leave with the save: never `pullEvents()`, never a `DomainEventDispatcher` here (`domain-events/dispatched-on-save`). A reaction is a class of `event-handlers/` or a publisher of `integration/publishers/`. It runs at the end of the unit of work, before the commit, and depends only on what the transaction covers (`domain-events/transactional-before-commit`): repositories, the integration event publisher, the command bus. An effect outside the database is a handler of the `after-commit` phase (`generate event-handler ... --phase after-commit`: at most once, never saves, sends a command) or, when it must not be lost, the handler of an integration event.
11
11
  - Nothing here reads the event store: an event-sourced aggregate is loaded and saved through its repository port like any other (`event-sourcing/store-behind-repository`). A projection writes its read model and never a stream (`event-sourcing/projection-never-appends`); one fed by the store is declared `@Projection(name, { feed: 'event-store' })`.
12
12
  {{#if style.declared}}
13
- - Every command and query carries `@Requires(permission)` or `@Public()` (`authz/declared`), and the actor is in the message (`authz/actor-explicit`). Permissions live in `authorization/<context>.permissions.ts`, rules that need loaded state in `authorization/*.policy.ts`.
13
+ - Every command and query carries `@Requires(permission)` or `@Public()` (`authz/declared`), and the actor is in the message (`authz/actor-explicit`). Permissions live in `authorization/<context>.permissions.ts`, rules that need loaded state in `authorization/*.policy.ts`.{{#if authz.rbac}} A role holds each permission by name in the roles of the platform (`--grant <role>` when generating it): the super-admin `*` alone refuses everybody else (`authz/granted`).{{/if}}
14
14
  - The decorator is the registration (`declarations/role-declared`): `@CommandHandler(Message)`, `@QueryHandler(Message)`, `@DomainEventHandler(Event)` (the name is the static `eventName` of the event class), `@IntegrationEventHandler(definition, { consumer })`, `@Scheduled('<context>.<job>', schedule)`, `@Background(options)` (the name is the static `jobName`), `@Projection('<context>.<name>')`, `@Policy(permission, { name })`. Names are string literals.
15
15
  - The constructor is the one statement of what a class depends on (`declarations/constructor-injection`): each parameter is typed by one port class, with no `?`, default value, rest or destructuring, and no list repeats it in the decorator. To add a dependency, add the parameter: `npx ddd-ts-kit docs` reads the signature into the generated file of the context (`npm run dev` does it on every change), never edit that file.
16
16
  {{/if}}
17
17
  {{#if style.explicit}}
18
- - Every command and query is registered in `<context>.module.ts` with the permission it requires, or as public (`authz/declared`), and the actor is in the message (`authz/actor-explicit`). Permissions live in `authorization/<context>.permissions.ts`, rules that need loaded state in `authorization/*.policy.ts`.
18
+ - Every command and query is registered in `<context>.module.ts` with the permission it requires, or as public (`authz/declared`), and the actor is in the message (`authz/actor-explicit`). Permissions live in `authorization/<context>.permissions.ts`, rules that need loaded state in `authorization/*.policy.ts`.{{#if authz.rbac}} A role holds each permission by name in the roles of the platform (`--grant <role>` when generating it): the super-admin `*` alone refuses everybody else (`authz/granted`).{{/if}}
19
19
  - A class here carries no registration of its own: `<context>.module.ts` binds it and lists what its constructor receives. A job is registered as `@Scheduled('<context>.<job>', schedule)` would say: one name, one schedule, and the command bus as its only dependency.
20
20
  {{/if}}
21
21
  - A port is an abstract class in `ports/<name>.port.ts` and its own injection token (`ports/abstract-class`, `ports/no-token-constant`), named for the need (`PaymentGateway`), with a fake in `test/fakes/`.
@@ -28,7 +28,7 @@ paths:
28
28
  {{#if valueObjects.result}}
29
29
  - A value object returns its refusals in the `Result` of `create`{{#if refusals.factories}}: `err(PersonError.invalidEmail(raw))`{{/if}}; the caller unwraps it with `unwrap(..)` of the kernel. `npx ddd-ts-kit value-objects` moves the project to factories that throw.
30
30
  {{/if}}
31
- - Domain events are named in the past tense, `<context>.<aggregate>.<fact>` (`events/name-format`), and recorded by the aggregate (`this.record(...)`). They leave with the save: nothing here dispatches them.
31
+ - Domain events are named in the past tense, `<context>.<aggregate>.<fact>` (`events/name-format`), declared once on the class, `static readonly eventName`, which `readonly name` reads (`events/name-declared-once`), and recorded by the aggregate (`this.record(...)`). They leave with the save: nothing here dispatches them.
32
32
  - An aggregate whose history is the business can be event-sourced, chosen per aggregate (`generate aggregate <context> <Name> --event-sourced`): it extends `EventSourcedAggregate`, a command checks the invariants then `this.record(...)`, and only its `apply<Fact>` methods (and `restore`, for a snapshot) change the state (`event-sourcing/state-in-apply`). Its events are named in the past tense (`event-sourcing/past-tense`). The other aggregates keep their state in tables.
33
33
  - A repository here is a port: an abstract class extending the kernel `Repository<Aggregate>`, abstract members only (`ports/abstract-class`). A domain service is stateless.
34
34
  - Time and identifiers come in as parameters (`purity/*`); nothing here knows the acting user or its rights (`authz/in-application`).
@@ -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.18.0",
26
+ "@ddd-ts-kit/eslint-plugin": "^0.20.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",