@or-sdk/authorizer 0.25.0-beta.990.0 → 0.25.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.
Files changed (109) hide show
  1. package/CHANGELOG.md +317 -0
  2. package/README.md +12 -32
  3. package/dist/cjs/Basic/BasicCollection.js +166 -26
  4. package/dist/cjs/Basic/BasicCollection.js.map +1 -1
  5. package/dist/cjs/Basic/utils/createAuthKey.js +4 -0
  6. package/dist/cjs/Basic/utils/createAuthKey.js.map +1 -1
  7. package/dist/cjs/OAuth/OAuth.js +92 -138
  8. package/dist/cjs/OAuth/OAuth.js.map +1 -1
  9. package/dist/cjs/OAuth/index.js +1 -3
  10. package/dist/cjs/OAuth/index.js.map +1 -1
  11. package/dist/cjs/OAuth/types.js +1 -1
  12. package/dist/cjs/OAuth/types.js.map +1 -1
  13. package/dist/cjs/OAuth/utils/ServiceDefinition.js.map +1 -1
  14. package/dist/cjs/OAuth/utils/createAuthKey.js +4 -0
  15. package/dist/cjs/OAuth/utils/createAuthKey.js.map +1 -1
  16. package/dist/cjs/OAuth/utils/createOAuthHelper.js +379 -0
  17. package/dist/cjs/OAuth/utils/createOAuthHelper.js.map +1 -0
  18. package/dist/cjs/OAuth/utils/formatScope.js.map +1 -1
  19. package/dist/cjs/{OAuth → OAuthCollection}/OAuthCollection.js +132 -28
  20. package/dist/cjs/OAuthCollection/OAuthCollection.js.map +1 -0
  21. package/dist/cjs/OAuthCollection/index.js +21 -0
  22. package/dist/cjs/OAuthCollection/index.js.map +1 -0
  23. package/dist/cjs/Token/TokenCollection.js +166 -21
  24. package/dist/cjs/Token/TokenCollection.js.map +1 -1
  25. package/dist/cjs/Token/utils/createAuthKey.js +4 -0
  26. package/dist/cjs/Token/utils/createAuthKey.js.map +1 -1
  27. package/dist/cjs/constants.js +3 -2
  28. package/dist/cjs/constants.js.map +1 -1
  29. package/dist/cjs/index.js +2 -1
  30. package/dist/cjs/index.js.map +1 -1
  31. package/dist/esm/Basic/BasicCollection.js +115 -17
  32. package/dist/esm/Basic/BasicCollection.js.map +1 -1
  33. package/dist/esm/Basic/utils/createAuthKey.js +3 -0
  34. package/dist/esm/Basic/utils/createAuthKey.js.map +1 -1
  35. package/dist/esm/OAuth/OAuth.js +56 -115
  36. package/dist/esm/OAuth/OAuth.js.map +1 -1
  37. package/dist/esm/OAuth/index.js +0 -1
  38. package/dist/esm/OAuth/index.js.map +1 -1
  39. package/dist/esm/OAuth/types.js.map +1 -1
  40. package/dist/esm/OAuth/utils/ServiceDefinition.js.map +1 -1
  41. package/dist/esm/OAuth/utils/createAuthKey.js +3 -0
  42. package/dist/esm/OAuth/utils/createAuthKey.js.map +1 -1
  43. package/dist/esm/OAuth/utils/createOAuthHelper.js +262 -0
  44. package/dist/esm/OAuth/utils/createOAuthHelper.js.map +1 -0
  45. package/dist/esm/OAuth/utils/formatScope.js.map +1 -1
  46. package/dist/esm/OAuthCollection/OAuthCollection.js +190 -0
  47. package/dist/esm/OAuthCollection/OAuthCollection.js.map +1 -0
  48. package/dist/esm/OAuthCollection/index.js +3 -0
  49. package/dist/esm/OAuthCollection/index.js.map +1 -0
  50. package/dist/esm/Token/TokenCollection.js +115 -12
  51. package/dist/esm/Token/TokenCollection.js.map +1 -1
  52. package/dist/esm/Token/utils/createAuthKey.js +3 -0
  53. package/dist/esm/Token/utils/createAuthKey.js.map +1 -1
  54. package/dist/esm/constants.js +1 -0
  55. package/dist/esm/constants.js.map +1 -1
  56. package/dist/esm/index.js +2 -1
  57. package/dist/esm/index.js.map +1 -1
  58. package/dist/types/Basic/BasicCollection.d.ts +6 -4
  59. package/dist/types/Basic/BasicCollection.d.ts.map +1 -1
  60. package/dist/types/Basic/types.d.ts +20 -11
  61. package/dist/types/Basic/types.d.ts.map +1 -1
  62. package/dist/types/Basic/utils/createAuthKey.d.ts +1 -0
  63. package/dist/types/Basic/utils/createAuthKey.d.ts.map +1 -1
  64. package/dist/types/OAuth/OAuth.d.ts +8 -5
  65. package/dist/types/OAuth/OAuth.d.ts.map +1 -1
  66. package/dist/types/OAuth/index.d.ts +0 -1
  67. package/dist/types/OAuth/index.d.ts.map +1 -1
  68. package/dist/types/OAuth/types.d.ts +95 -19
  69. package/dist/types/OAuth/types.d.ts.map +1 -1
  70. package/dist/types/OAuth/utils/createAuthKey.d.ts +1 -0
  71. package/dist/types/OAuth/utils/createAuthKey.d.ts.map +1 -1
  72. package/dist/types/OAuth/utils/createOAuthHelper.d.ts +33 -0
  73. package/dist/types/OAuth/utils/createOAuthHelper.d.ts.map +1 -0
  74. package/dist/types/OAuthCollection/OAuthCollection.d.ts +27 -0
  75. package/dist/types/OAuthCollection/OAuthCollection.d.ts.map +1 -0
  76. package/dist/types/OAuthCollection/index.d.ts +3 -0
  77. package/dist/types/OAuthCollection/index.d.ts.map +1 -0
  78. package/dist/types/Token/TokenCollection.d.ts +5 -2
  79. package/dist/types/Token/TokenCollection.d.ts.map +1 -1
  80. package/dist/types/Token/types.d.ts +19 -5
  81. package/dist/types/Token/types.d.ts.map +1 -1
  82. package/dist/types/Token/utils/createAuthKey.d.ts +1 -0
  83. package/dist/types/Token/utils/createAuthKey.d.ts.map +1 -1
  84. package/dist/types/constants.d.ts +1 -0
  85. package/dist/types/constants.d.ts.map +1 -1
  86. package/dist/types/index.d.ts +2 -1
  87. package/dist/types/index.d.ts.map +1 -1
  88. package/package.json +32 -26
  89. package/src/Basic/BasicCollection.ts +170 -18
  90. package/src/Basic/types.ts +17 -14
  91. package/src/Basic/utils/createAuthKey.ts +4 -0
  92. package/src/OAuth/OAuth.ts +111 -195
  93. package/src/OAuth/index.ts +0 -1
  94. package/src/OAuth/types.ts +171 -15
  95. package/src/OAuth/utils/createAuthKey.ts +8 -0
  96. package/src/OAuth/utils/createOAuthHelper.ts +374 -0
  97. package/src/OAuthCollection/OAuthCollection.ts +348 -0
  98. package/src/OAuthCollection/index.ts +3 -0
  99. package/src/Token/TokenCollection.ts +174 -16
  100. package/src/Token/types.ts +15 -0
  101. package/src/Token/utils/createAuthKey.ts +4 -0
  102. package/src/constants.ts +1 -0
  103. package/src/index.ts +2 -1
  104. package/dist/cjs/OAuth/OAuthCollection.js.map +0 -1
  105. package/dist/esm/OAuth/OAuthCollection.js +0 -120
  106. package/dist/esm/OAuth/OAuthCollection.js.map +0 -1
  107. package/dist/types/OAuth/OAuthCollection.d.ts +0 -21
  108. package/dist/types/OAuth/OAuthCollection.d.ts.map +0 -1
  109. package/src/OAuth/OAuthCollection.ts +0 -206
@@ -0,0 +1,379 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ var key_value_storage_1 = require("@or-sdk/key-value-storage");
51
+ var providers_1 = require("@or-sdk/providers");
52
+ var event_manager_1 = require("@or-sdk/event-manager");
53
+ var discovery_1 = require("@or-sdk/discovery");
54
+ var uuid_1 = require("uuid");
55
+ var constants_1 = require("./../../constants");
56
+ var formatScope_1 = require("./../utils/formatScope");
57
+ var ServiceDefinition_1 = require("./../utils/ServiceDefinition");
58
+ var createAuthKey_1 = require("./../utils/createAuthKey");
59
+ var OAuthCreator = (function () {
60
+ function OAuthCreator(params) {
61
+ this.authKey = '';
62
+ this.params = params;
63
+ this.validateInput();
64
+ this.keyValueStorage = new key_value_storage_1.KeyValueStorage({
65
+ accountId: params.crossAccount ? params.accountId : undefined,
66
+ sdkUrl: params.sdkUrl,
67
+ token: params.token,
68
+ });
69
+ this.providers = new providers_1.Providers({
70
+ token: params.token,
71
+ eventManagerUrl: params.eventManagerUrl,
72
+ providersAccountId: params.providersAccountId,
73
+ });
74
+ }
75
+ OAuthCreator.prototype.getOAuthParams = function () {
76
+ return __awaiter(this, void 0, void 0, function () {
77
+ var res, _a, redirectProviderUrl, redirectPath, authorizeUrl;
78
+ return __generator(this, function (_b) {
79
+ switch (_b.label) {
80
+ case 0:
81
+ if (!this.params.authKey) return [3, 2];
82
+ return [4, this.resolveReauthParams()];
83
+ case 1:
84
+ _b.sent();
85
+ _b.label = 2;
86
+ case 2: return [4, this.resolveDiscoveryParams()];
87
+ case 3:
88
+ _b.sent();
89
+ return [4, this.getAppAndService()];
90
+ case 4:
91
+ res = _b.sent();
92
+ this.service = res.serviceDefinition;
93
+ this.app = res.currentApp;
94
+ this.getAuthKey();
95
+ return [4, this.saveTempData()];
96
+ case 5:
97
+ _a = _b.sent(), redirectProviderUrl = _a.redirectProviderUrl, redirectPath = _a.redirectPath;
98
+ authorizeUrl = this.formAuthUrl(redirectPath, redirectProviderUrl);
99
+ if (this.params.dynamicCollection) {
100
+ this.saveToDynamicCollection;
101
+ }
102
+ return [2, {
103
+ oAuthParams: {
104
+ accountId: this.params.crossAccount ? this.params.accountId : undefined,
105
+ authKey: this.params.useNextProvider ? ('::' + this.authKey.split('::').slice(1, 3).join('::')) : this.authKey,
106
+ authName: this.params.authName,
107
+ discoveryUrl: this.params.discoveryUrl,
108
+ dynamicCollection: this.params.dynamicCollection,
109
+ eventManagerUrl: this.params.eventManagerUrl,
110
+ providersAccountId: this.params.providersAccountId,
111
+ serviceName: this.params.serviceName,
112
+ token: this.params.token,
113
+ },
114
+ authorizeUrl: authorizeUrl,
115
+ }];
116
+ }
117
+ });
118
+ });
119
+ };
120
+ OAuthCreator.prototype.validateInput = function () {
121
+ var _a = this.params, accountId = _a.accountId, _b = _a.crossAccount, crossAccount = _b === void 0 ? true : _b, _c = _a.destinationAccount, destinationAccount = _c === void 0 ? 'CURRENT' : _c, eventManagerUrl = _a.eventManagerUrl, providersAccountId = _a.providersAccountId, sdkUrl = _a.sdkUrl;
122
+ if (!this.params.authKey) {
123
+ if (!this.params.appId) {
124
+ throw new Error('Application ID is missing');
125
+ }
126
+ else if (!this.params.authName) {
127
+ throw new Error('Authorization name is missing');
128
+ }
129
+ }
130
+ if (!this.params.serviceName) {
131
+ throw new Error('Service name is missing');
132
+ }
133
+ else if (!this.params.token) {
134
+ throw new Error('Authorization token is missing');
135
+ }
136
+ if (!sdkUrl || !eventManagerUrl || !providersAccountId || !accountId) {
137
+ if (!this.params.discoveryUrl) {
138
+ throw new Error('Discovery URL is missing.');
139
+ }
140
+ }
141
+ this.params.destinationAccount = destinationAccount;
142
+ this.params.crossAccount = crossAccount;
143
+ this.params.keyValueCollection =
144
+ this.params.keyValueCollection || this.params.serviceName;
145
+ };
146
+ OAuthCreator.prototype.resolveDiscoveryParams = function () {
147
+ return __awaiter(this, void 0, void 0, function () {
148
+ var _a, accountId, eventManagerUrl, providersAccountId, discovery, _b, _c, _d;
149
+ return __generator(this, function (_e) {
150
+ switch (_e.label) {
151
+ case 0:
152
+ _a = this.params, accountId = _a.accountId, eventManagerUrl = _a.eventManagerUrl, providersAccountId = _a.providersAccountId;
153
+ if (accountId && eventManagerUrl && providersAccountId) {
154
+ return [2];
155
+ }
156
+ discovery = new discovery_1.Discovery({
157
+ token: this.params.token,
158
+ discoveryUrl: this.params.discoveryUrl,
159
+ });
160
+ if (!!accountId) return [3, 2];
161
+ _b = this.params;
162
+ return [4, discovery.getCurrentAccountId().catch(function () {
163
+ throw new Error('Could not request current account ID');
164
+ })];
165
+ case 1:
166
+ _b.accountId = _e.sent();
167
+ _e.label = 2;
168
+ case 2:
169
+ if (!!eventManagerUrl) return [3, 4];
170
+ _c = this.params;
171
+ return [4, discovery.getServiceUrl(event_manager_1.EVENT_MANAGER_SERVICE_KEY).catch(function () {
172
+ throw new Error('Could not request current Event Manager URL');
173
+ })];
174
+ case 3:
175
+ _c.eventManagerUrl = _e.sent();
176
+ _e.label = 4;
177
+ case 4:
178
+ if (!!providersAccountId) return [3, 6];
179
+ _d = this.params;
180
+ return [4, discovery.getProvidersAccountId().catch(function () {
181
+ throw new Error('Could not request provider`s account ID');
182
+ })];
183
+ case 5:
184
+ _d.providersAccountId = _e.sent();
185
+ _e.label = 6;
186
+ case 6: return [2];
187
+ }
188
+ });
189
+ });
190
+ };
191
+ OAuthCreator.prototype.getAppAndService = function () {
192
+ return __awaiter(this, void 0, void 0, function () {
193
+ var services, localServices, currentServiceData, apps, currentApp;
194
+ var _this = this;
195
+ return __generator(this, function (_a) {
196
+ switch (_a.label) {
197
+ case 0: return [4, this.providers.makeRequest({
198
+ method: 'GET',
199
+ route: constants_1.SERVICE_PROVIDER_PATH,
200
+ params: {
201
+ type: 'list',
202
+ },
203
+ }).catch(function () { throw new Error('Could not request services list'); })];
204
+ case 1:
205
+ services = _a.sent();
206
+ return [4, this.keyValueStorage.listKeys('__authorization_service_predefined_services_local', undefined, true)];
207
+ case 2:
208
+ localServices = _a.sent();
209
+ localServices.items.forEach(function (el) { return (services[el.key] = el.value); });
210
+ currentServiceData = services[this.params.serviceName];
211
+ if (!currentServiceData) {
212
+ throw new Error('Service name is incorrect');
213
+ }
214
+ return [4, this.keyValueStorage.getValueByKey(this.params.keyValueCollection, '__authorizer_apps')];
215
+ case 3:
216
+ apps = _a.sent();
217
+ if (!apps || !apps.value) {
218
+ throw new Error('Apps are missing in service collection');
219
+ }
220
+ currentApp = apps.value.find(function (app) { return app.value.appId === _this.params.appId; }).value;
221
+ return [2, {
222
+ currentApp: currentApp,
223
+ serviceDefinition: new ServiceDefinition_1.ServiceDefinition(currentServiceData, currentApp.authLinkParams, currentApp.environment),
224
+ }];
225
+ }
226
+ });
227
+ });
228
+ };
229
+ OAuthCreator.prototype.resolveReauthParams = function () {
230
+ return __awaiter(this, void 0, void 0, function () {
231
+ var old_auth_record, old_auth;
232
+ return __generator(this, function (_a) {
233
+ switch (_a.label) {
234
+ case 0: return [4, this.keyValueStorage.getValueByKey(this.params.keyValueCollection, this.params.authKey)];
235
+ case 1:
236
+ old_auth_record = _a.sent();
237
+ old_auth = old_auth_record.value;
238
+ if (!old_auth) {
239
+ throw new Error('Could not reauthorize non-existing authorization');
240
+ }
241
+ if (old_auth.isRemote) {
242
+ throw new Error('Reauthorization of remote authorizations is not implemented.');
243
+ }
244
+ this.params.appId = old_auth.appId;
245
+ this.params.scope = old_auth.scope;
246
+ this.params.authName = old_auth.authName;
247
+ return [2];
248
+ }
249
+ });
250
+ });
251
+ };
252
+ OAuthCreator.prototype.getAuthKey = function () {
253
+ var id = (0, uuid_1.v4)();
254
+ if (this.params.authKey) {
255
+ if (this.params.authKey[0] === ':') {
256
+ this.params.useNextProvider = true;
257
+ this.authKey = id + this.params.authKey;
258
+ }
259
+ else {
260
+ this.params.useNextProvider = false;
261
+ this.authKey = this.params.authKey;
262
+ }
263
+ }
264
+ else {
265
+ var keyAccountId = this.params.destinationAccount === 'CURRENT' ? this.params.accountId :
266
+ this.params.destinationAccount === 'PROVIDER' ? this.params.providersAccountId :
267
+ this.params.destinationAccount === 'CUSTOM' ? this.params.customAccountId : null;
268
+ this.authKey = this.params.dynamicCollection ?
269
+ (0, createAuthKey_1.createDynamicKey)(id, this.params.dynamicCollection, this.params.serviceName, keyAccountId || null) :
270
+ (0, createAuthKey_1.createAuthKey)(id, this.params.authName, this.params.keyValueCollection, keyAccountId || null);
271
+ }
272
+ };
273
+ OAuthCreator.prototype.saveTempData = function () {
274
+ return __awaiter(this, void 0, void 0, function () {
275
+ var redirectPath, redirectProviderUrl, serviceDefinition, authConfigs, configs, tempAuthData, authDataExpire;
276
+ var _a;
277
+ return __generator(this, function (_b) {
278
+ switch (_b.label) {
279
+ case 0:
280
+ redirectPath = this.params.useNextProvider ? constants_1.NEXT_OAUTH_REDIRECT_PROVIDER_PATH : constants_1.OAUTH_REDIRECT_PROVIDER_PATH;
281
+ redirectProviderUrl = "".concat(this.params.eventManagerUrl, "/http/").concat(this.params.providersAccountId).concat(redirectPath);
282
+ serviceDefinition = this.service;
283
+ authConfigs = __assign(__assign({}, (this.params.additionalBodyData || {})), { grant_type: 'authorization_code', redirect_uri: redirectProviderUrl, appId: this.params.appId });
284
+ if (this.params.scope) {
285
+ authConfigs.scope = this.params.authKey ?
286
+ this.params.scope :
287
+ (0, formatScope_1.formatScope)(this.params.scope, serviceDefinition.scopeType);
288
+ }
289
+ configs = (_a = {},
290
+ _a[serviceDefinition.requestDataType] = authConfigs,
291
+ _a);
292
+ tempAuthData = {
293
+ accountId: this.params.accountId,
294
+ additionalHeaders: this.params.additionalHeaders || {},
295
+ configs: configs,
296
+ displayServiceName: serviceDefinition.displayServiceName,
297
+ expiresInDefaultValue: serviceDefinition.expiresInDefaultValue,
298
+ isCustomApp: this.params.appId !== constants_1.PREDEFINED_APP,
299
+ name: this.params.authName,
300
+ refreshUri: serviceDefinition.refreshUri,
301
+ requestDataType: serviceDefinition.requestDataType,
302
+ service: this.params.keyValueCollection,
303
+ serviceConfigName: this.params.serviceName,
304
+ storeAccount: this.params.destinationAccount,
305
+ storeCustomAccountId: this.params.destinationAccount === 'CUSTOM' ? this.params.customAccountId : undefined,
306
+ urlToExchangeToken: serviceDefinition.exchangeTokenUri,
307
+ };
308
+ authDataExpire = Date.now() + constants_1.TEMPORARY_DATA_EXPIRATION_TIME;
309
+ return [4, this.keyValueStorage.setValueByKey('__authorizer_temp-uuid', this.authKey.split('::')[0], tempAuthData, authDataExpire)];
310
+ case 1:
311
+ _b.sent();
312
+ return [2, {
313
+ redirectPath: redirectPath,
314
+ redirectProviderUrl: redirectProviderUrl,
315
+ }];
316
+ }
317
+ });
318
+ });
319
+ };
320
+ OAuthCreator.prototype.formAuthUrl = function (redirectPath, redirectProviderUrl) {
321
+ var serviceDefinition = this.service;
322
+ var currentApp = this.app;
323
+ var authUrl = new URL(serviceDefinition.authorizeUri);
324
+ var additionalParams = JSON.parse(serviceDefinition.authRequestAdditionalParams);
325
+ Object.entries(additionalParams.queryParams).forEach(function (_a) {
326
+ var key = _a[0], value = _a[1];
327
+ authUrl.searchParams.append(key, value);
328
+ });
329
+ authUrl.searchParams.append('response_type', 'code');
330
+ authUrl.searchParams.append('client_id', currentApp.clientId);
331
+ authUrl.searchParams.append('redirect_uri', redirectProviderUrl);
332
+ authUrl.searchParams.append('state', this.authKey);
333
+ if (this.params.scope) {
334
+ authUrl.searchParams.append('scope', this.params.authKey ?
335
+ this.params.scope :
336
+ (0, formatScope_1.formatScope)(this.params.scope, serviceDefinition.scopeType));
337
+ }
338
+ if (this.params.userScope) {
339
+ authUrl.searchParams.append('user_scope', this.params.userScope);
340
+ }
341
+ if (this.params.useNonce) {
342
+ authUrl.searchParams.append('nonce', (0, uuid_1.v4)());
343
+ }
344
+ return authUrl.href;
345
+ };
346
+ OAuthCreator.prototype.saveToDynamicCollection = function () {
347
+ return __awaiter(this, void 0, void 0, function () {
348
+ var value, collection;
349
+ return __generator(this, function (_a) {
350
+ switch (_a.label) {
351
+ case 0: return [4, this.keyValueStorage.getValueByKey('__authorizer_dynamic_collections', this.params.dynamicCollection)];
352
+ case 1:
353
+ value = (_a.sent()).value;
354
+ collection = (value || {
355
+ name: this.params.dynamicCollection,
356
+ type: 'oauth',
357
+ service: this.params.serviceName,
358
+ serviceConfigName: this.params.serviceName,
359
+ authorizations: {},
360
+ });
361
+ if (!collection.authorizations[this.params.authName]) return [3, 3];
362
+ return [4, this.keyValueStorage.deleteKey(this.params.serviceName, collection.authorizations[this.params.authName])];
363
+ case 2:
364
+ _a.sent();
365
+ _a.label = 3;
366
+ case 3:
367
+ collection.authorizations[this.params.authName] = this.authKey;
368
+ return [4, this.keyValueStorage.setValueByKey('__authorizer_dynamic_collections', this.params.dynamicCollection, collection)];
369
+ case 4:
370
+ _a.sent();
371
+ return [2];
372
+ }
373
+ });
374
+ });
375
+ };
376
+ return OAuthCreator;
377
+ }());
378
+ exports.default = OAuthCreator;
379
+ //# sourceMappingURL=createOAuthHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createOAuthHelper.js","sourceRoot":"","sources":["../../../../src/OAuth/utils/createOAuthHelper.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"formatScope.js","sourceRoot":"","sources":["../../../../src/OAuth/utils/formatScope.ts"],"names":[],"mappings":";;;AAAA,kCAAqC;AAE9B,IAAM,WAAW,GAAG,UAAC,UAAoB,EAAE,SAAoB;IACpE,QAAQ,SAAS,EAAE;QACjB,KAAK,iBAAS,CAAC,eAAe;YAC5B,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAErC,KAAK,iBAAS,CAAC,eAAe;YAC5B,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAEtC,KAAK,iBAAS,CAAC,kCAAkC;YAC/C,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAErC,KAAK,iBAAS,CAAC,UAAU;YACvB,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAEpC;YACE,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;KACtC;AACH,CAAC,CAAC;AAjBW,QAAA,WAAW,eAiBtB"}
1
+ {"version":3,"file":"formatScope.js","sourceRoot":"","sources":["../../../../src/OAuth/utils/formatScope.ts"],"names":[],"mappings":";;;AAAA,kCAAqC;AAE9B,IAAM,WAAW,GAAG,UAAC,UAAoB,EAAE,SAAoB;IACpE,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,iBAAS,CAAC,eAAe;YAC5B,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAErC,KAAK,iBAAS,CAAC,eAAe;YAC5B,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAEtC,KAAK,iBAAS,CAAC,kCAAkC;YAC/C,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAErC,KAAK,iBAAS,CAAC,UAAU;YACvB,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAEpC;YACE,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;AACH,CAAC,CAAC;AAjBW,QAAA,WAAW,eAiBtB"}
@@ -25,7 +25,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
25
25
  function verb(n) { return function (v) { return step([n, v]); }; }
26
26
  function step(op) {
27
27
  if (f) throw new TypeError("Generator is already executing.");
28
- while (_) try {
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
29
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
30
  if (y = 0, t) op = [op[0] & 2, t.value];
31
31
  switch (op[0]) {
@@ -60,23 +60,30 @@ exports.OAuthCollection = void 0;
60
60
  var base_1 = require("@or-sdk/base");
61
61
  var key_value_storage_1 = require("@or-sdk/key-value-storage");
62
62
  var providers_1 = require("@or-sdk/providers");
63
- var OAuth_1 = require("./OAuth");
63
+ var OAuth_1 = require("../OAuth/OAuth");
64
64
  var OAuthCollection = (function () {
65
65
  function OAuthCollection(params) {
66
- var token = params.token, discoveryUrl = params.discoveryUrl, accountId = params.accountId, serviceName = params.serviceName, keyValueCollection = params.keyValueCollection;
66
+ var token = params.token, discoveryUrl = params.discoveryUrl, accountId = params.accountId, serviceName = params.serviceName, keyValueCollection = params.keyValueCollection, eventManagerUrl = params.eventManagerUrl, providersAccountId = params.providersAccountId, sdkUrl = params.sdkUrl, _a = params.crossAccount, crossAccount = _a === void 0 ? true : _a;
67
67
  this.token = token;
68
+ this.sdkUrl = sdkUrl;
68
69
  this.accountId = accountId;
70
+ this.crossAccount = crossAccount;
69
71
  this.discoveryUrl = discoveryUrl;
70
72
  this.serviceName = serviceName || '';
73
+ this.eventManagerUrl = eventManagerUrl;
74
+ this.providersAccountId = providersAccountId;
71
75
  this.keyValueCollection = keyValueCollection || serviceName || '';
72
76
  this.keyValueStorage = new key_value_storage_1.KeyValueStorage({
73
77
  token: token,
74
78
  discoveryUrl: discoveryUrl,
75
- accountId: accountId,
79
+ accountId: crossAccount ? accountId : undefined,
80
+ sdkUrl: sdkUrl,
76
81
  });
77
82
  this.providers = new providers_1.Providers({
78
83
  token: token,
79
84
  discoveryUrl: discoveryUrl,
85
+ eventManagerUrl: eventManagerUrl,
86
+ providersAccountId: providersAccountId,
80
87
  });
81
88
  }
82
89
  OAuthCollection.prototype.init = function (params) {
@@ -84,18 +91,20 @@ var OAuthCollection = (function () {
84
91
  this.serviceName = serviceName || this.serviceName;
85
92
  this.keyValueCollection = keyValueCollection || this.keyValueCollection || this.serviceName;
86
93
  if (!this.serviceName) {
87
- throw new Error('Service Name is required.');
94
+ throw new Error('No service name provided.');
88
95
  }
89
96
  };
90
- OAuthCollection.prototype.listAuthorizations = function () {
97
+ OAuthCollection.prototype.listAuthorizations = function (dynamicCollection) {
91
98
  return __awaiter(this, void 0, void 0, function () {
92
- var records;
99
+ var records, pattern;
93
100
  return __generator(this, function (_a) {
94
101
  switch (_a.label) {
95
- case 0: return [4, this.keyValueStorage.listKeys(this.keyValueCollection || '')];
102
+ case 0: return [4, this.keyValueStorage.listKeys(this.keyValueCollection)];
96
103
  case 1:
97
104
  records = (_a.sent()).items;
98
- return [2, (0, base_1.makeList)(records.map(function (record) { return record.key; }).filter(function (key) { return key.includes('::oauth'); }))];
105
+ pattern = dynamicCollection ? "::oauth-collection::".concat(dynamicCollection) : '::oauth::';
106
+ return [2, (0, base_1.makeList)(records.map(function (record) { return record.key; })
107
+ .filter(function (key) { return key.includes(pattern); }))];
99
108
  }
100
109
  });
101
110
  });
@@ -117,25 +126,49 @@ var OAuthCollection = (function () {
117
126
  });
118
127
  });
119
128
  };
120
- OAuthCollection.prototype.getAuthorization = function (key) {
129
+ OAuthCollection.prototype.getAuthorization = function (key, dynamicCollection) {
121
130
  return __awaiter(this, void 0, void 0, function () {
122
- var record;
131
+ var authName, value, collection, value;
123
132
  return __generator(this, function (_a) {
124
133
  switch (_a.label) {
125
134
  case 0:
126
- if (!key.includes('::oauth'))
127
- throw new Error('The OAuth authorization key should contain "oauth" type specifier.');
128
- return [4, this.keyValueStorage.getValueByKey(this.keyValueCollection, encodeURIComponent(key))];
135
+ if (!this.serviceName)
136
+ throw new Error('No service name provided.');
137
+ authName = undefined;
138
+ if (!dynamicCollection) return [3, 2];
139
+ return [4, this.keyValueStorage.getValueByKey('__authorizer_dynamic_collections', dynamicCollection)];
129
140
  case 1:
130
- record = _a.sent();
131
- if (!record.value) {
141
+ value = (_a.sent()).value;
142
+ if (!value) {
143
+ throw new Error('Cynamic collection name is invalid');
144
+ }
145
+ collection = value;
146
+ if (collection.service !== this.serviceName) {
147
+ throw new Error('Dynamic Collection and is related to other service than SDK Service Name');
148
+ }
149
+ authName = key;
150
+ key = collection.authorizations[key];
151
+ return [3, 4];
152
+ case 2: return [4, this.keyValueStorage.getValueByKey(this.keyValueCollection, encodeURIComponent(key))];
153
+ case 3:
154
+ value = (_a.sent()).value;
155
+ if (!value) {
132
156
  throw new Error('This authorization does not exist');
133
157
  }
158
+ _a.label = 4;
159
+ case 4:
160
+ if (!key.includes('::oauth'))
161
+ throw new Error('The OAuth authorization key should contain "oauth" type specifier.');
134
162
  return [2, new OAuth_1.OAuth({
135
- serviceName: this.serviceName,
136
- keyValueCollection: this.keyValueCollection,
163
+ authName: authName,
137
164
  authKey: key,
165
+ dynamicCollection: dynamicCollection,
138
166
  discoveryUrl: this.discoveryUrl,
167
+ eventManagerUrl: this.eventManagerUrl,
168
+ keyValueCollection: this.keyValueCollection,
169
+ providersAccountId: this.providersAccountId,
170
+ sdkUrl: this.sdkUrl,
171
+ serviceName: this.serviceName,
139
172
  token: this.token,
140
173
  })];
141
174
  }
@@ -146,16 +179,10 @@ var OAuthCollection = (function () {
146
179
  return __awaiter(this, void 0, void 0, function () {
147
180
  return __generator(this, function (_a) {
148
181
  switch (_a.label) {
149
- case 0: return [4, OAuth_1.OAuth.create({
150
- appId: params.appId,
151
- scope: params.scope,
152
- authName: params.authName,
153
- token: this.token,
154
- accountId: this.accountId,
155
- serviceName: this.serviceName,
156
- discoveryUrl: this.discoveryUrl,
157
- keyValueCollection: this.keyValueCollection,
158
- })];
182
+ case 0:
183
+ if (!this.serviceName)
184
+ throw new Error('No service name provided.');
185
+ return [4, OAuth_1.OAuth.create(__assign(__assign({}, params), { accountId: this.accountId, crossAccount: this.crossAccount, discoveryUrl: this.discoveryUrl, eventManagerUrl: this.eventManagerUrl, keyValueCollection: this.keyValueCollection, providersAccountId: this.providersAccountId, sdkUrl: this.sdkUrl, serviceName: this.serviceName, token: this.token }))];
159
186
  case 1: return [2, _a.sent()];
160
187
  }
161
188
  });
@@ -202,6 +229,83 @@ var OAuthCollection = (function () {
202
229
  });
203
230
  });
204
231
  };
232
+ OAuthCollection.prototype.defineService = function (params) {
233
+ return __awaiter(this, void 0, void 0, function () {
234
+ var newService;
235
+ return __generator(this, function (_a) {
236
+ if (!this.serviceName)
237
+ throw new Error('No service name provided.');
238
+ newService = __assign(__assign({}, params), { serviceName: this.serviceName });
239
+ this.keyValueStorage.setValueByKey('__authorization_service_predefined_services_local', this.serviceName, newService);
240
+ return [2];
241
+ });
242
+ });
243
+ };
244
+ OAuthCollection.prototype.createDynamicCollection = function (dynamicCollectionName) {
245
+ return __awaiter(this, void 0, void 0, function () {
246
+ var value, collection;
247
+ return __generator(this, function (_a) {
248
+ switch (_a.label) {
249
+ case 0:
250
+ if (!this.serviceName)
251
+ throw new Error('No service name provided.');
252
+ if (!dynamicCollectionName)
253
+ throw new Error('Dynamic collection name is empty or invalid');
254
+ return [4, this.keyValueStorage.getValueByKey('__authorizer_dynamic_collections', dynamicCollectionName)];
255
+ case 1:
256
+ value = (_a.sent()).value;
257
+ collection = value;
258
+ if (!!value) return [3, 3];
259
+ return [4, this.keyValueStorage.setValueByKey('__authorizer_dynamic_collections', dynamicCollectionName, {
260
+ name: dynamicCollectionName,
261
+ type: 'oauth',
262
+ service: this.keyValueCollection,
263
+ serviceConfigName: this.serviceName,
264
+ authorizations: {},
265
+ })];
266
+ case 2:
267
+ _a.sent();
268
+ return [3, 4];
269
+ case 3:
270
+ if (collection.type === 'oauth' && collection.service === this.serviceName) {
271
+ throw new Error('Same collection already exists');
272
+ }
273
+ else {
274
+ throw new Error('Different collection exists with this name');
275
+ }
276
+ _a.label = 4;
277
+ case 4: return [2];
278
+ }
279
+ });
280
+ });
281
+ };
282
+ OAuthCollection.prototype.deleteDynamicCollection = function (dynamicCollectionName) {
283
+ return __awaiter(this, void 0, void 0, function () {
284
+ var value, collection;
285
+ var _this = this;
286
+ return __generator(this, function (_a) {
287
+ switch (_a.label) {
288
+ case 0:
289
+ if (!dynamicCollectionName)
290
+ throw new Error('Dynamic collection name is empty or invalid');
291
+ return [4, this.keyValueStorage.getValueByKey('__authorizer_dynamic_collections', dynamicCollectionName)];
292
+ case 1:
293
+ value = (_a.sent()).value;
294
+ collection = value;
295
+ return [4, Promise.all(Object.keys(collection.authorizations)
296
+ .map(function (authName) {
297
+ return _this.keyValueStorage.deleteKey(collection.service, encodeURIComponent(collection.authorizations[authName]));
298
+ })).catch(function () { })];
299
+ case 2:
300
+ _a.sent();
301
+ return [4, this.keyValueStorage.deleteKey('__authorizer_dynamic_collections', dynamicCollectionName)];
302
+ case 3:
303
+ _a.sent();
304
+ return [2];
305
+ }
306
+ });
307
+ });
308
+ };
205
309
  return OAuthCollection;
206
310
  }());
207
311
  exports.OAuthCollection = OAuthCollection;