@or-sdk/authorizer 0.24.17 → 0.24.18

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 (133) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +12 -32
  3. package/dist/cjs/Basic/BasicCollection.js +260 -27
  4. package/dist/cjs/Basic/BasicCollection.js.map +1 -1
  5. package/dist/cjs/Basic/index.js +21 -0
  6. package/dist/cjs/Basic/index.js.map +1 -0
  7. package/dist/cjs/Basic/utils/createAuthKey.js +5 -1
  8. package/dist/cjs/Basic/utils/createAuthKey.js.map +1 -1
  9. package/dist/cjs/OAuth/OAuth.js +114 -131
  10. package/dist/cjs/OAuth/OAuth.js.map +1 -1
  11. package/dist/cjs/OAuth/index.js +21 -0
  12. package/dist/cjs/OAuth/index.js.map +1 -0
  13. package/dist/cjs/OAuth/types.js.map +1 -1
  14. package/dist/cjs/OAuth/utils/createAuthKey.js +5 -1
  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/OAuthCollection/OAuthCollection.js +312 -0
  19. package/dist/cjs/OAuthCollection/OAuthCollection.js.map +1 -0
  20. package/dist/cjs/OAuthCollection/index.js +21 -0
  21. package/dist/cjs/OAuthCollection/index.js.map +1 -0
  22. package/dist/cjs/Token/TokenCollection.js +237 -26
  23. package/dist/cjs/Token/TokenCollection.js.map +1 -1
  24. package/dist/cjs/Token/index.js +21 -0
  25. package/dist/cjs/Token/index.js.map +1 -0
  26. package/dist/cjs/Token/utils/createAuthKey.js +5 -1
  27. package/dist/cjs/Token/utils/createAuthKey.js.map +1 -1
  28. package/dist/cjs/constants.js +2 -1
  29. package/dist/cjs/constants.js.map +1 -1
  30. package/dist/cjs/index.js +9 -13
  31. package/dist/cjs/index.js.map +1 -1
  32. package/dist/esm/Basic/BasicCollection.js +183 -23
  33. package/dist/esm/Basic/BasicCollection.js.map +1 -1
  34. package/dist/esm/Basic/index.js +3 -0
  35. package/dist/esm/Basic/index.js.map +1 -0
  36. package/dist/esm/Basic/utils/createAuthKey.js +3 -0
  37. package/dist/esm/Basic/utils/createAuthKey.js.map +1 -1
  38. package/dist/esm/OAuth/OAuth.js +73 -107
  39. package/dist/esm/OAuth/OAuth.js.map +1 -1
  40. package/dist/esm/OAuth/index.js +3 -0
  41. package/dist/esm/OAuth/index.js.map +1 -0
  42. package/dist/esm/OAuth/types.js.map +1 -1
  43. package/dist/esm/OAuth/utils/createAuthKey.js +3 -0
  44. package/dist/esm/OAuth/utils/createAuthKey.js.map +1 -1
  45. package/dist/esm/OAuth/utils/createOAuthHelper.js +262 -0
  46. package/dist/esm/OAuth/utils/createOAuthHelper.js.map +1 -0
  47. package/dist/esm/OAuthCollection/OAuthCollection.js +190 -0
  48. package/dist/esm/OAuthCollection/OAuthCollection.js.map +1 -0
  49. package/dist/esm/OAuthCollection/index.js +3 -0
  50. package/dist/esm/OAuthCollection/index.js.map +1 -0
  51. package/dist/esm/Token/TokenCollection.js +161 -23
  52. package/dist/esm/Token/TokenCollection.js.map +1 -1
  53. package/dist/esm/Token/index.js +3 -0
  54. package/dist/esm/Token/index.js.map +1 -0
  55. package/dist/esm/Token/utils/createAuthKey.js +3 -0
  56. package/dist/esm/Token/utils/createAuthKey.js.map +1 -1
  57. package/dist/esm/constants.js +1 -0
  58. package/dist/esm/constants.js.map +1 -1
  59. package/dist/esm/index.js +4 -6
  60. package/dist/esm/index.js.map +1 -1
  61. package/dist/types/Basic/BasicCollection.d.ts +20 -8
  62. package/dist/types/Basic/BasicCollection.d.ts.map +1 -1
  63. package/dist/types/Basic/index.d.ts +3 -0
  64. package/dist/types/Basic/index.d.ts.map +1 -0
  65. package/dist/types/Basic/types.d.ts +19 -8
  66. package/dist/types/Basic/types.d.ts.map +1 -1
  67. package/dist/types/Basic/utils/createAuthKey.d.ts +1 -0
  68. package/dist/types/Basic/utils/createAuthKey.d.ts.map +1 -1
  69. package/dist/types/OAuth/OAuth.d.ts +9 -6
  70. package/dist/types/OAuth/OAuth.d.ts.map +1 -1
  71. package/dist/types/OAuth/index.d.ts +3 -0
  72. package/dist/types/OAuth/index.d.ts.map +1 -0
  73. package/dist/types/OAuth/types.d.ts +93 -9
  74. package/dist/types/OAuth/types.d.ts.map +1 -1
  75. package/dist/types/OAuth/utils/createAuthKey.d.ts +1 -0
  76. package/dist/types/OAuth/utils/createAuthKey.d.ts.map +1 -1
  77. package/dist/types/OAuth/utils/createOAuthHelper.d.ts +33 -0
  78. package/dist/types/OAuth/utils/createOAuthHelper.d.ts.map +1 -0
  79. package/dist/types/OAuthCollection/OAuthCollection.d.ts +27 -0
  80. package/dist/types/OAuthCollection/OAuthCollection.d.ts.map +1 -0
  81. package/dist/types/OAuthCollection/index.d.ts +3 -0
  82. package/dist/types/OAuthCollection/index.d.ts.map +1 -0
  83. package/dist/types/Token/TokenCollection.d.ts +12 -8
  84. package/dist/types/Token/TokenCollection.d.ts.map +1 -1
  85. package/dist/types/Token/index.d.ts +3 -0
  86. package/dist/types/Token/index.d.ts.map +1 -0
  87. package/dist/types/Token/types.d.ts +16 -0
  88. package/dist/types/Token/types.d.ts.map +1 -1
  89. package/dist/types/Token/utils/createAuthKey.d.ts +1 -0
  90. package/dist/types/Token/utils/createAuthKey.d.ts.map +1 -1
  91. package/dist/types/constants.d.ts +1 -0
  92. package/dist/types/constants.d.ts.map +1 -1
  93. package/dist/types/index.d.ts +4 -6
  94. package/dist/types/index.d.ts.map +1 -1
  95. package/package.json +39 -2
  96. package/src/Basic/BasicCollection.ts +295 -32
  97. package/src/Basic/index.ts +3 -0
  98. package/src/Basic/types.ts +20 -15
  99. package/src/Basic/utils/createAuthKey.ts +4 -0
  100. package/src/OAuth/OAuth.ts +148 -174
  101. package/src/OAuth/index.ts +3 -0
  102. package/src/OAuth/types.ts +198 -13
  103. package/src/OAuth/utils/createAuthKey.ts +8 -0
  104. package/src/OAuth/utils/createOAuthHelper.ts +374 -0
  105. package/src/OAuthCollection/OAuthCollection.ts +348 -0
  106. package/src/OAuthCollection/index.ts +3 -0
  107. package/src/Token/TokenCollection.ts +258 -31
  108. package/src/Token/index.ts +3 -0
  109. package/src/Token/types.ts +17 -0
  110. package/src/Token/utils/createAuthKey.ts +4 -0
  111. package/src/constants.ts +1 -0
  112. package/src/index.ts +4 -8
  113. package/dist/cjs/Basic/BasicAuth.js +0 -162
  114. package/dist/cjs/Basic/BasicAuth.js.map +0 -1
  115. package/dist/cjs/OAuth/OAuthCollection.js +0 -138
  116. package/dist/cjs/OAuth/OAuthCollection.js.map +0 -1
  117. package/dist/cjs/Token/TokenAuth.js +0 -140
  118. package/dist/cjs/Token/TokenAuth.js.map +0 -1
  119. package/dist/esm/Basic/BasicAuth.js +0 -88
  120. package/dist/esm/Basic/BasicAuth.js.map +0 -1
  121. package/dist/esm/OAuth/OAuthCollection.js +0 -69
  122. package/dist/esm/OAuth/OAuthCollection.js.map +0 -1
  123. package/dist/esm/Token/TokenAuth.js +0 -66
  124. package/dist/esm/Token/TokenAuth.js.map +0 -1
  125. package/dist/types/Basic/BasicAuth.d.ts +0 -20
  126. package/dist/types/Basic/BasicAuth.d.ts.map +0 -1
  127. package/dist/types/OAuth/OAuthCollection.d.ts +0 -15
  128. package/dist/types/OAuth/OAuthCollection.d.ts.map +0 -1
  129. package/dist/types/Token/TokenAuth.d.ts +0 -12
  130. package/dist/types/Token/TokenAuth.d.ts.map +0 -1
  131. package/src/Basic/BasicAuth.ts +0 -129
  132. package/src/OAuth/OAuthCollection.ts +0 -118
  133. package/src/Token/TokenAuth.ts +0 -102
@@ -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 (_) 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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"}