@unchainedshop/platform 2.1.0 → 2.2.0

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.
@@ -84,7 +84,7 @@ export const createBulkImporterFactory = (db, bulkImporterOptions) => {
84
84
  },
85
85
  execute: async () => {
86
86
  logger.info(`Execute bulk operations for: ${Object.keys(bulkOperations).join(', ')}`);
87
- const processedBulkOperations = await Promise.allSettled(Object.values(bulkOperations).map((o) => o.execute()));
87
+ const processedBulkOperations = await Promise.allSettled(Object.values(bulkOperations).map(async (o) => o.execute()));
88
88
  const operationResults = {
89
89
  processedOperations,
90
90
  processedBulkOperations,
@@ -1 +1 @@
1
- {"version":3,"file":"createBulkImporter.js","sourceRoot":"","sources":["../../src/bulk-importer/createBulkImporter.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,KAAK,kBAAkB,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,cAAc,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAC;AAE/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,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAC3D,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
+ {"version":3,"file":"createBulkImporter.js","sourceRoot":"","sources":["../../src/bulk-importer/createBulkImporter.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,77 @@ export const setupAccounts = (unchainedAPI) => {
48
48
  return user;
49
49
  },
50
50
  };
51
+ accountsServer.services.oauth2 = {
52
+ async authenticate({ authorizationCode, provider, redirectUrl, }) {
53
+ if (!authorizationCode || !provider) {
54
+ return undefined;
55
+ }
56
+ const { modules, services } = unchainedAPI;
57
+ const authorizationToken = await modules.accounts.oAuth2.getAuthorizationToken(provider, authorizationCode, redirectUrl);
58
+ if (!authorizationToken)
59
+ throw new Error('Unable to authorize user');
60
+ const data = await modules.accounts.oAuth2.getAccountData(provider, authorizationToken);
61
+ if (!data?.id) {
62
+ throw new Error('OAuth authentication failed or no id returned from service');
63
+ }
64
+ const user = await unchainedAPI.modules.users.findUser({
65
+ [`services.oauth.${provider}.id`]: data.id,
66
+ });
67
+ if (!user) {
68
+ const newUserId = await unchainedAPI.modules.accounts.createUser({
69
+ username: data.username || `${data.id}`,
70
+ email: data.email,
71
+ guest: false,
72
+ initialPassword: undefined,
73
+ password: undefined,
74
+ profile: {
75
+ address: {
76
+ firstName: data?.firstName,
77
+ lastName: data?.lastName,
78
+ addressLine: data?.address,
79
+ city: data?.city,
80
+ countryCode: data?.countryCode,
81
+ regionCode: data?.regionCode,
82
+ postalCode: data?.postalCode,
83
+ company: data?.company,
84
+ },
85
+ gender: data?.gender,
86
+ phoneMobile: data?.phoneNumber,
87
+ displayName: data?.displayName,
88
+ birthday: data?.birthDate,
89
+ },
90
+ }, { skipPasswordEnrollment: true });
91
+ await modules.users.updateUser({ _id: newUserId }, {
92
+ $push: {
93
+ [`services.oauth.${provider}`]: {
94
+ id: data.id,
95
+ authorizationToken,
96
+ authorizationCode,
97
+ data,
98
+ },
99
+ },
100
+ }, { upsert: true });
101
+ if (data?.avatarUrl) {
102
+ const file = await services.files.uploadFileFromURL({
103
+ directoryName: 'user-avatars',
104
+ fileInput: {
105
+ fileLink: data.avatarUrl,
106
+ fileName: `${data.firstName}-avatar`,
107
+ },
108
+ meta: { userId: newUserId },
109
+ }, unchainedAPI);
110
+ if (user?.avatarId) {
111
+ await services.files.removeFiles({
112
+ fileIds: [user.avatarId],
113
+ }, unchainedAPI);
114
+ }
115
+ await modules.users.updateAvatar(newUserId, file._id);
116
+ return unchainedAPI.modules.users.findUser({ _id: newUserId });
117
+ }
118
+ }
119
+ return user;
120
+ },
121
+ };
51
122
  accountsServer.on('LoginTokenCreated', async (props) => {
52
123
  const { userId, connection = {} } = props;
53
124
  // TODO: Doubt that there is countryContext etc. here?
@@ -1 +1 @@
1
- {"version":3,"file":"setupAccounts.js","sourceRoot":"","sources":["../../src/setup/setupAccounts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setupAccounts.js","sourceRoot":"","sources":["../../src/setup/setupAccounts.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.1.0",
3
+ "version": "2.2.0",
4
4
  "main": "lib/platform-index.js",
5
5
  "exports": {
6
6
  ".": "./lib/platform-index.js",
@@ -31,26 +31,25 @@
31
31
  },
32
32
  "homepage": "https://github.com/unchainedshop/unchained#readme",
33
33
  "dependencies": {
34
- "@unchainedshop/api": "^2.1.0",
35
- "@unchainedshop/core": "^2.1.0",
36
- "@unchainedshop/events": "^2.1.0",
37
- "@unchainedshop/file-upload": "^2.1.0",
38
- "@unchainedshop/logger": "^2.1.0",
39
- "@unchainedshop/mongodb": "^2.1.0",
40
- "@unchainedshop/plugins": "^2.1.0",
41
- "@unchainedshop/roles": "^2.1.0",
42
- "@unchainedshop/utils": "^2.1.0",
34
+ "@unchainedshop/api": "^2.2.0",
35
+ "@unchainedshop/core": "^2.2.0",
36
+ "@unchainedshop/events": "^2.2.0",
37
+ "@unchainedshop/file-upload": "^2.2.0",
38
+ "@unchainedshop/logger": "^2.2.0",
39
+ "@unchainedshop/mongodb": "^2.2.0",
40
+ "@unchainedshop/plugins": "^2.2.0",
41
+ "@unchainedshop/roles": "^2.2.0",
42
+ "@unchainedshop/utils": "^2.2.0",
43
43
  "event-iterator": "^2.0.0",
44
44
  "JSONStream": "^1.3.5",
45
- "moniker": "0.1.2",
46
- "open": "^8.4.2"
45
+ "moniker": "0.1.2"
47
46
  },
48
47
  "devDependencies": {
49
- "@types/node": "^18.14.2",
50
- "@unchainedshop/types": "^2.1.0",
48
+ "@types/node": "^18.16.5",
49
+ "@unchainedshop/types": "^2.2.0",
51
50
  "cross-env": "^7.0.3",
52
- "jest": "^29.4.3",
53
- "ts-jest": "^29.0.5",
51
+ "jest": "^29.5.0",
52
+ "ts-jest": "^29.1.0",
54
53
  "typescript": "^4.9.5"
55
54
  }
56
55
  }
@@ -103,7 +103,7 @@ export const createBulkImporterFactory = (db, bulkImporterOptions: any): BulkImp
103
103
  logger.info(`Execute bulk operations for: ${Object.keys(bulkOperations).join(', ')}`);
104
104
 
105
105
  const processedBulkOperations = await Promise.allSettled(
106
- Object.values(bulkOperations).map((o: any) => o.execute()),
106
+ Object.values(bulkOperations).map(async (o: any) => o.execute()),
107
107
  );
108
108
  const operationResults = {
109
109
  processedOperations,
@@ -71,6 +71,110 @@ export const setupAccounts = (unchainedAPI: UnchainedCore) => {
71
71
  },
72
72
  };
73
73
 
74
+ accountsServer.services.oauth2 = {
75
+ async authenticate({
76
+ authorizationCode,
77
+ provider,
78
+ redirectUrl,
79
+ }: {
80
+ authorizationCode: any;
81
+ provider: string;
82
+ redirectUrl: string;
83
+ }): Promise<any> {
84
+ if (!authorizationCode || !provider) {
85
+ return undefined;
86
+ }
87
+
88
+ const { modules, services } = unchainedAPI;
89
+
90
+ const authorizationToken = await modules.accounts.oAuth2.getAuthorizationToken(
91
+ provider,
92
+ authorizationCode,
93
+ redirectUrl,
94
+ );
95
+
96
+ if (!authorizationToken) throw new Error('Unable to authorize user');
97
+ const data = await modules.accounts.oAuth2.getAccountData(provider, authorizationToken);
98
+ if (!data?.id) {
99
+ throw new Error('OAuth authentication failed or no id returned from service');
100
+ }
101
+
102
+ const user = await unchainedAPI.modules.users.findUser({
103
+ [`services.oauth.${provider}.id`]: data.id,
104
+ });
105
+
106
+ if (!user) {
107
+ const newUserId = await unchainedAPI.modules.accounts.createUser(
108
+ {
109
+ username: data.username || `${data.id}`,
110
+ email: data.email,
111
+ guest: false,
112
+ initialPassword: undefined,
113
+ password: undefined,
114
+ profile: {
115
+ address: {
116
+ firstName: data?.firstName,
117
+ lastName: data?.lastName,
118
+ addressLine: data?.address,
119
+ city: data?.city,
120
+ countryCode: data?.countryCode,
121
+ regionCode: data?.regionCode,
122
+ postalCode: data?.postalCode,
123
+ company: data?.company,
124
+ },
125
+ gender: data?.gender,
126
+ phoneMobile: data?.phoneNumber,
127
+ displayName: data?.displayName,
128
+ birthday: data?.birthDate,
129
+ },
130
+ },
131
+ { skipPasswordEnrollment: true },
132
+ );
133
+
134
+ await modules.users.updateUser(
135
+ { _id: newUserId },
136
+ {
137
+ $push: {
138
+ [`services.oauth.${provider}`]: {
139
+ id: data.id,
140
+ authorizationToken,
141
+ authorizationCode,
142
+ data,
143
+ },
144
+ },
145
+ },
146
+ { upsert: true },
147
+ );
148
+
149
+ if (data?.avatarUrl) {
150
+ const file = await services.files.uploadFileFromURL(
151
+ {
152
+ directoryName: 'user-avatars',
153
+ fileInput: {
154
+ fileLink: data.avatarUrl,
155
+ fileName: `${data.firstName}-avatar`,
156
+ },
157
+ meta: { userId: newUserId },
158
+ },
159
+ unchainedAPI,
160
+ );
161
+ if (user?.avatarId) {
162
+ await services.files.removeFiles(
163
+ {
164
+ fileIds: [user.avatarId as string],
165
+ },
166
+ unchainedAPI,
167
+ );
168
+ }
169
+ await modules.users.updateAvatar(newUserId, file._id);
170
+ return unchainedAPI.modules.users.findUser({ _id: newUserId });
171
+ }
172
+ }
173
+
174
+ return user;
175
+ },
176
+ };
177
+
74
178
  accountsServer.on('LoginTokenCreated', async (props) => {
75
179
  const { userId, connection = {} } = props;
76
180