@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,312 @@
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
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
50
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
51
+ if (ar || !(i in from)) {
52
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
53
+ ar[i] = from[i];
54
+ }
55
+ }
56
+ return to.concat(ar || Array.prototype.slice.call(from));
57
+ };
58
+ Object.defineProperty(exports, "__esModule", { value: true });
59
+ exports.OAuthCollection = void 0;
60
+ var base_1 = require("@or-sdk/base");
61
+ var key_value_storage_1 = require("@or-sdk/key-value-storage");
62
+ var providers_1 = require("@or-sdk/providers");
63
+ var OAuth_1 = require("../OAuth/OAuth");
64
+ var OAuthCollection = (function () {
65
+ function OAuthCollection(params) {
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
+ this.token = token;
68
+ this.sdkUrl = sdkUrl;
69
+ this.accountId = accountId;
70
+ this.crossAccount = crossAccount;
71
+ this.discoveryUrl = discoveryUrl;
72
+ this.serviceName = serviceName || '';
73
+ this.eventManagerUrl = eventManagerUrl;
74
+ this.providersAccountId = providersAccountId;
75
+ this.keyValueCollection = keyValueCollection || serviceName || '';
76
+ this.keyValueStorage = new key_value_storage_1.KeyValueStorage({
77
+ token: token,
78
+ discoveryUrl: discoveryUrl,
79
+ accountId: crossAccount ? accountId : undefined,
80
+ sdkUrl: sdkUrl,
81
+ });
82
+ this.providers = new providers_1.Providers({
83
+ token: token,
84
+ discoveryUrl: discoveryUrl,
85
+ eventManagerUrl: eventManagerUrl,
86
+ providersAccountId: providersAccountId,
87
+ });
88
+ }
89
+ OAuthCollection.prototype.init = function (params) {
90
+ var serviceName = params.serviceName, keyValueCollection = params.keyValueCollection;
91
+ this.serviceName = serviceName || this.serviceName;
92
+ this.keyValueCollection = keyValueCollection || this.keyValueCollection || this.serviceName;
93
+ if (!this.serviceName) {
94
+ throw new Error('No service name provided.');
95
+ }
96
+ };
97
+ OAuthCollection.prototype.listAuthorizations = function (dynamicCollection) {
98
+ return __awaiter(this, void 0, void 0, function () {
99
+ var records, pattern;
100
+ return __generator(this, function (_a) {
101
+ switch (_a.label) {
102
+ case 0: return [4, this.keyValueStorage.listKeys(this.keyValueCollection)];
103
+ case 1:
104
+ records = (_a.sent()).items;
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); }))];
108
+ }
109
+ });
110
+ });
111
+ };
112
+ OAuthCollection.prototype.listOAuthApps = function () {
113
+ return __awaiter(this, void 0, void 0, function () {
114
+ var appsStorageRecord, appsRecords;
115
+ return __generator(this, function (_a) {
116
+ switch (_a.label) {
117
+ case 0: return [4, this.keyValueStorage.getValueByKey(this.keyValueCollection, '__authorizer_apps')];
118
+ case 1:
119
+ appsStorageRecord = _a.sent();
120
+ if (!appsStorageRecord.value) {
121
+ return [2, (0, base_1.makeList)([])];
122
+ }
123
+ appsRecords = appsStorageRecord.value;
124
+ return [2, (0, base_1.makeList)(appsRecords.map(function (record) { return (__assign({ name: record.label }, record.value)); }))];
125
+ }
126
+ });
127
+ });
128
+ };
129
+ OAuthCollection.prototype.getAuthorization = function (key, dynamicCollection) {
130
+ return __awaiter(this, void 0, void 0, function () {
131
+ var authName, value, collection, value;
132
+ return __generator(this, function (_a) {
133
+ switch (_a.label) {
134
+ case 0:
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)];
140
+ case 1:
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) {
156
+ throw new Error('This authorization does not exist');
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.');
162
+ return [2, new OAuth_1.OAuth({
163
+ authName: authName,
164
+ authKey: key,
165
+ dynamicCollection: dynamicCollection,
166
+ discoveryUrl: this.discoveryUrl,
167
+ eventManagerUrl: this.eventManagerUrl,
168
+ keyValueCollection: this.keyValueCollection,
169
+ providersAccountId: this.providersAccountId,
170
+ sdkUrl: this.sdkUrl,
171
+ serviceName: this.serviceName,
172
+ token: this.token,
173
+ })];
174
+ }
175
+ });
176
+ });
177
+ };
178
+ OAuthCollection.prototype.createAuthorization = function (params) {
179
+ return __awaiter(this, void 0, void 0, function () {
180
+ return __generator(this, function (_a) {
181
+ switch (_a.label) {
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 }))];
186
+ case 1: return [2, _a.sent()];
187
+ }
188
+ });
189
+ });
190
+ };
191
+ OAuthCollection.prototype.listPredefinedServices = function () {
192
+ return __awaiter(this, void 0, void 0, function () {
193
+ var globalServices, globalServicesList, localServices, localServicesList;
194
+ return __generator(this, function (_a) {
195
+ switch (_a.label) {
196
+ case 0: return [4, this.providers.makeRequest({
197
+ method: 'GET',
198
+ route: 'authorizer/services/list',
199
+ params: {
200
+ type: 'list',
201
+ },
202
+ })];
203
+ case 1:
204
+ globalServices = _a.sent();
205
+ globalServicesList = Object.keys(globalServices).map(function (record) {
206
+ var label = record.split('__authorization_service_')[1]
207
+ .replace(/_/g, ' ');
208
+ var value = globalServices[record];
209
+ return {
210
+ label: label,
211
+ value: value,
212
+ };
213
+ });
214
+ return [4, this.keyValueStorage.listKeys('__authorization_service_predefined_services_local', undefined, true)];
215
+ case 2:
216
+ localServices = _a.sent();
217
+ localServicesList = localServices.items.map(function (el) {
218
+ var label = el.key
219
+ .split('__authorization_service_')[1]
220
+ .replace(/_/g, ' ') + ' (local)';
221
+ var value = el.value;
222
+ return {
223
+ label: label,
224
+ value: value,
225
+ };
226
+ });
227
+ return [2, __spreadArray(__spreadArray([], globalServicesList, true), localServicesList, true)];
228
+ }
229
+ });
230
+ });
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
+ };
309
+ return OAuthCollection;
310
+ }());
311
+ exports.OAuthCollection = OAuthCollection;
312
+ //# sourceMappingURL=OAuthCollection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OAuthCollection.js","sourceRoot":"","sources":["../../../src/OAuthCollection/OAuthCollection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.OAuthCollection = void 0;
18
+ var OAuthCollection_1 = require("./OAuthCollection");
19
+ Object.defineProperty(exports, "OAuthCollection", { enumerable: true, get: function () { return OAuthCollection_1.OAuthCollection; } });
20
+ __exportStar(require("../OAuth/types"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/OAuthCollection/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AAExB,iDAA+B"}
@@ -1,4 +1,15 @@
1
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
+ };
2
13
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
14
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
15
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -37,65 +48,265 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
37
48
  };
38
49
  Object.defineProperty(exports, "__esModule", { value: true });
39
50
  exports.TokenCollection = void 0;
51
+ var base_1 = require("@or-sdk/base");
52
+ var providers_1 = require("@or-sdk/providers");
40
53
  var key_value_storage_1 = require("@or-sdk/key-value-storage");
41
- var TokenAuth_1 = require("./TokenAuth");
54
+ var uuid_1 = require("uuid");
55
+ var createAuthKey_1 = require("./utils/createAuthKey");
42
56
  var TokenCollection = (function () {
43
57
  function TokenCollection(params) {
44
- var token = params.token, discoveryUrl = params.discoveryUrl, serviceName = params.serviceName;
45
- this.localToken = token;
46
- this.localDiscoveryUrl = discoveryUrl;
47
- this.serviceName = serviceName;
58
+ var token = params.token, discoveryUrl = params.discoveryUrl, serviceName = params.serviceName, accountId = params.accountId;
59
+ this.serviceName = serviceName || '';
48
60
  this.keyValueStorage = new key_value_storage_1.KeyValueStorage({
49
61
  token: token,
50
62
  discoveryUrl: discoveryUrl,
63
+ accountId: accountId,
64
+ });
65
+ this.providers = new providers_1.Providers({
66
+ token: token,
67
+ discoveryUrl: discoveryUrl,
51
68
  });
52
69
  }
53
- TokenCollection.prototype.listAuthorizations = function () {
70
+ TokenCollection.prototype.init = function (serviceName) {
71
+ if (!serviceName)
72
+ throw new Error('Servide name is required.');
73
+ this.serviceName = serviceName;
74
+ };
75
+ TokenCollection.prototype.listAuthorizations = function (dynamicCollectionName) {
54
76
  return __awaiter(this, void 0, void 0, function () {
55
- var records;
77
+ var records, pattern;
56
78
  return __generator(this, function (_a) {
57
79
  switch (_a.label) {
58
- case 0: return [4, this.keyValueStorage.listKeys(this.serviceName)];
80
+ case 0: return [4, this.keyValueStorage.listKeys(this.serviceName, '', false)];
59
81
  case 1:
60
82
  records = (_a.sent()).items;
61
- return [2, records.map(function (record) { return record.key; })];
83
+ pattern = dynamicCollectionName ? "::token-collection::".concat(dynamicCollectionName) : '::token::';
84
+ return [2, (0, base_1.makeList)(records.map(function (record) { return record.key; }).filter(function (key) { return key.includes(pattern); }))];
62
85
  }
63
86
  });
64
87
  });
65
88
  };
66
- TokenCollection.prototype.getAuthorization = function (key) {
89
+ TokenCollection.prototype.getAuthorization = function (key, dynamicCollectionName) {
67
90
  return __awaiter(this, void 0, void 0, function () {
68
- var record;
91
+ var value, collection, record, authData;
69
92
  return __generator(this, function (_a) {
70
93
  switch (_a.label) {
71
- case 0: return [4, this.keyValueStorage.getValueByKey(this.serviceName, key)];
94
+ case 0:
95
+ if (!this.serviceName)
96
+ throw new Error('Service name is not defined.');
97
+ if (!dynamicCollectionName) return [3, 2];
98
+ return [4, this.keyValueStorage.getValueByKey('__authorizer_dynamic_collections', dynamicCollectionName)];
72
99
  case 1:
100
+ value = (_a.sent()).value;
101
+ collection = value;
102
+ if (!collection)
103
+ throw new Error('Dynamic collection name is invalid');
104
+ key = collection.authorizations[key];
105
+ _a.label = 2;
106
+ case 2:
107
+ if (!key.includes('::token'))
108
+ throw new Error('The Token authorization key should contain "token" type specifier.');
109
+ return [4, this.keyValueStorage.getValueByKey(this.serviceName, encodeURIComponent(key))];
110
+ case 3:
73
111
  record = _a.sent();
74
112
  if (!record.value) {
75
113
  throw new Error('Authorization does not exist');
76
114
  }
77
- return [2, new TokenAuth_1.TokenAuth({
78
- serviceName: this.serviceName,
79
- authKey: key,
80
- discoveryUrl: this.localDiscoveryUrl,
81
- token: this.localToken,
82
- })];
115
+ authData = record.value;
116
+ if (!(authData.auth_name || authData._auth_name) || !(authData.date_created || authData._date_created)) {
117
+ throw new Error('Authorization is invalid.');
118
+ }
119
+ return [2, __assign(__assign({}, authData), { key: key })];
83
120
  }
84
121
  });
85
122
  });
86
123
  };
87
124
  TokenCollection.prototype.createAuthorization = function (params) {
88
125
  return __awaiter(this, void 0, void 0, function () {
126
+ var authName, credentials, dynamicCollection, _a, destinationAccount, customAccountId, id, authKey, authData, value, collection, localRecord;
127
+ return __generator(this, function (_b) {
128
+ switch (_b.label) {
129
+ case 0:
130
+ authName = params.authName, credentials = params.credentials, dynamicCollection = params.dynamicCollection, _a = params.destinationAccount, destinationAccount = _a === void 0 ? 'CURRENT' : _a, customAccountId = params.customAccountId;
131
+ if (!this.serviceName)
132
+ throw new Error('Service name is not defined.');
133
+ if (!authName || !credentials)
134
+ throw new Error('Invalid authorization parameters passed.');
135
+ id = (0, uuid_1.v4)();
136
+ authKey = dynamicCollection ? (0, createAuthKey_1.createDynamicKey)(id, dynamicCollection) : (0, createAuthKey_1.createAuthKey)(id, authName);
137
+ authData = __assign(__assign({}, credentials), { auth_name: authName, _date_created: new Date().toISOString() });
138
+ if (!dynamicCollection) return [3, 3];
139
+ return [4, this.keyValueStorage.getValueByKey('__authorizer_dynamic_collections', dynamicCollection)];
140
+ case 1:
141
+ value = (_b.sent()).value;
142
+ collection = (value || {
143
+ name: dynamicCollection,
144
+ type: 'token',
145
+ service: this.serviceName,
146
+ serviceConfigName: this.serviceName,
147
+ authorizations: {},
148
+ });
149
+ if (collection.type !== 'token' || collection.service !== this.serviceName) {
150
+ throw new Error('Dynamic collection\'s type or service is invalid');
151
+ }
152
+ collection.authorizations[authName] = authKey;
153
+ return [4, this.keyValueStorage.setValueByKey('__authorizer_dynamic_collections', dynamicCollection, collection)];
154
+ case 2:
155
+ _b.sent();
156
+ _b.label = 3;
157
+ case 3:
158
+ if (!(destinationAccount === 'CURRENT')) return [3, 5];
159
+ return [4, this.keyValueStorage.setValueByKey(this.serviceName, encodeURIComponent(authKey), authData)];
160
+ case 4:
161
+ _b.sent();
162
+ return [3, 8];
163
+ case 5:
164
+ localRecord = {
165
+ auth_name: authData.auth_name,
166
+ isRemote: true,
167
+ id: id,
168
+ };
169
+ if (destinationAccount === 'CUSTOM' && !customAccountId) {
170
+ throw new Error('Custom Account ID is required if destinationAccount === "CUSTOM"');
171
+ }
172
+ return [4, this.providers.makeRequest({
173
+ route: 'authorizer/redirect',
174
+ params: {
175
+ method: 'PUT',
176
+ data: {
177
+ authData: authData,
178
+ id: id,
179
+ storeAccount: destinationAccount,
180
+ storeCustomAccountId: destinationAccount === 'CUSTOM' ? customAccountId : undefined,
181
+ },
182
+ },
183
+ }).catch(function () { throw new Error('Could not save token to the specified account'); })];
184
+ case 6:
185
+ _b.sent();
186
+ return [4, this.keyValueStorage.setValueByKey(this.serviceName, encodeURIComponent(authKey), localRecord)];
187
+ case 7:
188
+ _b.sent();
189
+ _b.label = 8;
190
+ case 8: return [2, __assign(__assign({}, authData), { key: authKey })];
191
+ }
192
+ });
193
+ });
194
+ };
195
+ TokenCollection.prototype.updateAuthorization = function (tokenAuth, newCredentials) {
196
+ return __awaiter(this, void 0, void 0, function () {
197
+ var updatedData, response, updatedRecord;
89
198
  return __generator(this, function (_a) {
90
199
  switch (_a.label) {
91
- case 0: return [4, TokenAuth_1.TokenAuth.create({
92
- discoveryUrl: this.localDiscoveryUrl,
93
- token: this.localToken,
94
- serviceName: this.serviceName,
95
- authName: params.authName,
96
- credentials: params.credentials,
97
- })];
98
- case 1: return [2, _a.sent()];
200
+ case 0:
201
+ if (!this.serviceName)
202
+ throw new Error('Service name is not defined.');
203
+ if (!newCredentials)
204
+ throw new Error('New credentials are empty or invalid');
205
+ if (!tokenAuth || !tokenAuth.auth_name || !(tokenAuth.date_created || tokenAuth._date_created)) {
206
+ throw new Error('Token authorization data is invalid');
207
+ }
208
+ updatedData = __assign(__assign(__assign({}, tokenAuth), newCredentials), { auth_name: tokenAuth.auth_name, _date_created: tokenAuth._date_created, key: undefined });
209
+ return [4, this.keyValueStorage.setValueByKey(this.serviceName, encodeURIComponent(tokenAuth.key), updatedData)];
210
+ case 1:
211
+ response = _a.sent();
212
+ updatedRecord = response.value;
213
+ return [2, __assign(__assign({}, updatedRecord), { key: tokenAuth.key })];
214
+ }
215
+ });
216
+ });
217
+ };
218
+ TokenCollection.prototype.deleteAuthorization = function (key) {
219
+ return __awaiter(this, void 0, void 0, function () {
220
+ var dynamicCollectionName, value, collection_1, authName;
221
+ return __generator(this, function (_a) {
222
+ switch (_a.label) {
223
+ case 0:
224
+ if (!this.serviceName)
225
+ throw new Error('Service name is not defined.');
226
+ if (!key)
227
+ throw new Error('Key is missing or invalid');
228
+ if (!key.includes('::token-collection::')) return [3, 3];
229
+ dynamicCollectionName = key.split('::')[2].split(' ')[0];
230
+ return [4, this.keyValueStorage.getValueByKey('__authorizer_dynamic_collections', dynamicCollectionName)];
231
+ case 1:
232
+ value = (_a.sent()).value;
233
+ collection_1 = value;
234
+ if (!collection_1) return [3, 3];
235
+ authName = Object.keys(collection_1.authorizations)
236
+ .find(function (name) { return collection_1.authorizations[name] === key; });
237
+ if (!authName) return [3, 3];
238
+ delete collection_1.authorizations[authName];
239
+ return [4, this.keyValueStorage.setValueByKey('__authorizer_dynamic_collections', dynamicCollectionName, collection_1)];
240
+ case 2:
241
+ _a.sent();
242
+ _a.label = 3;
243
+ case 3: return [4, this.keyValueStorage.deleteKey(this.serviceName, encodeURIComponent(key))];
244
+ case 4:
245
+ _a.sent();
246
+ return [2];
247
+ }
248
+ });
249
+ });
250
+ };
251
+ TokenCollection.prototype.createDynamicCollection = function (dynamicCollectionName) {
252
+ return __awaiter(this, void 0, void 0, function () {
253
+ var value, collection;
254
+ return __generator(this, function (_a) {
255
+ switch (_a.label) {
256
+ case 0:
257
+ if (!dynamicCollectionName)
258
+ throw new Error('Dynamic collection name is empty or invalid');
259
+ return [4, this.keyValueStorage.getValueByKey('__authorizer_dynamic_collections', dynamicCollectionName)];
260
+ case 1:
261
+ value = (_a.sent()).value;
262
+ collection = value;
263
+ if (!!value) return [3, 3];
264
+ return [4, this.keyValueStorage.setValueByKey('__authorizer_dynamic_collections', dynamicCollectionName, {
265
+ name: dynamicCollectionName,
266
+ type: 'token',
267
+ service: this.serviceName,
268
+ serviceConfigName: this.serviceName,
269
+ authorizations: {},
270
+ })];
271
+ case 2:
272
+ _a.sent();
273
+ return [3, 4];
274
+ case 3:
275
+ if (collection.type === 'oauth' && collection.service === this.serviceName) {
276
+ throw new Error('Same collection already exists');
277
+ }
278
+ else {
279
+ throw new Error('Different collection exists with this name');
280
+ }
281
+ _a.label = 4;
282
+ case 4: return [2];
283
+ }
284
+ });
285
+ });
286
+ };
287
+ TokenCollection.prototype.deleteDynamicCollection = function (dynamicCollectionName) {
288
+ return __awaiter(this, void 0, void 0, function () {
289
+ var value, collection;
290
+ var _this = this;
291
+ return __generator(this, function (_a) {
292
+ switch (_a.label) {
293
+ case 0:
294
+ if (!dynamicCollectionName)
295
+ throw new Error('Dynamic collection name is empty or invalid');
296
+ return [4, this.keyValueStorage.getValueByKey('__authorizer_dynamic_collections', dynamicCollectionName)];
297
+ case 1:
298
+ value = (_a.sent()).value;
299
+ collection = value;
300
+ return [4, Promise.all(Object.keys(collection.authorizations)
301
+ .map(function (authName) {
302
+ return _this.keyValueStorage.deleteKey(collection.service, encodeURIComponent(collection.authorizations[authName]));
303
+ })).catch(function () { })];
304
+ case 2:
305
+ _a.sent();
306
+ return [4, this.keyValueStorage.deleteKey('__authorizer_dynamic_collections', dynamicCollectionName)];
307
+ case 3:
308
+ _a.sent();
309
+ return [2];
99
310
  }
100
311
  });
101
312
  });