@rytass/bpm-core-nestjs-module 0.20.1 → 0.21.1
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 +81 -0
- package/README.md +109 -5
- package/package.json +2 -2
- package/src/lib/attachment/attachment.service.js +2 -10
- package/src/lib/attachment/attachment.service.js.map +1 -1
- package/src/lib/attachment/file-upload-value-ids.d.ts +8 -0
- package/src/lib/attachment/file-upload-value-ids.js +15 -0
- package/src/lib/attachment/file-upload-value-ids.js.map +1 -0
- package/src/lib/bpm/bpm-root-options.d.ts +18 -0
- package/src/lib/bpm/bpm-root-options.js.map +1 -1
- package/src/lib/bpm/bpm-root.module.d.ts +11 -0
- package/src/lib/bpm/bpm-root.module.js +9 -4
- package/src/lib/bpm/bpm-root.module.js.map +1 -1
- package/src/lib/form/form-data-issue.d.ts +34 -0
- package/src/lib/form/form-data-issue.js +59 -0
- package/src/lib/form/form-data-issue.js.map +1 -0
- package/src/lib/form/form-member-value.validator.d.ts +2 -2
- package/src/lib/form/form-member-value.validator.js +2 -3
- package/src/lib/form/form-member-value.validator.js.map +1 -1
- package/src/lib/form/form-org-unit-value.validator.d.ts +2 -2
- package/src/lib/form/form-org-unit-value.validator.js +4 -1
- package/src/lib/form/form-org-unit-value.validator.js.map +1 -1
- package/src/lib/form/form-schema.validator.js +40 -0
- package/src/lib/form/form-schema.validator.js.map +1 -1
- package/src/lib/form-data-source/form-data-source.module.d.ts +8 -0
- package/src/lib/form-data-source/form-data-source.module.js +1 -1
- package/src/lib/form-data-source/form-data-source.module.js.map +1 -1
- package/src/lib/form-data-source/form-data-source.service.js +1 -1
- package/src/lib/form-data-source/form-data-source.service.js.map +1 -1
- package/src/lib/migrations/0000000031000-approval-instance-form-data-gin.d.ts +29 -0
- package/src/lib/migrations/0000000031000-approval-instance-form-data-gin.js +44 -0
- package/src/lib/migrations/0000000031000-approval-instance-form-data-gin.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.js +6 -0
- package/src/lib/notification/notification.service.js.map +1 -1
- package/src/lib/organization/organization-time-zone.d.ts +4 -2
- package/src/lib/organization/organization-time-zone.js +3 -6
- package/src/lib/organization/organization-time-zone.js.map +1 -1
- package/src/lib/template/filterable-field-guard.d.ts +49 -0
- package/src/lib/template/filterable-field-guard.js +141 -0
- package/src/lib/template/filterable-field-guard.js.map +1 -0
- package/src/lib/template/filterable-field-issue.object.d.ts +21 -0
- package/src/lib/template/filterable-field-issue.object.js +65 -0
- package/src/lib/template/filterable-field-issue.object.js.map +1 -0
- package/src/lib/template/filterable-field.queries.d.ts +20 -0
- package/src/lib/template/filterable-field.queries.js +80 -0
- package/src/lib/template/filterable-field.queries.js.map +1 -0
- package/src/lib/template/index.d.ts +1 -0
- package/src/lib/template/index.js +1 -0
- package/src/lib/template/index.js.map +1 -1
- package/src/lib/template/template.module.js +2 -0
- package/src/lib/template/template.module.js.map +1 -1
- package/src/lib/template/template.service.d.ts +39 -0
- package/src/lib/template/template.service.js +218 -49
- package/src/lib/template/template.service.js.map +1 -1
- package/src/lib/template/workflow-definition.validator.js +84 -2
- package/src/lib/template/workflow-definition.validator.js.map +1 -1
- package/src/lib/workflow-engine/approval-instance-field-filter.compiler.d.ts +49 -0
- package/src/lib/workflow-engine/approval-instance-field-filter.compiler.js +501 -0
- package/src/lib/workflow-engine/approval-instance-field-filter.compiler.js.map +1 -0
- package/src/lib/workflow-engine/approval-instance-filterable-field.policy.d.ts +15 -0
- package/src/lib/workflow-engine/approval-instance-filterable-field.policy.js +20 -0
- package/src/lib/workflow-engine/approval-instance-filterable-field.policy.js.map +1 -0
- package/src/lib/workflow-engine/dto/approval-instance-field-filter.input.d.ts +15 -0
- package/src/lib/workflow-engine/dto/approval-instance-field-filter.input.js +55 -0
- package/src/lib/workflow-engine/dto/approval-instance-field-filter.input.js.map +1 -0
- package/src/lib/workflow-engine/dto/approval-instance-list-args.d.ts +9 -0
- package/src/lib/workflow-engine/dto/approval-instance-list-args.js +24 -0
- package/src/lib/workflow-engine/dto/approval-instance-list-args.js.map +1 -0
- package/src/lib/workflow-engine/dto/approval-instance-sort.input.d.ts +10 -0
- package/src/lib/workflow-engine/dto/approval-instance-sort.input.js +32 -0
- package/src/lib/workflow-engine/dto/approval-instance-sort.input.js.map +1 -0
- package/src/lib/workflow-engine/index.d.ts +1 -0
- package/src/lib/workflow-engine/index.js +1 -0
- package/src/lib/workflow-engine/index.js.map +1 -1
- package/src/lib/workflow-engine/initiator-custom-fields-resolver.token.d.ts +108 -0
- package/src/lib/workflow-engine/initiator-custom-fields-resolver.token.js +9 -0
- package/src/lib/workflow-engine/initiator-custom-fields-resolver.token.js.map +1 -0
- package/src/lib/workflow-engine/workflow-engine.enums.d.ts +13 -0
- package/src/lib/workflow-engine/workflow-engine.enums.js +22 -1
- package/src/lib/workflow-engine/workflow-engine.enums.js.map +1 -1
- package/src/lib/workflow-engine/workflow-engine.module.d.ts +2 -0
- package/src/lib/workflow-engine/workflow-engine.module.js +9 -3
- package/src/lib/workflow-engine/workflow-engine.module.js.map +1 -1
- package/src/lib/workflow-engine/workflow-engine.queries.d.ts +6 -4
- package/src/lib/workflow-engine/workflow-engine.queries.js +35 -12
- package/src/lib/workflow-engine/workflow-engine.queries.js.map +1 -1
- package/src/lib/workflow-engine/workflow-engine.service.d.ts +166 -18
- package/src/lib/workflow-engine/workflow-engine.service.js +918 -139
- package/src/lib/workflow-engine/workflow-engine.service.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,84 @@
|
|
|
1
|
+
## 0.21.1 (2026-11-11)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- **workflow-engine:** judge the launchable list with the initiator customFields resolver ([92faedec](https://github.com/Rytass/BPMCore/commit/92faedec))
|
|
6
|
+
- **react:** read the designer's today in the host organization time zone ([9a31ff90](https://github.com/Rytass/BPMCore/commit/9a31ff90))
|
|
7
|
+
- **shared:** add the default organization time zone constant ([3dac42de](https://github.com/Rytass/BPMCore/commit/3dac42de))
|
|
8
|
+
- **workflow-engine:** refuse a submit or resubmit holding more files than maxFiles ([abf75d2f](https://github.com/Rytass/BPMCore/commit/abf75d2f))
|
|
9
|
+
- **template:** refuse at publish a chain start from a stage several people sign ([c5af7069](https://github.com/Rytass/BPMCore/commit/c5af7069))
|
|
10
|
+
- **workflow-engine:** let the host fill customFields of the initiator snapshot ([83894387](https://github.com/Rytass/BPMCore/commit/83894387))
|
|
11
|
+
- **workflow-engine:** start a manager chain from a form pick or an earlier stage ([2218246b](https://github.com/Rytass/BPMCore/commit/2218246b))
|
|
12
|
+
- **template:** lint the start settings of a manager chain at publish ([e2eb1f84](https://github.com/Rytass/BPMCore/commit/e2eb1f84))
|
|
13
|
+
- **workflow-engine:** keep earlier-stage approvers out of a node ([151adb0a](https://github.com/Rytass/BPMCore/commit/151adb0a))
|
|
14
|
+
- **template:** lint excludeNodeActors at save and publish ([1c5964cf](https://github.com/Rytass/BPMCore/commit/1c5964cf))
|
|
15
|
+
- **notification:** flag task notifications whose node requires an approval comment ([feb04f23](https://github.com/Rytass/BPMCore/commit/feb04f23))
|
|
16
|
+
- **react:** ask for the approval comment in the designer and on the approve dialog ([f80aaf04](https://github.com/Rytass/BPMCore/commit/f80aaf04))
|
|
17
|
+
- **workflow-engine:** require a comment when a person approves at a node ([84474780](https://github.com/Rytass/BPMCore/commit/84474780))
|
|
18
|
+
|
|
19
|
+
### 🩹 Fixes
|
|
20
|
+
|
|
21
|
+
- **shared:** count excludeNodeActors handing over to the initiator's managers as multiple approvers ([6c5e7de6](https://github.com/Rytass/BPMCore/commit/6c5e7de6))
|
|
22
|
+
- **bpm-core:** build one workflow engine so every caller sees the host resolver ([3e172843](https://github.com/Rytass/BPMCore/commit/3e172843))
|
|
23
|
+
- **workflow-engine:** time out the initiator customFields resolver and keep its errors server-side ([45ff109d](https://github.com/Rytass/BPMCore/commit/45ff109d))
|
|
24
|
+
- **shared:** refuse a manager chain notify recipient without a whole-number level ([cdca8b1e](https://github.com/Rytass/BPMCore/commit/cdca8b1e))
|
|
25
|
+
- **bpm-core:** localize comment-required errors and read the approval flag from the node ([06b21915](https://github.com/Rytass/BPMCore/commit/06b21915))
|
|
26
|
+
- **workflow-engine:** count a repeated file_upload id once, as the binding does ([d75adb5c](https://github.com/Rytass/BPMCore/commit/d75adb5c))
|
|
27
|
+
- **workflow-engine:** cover delegation for excludeNodeActors targets and delegators ([cd14ad00](https://github.com/Rytass/BPMCore/commit/cd14ad00))
|
|
28
|
+
- **shared:** keep manager chain level and stage ids as written ([1c741259](https://github.com/Rytass/BPMCore/commit/1c741259))
|
|
29
|
+
- **bpm-core:** lint a notify ORG_UNIT_MANAGER recipient without an organization ([35852288](https://github.com/Rytass/BPMCore/commit/35852288))
|
|
30
|
+
- **workflow-engine:** leave out one launchable template whose policy throws ([c2d62427](https://github.com/Rytass/BPMCore/commit/c2d62427))
|
|
31
|
+
- **workflow-engine:** hold a set-form-field write to member and unit value shapes ([c9d0523c](https://github.com/Rytass/BPMCore/commit/c9d0523c))
|
|
32
|
+
- **shared:** let the policy decide when a lone listed member may hand over to the initiator manager ([418b192b](https://github.com/Rytass/BPMCore/commit/418b192b))
|
|
33
|
+
- **workflow-engine:** make the customFields routing test reach the gateway and reject toJSON non-objects ([79cb5197](https://github.com/Rytass/BPMCore/commit/79cb5197))
|
|
34
|
+
- **react:** harden the notify recipient panel after review ([17fab8db](https://github.com/Rytass/BPMCore/commit/17fab8db))
|
|
35
|
+
|
|
36
|
+
### ❤️ Thank You
|
|
37
|
+
|
|
38
|
+
- Chia Yu Pai @fantasywind
|
|
39
|
+
- Kai-Chieh Yang
|
|
40
|
+
|
|
41
|
+
## 0.21.0 (2026-11-11)
|
|
42
|
+
|
|
43
|
+
### 🚀 Features
|
|
44
|
+
|
|
45
|
+
- **bpm-core-react:** place refused fill values on their fields by path ([0f26687](https://github.com/Rytass/BPMCore/commit/0f26687))
|
|
46
|
+
- **bpm-core-client:** expose refused form values on request errors ([3a5d406](https://github.com/Rytass/BPMCore/commit/3a5d406))
|
|
47
|
+
- **bpm-core:** return structured form data errors ([27963b9](https://github.com/Rytass/BPMCore/commit/27963b9))
|
|
48
|
+
- **shared:** add structured form data issue contract ([827e26d](https://github.com/Rytass/BPMCore/commit/827e26d))
|
|
49
|
+
- **client:** add a filterable expense example list built on field filters ([3d624fb](https://github.com/Rytass/BPMCore/commit/3d624fb))
|
|
50
|
+
- **react:** filterable toggle in the form builder and list field filters ([e8d58bf](https://github.com/Rytass/BPMCore/commit/e8d58bf))
|
|
51
|
+
- **client:** pass field filters and sort to the approval-instance list ([bbfd789](https://github.com/Rytass/BPMCore/commit/bbfd789))
|
|
52
|
+
- **workflow-engine:** filter and sort approval instances by form fields ([6e4a98f](https://github.com/Rytass/BPMCore/commit/6e4a98f))
|
|
53
|
+
- **template:** refuse to enable a filterable field over conflicting history ([42628b4](https://github.com/Rytass/BPMCore/commit/42628b4))
|
|
54
|
+
- **shared:** declare filterable form fields and the field filter contract ([166389e](https://github.com/Rytass/BPMCore/commit/166389e))
|
|
55
|
+
- **api:** add a staging notify webhook showcase pushed over SSE ([0cb3ea5](https://github.com/Rytass/BPMCore/commit/0cb3ea5))
|
|
56
|
+
|
|
57
|
+
### 🩹 Fixes
|
|
58
|
+
|
|
59
|
+
- **workflow-engine:** keep the row index on a filterable issue whose row is not an object ([04bb60d](https://github.com/Rytass/BPMCore/commit/04bb60d))
|
|
60
|
+
- **template:** check a draft update's status before parsing its workflow ([1b683d7](https://github.com/Rytass/BPMCore/commit/1b683d7))
|
|
61
|
+
- **bpm-core:** keep filterable issue paths in the documented address form ([8502ef6](https://github.com/Rytass/BPMCore/commit/8502ef6))
|
|
62
|
+
- **client:** read form data issues all or nothing ([c0e4281](https://github.com/Rytass/BPMCore/commit/c0e4281))
|
|
63
|
+
- **template:** lock the template row before draft writes, forks and composes ([38b41a7](https://github.com/Rytass/BPMCore/commit/38b41a7))
|
|
64
|
+
- **bpm-core:** re-check the template under the submit lock and type-check earlier ([5eb4d56](https://github.com/Rytass/BPMCore/commit/5eb4d56))
|
|
65
|
+
- **template:** lock the template row before activation toggles and edits ([d4e0010](https://github.com/Rytass/BPMCore/commit/d4e0010))
|
|
66
|
+
- **bpm-core:** word the submit-publish race refusal in Chinese ([ef4001a](https://github.com/Rytass/BPMCore/commit/ef4001a))
|
|
67
|
+
- **instance-filter:** lock template row around filterable field checks ([05a7bfb](https://github.com/Rytass/BPMCore/commit/05a7bfb))
|
|
68
|
+
- **bpm-core:** describe form data rejections by field label in Chinese ([34b0ebc](https://github.com/Rytass/BPMCore/commit/34b0ebc))
|
|
69
|
+
- **shared:** name the table, not a column, for a malformed filterable table ([c4b0420](https://github.com/Rytass/BPMCore/commit/c4b0420))
|
|
70
|
+
- **shared:** describe filterable value mismatches in Chinese ([afd27a7](https://github.com/Rytass/BPMCore/commit/afd27a7))
|
|
71
|
+
- **client:** name data-source values in case titles from the option snapshot ([14ade77](https://github.com/Rytass/BPMCore/commit/14ade77))
|
|
72
|
+
|
|
73
|
+
### 🔥 Performance
|
|
74
|
+
|
|
75
|
+
- **template:** read the in-force schema only when a publish has filterable fields ([20fdcfb](https://github.com/Rytass/BPMCore/commit/20fdcfb))
|
|
76
|
+
- **template:** scan instances only for fields a publish newly makes filterable ([b18dda2](https://github.com/Rytass/BPMCore/commit/b18dda2))
|
|
77
|
+
|
|
78
|
+
### ❤️ Thank You
|
|
79
|
+
|
|
80
|
+
- Chia Yu Pai @fantasywind
|
|
81
|
+
|
|
1
82
|
## 0.20.1 (2026-11-10)
|
|
2
83
|
|
|
3
84
|
### 🩹 Fixes
|
package/README.md
CHANGED
|
@@ -74,6 +74,10 @@ Your host application must provide:
|
|
|
74
74
|
the `BPM_MEMBER_RESOLVER` provider it registers). It is optional: without one,
|
|
75
75
|
BPM uses `DefaultBPMMemberResolver`, which shows raw member ids as names and
|
|
76
76
|
empty emails. That keeps a new host booting; it is not an identity system.
|
|
77
|
+
- Optionally, an initiator `customFields` resolver (`initiatorCustomFieldsResolver`,
|
|
78
|
+
or the `BPM_INITIATOR_CUSTOM_FIELDS_RESOLVER` token) when conditions or
|
|
79
|
+
expression approvers read `initiator.customFields`: without one, a case
|
|
80
|
+
started from a BPM page has `customFields: {}`. See "Initiator `customFields`".
|
|
77
81
|
- Attachment storage configuration when local storage is not acceptable.
|
|
78
82
|
- A dedicated worker or host dispatcher when email/webhook/SLA work should not
|
|
79
83
|
run inside API replicas.
|
|
@@ -456,7 +460,7 @@ must handle refresh, which means you actually want Pattern 1.
|
|
|
456
460
|
|
|
457
461
|
### Coexisting with a host's existing `<AuthProvider>`
|
|
458
462
|
|
|
459
|
-
Many host applications (
|
|
463
|
+
Many host applications (ERPs, custom admin panels) already mount
|
|
460
464
|
their own `<AuthProvider>` at the root of the Next.js tree. BPM's
|
|
461
465
|
`<AuthProvider>` (mounted indirectly via `<BPMNextProviders>`) is a
|
|
462
466
|
**separate context** that only tracks BPM session state. The two do
|
|
@@ -708,6 +712,84 @@ export interface BPMMemberResolver {
|
|
|
708
712
|
}
|
|
709
713
|
```
|
|
710
714
|
|
|
715
|
+
## Initiator `customFields`
|
|
716
|
+
|
|
717
|
+
Initiator policies, edge and entry conditions and `EXPRESSION` approvers read
|
|
718
|
+
the initiator snapshot as `initiator.*`. A case submitted through the GraphQL
|
|
719
|
+
`submitApprovalInstance` mutation gets a snapshot BPM builds itself (member id,
|
|
720
|
+
org units and positions from the organization tables), and its `customFields`
|
|
721
|
+
is `{}`: the mutation never takes a snapshot from the client. A host that calls
|
|
722
|
+
`WorkflowEngineService.submitApprovalInstance` can pass a complete snapshot
|
|
723
|
+
instead, but a case started from a BPM page cannot.
|
|
724
|
+
|
|
725
|
+
Register a resolver to fill `customFields` for those cases. It is optional;
|
|
726
|
+
without one nothing changes.
|
|
727
|
+
|
|
728
|
+
```ts
|
|
729
|
+
import {
|
|
730
|
+
BPMInitiatorCustomFieldsInput,
|
|
731
|
+
BPMInitiatorCustomFieldsResolver,
|
|
732
|
+
} from '@rytass/bpm-core-nestjs-module';
|
|
733
|
+
|
|
734
|
+
class StationCustomFieldsResolver implements BPMInitiatorCustomFieldsResolver {
|
|
735
|
+
constructor(private readonly hr: HrDirectory) {}
|
|
736
|
+
|
|
737
|
+
async resolveCustomFields({
|
|
738
|
+
memberId,
|
|
739
|
+
}: BPMInitiatorCustomFieldsInput): Promise<Readonly<Record<string, unknown>>> {
|
|
740
|
+
const employee = await this.hr.findByMemberId(memberId);
|
|
741
|
+
|
|
742
|
+
return { grade: employee.grade, station: employee.station };
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
BPMRootModule.forRootAsync({
|
|
747
|
+
imports: [HrModule],
|
|
748
|
+
inject: [HrDirectory],
|
|
749
|
+
useFactory: (hr: HrDirectory) => ({
|
|
750
|
+
initiatorCustomFieldsResolver: new StationCustomFieldsResolver(hr),
|
|
751
|
+
}),
|
|
752
|
+
});
|
|
753
|
+
```
|
|
754
|
+
|
|
755
|
+
A template can then say `initiator.customFields.station == 'TPE'` in an edge
|
|
756
|
+
condition or in its initiator policy.
|
|
757
|
+
|
|
758
|
+
- It runs once when the case is submitted (`purpose: 'SUBMISSION'`), with the
|
|
759
|
+
member, the template and published version, the validated form data, the
|
|
760
|
+
default snapshot and the `BPMAuthContext`. A snapshot passed by a caller is
|
|
761
|
+
stored as it is and the resolver is not called.
|
|
762
|
+
- It also runs once per `launchableApprovalTemplates` request
|
|
763
|
+
(`purpose: 'LAUNCHABLE_TEMPLATES'`, with `null` for the template, the version
|
|
764
|
+
and the form data), and every template's initiator policy is judged against
|
|
765
|
+
its answer. So the answer must depend on the initiator only, and be the same
|
|
766
|
+
for both purposes: a template the list shows has to be one the member can
|
|
767
|
+
then submit.
|
|
768
|
+
- It decides `customFields` only. `memberId`, `orgUnitIds`, `positionId`,
|
|
769
|
+
`positionIds` and `primaryOrgUnitId` always come from BPM, whatever it returns.
|
|
770
|
+
- It must return a plain, JSON-serializable object within 10 seconds. Anything
|
|
771
|
+
else, a thrown error or running out of time fails the submission with a fixed
|
|
772
|
+
Chinese 500 (the cause is logged, never shown) and creates no case; BPM does
|
|
773
|
+
not fall back to `{}`. Throw an `HttpException` to show the member a message
|
|
774
|
+
of your own.
|
|
775
|
+
- The launchable-template list does fall back: when the resolver fails there,
|
|
776
|
+
the list is judged against `customFields: {}` and a warning is logged. A
|
|
777
|
+
policy that reads `initiator.customFields` then hits a missing key, and only
|
|
778
|
+
that template is left out; the rest of the list is answered as usual.
|
|
779
|
+
- The snapshot is fixed at submission. Resubmitting a returned case does not call
|
|
780
|
+
it again, and the dry run does not call it. The designer's trial run sends its
|
|
781
|
+
own sample snapshot, whose `customFields` is `{}`, so a condition that reads it
|
|
782
|
+
can evaluate differently there than in a real submission.
|
|
783
|
+
- Return a value for every key a template reads: a key whose value is `undefined`
|
|
784
|
+
is dropped, and a condition that reads it then fails with
|
|
785
|
+
`EXPRESSION_MISSING_KEY`, unless the template guards it with
|
|
786
|
+
`has(initiator.customFields.<key>)`. What you return is stored with the case
|
|
787
|
+
and can be read by anyone who can read the case, so do not return secrets.
|
|
788
|
+
- Register it as the `initiatorCustomFieldsResolver` runtime value, the
|
|
789
|
+
`initiatorCustomFieldsResolverProvider` wiring option, or the token in a
|
|
790
|
+
`@Global()` host module. Every one of them reaches the single engine the
|
|
791
|
+
submission, the launchable list and the form option DataSources share.
|
|
792
|
+
|
|
711
793
|
## Organization Data Ownership
|
|
712
794
|
|
|
713
795
|
> **Upgrading past 0.14.0 — which day is "today".** The workflow engine now
|
|
@@ -946,6 +1028,24 @@ none:
|
|
|
946
1028
|
`NONE`, a walk that ends below the level fails the whole step with a conflict
|
|
947
1029
|
error; the managers it did find are not used on their own.
|
|
948
1030
|
|
|
1031
|
+
`ORG_MANAGER_CHAIN` also takes two optional settings. `startFrom` says whose
|
|
1032
|
+
manager the chain starts climbing from: `{ type: 'INITIATOR' }` (the default),
|
|
1033
|
+
`{ type: 'FORM_MEMBER', formPath }` (the one person picked in a single-person
|
|
1034
|
+
member field) or `{ type: 'NODE_ACTOR', nodeIds }` (the one person who actually
|
|
1035
|
+
approved the listed earlier nodes). The start person is not on the chain; the
|
|
1036
|
+
walk begins at their direct manager. A start that names several people is
|
|
1037
|
+
refused with a conflict error, and one that names nobody takes the `fallback`.
|
|
1038
|
+
Publish therefore refuses a `NODE_ACTOR` start whose stage can have several
|
|
1039
|
+
signers (`PARALLEL_ALL`, `SEQUENTIAL`, a `COUNT` quorum above 1 or a
|
|
1040
|
+
`PERCENTAGE` quorum), since the conflict would surface inside the last signer's
|
|
1041
|
+
own approval and keep it from ever committing.
|
|
1042
|
+
`startPositionLevel` makes managers below that position level pass without
|
|
1043
|
+
signing: the first manager at or above it starts the chain, and the walk then
|
|
1044
|
+
ends at `minPositionLevel` as before. A notify node's chain may only start at
|
|
1045
|
+
the initiator. Both settings are read from the instance's workflow snapshot;
|
|
1046
|
+
left out, the chain behaves exactly as before. An engine from before this
|
|
1047
|
+
change ignores them and climbs from the initiator.
|
|
1048
|
+
|
|
949
1049
|
Fallback types:
|
|
950
1050
|
|
|
951
1051
|
| Type | Behavior |
|
|
@@ -1006,6 +1106,7 @@ when the value needs a secret, because the factory runs after secrets are
|
|
|
1006
1106
|
loaded. The twins are: `attachmentStorageProvider` / `attachmentStorage`,
|
|
1007
1107
|
`businessCalendarProvider` / `businessCalendar`,
|
|
1008
1108
|
`formDataSourceRegistryProvider` / `formDataSourceRegistry`,
|
|
1109
|
+
`initiatorCustomFieldsResolverProvider` / `initiatorCustomFieldsResolver`,
|
|
1009
1110
|
`memberResolverProvider` / `memberResolver`,
|
|
1010
1111
|
`workflowServiceTaskDispatcherProvider` / `workflowServiceTaskDispatcher`, and
|
|
1011
1112
|
`workflowWebhookRegistryProvider` / `workflowWebhookRegistry`.
|
|
@@ -1018,6 +1119,7 @@ factory runs.
|
|
|
1018
1119
|
| `authContextFactory` | `undefined` | Reads `BPMAuthContext` from NestJS `ExecutionContext`. |
|
|
1019
1120
|
| `memberResolverProvider` | `undefined` | Optional. Provider for `BPM_MEMBER_RESOLVER`; without it `DefaultBPMMemberResolver` is used. Runtime twin: `memberResolver`. |
|
|
1020
1121
|
| `resolverMetadataFactory` | `undefined` | Stamps the host's own route metadata onto every BPM GraphQL handler. Required when the host installs a global metadata-driven guard — see "Coexisting with a host global guard". |
|
|
1122
|
+
| `initiatorCustomFieldsResolverProvider` | `undefined` | Optional. Provider for `BPM_INITIATOR_CUSTOM_FIELDS_RESOLVER`: fills `customFields` of the initiator snapshot BPM builds when a case is submitted without one. Runtime twin: `initiatorCustomFieldsResolver`. See "Initiator `customFields`". |
|
|
1021
1123
|
| `attachmentStorageProvider` | local `.storage/attachments` | Host-provided `@rytass/storages` adapter. |
|
|
1022
1124
|
| `workflowServiceTaskDispatcherProvider` | built-in `fetch` dispatcher | Host provider for executable workflow `WEBHOOK` service tasks. |
|
|
1023
1125
|
| `workflowWebhookRegistryProvider` | Empty catalog | Host catalog of NOTIFY webhook endpoints (`BPMWorkflowWebhookRegistry`). Runtime twin: `workflowWebhookRegistry`. See "NOTIFY webhooks". |
|
|
@@ -1234,7 +1336,7 @@ Required environment variables for direct Vault loading:
|
|
|
1234
1336
|
### Sharing a Postgres cluster with the host
|
|
1235
1337
|
|
|
1236
1338
|
Hosts that already run their own Postgres (and their own Vault path, e.g.
|
|
1237
|
-
`
|
|
1339
|
+
`host-app/develop`) need to decide where BPM's 25 tables live.
|
|
1238
1340
|
|
|
1239
1341
|
BPM has no connection-name option. Its repositories bind to the **default**
|
|
1240
1342
|
TypeORM DataSource of the Nest application, and `BPMRootModule` has no
|
|
@@ -1266,13 +1368,13 @@ A dedicated BPM application wires its DataSource from its own Vault path:
|
|
|
1266
1368
|
export class BPMApplicationModule {}
|
|
1267
1369
|
```
|
|
1268
1370
|
|
|
1269
|
-
If the host runs only one Vault path (e.g. `
|
|
1371
|
+
If the host runs only one Vault path (e.g. `host-app/develop`) and you
|
|
1270
1372
|
want to keep secrets there, expose `bpm_core/*` keys under the host
|
|
1271
1373
|
path with a prefix and provide a custom factory that reads them — BPM
|
|
1272
1374
|
doesn't require its own Vault path, only that the secrets are
|
|
1273
1375
|
available to `buildTypeOrmModuleOptions`.
|
|
1274
1376
|
|
|
1275
|
-
Vault paths can be split independently: keep `
|
|
1377
|
+
Vault paths can be split independently: keep `host-app/develop` for the
|
|
1276
1378
|
host and create `bpm_core/develop` for BPM secrets. BPM's helper reads
|
|
1277
1379
|
its own path; the host's auth module reads its own. They do not
|
|
1278
1380
|
interfere.
|
|
@@ -1652,13 +1754,15 @@ The rules that differ from the holder's own transfer:
|
|
|
1652
1754
|
delegation chain gets an `ADMIN_REASSIGN` step carrying `actorMemberId` and
|
|
1653
1755
|
the typed `comment`, and the activity log records `TASK_REASSIGNED`.
|
|
1654
1756
|
- The target is not run through delegation rules. The initiator / submitter
|
|
1655
|
-
exclusions and the ORG_MANAGER_CHAIN grade check still apply.
|
|
1757
|
+
and `excludeNodeActors` exclusions and the ORG_MANAGER_CHAIN grade check still apply.
|
|
1656
1758
|
- The node's `allowTransfer` is not consulted. It governs what a holder may do
|
|
1657
1759
|
with their own task; an administrator override exists for holders who are
|
|
1658
1760
|
gone, and a node that forbids transfers must not strand its tasks on them.
|
|
1659
1761
|
- A refusal is reported as `REJECTED` with an `errorCode`
|
|
1660
1762
|
(`SOURCE_NOT_ON_TASK`, `TARGET_SAME_AS_SOURCE`, `TARGET_ALREADY_ON_TASK`,
|
|
1661
1763
|
`TARGET_ALREADY_DECIDED`, `TARGET_IS_INITIATOR`, `TARGET_IS_SUBMITTER`,
|
|
1764
|
+
`TARGET_IS_EXCLUDED_NODE_ACTOR` (the node's `excludeNodeActors` keeps the
|
|
1765
|
+
target out),
|
|
1662
1766
|
`TARGET_GRADE_TOO_LOW`, `TASK_NOT_OPEN`, `INSTANCE_NOT_RUNNING`,
|
|
1663
1767
|
`REASON_REQUIRED`, `UNEXPECTED_ERROR`). `UNEXPECTED_ERROR` is reported by
|
|
1664
1768
|
`reassignMemberTasks` for the one task that failed, and the other tasks are still
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rytass/bpm-core-nestjs-module",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.1",
|
|
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.21.1",
|
|
166
166
|
"@rytass/secret-adapter-vault-nestjs": ">=0.4.5",
|
|
167
167
|
"express": ">=4.0.0",
|
|
168
168
|
"graphql": ">=16.0.0",
|
|
@@ -15,6 +15,7 @@ const attachment_storage_token_1 = require("./attachment-storage.token");
|
|
|
15
15
|
const attachment_options_1 = require("./attachment-options");
|
|
16
16
|
const form_1 = require("@rytass/bpm-core-shared/form");
|
|
17
17
|
const attachment_entity_1 = require("./attachment.entity");
|
|
18
|
+
const file_upload_value_ids_1 = require("./file-upload-value-ids");
|
|
18
19
|
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;
|
|
19
20
|
let AttachmentService = class AttachmentService {
|
|
20
21
|
constructor(attachmentRepository, approvalInstanceRepository, taskRepository, taskCandidateRepository, taskDecisionRepository, storage, attachmentOptions = (0, attachment_options_1.resolveBPMAttachmentOptions)()) {
|
|
@@ -326,16 +327,7 @@ function readSubmittedFileUploadFieldKeys(schema, formData) {
|
|
|
326
327
|
.map((field) => field.fieldKey);
|
|
327
328
|
}
|
|
328
329
|
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
|
-
});
|
|
330
|
+
return readSubmittedFileUploadFieldKeys(schema, formData).flatMap((fieldKey) => (0, file_upload_value_ids_1.readFileUploadValueIds)(formData[fieldKey]).map((id) => ({ id, path: `form.${fieldKey}` })));
|
|
339
331
|
}
|
|
340
332
|
function signAttachmentToken(payload, signedUrlSecret) {
|
|
341
333
|
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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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The attachment ids a `file_upload` value names: each non-empty string of an
|
|
3
|
+
* array, or a single non-empty string. The attachment binding and the
|
|
4
|
+
* `maxFiles` count both read a value through this, so they agree on what the
|
|
5
|
+
* value holds. Repeats are kept; each reader collapses them the way it needs.
|
|
6
|
+
* Not re-exported from the package index.
|
|
7
|
+
*/
|
|
8
|
+
export declare function readFileUploadValueIds(value: unknown): readonly string[];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readFileUploadValueIds = readFileUploadValueIds;
|
|
4
|
+
/**
|
|
5
|
+
* The attachment ids a `file_upload` value names: each non-empty string of an
|
|
6
|
+
* array, or a single non-empty string. The attachment binding and the
|
|
7
|
+
* `maxFiles` count both read a value through this, so they agree on what the
|
|
8
|
+
* value holds. Repeats are kept; each reader collapses them the way it needs.
|
|
9
|
+
* Not re-exported from the package index.
|
|
10
|
+
*/
|
|
11
|
+
function readFileUploadValueIds(value) {
|
|
12
|
+
const entries = Array.isArray(value) ? value : [value];
|
|
13
|
+
return entries.filter((entry) => typeof entry === 'string' && entry !== '');
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=file-upload-value-ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-upload-value-ids.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/attachment/file-upload-value-ids.ts"],"names":[],"mappings":";;AAOA,wDAMC;AAbD;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAC,KAAc;IACnD,MAAM,OAAO,GAAuB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAE3E,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE,CACtE,CAAC;AACJ,CAAC"}
|
|
@@ -10,6 +10,7 @@ import { BPMMemberResolver } from '../identity/member-resolver.interface';
|
|
|
10
10
|
import { BPMRootNotificationOptions } from '../notification/notification-options';
|
|
11
11
|
import { BPMRootOrganizationOptions } from '../organization/organization-time-zone';
|
|
12
12
|
import { BPMRootSignatureOptions } from '../signature/signature-options';
|
|
13
|
+
import { BPMInitiatorCustomFieldsResolver } from '../workflow-engine/initiator-custom-fields-resolver.token';
|
|
13
14
|
import { BPMWorkflowServiceTaskDispatcher } from '../workflow-engine/workflow-service-task-dispatcher.token';
|
|
14
15
|
import { BPMRootWorkflowWebhookOptions } from '../workflow-webhook/workflow-webhook-options';
|
|
15
16
|
import { BPMWorkflowWebhookRegistry } from '../workflow-webhook/workflow-webhook.types';
|
|
@@ -83,6 +84,23 @@ export interface BPMRootRuntimeOptions extends BPMRootAttachmentOptions, BPMRoot
|
|
|
83
84
|
* omitted, BPM exposes an empty catalog.
|
|
84
85
|
*/
|
|
85
86
|
readonly formDataSourceRegistry?: BPMFormDataSourceRegistry;
|
|
87
|
+
/**
|
|
88
|
+
* Fills `customFields` of the initiator snapshot the engine builds when a
|
|
89
|
+
* case is submitted without one (every submission from the GraphQL
|
|
90
|
+
* `submitApprovalInstance` mutation), as a ready instance. The values are
|
|
91
|
+
* then readable as `initiator.customFields.*` by the initiator policy at
|
|
92
|
+
* submit, by conditions and by expression approvers. A snapshot passed in by
|
|
93
|
+
* a host calling the service is never touched.
|
|
94
|
+
*
|
|
95
|
+
* The launchable template list calls it too, once per request, and judges
|
|
96
|
+
* the initiator policies against its answer; when it fails there, the list
|
|
97
|
+
* is judged against `{}` instead of failing (a submission does fail). So its
|
|
98
|
+
* answer must depend on the initiator only.
|
|
99
|
+
*
|
|
100
|
+
* `initiatorCustomFieldsResolverProvider` takes precedence when both are
|
|
101
|
+
* given. When omitted, `customFields` is `{}`.
|
|
102
|
+
*/
|
|
103
|
+
readonly initiatorCustomFieldsResolver?: BPMInitiatorCustomFieldsResolver;
|
|
86
104
|
/**
|
|
87
105
|
* Host identity source, as a ready instance.
|
|
88
106
|
*
|
|
@@ -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;AAUxB,mFAGgD;
|
|
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;AA0IhD;;;;;;;;;;;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"}
|
|
@@ -6,6 +6,7 @@ import type { BPMExpressionFunction } from '../expression-function/expression-fu
|
|
|
6
6
|
import { BPMFormDataSourceRegistry } from '../form-data-source';
|
|
7
7
|
import { BPMMemberResolver } from '../identity/member-resolver.interface';
|
|
8
8
|
import { BPMWorkflowWebhookRegistry } from '../workflow-webhook/workflow-webhook.types';
|
|
9
|
+
import { BPMInitiatorCustomFieldsResolver } from '../workflow-engine/initiator-custom-fields-resolver.token';
|
|
9
10
|
import { BPMWorkflowServiceTaskDispatcher } from '../workflow-engine/workflow-service-task-dispatcher.token';
|
|
10
11
|
import { BPMRootRuntimeOptions } from './bpm-root-options';
|
|
11
12
|
/**
|
|
@@ -68,6 +69,16 @@ interface BPMRootModuleWiringOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
|
68
69
|
* does; when neither is given, the catalog is empty.
|
|
69
70
|
*/
|
|
70
71
|
readonly workflowWebhookRegistryProvider?: Provider<BPMWorkflowWebhookRegistry>;
|
|
72
|
+
/**
|
|
73
|
+
* Host-provided initiator `customFields` resolver, as a Nest provider for
|
|
74
|
+
* `BPM_INITIATOR_CUSTOM_FIELDS_RESOLVER`.
|
|
75
|
+
*
|
|
76
|
+
* Runtime twin: {@link BPMRootRuntimeOptions.initiatorCustomFieldsResolver}.
|
|
77
|
+
* When both are given this provider wins, as `workflowServiceTaskDispatcherProvider`
|
|
78
|
+
* does. BPM builds one engine, shared with form option DataSources, so the
|
|
79
|
+
* provider and the runtime twin reach the same place. When none is given, `customFields` of an engine-built snapshot is `{}`.
|
|
80
|
+
*/
|
|
81
|
+
readonly initiatorCustomFieldsResolverProvider?: Provider<BPMInitiatorCustomFieldsResolver>;
|
|
71
82
|
/**
|
|
72
83
|
* Host-provided member resolver, as a Nest provider.
|
|
73
84
|
*
|
|
@@ -113,6 +113,13 @@ exports.BPMRootModule = BPMRootModule = BPMRootModule_1 = tslib_1.__decorate([
|
|
|
113
113
|
function createBPMFeatureModules(wiring) {
|
|
114
114
|
const inject = [bpm_root_options_1.BPM_ROOT_OPTIONS];
|
|
115
115
|
const useFactory = (options) => options;
|
|
116
|
+
// Built once and imported by both this graph and `FormDataSourceModule`, so
|
|
117
|
+
// Nest makes a single engine that holds the host's providers.
|
|
118
|
+
const workflowEngineModule = workflow_engine_module_1.WorkflowEngineModule.forRoot({
|
|
119
|
+
imports: wiring.imports,
|
|
120
|
+
initiatorCustomFieldsResolverProvider: wiring.initiatorCustomFieldsResolverProvider,
|
|
121
|
+
serviceTaskDispatcherProvider: wiring.workflowServiceTaskDispatcherProvider,
|
|
122
|
+
});
|
|
116
123
|
return [
|
|
117
124
|
wiring.optionsModule,
|
|
118
125
|
notification_options_module_1.NotificationOptionsModule.forRootAsync({ inject, useFactory }),
|
|
@@ -150,15 +157,13 @@ function createBPMFeatureModules(wiring) {
|
|
|
150
157
|
form_data_source_1.FormDataSourceModule.forRoot({
|
|
151
158
|
imports: wiring.imports,
|
|
152
159
|
registryProvider: wiring.formDataSourceRegistryProvider,
|
|
160
|
+
workflowEngineModule,
|
|
153
161
|
}),
|
|
154
162
|
template_module_1.TemplateModule,
|
|
155
163
|
delegation_module_1.DelegationModule,
|
|
156
164
|
notification_module_1.NotificationModule,
|
|
157
165
|
signature_module_1.SignatureModule.forRootAsync({ inject, useFactory }),
|
|
158
|
-
|
|
159
|
-
imports: wiring.imports,
|
|
160
|
-
serviceTaskDispatcherProvider: wiring.workflowServiceTaskDispatcherProvider,
|
|
161
|
-
}),
|
|
166
|
+
workflowEngineModule,
|
|
162
167
|
workflow_webhook_module_1.WorkflowWebhookModule.forRoot({
|
|
163
168
|
imports: wiring.imports,
|
|
164
169
|
registryProvider: wiring.workflowWebhookRegistryProvider,
|
|
@@ -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,kGAA6F;AAE7F,qDAAiD;AACjD,0DAI6B;AAC7B,iEAA6D;AAE7D,6EAAyE;AACzE,6FAAwF;AACxF,yGAAmG;AACnG,yFAGqD;AAErD,6EAAyE;AACzE,oEAAgE;AAChE,iEAA6D;AAC7D,sFAAiF;
|
|
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,34 @@
|
|
|
1
|
+
import { BadRequestException } from '@nestjs/common';
|
|
2
|
+
import type { FormDataIssue, FormDataIssueReason } from '@rytass/bpm-core-shared/form';
|
|
3
|
+
/**
|
|
4
|
+
* Where a refused value sits: `path` is the machine address the form renderer
|
|
5
|
+
* keys its errors by (`note`, `items[1]`, `items[1].qty`); `ref` is the Chinese
|
|
6
|
+
* name a person reads in the message (`欄位「備註」`, `「請購明細」第 2 列的「數量」`).
|
|
7
|
+
*/
|
|
8
|
+
export interface FormDataIssueLocation {
|
|
9
|
+
readonly path: string;
|
|
10
|
+
readonly ref: string;
|
|
11
|
+
}
|
|
12
|
+
interface NamedFormKey {
|
|
13
|
+
readonly fieldKey: string;
|
|
14
|
+
readonly label?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function readFieldIssueLocation(field: NamedFormKey): FormDataIssueLocation;
|
|
17
|
+
/** A table row, numbered from 0 in `path` and from 1 in `ref`, as the user reads it. */
|
|
18
|
+
export declare function readRowIssueLocation(table: NamedFormKey, index: number): FormDataIssueLocation;
|
|
19
|
+
export declare function readCellIssueLocation(row: FormDataIssueLocation, column: NamedFormKey): FormDataIssueLocation;
|
|
20
|
+
/**
|
|
21
|
+
* One refused value. `text` is the rule as a sentence without its subject
|
|
22
|
+
* (`為必填`, `至少需要 2 個字`); the message is the location's `ref` followed by it.
|
|
23
|
+
*/
|
|
24
|
+
export declare function createFormDataIssue(location: FormDataIssueLocation, reason: FormDataIssueReason, text: string, limit?: number): FormDataIssue;
|
|
25
|
+
/**
|
|
26
|
+
* The 400 a refused form write answers with. `message` stays the Chinese
|
|
27
|
+
* sentence older callers read; `formDataErrors` is the same refusal as data.
|
|
28
|
+
* The body is spelled out in full because Nest uses an object body as-is,
|
|
29
|
+
* and the GraphQL error's `extensions.originalError` is that body.
|
|
30
|
+
*/
|
|
31
|
+
export declare function createFormDataBadRequest(message: string, formDataErrors: readonly FormDataIssue[]): BadRequestException;
|
|
32
|
+
/** The issues' sentences joined, as the refusal message reads them. */
|
|
33
|
+
export declare function readFormDataIssueMessage(issues: readonly FormDataIssue[]): string;
|
|
34
|
+
export {};
|