@unchainedshop/platform 2.2.2 → 2.2.3
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/lib/bulk-importer/createBulkImporter.d.ts +16 -2
- package/lib/bulk-importer/createBulkImporter.js.map +1 -1
- package/lib/setup/setupCarts.d.ts +5 -1
- package/lib/setup/setupCarts.js.map +1 -1
- package/lib/setup/setupTemplates.d.ts +8 -0
- package/lib/setup/setupTemplates.js +9 -1
- package/lib/setup/setupTemplates.js.map +1 -1
- package/lib/setup/setupWorkqueue.d.ts +9 -2
- package/lib/setup/setupWorkqueue.js +2 -2
- package/lib/setup/setupWorkqueue.js.map +1 -1
- package/lib/startPlatform.d.ts +27 -2
- package/lib/startPlatform.js +1 -2
- package/lib/startPlatform.js.map +1 -1
- package/package.json +11 -11
- package/src/bulk-importer/createBulkImporter.ts +21 -2
- package/src/setup/setupCarts.ts +5 -1
- package/src/setup/setupTemplates.ts +9 -1
- package/src/setup/setupWorkqueue.ts +14 -3
- package/src/startPlatform.ts +28 -6
|
@@ -1,4 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { BulkImporter } from '@unchainedshop/types/core.js';
|
|
1
|
+
import { BulkOperationBase } from 'mongodb';
|
|
2
|
+
import { BulkImporter, UnchainedCore } from '@unchainedshop/types/core.js';
|
|
3
|
+
export type BulkImportOperationResult = {
|
|
4
|
+
entity: string;
|
|
5
|
+
operation: string;
|
|
6
|
+
success: boolean;
|
|
7
|
+
};
|
|
8
|
+
export type BulkImportOperation = (payload: any, options: {
|
|
9
|
+
bulk: (collection: string) => BulkOperationBase;
|
|
10
|
+
createShouldUpsertIfIDExists?: boolean;
|
|
11
|
+
skipCacheInvalidation?: boolean;
|
|
12
|
+
logger?: any;
|
|
13
|
+
}, unchainedAPI: UnchainedCore) => Promise<BulkImportOperationResult>;
|
|
14
|
+
export type BulkImportHandler = {
|
|
15
|
+
[x: string]: BulkImportOperation;
|
|
16
|
+
};
|
|
3
17
|
export declare const getOperation: (entity: string, operation: string) => BulkImportOperation;
|
|
4
18
|
export declare const createBulkImporterFactory: (db: any, bulkImporterOptions: any) => BulkImporter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createBulkImporter.js","sourceRoot":"","sources":["../../src/bulk-importer/createBulkImporter.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"createBulkImporter.js","sourceRoot":"","sources":["../../src/bulk-importer/createBulkImporter.ts"],"names":[],"mappings":"AAAA,OAAO,OAA8B,MAAM,SAAS,CAAC;AAErD,OAAO,KAAK,kBAAkB,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,cAAc,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAC;AAsB/D,IAAI,qBAAqB,GAAsC,EAAE,CAAC;AAElE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,SAAiB,EAAuB,EAAE;IACrF,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,UAAU,MAAM,UAAU,CAAC,CAAC;KAC7C;IAED,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAwB,CAAC;IAEnE,IAAI,CAAC,eAAe,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE;QAC7D,MAAM,IAAI,KAAK,CAAC,aAAa,SAAS,eAAe,MAAM,UAAU,CAAC,CAAC;KACxE;IAED,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EAAE,EAAE,mBAAwB,EAAgB,EAAE;IACtF,2BAA2B;IAC3B,aAAa;IACb,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC;IAE5C,2BAA2B;IAC3B,IAAI,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAC/B,IAAI,QAAQ,EAAE;QACZ,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,sBAAsB;QAC1E,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC;KACtD;IAED,0GAA0G;IAC1G,MAAM,kBAAkB,GAAG,IAAI,YAAY,CAAC,EAAE,EAAE;QAC9C,UAAU,EAAE,sBAAsB;QAClC,cAAc,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;KAChC,CAAC,CAAC;IAEH,qBAAqB,GAAG;QACtB,UAAU,EAAE,kBAAkB;QAC9B,OAAO,EAAE,eAAe;QACxB,MAAM,EAAE,cAAc;QACtB,GAAG,CAAC,mBAAmB,EAAE,QAAQ,IAAI,EAAE,CAAC;KACzC,CAAC;IAEF,MAAM,kBAAkB,GAAuC,CAAC,OAAO,EAAE,EAAE;QACzE,MAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,MAAM,iBAAiB,GAAG,EAAE,CAAC;QAC7B,MAAM,mBAAmB,GAAG,EAAE,CAAC;QAC/B,MAAM,EAAE,MAAM,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC;QAEhF,MAAM,IAAI,GAAG,CAAC,cAAsB,EAAE,EAAE;YACtC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YACjD,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;gBACjC,cAAc,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC,uBAAuB,EAAE,CAAC;YACxE,OAAO,cAAc,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC,CAAC;QAEF,MAAM,CAAC,IAAI,CACT,qEAAqE,4BAA4B,0BAA0B,qBAAqB,EAAE,CACnJ,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAA2B,EAAE,EAAE;gBACpD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;gBAEhD,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAEhD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,QAAQ,CAAC;gBAEjD,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,IAAI,MAAM,IAAI,SAAS,YAAY,CAAC,CAAC;gBAChE,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,IAAI,MAAM,IAAI,SAAS,SAAS,EAAE;oBAC3D,KAAK,EAAE,SAAS;iBACjB,CAAC,CAAC;gBAEH,IAAI;oBACF,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;oBACjE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;wBAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;oBACnE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;wBAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;oBACzF,mBAAmB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACvD,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,IAAI,MAAM,IAAI,SAAS,YAAY,CAAC,CAAC;iBACjE;gBAAC,OAAO,CAAC,EAAE;oBACV,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,IAAI,MAAM,IAAI,SAAS,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC7E,iBAAiB,CAAC,IAAI,CAAC;wBACrB,SAAS;wBACT,MAAM;wBACN,SAAS;wBACT,SAAS,EAAE,CAAC,CAAC,IAAI;wBACjB,YAAY,EAAE,CAAC,CAAC,OAAO;qBACxB,CAAC,CAAC;iBACJ;wBAAS;oBACR,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,IAAI,MAAM,IAAI,SAAS,SAAS,EAAE;wBAC3D,KAAK,EAAE,SAAS;qBACjB,CAAC,CAAC;iBACJ;YACH,CAAC;YACD,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,CAAC,IAAI,CAAC,gCAAgC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAEtF,MAAM,uBAAuB,GAAG,MAAM,OAAO,CAAC,UAAU,CACtD,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CACjE,CAAC;gBACF,MAAM,gBAAgB,GAAG;oBACvB,mBAAmB;oBACnB,uBAAuB;iBACxB,CAAC;gBACF,IAAI,iBAAiB,EAAE,MAAM,EAAE;oBAC7B,MAAM,CAAC,KAAK,CACV,GAAG,iBAAiB,CAAC,MAAM,qEAAqE,CACjG,CAAC;oBACF,MAAM,MAAM,GAAG,EAAE,iBAAiB,EAAE,CAAC;oBACrC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;iBACnC;gBACD,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;gBAC9C,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAClC,CAAC;YACD,gBAAgB,EAAE,KAAK,EAAE,YAA2B,EAAE,EAAE;gBACtD,IAAI,qBAAqB;oBAAE,OAAO;gBAClC,MAAM,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5F,MAAM,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;YACvE,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO;QACL,kBAAkB;QAClB,kBAAkB;KACnB,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { UnchainedCore } from '@unchainedshop/types/core.js';
|
|
2
|
-
|
|
2
|
+
export interface SetupCartsOptions {
|
|
3
|
+
invalidateProviders?: boolean;
|
|
4
|
+
providerInvalidationMaxAgeDays?: number;
|
|
5
|
+
assignCartForUsers?: boolean;
|
|
6
|
+
}
|
|
3
7
|
export declare const setupCarts: (unchainedAPI: UnchainedCore, options?: SetupCartsOptions) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupCarts.js","sourceRoot":"","sources":["../../src/setup/setupCarts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setupCarts.js","sourceRoot":"","sources":["../../src/setup/setupCarts.ts"],"names":[],"mappings":"AAOA,MAAM,EAAE,uCAAuC,EAAE,+BAA+B,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAEjG,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,YAA2B,EAAE,UAA6B,EAAE,EAAE,EAAE;IAC/F,IAAI,OAAO,CAAC,mBAAmB,IAAI,CAAC,uCAAuC,EAAE;QAC3E,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CACnD,YAAY,EACZ,OAAO,CAAC,8BAA8B,CACvC,CAAC;KACH;IAED,IAAI,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,+BAA+B,CAAC,EAAE;QAC1E,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE7D,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACjB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAE3D,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAClD,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,EACrC,YAAY,CACb,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;KACH;AACH,CAAC,CAAC"}
|
|
@@ -1 +1,9 @@
|
|
|
1
|
+
export declare enum MessageTypes {
|
|
2
|
+
ACCOUNT_ACTION = "ACCOUNT_ACTION",
|
|
3
|
+
DELIVERY = "DELIVERY",
|
|
4
|
+
ORDER_CONFIRMATION = "ORDER_CONFIRMATION",
|
|
5
|
+
ORDER_REJECTION = "ORDER_REJECTION",
|
|
6
|
+
QUOTATION_STATUS = "QUOTATION_STATUS",
|
|
7
|
+
ENROLLMENT_STATUS = "ENROLLMENT_STATUS"
|
|
8
|
+
}
|
|
1
9
|
export declare const setupTemplates: () => void;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { MessageTypes } from '@unchainedshop/types/platform.js';
|
|
2
1
|
import { MessagingDirector } from '@unchainedshop/core-messaging';
|
|
3
2
|
import { resolveOrderRejectionTemplate } from '../templates/resolveOrderRejectionTemplate.js';
|
|
4
3
|
import { resolveAccountActionTemplate } from '../templates/resolveAccountActionTemplate.js';
|
|
@@ -6,6 +5,15 @@ import { resolveForwardDeliveryTemplate } from '../templates/resolveForwardDeliv
|
|
|
6
5
|
import { resolveOrderConfirmationTemplate } from '../templates/resolveOrderConfirmationTemplate.js';
|
|
7
6
|
import { resolveQuotationStatusTemplate } from '../templates/resolveQuotationStatusTemplate.js';
|
|
8
7
|
import { resolveEnrollmentStatusTemplate } from '../templates/resolveEnrollmentStatusTemplate.js';
|
|
8
|
+
export var MessageTypes;
|
|
9
|
+
(function (MessageTypes) {
|
|
10
|
+
MessageTypes["ACCOUNT_ACTION"] = "ACCOUNT_ACTION";
|
|
11
|
+
MessageTypes["DELIVERY"] = "DELIVERY";
|
|
12
|
+
MessageTypes["ORDER_CONFIRMATION"] = "ORDER_CONFIRMATION";
|
|
13
|
+
MessageTypes["ORDER_REJECTION"] = "ORDER_REJECTION";
|
|
14
|
+
MessageTypes["QUOTATION_STATUS"] = "QUOTATION_STATUS";
|
|
15
|
+
MessageTypes["ENROLLMENT_STATUS"] = "ENROLLMENT_STATUS";
|
|
16
|
+
})(MessageTypes = MessageTypes || (MessageTypes = {}));
|
|
9
17
|
export const setupTemplates = () => {
|
|
10
18
|
MessagingDirector.registerTemplate(MessageTypes.ACCOUNT_ACTION, resolveAccountActionTemplate);
|
|
11
19
|
MessagingDirector.registerTemplate(MessageTypes.DELIVERY, resolveForwardDeliveryTemplate);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupTemplates.js","sourceRoot":"","sources":["../../src/setup/setupTemplates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"setupTemplates.js","sourceRoot":"","sources":["../../src/setup/setupTemplates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,+CAA+C,CAAC;AAC9F,OAAO,EAAE,4BAA4B,EAAE,MAAM,8CAA8C,CAAC;AAC5F,OAAO,EAAE,8BAA8B,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,EAAE,gCAAgC,EAAE,MAAM,kDAAkD,CAAC;AACpG,OAAO,EAAE,8BAA8B,EAAE,MAAM,gDAAgD,CAAC;AAChG,OAAO,EAAE,+BAA+B,EAAE,MAAM,iDAAiD,CAAC;AAElG,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,iDAAiC,CAAA;IACjC,qCAAqB,CAAA;IACrB,yDAAyC,CAAA;IACzC,mDAAmC,CAAA;IACnC,qDAAqC,CAAA;IACrC,uDAAuC,CAAA;AACzC,CAAC,EAPW,YAAY,GAAZ,YAAY,KAAZ,YAAY,QAOvB;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,EAAE,4BAA4B,CAAC,CAAC;IAC9F,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,QAAQ,EAAE,8BAA8B,CAAC,CAAC;IAC1F,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,kBAAkB,EAAE,gCAAgC,CAAC,CAAC;IACtG,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,eAAe,EAAE,6BAA6B,CAAC,CAAC;IAChG,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,gBAAgB,EAAE,8BAA8B,CAAC,CAAC;IAClG,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,iBAAiB,EAAE,+BAA+B,CAAC,CAAC;AACtG,CAAC,CAAC"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import { SetupWorkqueueOptions } from '@unchainedshop/types/platform.js';
|
|
2
1
|
import { UnchainedCore } from '@unchainedshop/types/core.js';
|
|
3
|
-
|
|
2
|
+
import { WorkData, WorkerSchedule } from '@unchainedshop/types/worker.js';
|
|
3
|
+
export interface SetupWorkqueueOptions {
|
|
4
|
+
batchCount?: number;
|
|
5
|
+
disableWorker?: boolean;
|
|
6
|
+
schedule?: WorkerSchedule;
|
|
7
|
+
workerId?: string;
|
|
8
|
+
retryInput?: (workData: WorkData, priorInput: Record<string, any>) => Promise<Record<string, any> | null>;
|
|
9
|
+
}
|
|
10
|
+
export declare const setupWorkqueue: (unchainedAPI: UnchainedCore, { workerId, batchCount, schedule, retryInput }?: SetupWorkqueueOptions) => {
|
|
4
11
|
start: () => void;
|
|
5
12
|
stop: () => void;
|
|
6
13
|
}[];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EventListenerWorker, FailedRescheduler, IntervalWorker } from '@unchainedshop/core-worker';
|
|
2
|
-
export const setupWorkqueue = (unchainedAPI, { workerId, batchCount, schedule } = {}) => {
|
|
2
|
+
export const setupWorkqueue = (unchainedAPI, { workerId, batchCount, schedule, retryInput } = {}) => {
|
|
3
3
|
const handlers = [
|
|
4
|
-
FailedRescheduler.actions(unchainedAPI),
|
|
4
|
+
FailedRescheduler.actions({ retryInput }, unchainedAPI),
|
|
5
5
|
EventListenerWorker.actions({ workerId }, unchainedAPI),
|
|
6
6
|
IntervalWorker.actions({ workerId, batchCount, schedule }, unchainedAPI),
|
|
7
7
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupWorkqueue.js","sourceRoot":"","sources":["../../src/setup/setupWorkqueue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setupWorkqueue.js","sourceRoot":"","sources":["../../src/setup/setupWorkqueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAepG,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,YAA2B,EAC3B,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,KAA4B,EAAE,EAC1E,EAAE;IACF,MAAM,QAAQ,GAAG;QACf,iBAAiB,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,EAAE,YAAY,CAAC;QACvD,mBAAmB,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC;QACvD,cAAc,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC;KACzE,CAAC;IAEF,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/C,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
|
package/lib/startPlatform.d.ts
CHANGED
|
@@ -1,6 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { UnchainedCore, UnchainedCoreOptions } from '@unchainedshop/types/core.js';
|
|
2
|
+
import { AdminUiConfig } from '@unchainedshop/types/api.js';
|
|
3
|
+
import { BulkImportHandler } from './bulk-importer/createBulkImporter.js';
|
|
4
|
+
import { SetupCartsOptions } from './setup/setupCarts.js';
|
|
5
|
+
import { MessageTypes } from './setup/setupTemplates.js';
|
|
6
|
+
import { SetupWorkqueueOptions } from './setup/setupWorkqueue.js';
|
|
3
7
|
export { MessageTypes };
|
|
8
|
+
export type PlatformOptions = {
|
|
9
|
+
typeDefs?: Array<string>;
|
|
10
|
+
resolvers?: any;
|
|
11
|
+
schema?: any;
|
|
12
|
+
plugins?: any[];
|
|
13
|
+
cache?: any;
|
|
14
|
+
bulkImporter?: {
|
|
15
|
+
handlers?: Record<string, BulkImportHandler>;
|
|
16
|
+
};
|
|
17
|
+
context?: any;
|
|
18
|
+
modules?: UnchainedCoreOptions['modules'];
|
|
19
|
+
services?: UnchainedCoreOptions['modules'];
|
|
20
|
+
options?: UnchainedCoreOptions['options'];
|
|
21
|
+
rolesOptions?: UnchainedCoreOptions['roleOptions'];
|
|
22
|
+
workQueueOptions?: SetupWorkqueueOptions & SetupCartsOptions;
|
|
23
|
+
introspection?: boolean;
|
|
24
|
+
playground?: boolean;
|
|
25
|
+
tracing?: boolean;
|
|
26
|
+
cacheControl?: any;
|
|
27
|
+
adminUiConfig?: AdminUiConfig;
|
|
28
|
+
};
|
|
4
29
|
export declare const queueWorkers: Array<any>;
|
|
5
30
|
export declare const startPlatform: ({ modules, services, typeDefs, resolvers, options, adminUiConfig, rolesOptions, bulkImporter: bulkImporterOptions, schema, plugins, cache, workQueueOptions, context, introspection, playground, tracing, cacheControl, }: PlatformOptions) => Promise<{
|
|
6
31
|
unchainedAPI: UnchainedCore;
|
package/lib/startPlatform.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { MessageTypes } from '@unchainedshop/types/platform.js';
|
|
2
1
|
import { startAPIServer, roles } from '@unchainedshop/api';
|
|
3
2
|
import { initCore } from '@unchainedshop/core';
|
|
4
3
|
import { initDb } from '@unchainedshop/mongodb';
|
|
@@ -9,7 +8,7 @@ import { createBulkImporterFactory } from './bulk-importer/createBulkImporter.js
|
|
|
9
8
|
import { runMigrations } from './migrations/runMigrations.js';
|
|
10
9
|
import { setupAccounts } from './setup/setupAccounts.js';
|
|
11
10
|
import { setupCarts } from './setup/setupCarts.js';
|
|
12
|
-
import { setupTemplates } from './setup/setupTemplates.js';
|
|
11
|
+
import { setupTemplates, MessageTypes } from './setup/setupTemplates.js';
|
|
13
12
|
import { setupWorkqueue } from './setup/setupWorkqueue.js';
|
|
14
13
|
import { createMigrationRepository } from './migrations/migrationRepository.js';
|
|
15
14
|
export { MessageTypes };
|
package/lib/startPlatform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startPlatform.js","sourceRoot":"","sources":["../src/startPlatform.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"startPlatform.js","sourceRoot":"","sources":["../src/startPlatform.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unchainedshop/platform",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.3",
|
|
4
4
|
"main": "lib/platform-index.js",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./lib/platform-index.js",
|
|
@@ -31,22 +31,22 @@
|
|
|
31
31
|
},
|
|
32
32
|
"homepage": "https://github.com/unchainedshop/unchained#readme",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@unchainedshop/api": "^2.2.
|
|
35
|
-
"@unchainedshop/core": "^2.2.
|
|
36
|
-
"@unchainedshop/events": "^2.2.
|
|
37
|
-
"@unchainedshop/file-upload": "^2.2.
|
|
38
|
-
"@unchainedshop/logger": "^2.2.
|
|
39
|
-
"@unchainedshop/mongodb": "^2.2.
|
|
40
|
-
"@unchainedshop/plugins": "^2.2.
|
|
41
|
-
"@unchainedshop/roles": "^2.2.
|
|
42
|
-
"@unchainedshop/utils": "^2.2.
|
|
34
|
+
"@unchainedshop/api": "^2.2.3",
|
|
35
|
+
"@unchainedshop/core": "^2.2.3",
|
|
36
|
+
"@unchainedshop/events": "^2.2.3",
|
|
37
|
+
"@unchainedshop/file-upload": "^2.2.3",
|
|
38
|
+
"@unchainedshop/logger": "^2.2.3",
|
|
39
|
+
"@unchainedshop/mongodb": "^2.2.3",
|
|
40
|
+
"@unchainedshop/plugins": "^2.2.3",
|
|
41
|
+
"@unchainedshop/roles": "^2.2.3",
|
|
42
|
+
"@unchainedshop/utils": "^2.2.3",
|
|
43
43
|
"event-iterator": "^2.0.0",
|
|
44
44
|
"JSONStream": "^1.3.5",
|
|
45
45
|
"moniker": "0.1.2"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@types/node": "^18.16.16",
|
|
49
|
-
"@unchainedshop/types": "^2.2.
|
|
49
|
+
"@unchainedshop/types": "^2.2.3",
|
|
50
50
|
"cross-env": "^7.0.3",
|
|
51
51
|
"jest": "^29.5.0",
|
|
52
52
|
"ts-jest": "^29.1.0",
|
|
@@ -1,10 +1,29 @@
|
|
|
1
|
-
import mongodb from 'mongodb';
|
|
2
|
-
import { BulkImportHandler, BulkImportOperation } from '@unchainedshop/types/platform.js';
|
|
1
|
+
import mongodb, { BulkOperationBase } from 'mongodb';
|
|
3
2
|
import { BulkImporter, UnchainedCore } from '@unchainedshop/types/core.js';
|
|
4
3
|
import * as AssortmentHandlers from './handlers/assortment/index.js';
|
|
5
4
|
import * as FilterHandlers from './handlers/filter/index.js';
|
|
6
5
|
import * as ProductHandlers from './handlers/product/index.js';
|
|
7
6
|
|
|
7
|
+
export type BulkImportOperationResult = {
|
|
8
|
+
entity: string;
|
|
9
|
+
operation: string;
|
|
10
|
+
success: boolean;
|
|
11
|
+
};
|
|
12
|
+
export type BulkImportOperation = (
|
|
13
|
+
payload: any,
|
|
14
|
+
options: {
|
|
15
|
+
bulk: (collection: string) => BulkOperationBase;
|
|
16
|
+
createShouldUpsertIfIDExists?: boolean;
|
|
17
|
+
skipCacheInvalidation?: boolean;
|
|
18
|
+
logger?: any;
|
|
19
|
+
},
|
|
20
|
+
unchainedAPI: UnchainedCore,
|
|
21
|
+
) => Promise<BulkImportOperationResult>;
|
|
22
|
+
|
|
23
|
+
export type BulkImportHandler = {
|
|
24
|
+
[x: string]: BulkImportOperation;
|
|
25
|
+
};
|
|
26
|
+
|
|
8
27
|
let bulkOperationHandlers: Record<string, BulkImportHandler> = {};
|
|
9
28
|
|
|
10
29
|
export const getOperation = (entity: string, operation: string): BulkImportOperation => {
|
package/src/setup/setupCarts.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { UnchainedCore } from '@unchainedshop/types/core.js';
|
|
2
|
-
import { SetupCartsOptions } from '@unchainedshop/types/platform.js';
|
|
3
2
|
|
|
3
|
+
export interface SetupCartsOptions {
|
|
4
|
+
invalidateProviders?: boolean;
|
|
5
|
+
providerInvalidationMaxAgeDays?: number;
|
|
6
|
+
assignCartForUsers?: boolean;
|
|
7
|
+
}
|
|
4
8
|
const { UNCHAINED_DISABLE_PROVIDER_INVALIDATION, UNCHAINED_ASSIGN_CART_FOR_USERS } = process.env;
|
|
5
9
|
|
|
6
10
|
export const setupCarts = async (unchainedAPI: UnchainedCore, options: SetupCartsOptions = {}) => {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { MessageTypes } from '@unchainedshop/types/platform.js';
|
|
2
1
|
import { MessagingDirector } from '@unchainedshop/core-messaging';
|
|
3
2
|
import { resolveOrderRejectionTemplate } from '../templates/resolveOrderRejectionTemplate.js';
|
|
4
3
|
import { resolveAccountActionTemplate } from '../templates/resolveAccountActionTemplate.js';
|
|
@@ -7,6 +6,15 @@ import { resolveOrderConfirmationTemplate } from '../templates/resolveOrderConfi
|
|
|
7
6
|
import { resolveQuotationStatusTemplate } from '../templates/resolveQuotationStatusTemplate.js';
|
|
8
7
|
import { resolveEnrollmentStatusTemplate } from '../templates/resolveEnrollmentStatusTemplate.js';
|
|
9
8
|
|
|
9
|
+
export enum MessageTypes {
|
|
10
|
+
ACCOUNT_ACTION = 'ACCOUNT_ACTION',
|
|
11
|
+
DELIVERY = 'DELIVERY',
|
|
12
|
+
ORDER_CONFIRMATION = 'ORDER_CONFIRMATION',
|
|
13
|
+
ORDER_REJECTION = 'ORDER_REJECTION',
|
|
14
|
+
QUOTATION_STATUS = 'QUOTATION_STATUS',
|
|
15
|
+
ENROLLMENT_STATUS = 'ENROLLMENT_STATUS',
|
|
16
|
+
}
|
|
17
|
+
|
|
10
18
|
export const setupTemplates = () => {
|
|
11
19
|
MessagingDirector.registerTemplate(MessageTypes.ACCOUNT_ACTION, resolveAccountActionTemplate);
|
|
12
20
|
MessagingDirector.registerTemplate(MessageTypes.DELIVERY, resolveForwardDeliveryTemplate);
|
|
@@ -1,13 +1,24 @@
|
|
|
1
|
-
import { SetupWorkqueueOptions } from '@unchainedshop/types/platform.js';
|
|
2
1
|
import { EventListenerWorker, FailedRescheduler, IntervalWorker } from '@unchainedshop/core-worker';
|
|
3
2
|
import { UnchainedCore } from '@unchainedshop/types/core.js';
|
|
3
|
+
import { WorkData, WorkerSchedule } from '@unchainedshop/types/worker.js';
|
|
4
|
+
|
|
5
|
+
export interface SetupWorkqueueOptions {
|
|
6
|
+
batchCount?: number;
|
|
7
|
+
disableWorker?: boolean;
|
|
8
|
+
schedule?: WorkerSchedule;
|
|
9
|
+
workerId?: string;
|
|
10
|
+
retryInput?: (
|
|
11
|
+
workData: WorkData,
|
|
12
|
+
priorInput: Record<string, any>,
|
|
13
|
+
) => Promise<Record<string, any> | null>;
|
|
14
|
+
}
|
|
4
15
|
|
|
5
16
|
export const setupWorkqueue = (
|
|
6
17
|
unchainedAPI: UnchainedCore,
|
|
7
|
-
{ workerId, batchCount, schedule }: SetupWorkqueueOptions = {},
|
|
18
|
+
{ workerId, batchCount, schedule, retryInput }: SetupWorkqueueOptions = {},
|
|
8
19
|
) => {
|
|
9
20
|
const handlers = [
|
|
10
|
-
FailedRescheduler.actions(unchainedAPI),
|
|
21
|
+
FailedRescheduler.actions({ retryInput }, unchainedAPI),
|
|
11
22
|
EventListenerWorker.actions({ workerId }, unchainedAPI),
|
|
12
23
|
IntervalWorker.actions({ workerId, batchCount, schedule }, unchainedAPI),
|
|
13
24
|
];
|
package/src/startPlatform.ts
CHANGED
|
@@ -1,21 +1,43 @@
|
|
|
1
|
-
import { SetupWorkqueueOptions, PlatformOptions, MessageTypes } from '@unchainedshop/types/platform.js';
|
|
2
1
|
import { startAPIServer, roles } from '@unchainedshop/api';
|
|
3
2
|
import { initCore } from '@unchainedshop/core';
|
|
4
3
|
import { initDb } from '@unchainedshop/mongodb';
|
|
5
4
|
import { createLogger } from '@unchainedshop/logger';
|
|
6
|
-
import { UnchainedCore } from '@unchainedshop/types/core.js';
|
|
5
|
+
import { UnchainedCore, UnchainedCoreOptions } from '@unchainedshop/types/core.js';
|
|
7
6
|
import { getRegisteredEvents } from '@unchainedshop/events';
|
|
8
7
|
import { WorkerDirector } from '@unchainedshop/core-worker';
|
|
9
|
-
import {
|
|
8
|
+
import { AdminUiConfig } from '@unchainedshop/types/api.js';
|
|
9
|
+
import { BulkImportHandler, createBulkImporterFactory } from './bulk-importer/createBulkImporter.js';
|
|
10
10
|
import { runMigrations } from './migrations/runMigrations.js';
|
|
11
11
|
import { setupAccounts } from './setup/setupAccounts.js';
|
|
12
|
-
import { setupCarts } from './setup/setupCarts.js';
|
|
13
|
-
import { setupTemplates } from './setup/setupTemplates.js';
|
|
14
|
-
import { setupWorkqueue } from './setup/setupWorkqueue.js';
|
|
12
|
+
import { SetupCartsOptions, setupCarts } from './setup/setupCarts.js';
|
|
13
|
+
import { setupTemplates, MessageTypes } from './setup/setupTemplates.js';
|
|
14
|
+
import { SetupWorkqueueOptions, setupWorkqueue } from './setup/setupWorkqueue.js';
|
|
15
15
|
import { createMigrationRepository } from './migrations/migrationRepository.js';
|
|
16
16
|
|
|
17
17
|
export { MessageTypes };
|
|
18
18
|
|
|
19
|
+
export type PlatformOptions = {
|
|
20
|
+
typeDefs?: Array<string>;
|
|
21
|
+
resolvers?: any;
|
|
22
|
+
schema?: any;
|
|
23
|
+
plugins?: any[];
|
|
24
|
+
cache?: any;
|
|
25
|
+
bulkImporter?: {
|
|
26
|
+
handlers?: Record<string, BulkImportHandler>;
|
|
27
|
+
};
|
|
28
|
+
context?: any;
|
|
29
|
+
modules?: UnchainedCoreOptions['modules'];
|
|
30
|
+
services?: UnchainedCoreOptions['modules'];
|
|
31
|
+
options?: UnchainedCoreOptions['options'];
|
|
32
|
+
rolesOptions?: UnchainedCoreOptions['roleOptions'];
|
|
33
|
+
workQueueOptions?: SetupWorkqueueOptions & SetupCartsOptions;
|
|
34
|
+
introspection?: boolean;
|
|
35
|
+
playground?: boolean;
|
|
36
|
+
tracing?: boolean;
|
|
37
|
+
cacheControl?: any;
|
|
38
|
+
adminUiConfig?: AdminUiConfig;
|
|
39
|
+
};
|
|
40
|
+
|
|
19
41
|
const logger = createLogger('unchained');
|
|
20
42
|
|
|
21
43
|
const REQUIRED_ENV_VARIABLES = ['EMAIL_WEBSITE_NAME', 'EMAIL_WEBSITE_URL', 'EMAIL_FROM'];
|