@unchainedshop/core-warehousing 3.0.0-alpha6 → 3.0.0-rc.11
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/db/TokenSurrogateCollection.d.ts +19 -1
- package/lib/db/TokenSurrogateCollection.d.ts.map +1 -1
- package/lib/db/TokenSurrogateCollection.js +6 -0
- package/lib/db/TokenSurrogateCollection.js.map +1 -1
- package/lib/db/WarehousingProvidersCollection.d.ts +15 -2
- package/lib/db/WarehousingProvidersCollection.d.ts.map +1 -1
- package/lib/db/WarehousingProvidersCollection.js +5 -0
- package/lib/db/WarehousingProvidersCollection.js.map +1 -1
- package/lib/module/configureWarehousingModule.d.ts +32 -53
- package/lib/module/configureWarehousingModule.d.ts.map +1 -1
- package/lib/module/configureWarehousingModule.js +23 -139
- package/lib/module/configureWarehousingModule.js.map +1 -1
- package/lib/warehousing-index.d.ts +2 -5
- package/lib/warehousing-index.d.ts.map +1 -1
- package/lib/warehousing-index.js +2 -5
- package/lib/warehousing-index.js.map +1 -1
- package/package.json +13 -13
- package/src/db/TokenSurrogateCollection.ts +21 -1
- package/src/db/WarehousingProvidersCollection.ts +15 -2
- package/src/module/buildFindSelector.test.ts +1 -1
- package/src/module/configureWarehousingModule.ts +66 -290
- package/src/warehousing-index.ts +2 -6
- package/tsconfig.json +5 -7
- package/lib/director/WarehousingAdapter.d.ts +0 -3
- package/lib/director/WarehousingAdapter.d.ts.map +0 -1
- package/lib/director/WarehousingAdapter.js +0 -26
- package/lib/director/WarehousingAdapter.js.map +0 -1
- package/lib/director/WarehousingDirector.d.ts +0 -3
- package/lib/director/WarehousingDirector.d.ts.map +0 -1
- package/lib/director/WarehousingDirector.js +0 -143
- package/lib/director/WarehousingDirector.js.map +0 -1
- package/lib/director/WarehousingError.d.ts +0 -7
- package/lib/director/WarehousingError.d.ts.map +0 -1
- package/lib/director/WarehousingError.js +0 -8
- package/lib/director/WarehousingError.js.map +0 -1
- package/lib/director/WarehousingProviderType.d.ts +0 -5
- package/lib/director/WarehousingProviderType.d.ts.map +0 -1
- package/lib/director/WarehousingProviderType.js +0 -6
- package/lib/director/WarehousingProviderType.js.map +0 -1
- package/lib/types.d.ts +0 -100
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js +0 -19
- package/lib/types.js.map +0 -1
- package/src/director/WarehousingAdapter.ts +0 -39
- package/src/director/WarehousingDirector.ts +0 -153
- package/src/director/WarehousingError.ts +0 -6
- package/src/director/WarehousingProviderType.ts +0 -4
- package/src/types.ts +0 -116
|
@@ -1,4 +1,22 @@
|
|
|
1
1
|
import { mongodb } from '@unchainedshop/mongodb';
|
|
2
|
-
|
|
2
|
+
export type TokenSurrogate = {
|
|
3
|
+
_id?: string;
|
|
4
|
+
userId?: string;
|
|
5
|
+
walletAddress?: string;
|
|
6
|
+
invalidatedDate?: Date;
|
|
7
|
+
expiryDate?: Date;
|
|
8
|
+
quantity: number;
|
|
9
|
+
contractAddress: string;
|
|
10
|
+
chainId: string;
|
|
11
|
+
chainTokenId: string;
|
|
12
|
+
productId: string;
|
|
13
|
+
orderPositionId: string;
|
|
14
|
+
meta: any;
|
|
15
|
+
};
|
|
16
|
+
export declare enum TokenStatus {
|
|
17
|
+
CENTRALIZED = "CENTRALIZED",
|
|
18
|
+
EXPORTING = "EXPORTING",
|
|
19
|
+
DECENTRALIZED = "DECENTRALIZED"
|
|
20
|
+
}
|
|
3
21
|
export declare const TokenSurrogateCollection: (db: mongodb.Db) => Promise<mongodb.Collection<TokenSurrogate>>;
|
|
4
22
|
//# sourceMappingURL=TokenSurrogateCollection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenSurrogateCollection.d.ts","sourceRoot":"","sources":["../../src/db/TokenSurrogateCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"TokenSurrogateCollection.d.ts","sourceRoot":"","sources":["../../src/db/TokenSurrogateCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AAEjE,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAEF,oBAAY,WAAW;IACrB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,aAAa,kBAAkB;CAChC;AAED,eAAO,MAAM,wBAAwB,OAAc,OAAO,CAAC,EAAE,gDA2B5D,CAAC"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { buildDbIndexes } from '@unchainedshop/mongodb';
|
|
2
|
+
export var TokenStatus;
|
|
3
|
+
(function (TokenStatus) {
|
|
4
|
+
TokenStatus["CENTRALIZED"] = "CENTRALIZED";
|
|
5
|
+
TokenStatus["EXPORTING"] = "EXPORTING";
|
|
6
|
+
TokenStatus["DECENTRALIZED"] = "DECENTRALIZED";
|
|
7
|
+
})(TokenStatus || (TokenStatus = {}));
|
|
2
8
|
export const TokenSurrogateCollection = async (db) => {
|
|
3
9
|
const TokenSurrogates = db.collection('token_surrogates');
|
|
4
10
|
await buildDbIndexes(TokenSurrogates, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenSurrogateCollection.js","sourceRoot":"","sources":["../../src/db/TokenSurrogateCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"TokenSurrogateCollection.js","sourceRoot":"","sources":["../../src/db/TokenSurrogateCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAiBjE,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,0CAA2B,CAAA;IAC3B,sCAAuB,CAAA;IACvB,8CAA+B,CAAA;AACjC,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,EAAc,EAAE,EAAE;IAC/D,MAAM,eAAe,GAAG,EAAE,CAAC,UAAU,CAAiB,kBAAkB,CAAC,CAAC;IAE1E,MAAM,cAAc,CAAiB,eAAe,EAAE;QACpD;YACE,KAAK,EAAE;gBACL,YAAY,EAAE,CAAC;aAChB;SACF;QACD;YACE,KAAK,EAAE;gBACL,MAAM,EAAE,CAAC;aACV;SACF;QACD;YACE,KAAK,EAAE;gBACL,SAAS,EAAE,CAAC;aACb;SACF;QACD;YACE,KAAK,EAAE;gBACL,eAAe,EAAE,CAAC;aACnB;SACF;KACF,CAAC,CAAC;IAEH,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC"}
|
|
@@ -1,4 +1,17 @@
|
|
|
1
|
-
import { mongodb } from '@unchainedshop/mongodb';
|
|
2
|
-
|
|
1
|
+
import { mongodb, TimestampFields } from '@unchainedshop/mongodb';
|
|
2
|
+
export declare enum WarehousingProviderType {
|
|
3
|
+
PHYSICAL = "PHYSICAL",
|
|
4
|
+
VIRTUAL = "VIRTUAL"
|
|
5
|
+
}
|
|
6
|
+
export type WarehousingConfiguration = Array<{
|
|
7
|
+
key: string;
|
|
8
|
+
value: string;
|
|
9
|
+
}>;
|
|
10
|
+
export type WarehousingProvider = {
|
|
11
|
+
_id?: string;
|
|
12
|
+
type: WarehousingProviderType;
|
|
13
|
+
adapterKey: string;
|
|
14
|
+
configuration: WarehousingConfiguration;
|
|
15
|
+
} & TimestampFields;
|
|
3
16
|
export declare const WarehousingProvidersCollection: (db: mongodb.Db) => Promise<mongodb.Collection<WarehousingProvider>>;
|
|
4
17
|
//# sourceMappingURL=WarehousingProvidersCollection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WarehousingProvidersCollection.d.ts","sourceRoot":"","sources":["../../src/db/WarehousingProvidersCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"WarehousingProvidersCollection.d.ts","sourceRoot":"","sources":["../../src/db/WarehousingProvidersCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAElF,oBAAY,uBAAuB;IACjC,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB;AAED,MAAM,MAAM,wBAAwB,GAAG,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE7E,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,uBAAuB,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,wBAAwB,CAAC;CACzC,GAAG,eAAe,CAAC;AAEpB,eAAO,MAAM,8BAA8B,OAAc,OAAO,CAAC,EAAE,qDAsBlE,CAAC"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { buildDbIndexes } from '@unchainedshop/mongodb';
|
|
2
|
+
export var WarehousingProviderType;
|
|
3
|
+
(function (WarehousingProviderType) {
|
|
4
|
+
WarehousingProviderType["PHYSICAL"] = "PHYSICAL";
|
|
5
|
+
WarehousingProviderType["VIRTUAL"] = "VIRTUAL";
|
|
6
|
+
})(WarehousingProviderType || (WarehousingProviderType = {}));
|
|
2
7
|
export const WarehousingProvidersCollection = async (db) => {
|
|
3
8
|
const WarehousingProviders = db.collection('warehousing-providers');
|
|
4
9
|
await buildDbIndexes(WarehousingProviders, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WarehousingProvidersCollection.js","sourceRoot":"","sources":["../../src/db/WarehousingProvidersCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,cAAc,
|
|
1
|
+
{"version":3,"file":"WarehousingProvidersCollection.js","sourceRoot":"","sources":["../../src/db/WarehousingProvidersCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,cAAc,EAAmB,MAAM,wBAAwB,CAAC;AAElF,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,gDAAqB,CAAA;IACrB,8CAAmB,CAAA;AACrB,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,QAGlC;AAWD,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,EAAE,EAAc,EAAE,EAAE;IACrE,MAAM,oBAAoB,GAAG,EAAE,CAAC,UAAU,CAAsB,uBAAuB,CAAC,CAAC;IAEzF,MAAM,cAAc,CAAsB,oBAAoB,EAAE;QAC9D;YACE,KAAK,EAAE;gBACL,IAAI,EAAE,CAAC;aACR;SACF;QACD;YACE,KAAK,EAAE;gBACL,OAAO,EAAE,CAAC;aACX;SACF;QACD;YACE,KAAK,EAAE;gBACL,OAAO,EAAE,CAAC;aACX;SACF;KACF,CAAC,CAAC;IAEH,OAAO,oBAAoB,CAAC;AAC9B,CAAC,CAAC"}
|
|
@@ -1,67 +1,46 @@
|
|
|
1
|
-
import type { User } from '@unchainedshop/core-users';
|
|
2
|
-
import { UnchainedCore } from '@unchainedshop/core';
|
|
3
|
-
import { WarehousingContext, WarehousingProvider, WarehousingProviderQuery, WarehousingProviderType } from '../types.js';
|
|
4
1
|
import { mongodb, ModuleInput } from '@unchainedshop/mongodb';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export type
|
|
11
|
-
|
|
2
|
+
import { WarehousingProvider, WarehousingProviderType } from '../db/WarehousingProvidersCollection.js';
|
|
3
|
+
import { TokenSurrogate } from '../db/TokenSurrogateCollection.js';
|
|
4
|
+
type WarehousingProviderQuery = {
|
|
5
|
+
type?: WarehousingProviderType;
|
|
6
|
+
};
|
|
7
|
+
export declare const buildFindSelector: ({ type }?: WarehousingProviderQuery) => {
|
|
8
|
+
type: WarehousingProviderType;
|
|
9
|
+
deleted: any;
|
|
10
|
+
} | {
|
|
11
|
+
deleted: any;
|
|
12
|
+
type?: undefined;
|
|
13
|
+
};
|
|
14
|
+
export declare const configureWarehousingModule: ({ db }: ModuleInput<Record<string, never>>) => Promise<{
|
|
15
|
+
count: (query: WarehousingProviderQuery) => Promise<number>;
|
|
16
|
+
createTokens: (tokens: TokenSurrogate[]) => Promise<void>;
|
|
17
|
+
findProvider: ({ warehousingProviderId }: {
|
|
12
18
|
warehousingProviderId: string;
|
|
13
19
|
}, options?: mongodb.FindOptions) => Promise<WarehousingProvider>;
|
|
14
|
-
findToken: (
|
|
20
|
+
findToken: ({ tokenId }: {
|
|
15
21
|
tokenId: string;
|
|
16
22
|
}, options?: mongodb.FindOptions) => Promise<TokenSurrogate>;
|
|
17
|
-
|
|
18
|
-
|
|
23
|
+
findTokens: (selector: any, options?: mongodb.FindOptions) => Promise<Array<TokenSurrogate>>;
|
|
24
|
+
findTokensForUser: (params: {
|
|
25
|
+
userId: string;
|
|
26
|
+
} | {
|
|
27
|
+
walletAddresses: string[];
|
|
28
|
+
}, options?: mongodb.FindOptions) => Promise<Array<TokenSurrogate>>;
|
|
19
29
|
findProviders: (query: WarehousingProviderQuery, options?: mongodb.FindOptions) => Promise<Array<WarehousingProvider>>;
|
|
20
|
-
|
|
21
|
-
providerExists: (query: {
|
|
30
|
+
providerExists: ({ warehousingProviderId, }: {
|
|
22
31
|
warehousingProviderId: string;
|
|
23
32
|
}) => Promise<boolean>;
|
|
24
|
-
|
|
25
|
-
findInterface: (query: WarehousingProvider) => WarehousingInterface;
|
|
26
|
-
findInterfaces: (query: WarehousingProviderQuery) => Array<WarehousingInterface>;
|
|
27
|
-
configurationError: (provider: WarehousingProvider, unchainedAPI: UnchainedCore) => Promise<WarehousingError>;
|
|
28
|
-
isActive: (provider: WarehousingProvider, unchainedAPI: UnchainedCore) => Promise<boolean>;
|
|
29
|
-
estimatedDispatch: (provider: WarehousingProvider, context: WarehousingContext, unchainedAPI: UnchainedCore) => Promise<EstimatedDispatch>;
|
|
30
|
-
estimatedStock: (provider: WarehousingProvider, context: WarehousingContext, unchainedAPI: UnchainedCore) => Promise<EstimatedStock>;
|
|
31
|
-
updateTokenOwnership: (input: {
|
|
33
|
+
updateTokenOwnership: ({ tokenId, userId, walletAddress, }: {
|
|
32
34
|
tokenId: string;
|
|
33
35
|
userId: string;
|
|
34
36
|
walletAddress: string;
|
|
35
|
-
}) => Promise<
|
|
36
|
-
invalidateToken: (tokenId: string) => Promise<
|
|
37
|
+
}) => Promise<TokenSurrogate>;
|
|
38
|
+
invalidateToken: (tokenId: string) => Promise<TokenSurrogate>;
|
|
37
39
|
buildAccessKeyForToken: (tokenId: string) => Promise<string>;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
orderPosition: OrderPosition;
|
|
41
|
-
product: Product;
|
|
42
|
-
}>;
|
|
43
|
-
}, unchainedAPI: UnchainedCore) => Promise<void>;
|
|
44
|
-
tokenMetadata: (chainTokenId: string, params: {
|
|
45
|
-
product: Product;
|
|
46
|
-
token: TokenSurrogate;
|
|
47
|
-
referenceDate: Date;
|
|
48
|
-
locale: Intl.Locale;
|
|
49
|
-
}, unchainedAPI: UnchainedCore) => Promise<any>;
|
|
50
|
-
isInvalidateable: (chainTokenId: string, params: {
|
|
51
|
-
product: Product;
|
|
52
|
-
token: TokenSurrogate;
|
|
53
|
-
referenceDate: Date;
|
|
54
|
-
}, unchainedAPI: UnchainedCore) => Promise<boolean>;
|
|
40
|
+
create: (doc: WarehousingProvider) => Promise<WarehousingProvider>;
|
|
41
|
+
update: (warehousingProviderId: string, doc: Partial<WarehousingProvider>) => Promise<mongodb.WithId<WarehousingProvider>>;
|
|
55
42
|
delete: (providerId: string) => Promise<WarehousingProvider>;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
};
|
|
59
|
-
export declare const buildFindSelector: ({ type }?: WarehousingProviderQuery) => {
|
|
60
|
-
type: WarehousingProviderType;
|
|
61
|
-
deleted: any;
|
|
62
|
-
} | {
|
|
63
|
-
deleted: any;
|
|
64
|
-
type?: undefined;
|
|
65
|
-
};
|
|
66
|
-
export declare const configureWarehousingModule: ({ db, }: ModuleInput<Record<string, never>>) => Promise<WarehousingModule>;
|
|
43
|
+
}>;
|
|
44
|
+
export type WarehousingModule = Awaited<ReturnType<typeof configureWarehousingModule>>;
|
|
45
|
+
export {};
|
|
67
46
|
//# sourceMappingURL=configureWarehousingModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureWarehousingModule.d.ts","sourceRoot":"","sources":["../../src/module/configureWarehousingModule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configureWarehousingModule.d.ts","sourceRoot":"","sources":["../../src/module/configureWarehousingModule.ts"],"names":[],"mappings":"AACA,OAAO,EAA4C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACxG,OAAO,EACL,mBAAmB,EAEnB,uBAAuB,EACxB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,cAAc,EAA4B,MAAM,mCAAmC,CAAC;AAE7F,KAAK,wBAAwB,GAAG;IAC9B,IAAI,CAAC,EAAE,uBAAuB,CAAC;CAChC,CAAC;AAUF,eAAO,MAAM,iBAAiB,cAAc,wBAAwB;;;;;;CAGnE,CAAC;AAEF,eAAO,MAAM,0BAA0B,WAAkB,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;mBAQlE,wBAAwB,KAAG,OAAO,CAAC,MAAM,CAAC;2BAKlC,cAAc,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC;8CAKhC;QAAE,qBAAqB,EAAE,MAAM,CAAA;KAAE,YAClD,OAAO,CAAC,WAAW,KAC5B,OAAO,CAAC,mBAAmB,CAAC;6BAKhB;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,YACtB,OAAO,CAAC,WAAW,KAC5B,OAAO,CAAC,cAAc,CAAC;2BAIG,GAAG,YAAY,OAAO,CAAC,WAAW,KAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gCAKtF;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,eAAe,EAAE,MAAM,EAAE,CAAA;KAAE,YAChD,OAAO,CAAC,WAAW,KAC5B,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;2BAoBxB,wBAAwB,YACtB,OAAO,CAAC,WAAW,KAC3B,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;iDAOnC;QACD,qBAAqB,EAAE,MAAM,CAAC;KAC/B,KAAG,OAAO,CAAC,OAAO,CAAC;gEAYjB;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;KACvB,KAAG,OAAO,CAAC,cAAc,CAAC;+BAeM,MAAM,KAAG,OAAO,CAAC,cAAc,CAAC;sCAkBzB,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;kBAgB5C,mBAAmB,KAAG,OAAO,CAAC,mBAAmB,CAAC;oCAYhC,MAAM,OAAO,OAAO,CAAC,mBAAmB,CAAC;yBAkBpD,MAAM,KAAG,OAAO,CAAC,mBAAmB,CAAC;EAenE,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { WarehousingProviderType, } from '../types.js';
|
|
2
1
|
import { emit, registerEvents } from '@unchainedshop/events';
|
|
3
2
|
import { generateDbFilterById, generateDbObjectId } from '@unchainedshop/mongodb';
|
|
4
|
-
import { WarehousingProvidersCollection } from '../db/WarehousingProvidersCollection.js';
|
|
5
|
-
import { WarehousingDirector } from '../director/WarehousingDirector.js';
|
|
3
|
+
import { WarehousingProvidersCollection, } from '../db/WarehousingProvidersCollection.js';
|
|
6
4
|
import { TokenSurrogateCollection } from '../db/TokenSurrogateCollection.js';
|
|
7
5
|
const WAREHOUSING_PROVIDER_EVENTS = [
|
|
8
6
|
'WAREHOUSING_PROVIDER_CREATE',
|
|
@@ -15,11 +13,7 @@ export const buildFindSelector = ({ type } = {}) => {
|
|
|
15
13
|
const query = type ? { type, deleted: null } : { deleted: null };
|
|
16
14
|
return query;
|
|
17
15
|
};
|
|
18
|
-
const
|
|
19
|
-
const results = await Promise.all(arr.map(predicate));
|
|
20
|
-
return arr.filter((_v, index) => results[index]);
|
|
21
|
-
};
|
|
22
|
-
export const configureWarehousingModule = async ({ db, }) => {
|
|
16
|
+
export const configureWarehousingModule = async ({ db }) => {
|
|
23
17
|
registerEvents(WAREHOUSING_PROVIDER_EVENTS);
|
|
24
18
|
const WarehousingProviders = await WarehousingProvidersCollection(db);
|
|
25
19
|
const TokenSurrogates = await TokenSurrogateCollection(db);
|
|
@@ -29,28 +23,31 @@ export const configureWarehousingModule = async ({ db, }) => {
|
|
|
29
23
|
const providerCount = await WarehousingProviders.countDocuments(buildFindSelector(query));
|
|
30
24
|
return providerCount;
|
|
31
25
|
},
|
|
26
|
+
createTokens: async (tokens) => {
|
|
27
|
+
await TokenSurrogates.insertMany(tokens);
|
|
28
|
+
},
|
|
32
29
|
findProvider: async ({ warehousingProviderId }, options) => {
|
|
33
30
|
return WarehousingProviders.findOne(generateDbFilterById(warehousingProviderId), options);
|
|
34
31
|
},
|
|
35
32
|
findToken: async ({ tokenId }, options) => {
|
|
36
|
-
return TokenSurrogates.findOne(
|
|
33
|
+
return TokenSurrogates.findOne({ _id: tokenId }, options);
|
|
37
34
|
},
|
|
38
35
|
findTokens: async (selector, options) => {
|
|
39
36
|
return TokenSurrogates.find(selector, options).toArray();
|
|
40
37
|
},
|
|
41
|
-
findTokensForUser: async (
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
38
|
+
findTokensForUser: async (params, options) => {
|
|
39
|
+
const { userId, walletAddresses } = params;
|
|
40
|
+
if (!userId && !walletAddresses)
|
|
41
|
+
throw new Error('userId or walletAddresses must be provided for findTokensForUser');
|
|
45
42
|
const selector = {
|
|
46
43
|
$or: [
|
|
47
|
-
{
|
|
48
|
-
walletAddress: { $in:
|
|
44
|
+
walletAddresses && {
|
|
45
|
+
walletAddress: { $in: walletAddresses || [] },
|
|
49
46
|
},
|
|
50
|
-
{
|
|
51
|
-
userId
|
|
47
|
+
userId && {
|
|
48
|
+
userId,
|
|
52
49
|
},
|
|
53
|
-
],
|
|
50
|
+
].filter(Boolean),
|
|
54
51
|
};
|
|
55
52
|
const userTokens = await TokenSurrogates.find(selector, options).toArray();
|
|
56
53
|
return userTokens;
|
|
@@ -59,51 +56,11 @@ export const configureWarehousingModule = async ({ db, }) => {
|
|
|
59
56
|
const providers = WarehousingProviders.find(buildFindSelector(query), options);
|
|
60
57
|
return providers.toArray();
|
|
61
58
|
},
|
|
62
|
-
providerExists: async ({ warehousingProviderId }) => {
|
|
59
|
+
providerExists: async ({ warehousingProviderId, }) => {
|
|
63
60
|
const providerCount = await WarehousingProviders.countDocuments(generateDbFilterById(warehousingProviderId, { deleted: null }), { limit: 1 });
|
|
64
61
|
return !!providerCount;
|
|
65
62
|
},
|
|
66
|
-
|
|
67
|
-
findInterface: (warehousingProvider) => {
|
|
68
|
-
const Adapter = WarehousingDirector.getAdapter(warehousingProvider.adapterKey);
|
|
69
|
-
if (!Adapter)
|
|
70
|
-
return null;
|
|
71
|
-
return {
|
|
72
|
-
_id: Adapter.key,
|
|
73
|
-
label: Adapter.label,
|
|
74
|
-
version: Adapter.version,
|
|
75
|
-
};
|
|
76
|
-
},
|
|
77
|
-
findInterfaces: ({ type }) => {
|
|
78
|
-
return WarehousingDirector.getAdapters({
|
|
79
|
-
adapterFilter: (Adapter) => Adapter.typeSupported(type),
|
|
80
|
-
}).map((Adapter) => ({
|
|
81
|
-
_id: Adapter.key,
|
|
82
|
-
label: Adapter.label,
|
|
83
|
-
version: Adapter.version,
|
|
84
|
-
}));
|
|
85
|
-
},
|
|
86
|
-
findSupported: async (warehousingContext, unchainedAPI) => {
|
|
87
|
-
const allProviders = await WarehousingProviders.find(buildFindSelector({})).toArray();
|
|
88
|
-
const providers = asyncFilter(allProviders, async (provider) => {
|
|
89
|
-
const director = await WarehousingDirector.actions(provider, warehousingContext, unchainedAPI);
|
|
90
|
-
return director.isActive();
|
|
91
|
-
});
|
|
92
|
-
return providers;
|
|
93
|
-
},
|
|
94
|
-
configurationError: async (warehousingProvider, unchainedAPI) => {
|
|
95
|
-
const actions = await WarehousingDirector.actions(warehousingProvider, {}, unchainedAPI);
|
|
96
|
-
return actions.configurationError();
|
|
97
|
-
},
|
|
98
|
-
estimatedDispatch: async (warehousingProvider, warehousingContext, unchainedAPI) => {
|
|
99
|
-
const director = await WarehousingDirector.actions(warehousingProvider, warehousingContext, unchainedAPI);
|
|
100
|
-
return director.estimatedDispatch();
|
|
101
|
-
},
|
|
102
|
-
estimatedStock: async (warehousingProvider, warehousingContext, unchainedAPI) => {
|
|
103
|
-
const director = await WarehousingDirector.actions(warehousingProvider, warehousingContext, unchainedAPI);
|
|
104
|
-
return director.estimatedStock();
|
|
105
|
-
},
|
|
106
|
-
updateTokenOwnership: async ({ tokenId, userId, walletAddress }) => {
|
|
63
|
+
updateTokenOwnership: async ({ tokenId, userId, walletAddress, }) => {
|
|
107
64
|
const token = await TokenSurrogates.findOneAndUpdate({ _id: tokenId }, {
|
|
108
65
|
$set: {
|
|
109
66
|
userId,
|
|
@@ -111,73 +68,7 @@ export const configureWarehousingModule = async ({ db, }) => {
|
|
|
111
68
|
},
|
|
112
69
|
}, { returnDocument: 'after' });
|
|
113
70
|
await emit('TOKEN_OWNERSHIP_CHANGED', { token });
|
|
114
|
-
|
|
115
|
-
tokenizeItems: async (order, { items }, unchainedAPI) => {
|
|
116
|
-
const virtualProviders = await WarehousingProviders.find(buildFindSelector({ type: WarehousingProviderType.VIRTUAL })).toArray();
|
|
117
|
-
const tokenizers = await Promise.all(items.flatMap(({ orderPosition, product }) => {
|
|
118
|
-
const warehousingContext = {
|
|
119
|
-
order,
|
|
120
|
-
orderPosition,
|
|
121
|
-
product,
|
|
122
|
-
quantity: orderPosition.quantity,
|
|
123
|
-
referenceDate: order.ordered,
|
|
124
|
-
};
|
|
125
|
-
return virtualProviders.map(async (provider) => {
|
|
126
|
-
const director = await WarehousingDirector.actions(provider, warehousingContext, unchainedAPI);
|
|
127
|
-
const isActive = await director.isActive();
|
|
128
|
-
if (isActive)
|
|
129
|
-
return director.tokenize;
|
|
130
|
-
return (async () => []);
|
|
131
|
-
});
|
|
132
|
-
}));
|
|
133
|
-
// Tokenize linearly so that after every tokenized item, the db is updated
|
|
134
|
-
await tokenizers.reduce(async (lastPromise, tokenizer) => {
|
|
135
|
-
await lastPromise;
|
|
136
|
-
const tokenSurrogates = await tokenizer();
|
|
137
|
-
await TokenSurrogates.insertMany(tokenSurrogates);
|
|
138
|
-
return true;
|
|
139
|
-
}, Promise.resolve(false));
|
|
140
|
-
},
|
|
141
|
-
tokenMetadata: async (chainTokenId, { token, product, locale, referenceDate }, unchainedAPI) => {
|
|
142
|
-
const virtualProviders = await WarehousingProviders.find(buildFindSelector({ type: WarehousingProviderType.VIRTUAL })).toArray();
|
|
143
|
-
const warehousingContext = {
|
|
144
|
-
product,
|
|
145
|
-
token,
|
|
146
|
-
locale,
|
|
147
|
-
quantity: token?.quantity || 1,
|
|
148
|
-
referenceDate,
|
|
149
|
-
};
|
|
150
|
-
return virtualProviders.reduce(async (lastPromise, provider) => {
|
|
151
|
-
const last = await lastPromise;
|
|
152
|
-
if (last)
|
|
153
|
-
return last;
|
|
154
|
-
const currentDirector = await WarehousingDirector.actions(provider, warehousingContext, unchainedAPI);
|
|
155
|
-
const isActive = await currentDirector.isActive();
|
|
156
|
-
if (isActive) {
|
|
157
|
-
return currentDirector.tokenMetadata(chainTokenId);
|
|
158
|
-
}
|
|
159
|
-
return null;
|
|
160
|
-
}, Promise.resolve(null));
|
|
161
|
-
},
|
|
162
|
-
isInvalidateable: async (chainTokenId, { token, product, referenceDate }, unchainedAPI) => {
|
|
163
|
-
const virtualProviders = await WarehousingProviders.find(buildFindSelector({ type: WarehousingProviderType.VIRTUAL })).toArray();
|
|
164
|
-
const warehousingContext = {
|
|
165
|
-
product,
|
|
166
|
-
token,
|
|
167
|
-
quantity: token?.quantity || 1,
|
|
168
|
-
referenceDate,
|
|
169
|
-
};
|
|
170
|
-
return virtualProviders.reduce(async (lastPromise, provider) => {
|
|
171
|
-
const last = await lastPromise;
|
|
172
|
-
if (last)
|
|
173
|
-
return last;
|
|
174
|
-
const currentDirector = await WarehousingDirector.actions(provider, warehousingContext, unchainedAPI);
|
|
175
|
-
const isActive = await currentDirector.isActive();
|
|
176
|
-
if (isActive) {
|
|
177
|
-
return currentDirector.isInvalidateable(chainTokenId);
|
|
178
|
-
}
|
|
179
|
-
return null;
|
|
180
|
-
}, Promise.resolve(null));
|
|
71
|
+
return token;
|
|
181
72
|
},
|
|
182
73
|
invalidateToken: async (tokenId) => {
|
|
183
74
|
const token = await TokenSurrogates.findOneAndUpdate({ _id: tokenId, invalidatedDate: null }, {
|
|
@@ -190,6 +81,7 @@ export const configureWarehousingModule = async ({ db, }) => {
|
|
|
190
81
|
if (token) {
|
|
191
82
|
await emit('TOKEN_INVALIDATED', { token });
|
|
192
83
|
}
|
|
84
|
+
return token;
|
|
193
85
|
},
|
|
194
86
|
buildAccessKeyForToken: async (tokenId) => {
|
|
195
87
|
const token = await TokenSurrogates.findOne(generateDbFilterById(tokenId));
|
|
@@ -204,27 +96,19 @@ export const configureWarehousingModule = async ({ db, }) => {
|
|
|
204
96
|
const hashHex = hashArray.map((b) => b.toString(16).padStart(2, '0')).join('');
|
|
205
97
|
return hashHex;
|
|
206
98
|
},
|
|
207
|
-
isActive: async (warehousingProvider, unchainedAPI) => {
|
|
208
|
-
const actions = await WarehousingDirector.actions(warehousingProvider, {}, unchainedAPI);
|
|
209
|
-
return actions.isActive();
|
|
210
|
-
},
|
|
211
99
|
// Mutations
|
|
212
100
|
create: async (doc) => {
|
|
213
|
-
const Adapter = WarehousingDirector.getAdapter(doc.adapterKey);
|
|
214
|
-
if (!Adapter)
|
|
215
|
-
return null;
|
|
216
101
|
const { insertedId: warehousingProviderId } = await WarehousingProviders.insertOne({
|
|
217
102
|
_id: generateDbObjectId(),
|
|
218
103
|
created: new Date(),
|
|
219
|
-
configuration: Adapter.initialConfiguration,
|
|
220
104
|
...doc,
|
|
221
105
|
});
|
|
222
|
-
const warehousingProvider = await WarehousingProviders.findOne(
|
|
106
|
+
const warehousingProvider = await WarehousingProviders.findOne({ _id: warehousingProviderId });
|
|
223
107
|
await emit('WAREHOUSING_PROVIDER_CREATE', { warehousingProvider });
|
|
224
|
-
return
|
|
108
|
+
return warehousingProvider;
|
|
225
109
|
},
|
|
226
110
|
update: async (warehousingProviderId, doc) => {
|
|
227
|
-
const warehousingProvider = await WarehousingProviders.findOneAndUpdate(
|
|
111
|
+
const warehousingProvider = await WarehousingProviders.findOneAndUpdate({ _id: warehousingProviderId }, {
|
|
228
112
|
$set: {
|
|
229
113
|
updated: new Date(),
|
|
230
114
|
...doc,
|
|
@@ -233,7 +117,7 @@ export const configureWarehousingModule = async ({ db, }) => {
|
|
|
233
117
|
if (!warehousingProvider)
|
|
234
118
|
return null;
|
|
235
119
|
await emit('WAREHOUSING_PROVIDER_UPDATE', { warehousingProvider });
|
|
236
|
-
return
|
|
120
|
+
return warehousingProvider;
|
|
237
121
|
},
|
|
238
122
|
delete: async (providerId) => {
|
|
239
123
|
const warehousingProvider = await WarehousingProviders.findOneAndUpdate(generateDbFilterById(providerId), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureWarehousingModule.js","sourceRoot":"","sources":["../../src/module/configureWarehousingModule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configureWarehousingModule.js","sourceRoot":"","sources":["../../src/module/configureWarehousingModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAwB,MAAM,wBAAwB,CAAC;AACxG,OAAO,EAEL,8BAA8B,GAE/B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAkB,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAM7F,MAAM,2BAA2B,GAAa;IAC5C,6BAA6B;IAC7B,6BAA6B;IAC7B,6BAA6B;IAC7B,yBAAyB;IACzB,mBAAmB;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAE,IAAI,KAA+B,EAAE,EAAE,EAAE;IAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACjE,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAAE,EAAE,EAAE,EAAsC,EAAE,EAAE;IAC7F,cAAc,CAAC,2BAA2B,CAAC,CAAC;IAE5C,MAAM,oBAAoB,GAAG,MAAM,8BAA8B,CAAC,EAAE,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,MAAM,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAE3D,OAAO;QACL,UAAU;QACV,KAAK,EAAE,KAAK,EAAE,KAA+B,EAAmB,EAAE;YAChE,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1F,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,YAAY,EAAE,KAAK,EAAE,MAAwB,EAAiB,EAAE;YAC9D,MAAM,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QAED,YAAY,EAAE,KAAK,EACjB,EAAE,qBAAqB,EAAqC,EAC5D,OAA6B,EACC,EAAE;YAChC,OAAO,oBAAoB,CAAC,OAAO,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5F,CAAC;QAED,SAAS,EAAE,KAAK,EACd,EAAE,OAAO,EAAuB,EAChC,OAA6B,EACJ,EAAE;YAC3B,OAAO,eAAe,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5D,CAAC;QAED,UAAU,EAAE,KAAK,EAAE,QAAa,EAAE,OAA6B,EAAkC,EAAE;YACjG,OAAO,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3D,CAAC;QAED,iBAAiB,EAAE,KAAK,EACtB,MAA0D,EAC1D,OAA6B,EACG,EAAE;YAClC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAa,CAAC;YAClD,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe;gBAC7B,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;YACtF,MAAM,QAAQ,GAAG;gBACf,GAAG,EAAE;oBACH,eAAe,IAAI;wBACjB,aAAa,EAAE,EAAE,GAAG,EAAE,eAAe,IAAI,EAAE,EAAE;qBAC9C;oBACD,MAAM,IAAI;wBACR,MAAM;qBACP;iBACF,CAAC,MAAM,CAAC,OAAO,CAAC;aAClB,CAAC;YAEF,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;YAC3E,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,aAAa,EAAE,KAAK,EAClB,KAA+B,EAC/B,UAA+B,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAClB,EAAE;YACvC,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;YAC/E,OAAO,SAAS,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;QAED,cAAc,EAAE,KAAK,EAAE,EACrB,qBAAqB,GAGtB,EAAoB,EAAE;YACrB,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,cAAc,CAC7D,oBAAoB,CAAC,qBAAqB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAC9D,EAAE,KAAK,EAAE,CAAC,EAAE,CACb,CAAC;YACF,OAAO,CAAC,CAAC,aAAa,CAAC;QACzB,CAAC;QAED,oBAAoB,EAAE,KAAK,EAAE,EAC3B,OAAO,EACP,MAAM,EACN,aAAa,GAKd,EAA2B,EAAE;YAC5B,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,gBAAgB,CAClD,EAAE,GAAG,EAAE,OAAO,EAAE,EAChB;gBACE,IAAI,EAAE;oBACJ,MAAM;oBACN,aAAa;iBACd;aACF,EACD,EAAE,cAAc,EAAE,OAAO,EAAE,CAC5B,CAAC;YACF,MAAM,IAAI,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACjD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,eAAe,EAAE,KAAK,EAAE,OAAe,EAA2B,EAAE;YAClE,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,gBAAgB,CAClD,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,EACvC;gBACE,IAAI,EAAE;oBACJ,eAAe,EAAE,IAAI,IAAI,EAAE;iBAC5B;aACF,EACD;gBACE,cAAc,EAAE,OAAO;aACxB,CACF,CAAC;YACF,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,sBAAsB,EAAE,KAAK,EAAE,OAAe,EAAmB,EAAE;YACjE,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3E,MAAM,OAAO,GAAG;gBACd,KAAK,CAAC,GAAG;gBACT,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,MAAM;gBACnC,OAAO,CAAC,GAAG,CAAC,gBAAgB;aAC7B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACX,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACnE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAE/E,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,YAAY;QACZ,MAAM,EAAE,KAAK,EAAE,GAAwB,EAAgC,EAAE;YACvE,MAAM,EAAE,UAAU,EAAE,qBAAqB,EAAE,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC;gBACjF,GAAG,EAAE,kBAAkB,EAAE;gBACzB,OAAO,EAAE,IAAI,IAAI,EAAE;gBACnB,GAAG,GAAG;aACP,CAAC,CAAC;YAEH,MAAM,mBAAmB,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE,CAAC,CAAC;YAC/F,MAAM,IAAI,CAAC,6BAA6B,EAAE,EAAE,mBAAmB,EAAE,CAAC,CAAC;YACnE,OAAO,mBAAmB,CAAC;QAC7B,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,qBAA6B,EAAE,GAAiC,EAAE,EAAE;YACjF,MAAM,mBAAmB,GAAG,MAAM,oBAAoB,CAAC,gBAAgB,CACrE,EAAE,GAAG,EAAE,qBAAqB,EAAE,EAC9B;gBACE,IAAI,EAAE;oBACJ,OAAO,EAAE,IAAI,IAAI,EAAE;oBACnB,GAAG,GAAG;iBACP;aACF,EACD,EAAE,cAAc,EAAE,OAAO,EAAE,CAC5B,CAAC;YAEF,IAAI,CAAC,mBAAmB;gBAAE,OAAO,IAAI,CAAC;YAEtC,MAAM,IAAI,CAAC,6BAA6B,EAAE,EAAE,mBAAmB,EAAE,CAAC,CAAC;YACnE,OAAO,mBAAmB,CAAC;QAC7B,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,UAAkB,EAAgC,EAAE;YACjE,MAAM,mBAAmB,GAAG,MAAM,oBAAoB,CAAC,gBAAgB,CACrE,oBAAoB,CAAC,UAAU,CAAC,EAChC;gBACE,IAAI,EAAE;oBACJ,OAAO,EAAE,IAAI,IAAI,EAAE;iBACpB;aACF,EACD,EAAE,cAAc,EAAE,OAAO,EAAE,CAC5B,CAAC;YAEF,MAAM,IAAI,CAAC,6BAA6B,EAAE,EAAE,mBAAmB,EAAE,CAAC,CAAC;YACnE,OAAO,mBAAmB,CAAC;QAC7B,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
export * from './types.js';
|
|
2
1
|
export * from './module/configureWarehousingModule.js';
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export { WarehousingError } from './director/WarehousingError.js';
|
|
6
|
-
export { WarehousingProviderType } from './director/WarehousingProviderType.js';
|
|
2
|
+
export * from './db/TokenSurrogateCollection.js';
|
|
3
|
+
export * from './db/WarehousingProvidersCollection.js';
|
|
7
4
|
//# sourceMappingURL=warehousing-index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warehousing-index.d.ts","sourceRoot":"","sources":["../src/warehousing-index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"warehousing-index.d.ts","sourceRoot":"","sources":["../src/warehousing-index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC"}
|
package/lib/warehousing-index.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
export * from './types.js';
|
|
2
1
|
export * from './module/configureWarehousingModule.js';
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export { WarehousingError } from './director/WarehousingError.js';
|
|
6
|
-
export { WarehousingProviderType } from './director/WarehousingProviderType.js';
|
|
2
|
+
export * from './db/TokenSurrogateCollection.js';
|
|
3
|
+
export * from './db/WarehousingProvidersCollection.js';
|
|
7
4
|
//# sourceMappingURL=warehousing-index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warehousing-index.js","sourceRoot":"","sources":["../src/warehousing-index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"warehousing-index.js","sourceRoot":"","sources":["../src/warehousing-index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unchainedshop/core-warehousing",
|
|
3
|
-
"version": "3.0.0-
|
|
3
|
+
"version": "3.0.0-rc.11",
|
|
4
4
|
"main": "lib/warehousing-index.js",
|
|
5
|
-
"exports": {
|
|
6
|
-
".": "./lib/warehousing-index.js",
|
|
7
|
-
"./*": "./lib/*"
|
|
8
|
-
},
|
|
9
5
|
"types": "lib/warehousing-index.d.ts",
|
|
10
6
|
"type": "module",
|
|
11
7
|
"scripts": {
|
|
12
|
-
"clean": "
|
|
13
|
-
"
|
|
8
|
+
"clean": "tsc -b --clean",
|
|
9
|
+
"build": "tsc -b",
|
|
10
|
+
"prepublishOnly": "npm run clean && npm run build",
|
|
14
11
|
"watch": "tsc -w",
|
|
15
12
|
"test": "NODE_OPTIONS=--experimental-vm-modules jest --detectOpenHandles --forceExit",
|
|
16
13
|
"test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch --detectOpenHandles --forceExit"
|
|
@@ -24,21 +21,24 @@
|
|
|
24
21
|
"ecommerce",
|
|
25
22
|
"core"
|
|
26
23
|
],
|
|
27
|
-
"
|
|
24
|
+
"authors": [
|
|
25
|
+
"Joël Meiller",
|
|
26
|
+
"Pascal Kaufmann"
|
|
27
|
+
],
|
|
28
28
|
"license": "EUPL-1.2",
|
|
29
29
|
"bugs": {
|
|
30
30
|
"url": "https://github.com/unchainedshop/unchained/issues"
|
|
31
31
|
},
|
|
32
32
|
"homepage": "https://github.com/unchainedshop/unchained#readme",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@unchainedshop/events": "^3.0.0-
|
|
35
|
-
"@unchainedshop/logger": "^3.0.0-
|
|
36
|
-
"@unchainedshop/utils": "^3.0.0-
|
|
34
|
+
"@unchainedshop/events": "^3.0.0-rc.11",
|
|
35
|
+
"@unchainedshop/logger": "^3.0.0-rc.11",
|
|
36
|
+
"@unchainedshop/utils": "^3.0.0-rc.11"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@types/node": "^22.
|
|
39
|
+
"@types/node": "^22.10.2",
|
|
40
40
|
"jest": "^29.7.0",
|
|
41
41
|
"ts-jest": "^29.2.5",
|
|
42
|
-
"typescript": "^5.
|
|
42
|
+
"typescript": "^5.7.2"
|
|
43
43
|
}
|
|
44
44
|
}
|
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
import { mongodb, buildDbIndexes } from '@unchainedshop/mongodb';
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
export type TokenSurrogate = {
|
|
4
|
+
_id?: string;
|
|
5
|
+
userId?: string;
|
|
6
|
+
walletAddress?: string;
|
|
7
|
+
invalidatedDate?: Date;
|
|
8
|
+
expiryDate?: Date;
|
|
9
|
+
quantity: number;
|
|
10
|
+
contractAddress: string;
|
|
11
|
+
chainId: string;
|
|
12
|
+
chainTokenId: string;
|
|
13
|
+
productId: string;
|
|
14
|
+
orderPositionId: string;
|
|
15
|
+
meta: any;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export enum TokenStatus {
|
|
19
|
+
CENTRALIZED = 'CENTRALIZED',
|
|
20
|
+
EXPORTING = 'EXPORTING',
|
|
21
|
+
DECENTRALIZED = 'DECENTRALIZED',
|
|
22
|
+
}
|
|
3
23
|
|
|
4
24
|
export const TokenSurrogateCollection = async (db: mongodb.Db) => {
|
|
5
25
|
const TokenSurrogates = db.collection<TokenSurrogate>('token_surrogates');
|
|
@@ -1,5 +1,18 @@
|
|
|
1
|
-
import { mongodb, buildDbIndexes } from '@unchainedshop/mongodb';
|
|
2
|
-
|
|
1
|
+
import { mongodb, buildDbIndexes, TimestampFields } from '@unchainedshop/mongodb';
|
|
2
|
+
|
|
3
|
+
export enum WarehousingProviderType {
|
|
4
|
+
PHYSICAL = 'PHYSICAL',
|
|
5
|
+
VIRTUAL = 'VIRTUAL',
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export type WarehousingConfiguration = Array<{ key: string; value: string }>;
|
|
9
|
+
|
|
10
|
+
export type WarehousingProvider = {
|
|
11
|
+
_id?: string;
|
|
12
|
+
type: WarehousingProviderType;
|
|
13
|
+
adapterKey: string;
|
|
14
|
+
configuration: WarehousingConfiguration;
|
|
15
|
+
} & TimestampFields;
|
|
3
16
|
|
|
4
17
|
export const WarehousingProvidersCollection = async (db: mongodb.Db) => {
|
|
5
18
|
const WarehousingProviders = db.collection<WarehousingProvider>('warehousing-providers');
|