@unchainedshop/core-warehousing 1.2.31 → 2.0.0-beta1

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.
@@ -0,0 +1,3 @@
1
+ import { Db } from '@unchainedshop/types/common';
2
+ import { TokenSurrogate } from '@unchainedshop/types/warehousing';
3
+ export declare const TokenSurrogateCollection: (db: Db) => Promise<import("mongodb").Collection<TokenSurrogate>>;
@@ -0,0 +1,13 @@
1
+ import { buildDbIndexes } from '@unchainedshop/utils';
2
+ export const TokenSurrogateCollection = async (db) => {
3
+ const TokenSurrogates = db.collection('token_surrogates');
4
+ await buildDbIndexes(TokenSurrogates, [
5
+ {
6
+ index: {
7
+ chainTokenId: 1,
8
+ },
9
+ },
10
+ ]);
11
+ return TokenSurrogates;
12
+ };
13
+ //# sourceMappingURL=TokenSurrogateCollection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenSurrogateCollection.js","sourceRoot":"","sources":["../../src/db/TokenSurrogateCollection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,EAAM,EAAE,EAAE;IACvD,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;KACF,CAAC,CAAC;IAEH,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC"}
@@ -1 +1,2 @@
1
- export const WarehousingProvidersSchema: any;
1
+ export const WarehousingProvidersSchema: SimpleSchema;
2
+ import SimpleSchema from "simpl-schema";
@@ -23,6 +23,10 @@ export const WarehousingAdapter = {
23
23
  commissioningTime: async () => {
24
24
  return 0;
25
25
  },
26
+ tokenize: async () => {
27
+ /* */
28
+ return [];
29
+ },
26
30
  };
27
31
  },
28
32
  log(message, { level = LogLevel.Debug, ...options } = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"WarehousingAdapter.js","sourceRoot":"","sources":["../../src/director/WarehousingAdapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,CAAC,MAAM,kBAAkB,GAA2D;IACxF,UAAU,EAAE,CAAC;IAEb,aAAa,EAAE,GAAG,EAAE;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oBAAoB,EAAE,EAAE;IAExB,OAAO,EAAE,GAAG,EAAE;QACZ,OAAO;YACL,kBAAkB;gBAChB,OAAO,gBAAgB,CAAC,eAAe,CAAC;YAC1C,CAAC;YAED,QAAQ;gBACN,OAAO,KAAK,CAAC;YACf,CAAC;YAED,KAAK,EAAE,KAAK,IAAI,EAAE;gBAChB,OAAO,CAAC,CAAC;YACX,CAAC;YAED,cAAc,EAAE,KAAK,IAAI,EAAE;gBACzB,OAAO,CAAC,CAAC;YACX,CAAC;YAED,iBAAiB,EAAE,KAAK,IAAI,EAAE;gBAC5B,OAAO,CAAC,CAAC;YACX,CAAC;SACF,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE;QACtD,sBAAsB;QACtB,OAAO,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"WarehousingAdapter.js","sourceRoot":"","sources":["../../src/director/WarehousingAdapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,CAAC,MAAM,kBAAkB,GAA2D;IACxF,UAAU,EAAE,CAAC;IAEb,aAAa,EAAE,GAAG,EAAE;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oBAAoB,EAAE,EAAE;IAExB,OAAO,EAAE,GAAG,EAAE;QACZ,OAAO;YACL,kBAAkB;gBAChB,OAAO,gBAAgB,CAAC,eAAe,CAAC;YAC1C,CAAC;YAED,QAAQ;gBACN,OAAO,KAAK,CAAC;YACf,CAAC;YAED,KAAK,EAAE,KAAK,IAAI,EAAE;gBAChB,OAAO,CAAC,CAAC;YACX,CAAC;YAED,cAAc,EAAE,KAAK,IAAI,EAAE;gBACzB,OAAO,CAAC,CAAC;YACX,CAAC;YAED,iBAAiB,EAAE,KAAK,IAAI,EAAE;gBAC5B,OAAO,CAAC,CAAC;YACX,CAAC;YAED,QAAQ,EAAE,KAAK,IAAI,EAAE;gBACnB,KAAK;gBACL,OAAO,EAAE,CAAC;YACZ,CAAC;SACF,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE;QACtD,sBAAsB;QACtB,OAAO,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC;CACF,CAAC"}
@@ -13,7 +13,7 @@ export const WarehousingDirector = {
13
13
  actions: async (warehousingProvider, warehousingContext, requestContext) => {
14
14
  const Adapter = baseDirector.getAdapter(warehousingProvider.adapterKey);
15
15
  if (!Adapter) {
16
- throw new Error(`Payment Plugin ${warehousingProvider.adapterKey} not available`);
16
+ throw new Error(`Warehousing Plugin ${warehousingProvider.adapterKey} not available`);
17
17
  }
18
18
  const context = {
19
19
  warehousingProviderId: warehousingProvider._id,
@@ -87,6 +87,23 @@ export const WarehousingDirector = {
87
87
  return {};
88
88
  }
89
89
  },
90
+ tokenize: async () => {
91
+ try {
92
+ const tokens = await adapter.tokenize();
93
+ const { order, orderPosition } = warehousingContext;
94
+ return tokens.map((token) => {
95
+ return {
96
+ userId: order.userId,
97
+ productId: orderPosition.productId,
98
+ ...token,
99
+ };
100
+ });
101
+ }
102
+ catch (error) {
103
+ log(error.message, { level: LogLevel.Error, ...error });
104
+ return [];
105
+ }
106
+ },
90
107
  };
91
108
  },
92
109
  };
@@ -1 +1 @@
1
- {"version":3,"file":"WarehousingDirector.js","sourceRoot":"","sources":["../../src/director/WarehousingDirector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WarehousingDirector.js","sourceRoot":"","sources":["../../src/director/WarehousingDirector.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export declare enum WarehousingProviderType {
2
- PHYSICAL = "PHYSICAL"
2
+ PHYSICAL = "PHYSICAL",
3
+ VIRTUAL = "VIRTUAL"
3
4
  }
@@ -1,5 +1,6 @@
1
1
  export var WarehousingProviderType;
2
2
  (function (WarehousingProviderType) {
3
3
  WarehousingProviderType["PHYSICAL"] = "PHYSICAL";
4
+ WarehousingProviderType["VIRTUAL"] = "VIRTUAL";
4
5
  })(WarehousingProviderType || (WarehousingProviderType = {}));
5
6
  //# sourceMappingURL=WarehousingProviderType.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WarehousingProviderType.js","sourceRoot":"","sources":["../../src/director/WarehousingProviderType.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,uBAEX;AAFD,WAAY,uBAAuB;IACjC,gDAAqB,CAAA;AACvB,CAAC,EAFW,uBAAuB,KAAvB,uBAAuB,QAElC"}
1
+ {"version":3,"file":"WarehousingProviderType.js","sourceRoot":"","sources":["../../src/director/WarehousingProviderType.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,gDAAqB,CAAA;IACrB,8CAAmB,CAAA;AACrB,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,QAGlC"}
@@ -1,8 +1,10 @@
1
+ import { WarehousingProviderType, } from '@unchainedshop/types/warehousing';
1
2
  import { emit, registerEvents } from '@unchainedshop/events';
2
3
  import { generateDbFilterById, generateDbMutations } from '@unchainedshop/utils';
3
4
  import { WarehousingProvidersCollection } from '../db/WarehousingProvidersCollection';
4
5
  import { WarehousingProvidersSchema } from '../db/WarehousingProvidersSchema';
5
6
  import { WarehousingDirector } from '../director/WarehousingDirector';
7
+ import { TokenSurrogateCollection } from '../db/TokenSurrogateCollection';
6
8
  const WAREHOUSING_PROVIDER_EVENTS = [
7
9
  'WAREHOUSING_PROVIDER_CREATE',
8
10
  'WAREHOUSING_PROVIDER_UPDATE',
@@ -19,6 +21,7 @@ const asyncFilter = async (arr, predicate) => {
19
21
  export const configureWarehousingModule = async ({ db, }) => {
20
22
  registerEvents(WAREHOUSING_PROVIDER_EVENTS);
21
23
  const WarehousingProviders = await WarehousingProvidersCollection(db);
24
+ const TokenSurrogates = await TokenSurrogateCollection(db);
22
25
  const mutations = generateDbMutations(WarehousingProviders, WarehousingProvidersSchema);
23
26
  return {
24
27
  // Queries
@@ -30,6 +33,12 @@ export const configureWarehousingModule = async ({ db, }) => {
30
33
  findProvider: async ({ warehousingProviderId }, options) => {
31
34
  return WarehousingProviders.findOne(generateDbFilterById(warehousingProviderId), options);
32
35
  },
36
+ findToken: async ({ tokenId }, options) => {
37
+ return TokenSurrogates.findOne(generateDbFilterById(tokenId), options);
38
+ },
39
+ findTokens: async ({ userId }, options) => {
40
+ return TokenSurrogates.find({ userId }, options).toArray();
41
+ },
33
42
  findProviders: async (query, options) => {
34
43
  const providers = WarehousingProviders.find(buildFindSelector(query), options);
35
44
  return providers.toArray();
@@ -78,6 +87,38 @@ export const configureWarehousingModule = async ({ db, }) => {
78
87
  const director = await WarehousingDirector.actions(warehousingProvider, warehousingContext, requestContext);
79
88
  return director.estimatedStock();
80
89
  },
90
+ updateTokenOwnership: async ({ tokenId, userId, walletAddress }) => {
91
+ await TokenSurrogates.updateOne({ _id: tokenId }, {
92
+ $set: {
93
+ userId,
94
+ walletAddress,
95
+ },
96
+ });
97
+ },
98
+ tokenizeItems: async (order, { items }, requestContext) => {
99
+ const virtualProviders = await WarehousingProviders.find(buildFindSelector({ type: WarehousingProviderType.VIRTUAL })).toArray();
100
+ await Promise.all(items.map(async ({ orderPosition, product }) => {
101
+ const warehousingContext = {
102
+ order,
103
+ orderPosition,
104
+ product,
105
+ quantity: orderPosition.quantity,
106
+ referenceDate: order.ordered,
107
+ };
108
+ await virtualProviders.reduce(async (lastPromise, provider) => {
109
+ const last = await lastPromise;
110
+ if (last)
111
+ return last;
112
+ const currentDirector = await WarehousingDirector.actions(provider, warehousingContext, requestContext);
113
+ const isActive = await currentDirector.isActive();
114
+ if (isActive) {
115
+ const tokenSurrogates = await currentDirector.tokenize();
116
+ await TokenSurrogates.insertMany(tokenSurrogates);
117
+ }
118
+ return true;
119
+ }, Promise.resolve(false));
120
+ }));
121
+ },
81
122
  isActive: async (warehousingProvider, requestContext) => {
82
123
  const actions = await WarehousingDirector.actions(warehousingProvider, {}, requestContext);
83
124
  return actions.isActive();
@@ -1 +1 @@
1
- {"version":3,"file":"configureWarehousingModule.js","sourceRoot":"","sources":["../../src/module/configureWarehousingModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configureWarehousingModule.js","sourceRoot":"","sources":["../../src/module/configureWarehousingModule.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/core-warehousing",
3
- "version": "1.2.31",
3
+ "version": "2.0.0-beta1",
4
4
  "main": "lib/warehousing-index.js",
5
5
  "exports": {
6
6
  ".": "./lib/warehousing-index.js",
@@ -30,17 +30,17 @@
30
30
  },
31
31
  "homepage": "https://github.com/unchainedshop/unchained#readme",
32
32
  "dependencies": {
33
- "@unchainedshop/events": "^1.2.31",
34
- "@unchainedshop/logger": "^1.2.31",
35
- "@unchainedshop/utils": "^1.2.31",
33
+ "@unchainedshop/events": "^2.0.0-beta1",
34
+ "@unchainedshop/logger": "^2.0.0-beta1",
35
+ "@unchainedshop/utils": "^2.0.0-beta1",
36
36
  "lru-cache": "^7.14.0",
37
- "simpl-schema": "^1.13.1"
37
+ "simpl-schema": "^3.0.1"
38
38
  },
39
39
  "devDependencies": {
40
- "@types/node": "^16.11.64",
41
- "@unchainedshop/types": "^1.2.32",
42
- "jest": "^29.0.2",
43
- "ts-jest": "^28.0.8",
40
+ "@types/node": "^16.11.66",
41
+ "@unchainedshop/types": "^2.0.0-beta1",
42
+ "jest": "^29.2.1",
43
+ "ts-jest": "^29.0.3",
44
44
  "typescript": "^4.8.4"
45
45
  }
46
46
  }
@@ -0,0 +1,17 @@
1
+ import { Db } from '@unchainedshop/types/common';
2
+ import { TokenSurrogate } from '@unchainedshop/types/warehousing';
3
+ import { buildDbIndexes } from '@unchainedshop/utils';
4
+
5
+ export const TokenSurrogateCollection = async (db: Db) => {
6
+ const TokenSurrogates = db.collection<TokenSurrogate>('token_surrogates');
7
+
8
+ await buildDbIndexes<TokenSurrogate>(TokenSurrogates, [
9
+ {
10
+ index: {
11
+ chainTokenId: 1,
12
+ },
13
+ },
14
+ ]);
15
+
16
+ return TokenSurrogates;
17
+ };
@@ -32,6 +32,11 @@ export const WarehousingAdapter: Omit<IWarehousingAdapter, 'key' | 'label' | 've
32
32
  commissioningTime: async () => {
33
33
  return 0;
34
34
  },
35
+
36
+ tokenize: async () => {
37
+ /* */
38
+ return [];
39
+ },
35
40
  };
36
41
  },
37
42
 
@@ -23,7 +23,7 @@ export const WarehousingDirector: IWarehousingDirector = {
23
23
  const Adapter = baseDirector.getAdapter(warehousingProvider.adapterKey);
24
24
 
25
25
  if (!Adapter) {
26
- throw new Error(`Payment Plugin ${warehousingProvider.adapterKey} not available`);
26
+ throw new Error(`Warehousing Plugin ${warehousingProvider.adapterKey} not available`);
27
27
  }
28
28
  const context = {
29
29
  warehousingProviderId: warehousingProvider._id,
@@ -103,6 +103,23 @@ export const WarehousingDirector: IWarehousingDirector = {
103
103
  return {};
104
104
  }
105
105
  },
106
+
107
+ tokenize: async () => {
108
+ try {
109
+ const tokens = await adapter.tokenize();
110
+ const { order, orderPosition } = warehousingContext;
111
+ return tokens.map((token) => {
112
+ return {
113
+ userId: order.userId,
114
+ productId: orderPosition.productId,
115
+ ...token,
116
+ };
117
+ });
118
+ } catch (error) {
119
+ log(error.message, { level: LogLevel.Error, ...error });
120
+ return [];
121
+ }
122
+ },
106
123
  };
107
124
  },
108
125
  };
@@ -1,3 +1,4 @@
1
1
  export enum WarehousingProviderType {
2
2
  PHYSICAL = 'PHYSICAL',
3
+ VIRTUAL = 'VIRTUAL',
3
4
  }
@@ -1,14 +1,17 @@
1
1
  import { ModuleInput, ModuleMutations } from '@unchainedshop/types/core';
2
2
  import {
3
+ WarehousingContext,
3
4
  WarehousingModule,
4
5
  WarehousingProvider,
5
6
  WarehousingProviderQuery,
7
+ WarehousingProviderType,
6
8
  } from '@unchainedshop/types/warehousing';
7
9
  import { emit, registerEvents } from '@unchainedshop/events';
8
10
  import { generateDbFilterById, generateDbMutations } from '@unchainedshop/utils';
9
11
  import { WarehousingProvidersCollection } from '../db/WarehousingProvidersCollection';
10
12
  import { WarehousingProvidersSchema } from '../db/WarehousingProvidersSchema';
11
13
  import { WarehousingDirector } from '../director/WarehousingDirector';
14
+ import { TokenSurrogateCollection } from '../db/TokenSurrogateCollection';
12
15
 
13
16
  const WAREHOUSING_PROVIDER_EVENTS: string[] = [
14
17
  'WAREHOUSING_PROVIDER_CREATE',
@@ -33,6 +36,7 @@ export const configureWarehousingModule = async ({
33
36
  registerEvents(WAREHOUSING_PROVIDER_EVENTS);
34
37
 
35
38
  const WarehousingProviders = await WarehousingProvidersCollection(db);
39
+ const TokenSurrogates = await TokenSurrogateCollection(db);
36
40
 
37
41
  const mutations = generateDbMutations<WarehousingProvider>(
38
42
  WarehousingProviders,
@@ -51,6 +55,14 @@ export const configureWarehousingModule = async ({
51
55
  return WarehousingProviders.findOne(generateDbFilterById(warehousingProviderId), options);
52
56
  },
53
57
 
58
+ findToken: async ({ tokenId }, options) => {
59
+ return TokenSurrogates.findOne(generateDbFilterById(tokenId), options);
60
+ },
61
+
62
+ findTokens: async ({ userId }, options) => {
63
+ return TokenSurrogates.find({ userId }, options).toArray();
64
+ },
65
+
54
66
  findProviders: async (query, options) => {
55
67
  const providers = WarehousingProviders.find(buildFindSelector(query), options);
56
68
  return providers.toArray();
@@ -120,6 +132,51 @@ export const configureWarehousingModule = async ({
120
132
  return director.estimatedStock();
121
133
  },
122
134
 
135
+ updateTokenOwnership: async ({ tokenId, userId, walletAddress }) => {
136
+ await TokenSurrogates.updateOne(
137
+ { _id: tokenId },
138
+ {
139
+ $set: {
140
+ userId,
141
+ walletAddress,
142
+ },
143
+ },
144
+ );
145
+ },
146
+
147
+ tokenizeItems: async (order, { items }, requestContext) => {
148
+ const virtualProviders = await WarehousingProviders.find(
149
+ buildFindSelector({ type: WarehousingProviderType.VIRTUAL }),
150
+ ).toArray();
151
+
152
+ await Promise.all(
153
+ items.map(async ({ orderPosition, product }) => {
154
+ const warehousingContext: WarehousingContext = {
155
+ order,
156
+ orderPosition,
157
+ product,
158
+ quantity: orderPosition.quantity,
159
+ referenceDate: order.ordered,
160
+ };
161
+ await virtualProviders.reduce(async (lastPromise, provider) => {
162
+ const last = await lastPromise;
163
+ if (last) return last;
164
+ const currentDirector = await WarehousingDirector.actions(
165
+ provider,
166
+ warehousingContext,
167
+ requestContext,
168
+ );
169
+ const isActive = await currentDirector.isActive();
170
+ if (isActive) {
171
+ const tokenSurrogates = await currentDirector.tokenize();
172
+ await TokenSurrogates.insertMany(tokenSurrogates);
173
+ }
174
+ return true;
175
+ }, Promise.resolve(false));
176
+ }),
177
+ );
178
+ },
179
+
123
180
  isActive: async (warehousingProvider, requestContext) => {
124
181
  const actions = await WarehousingDirector.actions(warehousingProvider, {}, requestContext);
125
182
  return actions.isActive();