@rytass/bpm-core-nestjs-module 0.15.0 → 0.16.2
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 +37 -0
- package/README.md +9 -13
- package/package.json +5 -5
- package/src/lib/attachment/attachment-options.d.ts +23 -10
- package/src/lib/attachment/attachment-options.js +17 -31
- package/src/lib/attachment/attachment-options.js.map +1 -1
- package/src/lib/attachment/attachment-request-origin.d.ts +19 -0
- package/src/lib/attachment/attachment-request-origin.js +51 -0
- package/src/lib/attachment/attachment-request-origin.js.map +1 -0
- package/src/lib/attachment/attachment.module.d.ts +1 -2
- package/src/lib/attachment/attachment.module.js.map +1 -1
- package/src/lib/attachment/attachment.queries.d.ts +2 -2
- package/src/lib/attachment/attachment.queries.js +9 -4
- package/src/lib/attachment/attachment.queries.js.map +1 -1
- package/src/lib/attachment/attachment.service.d.ts +6 -1
- package/src/lib/attachment/attachment.service.js +6 -4
- package/src/lib/attachment/attachment.service.js.map +1 -1
- package/src/lib/bpm/bpm-root-options.d.ts +1 -2
- package/src/lib/bpm/bpm-root-options.js.map +1 -1
- package/src/lib/bpm/bpm-root.module.d.ts +1 -2
- package/src/lib/bpm/bpm-root.module.js.map +1 -1
- package/src/lib/bpm-auth/bpm-auth.options.d.ts +1 -2
- package/src/lib/calendar/calendar.module.d.ts +1 -2
- package/src/lib/calendar/calendar.module.js.map +1 -1
- package/src/lib/form-data-source/form-data-source.module.d.ts +1 -2
- package/src/lib/form-data-source/form-data-source.module.js.map +1 -1
- package/src/lib/identity/identity.module.d.ts +1 -2
- package/src/lib/identity/identity.module.js.map +1 -1
- package/src/lib/notification/notification-options.module.d.ts +1 -2
- package/src/lib/notification/notification-options.module.js.map +1 -1
- package/src/lib/signature/signature.module.d.ts +1 -2
- package/src/lib/signature/signature.module.js.map +1 -1
- package/src/lib/workflow-engine/workflow-dashboard-summary.object.js +18 -6
- package/src/lib/workflow-engine/workflow-dashboard-summary.object.js.map +1 -1
- package/src/lib/workflow-engine/workflow-engine.module.d.ts +1 -2
- package/src/lib/workflow-engine/workflow-engine.module.js.map +1 -1
- package/src/lib/workflow-engine/workflow-engine.service.d.ts +10 -0
- package/src/lib/workflow-engine/workflow-engine.service.js +34 -9
- package/src/lib/workflow-engine/workflow-engine.service.js.map +1 -1
- package/src/lib/workflow-webhook/workflow-webhook-options.module.d.ts +1 -2
- package/src/lib/workflow-webhook/workflow-webhook-options.module.js.map +1 -1
- package/src/lib/workflow-webhook/workflow-webhook.module.d.ts +1 -2
- package/src/lib/workflow-webhook/workflow-webhook.module.js.map +1 -1
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { DynamicModule, Provider } from '@nestjs/common';
|
|
2
|
-
import { ModuleMetadata } from '@nestjs/common/interfaces';
|
|
1
|
+
import { DynamicModule, ModuleMetadata, Provider } from '@nestjs/common';
|
|
3
2
|
import { BPMBusinessCalendar } from './business-calendar.token';
|
|
4
3
|
export interface CalendarModuleOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
5
4
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.module.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/calendar/calendar.module.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"calendar.module.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/calendar/calendar.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAMwB;AAExB,6EAA+E;AAC/E,iEAA+D;AAyB/D;;;;;GAKG;AAGI,IAAM,cAAc,sBAApB,MAAM,cAAc;IACzB,MAAM,CAAC,OAAO,CAAC,UAAiC,EAAE;QAChD,OAAO;YACL,OAAO,EAAE,CAAC,4CAAqB,CAAC;YAChC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;YACpD,MAAM,EAAE,gBAAc;YACtB,SAAS,EAAE;gBACT,OAAO,CAAC,wBAAwB,IAAI,4DAA+B;gBACnE,4CAAqB;aACtB;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAZY,wCAAc;yBAAd,cAAc;IAF1B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,cAAc,CAY1B"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { DynamicModule, Provider } from '@nestjs/common';
|
|
2
|
-
import { ModuleMetadata } from '@nestjs/common/interfaces';
|
|
1
|
+
import { DynamicModule, ModuleMetadata, Provider } from '@nestjs/common';
|
|
3
2
|
import { BPMFormDataSourceRegistry } from './form-data-source.types';
|
|
4
3
|
export interface FormDataSourceModuleOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
5
4
|
readonly registryProvider?: Provider<BPMFormDataSourceRegistry>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-data-source.module.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/form-data-source/form-data-source.module.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"form-data-source.module.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/form-data-source/form-data-source.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAMwB;AACxB,6CAAgD;AAChD,sFAAiF;AACjF,mGAA6F;AAC7F,2FAAqF;AACrF,2EAAoF;AACpF,yEAAmE;AACnE,yEAAmE;AACnE,uGAA+F;AAC/F,qEAIkC;AAW3B,IAAM,oBAAoB,4BAA1B,MAAM,oBAAoB;IAC/B,MAAM,CAAC,OAAO,CAAC,UAAuC,EAAE;QACtD,MAAM,gBAAgB,GACpB,OAAO,CAAC,gBAAgB,IAAI,iEAAqC,CAAC;QAEpE,OAAO;YACL,OAAO,EAAE;gBACP,sDAA6B;gBAC7B,4DAAmC;gBACnC,gDAAqB;aACtB;YACD,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE;gBACP,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC1B,6CAAoB;gBACpB,uBAAa,CAAC,UAAU,CAAC;oBACvB,gEAA6B;oBAC7B,4DAA2B;iBAC5B,CAAC;aACH;YACD,MAAM,EAAE,sBAAoB;YAC5B,SAAS,EAAE;gBACT,gBAAgB;gBAChB,gDAAqB;gBACrB,gDAAqB;gBACrB,4EAAkC;gBAClC;oBACE,OAAO,EAAE,4DAAmC;oBAC5C,WAAW,EAAE,4EAAkC;iBAChD;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAjCY,oDAAoB;+BAApB,oBAAoB;IAFhC,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,oBAAoB,CAiChC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { DynamicModule, InjectionToken, Provider } from '@nestjs/common';
|
|
2
|
-
import { ModuleMetadata } from '@nestjs/common/interfaces';
|
|
1
|
+
import { DynamicModule, InjectionToken, ModuleMetadata, Provider } from '@nestjs/common';
|
|
3
2
|
import { BPMMemberResolver } from './member-resolver.interface';
|
|
4
3
|
import { BPMRootIdentityOptions } from './identity-options';
|
|
5
4
|
export interface IdentityModuleOptions extends BPMRootIdentityOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.module.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/identity/identity.module.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"identity.module.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/identity/identity.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAMwB;AACxB,6CAAgD;AAChD,yDAAqD;AACrD,yDAAqD;AACrD,iFAA2E;AAC3E,uEAA0E;AAE1E,yDAI4B;AAmCrB,IAAM,cAAc,sBAApB,MAAM,cAAc;IACzB,MAAM,CAAC,OAAO,CAAC,OAA8B;QAC3C,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;QAEjE,OAAO;YACL,OAAO,EAAE,CAAC,kCAAe,CAAC;YAC1B,OAAO,EAAE;gBACP,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC1B,uBAAa,CAAC,UAAU,CAAC,CAAC,wDAAyB,CAAC,CAAC;aACtD;YACD,MAAM,EAAE,gBAAc;YACtB,SAAS,EAAE;gBACT,GAAG,8BAA8B,CAAC,OAAO,CAAC,yBAAyB,CAAC;gBACpE,kCAAe;gBACf,GAAG,iBAAiB;gBACpB,6BAA6B,CAAC,OAAO,CAAC;aACvC;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAAmC;QACrD,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;QAEjE,OAAO;YACL,OAAO,EAAE,CAAC,kCAAe,CAAC;YAC1B,OAAO,EAAE;gBACP,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC1B,uBAAa,CAAC,UAAU,CAAC,CAAC,wDAAyB,CAAC,CAAC;aACtD;YACD,MAAM,EAAE,gBAAc;YACtB,SAAS,EAAE;gBACT,GAAG,8BAA8B,CAAC,OAAO,CAAC,yBAAyB,CAAC;gBACpE,kCAAe;gBACf,GAAG,iBAAiB;gBACpB;oBACE,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;oBACnC,OAAO,EAAE,uCAAoB;oBAC7B,UAAU,EAAE,KAAK,EACf,GAAG,IAAwB,EAC4B,EAAE,CACzD,IAAA,4CAAyB,EAAC,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;iBAC/D;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AA7CY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,cAAc,CA6C1B;AAED;;;GAGG;AACH,SAAS,8BAA8B,CACrC,iBAAsC;IAEtC,OAAO,iBAAiB,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,kCAAe,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,6BAA6B,CACpC,OAA8D;IAE9D,OAAO,CAAC,OAAO,CAAC,sBAAsB,IAAI,uDAA6B,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,6BAA6B,CACpC,UAAkC,EAAE;IAEpC,OAAO;QACL,OAAO,EAAE,uCAAoB;QAC7B,QAAQ,EAAE,IAAA,4CAAyB,EAAC,OAAO,CAAC;KAC7C,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { DynamicModule, InjectionToken } from '@nestjs/common';
|
|
2
|
-
import { ModuleMetadata } from '@nestjs/common/interfaces';
|
|
1
|
+
import { DynamicModule, InjectionToken, ModuleMetadata } from '@nestjs/common';
|
|
3
2
|
import { BPMRootNotificationOptions } from './notification-options';
|
|
4
3
|
export interface NotificationOptionsModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
5
4
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification-options.module.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/notification/notification-options.module.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"notification-options.module.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/notification/notification-options.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAMwB;AACxB,iEAIgC;AA2BzB,IAAM,yBAAyB,iCAA/B,MAAM,yBAAyB;IACpC,MAAM,CAAC,OAAO,CAAC,UAAsC,EAAE;QACrD,OAAO;YACL,OAAO,EAAE,CAAC,+CAAwB,CAAC;YACnC,MAAM,EAAE,2BAAyB;YACjC,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,+CAAwB;oBACjC,QAAQ,EAAE,IAAA,oDAA6B,EAAC,OAAO,CAAC;iBACjD;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CACjB,OAA8C;QAE9C,OAAO;YACL,OAAO,EAAE,CAAC,+CAAwB,CAAC;YACnC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,2BAAyB;YACjC,SAAS,EAAE;gBACT;oBACE,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;oBACnC,OAAO,EAAE,+CAAwB;oBACjC,UAAU,EAAE,KAAK,EACf,GAAG,IAAwB,EACgC,EAAE,CAC7D,IAAA,oDAA6B,EAAC,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;iBACnE;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAjCY,8DAAyB;oCAAzB,yBAAyB;IAFrC,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,yBAAyB,CAiCrC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { DynamicModule, InjectionToken } from '@nestjs/common';
|
|
2
|
-
import { ModuleMetadata } from '@nestjs/common/interfaces';
|
|
1
|
+
import { DynamicModule, InjectionToken, ModuleMetadata } from '@nestjs/common';
|
|
3
2
|
import { BPMRootSignatureOptions } from './signature-options';
|
|
4
3
|
export interface SignatureModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
5
4
|
readonly inject?: readonly InjectionToken[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.module.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/signature/signature.module.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"signature.module.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/signature/signature.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAOwB;AACxB,6CAAgD;AAChD,2DAI6B;AAC7B,yDAAqD;AACrD,2DAAuD;AACvD,2DAAuD;AAkBhD,IAAM,eAAe,uBAArB,MAAM,eAAe;IAC1B,MAAM,CAAC,OAAO,CAAC,UAAmC,EAAE;QAClD,OAAO;YACL,OAAO,EAAE,CAAC,yCAAqB,EAAE,oCAAgB,CAAC;YAClD,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,CAAC,kCAAe,CAAC,CAAC,CAAC;YACtD,MAAM,EAAE,iBAAe;YACvB,SAAS,EAAE;gBACT,oCAAgB;gBAChB,oCAAgB;gBAChB,8BAA8B,CAAC,OAAO,CAAC;aACxC;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAAoC;QACtD,OAAO;YACL,OAAO,EAAE,CAAC,yCAAqB,EAAE,oCAAgB,CAAC;YAClD,OAAO,EAAE;gBACP,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC1B,uBAAa,CAAC,UAAU,CAAC,CAAC,kCAAe,CAAC,CAAC;aAC5C;YACD,MAAM,EAAE,iBAAe;YACvB,SAAS,EAAE;gBACT,oCAAgB;gBAChB,oCAAgB;gBAChB;oBACE,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;oBACnC,OAAO,EAAE,yCAAqB;oBAC9B,UAAU,EAAE,KAAK,EACf,GAAG,IAAwB,EAC6B,EAAE,CAC1D,IAAA,8CAA0B,EAAC,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;iBAChE;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AApCY,0CAAe;0BAAf,eAAe;IAN3B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,CAAC,kCAAe,CAAC,CAAC,CAAC;QACtD,SAAS,EAAE,CAAC,oCAAgB,EAAE,oCAAgB,CAAC;QAC/C,OAAO,EAAE,CAAC,oCAAgB,CAAC;KAC5B,CAAC;GACW,eAAe,CAoC3B;AAED,SAAS,8BAA8B,CACrC,UAAmC,EAAE;IAErC,OAAO;QACL,OAAO,EAAE,yCAAqB;QAC9B,QAAQ,EAAE,IAAA,8CAA0B,EAAC,OAAO,CAAC;KAC9C,CAAC;AACJ,CAAC"}
|
|
@@ -7,27 +7,39 @@ let WorkflowDashboardSummaryObject = class WorkflowDashboardSummaryObject {
|
|
|
7
7
|
};
|
|
8
8
|
exports.WorkflowDashboardSummaryObject = WorkflowDashboardSummaryObject;
|
|
9
9
|
tslib_1.__decorate([
|
|
10
|
-
(0, graphql_1.Field)(() => graphql_1.Int
|
|
10
|
+
(0, graphql_1.Field)(() => graphql_1.Int, {
|
|
11
|
+
description: '成員可讀取的簽核單中,進行中的件數',
|
|
12
|
+
}),
|
|
11
13
|
tslib_1.__metadata("design:type", Number)
|
|
12
14
|
], WorkflowDashboardSummaryObject.prototype, "activeInstanceCount", void 0);
|
|
13
15
|
tslib_1.__decorate([
|
|
14
|
-
(0, graphql_1.Field)(() => graphql_1.Int
|
|
16
|
+
(0, graphql_1.Field)(() => graphql_1.Int, {
|
|
17
|
+
description: '成員可讀取的簽核單中,已核准的件數',
|
|
18
|
+
}),
|
|
15
19
|
tslib_1.__metadata("design:type", Number)
|
|
16
20
|
], WorkflowDashboardSummaryObject.prototype, "completedInstanceCount", void 0);
|
|
17
21
|
tslib_1.__decorate([
|
|
18
|
-
(0, graphql_1.Field)(() => graphql_1.Int
|
|
22
|
+
(0, graphql_1.Field)(() => graphql_1.Int, {
|
|
23
|
+
description: '本人目前的待辦任務中,已超過 SLA 期限的件數(與待簽清單使用同一套判斷)',
|
|
24
|
+
}),
|
|
19
25
|
tslib_1.__metadata("design:type", Number)
|
|
20
26
|
], WorkflowDashboardSummaryObject.prototype, "overdueTaskCount", void 0);
|
|
21
27
|
tslib_1.__decorate([
|
|
22
|
-
(0, graphql_1.Field)(() => graphql_1.Int
|
|
28
|
+
(0, graphql_1.Field)(() => graphql_1.Int, {
|
|
29
|
+
description: '本人目前的待辦任務數(與待簽清單一致)',
|
|
30
|
+
}),
|
|
23
31
|
tslib_1.__metadata("design:type", Number)
|
|
24
32
|
], WorkflowDashboardSummaryObject.prototype, "pendingTaskCount", void 0);
|
|
25
33
|
tslib_1.__decorate([
|
|
26
|
-
(0, graphql_1.Field)(() => graphql_1.Int
|
|
34
|
+
(0, graphql_1.Field)(() => graphql_1.Int, {
|
|
35
|
+
description: '成員可讀取的簽核單中,已駁回的件數',
|
|
36
|
+
}),
|
|
27
37
|
tslib_1.__metadata("design:type", Number)
|
|
28
38
|
], WorkflowDashboardSummaryObject.prototype, "rejectedInstanceCount", void 0);
|
|
29
39
|
tslib_1.__decorate([
|
|
30
|
-
(0, graphql_1.Field)(() => graphql_1.Int
|
|
40
|
+
(0, graphql_1.Field)(() => graphql_1.Int, {
|
|
41
|
+
description: '成員可讀取的簽核單總件數',
|
|
42
|
+
}),
|
|
31
43
|
tslib_1.__metadata("design:type", Number)
|
|
32
44
|
], WorkflowDashboardSummaryObject.prototype, "totalInstanceCount", void 0);
|
|
33
45
|
exports.WorkflowDashboardSummaryObject = WorkflowDashboardSummaryObject = tslib_1.__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-dashboard-summary.object.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/workflow-engine/workflow-dashboard-summary.object.ts"],"names":[],"mappings":";;;;AAAA,6CAAyD;AAGlD,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;
|
|
1
|
+
{"version":3,"file":"workflow-dashboard-summary.object.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/workflow-engine/workflow-dashboard-summary.object.ts"],"names":[],"mappings":";;;;AAAA,6CAAyD;AAGlD,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;CA+B1C,CAAA;AA/BY,wEAA8B;AAIzC;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;QAChB,WAAW,EAAE,mBAAmB;KACjC,CAAC;;2EAC2B;AAK7B;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;QAChB,WAAW,EAAE,mBAAmB;KACjC,CAAC;;8EAC8B;AAMhC;IAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;QAChB,WAAW,EACT,wCAAwC;KAC3C,CAAC;;wEACwB;AAK1B;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;QAChB,WAAW,EAAE,qBAAqB;KACnC,CAAC;;wEACwB;AAK1B;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;QAChB,WAAW,EAAE,mBAAmB;KACjC,CAAC;;6EAC6B;AAK/B;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;QAChB,WAAW,EAAE,cAAc;KAC5B,CAAC;;0EAC0B;yCA9BjB,8BAA8B;IAD1C,IAAA,oBAAU,EAAC,0BAA0B,CAAC;GAC1B,8BAA8B,CA+B1C"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { DynamicModule, Provider } from '@nestjs/common';
|
|
2
|
-
import { ModuleMetadata } from '@nestjs/common/interfaces';
|
|
1
|
+
import { DynamicModule, ModuleMetadata, Provider } from '@nestjs/common';
|
|
3
2
|
import { BPMWorkflowServiceTaskDispatcher } from './workflow-service-task-dispatcher.token';
|
|
4
3
|
export interface WorkflowEngineModuleOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
5
4
|
readonly serviceTaskDispatcherProvider?: Provider<BPMWorkflowServiceTaskDispatcher>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-engine.module.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/workflow-engine/workflow-engine.module.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"workflow-engine.module.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/workflow-engine/workflow-engine.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAKwB;AACxB,6CAAgD;AAChD,oEAAgE;AAChE,uEAAmE;AACnE,2FAAqF;AACrF,yFAAoF;AACpF,6EAAyE;AACzE,6EAAyE;AACzE,qEAAgE;AAChE,oEAAgE;AAChE,yEAAqE;AACrE,mGAA6F;AAC7F,mFAA8E;AAC9E,+DAA0D;AAC1D,qEAAgE;AAChE,yEAAoE;AACpE,iEAA4D;AAC5D,mEAA8D;AAC9D,+CAA2C;AAC3C,2EAAsE;AACtE,uEAAkE;AAClE,uEAAkE;AAClE,qEAAuE;AAEvE,mEAA8D;AA2CvD,IAAM,oBAAoB,4BAA1B,MAAM,oBAAoB;IAC/B,MAAM,CAAC,OAAO,CAAC,UAAuC,EAAE;QACtD,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;YACpD,MAAM,EAAE,sBAAoB;YAC5B,qEAAqE;YACrE,wEAAwE;YACxE,uEAAuE;YACvE,SAAS,EAAE,OAAO,CAAC,6BAA6B;gBAC9C,CAAC,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC;gBACzC,CAAC,CAAC,EAAE;SACP,CAAC;IACJ,CAAC;CACF,CAAA;AAbY,oDAAoB;+BAApB,oBAAoB;IAlChC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,kCAAe;YACf,oCAAgB;YAChB,wCAAkB;YAClB,kCAAe;YACf,uBAAa,CAAC,UAAU,CAAC;gBACvB,uCAAiB;gBACjB,6CAAoB;gBACpB,iDAAsB;gBACtB,iDAAsB;gBACtB,gEAA6B;gBAC7B,4DAA2B;gBAC3B,mDAAuB;gBACvB,oCAAgB;gBAChB,wCAAkB;gBAClB,+BAAa;gBACb,2CAAmB;gBACnB,yCAAkB;gBAClB,wBAAU;gBACV,2CAAmB;aACpB,CAAC;SACH;QACD,SAAS,EAAE;YACT,mDAAuB;YACvB,+CAAqB;YACrB,+CAAqB;YACrB;gBACE,OAAO,EAAE,oDAA2B;gBACpC,WAAW,EAAE,+CAAqB;aACnC;SACF;QACD,OAAO,EAAE,CAAC,oDAA2B,EAAE,+CAAqB,CAAC;KAC9D,CAAC;GACW,oBAAoB,CAahC"}
|
|
@@ -226,10 +226,20 @@ export declare class WorkflowEngineService {
|
|
|
226
226
|
readonly rejectedInstanceCount: number;
|
|
227
227
|
readonly totalInstanceCount: number;
|
|
228
228
|
}>;
|
|
229
|
+
private readDashboardOpenTasks;
|
|
229
230
|
listLaunchableApprovalTemplates(memberId: string): Promise<readonly ApprovalTemplateEntity[]>;
|
|
230
231
|
listWorkflowTokens(instanceId: string, scope?: WorkflowReadScope): Promise<readonly WorkflowTokenEntity[]>;
|
|
231
232
|
listTasks(instanceId: string, scope?: WorkflowReadScope): Promise<readonly TaskEntity[]>;
|
|
232
233
|
listInboxTasks(assigneeMemberId: string): Promise<readonly TaskEntity[]>;
|
|
234
|
+
/**
|
|
235
|
+
* The open tasks that are this member's own to act on — the single
|
|
236
|
+
* definition behind both the inbox list and the dashboard counters, so the
|
|
237
|
+
* two can never disagree. A task is theirs when it is assigned to them, or
|
|
238
|
+
* when they hold a PENDING or CLAIMED candidate row on it. A sequential
|
|
239
|
+
* chain's later candidates sit in WAITING until it is their turn, so a task
|
|
240
|
+
* that has not reached them is not theirs yet.
|
|
241
|
+
*/
|
|
242
|
+
private readOpenInboxTasks;
|
|
233
243
|
listApprovalHistoryTasks(assigneeMemberId: string): Promise<readonly TaskEntity[]>;
|
|
234
244
|
listTaskDecisions(taskId: string, scope?: WorkflowReadScope): Promise<readonly TaskDecisionEntity[]>;
|
|
235
245
|
listTaskCandidates(taskId: string, scope?: WorkflowReadScope): Promise<readonly TaskCandidateEntity[]>;
|
|
@@ -1804,14 +1804,13 @@ let WorkflowEngineService = class WorkflowEngineService {
|
|
|
1804
1804
|
view: workflow_engine_enums_1.ApprovalInstanceListViewEnum.ALL,
|
|
1805
1805
|
})).filter((instance) => isInstanceWithinRange(instance, options));
|
|
1806
1806
|
const instanceIds = instances.map((instance) => instance.id);
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
: [];
|
|
1807
|
+
// The task counters answer "what is waiting on me", not "what is open on
|
|
1808
|
+
// the instances I can see": a member who can read an instance as initiator,
|
|
1809
|
+
// reader or administrator is not thereby the one who has to act on it. So
|
|
1810
|
+
// they count the member's own inbox, narrowed to the instances in range.
|
|
1811
|
+
// Without a scope there is no member to speak for, and the counters keep
|
|
1812
|
+
// describing every open task.
|
|
1813
|
+
const openTasks = await this.readDashboardOpenTasks(scope, instanceIds);
|
|
1815
1814
|
const now = Date.now();
|
|
1816
1815
|
return {
|
|
1817
1816
|
activeInstanceCount: instances.filter((instance) => instance.state === workflow_engine_enums_1.ApprovalInstanceStateEnum.RUNNING).length,
|
|
@@ -1822,6 +1821,21 @@ let WorkflowEngineService = class WorkflowEngineService {
|
|
|
1822
1821
|
totalInstanceCount: instances.length,
|
|
1823
1822
|
};
|
|
1824
1823
|
}
|
|
1824
|
+
async readDashboardOpenTasks(scope, instanceIds) {
|
|
1825
|
+
if (!instanceIds.length) {
|
|
1826
|
+
return [];
|
|
1827
|
+
}
|
|
1828
|
+
if (scope) {
|
|
1829
|
+
const instanceIdSet = new Set(instanceIds);
|
|
1830
|
+
return (await this.readOpenInboxTasks(scope.memberId)).filter((task) => instanceIdSet.has(task.instanceId));
|
|
1831
|
+
}
|
|
1832
|
+
return this.taskRepository.find({
|
|
1833
|
+
where: {
|
|
1834
|
+
instanceId: (0, typeorm_2.In)(instanceIds),
|
|
1835
|
+
status: (0, typeorm_2.In)([workflow_engine_enums_1.TaskStatusEnum.PENDING, workflow_engine_enums_1.TaskStatusEnum.IN_PROGRESS]),
|
|
1836
|
+
},
|
|
1837
|
+
});
|
|
1838
|
+
}
|
|
1825
1839
|
async listLaunchableApprovalTemplates(memberId) {
|
|
1826
1840
|
const templates = await this.approvalTemplateRepository.find({
|
|
1827
1841
|
order: { updatedAt: 'DESC' },
|
|
@@ -1869,6 +1883,17 @@ let WorkflowEngineService = class WorkflowEngineService {
|
|
|
1869
1883
|
}));
|
|
1870
1884
|
}
|
|
1871
1885
|
async listInboxTasks(assigneeMemberId) {
|
|
1886
|
+
return this.attachTaskCandidateSummaries(await this.readOpenInboxTasks(assigneeMemberId));
|
|
1887
|
+
}
|
|
1888
|
+
/**
|
|
1889
|
+
* The open tasks that are this member's own to act on — the single
|
|
1890
|
+
* definition behind both the inbox list and the dashboard counters, so the
|
|
1891
|
+
* two can never disagree. A task is theirs when it is assigned to them, or
|
|
1892
|
+
* when they hold a PENDING or CLAIMED candidate row on it. A sequential
|
|
1893
|
+
* chain's later candidates sit in WAITING until it is their turn, so a task
|
|
1894
|
+
* that has not reached them is not theirs yet.
|
|
1895
|
+
*/
|
|
1896
|
+
async readOpenInboxTasks(assigneeMemberId) {
|
|
1872
1897
|
const directTasks = await this.taskRepository.find({
|
|
1873
1898
|
order: { createdAt: 'DESC' },
|
|
1874
1899
|
where: [
|
|
@@ -1918,7 +1943,7 @@ let WorkflowEngineService = class WorkflowEngineService {
|
|
|
1918
1943
|
})
|
|
1919
1944
|
: [];
|
|
1920
1945
|
const settledTaskIds = new Set(settledCandidateRows.map((candidate) => candidate.taskId));
|
|
1921
|
-
return
|
|
1946
|
+
return openTasks.filter((task) => !settledTaskIds.has(task.id));
|
|
1922
1947
|
}
|
|
1923
1948
|
async listApprovalHistoryTasks(assigneeMemberId) {
|
|
1924
1949
|
const directTasks = await this.taskRepository.find({
|