@rytass/bpm-core-nestjs-module 0.18.1 → 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.
- package/CHANGELOG.md +52 -0
- package/package.json +3 -2
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/index.js.map +1 -1
- package/src/lib/attachment/attachment.service.d.ts +23 -1
- package/src/lib/attachment/attachment.service.js +111 -24
- package/src/lib/attachment/attachment.service.js.map +1 -1
- package/src/lib/bpm/bpm-root-options.d.ts +13 -0
- package/src/lib/bpm/bpm-root-options.js.map +1 -1
- package/src/lib/bpm/bpm-root.module.d.ts +12 -0
- package/src/lib/bpm/bpm-root.module.js +5 -0
- package/src/lib/bpm/bpm-root.module.js.map +1 -1
- package/src/lib/condition/adapters/cel-legacy.adapter.d.ts +62 -0
- package/src/lib/condition/adapters/cel-legacy.adapter.js +141 -0
- package/src/lib/condition/adapters/cel-legacy.adapter.js.map +1 -0
- package/src/lib/condition/adapters/cel-v2.adapter.d.ts +76 -0
- package/src/lib/condition/adapters/cel-v2.adapter.js +371 -0
- package/src/lib/condition/adapters/cel-v2.adapter.js.map +1 -0
- package/src/lib/condition/condition.service.d.ts +90 -5
- package/src/lib/condition/condition.service.js +287 -71
- package/src/lib/condition/condition.service.js.map +1 -1
- package/src/lib/condition/expression-ast.d.ts +176 -0
- package/src/lib/condition/expression-ast.js +1254 -0
- package/src/lib/condition/expression-ast.js.map +1 -0
- package/src/lib/condition/expression-budget.d.ts +44 -0
- package/src/lib/condition/expression-budget.js +61 -0
- package/src/lib/condition/expression-budget.js.map +1 -0
- package/src/lib/condition/expression-dialect.d.ts +29 -0
- package/src/lib/condition/expression-dialect.js +44 -0
- package/src/lib/condition/expression-dialect.js.map +1 -0
- package/src/lib/condition/expression-differential.corpus.d.ts +34 -0
- package/src/lib/condition/expression-differential.corpus.js +995 -0
- package/src/lib/condition/expression-differential.corpus.js.map +1 -0
- package/src/lib/condition/expression-differential.d.ts +33 -0
- package/src/lib/condition/expression-differential.js +48 -0
- package/src/lib/condition/expression-differential.js.map +1 -0
- package/src/lib/condition/expression-engine-failure.d.ts +15 -0
- package/src/lib/condition/expression-engine-failure.js +22 -0
- package/src/lib/condition/expression-engine-failure.js.map +1 -0
- package/src/lib/condition/expression-errors.d.ts +40 -0
- package/src/lib/condition/expression-errors.js +105 -0
- package/src/lib/condition/expression-errors.js.map +1 -0
- package/src/lib/condition/expression-function-invocation.d.ts +50 -0
- package/src/lib/condition/expression-function-invocation.js +290 -0
- package/src/lib/condition/expression-function-invocation.js.map +1 -0
- package/src/lib/condition/expression-result.walker.d.ts +18 -0
- package/src/lib/condition/expression-result.walker.js +152 -0
- package/src/lib/condition/expression-result.walker.js.map +1 -0
- package/src/lib/condition/expression-runtime.d.ts +70 -0
- package/src/lib/condition/expression-runtime.js +134 -0
- package/src/lib/condition/expression-runtime.js.map +1 -0
- package/src/lib/condition/index.d.ts +4 -0
- package/src/lib/condition/index.js +8 -0
- package/src/lib/condition/index.js.map +1 -1
- package/src/lib/delegation/delegation-rule.entity.d.ts +7 -0
- package/src/lib/delegation/delegation-rule.entity.js +10 -0
- package/src/lib/delegation/delegation-rule.entity.js.map +1 -1
- package/src/lib/delegation/delegation.service.d.ts +7 -1
- package/src/lib/delegation/delegation.service.js +22 -5
- package/src/lib/delegation/delegation.service.js.map +1 -1
- package/src/lib/delegation/dto/delegation-rule.input.d.ts +2 -0
- package/src/lib/delegation/dto/delegation-rule.input.js +10 -0
- package/src/lib/delegation/dto/delegation-rule.input.js.map +1 -1
- package/src/lib/expression-function/expression-function.built-ins.d.ts +9 -0
- package/src/lib/expression-function/expression-function.built-ins.js +117 -0
- package/src/lib/expression-function/expression-function.built-ins.js.map +1 -0
- package/src/lib/expression-function/expression-function.module.d.ts +19 -0
- package/src/lib/expression-function/expression-function.module.js +34 -0
- package/src/lib/expression-function/expression-function.module.js.map +1 -0
- package/src/lib/expression-function/expression-function.provider.d.ts +17 -0
- package/src/lib/expression-function/expression-function.provider.js +39 -0
- package/src/lib/expression-function/expression-function.provider.js.map +1 -0
- package/src/lib/expression-function/expression-function.registry.d.ts +36 -0
- package/src/lib/expression-function/expression-function.registry.js +231 -0
- package/src/lib/expression-function/expression-function.registry.js.map +1 -0
- package/src/lib/expression-function/expression-function.types.d.ts +30 -0
- package/src/lib/expression-function/expression-function.types.js +8 -0
- package/src/lib/expression-function/expression-function.types.js.map +1 -0
- package/src/lib/expression-function/index.d.ts +5 -0
- package/src/lib/expression-function/index.js +9 -0
- package/src/lib/expression-function/index.js.map +1 -0
- package/src/lib/form/form-schema.validator.js +53 -6
- package/src/lib/form/form-schema.validator.js.map +1 -1
- package/src/lib/form-data-source/form-data-source-value-resolver.service.d.ts +12 -1
- package/src/lib/form-data-source/form-data-source-value-resolver.service.js +45 -26
- package/src/lib/form-data-source/form-data-source-value-resolver.service.js.map +1 -1
- package/src/lib/form-data-source/form-data-source.expression.d.ts +95 -0
- package/src/lib/form-data-source/form-data-source.expression.js +267 -0
- package/src/lib/form-data-source/form-data-source.expression.js.map +1 -0
- package/src/lib/form-data-source/form-data-source.module.js +4 -0
- package/src/lib/form-data-source/form-data-source.module.js.map +1 -1
- package/src/lib/form-data-source/form-data-source.service.d.ts +22 -3
- package/src/lib/form-data-source/form-data-source.service.js +78 -18
- package/src/lib/form-data-source/form-data-source.service.js.map +1 -1
- package/src/lib/form-data-source/form-data-source.validation.d.ts +47 -4
- package/src/lib/form-data-source/form-data-source.validation.js +151 -23
- package/src/lib/form-data-source/form-data-source.validation.js.map +1 -1
- package/src/lib/migrations/0000000030000-delegation-scope-condition-dialect.d.ts +22 -0
- package/src/lib/migrations/0000000030000-delegation-scope-condition-dialect.js +76 -0
- package/src/lib/migrations/0000000030000-delegation-scope-condition-dialect.js.map +1 -0
- package/src/lib/migrations/index.d.ts +1 -0
- package/src/lib/migrations/index.js +3 -0
- package/src/lib/migrations/index.js.map +1 -1
- package/src/lib/notification/notification.service.d.ts +1 -1
- package/src/lib/notification/notification.service.js +7 -3
- package/src/lib/notification/notification.service.js.map +1 -1
- package/src/lib/template/dto/expression-designer.dto.d.ts +107 -0
- package/src/lib/template/dto/expression-designer.dto.js +415 -0
- package/src/lib/template/dto/expression-designer.dto.js.map +1 -0
- package/src/lib/template/expression-designer.queries.d.ts +16 -0
- package/src/lib/template/expression-designer.queries.js +66 -0
- package/src/lib/template/expression-designer.queries.js.map +1 -0
- package/src/lib/template/expression-designer.service.d.ts +72 -0
- package/src/lib/template/expression-designer.service.js +543 -0
- package/src/lib/template/expression-designer.service.js.map +1 -0
- package/src/lib/template/index.d.ts +2 -0
- package/src/lib/template/index.js +2 -0
- package/src/lib/template/index.js.map +1 -1
- package/src/lib/template/template.module.js +4 -0
- package/src/lib/template/template.module.js.map +1 -1
- package/src/lib/template/template.service.d.ts +37 -1
- package/src/lib/template/template.service.js +317 -29
- package/src/lib/template/template.service.js.map +1 -1
- package/src/lib/template/workflow-definition.validator.d.ts +7 -0
- package/src/lib/template/workflow-definition.validator.js +26 -2
- package/src/lib/template/workflow-definition.validator.js.map +1 -1
- package/src/lib/workflow-engine/time-budget.d.ts +13 -0
- package/src/lib/workflow-engine/time-budget.js +58 -0
- package/src/lib/workflow-engine/time-budget.js.map +1 -0
- package/src/lib/workflow-engine/workflow-engine.service.d.ts +24 -0
- package/src/lib/workflow-engine/workflow-engine.service.js +249 -65
- package/src/lib/workflow-engine/workflow-engine.service.js.map +1 -1
- package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.js +4 -0
- package/src/lib/workflow-engine/workflow-service-task-dispatcher.token.js.map +1 -1
- package/src/lib/workflow-webhook/workflow-webhook-delivery.service.d.ts +3 -1
- package/src/lib/workflow-webhook/workflow-webhook-delivery.service.js +11 -2
- package/src/lib/workflow-webhook/workflow-webhook-delivery.service.js.map +1 -1
- package/src/lib/workflow-webhook/workflow-webhook-enqueue.d.ts +8 -1
- package/src/lib/workflow-webhook/workflow-webhook-enqueue.js +70 -27
- package/src/lib/workflow-webhook/workflow-webhook-enqueue.js.map +1 -1
- package/src/lib/workflow-webhook/workflow-webhook-expression.d.ts +57 -0
- package/src/lib/workflow-webhook/workflow-webhook-expression.js +123 -0
- package/src/lib/workflow-webhook/workflow-webhook-expression.js.map +1 -0
- package/src/lib/workflow-webhook/workflow-webhook.module.js +4 -0
- package/src/lib/workflow-webhook/workflow-webhook.module.js.map +1 -1
- package/src/lib/workflow-webhook/workflow-webhook.validator.d.ts +7 -0
- package/src/lib/workflow-webhook/workflow-webhook.validator.js +29 -6
- package/src/lib/workflow-webhook/workflow-webhook.validator.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,55 @@
|
|
|
1
|
+
## 0.20.0 (2026-11-08)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- **workflow-chat:** require a BPM API session for /api/chat ([9906851](https://github.com/Rytass/BPMCore/commit/9906851))
|
|
6
|
+
- ⚠️ **form-data-source:** pass a binding's position explicitly and lint NOTIFY expressions ([9987b12](https://github.com/Rytass/BPMCore/commit/9987b12))
|
|
7
|
+
- **form-data-source:** bind DataSource and webhook parameters to expressions ([c2b18d3](https://github.com/Rytass/BPMCore/commit/c2b18d3))
|
|
8
|
+
- **designer:** write, preview and upgrade expressions in the designer ([ec36bb7](https://github.com/Rytass/BPMCore/commit/ec36bb7))
|
|
9
|
+
- **condition:** call registered functions from every evaluation and lint ([0c2a18f](https://github.com/Rytass/BPMCore/commit/0c2a18f))
|
|
10
|
+
- **template:** lint expressions against their AST at publish ([61d07f5](https://github.com/Rytass/BPMCore/commit/61d07f5))
|
|
11
|
+
- **expression-function:** register host and built-in functions ([f8763b4](https://github.com/Rytass/BPMCore/commit/f8763b4))
|
|
12
|
+
- **expression-function:** define the function registry contract ([31e7e16](https://github.com/Rytass/BPMCore/commit/31e7e16))
|
|
13
|
+
- **workflow-engine:** evaluate each definition in its expression dialect ([45b15c3](https://github.com/Rytass/BPMCore/commit/45b15c3))
|
|
14
|
+
- **delegation:** store the dialect of a rule's scope condition ([acea3d0](https://github.com/Rytass/BPMCore/commit/acea3d0))
|
|
15
|
+
- **condition:** evaluate expressions under a budget with sanitized errors ([38ef1f8](https://github.com/Rytass/BPMCore/commit/38ef1f8))
|
|
16
|
+
|
|
17
|
+
### 🩹 Fixes
|
|
18
|
+
|
|
19
|
+
- **form-data-source:** take a new pick over an expired EXPRESSION value ([3499115](https://github.com/Rytass/BPMCore/commit/3499115))
|
|
20
|
+
- **condition:** check cel-v2 function argument types and log engine warm-up ([0834758](https://github.com/Rytass/BPMCore/commit/0834758))
|
|
21
|
+
- **workflow-engine:** send webhooks after the transaction commits ([d74aba6](https://github.com/Rytass/BPMCore/commit/d74aba6))
|
|
22
|
+
- **workflow-engine:** bound the work of one dry run ([7afacec](https://github.com/Rytass/BPMCore/commit/7afacec))
|
|
23
|
+
- **workflow-engine:** keep transaction reads on one connection ([9bd9ee7](https://github.com/Rytass/BPMCore/commit/9bd9ee7))
|
|
24
|
+
|
|
25
|
+
### ⚠️ Breaking Changes
|
|
26
|
+
|
|
27
|
+
- **form-data-source:** pass a binding's position explicitly and lint NOTIFY expressions ([9987b12](https://github.com/Rytass/BPMCore/commit/9987b12))
|
|
28
|
+
FormDataSourceService.searchFormFieldOptions takes a
|
|
29
|
+
required position instead of optional rowValues, and the
|
|
30
|
+
NotifyWebhookBindingSource union gains an EXPRESSION member, so an
|
|
31
|
+
exhaustive switch over from.kind needs a new case.
|
|
32
|
+
|
|
33
|
+
### ❤️ Thank You
|
|
34
|
+
|
|
35
|
+
- Chia Yu Pai @fantasywind
|
|
36
|
+
|
|
37
|
+
## 0.19.0 (2026-11-04)
|
|
38
|
+
|
|
39
|
+
### 🩹 Fixes
|
|
40
|
+
|
|
41
|
+
- **bpm-core:** record the field that holds a form attachment now ([f6920de](https://github.com/Rytass/BPMCore/commit/f6920de))
|
|
42
|
+
- **bpm-core:** read form attachments from file_upload fields only ([e9cd71a](https://github.com/Rytass/BPMCore/commit/e9cd71a))
|
|
43
|
+
- **bpm-core-react:** list file_upload files as the host holds them, in pick order ([20bf634](https://github.com/Rytass/BPMCore/commit/20bf634))
|
|
44
|
+
- **bpm-core:** refuse a form attachment the case may not take ([4710a23](https://github.com/Rytass/BPMCore/commit/4710a23))
|
|
45
|
+
- **bpm-core:** bind a free attachment only for the members who file the case ([ecd9d76](https://github.com/Rytass/BPMCore/commit/ecd9d76))
|
|
46
|
+
- **bpm-core-react:** list every attachment a file_upload value holds ([da7ee9b](https://github.com/Rytass/BPMCore/commit/da7ee9b))
|
|
47
|
+
- **bpm-core:** release form attachments a resubmit no longer refers to ([2580381](https://github.com/Rytass/BPMCore/commit/2580381))
|
|
48
|
+
|
|
49
|
+
### ❤️ Thank You
|
|
50
|
+
|
|
51
|
+
- Chia Yu Pai @fantasywind
|
|
52
|
+
|
|
1
53
|
## 0.18.1 (2026-11-01)
|
|
2
54
|
|
|
3
55
|
### 🚀 Features
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rytass/bpm-core-nestjs-module",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
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",
|
|
@@ -162,7 +162,7 @@
|
|
|
162
162
|
"@nestjs/core": ">=10.0.0",
|
|
163
163
|
"@nestjs/graphql": ">=12.0.0",
|
|
164
164
|
"@nestjs/typeorm": ">=10.0.0",
|
|
165
|
-
"@rytass/bpm-core-shared": "^0.
|
|
165
|
+
"@rytass/bpm-core-shared": "^0.20.0",
|
|
166
166
|
"@rytass/secret-adapter-vault-nestjs": ">=0.4.5",
|
|
167
167
|
"express": ">=4.0.0",
|
|
168
168
|
"graphql": ">=16.0.0",
|
|
@@ -178,6 +178,7 @@
|
|
|
178
178
|
}
|
|
179
179
|
},
|
|
180
180
|
"dependencies": {
|
|
181
|
+
"@marcbachmann/cel-js": "^8.0.0",
|
|
181
182
|
"@rytass/storages": "^0.3.0",
|
|
182
183
|
"@rytass/storages-adapter-local": "^0.3.0",
|
|
183
184
|
"cel-js": "^0.8.2",
|
package/src/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export * from './lib/common';
|
|
|
6
6
|
export * from './lib/condition';
|
|
7
7
|
export * from './lib/database';
|
|
8
8
|
export * from './lib/delegation';
|
|
9
|
+
export * from './lib/expression-function';
|
|
9
10
|
export * from './lib/form';
|
|
10
11
|
export * from './lib/form-data-source';
|
|
11
12
|
export * from './lib/identity';
|
package/src/index.js
CHANGED
|
@@ -9,6 +9,7 @@ tslib_1.__exportStar(require("./lib/common"), exports);
|
|
|
9
9
|
tslib_1.__exportStar(require("./lib/condition"), exports);
|
|
10
10
|
tslib_1.__exportStar(require("./lib/database"), exports);
|
|
11
11
|
tslib_1.__exportStar(require("./lib/delegation"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./lib/expression-function"), exports);
|
|
12
13
|
tslib_1.__exportStar(require("./lib/form"), exports);
|
|
13
14
|
tslib_1.__exportStar(require("./lib/form-data-source"), exports);
|
|
14
15
|
tslib_1.__exportStar(require("./lib/identity"), exports);
|
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;AACtC,iEAAuC"}
|
|
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,oEAA0C;AAC1C,qDAA2B;AAC3B,iEAAuC;AACvC,yDAA+B;AAC/B,6DAAmC;AACnC,6DAAmC;AACnC,0DAAgC;AAChC,yDAA+B;AAC/B,gEAAsC;AACtC,iEAAuC"}
|
|
@@ -5,6 +5,7 @@ import { TaskDecisionEntity } from '../workflow-engine/task-decision.entity';
|
|
|
5
5
|
import { TaskEntity } from '../workflow-engine/task.entity';
|
|
6
6
|
import { AttachmentStorage } from './attachment-storage.token';
|
|
7
7
|
import { BPMResolvedAttachmentOptions } from './attachment-options';
|
|
8
|
+
import { type FormDefinitionSchema } from '@rytass/bpm-core-shared/form';
|
|
8
9
|
import { AttachmentEntity } from './attachment.entity';
|
|
9
10
|
import { UploadAttachmentInput } from './dto/upload-attachment.input';
|
|
10
11
|
type AttachmentDisposition = 'attachment' | 'inline';
|
|
@@ -24,10 +25,31 @@ export declare class AttachmentService {
|
|
|
24
25
|
readonly requestedByMemberId?: string | null;
|
|
25
26
|
readonly taskId?: string | null;
|
|
26
27
|
}): Promise<readonly AttachmentEntity[]>;
|
|
27
|
-
bindFormDataAttachmentsToInstance(manager: EntityManager, { formData, instanceId, }: {
|
|
28
|
+
bindFormDataAttachmentsToInstance(manager: EntityManager, { formData, instanceId, schema, }: {
|
|
28
29
|
readonly formData: Readonly<Record<string, unknown>>;
|
|
29
30
|
readonly instanceId: string;
|
|
31
|
+
readonly schema: FormDefinitionSchema;
|
|
30
32
|
}): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Releases the form attachments of an instance that its form data no
|
|
35
|
+
* longer refers to — a file the applicant removed from a `file_upload`
|
|
36
|
+
* field before resubmitting. Without it the instance's attachment list
|
|
37
|
+
* would keep showing a file the form no longer holds.
|
|
38
|
+
*
|
|
39
|
+
* Only attachments uploaded through a `file_upload` field
|
|
40
|
+
* (`formFieldPath` `form.<fieldKey>`) whose key the form data carries, and
|
|
41
|
+
* not tied to a task, are considered: a field the submission leaves out
|
|
42
|
+
* says nothing about its files, so they stay. A cleared field arrives as
|
|
43
|
+
* `[]` and does release them. A released attachment keeps its row and its
|
|
44
|
+
* uploader, and returns to `instanceId` null, the state it was in before
|
|
45
|
+
* the form first referred to it.
|
|
46
|
+
*/
|
|
47
|
+
releaseUnreferencedFormAttachments(manager: EntityManager, { formData, instanceId, schema, }: {
|
|
48
|
+
readonly formData: Readonly<Record<string, unknown>>;
|
|
49
|
+
readonly instanceId: string;
|
|
50
|
+
readonly schema: FormDefinitionSchema;
|
|
51
|
+
}): Promise<void>;
|
|
52
|
+
private readInstanceFilerMemberIds;
|
|
31
53
|
createSignedUrl({ disposition, id, requestOrigin, requestedByMemberId, }: {
|
|
32
54
|
readonly disposition: AttachmentDisposition;
|
|
33
55
|
readonly id: string;
|
|
@@ -13,6 +13,7 @@ const task_decision_entity_1 = require("../workflow-engine/task-decision.entity"
|
|
|
13
13
|
const task_entity_1 = require("../workflow-engine/task.entity");
|
|
14
14
|
const attachment_storage_token_1 = require("./attachment-storage.token");
|
|
15
15
|
const attachment_options_1 = require("./attachment-options");
|
|
16
|
+
const form_1 = require("@rytass/bpm-core-shared/form");
|
|
16
17
|
const attachment_entity_1 = require("./attachment.entity");
|
|
17
18
|
const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
18
19
|
let AttachmentService = class AttachmentService {
|
|
@@ -81,29 +82,112 @@ let AttachmentService = class AttachmentService {
|
|
|
81
82
|
}));
|
|
82
83
|
return readableAttachments.filter((attachment) => attachment !== null);
|
|
83
84
|
}
|
|
84
|
-
async bindFormDataAttachmentsToInstance(manager, { formData, instanceId, }) {
|
|
85
|
-
|
|
85
|
+
async bindFormDataAttachmentsToInstance(manager, { formData, instanceId, schema, }) {
|
|
86
|
+
// Only `file_upload` values name attachments. Any other field may hold an
|
|
87
|
+
// id-shaped string — an org unit, a DataSource option — that is no file.
|
|
88
|
+
const attachmentRefs = readFileUploadAttachmentRefs(schema, formData);
|
|
86
89
|
const ids = [...new Set(attachmentRefs.map((ref) => ref.id))];
|
|
87
90
|
if (ids.length === 0) {
|
|
88
91
|
return;
|
|
89
92
|
}
|
|
90
93
|
const attachmentRepository = manager.getRepository(attachment_entity_1.AttachmentEntity);
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
94
|
+
// A value that is not a UUID cannot name a row, and the column would
|
|
95
|
+
// reject it in the query.
|
|
96
|
+
const lookupIds = ids.filter((id) => UUID_PATTERN.test(id));
|
|
97
|
+
const attachments = lookupIds.length > 0
|
|
98
|
+
? await attachmentRepository.find({ where: { id: (0, typeorm_1.In)(lookupIds) } })
|
|
99
|
+
: [];
|
|
100
|
+
const foundIds = new Set(attachments.map((attachment) => attachment.id));
|
|
101
|
+
const freeAttachments = attachments.filter((attachment) => attachment.instanceId === null);
|
|
102
|
+
// Only the people who file the instance may bring a free attachment into
|
|
103
|
+
// it. An id is no secret — everyone who reads a form sees the ids in it,
|
|
104
|
+
// and an attachment a resubmit released is free again — so without this
|
|
105
|
+
// anyone who had seen one could bind it to a case of their own and read it.
|
|
106
|
+
// Read only when there is a free attachment to judge.
|
|
107
|
+
const filerMemberIds = await this.readInstanceFilerMemberIds(manager, freeAttachments.length > 0 ? instanceId : null);
|
|
108
|
+
// Refused rather than skipped: a case that saves while leaving out a file
|
|
109
|
+
// its form lists is the silent loss this binding exists to prevent.
|
|
110
|
+
// An id with no row — a deleted file, a mistyped value — is refused the
|
|
111
|
+
// same way: the form would list a file the case does not hold.
|
|
112
|
+
const unbindableIds = [
|
|
113
|
+
...ids.filter((id) => !foundIds.has(id)),
|
|
114
|
+
...attachments
|
|
115
|
+
.filter((attachment) => attachment.instanceId === null
|
|
116
|
+
? !filerMemberIds.has(attachment.uploaderMemberId)
|
|
117
|
+
: attachment.instanceId !== instanceId)
|
|
118
|
+
.map((attachment) => attachment.id),
|
|
119
|
+
];
|
|
120
|
+
if (unbindableIds.length > 0) {
|
|
121
|
+
throw new common_1.BadRequestException(`${form_1.ATTACHMENT_NOT_BINDABLE_ERROR_CODE}: attachments ${unbindableIds.join(', ')} cannot be attached to this case: only files its applicant uploaded for it can be`);
|
|
122
|
+
}
|
|
123
|
+
const refsById = new Map(attachmentRefs.map((ref) => [
|
|
124
|
+
ref.id,
|
|
125
|
+
ref,
|
|
126
|
+
]));
|
|
127
|
+
// The field that holds the file now, not the one it was first uploaded
|
|
128
|
+
// for: a release only looks at the fields a resubmit carries, so a stale
|
|
129
|
+
// path would keep a file the form no longer refers to.
|
|
130
|
+
const nextAttachments = attachments.map((attachment) => ({
|
|
99
131
|
...attachment,
|
|
100
|
-
formFieldPath:
|
|
132
|
+
formFieldPath: refsById.get(attachment.id)?.path ?? attachment.formFieldPath,
|
|
101
133
|
instanceId,
|
|
102
134
|
}));
|
|
103
135
|
if (nextAttachments.length > 0) {
|
|
104
136
|
await attachmentRepository.save(nextAttachments);
|
|
105
137
|
}
|
|
106
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* Releases the form attachments of an instance that its form data no
|
|
141
|
+
* longer refers to — a file the applicant removed from a `file_upload`
|
|
142
|
+
* field before resubmitting. Without it the instance's attachment list
|
|
143
|
+
* would keep showing a file the form no longer holds.
|
|
144
|
+
*
|
|
145
|
+
* Only attachments uploaded through a `file_upload` field
|
|
146
|
+
* (`formFieldPath` `form.<fieldKey>`) whose key the form data carries, and
|
|
147
|
+
* not tied to a task, are considered: a field the submission leaves out
|
|
148
|
+
* says nothing about its files, so they stay. A cleared field arrives as
|
|
149
|
+
* `[]` and does release them. A released attachment keeps its row and its
|
|
150
|
+
* uploader, and returns to `instanceId` null, the state it was in before
|
|
151
|
+
* the form first referred to it.
|
|
152
|
+
*/
|
|
153
|
+
async releaseUnreferencedFormAttachments(manager, { formData, instanceId, schema, }) {
|
|
154
|
+
const submittedFieldPaths = new Set(readSubmittedFileUploadFieldKeys(schema, formData).map((fieldKey) => `form.${fieldKey}`));
|
|
155
|
+
if (submittedFieldPaths.size === 0) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
const referencedIds = new Set(readFileUploadAttachmentRefs(schema, formData).map((ref) => ref.id));
|
|
159
|
+
const attachmentRepository = manager.getRepository(attachment_entity_1.AttachmentEntity);
|
|
160
|
+
const attachments = await attachmentRepository.find({
|
|
161
|
+
where: { instanceId, taskId: (0, typeorm_1.IsNull)() },
|
|
162
|
+
});
|
|
163
|
+
const released = attachments
|
|
164
|
+
// `instanceId` and `taskId` are settled by the query.
|
|
165
|
+
.filter((attachment) => attachment.formFieldPath !== null &&
|
|
166
|
+
submittedFieldPaths.has(attachment.formFieldPath) &&
|
|
167
|
+
!referencedIds.has(attachment.id))
|
|
168
|
+
.map((attachment) => ({
|
|
169
|
+
...attachment,
|
|
170
|
+
instanceId: null,
|
|
171
|
+
}));
|
|
172
|
+
if (released.length > 0) {
|
|
173
|
+
await attachmentRepository.save(released);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
async readInstanceFilerMemberIds(manager, instanceId) {
|
|
177
|
+
const instance = instanceId
|
|
178
|
+
? await manager
|
|
179
|
+
.getRepository(approval_instance_entity_1.ApprovalInstanceEntity)
|
|
180
|
+
.findOne({ where: { id: instanceId } })
|
|
181
|
+
: null;
|
|
182
|
+
return new Set(instance
|
|
183
|
+
? [
|
|
184
|
+
instance.initiatorMemberId,
|
|
185
|
+
...(instance.submittedByMemberId
|
|
186
|
+
? [instance.submittedByMemberId]
|
|
187
|
+
: []),
|
|
188
|
+
]
|
|
189
|
+
: []);
|
|
190
|
+
}
|
|
107
191
|
async createSignedUrl({ disposition, id, requestOrigin = null, requestedByMemberId, }) {
|
|
108
192
|
const attachment = await this.readAttachmentOrThrow(id);
|
|
109
193
|
await this.assertAttachmentReadableByMember(attachment, requestedByMemberId);
|
|
@@ -235,20 +319,23 @@ function normalizeOptionalText(value) {
|
|
|
235
319
|
const trimmedValue = value?.trim();
|
|
236
320
|
return trimmedValue ? trimmedValue : null;
|
|
237
321
|
}
|
|
238
|
-
function
|
|
239
|
-
return
|
|
322
|
+
function readSubmittedFileUploadFieldKeys(schema, formData) {
|
|
323
|
+
return schema.fields
|
|
324
|
+
.filter((field) => field.type === 'file_upload' &&
|
|
325
|
+
Object.prototype.hasOwnProperty.call(formData, field.fieldKey))
|
|
326
|
+
.map((field) => field.fieldKey);
|
|
240
327
|
}
|
|
241
|
-
function
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
328
|
+
function readFileUploadAttachmentRefs(schema, formData) {
|
|
329
|
+
return readSubmittedFileUploadFieldKeys(schema, formData).flatMap((fieldKey) => {
|
|
330
|
+
const value = formData[fieldKey];
|
|
331
|
+
const entries = Array.isArray(value)
|
|
332
|
+
? value
|
|
333
|
+
: [value];
|
|
334
|
+
return (entries
|
|
335
|
+
// An empty value holds no file.
|
|
336
|
+
.filter((entry) => typeof entry === 'string' && entry !== '')
|
|
337
|
+
.map((id) => ({ id, path: `form.${fieldKey}` })));
|
|
338
|
+
});
|
|
252
339
|
}
|
|
253
340
|
function signAttachmentToken(payload, signedUrlSecret) {
|
|
254
341
|
const body = Buffer.from(JSON.stringify(payload), 'utf8').toString('base64url');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment.service.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/attachment/attachment.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"attachment.service.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/attachment/attachment.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { BPMRootAttachmentOptions } from '../attachment/attachment-options';
|
|
|
3
3
|
import { AttachmentStorage } from '../attachment/attachment-storage.token';
|
|
4
4
|
import { BPMAuthModuleOptions } from '../bpm-auth/bpm-auth.options';
|
|
5
5
|
import { BPMBusinessCalendar } from '../calendar/business-calendar.token';
|
|
6
|
+
import type { BPMExpressionFunction } from '../expression-function/expression-function.types';
|
|
6
7
|
import { BPMFormDataSourceRegistry } from '../form-data-source/form-data-source.types';
|
|
7
8
|
import { BPMRootIdentityOptions } from '../identity/identity-options';
|
|
8
9
|
import { BPMMemberResolver } from '../identity/member-resolver.interface';
|
|
@@ -65,6 +66,18 @@ export interface BPMRootRuntimeOptions extends BPMRootAttachmentOptions, BPMRoot
|
|
|
65
66
|
* chain never runs through BPM's module context.
|
|
66
67
|
*/
|
|
67
68
|
readonly businessCalendar?: BPMBusinessCalendar;
|
|
69
|
+
/**
|
|
70
|
+
* Host functions that expressions may call (ADR 22 §3.5), next to the nine
|
|
71
|
+
* built-ins that are always available. Each name ends in its version
|
|
72
|
+
* (`erp_costBand_v1`); handlers must be synchronous and pure, and only see
|
|
73
|
+
* deep-frozen copies of their arguments. Validated while BPM boots: a bad
|
|
74
|
+
* name, an async handler or an unsupported type fails the boot.
|
|
75
|
+
*
|
|
76
|
+
* Keep every function a published version still calls: once one is gone,
|
|
77
|
+
* cases on that version fail closed with `EXPRESSION_FUNCTION_FAILED`.
|
|
78
|
+
* When omitted, only the built-ins are available.
|
|
79
|
+
*/
|
|
80
|
+
readonly expressionFunctions?: readonly BPMExpressionFunction[];
|
|
68
81
|
/**
|
|
69
82
|
* Versioned form option DataSource catalog, as a ready instance. When
|
|
70
83
|
* omitted, BPM exposes an empty catalog.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bpm-root-options.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/bpm/bpm-root-options.ts"],"names":[],"mappings":";;;;;AAAA,2CAMwB;
|
|
1
|
+
{"version":3,"file":"bpm-root-options.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/bpm/bpm-root-options.ts"],"names":[],"mappings":";;;;;AAAA,2CAMwB;AAUxB,mFAGgD;AAuHhD;;;;;;;;;;;GAWG;AACU,QAAA,gBAAgB,GAC3B,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAoB7B;;;;;;GAMG;AAGI,IAAM,oBAAoB,4BAA1B,MAAM,oBAAoB;IAC/B,MAAM,CAAC,OAAO,CAAC,UAAiC,EAAE;QAChD,IAAA,uDAA8B,EAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAE7D,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;wBAClC,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBAE7D,IAAA,uDAA8B,EAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;wBAE9D,OAAO,QAAQ,CAAC;oBAClB,CAAC;iBACF;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AA1CY,oDAAoB;+BAApB,oBAAoB;IAFhC,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,oBAAoB,CA0ChC"}
|
|
@@ -2,6 +2,7 @@ import { DynamicModule, InjectionToken, ModuleMetadata, Provider } from '@nestjs
|
|
|
2
2
|
import { AttachmentStorage } from '../attachment/attachment-storage.token';
|
|
3
3
|
import { BPMResolverMetadataFactory } from '../bpm-auth/bpm-resolver-metadata';
|
|
4
4
|
import { BPMBusinessCalendar } from '../calendar/business-calendar.token';
|
|
5
|
+
import type { BPMExpressionFunction } from '../expression-function/expression-function.types';
|
|
5
6
|
import { BPMFormDataSourceRegistry } from '../form-data-source';
|
|
6
7
|
import { BPMMemberResolver } from '../identity/member-resolver.interface';
|
|
7
8
|
import { BPMWorkflowWebhookRegistry } from '../workflow-webhook/workflow-webhook.types';
|
|
@@ -40,6 +41,17 @@ interface BPMRootModuleWiringOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
|
40
41
|
* `notificationSlaBusinessCalendarTimeZone`).
|
|
41
42
|
*/
|
|
42
43
|
readonly businessCalendarProvider?: Provider<BPMBusinessCalendar>;
|
|
44
|
+
/**
|
|
45
|
+
* Host expression functions as a Nest provider for
|
|
46
|
+
* `BPM_EXPRESSION_FUNCTIONS` (a list), for functions that need injected
|
|
47
|
+
* dependencies to be built.
|
|
48
|
+
*
|
|
49
|
+
* Runtime twin: {@link BPMRootRuntimeOptions.expressionFunctions}. Unlike
|
|
50
|
+
* the other twins the two are **combined**, the runtime list first; a name
|
|
51
|
+
* in both fails the boot. When neither is given, only the nine built-ins are
|
|
52
|
+
* available.
|
|
53
|
+
*/
|
|
54
|
+
readonly expressionFunctionsProvider?: Provider<readonly BPMExpressionFunction[]>;
|
|
43
55
|
/**
|
|
44
56
|
* Host-provided registry containing versioned form option DataSources, as a
|
|
45
57
|
* Nest provider.
|
|
@@ -9,6 +9,7 @@ const bpm_auth_module_1 = require("../bpm-auth/bpm-auth.module");
|
|
|
9
9
|
const bpm_resolver_metadata_1 = require("../bpm-auth/bpm-resolver-metadata");
|
|
10
10
|
const calendar_module_1 = require("../calendar/calendar.module");
|
|
11
11
|
const delegation_module_1 = require("../delegation/delegation.module");
|
|
12
|
+
const expression_function_module_1 = require("../expression-function/expression-function.module");
|
|
12
13
|
const form_module_1 = require("../form/form.module");
|
|
13
14
|
const form_data_source_1 = require("../form-data-source");
|
|
14
15
|
const identity_module_1 = require("../identity/identity.module");
|
|
@@ -141,6 +142,10 @@ function createBPMFeatureModules(wiring) {
|
|
|
141
142
|
storageProvider: wiring.attachmentStorageProvider,
|
|
142
143
|
useFactory,
|
|
143
144
|
}),
|
|
145
|
+
expression_function_module_1.ExpressionFunctionModule.forRoot({
|
|
146
|
+
functionsProvider: wiring.expressionFunctionsProvider,
|
|
147
|
+
imports: wiring.imports,
|
|
148
|
+
}),
|
|
144
149
|
form_module_1.FormModule,
|
|
145
150
|
form_data_source_1.FormDataSourceModule.forRoot({
|
|
146
151
|
imports: wiring.imports,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bpm-root.module.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/bpm/bpm-root.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAOwB;AACxB,uEAAmE;AAEnE,iEAA4D;AAC5D,6EAG2C;AAG3C,iEAA6D;AAC7D,uEAAmE;AACnE,qDAAiD;AACjD,0DAI6B;AAC7B,iEAA6D;AAE7D,6EAAyE;AACzE,6FAAwF;AACxF,yGAAmG;AACnG,yFAGqD;AAErD,6EAAyE;AACzE,oEAAgE;AAChE,iEAA6D;AAC7D,sFAAiF;AAEjF,yDAI4B;
|
|
1
|
+
{"version":3,"file":"bpm-root.module.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/bpm/bpm-root.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { ParseResult } from 'cel-js';
|
|
2
|
+
import type { BPMExpressionFunctionRegistry } from '../../expression-function/expression-function.types';
|
|
3
|
+
import type { ExpressionEngineAdapter, ExpressionHandle } from '../expression-runtime';
|
|
4
|
+
type CelLegacyFunction = (...args: readonly unknown[]) => unknown;
|
|
5
|
+
/**
|
|
6
|
+
* The slice of `cel-js` this adapter uses. The third `evaluate` argument is
|
|
7
|
+
* the function table: `cel-js` 0.8.2 merges it over its own `has` and `size`
|
|
8
|
+
* and calls an entry for every global call (`round(x)`), with the evaluated
|
|
9
|
+
* arguments. Methods (`x.round()`) never reach it.
|
|
10
|
+
*/
|
|
11
|
+
interface CelEngine {
|
|
12
|
+
readonly evaluate: (cst: unknown, context: Readonly<Record<string, unknown>>, functions?: Readonly<Record<string, CelLegacyFunction>>) => unknown;
|
|
13
|
+
readonly parse: (expression: string) => ParseResult;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Loads `cel-js` on first use rather than when this module is imported.
|
|
17
|
+
*
|
|
18
|
+
* `cel-js` is ESM-only and its `chevrotain` dependency ships an exports map
|
|
19
|
+
* that `jest-resolve` cannot follow. While the import sat at the top of this
|
|
20
|
+
* file, the package root pulled it in through
|
|
21
|
+
* `index → bpm-root → delegation → condition`, so *any* consumer test that
|
|
22
|
+
* imported anything from `@rytass/bpm-core-nestjs-module` failed to load with
|
|
23
|
+
* `Cannot find module 'chevrotain'` — pointing deep into `node_modules`, far
|
|
24
|
+
* from the code under test. Hosts had to stub `cel-js` before they could write
|
|
25
|
+
* a single test.
|
|
26
|
+
*
|
|
27
|
+
* Deferring the load means a host that never evaluates a CEL expression never
|
|
28
|
+
* resolves the package at all. `require` (not `await import`) keeps every
|
|
29
|
+
* caller in this file synchronous.
|
|
30
|
+
*
|
|
31
|
+
* The engine is loaded before a budget starts, so an interrupt can never land
|
|
32
|
+
* halfway through loading a module.
|
|
33
|
+
*/
|
|
34
|
+
export declare function loadCelEngine(): CelEngine;
|
|
35
|
+
/**
|
|
36
|
+
* Parses with `cel-js`. Returns `null` when the expression does not parse.
|
|
37
|
+
*
|
|
38
|
+
* `cel-js` can throw instead of reporting failure: a deeply nested expression
|
|
39
|
+
* (about 200 levels, still under the length limit) overflows the parser's stack
|
|
40
|
+
* with a bare `RangeError`. That is a syntax refusal, not a crash, so it maps to
|
|
41
|
+
* `null`. The engine is loaded outside the `try`: a failure to load it is a
|
|
42
|
+
* configuration error and must not be reported as a bad expression.
|
|
43
|
+
*/
|
|
44
|
+
export declare function parseCelLegacy(expression: string): ExpressionHandle | null;
|
|
45
|
+
/**
|
|
46
|
+
* The function table handed to `cel-js` for a registry, built once: every
|
|
47
|
+
* function the registry lists, wrapped for cel-legacy. Verified on the real
|
|
48
|
+
* engine (2026-11-07): `cel-js` 0.8.2 accepts the table and calls it.
|
|
49
|
+
*
|
|
50
|
+
* Exported so `ConditionService.prepareEngine` can build it before a budget
|
|
51
|
+
* starts; otherwise the first evaluation builds it inside its budget.
|
|
52
|
+
*/
|
|
53
|
+
export declare const readCelLegacyFunctions: (registry: BPMExpressionFunctionRegistry) => Readonly<Record<string, CelLegacyFunction>>;
|
|
54
|
+
/**
|
|
55
|
+
* The cel-legacy adapter for a registry. A host function the registry no
|
|
56
|
+
* longer has fails the evaluation with `EXPRESSION_FUNCTION_FAILED` before the
|
|
57
|
+
* engine runs; any other unknown name keeps `cel-js`'s own error.
|
|
58
|
+
*/
|
|
59
|
+
export declare const createCelLegacyAdapter: (registry: BPMExpressionFunctionRegistry) => ExpressionEngineAdapter;
|
|
60
|
+
/** The built-ins-only adapter, used wherever no registry was handed in. */
|
|
61
|
+
export declare const celLegacyAdapter: ExpressionEngineAdapter;
|
|
62
|
+
export {};
|