@rytass/bpm-core-nestjs-module 0.13.2 → 0.13.4

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 (145) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/package.json +13 -6
  3. package/src/index.d.ts +1 -0
  4. package/src/index.js +1 -0
  5. package/src/index.js.map +1 -1
  6. package/src/lib/attachment/attachment-storage.provider.d.ts +11 -0
  7. package/src/lib/attachment/attachment-storage.provider.js +15 -1
  8. package/src/lib/attachment/attachment-storage.provider.js.map +1 -1
  9. package/src/lib/attachment/attachment.module.js +16 -1
  10. package/src/lib/attachment/attachment.module.js.map +1 -1
  11. package/src/lib/bpm/bpm-root-options.d.ts +134 -0
  12. package/src/lib/bpm/bpm-root-options.js +61 -0
  13. package/src/lib/bpm/bpm-root-options.js.map +1 -0
  14. package/src/lib/bpm/bpm-root.module.d.ts +101 -137
  15. package/src/lib/bpm/bpm-root.module.js +83 -118
  16. package/src/lib/bpm/bpm-root.module.js.map +1 -1
  17. package/src/lib/bpm/index.d.ts +1 -0
  18. package/src/lib/bpm/index.js +1 -0
  19. package/src/lib/bpm/index.js.map +1 -1
  20. package/src/lib/calendar/business-calendar.provider.d.ts +8 -4
  21. package/src/lib/calendar/business-calendar.provider.js +15 -6
  22. package/src/lib/calendar/business-calendar.provider.js.map +1 -1
  23. package/src/lib/common/outbox.d.ts +26 -0
  24. package/src/lib/common/outbox.js +64 -0
  25. package/src/lib/common/outbox.js.map +1 -0
  26. package/src/lib/delegation/delegation.service.js +7 -7
  27. package/src/lib/delegation/delegation.service.js.map +1 -1
  28. package/src/lib/form-data-source/form-data-source.module.js +2 -4
  29. package/src/lib/form-data-source/form-data-source.module.js.map +1 -1
  30. package/src/lib/form-data-source/form-data-source.provider.d.ts +14 -0
  31. package/src/lib/form-data-source/form-data-source.provider.js +23 -0
  32. package/src/lib/form-data-source/form-data-source.provider.js.map +1 -0
  33. package/src/lib/form-data-source/index.d.ts +1 -0
  34. package/src/lib/form-data-source/index.js +1 -0
  35. package/src/lib/form-data-source/index.js.map +1 -1
  36. package/src/lib/identity/default-member-resolver.d.ts +39 -0
  37. package/src/lib/identity/default-member-resolver.js +81 -0
  38. package/src/lib/identity/default-member-resolver.js.map +1 -0
  39. package/src/lib/identity/identity.module.d.ts +12 -2
  40. package/src/lib/identity/identity.module.js +2 -1
  41. package/src/lib/identity/identity.module.js.map +1 -1
  42. package/src/lib/identity/index.d.ts +1 -0
  43. package/src/lib/identity/index.js +1 -0
  44. package/src/lib/identity/index.js.map +1 -1
  45. package/src/lib/migrations/0000000023000-workflow-webhook-deliveries.d.ts +17 -0
  46. package/src/lib/migrations/0000000023000-workflow-webhook-deliveries.js +61 -0
  47. package/src/lib/migrations/0000000023000-workflow-webhook-deliveries.js.map +1 -0
  48. package/src/lib/migrations/0000000024000-workflow-webhook-endpoints.d.ts +16 -0
  49. package/src/lib/migrations/0000000024000-workflow-webhook-endpoints.js +71 -0
  50. package/src/lib/migrations/0000000024000-workflow-webhook-endpoints.js.map +1 -0
  51. package/src/lib/migrations/index.d.ts +2 -0
  52. package/src/lib/migrations/index.js +6 -0
  53. package/src/lib/migrations/index.js.map +1 -1
  54. package/src/lib/notification/notification-delivery.service.js +4 -57
  55. package/src/lib/notification/notification-delivery.service.js.map +1 -1
  56. package/src/lib/notification/notification.service.js +4 -3
  57. package/src/lib/notification/notification.service.js.map +1 -1
  58. package/src/lib/template/template.service.d.ts +9 -0
  59. package/src/lib/template/template.service.js +31 -0
  60. package/src/lib/template/template.service.js.map +1 -1
  61. package/src/lib/template/workflow-definition.validator.js +54 -1
  62. package/src/lib/template/workflow-definition.validator.js.map +1 -1
  63. package/src/lib/workflow-engine/workflow-engine.enums.d.ts +3 -1
  64. package/src/lib/workflow-engine/workflow-engine.enums.js +2 -0
  65. package/src/lib/workflow-engine/workflow-engine.enums.js.map +1 -1
  66. package/src/lib/workflow-engine/workflow-engine.module.js +3 -0
  67. package/src/lib/workflow-engine/workflow-engine.module.js.map +1 -1
  68. package/src/lib/workflow-engine/workflow-engine.service.d.ts +5 -2
  69. package/src/lib/workflow-engine/workflow-engine.service.js +142 -26
  70. package/src/lib/workflow-engine/workflow-engine.service.js.map +1 -1
  71. package/src/lib/workflow-webhook/index.d.ts +24 -0
  72. package/src/lib/workflow-webhook/index.js +28 -0
  73. package/src/lib/workflow-webhook/index.js.map +1 -0
  74. package/src/lib/workflow-webhook/workflow-webhook-allowlist.d.ts +38 -0
  75. package/src/lib/workflow-webhook/workflow-webhook-allowlist.js +296 -0
  76. package/src/lib/workflow-webhook/workflow-webhook-allowlist.js.map +1 -0
  77. package/src/lib/workflow-webhook/workflow-webhook-database-source.d.ts +33 -0
  78. package/src/lib/workflow-webhook/workflow-webhook-database-source.js +129 -0
  79. package/src/lib/workflow-webhook/workflow-webhook-database-source.js.map +1 -0
  80. package/src/lib/workflow-webhook/workflow-webhook-delivery-scheduler.service.d.ts +25 -0
  81. package/src/lib/workflow-webhook/workflow-webhook-delivery-scheduler.service.js +92 -0
  82. package/src/lib/workflow-webhook/workflow-webhook-delivery-scheduler.service.js.map +1 -0
  83. package/src/lib/workflow-webhook/workflow-webhook-delivery.entity.d.ts +53 -0
  84. package/src/lib/workflow-webhook/workflow-webhook-delivery.entity.js +97 -0
  85. package/src/lib/workflow-webhook/workflow-webhook-delivery.entity.js.map +1 -0
  86. package/src/lib/workflow-webhook/workflow-webhook-delivery.enums.d.ts +28 -0
  87. package/src/lib/workflow-webhook/workflow-webhook-delivery.enums.js +36 -0
  88. package/src/lib/workflow-webhook/workflow-webhook-delivery.enums.js.map +1 -0
  89. package/src/lib/workflow-webhook/workflow-webhook-delivery.object.d.ts +28 -0
  90. package/src/lib/workflow-webhook/workflow-webhook-delivery.object.js +88 -0
  91. package/src/lib/workflow-webhook/workflow-webhook-delivery.object.js.map +1 -0
  92. package/src/lib/workflow-webhook/workflow-webhook-delivery.resolver.d.ts +9 -0
  93. package/src/lib/workflow-webhook/workflow-webhook-delivery.resolver.js +66 -0
  94. package/src/lib/workflow-webhook/workflow-webhook-delivery.resolver.js.map +1 -0
  95. package/src/lib/workflow-webhook/workflow-webhook-delivery.service.d.ts +116 -0
  96. package/src/lib/workflow-webhook/workflow-webhook-delivery.service.js +705 -0
  97. package/src/lib/workflow-webhook/workflow-webhook-delivery.service.js.map +1 -0
  98. package/src/lib/workflow-webhook/workflow-webhook-delivery.subscriber.d.ts +23 -0
  99. package/src/lib/workflow-webhook/workflow-webhook-delivery.subscriber.js +85 -0
  100. package/src/lib/workflow-webhook/workflow-webhook-delivery.subscriber.js.map +1 -0
  101. package/src/lib/workflow-webhook/workflow-webhook-endpoint-admin.dto.d.ts +85 -0
  102. package/src/lib/workflow-webhook/workflow-webhook-endpoint-admin.dto.js +345 -0
  103. package/src/lib/workflow-webhook/workflow-webhook-endpoint-admin.dto.js.map +1 -0
  104. package/src/lib/workflow-webhook/workflow-webhook-endpoint-admin.resolver.d.ts +23 -0
  105. package/src/lib/workflow-webhook/workflow-webhook-endpoint-admin.resolver.js +159 -0
  106. package/src/lib/workflow-webhook/workflow-webhook-endpoint-admin.resolver.js.map +1 -0
  107. package/src/lib/workflow-webhook/workflow-webhook-endpoint-admin.service.d.ts +93 -0
  108. package/src/lib/workflow-webhook/workflow-webhook-endpoint-admin.service.js +464 -0
  109. package/src/lib/workflow-webhook/workflow-webhook-endpoint-admin.service.js.map +1 -0
  110. package/src/lib/workflow-webhook/workflow-webhook-endpoint.entity.d.ts +52 -0
  111. package/src/lib/workflow-webhook/workflow-webhook-endpoint.entity.js +135 -0
  112. package/src/lib/workflow-webhook/workflow-webhook-endpoint.entity.js.map +1 -0
  113. package/src/lib/workflow-webhook/workflow-webhook-enqueue.d.ts +46 -0
  114. package/src/lib/workflow-webhook/workflow-webhook-enqueue.js +134 -0
  115. package/src/lib/workflow-webhook/workflow-webhook-enqueue.js.map +1 -0
  116. package/src/lib/workflow-webhook/workflow-webhook-options.d.ts +86 -0
  117. package/src/lib/workflow-webhook/workflow-webhook-options.js +88 -0
  118. package/src/lib/workflow-webhook/workflow-webhook-options.js.map +1 -0
  119. package/src/lib/workflow-webhook/workflow-webhook-options.module.d.ts +18 -0
  120. package/src/lib/workflow-webhook/workflow-webhook-options.module.js +57 -0
  121. package/src/lib/workflow-webhook/workflow-webhook-options.module.js.map +1 -0
  122. package/src/lib/workflow-webhook/workflow-webhook-secret-cipher.d.ts +20 -0
  123. package/src/lib/workflow-webhook/workflow-webhook-secret-cipher.js +66 -0
  124. package/src/lib/workflow-webhook/workflow-webhook-secret-cipher.js.map +1 -0
  125. package/src/lib/workflow-webhook/workflow-webhook.errors.d.ts +35 -0
  126. package/src/lib/workflow-webhook/workflow-webhook.errors.js +41 -0
  127. package/src/lib/workflow-webhook/workflow-webhook.errors.js.map +1 -0
  128. package/src/lib/workflow-webhook/workflow-webhook.module.d.ts +9 -0
  129. package/src/lib/workflow-webhook/workflow-webhook.module.js +62 -0
  130. package/src/lib/workflow-webhook/workflow-webhook.module.js.map +1 -0
  131. package/src/lib/workflow-webhook/workflow-webhook.provider.d.ts +12 -0
  132. package/src/lib/workflow-webhook/workflow-webhook.provider.js +21 -0
  133. package/src/lib/workflow-webhook/workflow-webhook.provider.js.map +1 -0
  134. package/src/lib/workflow-webhook/workflow-webhook.queries.d.ts +38 -0
  135. package/src/lib/workflow-webhook/workflow-webhook.queries.js +142 -0
  136. package/src/lib/workflow-webhook/workflow-webhook.queries.js.map +1 -0
  137. package/src/lib/workflow-webhook/workflow-webhook.service.d.ts +50 -0
  138. package/src/lib/workflow-webhook/workflow-webhook.service.js +221 -0
  139. package/src/lib/workflow-webhook/workflow-webhook.service.js.map +1 -0
  140. package/src/lib/workflow-webhook/workflow-webhook.types.d.ts +127 -0
  141. package/src/lib/workflow-webhook/workflow-webhook.types.js +33 -0
  142. package/src/lib/workflow-webhook/workflow-webhook.types.js.map +1 -0
  143. package/src/lib/workflow-webhook/workflow-webhook.validator.d.ts +20 -0
  144. package/src/lib/workflow-webhook/workflow-webhook.validator.js +97 -0
  145. package/src/lib/workflow-webhook/workflow-webhook.validator.js.map +1 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,56 @@
1
+ ## 0.13.4 (2026-09-17)
2
+
3
+ ### 🚀 Features
4
+
5
+ - **admin:** add the webhook endpoints page ([ac03c59](https://github.com/Rytass/BPMCore/commit/ac03c59))
6
+ - **client:** add webhook endpoint administration API ([0fa9c2a](https://github.com/Rytass/BPMCore/commit/0fa9c2a))
7
+ - **workflow-webhook:** manage notify webhook endpoints in the database ([63e2f95](https://github.com/Rytass/BPMCore/commit/63e2f95))
8
+ - **client:** add the webhook endpoint catalog query ([9e2c927](https://github.com/Rytass/BPMCore/commit/9e2c927))
9
+ - **instance-detail:** show webhook deliveries to administrators ([4e1e3c1](https://github.com/Rytass/BPMCore/commit/4e1e3c1))
10
+ - **client:** add webhook delivery listing and retry ([89387ae](https://github.com/Rytass/BPMCore/commit/89387ae))
11
+ - **workflow-webhook:** let administrators inspect and retry deliveries ([4a6128b](https://github.com/Rytass/BPMCore/commit/4a6128b))
12
+ - **workflow-webhook:** deliver notify webhooks through a transactional outbox ([cbb277f](https://github.com/Rytass/BPMCore/commit/cbb277f))
13
+ - **template:** check webhook endpoints and bindings before publishing ([8c40553](https://github.com/Rytass/BPMCore/commit/8c40553))
14
+ - **bpm:** wire the webhook endpoint registry into BPMRootModule ([0009643](https://github.com/Rytass/BPMCore/commit/0009643))
15
+ - **workflow-webhook:** add the endpoint registry, catalog and allowlist ([82afe97](https://github.com/Rytass/BPMCore/commit/82afe97))
16
+ - **template:** lint notify webhooks when publishing a template ([b6f75ec](https://github.com/Rytass/BPMCore/commit/b6f75ec))
17
+ - **workflow:** add the notify webhook contract to the shared lib ([e240632](https://github.com/Rytass/BPMCore/commit/e240632))
18
+ - **bpm:** make every BPMRootModule option optional and async-loadable ([0966edb](https://github.com/Rytass/BPMCore/commit/0966edb))
19
+ - **workflow:** make a multi-person ad-hoc countersign need everyone ([f13e227](https://github.com/Rytass/BPMCore/commit/f13e227))
20
+
21
+ ### 🩹 Fixes
22
+
23
+ - **workflow-engine:** end dry-run branches at notify nodes ([6850920](https://github.com/Rytass/BPMCore/commit/6850920))
24
+ - **workflow-webhook:** harden the P1 catalog after independent review ([0ea9790](https://github.com/Rytass/BPMCore/commit/0ea9790))
25
+ - **workflow-engine:** let a webhook-only notify node run ([2e2813a](https://github.com/Rytass/BPMCore/commit/2e2813a))
26
+ - **workflow:** let the engine pick its service task dispatcher ([21bcde4](https://github.com/Rytass/BPMCore/commit/21bcde4))
27
+ - **workflow:** keep a cast vote visible while the countersign waits ([a2a6f21](https://github.com/Rytass/BPMCore/commit/a2a6f21))
28
+ - **workflow:** drop a task from the inbox once that member has decided it ([187d38d](https://github.com/Rytass/BPMCore/commit/187d38d))
29
+ - **workflow:** guard the completion against an active task too ([3ae69e7](https://github.com/Rytass/BPMCore/commit/3ae69e7))
30
+ - **workflow:** stop an end node completing the case twice ([e4b1931](https://github.com/Rytass/BPMCore/commit/e4b1931))
31
+ - **workflow:** report the state a submit actually committed ([67da905](https://github.com/Rytass/BPMCore/commit/67da905))
32
+ - **notification:** hand back an entity from the preference mutation ([3a9ab2c](https://github.com/Rytass/BPMCore/commit/3a9ab2c))
33
+ - **delegation:** hand back an entity from the rule mutations ([02acc1b](https://github.com/Rytass/BPMCore/commit/02acc1b))
34
+ - **workflow:** keep cancelled rows as entities so their GraphQL getters resolve ([746fdb3](https://github.com/Rytass/BPMCore/commit/746fdb3))
35
+
36
+ ### ❤️ Thank You
37
+
38
+ - Chia Yu Pai @fantasywind
39
+ - Claude Opus 5
40
+ - Claude Opus 5 (1M context)
41
+ - Kai-Chieh Yang
42
+
43
+ ## 0.13.3 (2026-09-04)
44
+
45
+ ### 🩹 Fixes
46
+
47
+ - **attachment:** validate the signing secret at bootstrap, not at import ([d07f996](https://github.com/Rytass/BPMCore/commit/d07f996))
48
+
49
+ ### ❤️ Thank You
50
+
51
+ - Chia Yu Pai @fantasywind
52
+ - Claude Opus 5
53
+
1
54
  ## 0.13.2 (2026-09-04)
2
55
 
3
56
  ### 🩹 Fixes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rytass/bpm-core-nestjs-module",
3
- "version": "0.13.2",
3
+ "version": "0.13.4",
4
4
  "description": "Embeddable NestJS BPM approval workflow module: workflow engine, approval templates, forms, organization/member contracts, attachments, signatures, notifications, delegation, and TypeORM migrations.",
5
5
  "keywords": [
6
6
  "bpm",
@@ -80,6 +80,9 @@
80
80
  ],
81
81
  "workflow-engine": [
82
82
  "./src/lib/workflow-engine/index.d.ts"
83
+ ],
84
+ "workflow-webhook": [
85
+ "./src/lib/workflow-webhook/index.d.ts"
83
86
  ]
84
87
  }
85
88
  },
@@ -148,6 +151,10 @@
148
151
  "./workflow-engine": {
149
152
  "types": "./src/lib/workflow-engine/index.d.ts",
150
153
  "default": "./src/lib/workflow-engine/index.js"
154
+ },
155
+ "./workflow-webhook": {
156
+ "types": "./src/lib/workflow-webhook/index.d.ts",
157
+ "default": "./src/lib/workflow-webhook/index.js"
151
158
  }
152
159
  },
153
160
  "peerDependencies": {
@@ -155,7 +162,7 @@
155
162
  "@nestjs/core": ">=10.0.0",
156
163
  "@nestjs/graphql": ">=12.0.0",
157
164
  "@nestjs/typeorm": ">=10.0.0",
158
- "@rytass/bpm-core-shared": "^0.13.2",
165
+ "@rytass/bpm-core-shared": "^0.13.4",
159
166
  "@rytass/secret-adapter-vault-nestjs": ">=0.4.5",
160
167
  "express": ">=4.0.0",
161
168
  "graphql": ">=16.0.0",
@@ -171,13 +178,13 @@
171
178
  }
172
179
  },
173
180
  "dependencies": {
174
- "@rytass/storages": "^0.2.6",
175
- "@rytass/storages-adapter-local": "^0.2.9",
181
+ "@rytass/storages": "^0.2.7",
182
+ "@rytass/storages-adapter-local": "^0.2.10",
176
183
  "cel-js": "^0.8.2",
177
184
  "class-transformer": "^0.5.1",
178
185
  "class-validator": "^0.15.1",
179
186
  "handlebars": "^4.7.9",
180
- "nodemailer": "^9.0.1",
181
- "tslib": "^2.3.0"
187
+ "nodemailer": "^9.1.1",
188
+ "tslib": "^2.8.1"
182
189
  }
183
190
  }
package/src/index.d.ts CHANGED
@@ -14,3 +14,4 @@ export * from './lib/organization';
14
14
  export * from './lib/signature';
15
15
  export * from './lib/template';
16
16
  export * from './lib/workflow-engine';
17
+ export * from './lib/workflow-webhook';
package/src/index.js CHANGED
@@ -17,4 +17,5 @@ tslib_1.__exportStar(require("./lib/organization"), exports);
17
17
  tslib_1.__exportStar(require("./lib/signature"), exports);
18
18
  tslib_1.__exportStar(require("./lib/template"), exports);
19
19
  tslib_1.__exportStar(require("./lib/workflow-engine"), exports);
20
+ tslib_1.__exportStar(require("./lib/workflow-webhook"), exports);
20
21
  //# sourceMappingURL=index.js.map
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/bpm-core/src/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,oDAA0B;AAC1B,yDAA+B;AAC/B,yDAA+B;AAC/B,uDAA6B;AAC7B,0DAAgC;AAChC,yDAA+B;AAC/B,2DAAiC;AACjC,qDAA2B;AAC3B,iEAAuC;AACvC,yDAA+B;AAC/B,6DAAmC;AACnC,6DAAmC;AACnC,0DAAgC;AAChC,yDAA+B;AAC/B,gEAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/bpm-core/src/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,oDAA0B;AAC1B,yDAA+B;AAC/B,yDAA+B;AAC/B,uDAA6B;AAC7B,0DAAgC;AAChC,yDAA+B;AAC/B,2DAAiC;AACjC,qDAA2B;AAC3B,iEAAuC;AACvC,yDAA+B;AAC/B,6DAAmC;AACnC,6DAAmC;AACnC,0DAAgC;AAChC,yDAA+B;AAC/B,gEAAsC;AACtC,iEAAuC"}
@@ -1,4 +1,15 @@
1
1
  import { Provider } from '@nestjs/common';
2
2
  import { AttachmentStorage } from './attachment-storage.token';
3
+ /**
4
+ * Default attachment storage used when the host registers none.
5
+ *
6
+ * Prefers a storage adapter handed to `BPMRootModule` as a runtime value
7
+ * (`attachmentStorage`, which a `forRootAsync` factory can build once its
8
+ * credentials are in hand) and otherwise writes to `.storage/attachments`
9
+ * through `@rytass/storages-adapter-local`.
10
+ *
11
+ * `BPM_ROOT_OPTIONS` is injected optionally so `AttachmentModule` still
12
+ * resolves when it is used on its own, outside `BPMRootModule`.
13
+ */
3
14
  export declare const attachmentStorageProvider: Provider<AttachmentStorage>;
4
15
  export declare function createLocalAttachmentStorage(directory: string): AttachmentStorage;
@@ -4,10 +4,24 @@ exports.attachmentStorageProvider = void 0;
4
4
  exports.createLocalAttachmentStorage = createLocalAttachmentStorage;
5
5
  const promises_1 = require("fs/promises");
6
6
  const path_1 = require("path");
7
+ const bpm_root_options_1 = require("../bpm/bpm-root-options");
7
8
  const attachment_storage_token_1 = require("./attachment-storage.token");
9
+ /**
10
+ * Default attachment storage used when the host registers none.
11
+ *
12
+ * Prefers a storage adapter handed to `BPMRootModule` as a runtime value
13
+ * (`attachmentStorage`, which a `forRootAsync` factory can build once its
14
+ * credentials are in hand) and otherwise writes to `.storage/attachments`
15
+ * through `@rytass/storages-adapter-local`.
16
+ *
17
+ * `BPM_ROOT_OPTIONS` is injected optionally so `AttachmentModule` still
18
+ * resolves when it is used on its own, outside `BPMRootModule`.
19
+ */
8
20
  exports.attachmentStorageProvider = {
21
+ inject: [{ optional: true, token: bpm_root_options_1.BPM_ROOT_OPTIONS }],
9
22
  provide: attachment_storage_token_1.ATTACHMENT_STORAGE,
10
- useFactory: () => createLocalAttachmentStorage((0, path_1.resolve)(process.cwd(), '.storage', 'attachments')),
23
+ useFactory: (rootOptions) => rootOptions?.attachmentStorage ??
24
+ createLocalAttachmentStorage((0, path_1.resolve)(process.cwd(), '.storage', 'attachments')),
11
25
  };
12
26
  function createLocalAttachmentStorage(directory) {
13
27
  const storageDirectory = (0, path_1.resolve)(directory);
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-storage.provider.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/attachment/attachment-storage.provider.ts"],"names":[],"mappings":";;;AA2BA,oEA0BC;AApDD,0CAAoC;AACpC,+BAAwC;AACxC,yEAGoC;AAavB,QAAA,yBAAyB,GAAgC;IACpE,OAAO,EAAE,6CAAkB;IAC3B,UAAU,EAAE,GAAsB,EAAE,CAClC,4BAA4B,CAC1B,IAAA,cAAO,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,CAClD;CACJ,CAAC;AAEF,SAAgB,4BAA4B,CAC1C,SAAiB;IAEjB,MAAM,gBAAgB,GAAG,IAAA,cAAO,EAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,2BAA2B,EAAE,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;QACpC,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACH,MAAM,KAAK,GAA+B,KAAK,EAC7C,IAAI,EACJ,OAAO,EACiC,EAAE;QAC1C,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAA,gBAAK,EAAC,IAAA,cAAO,EAAC,IAAA,cAAO,EAAC,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE;gBAChE,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,YAAY,EAAE;QAC7B,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAW,EAAE,CAC3C,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;KACzE,CAAsB,CAAC;AAC1B,CAAC;AAED,SAAS,2BAA2B;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,gCAAgC,CAAuB,CAAC;IAEhF,OAAO,OAAO,CAAC,YAAY,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"attachment-storage.provider.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/attachment/attachment-storage.provider.ts"],"names":[],"mappings":";;;AA8CA,oEA0BC;AAvED,0CAAoC;AACpC,+BAAwC;AACxC,8DAGiC;AACjC,yEAGoC;AAapC;;;;;;;;;;GAUG;AACU,QAAA,yBAAyB,GAAgC;IACpE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,mCAAgB,EAAE,CAAC;IACrD,OAAO,EAAE,6CAAkB;IAC3B,UAAU,EAAE,CACV,WAA8C,EAC3B,EAAE,CACrB,WAAW,EAAE,iBAAiB;QAC9B,4BAA4B,CAC1B,IAAA,cAAO,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,CAClD;CACJ,CAAC;AAEF,SAAgB,4BAA4B,CAC1C,SAAiB;IAEjB,MAAM,gBAAgB,GAAG,IAAA,cAAO,EAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,2BAA2B,EAAE,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;QACpC,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACH,MAAM,KAAK,GAA+B,KAAK,EAC7C,IAAI,EACJ,OAAO,EACiC,EAAE;QAC1C,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAA,gBAAK,EAAC,IAAA,cAAO,EAAC,IAAA,cAAO,EAAC,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE;gBAChE,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,YAAY,EAAE;QAC7B,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAW,EAAE,CAC3C,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;KACzE,CAAsB,CAAC;AAC1B,CAAC;AAED,SAAS,2BAA2B;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,gCAAgC,CAAuB,CAAC;IAEhF,OAAO,OAAO,CAAC,YAAY,CAAC;AAC9B,CAAC"}
@@ -94,10 +94,25 @@ exports.AttachmentModule = AttachmentModule = AttachmentModule_1 = tslib_1.__dec
94
94
  exports: ATTACHMENT_MODULE_EXPORTS,
95
95
  })
96
96
  ], AttachmentModule);
97
+ /**
98
+ * Resolves the attachment options lazily.
99
+ *
100
+ * A `useValue` here would run `resolveBPMAttachmentOptions` while the `@Module`
101
+ * decorator argument above is being evaluated — that is, when this file is
102
+ * *imported*. The production secret check would then fire at `require()` time,
103
+ * before any host could pass a secret through `forRoot` / `forRootAsync`, and
104
+ * even for a host that never mounts attachments at all. That is exactly what
105
+ * made 0.13.2 impossible to load under `NODE_ENV=production`.
106
+ *
107
+ * As a factory the check happens when Nest instantiates the provider, i.e. at
108
+ * application bootstrap — still fail-fast, but after the host has had its say.
109
+ * When `forRoot` / `forRootAsync` registers the same token, this provider is
110
+ * replaced and never instantiated.
111
+ */
97
112
  function createAttachmentOptionsProvider(options = {}) {
98
113
  return {
99
114
  provide: attachment_options_1.BPM_ATTACHMENT_OPTIONS,
100
- useValue: (0, attachment_options_1.resolveBPMAttachmentOptions)(options),
115
+ useFactory: () => (0, attachment_options_1.resolveBPMAttachmentOptions)(options),
101
116
  };
102
117
  }
103
118
  //# sourceMappingURL=attachment.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attachment.module.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/attachment/attachment.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAMwB;AACxB,wDAAyD;AAEzD,6CAAgD;AAChD,0FAAqF;AACrF,oFAA+E;AAC/E,kFAA6E;AAC7E,gEAA4D;AAC5D,mEAA+D;AAC/D,2DAAuD;AACvD,iEAA6D;AAC7D,6DAAyD;AACzD,+EAA0E;AAE1E,6DAAyD;AACzD,6DAK8B;AA4B9B;;;;;;;;GAQG;AACH,SAAS,6BAA6B,CACpC,qBAAgD;IAEhD,MAAM,cAAc,GAAG,IAAA,oDAA+B,EAAC,qBAAqB,CAAC,CAAC;IAE9E,OAAO,CAAC,cAAc,CAAC,yBAAa,EAAE,cAAc,EAAE,4CAAoB,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,yBAAyB,GAAG;IAChC,uBAAa,CAAC,UAAU,CAAC;QACvB,iDAAsB;QACtB,oCAAgB;QAChB,2CAAmB;QACnB,yCAAkB;QAClB,wBAAU;KACX,CAAC;CACH,CAAC;AAEF,MAAM,6BAA6B,GAAG,CAAC,4CAAoB,CAAC,CAAC;AAC7D,MAAM,2BAA2B,GAAG;IAClC,0CAAmB;IACnB,sCAAiB;IACjB,sCAAiB;CAClB,CAAC;AACF,MAAM,yBAAyB,GAAG,CAAC,sCAAiB,CAAC,CAAC;AAa/C,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAC3B,MAAM,CAAC,OAAO,CAAC,UAAmC,EAAE;QAClD,6BAA6B,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAE7D,OAAO;YACL,WAAW,EAAE,6BAA6B;YAC1C,OAAO,EAAE,yBAAyB;YAClC,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,yBAAyB,CAAC;YACnE,MAAM,EAAE,kBAAgB;YACxB,SAAS,EAAE;gBACT,GAAG,2BAA2B;gBAC9B,OAAO,CAAC,eAAe,IAAI,uDAAyB;gBACpD,+BAA+B,CAAC,OAAO,CAAC;aACzC;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAAqC;QACvD,6BAA6B,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAE7D,OAAO;YACL,WAAW,EAAE,6BAA6B;YAC1C,OAAO,EAAE,yBAAyB;YAClC,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,yBAAyB,CAAC;YACnE,MAAM,EAAE,kBAAgB;YACxB,SAAS,EAAE;gBACT,GAAG,2BAA2B;gBAC9B,OAAO,CAAC,eAAe,IAAI,uDAAyB;gBACpD;oBACE,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;oBACnC,OAAO,EAAE,2CAAsB;oBAC/B,UAAU,EAAE,KAAK,EACf,GAAG,IAAwB,EAC8B,EAAE,CAC3D,IAAA,gDAA2B,EAAC,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;iBACjE;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAvCY,4CAAgB;2BAAhB,gBAAgB;IAX5B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,yBAAyB;QAClC,WAAW,EAAE,6BAA6B;QAC1C,SAAS,EAAE;YACT,GAAG,2BAA2B;YAC9B,uDAAyB;YACzB,+BAA+B,EAAE;SAClC;QACD,OAAO,EAAE,yBAAyB;KACnC,CAAC;GACW,gBAAgB,CAuC5B;AAED,SAAS,+BAA+B,CACtC,UAAoC,EAAE;IAEtC,OAAO;QACL,OAAO,EAAE,2CAAsB;QAC/B,QAAQ,EAAE,IAAA,gDAA2B,EAAC,OAAO,CAAC;KAC/C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"attachment.module.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/attachment/attachment.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ import { DynamicModule, InjectionToken } from '@nestjs/common';
2
+ import { ModuleMetadata } from '@nestjs/common/interfaces';
3
+ import { BPMRootAttachmentOptions } from '../attachment/attachment-options';
4
+ import { AttachmentStorage } from '../attachment/attachment-storage.token';
5
+ import { BPMAuthModuleOptions } from '../bpm-auth/bpm-auth.options';
6
+ import { BPMBusinessCalendar } from '../calendar/business-calendar.token';
7
+ import { BPMFormDataSourceRegistry } from '../form-data-source/form-data-source.types';
8
+ import { BPMRootIdentityOptions } from '../identity/identity-options';
9
+ import { BPMMemberResolver } from '../identity/member-resolver.interface';
10
+ import { BPMRootNotificationOptions } from '../notification/notification-options';
11
+ import { BPMRootSignatureOptions } from '../signature/signature-options';
12
+ import { BPMWorkflowServiceTaskDispatcher } from '../workflow-engine/workflow-service-task-dispatcher.token';
13
+ import { BPMRootWorkflowWebhookOptions } from '../workflow-webhook/workflow-webhook-options';
14
+ import { BPMWorkflowWebhookRegistry } from '../workflow-webhook/workflow-webhook.types';
15
+ /**
16
+ * Every BPM setting that can be decided at **runtime**, i.e. after the host's
17
+ * secrets have been read.
18
+ *
19
+ * This is exactly what a `BPMRootModule.forRootAsync` `useFactory` returns, and
20
+ * it is also embedded in the synchronous `BPMRootModuleOptions`, so a host can
21
+ * move a setting between `forRoot` and `forRootAsync` without reshaping it.
22
+ *
23
+ * Every field is optional. A host that supplies none still boots: BPM falls
24
+ * back to a local attachment store, an id-passthrough member resolver, a
25
+ * Monday–Friday business calendar, an empty form DataSource catalog, and a
26
+ * `fetch`-based webhook dispatcher, with in-app notifications on and email,
27
+ * webhook, and both schedulers off. Features are opted **in** from there.
28
+ *
29
+ * Two settings deliberately do **not** live here, because Nest reads them
30
+ * while building routes and the GraphQL schema — before any async factory has
31
+ * run: `attachmentRoutePrefix` and `identityRegisterResolvers`. They are
32
+ * accepted at the top level of the `forRootAsync` options object instead.
33
+ */
34
+ export interface BPMRootRuntimeOptions extends BPMRootAttachmentOptions, BPMRootIdentityOptions, BPMRootNotificationOptions, BPMRootSignatureOptions, BPMRootWorkflowWebhookOptions {
35
+ /**
36
+ * Storage adapter for BPM attachments, as a ready instance.
37
+ *
38
+ * Any `@rytass/storages` compatible adapter (MinIO, S3, GCS) fits. Prefer
39
+ * this over `attachmentStorageProvider` when the adapter needs a secret:
40
+ * the instance is built inside the async factory, where the secret is
41
+ * already in hand. When omitted, BPM writes to `.storage/attachments`
42
+ * through `@rytass/storages-adapter-local`.
43
+ */
44
+ readonly attachmentStorage?: AttachmentStorage;
45
+ /**
46
+ * Factory that resolves the current BPM auth context from NestJS execution
47
+ * context.
48
+ *
49
+ * BPM guards, GraphQL decorators, and domain services use this callback to
50
+ * identify the current member and organization context. It is only needed
51
+ * when the host does **not** already put a `bpmAuthContext` on the
52
+ * GraphQL/HTTP context — BPM reads that first and falls back to this.
53
+ */
54
+ readonly authContextFactory?: BPMAuthModuleOptions['contextFactory'];
55
+ /**
56
+ * Business calendar for workflow nodes whose SLA opts into `BUSINESS_DAY`,
57
+ * as a ready instance.
58
+ *
59
+ * BPMCore ships no national holiday data; when omitted, BPM falls back to a
60
+ * Monday–Friday calendar in `notificationSlaBusinessCalendarTimeZone`.
61
+ *
62
+ * Supplying the calendar here rather than through
63
+ * `businessCalendarProvider` also sidesteps that option's DI-cycle footgun:
64
+ * the instance is constructed by the host's own factory, so its dependency
65
+ * chain never runs through BPM's module context.
66
+ */
67
+ readonly businessCalendar?: BPMBusinessCalendar;
68
+ /**
69
+ * Versioned form option DataSource catalog, as a ready instance. When
70
+ * omitted, BPM exposes an empty catalog.
71
+ */
72
+ readonly formDataSourceRegistry?: BPMFormDataSourceRegistry;
73
+ /**
74
+ * Host identity source, as a ready instance.
75
+ *
76
+ * When omitted, BPM resolves every member to its own id
77
+ * (`DefaultBPMMemberResolver`): screens keep working, but display names are
78
+ * raw ids and member emails are empty.
79
+ */
80
+ readonly memberResolver?: BPMMemberResolver;
81
+ /**
82
+ * Dispatcher for executable workflow service tasks, as a ready instance.
83
+ * Replace the default `fetch` dispatcher to add auth headers, request
84
+ * signing, retry queues, or an outbound integration bus.
85
+ */
86
+ readonly workflowServiceTaskDispatcher?: BPMWorkflowServiceTaskDispatcher;
87
+ /**
88
+ * Catalog of NOTIFY webhook endpoints registered by host code, as a ready
89
+ * instance (ADR 18 §3.1). When omitted, BPM exposes an empty catalog and a
90
+ * template that references any endpoint cannot be published.
91
+ */
92
+ readonly workflowWebhookRegistry?: BPMWorkflowWebhookRegistry;
93
+ }
94
+ /**
95
+ * @deprecated Use {@link BPMRootRuntimeOptions}. Kept as a
96
+ * backwards-compatible alias for hosts that named the `forRootAsync` factory
97
+ * return type explicitly.
98
+ */
99
+ export type BPMRootModuleAsyncFactoryOptions = BPMRootRuntimeOptions;
100
+ /**
101
+ * Injection token carrying the **resolved** {@link BPMRootRuntimeOptions}.
102
+ *
103
+ * BPM resolves the host's `useFactory` exactly once and publishes the result
104
+ * under this token, so every BPM sub-module reads one coherent object. Before
105
+ * this token existed each sub-module called the host factory itself — five
106
+ * times per boot — which made a factory that constructs instances (a member
107
+ * resolver, a storage adapter) quietly produce a different instance per
108
+ * consumer.
109
+ *
110
+ * Host code may inject it too, but it is primarily BPM's own plumbing.
111
+ */
112
+ export declare const BPM_ROOT_OPTIONS: InjectionToken<BPMRootRuntimeOptions>;
113
+ export interface BPMRootOptionsModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
114
+ /**
115
+ * Providers injected into `useFactory`, typically a Vault or config service.
116
+ */
117
+ readonly inject?: readonly InjectionToken[];
118
+ /**
119
+ * Async factory returning the flattened BPM runtime options. Optional — a
120
+ * host that only needs defaults can omit it entirely.
121
+ */
122
+ readonly useFactory?: (...args: readonly unknown[]) => BPMRootRuntimeOptions | Promise<BPMRootRuntimeOptions>;
123
+ }
124
+ /**
125
+ * Publishes the resolved BPM runtime options under {@link BPM_ROOT_OPTIONS}.
126
+ *
127
+ * Global so that every BPM sub-module — and any host provider that wants to
128
+ * read what BPM ended up with — can inject the token without threading an
129
+ * import through each feature module.
130
+ */
131
+ export declare class BPMRootOptionsModule {
132
+ static forRoot(options?: BPMRootRuntimeOptions): DynamicModule;
133
+ static forRootAsync(options?: BPMRootOptionsModuleAsyncOptions): DynamicModule;
134
+ }
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var BPMRootOptionsModule_1;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.BPMRootOptionsModule = exports.BPM_ROOT_OPTIONS = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const common_1 = require("@nestjs/common");
7
+ /**
8
+ * Injection token carrying the **resolved** {@link BPMRootRuntimeOptions}.
9
+ *
10
+ * BPM resolves the host's `useFactory` exactly once and publishes the result
11
+ * under this token, so every BPM sub-module reads one coherent object. Before
12
+ * this token existed each sub-module called the host factory itself — five
13
+ * times per boot — which made a factory that constructs instances (a member
14
+ * resolver, a storage adapter) quietly produce a different instance per
15
+ * consumer.
16
+ *
17
+ * Host code may inject it too, but it is primarily BPM's own plumbing.
18
+ */
19
+ exports.BPM_ROOT_OPTIONS = Symbol('BPM_ROOT_OPTIONS');
20
+ /**
21
+ * Publishes the resolved BPM runtime options under {@link BPM_ROOT_OPTIONS}.
22
+ *
23
+ * Global so that every BPM sub-module — and any host provider that wants to
24
+ * read what BPM ended up with — can inject the token without threading an
25
+ * import through each feature module.
26
+ */
27
+ let BPMRootOptionsModule = BPMRootOptionsModule_1 = class BPMRootOptionsModule {
28
+ static forRoot(options = {}) {
29
+ return {
30
+ exports: [exports.BPM_ROOT_OPTIONS],
31
+ module: BPMRootOptionsModule_1,
32
+ providers: [
33
+ {
34
+ provide: exports.BPM_ROOT_OPTIONS,
35
+ useValue: options,
36
+ },
37
+ ],
38
+ };
39
+ }
40
+ static forRootAsync(options = {}) {
41
+ const useFactory = options.useFactory;
42
+ return {
43
+ exports: [exports.BPM_ROOT_OPTIONS],
44
+ imports: options.imports ? [...options.imports] : [],
45
+ module: BPMRootOptionsModule_1,
46
+ providers: [
47
+ {
48
+ inject: [...(options.inject ?? [])],
49
+ provide: exports.BPM_ROOT_OPTIONS,
50
+ useFactory: async (...args) => useFactory ? await useFactory(...args) : {},
51
+ },
52
+ ],
53
+ };
54
+ }
55
+ };
56
+ exports.BPMRootOptionsModule = BPMRootOptionsModule;
57
+ exports.BPMRootOptionsModule = BPMRootOptionsModule = BPMRootOptionsModule_1 = tslib_1.__decorate([
58
+ (0, common_1.Global)(),
59
+ (0, common_1.Module)({})
60
+ ], BPMRootOptionsModule);
61
+ //# sourceMappingURL=bpm-root-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bpm-root-options.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/bpm/bpm-root-options.ts"],"names":[],"mappings":";;;;;AAAA,2CAA+E;AAkH/E;;;;;;;;;;;GAWG;AACU,QAAA,gBAAgB,GAA0C,MAAM,CAC3E,kBAAkB,CACnB,CAAC;AAoBF;;;;;;GAMG;AAGI,IAAM,oBAAoB,4BAA1B,MAAM,oBAAoB;IAC/B,MAAM,CAAC,OAAO,CAAC,UAAiC,EAAE;QAChD,OAAO;YACL,OAAO,EAAE,CAAC,wBAAgB,CAAC;YAC3B,MAAM,EAAE,sBAAoB;YAC5B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,wBAAgB;oBACzB,QAAQ,EAAE,OAAO;iBAClB;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CACjB,UAA4C,EAAE;QAE9C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAEtC,OAAO;YACL,OAAO,EAAE,CAAC,wBAAgB,CAAC;YAC3B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;YACpD,MAAM,EAAE,sBAAoB;YAC5B,SAAS,EAAE;gBACT;oBACE,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;oBACnC,OAAO,EAAE,wBAAgB;oBACzB,UAAU,EAAE,KAAK,EACf,GAAG,IAAwB,EACK,EAAE,CAClC,UAAU,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;iBAC9C;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAnCY,oDAAoB;+BAApB,oBAAoB;IAFhC,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,oBAAoB,CAmChC"}