@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
@@ -1 +0,0 @@
1
- {"version":3,"file":"OAuthCollection.js","sourceRoot":"","sources":["../../../src/OAuth/OAuthCollection.ts"],"names":[],"mappings":"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"}
@@ -1,120 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { makeList } from '@or-sdk/base';
11
- import { KeyValueStorage } from '@or-sdk/key-value-storage';
12
- import { Providers } from '@or-sdk/providers';
13
- import { OAuth } from './OAuth';
14
- export class OAuthCollection {
15
- constructor(params) {
16
- const { token, discoveryUrl, accountId, serviceName, keyValueCollection } = params;
17
- this.token = token;
18
- this.accountId = accountId;
19
- this.discoveryUrl = discoveryUrl;
20
- this.serviceName = serviceName || '';
21
- this.keyValueCollection = keyValueCollection || serviceName || '';
22
- this.keyValueStorage = new KeyValueStorage({
23
- token,
24
- discoveryUrl,
25
- accountId,
26
- });
27
- this.providers = new Providers({
28
- token,
29
- discoveryUrl,
30
- });
31
- }
32
- init(params) {
33
- const { serviceName, keyValueCollection } = params;
34
- this.serviceName = serviceName || this.serviceName;
35
- this.keyValueCollection = keyValueCollection || this.keyValueCollection || this.serviceName;
36
- if (!this.serviceName) {
37
- throw new Error('Service Name is required.');
38
- }
39
- }
40
- listAuthorizations() {
41
- return __awaiter(this, void 0, void 0, function* () {
42
- const { items: records } = yield this.keyValueStorage.listKeys(this.keyValueCollection || '');
43
- return makeList(records.map((record) => record.key).filter(key => key.includes('::oauth')));
44
- });
45
- }
46
- listOAuthApps() {
47
- return __awaiter(this, void 0, void 0, function* () {
48
- const appsStorageRecord = yield this.keyValueStorage.getValueByKey(this.keyValueCollection, '__authorizer_apps');
49
- if (!appsStorageRecord.value) {
50
- return makeList([]);
51
- }
52
- const appsRecords = appsStorageRecord.value;
53
- return makeList(appsRecords.map((record) => (Object.assign({ name: record.label }, record.value))));
54
- });
55
- }
56
- getAuthorization(key) {
57
- return __awaiter(this, void 0, void 0, function* () {
58
- if (!key.includes('::oauth'))
59
- throw new Error('The OAuth authorization key should contain "oauth" type specifier.');
60
- const record = yield this.keyValueStorage.getValueByKey(this.keyValueCollection, encodeURIComponent(key));
61
- if (!record.value) {
62
- throw new Error('This authorization does not exist');
63
- }
64
- return new OAuth({
65
- serviceName: this.serviceName,
66
- keyValueCollection: this.keyValueCollection,
67
- authKey: key,
68
- discoveryUrl: this.discoveryUrl,
69
- token: this.token,
70
- });
71
- });
72
- }
73
- createAuthorization(params) {
74
- return __awaiter(this, void 0, void 0, function* () {
75
- return yield OAuth.create({
76
- appId: params.appId,
77
- scope: params.scope,
78
- authName: params.authName,
79
- token: this.token,
80
- accountId: this.accountId,
81
- serviceName: this.serviceName,
82
- discoveryUrl: this.discoveryUrl,
83
- keyValueCollection: this.keyValueCollection,
84
- });
85
- });
86
- }
87
- listPredefinedServices() {
88
- return __awaiter(this, void 0, void 0, function* () {
89
- const globalServices = yield this.providers.makeRequest({
90
- method: 'GET',
91
- route: 'authorizer/services/list',
92
- params: {
93
- type: 'list',
94
- },
95
- });
96
- const globalServicesList = Object.keys(globalServices).map(record => {
97
- const label = record.split('__authorization_service_')[1]
98
- .replace(/_/g, ' ');
99
- const value = globalServices[record];
100
- return {
101
- label,
102
- value,
103
- };
104
- });
105
- const localServices = yield this.keyValueStorage.listKeys('__authorization_service_predefined_services_local', undefined, true);
106
- const localServicesList = localServices.items.map(el => {
107
- const label = el.key
108
- .split('__authorization_service_')[1]
109
- .replace(/_/g, ' ') + ' (local)';
110
- const value = el.value;
111
- return {
112
- label,
113
- value,
114
- };
115
- });
116
- return [...globalServicesList, ...localServicesList];
117
- });
118
- }
119
- }
120
- //# sourceMappingURL=OAuthCollection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OAuthCollection.js","sourceRoot":"","sources":["../../../src/OAuth/OAuthCollection.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import { List } from '@or-sdk/base';
2
- import { OAuth } from './OAuth';
3
- import { CreateOAuthInCollectionConfig, CreateOAuthResult, OAuthCollectionConfig, OAuthApp, OAuthCollectionInitConfig } from './types';
4
- export declare class OAuthCollection {
5
- private readonly token;
6
- private readonly providers;
7
- private readonly discoveryUrl;
8
- private readonly accountId;
9
- private providersAccountId;
10
- private keyValueCollection;
11
- private keyValueStorage;
12
- private serviceName;
13
- constructor(params: OAuthCollectionConfig);
14
- init(params: OAuthCollectionInitConfig): void;
15
- listAuthorizations(): Promise<List<string>>;
16
- listOAuthApps(): Promise<List<OAuthApp>>;
17
- getAuthorization(key: string): Promise<OAuth>;
18
- createAuthorization(params: CreateOAuthInCollectionConfig): Promise<CreateOAuthResult>;
19
- listPredefinedServices(): Promise<Record<string, unknown>[]>;
20
- }
21
- //# sourceMappingURL=OAuthCollection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OAuthCollection.d.ts","sourceRoot":"","sources":["../../../src/OAuth/OAuthCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,IAAI,EAAY,MAAM,cAAc,CAAC;AAGrD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EACL,6BAA6B,EAC7B,iBAAiB,EACjB,qBAAqB,EACrB,QAAQ,EACR,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AAEjB,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,qBAAqB;IAyBlC,IAAI,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI;IAevC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAW3C,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAyBxC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IA0C7C,mBAAmB,CAC9B,MAAM,EAAE,6BAA6B,GACpC,OAAO,CAAC,iBAAiB,CAAC;IAiBhB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CA6C1E"}
@@ -1,206 +0,0 @@
1
- import { Token, List, makeList } from '@or-sdk/base';
2
- import { KeyValueStorage } from '@or-sdk/key-value-storage';
3
- import { Providers } from '@or-sdk/providers';
4
- import { OAuth } from './OAuth';
5
-
6
- import {
7
- CreateOAuthInCollectionConfig,
8
- CreateOAuthResult,
9
- OAuthCollectionConfig,
10
- OAuthApp,
11
- OAuthCollectionInitConfig,
12
- } from './types';
13
-
14
- export class OAuthCollection {
15
- private readonly token: Token;
16
- private readonly providers: Providers;
17
- private readonly discoveryUrl: string;
18
- private readonly accountId: string | undefined;
19
- private providersAccountId: string | undefined;
20
- private keyValueCollection: string;
21
- private keyValueStorage: KeyValueStorage;
22
- private serviceName: string;
23
-
24
- constructor(params: OAuthCollectionConfig) {
25
- const { token, discoveryUrl, accountId, serviceName, keyValueCollection } = params;
26
-
27
- this.token = token;
28
- this.accountId = accountId;
29
- this.discoveryUrl = discoveryUrl;
30
- this.serviceName = serviceName || '';
31
- this.keyValueCollection = keyValueCollection || serviceName || '';
32
-
33
- this.keyValueStorage = new KeyValueStorage({
34
- token,
35
- discoveryUrl,
36
- accountId,
37
- });
38
-
39
- this.providers = new Providers({
40
- token,
41
- discoveryUrl,
42
- });
43
- }
44
-
45
-
46
- /**
47
- * Allows to explicitly (re)initialize collection parameters
48
- */
49
- public init(params: OAuthCollectionInitConfig): void {
50
- const { serviceName, keyValueCollection } = params;
51
-
52
- this.serviceName = serviceName || this.serviceName;
53
- this.keyValueCollection = keyValueCollection || this.keyValueCollection || this.serviceName;
54
-
55
- if (!this.serviceName) {
56
- throw new Error('Service Name is required.');
57
- }
58
- }
59
-
60
-
61
- /**
62
- * Returns array of auth keys from this collection
63
- */
64
- public async listAuthorizations(): Promise<List<string>> {
65
- const { items: records } = await this.keyValueStorage.listKeys(
66
- this.keyValueCollection || ''
67
- );
68
-
69
- return makeList<string>(records.map((record) => record.key).filter(key => key.includes('::oauth')));
70
- }
71
-
72
- /**
73
- * Returns array of OAuth applications for this service
74
- */
75
- public async listOAuthApps(): Promise<List<OAuthApp>> {
76
- const appsStorageRecord = await this.keyValueStorage.getValueByKey(
77
- this.keyValueCollection,
78
- '__authorizer_apps'
79
- );
80
-
81
- if (!appsStorageRecord.value) {
82
- return makeList<OAuthApp>([]);
83
- }
84
-
85
- const appsRecords = appsStorageRecord.value as Array<{
86
- label: string;
87
- value: Omit<OAuthApp, 'name'>;
88
- }>;
89
-
90
- return makeList<OAuthApp>(appsRecords.map((record) => ({
91
- name: record.label,
92
- ...record.value,
93
- })));
94
- }
95
-
96
-
97
- /**
98
- * Returns OAuth instance for given key
99
- */
100
- public async getAuthorization(key: string): Promise<OAuth> {
101
- if (!key.includes('::oauth')) throw new Error('The OAuth authorization key should contain "oauth" type specifier.');
102
- const record = await this.keyValueStorage.getValueByKey(
103
- this.keyValueCollection,
104
- encodeURIComponent(key)
105
- );
106
- if (!record.value) {
107
- throw new Error('This authorization does not exist');
108
- }
109
-
110
- return new OAuth({
111
- serviceName: this.serviceName,
112
- keyValueCollection: this.keyValueCollection,
113
- authKey: key,
114
- discoveryUrl: this.discoveryUrl,
115
- token: this.token,
116
- });
117
- }
118
-
119
-
120
- /**
121
- * Creates a new auth record in current collection with the given config.
122
- * @returns Object with OAuth instance connected to created auth and authorizerUrl to redirect the user to for completing authorization
123
- *
124
- * ```typescript
125
- * const {
126
- * authorizeUrl, // redirect user to this url for completing authorization
127
- * instance // new instance
128
- * } = await oAuthCollectionInstance.createAuthorization({
129
- * authName: 'my-auth-name',
130
- * appId: 'my-app-id',
131
- * });
132
- *
133
- * // if you want to use returned instance, you must call a method that returns a promise that will be resolved when the user completes authorization process
134
- * // if not, you can omit this step
135
- * try {
136
- * await instance.waitForCompletion()
137
- * } catch (e) {
138
- * // will be called if the user does not complete authorization within 5 minutes
139
- * }
140
- * ```
141
- */
142
- public async createAuthorization(
143
- params: CreateOAuthInCollectionConfig,
144
- ): Promise<CreateOAuthResult> {
145
- return await OAuth.create({
146
- appId: params.appId,
147
- scope: params.scope,
148
- authName: params.authName,
149
- token: this.token,
150
- accountId: this.accountId,
151
- serviceName: this.serviceName,
152
- discoveryUrl: this.discoveryUrl,
153
- keyValueCollection: this.keyValueCollection,
154
- });
155
- }
156
-
157
-
158
- /**
159
- * Returns a list of predefined OAuth Services
160
- */
161
- public async listPredefinedServices(): Promise<Record<string, unknown>[]> {
162
-
163
- const globalServices = await this.providers.makeRequest({
164
- method: 'GET',
165
- route: 'authorizer/services/list',
166
- params: {
167
- type: 'list',
168
- },
169
- }) as Record<string, unknown>;
170
-
171
-
172
- const globalServicesList = Object.keys(globalServices).map(record => {
173
- const label = record.split('__authorization_service_')[1]
174
- .replace(/_/g, ' ');
175
-
176
- const value = globalServices[record];
177
-
178
- return {
179
- label,
180
- value,
181
- };
182
- }) as Record<string, unknown>[];
183
-
184
-
185
- const localServices = await this.keyValueStorage.listKeys(
186
- '__authorization_service_predefined_services_local',
187
- undefined,
188
- true
189
- ) as unknown as Record<string, Record<string, string>[]>;
190
-
191
-
192
- const localServicesList = localServices.items.map(el => {
193
- const label = el.key
194
- .split('__authorization_service_')[1]
195
- .replace(/_/g, ' ') + ' (local)';
196
-
197
- const value = el.value;
198
- return {
199
- label,
200
- value,
201
- };
202
- });
203
-
204
- return [...globalServicesList, ...localServicesList];
205
- }
206
- }