@rytass/bpm-core-nestjs-module 0.21.4 → 0.23.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 (143) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/README.md +9 -1
  3. package/package.json +2 -2
  4. package/src/index.d.ts +1 -0
  5. package/src/index.js +1 -0
  6. package/src/index.js.map +1 -1
  7. package/src/lib/bpm/bpm-root-options.d.ts +57 -0
  8. package/src/lib/bpm/bpm-root-options.js.map +1 -1
  9. package/src/lib/bpm/bpm-root.module.d.ts +21 -0
  10. package/src/lib/bpm/bpm-root.module.js +6 -0
  11. package/src/lib/bpm/bpm-root.module.js.map +1 -1
  12. package/src/lib/form/dto/form-definition.input.d.ts +5 -0
  13. package/src/lib/form/dto/form-definition.input.js.map +1 -1
  14. package/src/lib/form/form-definition.entity.d.ts +5 -0
  15. package/src/lib/form/form-definition.entity.js +7 -0
  16. package/src/lib/form/form-definition.entity.js.map +1 -1
  17. package/src/lib/form/form-schema.validator.js +17 -5
  18. package/src/lib/form/form-schema.validator.js.map +1 -1
  19. package/src/lib/form/form.queries.d.ts +2 -2
  20. package/src/lib/form/form.queries.js +17 -5
  21. package/src/lib/form/form.queries.js.map +1 -1
  22. package/src/lib/form/form.service.d.ts +2 -1
  23. package/src/lib/form/form.service.js +10 -5
  24. package/src/lib/form/form.service.js.map +1 -1
  25. package/src/lib/form-data-source/form-data-source-value-resolver.service.js +22 -2
  26. package/src/lib/form-data-source/form-data-source-value-resolver.service.js.map +1 -1
  27. package/src/lib/form-data-source/form-data-source.errors.d.ts +11 -0
  28. package/src/lib/form-data-source/form-data-source.errors.js +14 -1
  29. package/src/lib/form-data-source/form-data-source.errors.js.map +1 -1
  30. package/src/lib/form-data-source/form-data-source.service.d.ts +6 -0
  31. package/src/lib/form-data-source/form-data-source.service.js +41 -15
  32. package/src/lib/form-data-source/form-data-source.service.js.map +1 -1
  33. package/src/lib/identity/identity-options.d.ts +1 -1
  34. package/src/lib/identity/identity.queries.d.ts +0 -2
  35. package/src/lib/identity/identity.queries.js +0 -11
  36. package/src/lib/identity/identity.queries.js.map +1 -1
  37. package/src/lib/instance-event/approval-instance-event.entity.d.ts +27 -0
  38. package/src/lib/instance-event/approval-instance-event.entity.js +93 -0
  39. package/src/lib/instance-event/approval-instance-event.entity.js.map +1 -0
  40. package/src/lib/instance-event/index.d.ts +13 -0
  41. package/src/lib/instance-event/index.js +17 -0
  42. package/src/lib/instance-event/index.js.map +1 -0
  43. package/src/lib/instance-event/instance-event.delivery-scheduler.service.d.ts +21 -0
  44. package/src/lib/instance-event/instance-event.delivery-scheduler.service.js +81 -0
  45. package/src/lib/instance-event/instance-event.delivery-scheduler.service.js.map +1 -0
  46. package/src/lib/instance-event/instance-event.delivery.service.d.ts +69 -0
  47. package/src/lib/instance-event/instance-event.delivery.service.js +259 -0
  48. package/src/lib/instance-event/instance-event.delivery.service.js.map +1 -0
  49. package/src/lib/instance-event/instance-event.delivery.subscriber.d.ts +24 -0
  50. package/src/lib/instance-event/instance-event.delivery.subscriber.js +85 -0
  51. package/src/lib/instance-event/instance-event.delivery.subscriber.js.map +1 -0
  52. package/src/lib/instance-event/instance-event.enums.d.ts +12 -0
  53. package/src/lib/instance-event/instance-event.enums.js +28 -0
  54. package/src/lib/instance-event/instance-event.enums.js.map +1 -0
  55. package/src/lib/instance-event/instance-event.module.d.ts +13 -0
  56. package/src/lib/instance-event/instance-event.module.js +52 -0
  57. package/src/lib/instance-event/instance-event.module.js.map +1 -0
  58. package/src/lib/instance-event/instance-event.object.d.ts +24 -0
  59. package/src/lib/instance-event/instance-event.object.js +73 -0
  60. package/src/lib/instance-event/instance-event.object.js.map +1 -0
  61. package/src/lib/instance-event/instance-event.options.d.ts +26 -0
  62. package/src/lib/instance-event/instance-event.options.js +35 -0
  63. package/src/lib/instance-event/instance-event.options.js.map +1 -0
  64. package/src/lib/instance-event/instance-event.resolver.d.ts +10 -0
  65. package/src/lib/instance-event/instance-event.resolver.js +75 -0
  66. package/src/lib/instance-event/instance-event.resolver.js.map +1 -0
  67. package/src/lib/instance-event/instance-event.service.d.ts +18 -0
  68. package/src/lib/instance-event/instance-event.service.js +37 -0
  69. package/src/lib/instance-event/instance-event.service.js.map +1 -0
  70. package/src/lib/instance-event/instance-event.token.d.ts +19 -0
  71. package/src/lib/instance-event/instance-event.token.js +9 -0
  72. package/src/lib/instance-event/instance-event.token.js.map +1 -0
  73. package/src/lib/instance-event/instance-event.types.d.ts +67 -0
  74. package/src/lib/instance-event/instance-event.types.js +9 -0
  75. package/src/lib/instance-event/instance-event.types.js.map +1 -0
  76. package/src/lib/instance-event/instance-event.writer.d.ts +21 -0
  77. package/src/lib/instance-event/instance-event.writer.js +45 -0
  78. package/src/lib/instance-event/instance-event.writer.js.map +1 -0
  79. package/src/lib/migrations/0000000032000-host-integration-round.d.ts +25 -0
  80. package/src/lib/migrations/0000000032000-host-integration-round.js +104 -0
  81. package/src/lib/migrations/0000000032000-host-integration-round.js.map +1 -0
  82. package/src/lib/migrations/index.d.ts +1 -0
  83. package/src/lib/migrations/index.js +3 -0
  84. package/src/lib/migrations/index.js.map +1 -1
  85. package/src/lib/notification/notification.service.js +50 -9
  86. package/src/lib/notification/notification.service.js.map +1 -1
  87. package/src/lib/template/approval-template-version.entity.d.ts +9 -1
  88. package/src/lib/template/approval-template-version.entity.js +11 -1
  89. package/src/lib/template/approval-template-version.entity.js.map +1 -1
  90. package/src/lib/template/approval-template.entity.d.ts +18 -0
  91. package/src/lib/template/approval-template.entity.js +23 -0
  92. package/src/lib/template/approval-template.entity.js.map +1 -1
  93. package/src/lib/template/dto/approval-template.input.d.ts +21 -0
  94. package/src/lib/template/dto/approval-template.input.js +38 -0
  95. package/src/lib/template/dto/approval-template.input.js.map +1 -1
  96. package/src/lib/template/dto/compose-approval-template.input.d.ts +23 -0
  97. package/src/lib/template/dto/compose-approval-template.input.js +37 -0
  98. package/src/lib/template/dto/compose-approval-template.input.js.map +1 -1
  99. package/src/lib/template/template-key.d.ts +26 -0
  100. package/src/lib/template/template-key.js +67 -0
  101. package/src/lib/template/template-key.js.map +1 -0
  102. package/src/lib/template/template.enums.d.ts +11 -0
  103. package/src/lib/template/template.enums.js +17 -1
  104. package/src/lib/template/template.enums.js.map +1 -1
  105. package/src/lib/template/template.queries.d.ts +3 -2
  106. package/src/lib/template/template.queries.js +29 -4
  107. package/src/lib/template/template.queries.js.map +1 -1
  108. package/src/lib/template/template.service.d.ts +8 -1
  109. package/src/lib/template/template.service.js +94 -17
  110. package/src/lib/template/template.service.js.map +1 -1
  111. package/src/lib/workflow-engine/approver-filled-table-columns.d.ts +91 -0
  112. package/src/lib/workflow-engine/approver-filled-table-columns.js +301 -0
  113. package/src/lib/workflow-engine/approver-filled-table-columns.js.map +1 -0
  114. package/src/lib/workflow-engine/dto/dry-run-approval-workflow.input.d.ts +7 -0
  115. package/src/lib/workflow-engine/dto/dry-run-approval-workflow.input.js +9 -0
  116. package/src/lib/workflow-engine/dto/dry-run-approval-workflow.input.js.map +1 -1
  117. package/src/lib/workflow-engine/index.d.ts +1 -0
  118. package/src/lib/workflow-engine/index.js +1 -0
  119. package/src/lib/workflow-engine/index.js.map +1 -1
  120. package/src/lib/workflow-engine/initiator-custom-fields-resolver.token.d.ts +31 -11
  121. package/src/lib/workflow-engine/initiator-custom-fields-resolver.token.js.map +1 -1
  122. package/src/lib/workflow-engine/instance-guard.runner.d.ts +19 -0
  123. package/src/lib/workflow-engine/instance-guard.runner.js +102 -0
  124. package/src/lib/workflow-engine/instance-guard.runner.js.map +1 -0
  125. package/src/lib/workflow-engine/instance-guard.token.d.ts +101 -0
  126. package/src/lib/workflow-engine/instance-guard.token.js +9 -0
  127. package/src/lib/workflow-engine/instance-guard.token.js.map +1 -0
  128. package/src/lib/workflow-engine/missing-form-fields.d.ts +12 -0
  129. package/src/lib/workflow-engine/missing-form-fields.js +27 -0
  130. package/src/lib/workflow-engine/missing-form-fields.js.map +1 -0
  131. package/src/lib/workflow-engine/workflow-engine.module.d.ts +2 -0
  132. package/src/lib/workflow-engine/workflow-engine.module.js +3 -0
  133. package/src/lib/workflow-engine/workflow-engine.module.js.map +1 -1
  134. package/src/lib/workflow-engine/workflow-engine.mutations.d.ts +1 -1
  135. package/src/lib/workflow-engine/workflow-engine.mutations.js +8 -3
  136. package/src/lib/workflow-engine/workflow-engine.mutations.js.map +1 -1
  137. package/src/lib/workflow-engine/workflow-engine.queries.d.ts +7 -5
  138. package/src/lib/workflow-engine/workflow-engine.queries.js +136 -24
  139. package/src/lib/workflow-engine/workflow-engine.queries.js.map +1 -1
  140. package/src/lib/workflow-engine/workflow-engine.service.d.ts +216 -7
  141. package/src/lib/workflow-engine/workflow-engine.service.js +864 -131
  142. package/src/lib/workflow-engine/workflow-engine.service.js.map +1 -1
  143. package/src/lib/workflow-engine/workflow-engine.tokens.d.ts +5 -0
@@ -1 +1 @@
1
- {"version":3,"file":"approval-template-version.entity.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/template/approval-template-version.entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approval-template-version.entity.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/template/approval-template-version.entity.ts"],"names":[],"mappings":";;;;AACA,6CAA6D;AAC7D,qCAMiB;AACjB,qDAG0B;AAInB,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IAoExC,IACI,sBAAsB;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACjD,CAAC;IAED,IACI,sBAAsB;QACxB,OAAO,IAAI,CAAC,kBAAkB;YAC5B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC;YACzC,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED,IACI,eAAe;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpE,CAAC;CACF,CAAA;AApFY,sEAA6B;AAGxC;IAFC,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,CAAC;;yDACJ;AAIZ;IAFC,IAAA,gBAAM,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACvC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,CAAC;;iEACI;AAIpB;IAFC,IAAA,gBAAM,EAAC,KAAK,CAAC;IACb,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,CAAC;;8DACA;AAIjB;IAFC,IAAA,gBAAM,EAAC,MAAM,CAAC;IACd,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,kDAAiC,CAAC;;6DACJ;AAG3C;IADC,IAAA,gBAAM,EAAC,OAAO,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;;yEACT;AAIxC;IAFC,IAAA,gBAAM,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACtE,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8EACI;AAIxC;IAFC,IAAA,gBAAM,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAChE,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yEACL;AAcnC;IALC,IAAA,gBAAM,EAAC,MAAM,EAAE;QACd,OAAO,EAAE,+CAA8B,CAAC,IAAI;QAC5C,IAAI,EAAE,aAAa;KACpB,CAAC;IACD,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,+CAA8B,CAAC;;iEACA;AAG5C;IADC,IAAA,gBAAM,EAAC,OAAO,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yEACH;AAG9D;IADC,IAAA,gBAAM,EAAC,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kEACH;AAIvD;IAFC,IAAA,gBAAM,EAAC,aAAa,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/D,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kEACZ;AAI1B;IAFC,IAAA,gBAAM,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAClE,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0EACJ;AAIpC;IAFC,IAAA,gBAAM,EAAC,aAAa,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC9D,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iEACb;AAIzB;IAFC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IAC7D,IAAA,eAAK,GAAE;sCACI,IAAI;gEAAC;AAIjB;IAFC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IAC7D,IAAA,eAAK,GAAE;sCACI,IAAI;gEAAC;AAEjB;IAAC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;;;2EAGnB;AAED;IAAC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;;2EAKvC;AAED;IAAC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;;oEAGvC;wCAnFU,6BAA6B;IAFzC,IAAA,gBAAM,EAAC,4BAA4B,CAAC;IACpC,IAAA,oBAAU,EAAC,yBAAyB,CAAC;GACzB,6BAA6B,CAoFzC"}
@@ -1,4 +1,8 @@
1
1
  import { ApprovalTemplateCategoryEntity } from './approval-template-category.entity';
2
+ /**
3
+ * `key` is unique among live templates only; a soft-deleted template frees its
4
+ * key. Created by `HostIntegrationRound0000000032000`.
5
+ */
2
6
  export declare class ApprovalTemplateEntity {
3
7
  id: string;
4
8
  name: string;
@@ -19,6 +23,20 @@ export declare class ApprovalTemplateEntity {
19
23
  categoryId?: string | null;
20
24
  categoryDetail?: ApprovalTemplateCategoryEntity | null;
21
25
  currentVersionId: string | null;
26
+ /**
27
+ * A stable key the host declares for a template it owns (ADR 27 §6), so it
28
+ * can find "its" template without keeping its own id registry. Unique among
29
+ * templates that are not soft-deleted; `null` when no host claimed one.
30
+ */
31
+ key: string | null;
32
+ /**
33
+ * The template's definition is maintained by host code (ADR 27 §9). BPM's
34
+ * template and form lists leave it out unless `includeHostManaged` is
35
+ * passed. It is **not** a lock: anyone who reaches the template by id can
36
+ * still change it. It also says nothing about who may start an instance;
37
+ * that is the version's `launchMode`.
38
+ */
39
+ hostManaged: boolean;
22
40
  isActive: boolean;
23
41
  deletedAt: Date | null;
24
42
  createdAt: Date;
@@ -5,6 +5,10 @@ const tslib_1 = require("tslib");
5
5
  const graphql_1 = require("@nestjs/graphql");
6
6
  const typeorm_1 = require("typeorm");
7
7
  const approval_template_category_entity_1 = require("./approval-template-category.entity");
8
+ /**
9
+ * `key` is unique among live templates only; a soft-deleted template frees its
10
+ * key. Created by `HostIntegrationRound0000000032000`.
11
+ */
8
12
  let ApprovalTemplateEntity = class ApprovalTemplateEntity {
9
13
  };
10
14
  exports.ApprovalTemplateEntity = ApprovalTemplateEntity;
@@ -53,6 +57,21 @@ tslib_1.__decorate([
53
57
  (0, graphql_1.Field)(() => graphql_1.ID, { nullable: true }),
54
58
  tslib_1.__metadata("design:type", Object)
55
59
  ], ApprovalTemplateEntity.prototype, "currentVersionId", void 0);
60
+ tslib_1.__decorate([
61
+ (0, typeorm_1.Column)('text', { nullable: true }),
62
+ (0, graphql_1.Field)(() => String, {
63
+ description: 'Stable key a host declares for a template it owns. Unique among templates that are not deleted; null when none was set.',
64
+ nullable: true,
65
+ }),
66
+ tslib_1.__metadata("design:type", Object)
67
+ ], ApprovalTemplateEntity.prototype, "key", void 0);
68
+ tslib_1.__decorate([
69
+ (0, typeorm_1.Column)('boolean', { default: false, name: 'host_managed' }),
70
+ (0, graphql_1.Field)({
71
+ description: 'The definition is maintained by host code. Template lists leave it out unless includeHostManaged is true. Not a lock, and unrelated to launchMode (who may start an instance).',
72
+ }),
73
+ tslib_1.__metadata("design:type", Boolean)
74
+ ], ApprovalTemplateEntity.prototype, "hostManaged", void 0);
56
75
  tslib_1.__decorate([
57
76
  (0, typeorm_1.Column)('boolean', { default: true, name: 'is_active' }),
58
77
  (0, graphql_1.Field)(),
@@ -79,6 +98,10 @@ tslib_1.__decorate([
79
98
  tslib_1.__metadata("design:type", Object)
80
99
  ], ApprovalTemplateEntity.prototype, "createdByMemberId", void 0);
81
100
  exports.ApprovalTemplateEntity = ApprovalTemplateEntity = tslib_1.__decorate([
101
+ (0, typeorm_1.Index)('UQ_approval_templates_key_live', ['key'], {
102
+ unique: true,
103
+ where: '"key" IS NOT NULL AND "deleted_at" IS NULL',
104
+ }),
82
105
  (0, typeorm_1.Entity)('approval_templates'),
83
106
  (0, graphql_1.ObjectType)('ApprovalTemplate')
84
107
  ], ApprovalTemplateEntity);
@@ -1 +1 @@
1
- {"version":3,"file":"approval-template.entity.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/template/approval-template.entity.ts"],"names":[],"mappings":";;;;AAAA,6CAAwD;AACxD,qCASiB;AACjB,2FAAqF;AAI9E,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CAsElC,CAAA;AAtEY,wDAAsB;AAGjC;IAFC,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,CAAC;;kDACJ;AAIZ;IAFC,IAAA,gBAAM,EAAC,MAAM,CAAC;IACd,IAAA,eAAK,GAAE;;oDACM;AAId;IAFC,IAAA,gBAAM,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAClC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACZ;AAI5B;IAFC,IAAA,gBAAM,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAClC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACf;AAsBzB;IARC,IAAA,gBAAM,EAAC;QACN,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,KAAK;KACd,CAAC;IACD,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACT;AAQ3B;IANC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,kEAA8B,EAAE;QAC/C,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,UAAU;KACrB,CAAC;IACD,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACnC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,kEAA8B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8DACT;AAIvD;IAFC,IAAA,gBAAM,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC9D,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gEACH;AAIjC;IAFC,IAAA,gBAAM,EAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IACvD,IAAA,eAAK,GAAE;;wDACW;AAInB;IAFC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IAC7D,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACd;AAIxB;IAFC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IAC7D,IAAA,eAAK,GAAE;sCACI,IAAI;yDAAC;AAIjB;IAFC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IAC7D,IAAA,eAAK,GAAE;sCACI,IAAI;yDAAC;AAIjB;IAFC,IAAA,gBAAM,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAChE,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iEACN;iCArEvB,sBAAsB;IAFlC,IAAA,gBAAM,EAAC,oBAAoB,CAAC;IAC5B,IAAA,oBAAU,EAAC,kBAAkB,CAAC;GAClB,sBAAsB,CAsElC"}
1
+ {"version":3,"file":"approval-template.entity.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/template/approval-template.entity.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,25 @@
1
+ import { ApprovalTemplateLaunchModeEnum } from '../template.enums';
1
2
  export declare class CreateApprovalTemplateInput {
2
3
  name: string;
4
+ /** Stable host key (ADR 27 §6). Omitted or empty means no key. */
5
+ key?: string | null;
3
6
  description?: string | null;
4
7
  category?: string | null;
5
8
  categoryId?: string | null;
6
9
  createdByMemberId?: string | null;
7
10
  formDefinitionVersionId?: string | null;
11
+ /** Host-owned flag (ADR 27 §6). Service-only: no `@Field`. Absent means `false`. */
12
+ hostManaged?: boolean;
8
13
  }
9
14
  export declare class UpdateApprovalTemplateInput {
10
15
  id: string;
11
16
  name?: string | null;
12
17
  description?: string | null;
18
+ /**
19
+ * Host key, as a three-state value: omitted keeps the key, `null` or an
20
+ * empty string clears it, anything else sets it.
21
+ */
22
+ key?: string | null;
13
23
  category?: string | null;
14
24
  /**
15
25
  * Category to attach, as a three-state value:
@@ -23,6 +33,11 @@ export declare class UpdateApprovalTemplateInput {
23
33
  * quietly detached the category.
24
34
  */
25
35
  categoryId?: string | null;
36
+ /**
37
+ * Host-owned flag (ADR 27 §6). Service-only: no `@Field`, so GraphQL cannot
38
+ * set it. Absent keeps the stored value.
39
+ */
40
+ hostManaged?: boolean;
26
41
  }
27
42
  export declare class CreateApprovalTemplateCategoryInput {
28
43
  name: string;
@@ -42,6 +57,12 @@ export declare class UpdateApprovalTemplateDraftInput {
42
57
  workflowDefinitionJson: string;
43
58
  formDefinitionVersionId?: string | null;
44
59
  initiatorPolicyCel?: string | null;
60
+ /**
61
+ * `HOST_ONLY` keeps the template off the launch page and refuses submission
62
+ * and resubmission through GraphQL; the host's backend submits it through
63
+ * the service (ADR 27 §5). Absent keeps the draft's current value.
64
+ */
65
+ launchMode?: ApprovalTemplateLaunchModeEnum | null;
45
66
  notificationConfigJson?: string | null;
46
67
  slaDefaultsJson?: string | null;
47
68
  }
@@ -4,6 +4,9 @@ exports.UpdateApprovalTemplateDraftInput = exports.UpdateApprovalTemplateCategor
4
4
  const tslib_1 = require("tslib");
5
5
  const graphql_1 = require("@nestjs/graphql");
6
6
  const class_validator_1 = require("class-validator");
7
+ const template_key_1 = require("../template-key");
8
+ const template_enums_1 = require("../template.enums");
9
+ const TEMPLATE_KEY_DESCRIPTION = 'Stable key the host declares for a template it owns (ADR 27 §6). Starts with a letter or digit; then letters, digits, ".", "_" or "-"; at most 128 characters. Unique among live templates. An empty string clears it.';
7
10
  let CreateApprovalTemplateInput = class CreateApprovalTemplateInput {
8
11
  };
9
12
  exports.CreateApprovalTemplateInput = CreateApprovalTemplateInput;
@@ -12,6 +15,19 @@ tslib_1.__decorate([
12
15
  (0, class_validator_1.IsString)(),
13
16
  tslib_1.__metadata("design:type", String)
14
17
  ], CreateApprovalTemplateInput.prototype, "name", void 0);
18
+ tslib_1.__decorate([
19
+ (0, graphql_1.Field)(() => String, {
20
+ description: TEMPLATE_KEY_DESCRIPTION,
21
+ nullable: true,
22
+ }),
23
+ (0, class_validator_1.IsOptional)(),
24
+ (0, class_validator_1.ValidateIf)((_object, value) => value !== ''),
25
+ (0, class_validator_1.IsString)(),
26
+ (0, class_validator_1.Matches)(template_key_1.TEMPLATE_KEY_PATTERN, {
27
+ message: 'key must match ^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$',
28
+ }),
29
+ tslib_1.__metadata("design:type", Object)
30
+ ], CreateApprovalTemplateInput.prototype, "key", void 0);
15
31
  tslib_1.__decorate([
16
32
  (0, graphql_1.Field)(() => String, { nullable: true }),
17
33
  (0, class_validator_1.IsOptional)(),
@@ -65,6 +81,19 @@ tslib_1.__decorate([
65
81
  (0, class_validator_1.IsString)(),
66
82
  tslib_1.__metadata("design:type", Object)
67
83
  ], UpdateApprovalTemplateInput.prototype, "description", void 0);
84
+ tslib_1.__decorate([
85
+ (0, graphql_1.Field)(() => String, {
86
+ description: TEMPLATE_KEY_DESCRIPTION,
87
+ nullable: true,
88
+ }),
89
+ (0, class_validator_1.IsOptional)(),
90
+ (0, class_validator_1.ValidateIf)((_object, value) => value !== ''),
91
+ (0, class_validator_1.IsString)(),
92
+ (0, class_validator_1.Matches)(template_key_1.TEMPLATE_KEY_PATTERN, {
93
+ message: 'key must match ^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$',
94
+ }),
95
+ tslib_1.__metadata("design:type", Object)
96
+ ], UpdateApprovalTemplateInput.prototype, "key", void 0);
68
97
  tslib_1.__decorate([
69
98
  (0, graphql_1.Field)(() => String, { nullable: true }),
70
99
  (0, class_validator_1.IsOptional)(),
@@ -169,6 +198,15 @@ tslib_1.__decorate([
169
198
  (0, class_validator_1.IsString)(),
170
199
  tslib_1.__metadata("design:type", Object)
171
200
  ], UpdateApprovalTemplateDraftInput.prototype, "initiatorPolicyCel", void 0);
201
+ tslib_1.__decorate([
202
+ (0, graphql_1.Field)(() => template_enums_1.ApprovalTemplateLaunchModeEnum, {
203
+ description: 'OPEN (default): members start it from the launch page. HOST_ONLY: only the host backend submits it; it is left out of the launchable list and GraphQL submit and resubmit are refused with 403. Absent keeps the draft value.',
204
+ nullable: true,
205
+ }),
206
+ (0, class_validator_1.IsOptional)(),
207
+ (0, class_validator_1.IsEnum)(template_enums_1.ApprovalTemplateLaunchModeEnum),
208
+ tslib_1.__metadata("design:type", Object)
209
+ ], UpdateApprovalTemplateDraftInput.prototype, "launchMode", void 0);
172
210
  tslib_1.__decorate([
173
211
  (0, graphql_1.Field)(() => String, { nullable: true }),
174
212
  (0, class_validator_1.IsOptional)(),
@@ -1 +1 @@
1
- {"version":3,"file":"approval-template.input.js","sourceRoot":"","sources":["../../../../../../../libs/bpm-core/src/lib/template/dto/approval-template.input.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approval-template.input.js","sourceRoot":"","sources":["../../../../../../../libs/bpm-core/src/lib/template/dto/approval-template.input.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,40 @@
1
+ import { ApprovalTemplateLaunchModeEnum } from '../template.enums';
1
2
  export declare class ComposeApprovalTemplateWithFormInput {
2
3
  formDefinitionId: string | null;
3
4
  templateId: string | null;
5
+ /**
6
+ * Host key that finds the template to version when `templateId` is absent
7
+ * (ADR 27 §6.2). Not found: the template is created with this key.
8
+ */
9
+ templateKey?: string | null;
4
10
  formName: string;
5
11
  formDescription: string | null;
6
12
  schemaJson: string | null;
7
13
  uiSchemaJson: string | null;
8
14
  templateName: string;
9
15
  templateDescription: string | null;
16
+ /**
17
+ * Host key for the template (ADR 27 §6). Applied on create; on an existing
18
+ * template it is set after the row lock. Absent keeps the current key.
19
+ */
20
+ key?: string | null;
10
21
  category: string | null;
11
22
  categoryId: string | null;
12
23
  workflowDefinitionJson: string;
13
24
  initiatorPolicyCel: string | null;
25
+ /**
26
+ * `HOST_ONLY` keeps the template off the launch page and refuses submission
27
+ * and resubmission through GraphQL; the host's backend submits it through
28
+ * the service (ADR 27 §5). Absent keeps the draft's current value.
29
+ */
30
+ launchMode?: ApprovalTemplateLaunchModeEnum | null;
14
31
  notificationConfigJson: string | null;
15
32
  slaDefaultsJson: string | null;
33
+ /**
34
+ * Host-owned flag (ADR 27 §6.2). Service-only: no `@Field`. Applied to the
35
+ * template (absent keeps the stored value) and to the form (absent creates
36
+ * it with `false`, keeps the stored value otherwise).
37
+ */
38
+ hostManaged?: boolean;
16
39
  publish: boolean;
17
40
  }
@@ -4,6 +4,8 @@ exports.ComposeApprovalTemplateWithFormInput = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const graphql_1 = require("@nestjs/graphql");
6
6
  const class_validator_1 = require("class-validator");
7
+ const template_key_1 = require("../template-key");
8
+ const template_enums_1 = require("../template.enums");
7
9
  let ComposeApprovalTemplateWithFormInput = class ComposeApprovalTemplateWithFormInput {
8
10
  };
9
11
  exports.ComposeApprovalTemplateWithFormInput = ComposeApprovalTemplateWithFormInput;
@@ -19,6 +21,19 @@ tslib_1.__decorate([
19
21
  (0, class_validator_1.IsUUID)(),
20
22
  tslib_1.__metadata("design:type", Object)
21
23
  ], ComposeApprovalTemplateWithFormInput.prototype, "templateId", void 0);
24
+ tslib_1.__decorate([
25
+ (0, graphql_1.Field)(() => String, {
26
+ description: 'Host key that finds the template to version, used when templateId is absent. A live template with this key gets a new draft version; if none exists, a new template is created with this key. Same format as key. An empty string or null is ignored.',
27
+ nullable: true,
28
+ }),
29
+ (0, class_validator_1.IsOptional)(),
30
+ (0, class_validator_1.ValidateIf)((_object, value) => value !== ''),
31
+ (0, class_validator_1.IsString)(),
32
+ (0, class_validator_1.Matches)(template_key_1.TEMPLATE_KEY_PATTERN, {
33
+ message: 'templateKey must match ^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$',
34
+ }),
35
+ tslib_1.__metadata("design:type", Object)
36
+ ], ComposeApprovalTemplateWithFormInput.prototype, "templateKey", void 0);
22
37
  tslib_1.__decorate([
23
38
  (0, graphql_1.Field)(),
24
39
  (0, class_validator_1.IsString)(),
@@ -53,6 +68,19 @@ tslib_1.__decorate([
53
68
  (0, class_validator_1.IsString)(),
54
69
  tslib_1.__metadata("design:type", Object)
55
70
  ], ComposeApprovalTemplateWithFormInput.prototype, "templateDescription", void 0);
71
+ tslib_1.__decorate([
72
+ (0, graphql_1.Field)(() => String, {
73
+ description: 'Stable key the host declares for a template it owns (ADR 27 §6). Starts with a letter or digit; then letters, digits, ".", "_" or "-"; at most 128 characters. Unique among live templates. An empty string clears it. Absent keeps the current key.',
74
+ nullable: true,
75
+ }),
76
+ (0, class_validator_1.IsOptional)(),
77
+ (0, class_validator_1.ValidateIf)((_object, value) => value !== ''),
78
+ (0, class_validator_1.IsString)(),
79
+ (0, class_validator_1.Matches)(template_key_1.TEMPLATE_KEY_PATTERN, {
80
+ message: 'key must match ^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$',
81
+ }),
82
+ tslib_1.__metadata("design:type", Object)
83
+ ], ComposeApprovalTemplateWithFormInput.prototype, "key", void 0);
56
84
  tslib_1.__decorate([
57
85
  (0, graphql_1.Field)(() => String, { nullable: true }),
58
86
  (0, class_validator_1.IsOptional)(),
@@ -76,6 +104,15 @@ tslib_1.__decorate([
76
104
  (0, class_validator_1.IsString)(),
77
105
  tslib_1.__metadata("design:type", Object)
78
106
  ], ComposeApprovalTemplateWithFormInput.prototype, "initiatorPolicyCel", void 0);
107
+ tslib_1.__decorate([
108
+ (0, graphql_1.Field)(() => template_enums_1.ApprovalTemplateLaunchModeEnum, {
109
+ description: 'OPEN (default): members start it from the launch page. HOST_ONLY: only the host backend submits it; it is left out of the launchable list and GraphQL submit and resubmit are refused with 403. Absent keeps the draft value.',
110
+ nullable: true,
111
+ }),
112
+ (0, class_validator_1.IsOptional)(),
113
+ (0, class_validator_1.IsEnum)(template_enums_1.ApprovalTemplateLaunchModeEnum),
114
+ tslib_1.__metadata("design:type", Object)
115
+ ], ComposeApprovalTemplateWithFormInput.prototype, "launchMode", void 0);
79
116
  tslib_1.__decorate([
80
117
  (0, graphql_1.Field)(() => String, { nullable: true }),
81
118
  (0, class_validator_1.IsOptional)(),
@@ -1 +1 @@
1
- {"version":3,"file":"compose-approval-template.input.js","sourceRoot":"","sources":["../../../../../../../libs/bpm-core/src/lib/template/dto/compose-approval-template.input.ts"],"names":[],"mappings":";;;;AAAA,6CAAuD;AACvD,qDAA0E;AAGnE,IAAM,oCAAoC,GAA1C,MAAM,oCAAoC;CA2EhD,CAAA;AA3EY,oFAAoC;AAK/C;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACnC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;8EACwB;AAKjC;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACnC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;wEACkB;AAK3B;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,0BAAQ,GAAE;;sEACO;AAKlB;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;6EACqB;AAKhC;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;wEACgB;AAK3B;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;0EACkB;AAK7B;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,0BAAQ,GAAE;;0EACW;AAKtB;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;iFACyB;AAKpC;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;sEACc;AAKzB;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACnC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;wEACkB;AAI3B;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,0BAAQ,GAAE;;oFACqB;AAKhC;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;gFACwB;AAKnC;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;oFAC4B;AAKvC;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;6EACqB;AAKhC;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,2BAAS,GAAE;;qEACM;+CA1EP,oCAAoC;IADhD,IAAA,mBAAS,GAAE;GACC,oCAAoC,CA2EhD"}
1
+ {"version":3,"file":"compose-approval-template.input.js","sourceRoot":"","sources":["../../../../../../../libs/bpm-core/src/lib/template/dto/compose-approval-template.input.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Format of `approval_templates.key` (ADR 27 §6). Internal to the template
3
+ * module: deliberately not re-exported from the package index.
4
+ */
5
+ export declare const TEMPLATE_KEY_PATTERN: RegExp;
6
+ /** Partial unique index on live rows; see migration 0000000032000. */
7
+ export declare const TEMPLATE_KEY_UNIQUE_INDEX = "UQ_approval_templates_key_live";
8
+ export declare const TEMPLATE_KEY_CONFLICT_MESSAGE = "A live approval template already uses this key";
9
+ /**
10
+ * Empty string clears the key, the same as `null`. Anything else must match
11
+ * {@link TEMPLATE_KEY_PATTERN}; a host calling the service directly gets the
12
+ * same 400 the GraphQL input validator gives.
13
+ */
14
+ export declare function normalizeTemplateKey(value: string | null | undefined): string | null;
15
+ /**
16
+ * True when a driver error is the unique violation raised by the live-key
17
+ * index. TypeORM wraps the Postgres error in `driverError`; both shapes are
18
+ * checked so the translation does not depend on the wrapper.
19
+ */
20
+ export declare function isTemplateKeyUniqueViolation(error: unknown): boolean;
21
+ /**
22
+ * Maps the live-key unique violation to a 409. Any other error passes through
23
+ * unchanged. Apply it outside the transaction callback, after the transaction
24
+ * has rolled back.
25
+ */
26
+ export declare function translateTemplateKeyConflict<TResult>(operation: Promise<TResult>): Promise<TResult>;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TEMPLATE_KEY_CONFLICT_MESSAGE = exports.TEMPLATE_KEY_UNIQUE_INDEX = exports.TEMPLATE_KEY_PATTERN = void 0;
4
+ exports.normalizeTemplateKey = normalizeTemplateKey;
5
+ exports.isTemplateKeyUniqueViolation = isTemplateKeyUniqueViolation;
6
+ exports.translateTemplateKeyConflict = translateTemplateKeyConflict;
7
+ const common_1 = require("@nestjs/common");
8
+ /**
9
+ * Format of `approval_templates.key` (ADR 27 §6). Internal to the template
10
+ * module: deliberately not re-exported from the package index.
11
+ */
12
+ exports.TEMPLATE_KEY_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/;
13
+ /** Partial unique index on live rows; see migration 0000000032000. */
14
+ exports.TEMPLATE_KEY_UNIQUE_INDEX = 'UQ_approval_templates_key_live';
15
+ exports.TEMPLATE_KEY_CONFLICT_MESSAGE = 'A live approval template already uses this key';
16
+ /**
17
+ * Empty string clears the key, the same as `null`. Anything else must match
18
+ * {@link TEMPLATE_KEY_PATTERN}; a host calling the service directly gets the
19
+ * same 400 the GraphQL input validator gives.
20
+ */
21
+ function normalizeTemplateKey(value) {
22
+ if (value === null || value === undefined || value === '') {
23
+ return null;
24
+ }
25
+ if (!exports.TEMPLATE_KEY_PATTERN.test(value)) {
26
+ throw new common_1.BadRequestException('Template key must start with a letter or digit and contain only letters, digits, ".", "_" or "-" (at most 128 characters)');
27
+ }
28
+ return value;
29
+ }
30
+ /**
31
+ * True when a driver error is the unique violation raised by the live-key
32
+ * index. TypeORM wraps the Postgres error in `driverError`; both shapes are
33
+ * checked so the translation does not depend on the wrapper.
34
+ */
35
+ function isTemplateKeyUniqueViolation(error) {
36
+ return [error, readDriverError(error)].some((candidate) => readStringField(candidate, 'code') === '23505' &&
37
+ readStringField(candidate, 'constraint') === exports.TEMPLATE_KEY_UNIQUE_INDEX);
38
+ }
39
+ /**
40
+ * Maps the live-key unique violation to a 409. Any other error passes through
41
+ * unchanged. Apply it outside the transaction callback, after the transaction
42
+ * has rolled back.
43
+ */
44
+ async function translateTemplateKeyConflict(operation) {
45
+ try {
46
+ return await operation;
47
+ }
48
+ catch (error) {
49
+ if (isTemplateKeyUniqueViolation(error)) {
50
+ throw new common_1.ConflictException(exports.TEMPLATE_KEY_CONFLICT_MESSAGE);
51
+ }
52
+ throw error;
53
+ }
54
+ }
55
+ function readDriverError(error) {
56
+ return typeof error === 'object' && error !== null && 'driverError' in error
57
+ ? error.driverError
58
+ : undefined;
59
+ }
60
+ function readStringField(source, field) {
61
+ if (typeof source !== 'object' || source === null || !(field in source)) {
62
+ return undefined;
63
+ }
64
+ const value = source[field];
65
+ return typeof value === 'string' ? value : undefined;
66
+ }
67
+ //# sourceMappingURL=template-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-key.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/template/template-key.ts"],"names":[],"mappings":";;;AAmBA,oDAcC;AAOD,oEAMC;AAOD,oEAYC;AAjED,2CAAwE;AAExE;;;GAGG;AACU,QAAA,oBAAoB,GAAG,oCAAoC,CAAC;AAEzE,sEAAsE;AACzD,QAAA,yBAAyB,GAAG,gCAAgC,CAAC;AAE7D,QAAA,6BAA6B,GACxC,gDAAgD,CAAC;AAEnD;;;;GAIG;AACH,SAAgB,oBAAoB,CAClC,KAAgC;IAEhC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,4BAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,4BAAmB,CAC3B,2HAA2H,CAC5H,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAgB,4BAA4B,CAAC,KAAc;IACzD,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CACzC,CAAC,SAAS,EAAW,EAAE,CACrB,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,OAAO;QAC9C,eAAe,CAAC,SAAS,EAAE,YAAY,CAAC,KAAK,iCAAyB,CACzE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,4BAA4B,CAChD,SAA2B;IAE3B,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,CAAC;IACzB,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,4BAA4B,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,0BAAiB,CAAC,qCAA6B,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,aAAa,IAAI,KAAK;QAC1E,CAAC,CAAE,KAA2C,CAAC,WAAW;QAC1D,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,MAAe,EAAE,KAAa;IACrD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC;QACxE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAI,MAA4C,CAAC,KAAK,CAAC,CAAC;IAEnE,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC"}
@@ -12,6 +12,17 @@ export declare enum ApprovalTemplateActivationStatusEnum {
12
12
  ALL = "ALL",
13
13
  INACTIVE = "INACTIVE"
14
14
  }
15
+ /**
16
+ * Who may start an instance of a template version (ADR 27 §5).
17
+ * - `OPEN`: anyone the initiator policy allows, through GraphQL or the host.
18
+ * - `HOST_ONLY`: only the host's backend, calling `WorkflowEngineService`
19
+ * directly. GraphQL submission and resubmission are refused and the template
20
+ * is left out of `launchableApprovalTemplates`.
21
+ */
22
+ export declare enum ApprovalTemplateLaunchModeEnum {
23
+ HOST_ONLY = "HOST_ONLY",
24
+ OPEN = "OPEN"
25
+ }
15
26
  export declare enum ApprovalTemplateCategoryStatusEnum {
16
27
  ACTIVE = "ACTIVE",
17
28
  ALL = "ALL",
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ApprovalTemplateCategoryStatusEnum = exports.ApprovalTemplateActivationStatusEnum = exports.ApprovalTemplateListStatusEnum = exports.ApprovalTemplateVersionStatusEnum = void 0;
3
+ exports.ApprovalTemplateCategoryStatusEnum = exports.ApprovalTemplateLaunchModeEnum = exports.ApprovalTemplateActivationStatusEnum = exports.ApprovalTemplateListStatusEnum = exports.ApprovalTemplateVersionStatusEnum = void 0;
4
4
  const graphql_1 = require("@nestjs/graphql");
5
5
  var ApprovalTemplateVersionStatusEnum;
6
6
  (function (ApprovalTemplateVersionStatusEnum) {
@@ -19,6 +19,18 @@ var ApprovalTemplateActivationStatusEnum;
19
19
  ApprovalTemplateActivationStatusEnum["ALL"] = "ALL";
20
20
  ApprovalTemplateActivationStatusEnum["INACTIVE"] = "INACTIVE";
21
21
  })(ApprovalTemplateActivationStatusEnum || (exports.ApprovalTemplateActivationStatusEnum = ApprovalTemplateActivationStatusEnum = {}));
22
+ /**
23
+ * Who may start an instance of a template version (ADR 27 §5).
24
+ * - `OPEN`: anyone the initiator policy allows, through GraphQL or the host.
25
+ * - `HOST_ONLY`: only the host's backend, calling `WorkflowEngineService`
26
+ * directly. GraphQL submission and resubmission are refused and the template
27
+ * is left out of `launchableApprovalTemplates`.
28
+ */
29
+ var ApprovalTemplateLaunchModeEnum;
30
+ (function (ApprovalTemplateLaunchModeEnum) {
31
+ ApprovalTemplateLaunchModeEnum["HOST_ONLY"] = "HOST_ONLY";
32
+ ApprovalTemplateLaunchModeEnum["OPEN"] = "OPEN";
33
+ })(ApprovalTemplateLaunchModeEnum || (exports.ApprovalTemplateLaunchModeEnum = ApprovalTemplateLaunchModeEnum = {}));
22
34
  var ApprovalTemplateCategoryStatusEnum;
23
35
  (function (ApprovalTemplateCategoryStatusEnum) {
24
36
  ApprovalTemplateCategoryStatusEnum["ACTIVE"] = "ACTIVE";
@@ -34,6 +46,10 @@ var ApprovalTemplateCategoryStatusEnum;
34
46
  (0, graphql_1.registerEnumType)(ApprovalTemplateActivationStatusEnum, {
35
47
  name: 'ApprovalTemplateActivationStatus',
36
48
  });
49
+ (0, graphql_1.registerEnumType)(ApprovalTemplateLaunchModeEnum, {
50
+ description: 'Who may start an instance: OPEN (anyone the initiator policy allows) or HOST_ONLY (only the host backend; GraphQL submit and resubmit are refused).',
51
+ name: 'ApprovalTemplateLaunchMode',
52
+ });
37
53
  (0, graphql_1.registerEnumType)(ApprovalTemplateCategoryStatusEnum, {
38
54
  name: 'ApprovalTemplateCategoryStatus',
39
55
  });
@@ -1 +1 @@
1
- {"version":3,"file":"template.enums.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/template/template.enums.ts"],"names":[],"mappings":";;;AAAA,6CAAmD;AAEnD,IAAY,iCAIX;AAJD,WAAY,iCAAiC;IAC3C,0DAAqB,CAAA;IACrB,oDAAe,CAAA;IACf,4DAAuB,CAAA;AACzB,CAAC,EAJW,iCAAiC,iDAAjC,iCAAiC,QAI5C;AAED,IAAY,8BAGX;AAHD,WAAY,8BAA8B;IACxC,iDAAe,CAAA;IACf,yDAAuB,CAAA;AACzB,CAAC,EAHW,8BAA8B,8CAA9B,8BAA8B,QAGzC;AAED,IAAY,oCAIX;AAJD,WAAY,oCAAoC;IAC9C,yDAAiB,CAAA;IACjB,mDAAW,CAAA;IACX,6DAAqB,CAAA;AACvB,CAAC,EAJW,oCAAoC,oDAApC,oCAAoC,QAI/C;AAED,IAAY,kCAIX;AAJD,WAAY,kCAAkC;IAC5C,uDAAiB,CAAA;IACjB,iDAAW,CAAA;IACX,2DAAqB,CAAA;AACvB,CAAC,EAJW,kCAAkC,kDAAlC,kCAAkC,QAI7C;AAED,IAAA,0BAAgB,EAAC,iCAAiC,EAAE;IAClD,IAAI,EAAE,+BAA+B;CACtC,CAAC,CAAC;AAEH,IAAA,0BAAgB,EAAC,8BAA8B,EAAE;IAC/C,IAAI,EAAE,4BAA4B;CACnC,CAAC,CAAC;AAEH,IAAA,0BAAgB,EAAC,oCAAoC,EAAE;IACrD,IAAI,EAAE,kCAAkC;CACzC,CAAC,CAAC;AAEH,IAAA,0BAAgB,EAAC,kCAAkC,EAAE;IACnD,IAAI,EAAE,gCAAgC;CACvC,CAAC,CAAC"}
1
+ {"version":3,"file":"template.enums.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/template/template.enums.ts"],"names":[],"mappings":";;;AAAA,6CAAmD;AAEnD,IAAY,iCAIX;AAJD,WAAY,iCAAiC;IAC3C,0DAAqB,CAAA;IACrB,oDAAe,CAAA;IACf,4DAAuB,CAAA;AACzB,CAAC,EAJW,iCAAiC,iDAAjC,iCAAiC,QAI5C;AAED,IAAY,8BAGX;AAHD,WAAY,8BAA8B;IACxC,iDAAe,CAAA;IACf,yDAAuB,CAAA;AACzB,CAAC,EAHW,8BAA8B,8CAA9B,8BAA8B,QAGzC;AAED,IAAY,oCAIX;AAJD,WAAY,oCAAoC;IAC9C,yDAAiB,CAAA;IACjB,mDAAW,CAAA;IACX,6DAAqB,CAAA;AACvB,CAAC,EAJW,oCAAoC,oDAApC,oCAAoC,QAI/C;AAED;;;;;;GAMG;AACH,IAAY,8BAGX;AAHD,WAAY,8BAA8B;IACxC,yDAAuB,CAAA;IACvB,+CAAa,CAAA;AACf,CAAC,EAHW,8BAA8B,8CAA9B,8BAA8B,QAGzC;AAED,IAAY,kCAIX;AAJD,WAAY,kCAAkC;IAC5C,uDAAiB,CAAA;IACjB,iDAAW,CAAA;IACX,2DAAqB,CAAA;AACvB,CAAC,EAJW,kCAAkC,kDAAlC,kCAAkC,QAI7C;AAED,IAAA,0BAAgB,EAAC,iCAAiC,EAAE;IAClD,IAAI,EAAE,+BAA+B;CACtC,CAAC,CAAC;AAEH,IAAA,0BAAgB,EAAC,8BAA8B,EAAE;IAC/C,IAAI,EAAE,4BAA4B;CACnC,CAAC,CAAC;AAEH,IAAA,0BAAgB,EAAC,oCAAoC,EAAE;IACrD,IAAI,EAAE,kCAAkC;CACzC,CAAC,CAAC;AAEH,IAAA,0BAAgB,EAAC,8BAA8B,EAAE;IAC/C,WAAW,EACT,qJAAqJ;IACvJ,IAAI,EAAE,4BAA4B;CACnC,CAAC,CAAC;AAEH,IAAA,0BAAgB,EAAC,kCAAkC,EAAE;IACnD,IAAI,EAAE,gCAAgC;CACvC,CAAC,CAAC"}
@@ -6,11 +6,12 @@ import { TemplateService } from './template.service';
6
6
  export declare class TemplateQueries {
7
7
  private readonly templateService;
8
8
  constructor(templateService: TemplateService);
9
- approvalTemplates(page?: number | null, pageSize?: number | null, searchText?: string | null, categoryId?: string | null, status?: ApprovalTemplateListStatusEnum | null, activationStatus?: ApprovalTemplateActivationStatusEnum | null): Promise<readonly ApprovalTemplateEntity[]>;
10
- approvalTemplateCount(searchText?: string | null, categoryId?: string | null, status?: ApprovalTemplateListStatusEnum | null, activationStatus?: ApprovalTemplateActivationStatusEnum | null): Promise<number>;
9
+ approvalTemplates(page?: number | null, pageSize?: number | null, searchText?: string | null, categoryId?: string | null, status?: ApprovalTemplateListStatusEnum | null, activationStatus?: ApprovalTemplateActivationStatusEnum | null, includeHostManaged?: boolean | null): Promise<readonly ApprovalTemplateEntity[]>;
10
+ approvalTemplateCount(searchText?: string | null, categoryId?: string | null, status?: ApprovalTemplateListStatusEnum | null, activationStatus?: ApprovalTemplateActivationStatusEnum | null, includeHostManaged?: boolean | null): Promise<number>;
11
11
  approvalTemplateCategories(page?: number | null, pageSize?: number | null, searchText?: string | null, status?: ApprovalTemplateCategoryStatusEnum | null): Promise<readonly ApprovalTemplateCategoryEntity[]>;
12
12
  approvalTemplateCategoryCount(searchText?: string | null, status?: ApprovalTemplateCategoryStatusEnum | null): Promise<number>;
13
13
  approvalTemplate(id: string): Promise<ApprovalTemplateEntity>;
14
+ approvalTemplateByKey(key: string): Promise<ApprovalTemplateEntity>;
14
15
  approvalTemplateVersions(templateId: string): Promise<readonly ApprovalTemplateVersionEntity[]>;
15
16
  approvalTemplateVersion(id: string): Promise<ApprovalTemplateVersionEntity>;
16
17
  }
@@ -9,13 +9,15 @@ const approval_template_entity_1 = require("./approval-template.entity");
9
9
  const approval_template_version_entity_1 = require("./approval-template-version.entity");
10
10
  const template_enums_1 = require("./template.enums");
11
11
  const template_service_1 = require("./template.service");
12
+ const INCLUDE_HOST_MANAGED_DESCRIPTION = 'Also returns templates maintained by host code (hostManaged = true). Default false: they are left out. Not a lock: anyone who knows the id can still read or change them.';
12
13
  let TemplateQueries = class TemplateQueries {
13
14
  constructor(templateService) {
14
15
  this.templateService = templateService;
15
16
  }
16
- async approvalTemplates(page, pageSize, searchText, categoryId, status, activationStatus) {
17
+ async approvalTemplates(page, pageSize, searchText, categoryId, status, activationStatus, includeHostManaged) {
17
18
  return this.templateService.listApprovalTemplates({
18
19
  activationStatus: activationStatus ?? undefined,
20
+ includeHostManaged: includeHostManaged ?? undefined,
19
21
  page: page ?? undefined,
20
22
  pageSize: pageSize ?? undefined,
21
23
  categoryId: categoryId ?? undefined,
@@ -23,10 +25,11 @@ let TemplateQueries = class TemplateQueries {
23
25
  status: status ?? undefined,
24
26
  });
25
27
  }
26
- async approvalTemplateCount(searchText, categoryId, status, activationStatus) {
28
+ async approvalTemplateCount(searchText, categoryId, status, activationStatus, includeHostManaged) {
27
29
  return this.templateService.countApprovalTemplates({
28
30
  activationStatus: activationStatus ?? undefined,
29
31
  categoryId: categoryId ?? undefined,
32
+ includeHostManaged: includeHostManaged ?? undefined,
30
33
  searchText: searchText ?? undefined,
31
34
  status: status ?? undefined,
32
35
  });
@@ -48,6 +51,9 @@ let TemplateQueries = class TemplateQueries {
48
51
  async approvalTemplate(id) {
49
52
  return this.templateService.getApprovalTemplate(id);
50
53
  }
54
+ async approvalTemplateByKey(key) {
55
+ return this.templateService.getApprovalTemplateByKey(key);
56
+ }
51
57
  async approvalTemplateVersions(templateId) {
52
58
  return this.templateService.listApprovalTemplateVersions(templateId);
53
59
  }
@@ -70,8 +76,13 @@ tslib_1.__decorate([
70
76
  nullable: true,
71
77
  type: () => template_enums_1.ApprovalTemplateActivationStatusEnum,
72
78
  })),
79
+ tslib_1.__param(6, (0, graphql_1.Args)('includeHostManaged', {
80
+ description: INCLUDE_HOST_MANAGED_DESCRIPTION,
81
+ nullable: true,
82
+ type: () => Boolean,
83
+ })),
73
84
  tslib_1.__metadata("design:type", Function),
74
- tslib_1.__metadata("design:paramtypes", [Object, Object, Object, Object, Object, Object]),
85
+ tslib_1.__metadata("design:paramtypes", [Object, Object, Object, Object, Object, Object, Object]),
75
86
  tslib_1.__metadata("design:returntype", Promise)
76
87
  ], TemplateQueries.prototype, "approvalTemplates", null);
77
88
  tslib_1.__decorate([
@@ -86,8 +97,13 @@ tslib_1.__decorate([
86
97
  nullable: true,
87
98
  type: () => template_enums_1.ApprovalTemplateActivationStatusEnum,
88
99
  })),
100
+ tslib_1.__param(4, (0, graphql_1.Args)('includeHostManaged', {
101
+ description: INCLUDE_HOST_MANAGED_DESCRIPTION,
102
+ nullable: true,
103
+ type: () => Boolean,
104
+ })),
89
105
  tslib_1.__metadata("design:type", Function),
90
- tslib_1.__metadata("design:paramtypes", [Object, Object, Object, Object]),
106
+ tslib_1.__metadata("design:paramtypes", [Object, Object, Object, Object, Object]),
91
107
  tslib_1.__metadata("design:returntype", Promise)
92
108
  ], TemplateQueries.prototype, "approvalTemplateCount", null);
93
109
  tslib_1.__decorate([
@@ -121,6 +137,15 @@ tslib_1.__decorate([
121
137
  tslib_1.__metadata("design:paramtypes", [String]),
122
138
  tslib_1.__metadata("design:returntype", Promise)
123
139
  ], TemplateQueries.prototype, "approvalTemplate", null);
140
+ tslib_1.__decorate([
141
+ (0, graphql_1.Query)(() => approval_template_entity_1.ApprovalTemplateEntity, {
142
+ description: 'Returns the live approval template with this host key. Soft-deleted templates are not matched. Host-managed templates are returned too; this query is not filtered by includeHostManaged.',
143
+ }),
144
+ tslib_1.__param(0, (0, graphql_1.Args)('key', { type: () => String })),
145
+ tslib_1.__metadata("design:type", Function),
146
+ tslib_1.__metadata("design:paramtypes", [String]),
147
+ tslib_1.__metadata("design:returntype", Promise)
148
+ ], TemplateQueries.prototype, "approvalTemplateByKey", null);
124
149
  tslib_1.__decorate([
125
150
  (0, graphql_1.Query)(() => [approval_template_version_entity_1.ApprovalTemplateVersionEntity]),
126
151
  tslib_1.__param(0, (0, graphql_1.Args)('templateId', { type: () => String })),