@or-sdk/authorizer 0.25.0-beta.647.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 (140) hide show
  1. package/CHANGELOG.md +341 -0
  2. package/README.md +12 -32
  3. package/dist/cjs/Basic/BasicCollection.js +261 -28
  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 +4 -0
  8. package/dist/cjs/Basic/utils/createAuthKey.js.map +1 -1
  9. package/dist/cjs/OAuth/OAuth.js +115 -132
  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 +1 -1
  14. package/dist/cjs/OAuth/types.js.map +1 -1
  15. package/dist/cjs/OAuth/utils/ServiceDefinition.js.map +1 -1
  16. package/dist/cjs/OAuth/utils/createAuthKey.js +4 -0
  17. package/dist/cjs/OAuth/utils/createAuthKey.js.map +1 -1
  18. package/dist/cjs/OAuth/utils/createOAuthHelper.js +379 -0
  19. package/dist/cjs/OAuth/utils/createOAuthHelper.js.map +1 -0
  20. package/dist/cjs/OAuth/utils/formatScope.js.map +1 -1
  21. package/dist/cjs/OAuthCollection/OAuthCollection.js +312 -0
  22. package/dist/cjs/OAuthCollection/OAuthCollection.js.map +1 -0
  23. package/dist/cjs/OAuthCollection/index.js +21 -0
  24. package/dist/cjs/OAuthCollection/index.js.map +1 -0
  25. package/dist/cjs/Token/TokenCollection.js +238 -27
  26. package/dist/cjs/Token/TokenCollection.js.map +1 -1
  27. package/dist/cjs/Token/index.js +21 -0
  28. package/dist/cjs/Token/index.js.map +1 -0
  29. package/dist/cjs/Token/utils/createAuthKey.js +4 -0
  30. package/dist/cjs/Token/utils/createAuthKey.js.map +1 -1
  31. package/dist/cjs/constants.js +3 -2
  32. package/dist/cjs/constants.js.map +1 -1
  33. package/dist/cjs/index.js +9 -13
  34. package/dist/cjs/index.js.map +1 -1
  35. package/dist/esm/Basic/BasicCollection.js +204 -33
  36. package/dist/esm/Basic/BasicCollection.js.map +1 -1
  37. package/dist/esm/Basic/index.js +3 -0
  38. package/dist/esm/Basic/index.js.map +1 -0
  39. package/dist/esm/Basic/utils/createAuthKey.js +3 -0
  40. package/dist/esm/Basic/utils/createAuthKey.js.map +1 -1
  41. package/dist/esm/OAuth/OAuth.js +189 -211
  42. package/dist/esm/OAuth/OAuth.js.map +1 -1
  43. package/dist/esm/OAuth/index.js +3 -0
  44. package/dist/esm/OAuth/index.js.map +1 -0
  45. package/dist/esm/OAuth/types.js.map +1 -1
  46. package/dist/esm/OAuth/utils/ServiceDefinition.js +0 -17
  47. package/dist/esm/OAuth/utils/ServiceDefinition.js.map +1 -1
  48. package/dist/esm/OAuth/utils/createAuthKey.js +3 -0
  49. package/dist/esm/OAuth/utils/createAuthKey.js.map +1 -1
  50. package/dist/esm/OAuth/utils/createOAuthHelper.js +262 -0
  51. package/dist/esm/OAuth/utils/createOAuthHelper.js.map +1 -0
  52. package/dist/esm/OAuth/utils/formatScope.js.map +1 -1
  53. package/dist/esm/OAuthCollection/OAuthCollection.js +190 -0
  54. package/dist/esm/OAuthCollection/OAuthCollection.js.map +1 -0
  55. package/dist/esm/OAuthCollection/index.js +3 -0
  56. package/dist/esm/OAuthCollection/index.js.map +1 -0
  57. package/dist/esm/Token/TokenCollection.js +181 -32
  58. package/dist/esm/Token/TokenCollection.js.map +1 -1
  59. package/dist/esm/Token/index.js +3 -0
  60. package/dist/esm/Token/index.js.map +1 -0
  61. package/dist/esm/Token/utils/createAuthKey.js +3 -0
  62. package/dist/esm/Token/utils/createAuthKey.js.map +1 -1
  63. package/dist/esm/constants.js +1 -0
  64. package/dist/esm/constants.js.map +1 -1
  65. package/dist/esm/index.js +4 -6
  66. package/dist/esm/index.js.map +1 -1
  67. package/dist/types/Basic/BasicCollection.d.ts +20 -8
  68. package/dist/types/Basic/BasicCollection.d.ts.map +1 -1
  69. package/dist/types/Basic/index.d.ts +3 -0
  70. package/dist/types/Basic/index.d.ts.map +1 -0
  71. package/dist/types/Basic/types.d.ts +23 -12
  72. package/dist/types/Basic/types.d.ts.map +1 -1
  73. package/dist/types/Basic/utils/createAuthKey.d.ts +1 -0
  74. package/dist/types/Basic/utils/createAuthKey.d.ts.map +1 -1
  75. package/dist/types/OAuth/OAuth.d.ts +9 -6
  76. package/dist/types/OAuth/OAuth.d.ts.map +1 -1
  77. package/dist/types/OAuth/index.d.ts +3 -0
  78. package/dist/types/OAuth/index.d.ts.map +1 -0
  79. package/dist/types/OAuth/types.d.ts +102 -18
  80. package/dist/types/OAuth/types.d.ts.map +1 -1
  81. package/dist/types/OAuth/utils/createAuthKey.d.ts +1 -0
  82. package/dist/types/OAuth/utils/createAuthKey.d.ts.map +1 -1
  83. package/dist/types/OAuth/utils/createOAuthHelper.d.ts +33 -0
  84. package/dist/types/OAuth/utils/createOAuthHelper.d.ts.map +1 -0
  85. package/dist/types/OAuthCollection/OAuthCollection.d.ts +27 -0
  86. package/dist/types/OAuthCollection/OAuthCollection.d.ts.map +1 -0
  87. package/dist/types/OAuthCollection/index.d.ts +3 -0
  88. package/dist/types/OAuthCollection/index.d.ts.map +1 -0
  89. package/dist/types/Token/TokenCollection.d.ts +12 -8
  90. package/dist/types/Token/TokenCollection.d.ts.map +1 -1
  91. package/dist/types/Token/index.d.ts +3 -0
  92. package/dist/types/Token/index.d.ts.map +1 -0
  93. package/dist/types/Token/types.d.ts +21 -5
  94. package/dist/types/Token/types.d.ts.map +1 -1
  95. package/dist/types/Token/utils/createAuthKey.d.ts +1 -0
  96. package/dist/types/Token/utils/createAuthKey.d.ts.map +1 -1
  97. package/dist/types/constants.d.ts +1 -0
  98. package/dist/types/constants.d.ts.map +1 -1
  99. package/dist/types/index.d.ts +4 -6
  100. package/dist/types/index.d.ts.map +1 -1
  101. package/package.json +47 -8
  102. package/src/Basic/BasicCollection.ts +295 -32
  103. package/src/Basic/index.ts +3 -0
  104. package/src/Basic/types.ts +20 -15
  105. package/src/Basic/utils/createAuthKey.ts +4 -0
  106. package/src/OAuth/OAuth.ts +148 -174
  107. package/src/OAuth/index.ts +3 -0
  108. package/src/OAuth/types.ts +198 -13
  109. package/src/OAuth/utils/createAuthKey.ts +8 -0
  110. package/src/OAuth/utils/createOAuthHelper.ts +374 -0
  111. package/src/OAuthCollection/OAuthCollection.ts +348 -0
  112. package/src/OAuthCollection/index.ts +3 -0
  113. package/src/Token/TokenCollection.ts +259 -31
  114. package/src/Token/index.ts +3 -0
  115. package/src/Token/types.ts +17 -0
  116. package/src/Token/utils/createAuthKey.ts +4 -0
  117. package/src/constants.ts +1 -0
  118. package/src/index.ts +4 -8
  119. package/tsconfig.esm.json +1 -1
  120. package/dist/cjs/Basic/BasicAuth.js +0 -162
  121. package/dist/cjs/Basic/BasicAuth.js.map +0 -1
  122. package/dist/cjs/OAuth/OAuthCollection.js +0 -138
  123. package/dist/cjs/OAuth/OAuthCollection.js.map +0 -1
  124. package/dist/cjs/Token/TokenAuth.js +0 -140
  125. package/dist/cjs/Token/TokenAuth.js.map +0 -1
  126. package/dist/esm/Basic/BasicAuth.js +0 -77
  127. package/dist/esm/Basic/BasicAuth.js.map +0 -1
  128. package/dist/esm/OAuth/OAuthCollection.js +0 -60
  129. package/dist/esm/OAuth/OAuthCollection.js.map +0 -1
  130. package/dist/esm/Token/TokenAuth.js +0 -59
  131. package/dist/esm/Token/TokenAuth.js.map +0 -1
  132. package/dist/types/Basic/BasicAuth.d.ts +0 -20
  133. package/dist/types/Basic/BasicAuth.d.ts.map +0 -1
  134. package/dist/types/OAuth/OAuthCollection.d.ts +0 -15
  135. package/dist/types/OAuth/OAuthCollection.d.ts.map +0 -1
  136. package/dist/types/Token/TokenAuth.d.ts +0 -12
  137. package/dist/types/Token/TokenAuth.d.ts.map +0 -1
  138. package/src/Basic/BasicAuth.ts +0 -129
  139. package/src/OAuth/OAuthCollection.ts +0 -118
  140. package/src/Token/TokenAuth.ts +0 -102
@@ -1,60 +0,0 @@
1
- import { KeyValueStorage } from '@or-sdk/key-value-storage';
2
- import { OAuth } from './OAuth';
3
- export class OAuthCollection {
4
- serviceName;
5
- keyValueCollection;
6
- keyValueStorage;
7
- localToken;
8
- localDiscoveryUrl;
9
- constructor(params) {
10
- const { token, discoveryUrl, serviceName, keyValueCollection } = params;
11
- this.localToken = token;
12
- this.localDiscoveryUrl = discoveryUrl;
13
- this.serviceName = serviceName;
14
- this.keyValueCollection = keyValueCollection || serviceName;
15
- this.keyValueStorage = new KeyValueStorage({
16
- token,
17
- discoveryUrl,
18
- });
19
- }
20
- async listAuthorizations() {
21
- const { items: records } = await this.keyValueStorage.listKeys(this.keyValueCollection);
22
- return records.map((record) => record.key);
23
- }
24
- async listOAuthApps() {
25
- const appsStorageRecord = await this.keyValueStorage.getValueByKey(this.keyValueCollection, '__authorizer_apps');
26
- if (!appsStorageRecord.value) {
27
- return [];
28
- }
29
- const appsRecords = appsStorageRecord.value;
30
- return appsRecords.map((record) => ({
31
- name: record.label,
32
- ...record.value,
33
- }));
34
- }
35
- async getAuthorization(key) {
36
- const record = await this.keyValueStorage.getValueByKey(this.keyValueCollection, key);
37
- if (!record.value) {
38
- throw new Error('This authorization does not exist');
39
- }
40
- return new OAuth({
41
- serviceName: this.serviceName,
42
- keyValueCollection: this.keyValueCollection,
43
- authKey: key,
44
- discoveryUrl: this.localDiscoveryUrl,
45
- token: this.localToken,
46
- });
47
- }
48
- async createAuthorization(params) {
49
- return await OAuth.create({
50
- discoveryUrl: this.localDiscoveryUrl,
51
- token: this.localToken,
52
- appId: params.appId,
53
- keyValueCollection: this.keyValueCollection,
54
- scope: params.scope,
55
- serviceName: this.serviceName,
56
- authName: params.authName,
57
- });
58
- }
59
- }
60
- //# sourceMappingURL=OAuthCollection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OAuthCollection.js","sourceRoot":"","sources":["../../../src/OAuth/OAuthCollection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIhC,MAAM,OAAO,eAAe;IACT,WAAW,CAAS;IACpB,kBAAkB,CAAS;IAC3B,eAAe,CAAkB;IACjC,UAAU,CAAQ;IAClB,iBAAiB,CAAS;IAE3C,YAAY,MAA6B;QACvC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC;QAExE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,IAAI,WAAW,CAAC;QAC5D,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC;YACzC,KAAK;YACL,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAKM,KAAK,CAAC,kBAAkB;QAC7B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAC5D,IAAI,CAAC,kBAAkB,CACxB,CAAC;QAEF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAKM,KAAK,CAAC,aAAa;QACxB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAChE,IAAI,CAAC,kBAAkB,EACvB,mBAAmB,CACpB,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;YAC5B,OAAO,EAAE,CAAC;SACX;QAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAGpC,CAAC;QAEH,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAClC,IAAI,EAAE,MAAM,CAAC,KAAK;YAClB,GAAG,MAAM,CAAC,KAAK;SAChB,CAAC,CAAC,CAAC;IACN,CAAC;IAKM,KAAK,CAAC,gBAAgB,CAAC,GAAW;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CACrD,IAAI,CAAC,kBAAkB,EACvB,GAAG,CACJ,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;SACtD;QAED,OAAO,IAAI,KAAK,CAAC;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,OAAO,EAAE,GAAG;YACZ,YAAY,EAAE,IAAI,CAAC,iBAAiB;YACpC,KAAK,EAAE,IAAI,CAAC,UAAU;SACvB,CAAC,CAAC;IACL,CAAC;IAwBM,KAAK,CAAC,mBAAmB,CAC9B,MAAqC;QAErC,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC;YACxB,YAAY,EAAE,IAAI,CAAC,iBAAiB;YACpC,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,59 +0,0 @@
1
- import { KeyValueStorage } from '@or-sdk/key-value-storage';
2
- import { v4 as uuidv4 } from 'uuid';
3
- import { createAuthKey } from './utils/createAuthKey';
4
- export class TokenAuth {
5
- authKey;
6
- serviceName;
7
- keyValueStorage;
8
- constructor(params) {
9
- const { token, discoveryUrl, authKey, serviceName } = params;
10
- this.authKey = authKey;
11
- this.serviceName = serviceName;
12
- this.keyValueStorage = new KeyValueStorage({
13
- token,
14
- discoveryUrl,
15
- });
16
- }
17
- static async create(params) {
18
- if (!(params.serviceName && params.authName && params.credentials && params.discoveryUrl && params.token)) {
19
- throw new Error('Invalid config passed');
20
- }
21
- const { serviceName, authName, credentials, discoveryUrl, token } = params;
22
- const keyValueStorage = new KeyValueStorage({
23
- token,
24
- discoveryUrl,
25
- });
26
- const id = uuidv4();
27
- const authKey = createAuthKey(id, authName);
28
- const authData = {
29
- ...credentials,
30
- auth_name: authName,
31
- date_created: new Date().toISOString(),
32
- };
33
- await keyValueStorage.setValueByKey(serviceName, authKey, authData);
34
- return new TokenAuth({
35
- serviceName,
36
- authKey,
37
- discoveryUrl,
38
- token,
39
- });
40
- }
41
- async update(newCredentials) {
42
- const data = await this.getAuthData();
43
- const updatedData = {
44
- ...data,
45
- ...newCredentials,
46
- };
47
- const response = await this.keyValueStorage.setValueByKey(this.serviceName, this.authKey, updatedData);
48
- const updatedRecord = response.value;
49
- return updatedRecord;
50
- }
51
- async getAuthData() {
52
- const { value } = await this.keyValueStorage.getValueByKey(this.serviceName, this.authKey);
53
- return value;
54
- }
55
- async delete() {
56
- await this.keyValueStorage.deleteKey(this.serviceName, this.authKey);
57
- }
58
- }
59
- //# sourceMappingURL=TokenAuth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TokenAuth.js","sourceRoot":"","sources":["../../../src/Token/TokenAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAItD,MAAM,OAAO,SAAS;IACH,OAAO,CAAS;IAChB,WAAW,CAAS;IACpB,eAAe,CAAkB;IAElD,YAAY,MAAuB;QACjC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAE7D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC;YACzC,KAAK;YACL,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAkBD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAA6B;QAC/C,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;YACzG,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;SAC1C;QAED,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QAE3E,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC;YAC1C,KAAK;YACL,YAAY;SACb,CAAC,CAAC;QAEH,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAE5C,MAAM,QAAQ,GAAG;YACf,GAAG,WAAW;YACd,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvC,CAAC;QAEF,MAAM,eAAe,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAEpE,OAAO,IAAI,SAAS,CAAC;YACnB,WAAW;YACX,OAAO;YACP,YAAY;YACZ,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAKM,KAAK,CAAC,MAAM,CAAC,cAAuC;QACzD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAEtC,MAAM,WAAW,GAAG;YAClB,GAAG,IAAI;YACP,GAAG,cAAc;SAClB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAEvG,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;QACrC,OAAO,aAA8B,CAAC;IACxC,CAAC;IAKM,KAAK,CAAC,WAAW;QACtB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3F,OAAO,KAAsB,CAAC;IAChC,CAAC;IAKM,KAAK,CAAC,MAAM;QACjB,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC;CACF"}
@@ -1,20 +0,0 @@
1
- import { BasicAuthConfig, BasicAuthData, CreateBasicAuthConfig } from './types';
2
- export declare class BasicAuth {
3
- private readonly authKey;
4
- private readonly serviceName;
5
- private readonly keyValueStorage;
6
- constructor(params: BasicAuthConfig);
7
- static encodeAccessToken(username: string, password: string): string;
8
- static decodeAccessToken(token: string): {
9
- username: string;
10
- password: string;
11
- };
12
- static create(params: CreateBasicAuthConfig): Promise<BasicAuth>;
13
- update(newCredentials: {
14
- username?: string;
15
- password?: string;
16
- }): Promise<BasicAuthData>;
17
- getAuthData(): Promise<BasicAuthData>;
18
- delete(): Promise<void>;
19
- }
20
- //# sourceMappingURL=BasicAuth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BasicAuth.d.ts","sourceRoot":"","sources":["../../../src/Basic/BasicAuth.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAIhF,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;gBAEtC,MAAM,EAAE,eAAe;IAcnC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAOpE,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;KAAC;WAuBjE,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC;IAkCzD,MAAM,CAAC,cAAc,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IA0BzF,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC;IAQrC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAGrC"}
@@ -1,15 +0,0 @@
1
- import { OAuth } from './OAuth';
2
- import { OAuthCollectionConfig, CreateOAuthInCollectionConfig, CreateOAuthResult, OAuthApp } from './types';
3
- export declare class OAuthCollection {
4
- private readonly serviceName;
5
- private readonly keyValueCollection;
6
- private readonly keyValueStorage;
7
- private readonly localToken;
8
- private readonly localDiscoveryUrl;
9
- constructor(params: OAuthCollectionConfig);
10
- listAuthorizations(): Promise<string[]>;
11
- listOAuthApps(): Promise<OAuthApp[]>;
12
- getAuthorization(key: string): Promise<OAuth>;
13
- createAuthorization(params: CreateOAuthInCollectionConfig): Promise<CreateOAuthResult>;
14
- }
15
- //# sourceMappingURL=OAuthCollection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OAuthCollection.d.ts","sourceRoot":"","sources":["../../../src/OAuth/OAuthCollection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5G,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;gBAE/B,MAAM,EAAE,qBAAqB;IAgB5B,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAWvC,aAAa,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAwBpC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAwC7C,mBAAmB,CAC9B,MAAM,EAAE,6BAA6B,GACpC,OAAO,CAAC,iBAAiB,CAAC;CAW9B"}
@@ -1,12 +0,0 @@
1
- import { TokenAuthConfig, TokenAuthData, CreateTokenAuthConfig } from './types';
2
- export declare class TokenAuth {
3
- private readonly authKey;
4
- private readonly serviceName;
5
- private readonly keyValueStorage;
6
- constructor(params: TokenAuthConfig);
7
- static create(params: CreateTokenAuthConfig): Promise<TokenAuth>;
8
- update(newCredentials: Record<string, unknown>): Promise<TokenAuthData>;
9
- getAuthData(): Promise<TokenAuthData>;
10
- delete(): Promise<void>;
11
- }
12
- //# sourceMappingURL=TokenAuth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TokenAuth.d.ts","sourceRoot":"","sources":["../../../src/Token/TokenAuth.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhF,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;gBAEtC,MAAM,EAAE,eAAe;WA2BtB,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC;IAkCzD,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAiBvE,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC;IAQrC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAGrC"}
@@ -1,129 +0,0 @@
1
- import { KeyValueStorage } from '@or-sdk/key-value-storage';
2
-
3
- import { v4 as uuidv4 } from 'uuid';
4
-
5
- import { BasicAuthConfig, BasicAuthData, CreateBasicAuthConfig } from './types';
6
-
7
- import { createAuthKey } from './utils/createAuthKey';
8
-
9
- export class BasicAuth {
10
- private readonly authKey: string;
11
- private readonly serviceName: string;
12
- private readonly keyValueStorage: KeyValueStorage;
13
-
14
- constructor(params: BasicAuthConfig) {
15
- const { token, discoveryUrl, authKey, serviceName } = params;
16
-
17
- this.authKey = authKey;
18
- this.serviceName = serviceName;
19
- this.keyValueStorage = new KeyValueStorage({
20
- token,
21
- discoveryUrl,
22
- });
23
- }
24
-
25
- /**
26
- * Encodes username and passoword into Basic authorization token
27
- */
28
- static encodeAccessToken(username: string, password: string): string {
29
- return btoa(`${username}:${password}`);
30
- }
31
-
32
- /**
33
- * Decodes base64 encoded token and parses it to username and password
34
- */
35
- static decodeAccessToken(token: string): {username: string; password: string;} {
36
- const [username, password] = atob(token).split(':');
37
- return {
38
- username,
39
- password,
40
- };
41
- }
42
-
43
- /**
44
- * Creates a new auth record in specified collection with the given config.
45
- * @returns BasicAuth instance connected to created auth
46
- *
47
- * ```typescript
48
- * const basicAuthInstance = await BasicAuth.create({
49
- * token: 'my-account-token-string',
50
- * discoveryUrl: 'discovery.example.onereach.ai',
51
- * serviceName: '__authorization_service_test_service',
52
- * authName: 'my-auth-name',
53
- * username: 'user',
54
- * password: 'pass'
55
- * });
56
- * ```
57
- */
58
- static async create(params: CreateBasicAuthConfig): Promise<BasicAuth> {
59
- if (!(params.serviceName && params.authName && params.username && params.password && params.discoveryUrl && params.token)) {
60
- throw new Error('Invalid config passed');
61
- }
62
-
63
- const { serviceName, authName, username, password, discoveryUrl, token } = params;
64
-
65
- const keyValueStorage = new KeyValueStorage({
66
- token,
67
- discoveryUrl,
68
- });
69
-
70
- const id = uuidv4();
71
- const authKey = createAuthKey(id, authName);
72
-
73
- const authData = {
74
- auth_name: authName,
75
- access_token: BasicAuth.encodeAccessToken(username, password),
76
- date_created: new Date().toISOString(),
77
- };
78
-
79
- await keyValueStorage.setValueByKey(serviceName, authKey, authData);
80
-
81
- return new BasicAuth({
82
- serviceName,
83
- authKey,
84
- discoveryUrl,
85
- token,
86
- });
87
- }
88
-
89
- /**
90
- * Updates username or password
91
- */
92
- public async update(newCredentials: { username?: string; password?: string; }): Promise<BasicAuthData> {
93
- const data = await this.getAuthData();
94
- let { username, password } = BasicAuth.decodeAccessToken(data.access_token);
95
-
96
- if (newCredentials.username) {
97
- username = newCredentials.username;
98
- }
99
- if (newCredentials.password) {
100
- password = newCredentials.password;
101
- }
102
-
103
- const updatedAccessToken = BasicAuth.encodeAccessToken(username, password);
104
- const updatedData = {
105
- ...data,
106
- access_token: updatedAccessToken,
107
- };
108
-
109
- const response = await this.keyValueStorage.setValueByKey(this.serviceName, this.authKey, updatedData);
110
-
111
- const updatedRecord = response.value;
112
- return updatedRecord as BasicAuthData;
113
- }
114
-
115
- /**
116
- * Returns authorization data
117
- */
118
- public async getAuthData(): Promise<BasicAuthData> {
119
- const { value } = await this.keyValueStorage.getValueByKey(this.serviceName, this.authKey);
120
- return value as BasicAuthData;
121
- }
122
-
123
- /**
124
- * Deletes authorization from collection
125
- */
126
- public async delete(): Promise<void> {
127
- await this.keyValueStorage.deleteKey(this.serviceName, this.authKey);
128
- }
129
- }
@@ -1,118 +0,0 @@
1
- import { Token } from '@or-sdk/base';
2
- import { KeyValueStorage } from '@or-sdk/key-value-storage';
3
- import { OAuth } from './OAuth';
4
-
5
- import { OAuthCollectionConfig, CreateOAuthInCollectionConfig, CreateOAuthResult, OAuthApp } from './types';
6
-
7
- export class OAuthCollection {
8
- private readonly serviceName: string;
9
- private readonly keyValueCollection: string;
10
- private readonly keyValueStorage: KeyValueStorage;
11
- private readonly localToken: Token;
12
- private readonly localDiscoveryUrl: string;
13
-
14
- constructor(params: OAuthCollectionConfig) {
15
- const { token, discoveryUrl, serviceName, keyValueCollection } = params;
16
-
17
- this.localToken = token;
18
- this.localDiscoveryUrl = discoveryUrl;
19
- this.serviceName = serviceName;
20
- this.keyValueCollection = keyValueCollection || serviceName;
21
- this.keyValueStorage = new KeyValueStorage({
22
- token,
23
- discoveryUrl,
24
- });
25
- }
26
-
27
- /**
28
- * Returns array of auth keys from this collection
29
- */
30
- public async listAuthorizations(): Promise<string[]> {
31
- const { items: records } = await this.keyValueStorage.listKeys(
32
- this.keyValueCollection
33
- );
34
-
35
- return records.map((record) => record.key);
36
- }
37
-
38
- /**
39
- * Returns array of OAuth applications for this service
40
- */
41
- public async listOAuthApps(): Promise<OAuthApp[]> {
42
- const appsStorageRecord = await this.keyValueStorage.getValueByKey(
43
- this.keyValueCollection,
44
- '__authorizer_apps'
45
- );
46
-
47
- if (!appsStorageRecord.value) {
48
- return [];
49
- }
50
-
51
- const appsRecords = appsStorageRecord.value as Array<{
52
- label: string;
53
- value: Omit<OAuthApp, 'name'>;
54
- }>;
55
-
56
- return appsRecords.map((record) => ({
57
- name: record.label,
58
- ...record.value,
59
- }));
60
- }
61
-
62
- /**
63
- * Returns OAuth instance for given key
64
- */
65
- public async getAuthorization(key: string): Promise<OAuth> {
66
- const record = await this.keyValueStorage.getValueByKey(
67
- this.keyValueCollection,
68
- key
69
- );
70
- if (!record.value) {
71
- throw new Error('This authorization does not exist');
72
- }
73
-
74
- return new OAuth({
75
- serviceName: this.serviceName,
76
- keyValueCollection: this.keyValueCollection,
77
- authKey: key,
78
- discoveryUrl: this.localDiscoveryUrl,
79
- token: this.localToken,
80
- });
81
- }
82
-
83
- /**
84
- * Creates a new auth record in current collection with the given config.
85
- * @returns Object with OAuth instance connected to created auth and authorizerUrl to redirect the user to for completing authorization
86
- *
87
- * ```typescript
88
- * const {
89
- * authorizeUrl, // redirect user to this url for completing authorization
90
- * instance // new instance
91
- * } = await oAuthCollectionInstance.createAuthorization({
92
- * authName: 'my-auth-name',
93
- * appId: 'my-app-id',
94
- * });
95
- *
96
- * // 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
97
- * // if not, you can omit this step
98
- * try {
99
- * await instance.waitForCompletion()
100
- * } catch (e) {
101
- * // will be called if the user does not complete authorization within 5 minutes
102
- * }
103
- * ```
104
- */
105
- public async createAuthorization(
106
- params: CreateOAuthInCollectionConfig,
107
- ): Promise<CreateOAuthResult> {
108
- return await OAuth.create({
109
- discoveryUrl: this.localDiscoveryUrl,
110
- token: this.localToken,
111
- appId: params.appId,
112
- keyValueCollection: this.keyValueCollection,
113
- scope: params.scope,
114
- serviceName: this.serviceName,
115
- authName: params.authName,
116
- });
117
- }
118
- }
@@ -1,102 +0,0 @@
1
- import { KeyValueStorage } from '@or-sdk/key-value-storage';
2
- import { v4 as uuidv4 } from 'uuid';
3
-
4
- import { createAuthKey } from './utils/createAuthKey';
5
-
6
- import { TokenAuthConfig, TokenAuthData, CreateTokenAuthConfig } from './types';
7
-
8
- export class TokenAuth {
9
- private readonly authKey: string;
10
- private readonly serviceName: string;
11
- private readonly keyValueStorage: KeyValueStorage;
12
-
13
- constructor(params: TokenAuthConfig) {
14
- const { token, discoveryUrl, authKey, serviceName } = params;
15
-
16
- this.authKey = authKey;
17
- this.serviceName = serviceName;
18
- this.keyValueStorage = new KeyValueStorage({
19
- token,
20
- discoveryUrl,
21
- });
22
- }
23
-
24
- /**
25
- * Creates a new auth record in specified collection with the given config.
26
- * @returns TokenAuth instance connected to created auth
27
- *
28
- * ```typescript
29
- * const instance = await TokenAuth.create({
30
- * token: 'my-account-token-string',
31
- * discoveryUrl: 'discovery.example.onereach.ai',
32
- * serviceName: '__authorization_service_test_service',
33
- * authName: 'my-auth-name',
34
- * credentials: {
35
- * token: 'secrettoken'
36
- * }
37
- * });
38
- * ```
39
- */
40
- static async create(params: CreateTokenAuthConfig): Promise<TokenAuth> {
41
- if (!(params.serviceName && params.authName && params.credentials && params.discoveryUrl && params.token)) {
42
- throw new Error('Invalid config passed');
43
- }
44
-
45
- const { serviceName, authName, credentials, discoveryUrl, token } = params;
46
-
47
- const keyValueStorage = new KeyValueStorage({
48
- token,
49
- discoveryUrl,
50
- });
51
-
52
- const id = uuidv4();
53
- const authKey = createAuthKey(id, authName);
54
-
55
- const authData = {
56
- ...credentials,
57
- auth_name: authName,
58
- date_created: new Date().toISOString(),
59
- };
60
-
61
- await keyValueStorage.setValueByKey(serviceName, authKey, authData);
62
-
63
- return new TokenAuth({
64
- serviceName,
65
- authKey,
66
- discoveryUrl,
67
- token,
68
- });
69
- }
70
-
71
- /**
72
- * Updates credentials
73
- */
74
- public async update(newCredentials: Record<string, unknown>): Promise<TokenAuthData> {
75
- const data = await this.getAuthData();
76
-
77
- const updatedData = {
78
- ...data,
79
- ...newCredentials,
80
- };
81
-
82
- const response = await this.keyValueStorage.setValueByKey(this.serviceName, this.authKey, updatedData);
83
-
84
- const updatedRecord = response.value;
85
- return updatedRecord as TokenAuthData;
86
- }
87
-
88
- /**
89
- * Returns authorization data
90
- */
91
- public async getAuthData(): Promise<TokenAuthData> {
92
- const { value } = await this.keyValueStorage.getValueByKey(this.serviceName, this.authKey);
93
- return value as TokenAuthData;
94
- }
95
-
96
- /**
97
- * Deletes authorization from collection
98
- */
99
- public async delete(): Promise<void> {
100
- await this.keyValueStorage.deleteKey(this.serviceName, this.authKey);
101
- }
102
- }