@sudoplatform/sudo-user 10.1.0 → 12.0.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 (195) hide show
  1. package/{lib → cjs/src}/client/apiClient.d.ts +0 -0
  2. package/cjs/src/client/apiClient.js +149 -0
  3. package/cjs/src/client/apiClient.js.map +1 -0
  4. package/{lib → cjs/src}/core/api-key-names.d.ts +0 -0
  5. package/cjs/src/core/api-key-names.js +12 -0
  6. package/cjs/src/core/api-key-names.js.map +1 -0
  7. package/{lib → cjs/src}/core/auth-store.d.ts +0 -0
  8. package/cjs/src/core/auth-store.js +92 -0
  9. package/cjs/src/core/auth-store.js.map +1 -0
  10. package/{lib → cjs/src}/core/crypto.d.ts +0 -0
  11. package/cjs/src/core/crypto.js +3 -0
  12. package/cjs/src/core/crypto.js.map +1 -0
  13. package/{lib → cjs/src}/core/key-manager.d.ts +0 -0
  14. package/cjs/src/core/key-manager.js +113 -0
  15. package/cjs/src/core/key-manager.js.map +1 -0
  16. package/cjs/src/core/protected-store.d.ts +5 -0
  17. package/cjs/src/core/protected-store.js +3 -0
  18. package/cjs/src/core/protected-store.js.map +1 -0
  19. package/{lib → cjs/src}/core/publisher.d.ts +0 -0
  20. package/cjs/src/core/publisher.js +3 -0
  21. package/cjs/src/core/publisher.js.map +1 -0
  22. package/{lib → cjs/src}/core/sdk-config.d.ts +0 -0
  23. package/cjs/src/core/sdk-config.js +61 -0
  24. package/cjs/src/core/sdk-config.js.map +1 -0
  25. package/{lib → cjs/src}/core/subscriber.d.ts +0 -0
  26. package/cjs/src/core/subscriber.js +3 -0
  27. package/cjs/src/core/subscriber.js.map +1 -0
  28. package/{lib → cjs/src}/gen/graphql-types.d.ts +5 -4
  29. package/cjs/src/gen/graphql-types.js +105 -0
  30. package/cjs/src/gen/graphql-types.js.map +1 -0
  31. package/{lib → cjs/src}/index.d.ts +0 -0
  32. package/cjs/src/index.js +13 -0
  33. package/cjs/src/index.js.map +1 -0
  34. package/{lib/runtimes/node/node-crypto.d.ts → cjs/src/runtimes/browser/browser-crypto.d.ts} +0 -0
  35. package/cjs/src/runtimes/browser/browser-crypto.js +10 -0
  36. package/cjs/src/runtimes/browser/browser-crypto.js.map +1 -0
  37. package/cjs/src/runtimes/node/node-crypto.d.ts +2 -0
  38. package/cjs/src/runtimes/node/node-crypto.js +9 -0
  39. package/cjs/src/runtimes/node/node-crypto.js.map +1 -0
  40. package/{lib → cjs/src}/sdk.d.ts +0 -0
  41. package/cjs/src/sdk.js +9 -0
  42. package/cjs/src/sdk.js.map +1 -0
  43. package/{lib → cjs/src}/user/auth-provider.d.ts +0 -0
  44. package/cjs/src/user/auth-provider.js +116 -0
  45. package/cjs/src/user/auth-provider.js.map +1 -0
  46. package/{lib → cjs/src}/user/auth.d.ts +0 -0
  47. package/cjs/src/user/auth.js +136 -0
  48. package/cjs/src/user/auth.js.map +1 -0
  49. package/{lib → cjs/src}/user/error.d.ts +0 -0
  50. package/{lib → cjs/src}/user/error.js +16 -29
  51. package/cjs/src/user/error.js.map +1 -0
  52. package/{lib → cjs/src}/user/identity-provider.d.ts +0 -0
  53. package/cjs/src/user/identity-provider.js +245 -0
  54. package/cjs/src/user/identity-provider.js.map +1 -0
  55. package/{lib → cjs/src}/user/user-client-interface.d.ts +0 -0
  56. package/cjs/src/user/user-client-interface.js +3 -0
  57. package/cjs/src/user/user-client-interface.js.map +1 -0
  58. package/{lib → cjs/src}/user/user-client.d.ts +0 -0
  59. package/cjs/src/user/user-client.js +440 -0
  60. package/cjs/src/user/user-client.js.map +1 -0
  61. package/{lib → cjs/src}/user/user-key-names.d.ts +0 -0
  62. package/cjs/src/user/user-key-names.js +10 -0
  63. package/cjs/src/user/user-key-names.js.map +1 -0
  64. package/{lib → cjs/src}/utils/resolvable-promise.d.ts +0 -0
  65. package/cjs/src/utils/resolvable-promise.js +20 -0
  66. package/cjs/src/utils/resolvable-promise.js.map +1 -0
  67. package/cjs/test/integration/user-client-int.spec.d.ts +1 -0
  68. package/cjs/test/integration/user-client-int.spec.js +206 -0
  69. package/cjs/test/integration/user-client-int.spec.js.map +1 -0
  70. package/cjs/test/unit/core/sdk-config.spec.d.ts +1 -0
  71. package/cjs/test/unit/core/sdk-config.spec.js +51 -0
  72. package/cjs/test/unit/core/sdk-config.spec.js.map +1 -0
  73. package/cjs/test/unit/key-manager.spec.d.ts +1 -0
  74. package/cjs/test/unit/key-manager.spec.js +23 -0
  75. package/cjs/test/unit/key-manager.spec.js.map +1 -0
  76. package/cjs/test/unit/user-client.spec.d.ts +1 -0
  77. package/cjs/test/unit/user-client.spec.js +323 -0
  78. package/cjs/test/unit/user-client.spec.js.map +1 -0
  79. package/docs/assets/highlight.css +3 -3
  80. package/docs/assets/main.js +4 -2
  81. package/docs/assets/search.js +1 -1
  82. package/docs/assets/style.css +427 -617
  83. package/docs/classes/AlreadyRegisteredError.html +163 -8
  84. package/docs/classes/DefaultSudoUserClient.html +568 -57
  85. package/docs/classes/IdentityServiceConfigNotFoundError.html +163 -8
  86. package/docs/classes/LocalAuthenticationProvider.html +131 -12
  87. package/docs/classes/TESTAuthenticationProvider.html +146 -11
  88. package/docs/index.html +47 -2
  89. package/docs/interfaces/AuthenticationProvider.html +89 -6
  90. package/docs/interfaces/AuthenticationTokens.html +97 -7
  91. package/docs/interfaces/SudoUserClient.html +431 -80
  92. package/docs/modules.html +62 -1
  93. package/lib/src/client/apiClient.d.ts +25 -0
  94. package/lib/src/client/apiClient.js +145 -0
  95. package/lib/src/client/apiClient.js.map +1 -0
  96. package/lib/src/core/api-key-names.d.ts +8 -0
  97. package/lib/src/core/api-key-names.js +9 -0
  98. package/lib/src/core/api-key-names.js.map +1 -0
  99. package/lib/src/core/auth-store.d.ts +51 -0
  100. package/lib/src/core/auth-store.js +88 -0
  101. package/lib/src/core/auth-store.js.map +1 -0
  102. package/lib/src/core/crypto.d.ts +3 -0
  103. package/lib/src/core/crypto.js +2 -0
  104. package/lib/src/core/crypto.js.map +1 -0
  105. package/lib/src/core/key-manager.d.ts +31 -0
  106. package/lib/src/core/key-manager.js +108 -0
  107. package/lib/src/core/key-manager.js.map +1 -0
  108. package/lib/src/core/protected-store.d.ts +5 -0
  109. package/lib/src/core/protected-store.js +2 -0
  110. package/lib/src/core/protected-store.js.map +1 -0
  111. package/lib/src/core/publisher.d.ts +6 -0
  112. package/lib/src/core/publisher.js +2 -0
  113. package/lib/src/core/publisher.js.map +1 -0
  114. package/lib/src/core/sdk-config.d.ts +52 -0
  115. package/lib/src/core/sdk-config.js +56 -0
  116. package/lib/src/core/sdk-config.js.map +1 -0
  117. package/lib/src/core/subscriber.d.ts +3 -0
  118. package/lib/src/core/subscriber.js +2 -0
  119. package/lib/src/core/subscriber.js.map +1 -0
  120. package/lib/src/gen/graphql-types.d.ts +101 -0
  121. package/lib/src/gen/graphql-types.js +102 -0
  122. package/lib/src/gen/graphql-types.js.map +1 -0
  123. package/lib/src/index.d.ts +4 -0
  124. package/lib/src/index.js +6 -0
  125. package/lib/src/index.js.map +1 -0
  126. package/lib/src/runtimes/browser/browser-crypto.d.ts +2 -0
  127. package/lib/src/runtimes/browser/browser-crypto.js +7 -0
  128. package/lib/src/runtimes/browser/browser-crypto.js.map +1 -0
  129. package/lib/src/runtimes/node/node-crypto.d.ts +2 -0
  130. package/lib/src/runtimes/node/node-crypto.js +6 -0
  131. package/lib/src/runtimes/node/node-crypto.js.map +1 -0
  132. package/lib/src/sdk.d.ts +1 -0
  133. package/lib/src/sdk.js +6 -0
  134. package/lib/src/sdk.js.map +1 -0
  135. package/lib/src/user/auth-provider.d.ts +97 -0
  136. package/lib/src/user/auth-provider.js +108 -0
  137. package/lib/src/user/auth-provider.js.map +1 -0
  138. package/lib/src/user/auth.d.ts +64 -0
  139. package/lib/src/user/auth.js +131 -0
  140. package/lib/src/user/auth.js.map +1 -0
  141. package/lib/src/user/error.d.ts +18 -0
  142. package/lib/src/user/error.js +28 -0
  143. package/lib/src/user/error.js.map +1 -0
  144. package/lib/src/user/identity-provider.d.ts +73 -0
  145. package/lib/src/user/identity-provider.js +241 -0
  146. package/lib/src/user/identity-provider.js.map +1 -0
  147. package/lib/src/user/user-client-interface.d.ts +168 -0
  148. package/lib/src/user/user-client-interface.js +2 -0
  149. package/lib/src/user/user-client-interface.js.map +1 -0
  150. package/lib/src/user/user-client.d.ts +82 -0
  151. package/lib/src/user/user-client.js +435 -0
  152. package/lib/src/user/user-client.js.map +1 -0
  153. package/lib/src/user/user-key-names.d.ts +6 -0
  154. package/lib/src/user/user-key-names.js +7 -0
  155. package/lib/src/user/user-key-names.js.map +1 -0
  156. package/lib/src/utils/resolvable-promise.d.ts +9 -0
  157. package/lib/src/utils/resolvable-promise.js +16 -0
  158. package/lib/src/utils/resolvable-promise.js.map +1 -0
  159. package/lib/test/integration/user-client-int.spec.d.ts +1 -0
  160. package/lib/test/integration/user-client-int.spec.js +203 -0
  161. package/lib/test/integration/user-client-int.spec.js.map +1 -0
  162. package/lib/test/unit/core/sdk-config.spec.d.ts +1 -0
  163. package/lib/test/unit/core/sdk-config.spec.js +49 -0
  164. package/lib/test/unit/core/sdk-config.spec.js.map +1 -0
  165. package/lib/test/unit/key-manager.spec.d.ts +1 -0
  166. package/lib/test/unit/key-manager.spec.js +21 -0
  167. package/lib/test/unit/key-manager.spec.js.map +1 -0
  168. package/lib/test/unit/user-client.spec.d.ts +1 -0
  169. package/lib/test/unit/user-client.spec.js +320 -0
  170. package/lib/test/unit/user-client.spec.js.map +1 -0
  171. package/package.json +47 -41
  172. package/docs/assets/icons.css +0 -1043
  173. package/docs/assets/icons.png +0 -0
  174. package/docs/assets/icons@2x.png +0 -0
  175. package/lib/client/apiClient.js +0 -206
  176. package/lib/core/api-key-names.js +0 -15
  177. package/lib/core/auth-store.js +0 -144
  178. package/lib/core/crypto.js +0 -5
  179. package/lib/core/key-manager.js +0 -158
  180. package/lib/core/protected-store.js +0 -5
  181. package/lib/core/publisher.js +0 -5
  182. package/lib/core/sdk-config.js +0 -56
  183. package/lib/core/subscriber.js +0 -5
  184. package/lib/gen/graphql-types.js +0 -141
  185. package/lib/index.js +0 -67
  186. package/lib/runtimes/browser/browser-crypto.js +0 -15
  187. package/lib/runtimes/node/node-crypto.js +0 -12
  188. package/lib/sdk.js +0 -18
  189. package/lib/user/auth-provider.js +0 -158
  190. package/lib/user/auth.js +0 -185
  191. package/lib/user/identity-provider.js +0 -272
  192. package/lib/user/user-client-interface.js +0 -5
  193. package/lib/user/user-client.js +0 -530
  194. package/lib/user/user-key-names.js +0 -13
  195. package/lib/utils/resolvable-promise.js +0 -22
Binary file
Binary file
@@ -1,206 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ApiClient = void 0;
7
-
8
- var _awsAppsync = require("aws-appsync");
9
-
10
- var _graphqlTypes = require("../gen/graphql-types");
11
-
12
- var _sudoCommon = require("@sudoplatform/sudo-common");
13
-
14
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
-
16
- /**
17
- * AppSync wrapper to use to invoke Identity Service APIs.
18
- */
19
- class ApiClient {
20
- constructor(region, graphqlUrl, sudoUserClient, logger) {
21
- _defineProperty(this, "client", void 0);
22
-
23
- _defineProperty(this, "region", void 0);
24
-
25
- _defineProperty(this, "graphqlUrl", void 0);
26
-
27
- _defineProperty(this, "sudoUserClient", void 0);
28
-
29
- _defineProperty(this, "logger", void 0);
30
-
31
- this.region = region;
32
- this.graphqlUrl = graphqlUrl;
33
- this.sudoUserClient = sudoUserClient;
34
- this.logger = logger;
35
- this.client = new _awsAppsync.AWSAppSyncClient({
36
- url: graphqlUrl,
37
- region: region,
38
- auth: {
39
- type: _awsAppsync.AUTH_TYPE.AMAZON_COGNITO_USER_POOLS,
40
- jwtToken: async () => await sudoUserClient.getLatestAuthToken()
41
- },
42
- disableOffline: true
43
- });
44
- }
45
-
46
- async deregister() {
47
- var _result$errors;
48
-
49
- if (!(await this.sudoUserClient.isSignedIn())) {
50
- throw new _sudoCommon.NotSignedInError();
51
- }
52
-
53
- let result;
54
-
55
- try {
56
- result = await this.client.mutate({
57
- mutation: _graphqlTypes.DeregisterDocument,
58
- fetchPolicy: 'no-cache'
59
- });
60
- } catch (err) {
61
- var _apolloError$graphQLE;
62
-
63
- const apolloError = err;
64
- const error = (_apolloError$graphQLE = apolloError.graphQLErrors) === null || _apolloError$graphQLE === void 0 ? void 0 : _apolloError$graphQLE[0];
65
-
66
- if (error) {
67
- throw this.graphQLErrorsToClientError(error);
68
- } else {
69
- throw new _sudoCommon.UnknownGraphQLError(err);
70
- }
71
- }
72
-
73
- const error = (_result$errors = result.errors) === null || _result$errors === void 0 ? void 0 : _result$errors[0];
74
-
75
- if (error) {
76
- throw this.graphQLErrorsToClientError(error);
77
- }
78
-
79
- if (result.data) {
80
- var _result$data$deregist;
81
-
82
- return {
83
- success: (_result$data$deregist = result.data.deregister) !== null && _result$data$deregist !== void 0 && _result$data$deregist.success ? true : false
84
- };
85
- } else {
86
- throw new _sudoCommon.FatalError('deregister did not return any result.');
87
- }
88
- }
89
-
90
- async globalSignOut() {
91
- var _result$errors2;
92
-
93
- if (!(await this.sudoUserClient.isSignedIn())) {
94
- throw new _sudoCommon.NotSignedInError();
95
- }
96
-
97
- let result;
98
-
99
- try {
100
- result = await this.client.mutate({
101
- mutation: _graphqlTypes.GlobalSignOutDocument,
102
- fetchPolicy: 'no-cache'
103
- });
104
- } catch (err) {
105
- var _apolloError$graphQLE2;
106
-
107
- const apolloError = err;
108
- const error = (_apolloError$graphQLE2 = apolloError.graphQLErrors) === null || _apolloError$graphQLE2 === void 0 ? void 0 : _apolloError$graphQLE2[0];
109
-
110
- if (error) {
111
- throw this.graphQLErrorsToClientError(error);
112
- } else {
113
- throw new _sudoCommon.UnknownGraphQLError(err);
114
- }
115
- }
116
-
117
- const error = (_result$errors2 = result.errors) === null || _result$errors2 === void 0 ? void 0 : _result$errors2[0];
118
-
119
- if (error) {
120
- throw this.graphQLErrorsToClientError(error);
121
- }
122
-
123
- if (result.data) {
124
- var _result$data$globalSi;
125
-
126
- return {
127
- success: (_result$data$globalSi = result.data.globalSignOut) !== null && _result$data$globalSi !== void 0 && _result$data$globalSi.success ? true : false
128
- };
129
- } else {
130
- throw new _sudoCommon.FatalError('globalSignOut did not return any result.');
131
- }
132
- }
133
-
134
- async registerFederatedId(input) {
135
- var _result$errors3, _result$data, _result$data$register;
136
-
137
- let result;
138
-
139
- try {
140
- result = await this.client.mutate({
141
- mutation: _graphqlTypes.RegisterFederatedIdDocument,
142
- variables: {
143
- input
144
- },
145
- fetchPolicy: 'no-cache'
146
- });
147
- } catch (err) {
148
- var _apolloError$graphQLE3;
149
-
150
- const apolloError = err;
151
- const error = (_apolloError$graphQLE3 = apolloError.graphQLErrors) === null || _apolloError$graphQLE3 === void 0 ? void 0 : _apolloError$graphQLE3[0];
152
-
153
- if (error) {
154
- throw this.graphQLErrorsToClientError(error);
155
- } else {
156
- throw new _sudoCommon.UnknownGraphQLError(err);
157
- }
158
- }
159
-
160
- const error = (_result$errors3 = result.errors) === null || _result$errors3 === void 0 ? void 0 : _result$errors3[0];
161
-
162
- if (error) {
163
- throw this.graphQLErrorsToClientError(error);
164
- }
165
-
166
- const identityId = (_result$data = result.data) === null || _result$data === void 0 ? void 0 : (_result$data$register = _result$data.registerFederatedId) === null || _result$data$register === void 0 ? void 0 : _result$data$register.identityId;
167
-
168
- if (identityId) {
169
- return {
170
- identityId
171
- };
172
- } else {
173
- throw new _sudoCommon.FatalError('registerFederatedId did not return expected result.');
174
- }
175
- }
176
-
177
- reset() {
178
- this.client.clearStore();
179
- this.client = new _awsAppsync.AWSAppSyncClient({
180
- url: this.graphqlUrl,
181
- region: this.region,
182
- auth: {
183
- type: _awsAppsync.AUTH_TYPE.AMAZON_COGNITO_USER_POOLS,
184
- jwtToken: async () => await this.sudoUserClient.getLatestAuthToken()
185
- },
186
- disableOffline: true
187
- });
188
- }
189
-
190
- graphQLErrorsToClientError(error) {
191
- this.logger.error('GraphQL call failed.', {
192
- error
193
- });
194
-
195
- if (error.errorType === 'sudoplatform.ServiceError') {
196
- return new _sudoCommon.ServiceError(error.message);
197
- } else if (error.errorType === 'sudoplatform.identity.TokenValidationError') {
198
- return new _sudoCommon.NotAuthorizedError();
199
- } else {
200
- return new _sudoCommon.UnknownGraphQLError(error);
201
- }
202
- }
203
-
204
- }
205
-
206
- exports.ApiClient = ApiClient;
@@ -1,15 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.apiKeyNames = void 0;
7
- const apiKeyNames = {
8
- idToken: 'idToken',
9
- accessToken: 'accessToken',
10
- refreshToken: 'refreshToken',
11
- tokenExpiry: 'tokenExpiry',
12
- refreshTokenExpiry: 'refreshTokenExpiry',
13
- userId: 'LastAuthUser'
14
- };
15
- exports.apiKeyNames = apiKeyNames;
@@ -1,144 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.AuthenticationStore = void 0;
7
-
8
- var JWT = _interopRequireWildcard(require("jsonwebtoken"));
9
-
10
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
-
12
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
-
14
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
-
16
- function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
17
-
18
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
19
-
20
- function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
21
-
22
- function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
23
-
24
- function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
25
-
26
- function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
27
-
28
- function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
29
-
30
- var _secrets = /*#__PURE__*/new WeakMap();
31
-
32
- /**
33
- * Stores authentication details such as tokens and username
34
- */
35
- class AuthenticationStore {
36
- constructor() {
37
- _classPrivateFieldInitSpec(this, _secrets, {
38
- writable: true,
39
- value: {}
40
- });
41
-
42
- _defineProperty(this, "subscribers", []);
43
- }
44
-
45
- /** Adds a secret into private _secrets object */
46
- async addSecret(keyId, secret) {
47
- const key = keyId.substr(keyId.lastIndexOf('.') + 1);
48
- _classPrivateFieldGet(this, _secrets)[key] = secret;
49
- }
50
- /**
51
- * Adds a string value into authentication store
52
- */
53
-
54
-
55
- async setItem(keyId, value) {
56
- const key = keyId.substr(keyId.lastIndexOf('.') + 1);
57
-
58
- if (key === 'idToken') {
59
- // Store the token expiry
60
- const decoded = JWT.decode(value, {
61
- complete: true
62
- });
63
-
64
- if (decoded) {
65
- const tokenExpiry = decoded.payload['exp'];
66
- await this.addSecret('tokenExpiry', {
67
- type: 'string',
68
- value: tokenExpiry
69
- });
70
- }
71
- }
72
-
73
- await this.addSecret(key, {
74
- type: 'string',
75
- value
76
- });
77
- await this.notifySubscribers(key);
78
- }
79
- /**
80
- * Returns a string value from authentication store
81
- */
82
-
83
-
84
- getItem(keyId) {
85
- const key = keyId.substr(keyId.lastIndexOf('.') + 1);
86
-
87
- const secret = _classPrivateFieldGet(this, _secrets)[key];
88
-
89
- return (secret === null || secret === void 0 ? void 0 : secret.type) === 'string' ? secret.value : undefined;
90
- }
91
- /**
92
- * Removes a secret
93
- */
94
-
95
-
96
- removeItem(keyId) {
97
- const key = keyId.substr(keyId.lastIndexOf('.') + 1);
98
- delete _classPrivateFieldGet(this, _secrets)[key];
99
- }
100
- /**
101
- * Clears all secrets
102
- */
103
-
104
-
105
- reset() {
106
- _classPrivateFieldSet(this, _secrets, {});
107
- }
108
- /**
109
- * Register a subscriber to be notified when items are added
110
- *
111
- * @param subscriber a subscriber to be notified when items are added
112
- */
113
-
114
-
115
- async subscribe(subscriber) {
116
- this.subscribers.push(subscriber);
117
- }
118
- /**
119
- * Remove a subscriber from the list of subscribers
120
- *
121
- * @param subscriber the subscriber to be removed
122
- */
123
-
124
-
125
- async unsubscribe(subscriber) {
126
- const index = this.subscribers.indexOf(subscriber);
127
- this.subscribers.splice(index, 1);
128
- }
129
- /**
130
- * Notify all subscribers that a change event was triggered for a specific item
131
- *
132
- * @param itemName the name of the item that changed
133
- */
134
-
135
-
136
- async notifySubscribers(itemName) {
137
- for (const subscriber of this.subscribers) {
138
- subscriber.update(itemName);
139
- }
140
- }
141
-
142
- }
143
-
144
- exports.AuthenticationStore = AuthenticationStore;
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
@@ -1,158 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.KeyManager = void 0;
7
-
8
- var _sudoCommon = require("@sudoplatform/sudo-common");
9
-
10
- var _jsonwebtoken = _interopRequireDefault(require("jsonwebtoken"));
11
-
12
- var uuid = _interopRequireWildcard(require("uuid"));
13
-
14
- var _nodeCrypto = require("../runtimes/node/node-crypto");
15
-
16
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
-
18
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
-
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
23
-
24
- /**
25
- * Key Manager
26
- */
27
- class KeyManager {
28
- constructor(sudoKeyManager) {
29
- this.sudoKeyManager = sudoKeyManager;
30
- }
31
- /**
32
- * Adds a string value into key manager
33
- */
34
-
35
-
36
- async addString(keyId, value) {
37
- await this.sudoKeyManager.addPassword(new TextEncoder().encode(value).buffer, keyId);
38
- }
39
- /**
40
- * Returns a string value from key manager
41
- */
42
-
43
-
44
- async getString(keyId) {
45
- const passwordBuffer = await this.sudoKeyManager.getPassword(keyId);
46
-
47
- if (!passwordBuffer) {
48
- throw new _sudoCommon.KeyNotFoundError(`No key found for keyId: ${keyId}`);
49
- }
50
-
51
- try {
52
- return new TextDecoder('utf-8', {
53
- fatal: true
54
- }).decode(passwordBuffer);
55
- } catch (err) {
56
- const error = err;
57
- throw new _sudoCommon.DecodeError(error.message);
58
- }
59
- }
60
- /**
61
- * Generates and adds a new key pair into key manager
62
- * @returns Key ID
63
- */
64
-
65
-
66
- async generateKeyPair(keyId = uuid.v4()) {
67
- await this.sudoKeyManager.generateKeyPair(keyId);
68
- return keyId;
69
- }
70
- /**
71
- * Removes a secret
72
- */
73
-
74
-
75
- async removeItem(id) {
76
- await this.sudoKeyManager.deletePassword(id);
77
- }
78
- /**
79
- * Signs a JWT with a signing key that is in key manager
80
- * @returns JWT data
81
- */
82
-
83
-
84
- async signJWT(keyId, payload) {
85
- const privateKeyBits = await this.sudoKeyManager.getPrivateKey(keyId);
86
-
87
- if (!privateKeyBits) {
88
- throw new _sudoCommon.KeyNotFoundError(`No key found for keyId: ${keyId}`);
89
- }
90
-
91
- const base64encoded = _nodeCrypto.cryptoProvider.arrayBufferToBase64(privateKeyBits); //PEM encode private key
92
-
93
-
94
- const signingKey = `-----BEGIN PRIVATE KEY-----\n${base64encoded}\n-----END PRIVATE KEY-----`;
95
- return _jsonwebtoken.default.sign(payload, signingKey, {
96
- algorithm: 'RS256',
97
- keyid: keyId
98
- });
99
- }
100
- /**
101
- * Exports public key in a format for use with SudoPlatform
102
- */
103
-
104
-
105
- async exportPublicKey(keyId) {
106
- const publicKey = await this.sudoKeyManager.getPublicKey(keyId);
107
-
108
- if (!publicKey) {
109
- throw new Error('Invalid key ID for exportPublicKey');
110
- }
111
-
112
- const base64encoded = _nodeCrypto.cryptoProvider.arrayBufferToBase64(publicKey.keyData);
113
-
114
- return {
115
- keyId,
116
- algorithm: KeyManager.Constants.publicKeyAlgorithm,
117
- symmetricAlgorithm: KeyManager.Constants.symmetricAlgorithm,
118
- publicKey: base64encoded,
119
- keyFormat: publicKey.keyFormat
120
- };
121
- }
122
- /**
123
- * Clears all private keys from memory
124
- */
125
-
126
-
127
- async reset() {
128
- await this.sudoKeyManager.removeAllKeys();
129
- }
130
-
131
- async retrieveKeyPair(keyId) {
132
- const publicKey = await this.sudoKeyManager.getPublicKey(keyId);
133
-
134
- if (!publicKey) {
135
- throw new _sudoCommon.KeyNotFoundError(`Public key not found for keyId: ${keyId}`);
136
- }
137
-
138
- const privateKey = await this.sudoKeyManager.getPrivateKey(keyId);
139
-
140
- if (!privateKey) {
141
- throw new _sudoCommon.KeyNotFoundError(`Private key not found for keyId: ${keyId}`);
142
- }
143
-
144
- return {
145
- publicKey: _nodeCrypto.cryptoProvider.arrayBufferToBase64(publicKey.keyData),
146
- publicKeyFormat: publicKey.keyFormat,
147
- privateKey: _nodeCrypto.cryptoProvider.arrayBufferToBase64(privateKey)
148
- };
149
- }
150
-
151
- }
152
-
153
- exports.KeyManager = KeyManager;
154
-
155
- _defineProperty(KeyManager, "Constants", {
156
- publicKeyAlgorithm: 'RSA',
157
- symmetricAlgorithm: 'AES/256'
158
- });
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
@@ -1,56 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.IdentityServiceConfigCodec = exports.FederatedSignInConfigCodec = exports.Config = void 0;
7
- exports.getIdentityServiceConfig = getIdentityServiceConfig;
8
-
9
- var _sudoCommon = require("@sudoplatform/sudo-common");
10
-
11
- var t = _interopRequireWildcard(require("io-ts"));
12
-
13
- var _error = require("../user/error");
14
-
15
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
-
17
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
-
19
- const IdentityServiceConfigCodec = t.intersection([t.type({
20
- region: t.string,
21
- poolId: t.string,
22
- clientId: t.string,
23
- identityPoolId: t.string,
24
- apiUrl: t.string,
25
- apiKey: t.string,
26
- bucket: t.string,
27
- transientBucket: t.string,
28
- registrationMethods: t.array(t.string)
29
- }), t.partial({
30
- refreshTokenLifetime: t.number
31
- })], 'IdentityServiceConfig');
32
- exports.IdentityServiceConfigCodec = IdentityServiceConfigCodec;
33
- const FederatedSignInConfigCodec = t.intersection([t.type({
34
- appClientId: t.string,
35
- signInRedirectUri: t.string,
36
- signOutRedirectUri: t.string,
37
- webDomain: t.string
38
- }), t.partial({
39
- identityProvider: t.string,
40
- refreshTokenLifetime: t.number
41
- })], 'FederatedSignInConfig');
42
- exports.FederatedSignInConfigCodec = FederatedSignInConfigCodec;
43
- const Config = t.intersection([t.type({
44
- identityService: IdentityServiceConfigCodec
45
- }), t.partial({
46
- federatedSignIn: FederatedSignInConfigCodec
47
- })]);
48
- exports.Config = Config;
49
-
50
- function getIdentityServiceConfig() {
51
- if (!_sudoCommon.DefaultConfigurationManager.getInstance().getConfigSet('identityService')) {
52
- throw new _error.IdentityServiceConfigNotFoundError();
53
- }
54
-
55
- return _sudoCommon.DefaultConfigurationManager.getInstance().bindConfigSet(Config, undefined);
56
- }
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });