@sudoplatform/sudo-user 11.0.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.
- package/{lib → cjs/src}/client/apiClient.d.ts +0 -0
- package/cjs/src/client/apiClient.js +149 -0
- package/cjs/src/client/apiClient.js.map +1 -0
- package/{lib → cjs/src}/core/api-key-names.d.ts +0 -0
- package/cjs/src/core/api-key-names.js +12 -0
- package/cjs/src/core/api-key-names.js.map +1 -0
- package/{lib → cjs/src}/core/auth-store.d.ts +0 -0
- package/cjs/src/core/auth-store.js +92 -0
- package/cjs/src/core/auth-store.js.map +1 -0
- package/{lib → cjs/src}/core/crypto.d.ts +0 -0
- package/cjs/src/core/crypto.js +3 -0
- package/cjs/src/core/crypto.js.map +1 -0
- package/{lib → cjs/src}/core/key-manager.d.ts +0 -0
- package/cjs/src/core/key-manager.js +113 -0
- package/cjs/src/core/key-manager.js.map +1 -0
- package/cjs/src/core/protected-store.d.ts +5 -0
- package/cjs/src/core/protected-store.js +3 -0
- package/cjs/src/core/protected-store.js.map +1 -0
- package/{lib → cjs/src}/core/publisher.d.ts +0 -0
- package/cjs/src/core/publisher.js +3 -0
- package/cjs/src/core/publisher.js.map +1 -0
- package/{lib → cjs/src}/core/sdk-config.d.ts +0 -0
- package/cjs/src/core/sdk-config.js +61 -0
- package/cjs/src/core/sdk-config.js.map +1 -0
- package/{lib → cjs/src}/core/subscriber.d.ts +0 -0
- package/cjs/src/core/subscriber.js +3 -0
- package/cjs/src/core/subscriber.js.map +1 -0
- package/{lib → cjs/src}/gen/graphql-types.d.ts +0 -0
- package/cjs/src/gen/graphql-types.js +105 -0
- package/cjs/src/gen/graphql-types.js.map +1 -0
- package/{lib → cjs/src}/index.d.ts +0 -0
- package/cjs/src/index.js +13 -0
- package/cjs/src/index.js.map +1 -0
- package/{lib/runtimes/node/node-crypto.d.ts → cjs/src/runtimes/browser/browser-crypto.d.ts} +0 -0
- package/cjs/src/runtimes/browser/browser-crypto.js +10 -0
- package/cjs/src/runtimes/browser/browser-crypto.js.map +1 -0
- package/cjs/src/runtimes/node/node-crypto.d.ts +2 -0
- package/cjs/src/runtimes/node/node-crypto.js +9 -0
- package/cjs/src/runtimes/node/node-crypto.js.map +1 -0
- package/{lib → cjs/src}/sdk.d.ts +0 -0
- package/cjs/src/sdk.js +9 -0
- package/cjs/src/sdk.js.map +1 -0
- package/{lib → cjs/src}/user/auth-provider.d.ts +0 -0
- package/cjs/src/user/auth-provider.js +116 -0
- package/cjs/src/user/auth-provider.js.map +1 -0
- package/{lib → cjs/src}/user/auth.d.ts +0 -0
- package/cjs/src/user/auth.js +136 -0
- package/cjs/src/user/auth.js.map +1 -0
- package/{lib → cjs/src}/user/error.d.ts +0 -0
- package/{lib → cjs/src}/user/error.js +16 -29
- package/cjs/src/user/error.js.map +1 -0
- package/{lib → cjs/src}/user/identity-provider.d.ts +0 -0
- package/cjs/src/user/identity-provider.js +245 -0
- package/cjs/src/user/identity-provider.js.map +1 -0
- package/{lib → cjs/src}/user/user-client-interface.d.ts +0 -0
- package/cjs/src/user/user-client-interface.js +3 -0
- package/cjs/src/user/user-client-interface.js.map +1 -0
- package/{lib → cjs/src}/user/user-client.d.ts +0 -0
- package/cjs/src/user/user-client.js +440 -0
- package/cjs/src/user/user-client.js.map +1 -0
- package/{lib → cjs/src}/user/user-key-names.d.ts +0 -0
- package/cjs/src/user/user-key-names.js +10 -0
- package/cjs/src/user/user-key-names.js.map +1 -0
- package/{lib → cjs/src}/utils/resolvable-promise.d.ts +0 -0
- package/cjs/src/utils/resolvable-promise.js +20 -0
- package/cjs/src/utils/resolvable-promise.js.map +1 -0
- package/cjs/test/integration/user-client-int.spec.d.ts +1 -0
- package/cjs/test/integration/user-client-int.spec.js +206 -0
- package/cjs/test/integration/user-client-int.spec.js.map +1 -0
- package/cjs/test/unit/core/sdk-config.spec.d.ts +1 -0
- package/cjs/test/unit/core/sdk-config.spec.js +51 -0
- package/cjs/test/unit/core/sdk-config.spec.js.map +1 -0
- package/cjs/test/unit/key-manager.spec.d.ts +1 -0
- package/cjs/test/unit/key-manager.spec.js +23 -0
- package/cjs/test/unit/key-manager.spec.js.map +1 -0
- package/cjs/test/unit/user-client.spec.d.ts +1 -0
- package/cjs/test/unit/user-client.spec.js +323 -0
- package/cjs/test/unit/user-client.spec.js.map +1 -0
- package/docs/classes/AlreadyRegisteredError.html +4 -4
- package/docs/classes/IdentityServiceConfigNotFoundError.html +4 -4
- package/lib/src/client/apiClient.d.ts +25 -0
- package/lib/src/client/apiClient.js +145 -0
- package/lib/src/client/apiClient.js.map +1 -0
- package/lib/src/core/api-key-names.d.ts +8 -0
- package/lib/src/core/api-key-names.js +9 -0
- package/lib/src/core/api-key-names.js.map +1 -0
- package/lib/src/core/auth-store.d.ts +51 -0
- package/lib/src/core/auth-store.js +88 -0
- package/lib/src/core/auth-store.js.map +1 -0
- package/lib/src/core/crypto.d.ts +3 -0
- package/lib/src/core/crypto.js +2 -0
- package/lib/src/core/crypto.js.map +1 -0
- package/lib/src/core/key-manager.d.ts +31 -0
- package/lib/src/core/key-manager.js +108 -0
- package/lib/src/core/key-manager.js.map +1 -0
- package/lib/src/core/protected-store.d.ts +5 -0
- package/lib/src/core/protected-store.js +2 -0
- package/lib/src/core/protected-store.js.map +1 -0
- package/lib/src/core/publisher.d.ts +6 -0
- package/lib/src/core/publisher.js +2 -0
- package/lib/src/core/publisher.js.map +1 -0
- package/lib/src/core/sdk-config.d.ts +52 -0
- package/lib/src/core/sdk-config.js +56 -0
- package/lib/src/core/sdk-config.js.map +1 -0
- package/lib/src/core/subscriber.d.ts +3 -0
- package/lib/src/core/subscriber.js +2 -0
- package/lib/src/core/subscriber.js.map +1 -0
- package/lib/src/gen/graphql-types.d.ts +101 -0
- package/lib/src/gen/graphql-types.js +102 -0
- package/lib/src/gen/graphql-types.js.map +1 -0
- package/lib/src/index.d.ts +4 -0
- package/lib/src/index.js +6 -0
- package/lib/src/index.js.map +1 -0
- package/lib/src/runtimes/browser/browser-crypto.d.ts +2 -0
- package/lib/src/runtimes/browser/browser-crypto.js +7 -0
- package/lib/src/runtimes/browser/browser-crypto.js.map +1 -0
- package/lib/src/runtimes/node/node-crypto.d.ts +2 -0
- package/lib/src/runtimes/node/node-crypto.js +6 -0
- package/lib/src/runtimes/node/node-crypto.js.map +1 -0
- package/lib/src/sdk.d.ts +1 -0
- package/lib/src/sdk.js +6 -0
- package/lib/src/sdk.js.map +1 -0
- package/lib/src/user/auth-provider.d.ts +97 -0
- package/lib/src/user/auth-provider.js +108 -0
- package/lib/src/user/auth-provider.js.map +1 -0
- package/lib/src/user/auth.d.ts +64 -0
- package/lib/src/user/auth.js +131 -0
- package/lib/src/user/auth.js.map +1 -0
- package/lib/src/user/error.d.ts +18 -0
- package/lib/src/user/error.js +28 -0
- package/lib/src/user/error.js.map +1 -0
- package/lib/src/user/identity-provider.d.ts +73 -0
- package/lib/src/user/identity-provider.js +241 -0
- package/lib/src/user/identity-provider.js.map +1 -0
- package/lib/src/user/user-client-interface.d.ts +168 -0
- package/lib/src/user/user-client-interface.js +2 -0
- package/lib/src/user/user-client-interface.js.map +1 -0
- package/lib/src/user/user-client.d.ts +82 -0
- package/lib/src/user/user-client.js +435 -0
- package/lib/src/user/user-client.js.map +1 -0
- package/lib/src/user/user-key-names.d.ts +6 -0
- package/lib/src/user/user-key-names.js +7 -0
- package/lib/src/user/user-key-names.js.map +1 -0
- package/lib/src/utils/resolvable-promise.d.ts +9 -0
- package/lib/src/utils/resolvable-promise.js +16 -0
- package/lib/src/utils/resolvable-promise.js.map +1 -0
- package/lib/test/integration/user-client-int.spec.d.ts +1 -0
- package/lib/test/integration/user-client-int.spec.js +203 -0
- package/lib/test/integration/user-client-int.spec.js.map +1 -0
- package/lib/test/unit/core/sdk-config.spec.d.ts +1 -0
- package/lib/test/unit/core/sdk-config.spec.js +49 -0
- package/lib/test/unit/core/sdk-config.spec.js.map +1 -0
- package/lib/test/unit/key-manager.spec.d.ts +1 -0
- package/lib/test/unit/key-manager.spec.js +21 -0
- package/lib/test/unit/key-manager.spec.js.map +1 -0
- package/lib/test/unit/user-client.spec.d.ts +1 -0
- package/lib/test/unit/user-client.spec.js +320 -0
- package/lib/test/unit/user-client.spec.js.map +1 -0
- package/package.json +23 -22
- package/lib/client/apiClient.js +0 -190
- package/lib/core/api-key-names.js +0 -15
- package/lib/core/auth-store.js +0 -144
- package/lib/core/crypto.js +0 -5
- package/lib/core/key-manager.js +0 -158
- package/lib/core/protected-store.js +0 -5
- package/lib/core/publisher.js +0 -5
- package/lib/core/sdk-config.js +0 -56
- package/lib/core/subscriber.js +0 -5
- package/lib/gen/graphql-types.js +0 -141
- package/lib/index.js +0 -67
- package/lib/runtimes/browser/browser-crypto.js +0 -15
- package/lib/runtimes/node/node-crypto.js +0 -12
- package/lib/sdk.js +0 -18
- package/lib/user/auth-provider.js +0 -158
- package/lib/user/auth.js +0 -183
- package/lib/user/identity-provider.js +0 -270
- package/lib/user/user-client-interface.js +0 -5
- package/lib/user/user-client.js +0 -522
- package/lib/user/user-key-names.js +0 -13
- package/lib/utils/resolvable-promise.js +0 -22
|
File without changes
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApiClient = void 0;
|
|
4
|
+
const aws_appsync_1 = require("aws-appsync");
|
|
5
|
+
const graphql_types_1 = require("../gen/graphql-types");
|
|
6
|
+
const sudo_common_1 = require("@sudoplatform/sudo-common");
|
|
7
|
+
/**
|
|
8
|
+
* AppSync wrapper to use to invoke Identity Service APIs.
|
|
9
|
+
*/
|
|
10
|
+
class ApiClient {
|
|
11
|
+
constructor(region, graphqlUrl, sudoUserClient, logger) {
|
|
12
|
+
this.region = region;
|
|
13
|
+
this.graphqlUrl = graphqlUrl;
|
|
14
|
+
this.sudoUserClient = sudoUserClient;
|
|
15
|
+
this.logger = logger;
|
|
16
|
+
this.client = new aws_appsync_1.AWSAppSyncClient({
|
|
17
|
+
url: graphqlUrl,
|
|
18
|
+
region: region,
|
|
19
|
+
auth: {
|
|
20
|
+
type: aws_appsync_1.AUTH_TYPE.AMAZON_COGNITO_USER_POOLS,
|
|
21
|
+
jwtToken: async () => await sudoUserClient.getLatestAuthToken(),
|
|
22
|
+
},
|
|
23
|
+
disableOffline: true,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
async deregister() {
|
|
27
|
+
if (!(await this.sudoUserClient.isSignedIn())) {
|
|
28
|
+
throw new sudo_common_1.NotSignedInError();
|
|
29
|
+
}
|
|
30
|
+
let result;
|
|
31
|
+
try {
|
|
32
|
+
result = await this.client.mutate({
|
|
33
|
+
mutation: graphql_types_1.DeregisterDocument,
|
|
34
|
+
fetchPolicy: 'no-cache',
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
const apolloError = err;
|
|
39
|
+
const error = apolloError.graphQLErrors?.[0];
|
|
40
|
+
if (error) {
|
|
41
|
+
throw this.graphQLErrorsToClientError(error);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
throw new sudo_common_1.UnknownGraphQLError(err);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const error = result.errors?.[0];
|
|
48
|
+
if (error) {
|
|
49
|
+
throw this.graphQLErrorsToClientError(error);
|
|
50
|
+
}
|
|
51
|
+
if (result.data) {
|
|
52
|
+
return { success: result.data.deregister?.success ? true : false };
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
throw new sudo_common_1.FatalError('deregister did not return any result.');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async globalSignOut() {
|
|
59
|
+
if (!(await this.sudoUserClient.isSignedIn())) {
|
|
60
|
+
throw new sudo_common_1.NotSignedInError();
|
|
61
|
+
}
|
|
62
|
+
let result;
|
|
63
|
+
try {
|
|
64
|
+
result = await this.client.mutate({
|
|
65
|
+
mutation: graphql_types_1.GlobalSignOutDocument,
|
|
66
|
+
fetchPolicy: 'no-cache',
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
const apolloError = err;
|
|
71
|
+
const error = apolloError.graphQLErrors?.[0];
|
|
72
|
+
if (error) {
|
|
73
|
+
throw this.graphQLErrorsToClientError(error);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
throw new sudo_common_1.UnknownGraphQLError(err);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const error = result.errors?.[0];
|
|
80
|
+
if (error) {
|
|
81
|
+
throw this.graphQLErrorsToClientError(error);
|
|
82
|
+
}
|
|
83
|
+
if (result.data) {
|
|
84
|
+
return { success: result.data.globalSignOut?.success ? true : false };
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
throw new sudo_common_1.FatalError('globalSignOut did not return any result.');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
async registerFederatedId(input) {
|
|
91
|
+
let result;
|
|
92
|
+
try {
|
|
93
|
+
result = await this.client.mutate({
|
|
94
|
+
mutation: graphql_types_1.RegisterFederatedIdDocument,
|
|
95
|
+
variables: { input },
|
|
96
|
+
fetchPolicy: 'no-cache',
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
catch (err) {
|
|
100
|
+
const apolloError = err;
|
|
101
|
+
const error = apolloError.graphQLErrors?.[0];
|
|
102
|
+
if (error) {
|
|
103
|
+
throw this.graphQLErrorsToClientError(error);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
throw new sudo_common_1.UnknownGraphQLError(err);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
const error = result.errors?.[0];
|
|
110
|
+
if (error) {
|
|
111
|
+
throw this.graphQLErrorsToClientError(error);
|
|
112
|
+
}
|
|
113
|
+
const identityId = result.data?.registerFederatedId?.identityId;
|
|
114
|
+
if (identityId) {
|
|
115
|
+
return {
|
|
116
|
+
identityId,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
throw new sudo_common_1.FatalError('registerFederatedId did not return expected result.');
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
reset() {
|
|
124
|
+
this.client.clearStore();
|
|
125
|
+
this.client = new aws_appsync_1.AWSAppSyncClient({
|
|
126
|
+
url: this.graphqlUrl,
|
|
127
|
+
region: this.region,
|
|
128
|
+
auth: {
|
|
129
|
+
type: aws_appsync_1.AUTH_TYPE.AMAZON_COGNITO_USER_POOLS,
|
|
130
|
+
jwtToken: async () => await this.sudoUserClient.getLatestAuthToken(),
|
|
131
|
+
},
|
|
132
|
+
disableOffline: true,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
graphQLErrorsToClientError(error) {
|
|
136
|
+
this.logger.error('GraphQL call failed.', { error });
|
|
137
|
+
if (error.errorType === 'sudoplatform.ServiceError') {
|
|
138
|
+
return new sudo_common_1.ServiceError(error.message);
|
|
139
|
+
}
|
|
140
|
+
else if (error.errorType === 'sudoplatform.identity.TokenValidationError') {
|
|
141
|
+
return new sudo_common_1.NotAuthorizedError();
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
return new sudo_common_1.UnknownGraphQLError(error);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
exports.ApiClient = ApiClient;
|
|
149
|
+
//# sourceMappingURL=apiClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../../../src/client/apiClient.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.apiKeyNames = void 0;
|
|
4
|
+
exports.apiKeyNames = {
|
|
5
|
+
idToken: 'idToken',
|
|
6
|
+
accessToken: 'accessToken',
|
|
7
|
+
refreshToken: 'refreshToken',
|
|
8
|
+
tokenExpiry: 'tokenExpiry',
|
|
9
|
+
refreshTokenExpiry: 'refreshTokenExpiry',
|
|
10
|
+
userId: 'LastAuthUser',
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=api-key-names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-key-names.js","sourceRoot":"","sources":["../../../src/core/api-key-names.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;IACzB,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;IAC1B,kBAAkB,EAAE,oBAAoB;IACxC,MAAM,EAAE,cAAc;CACvB,CAAA"}
|
|
File without changes
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _AuthenticationStore_secrets;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.AuthenticationStore = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const JWT = tslib_1.__importStar(require("jsonwebtoken"));
|
|
7
|
+
/**
|
|
8
|
+
* Stores authentication details such as tokens and username
|
|
9
|
+
*/
|
|
10
|
+
class AuthenticationStore {
|
|
11
|
+
constructor() {
|
|
12
|
+
/** Do not expose these directly */
|
|
13
|
+
// eslint-disable-next-line tree-shaking/no-side-effects-in-initialization
|
|
14
|
+
_AuthenticationStore_secrets.set(this, {});
|
|
15
|
+
this.subscribers = [];
|
|
16
|
+
}
|
|
17
|
+
/** Adds a secret into private _secrets object */
|
|
18
|
+
async addSecret(keyId, secret) {
|
|
19
|
+
const key = keyId.substr(keyId.lastIndexOf('.') + 1);
|
|
20
|
+
tslib_1.__classPrivateFieldGet(this, _AuthenticationStore_secrets, "f")[key] = secret;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Adds a string value into authentication store
|
|
24
|
+
*/
|
|
25
|
+
async setItem(keyId, value) {
|
|
26
|
+
const key = keyId.substr(keyId.lastIndexOf('.') + 1);
|
|
27
|
+
if (key === 'idToken') {
|
|
28
|
+
// Store the token expiry
|
|
29
|
+
const decoded = JWT.decode(value, { complete: true });
|
|
30
|
+
if (decoded) {
|
|
31
|
+
const tokenExpiry = decoded.payload['exp'];
|
|
32
|
+
await this.addSecret('tokenExpiry', {
|
|
33
|
+
type: 'string',
|
|
34
|
+
value: tokenExpiry,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
await this.addSecret(key, { type: 'string', value });
|
|
39
|
+
await this.notifySubscribers(key);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Returns a string value from authentication store
|
|
43
|
+
*/
|
|
44
|
+
getItem(keyId) {
|
|
45
|
+
const key = keyId.substr(keyId.lastIndexOf('.') + 1);
|
|
46
|
+
const secret = tslib_1.__classPrivateFieldGet(this, _AuthenticationStore_secrets, "f")[key];
|
|
47
|
+
return secret?.type === 'string' ? secret.value : undefined;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Removes a secret
|
|
51
|
+
*/
|
|
52
|
+
removeItem(keyId) {
|
|
53
|
+
const key = keyId.substr(keyId.lastIndexOf('.') + 1);
|
|
54
|
+
delete tslib_1.__classPrivateFieldGet(this, _AuthenticationStore_secrets, "f")[key];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Clears all secrets
|
|
58
|
+
*/
|
|
59
|
+
reset() {
|
|
60
|
+
tslib_1.__classPrivateFieldSet(this, _AuthenticationStore_secrets, {}, "f");
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Register a subscriber to be notified when items are added
|
|
64
|
+
*
|
|
65
|
+
* @param subscriber a subscriber to be notified when items are added
|
|
66
|
+
*/
|
|
67
|
+
async subscribe(subscriber) {
|
|
68
|
+
this.subscribers.push(subscriber);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Remove a subscriber from the list of subscribers
|
|
72
|
+
*
|
|
73
|
+
* @param subscriber the subscriber to be removed
|
|
74
|
+
*/
|
|
75
|
+
async unsubscribe(subscriber) {
|
|
76
|
+
const index = this.subscribers.indexOf(subscriber);
|
|
77
|
+
this.subscribers.splice(index, 1);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Notify all subscribers that a change event was triggered for a specific item
|
|
81
|
+
*
|
|
82
|
+
* @param itemName the name of the item that changed
|
|
83
|
+
*/
|
|
84
|
+
async notifySubscribers(itemName) {
|
|
85
|
+
for (const subscriber of this.subscribers) {
|
|
86
|
+
subscriber.update(itemName);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.AuthenticationStore = AuthenticationStore;
|
|
91
|
+
_AuthenticationStore_secrets = new WeakMap();
|
|
92
|
+
//# sourceMappingURL=auth-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-store.js","sourceRoot":"","sources":["../../../src/core/auth-store.ts"],"names":[],"mappings":";;;;;AAEA,0DAAmC;AAcnC;;GAEG;AACH,MAAa,mBAAmB;IAAhC;QACE,mCAAmC;QACnC,0EAA0E;QAC1E,uCAAmC,EAAE,EAAA;QACrC,gBAAW,GAAiB,EAAE,CAAA;IAiFhC,CAAC;IA/EC,iDAAiD;IACzC,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,MAAc;QACnD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QACpD,+BAAA,IAAI,oCAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAA;IAC7B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,KAAa;QAC/C,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QACpD,IAAI,GAAG,KAAK,SAAS,EAAE;YACrB,yBAAyB;YACzB,MAAM,OAAO,GAAQ,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;YAC1D,IAAI,OAAO,EAAE;gBACX,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBAC1C,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;oBAClC,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,WAAW;iBACnB,CAAC,CAAA;aACH;SACF;QACD,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QACpD,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;IACnC,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,KAAa;QAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QACpD,MAAM,MAAM,GAAG,+BAAA,IAAI,oCAAS,CAAC,GAAG,CAAC,CAAA;QACjC,OAAO,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;IAC7D,CAAC;IAED;;OAEG;IACI,UAAU,CAAC,KAAa;QAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QACpD,OAAO,+BAAA,IAAI,oCAAS,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC;IAED;;OAEG;IACI,KAAK;QACV,+BAAA,IAAI,gCAAY,EAAE,MAAA,CAAA;IACpB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,SAAS,CAAC,UAAsB;QAC3C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACnC,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,WAAW,CAAC,UAAsB;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAClD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACnC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CAAC,QAAgB;QACtC,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;YACzC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;SAC5B;IACH,CAAC;CACF;AArFD,kDAqFC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../src/core/crypto.ts"],"names":[],"mappings":""}
|
|
File without changes
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KeyManager = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const sudo_common_1 = require("@sudoplatform/sudo-common");
|
|
6
|
+
const jsonwebtoken_1 = tslib_1.__importDefault(require("jsonwebtoken"));
|
|
7
|
+
const uuid = tslib_1.__importStar(require("uuid"));
|
|
8
|
+
const node_crypto_1 = require("../runtimes/node/node-crypto");
|
|
9
|
+
/**
|
|
10
|
+
* Key Manager
|
|
11
|
+
*/
|
|
12
|
+
class KeyManager {
|
|
13
|
+
constructor(sudoKeyManager) {
|
|
14
|
+
this.sudoKeyManager = sudoKeyManager;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Adds a string value into key manager
|
|
18
|
+
*/
|
|
19
|
+
async addString(keyId, value) {
|
|
20
|
+
await this.sudoKeyManager.addPassword(new TextEncoder().encode(value).buffer, keyId);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Returns a string value from key manager
|
|
24
|
+
*/
|
|
25
|
+
async getString(keyId) {
|
|
26
|
+
const passwordBuffer = await this.sudoKeyManager.getPassword(keyId);
|
|
27
|
+
if (!passwordBuffer) {
|
|
28
|
+
throw new sudo_common_1.KeyNotFoundError(`No key found for keyId: ${keyId}`);
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
return new TextDecoder('utf-8', { fatal: true }).decode(passwordBuffer);
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
const error = err;
|
|
35
|
+
throw new sudo_common_1.DecodeError(error.message);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Generates and adds a new key pair into key manager
|
|
40
|
+
* @returns Key ID
|
|
41
|
+
*/
|
|
42
|
+
async generateKeyPair(keyId = uuid.v4()) {
|
|
43
|
+
await this.sudoKeyManager.generateKeyPair(keyId);
|
|
44
|
+
return keyId;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Removes a secret
|
|
48
|
+
*/
|
|
49
|
+
async removeItem(id) {
|
|
50
|
+
await this.sudoKeyManager.deletePassword(id);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Signs a JWT with a signing key that is in key manager
|
|
54
|
+
* @returns JWT data
|
|
55
|
+
*/
|
|
56
|
+
async signJWT(keyId, payload) {
|
|
57
|
+
const privateKeyBits = await this.sudoKeyManager.getPrivateKey(keyId);
|
|
58
|
+
if (!privateKeyBits) {
|
|
59
|
+
throw new sudo_common_1.KeyNotFoundError(`No key found for keyId: ${keyId}`);
|
|
60
|
+
}
|
|
61
|
+
const base64encoded = node_crypto_1.cryptoProvider.arrayBufferToBase64(privateKeyBits);
|
|
62
|
+
//PEM encode private key
|
|
63
|
+
const signingKey = `-----BEGIN PRIVATE KEY-----\n${base64encoded}\n-----END PRIVATE KEY-----`;
|
|
64
|
+
return jsonwebtoken_1.default.sign(payload, signingKey, {
|
|
65
|
+
algorithm: 'RS256',
|
|
66
|
+
keyid: keyId,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Exports public key in a format for use with SudoPlatform
|
|
71
|
+
*/
|
|
72
|
+
async exportPublicKey(keyId) {
|
|
73
|
+
const publicKey = await this.sudoKeyManager.getPublicKey(keyId);
|
|
74
|
+
if (!publicKey) {
|
|
75
|
+
throw new Error('Invalid key ID for exportPublicKey');
|
|
76
|
+
}
|
|
77
|
+
const base64encoded = node_crypto_1.cryptoProvider.arrayBufferToBase64(publicKey.keyData);
|
|
78
|
+
return {
|
|
79
|
+
keyId,
|
|
80
|
+
algorithm: KeyManager.Constants.publicKeyAlgorithm,
|
|
81
|
+
symmetricAlgorithm: KeyManager.Constants.symmetricAlgorithm,
|
|
82
|
+
publicKey: base64encoded,
|
|
83
|
+
keyFormat: publicKey.keyFormat,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Clears all private keys from memory
|
|
88
|
+
*/
|
|
89
|
+
async reset() {
|
|
90
|
+
await this.sudoKeyManager.removeAllKeys();
|
|
91
|
+
}
|
|
92
|
+
async retrieveKeyPair(keyId) {
|
|
93
|
+
const publicKey = await this.sudoKeyManager.getPublicKey(keyId);
|
|
94
|
+
if (!publicKey) {
|
|
95
|
+
throw new sudo_common_1.KeyNotFoundError(`Public key not found for keyId: ${keyId}`);
|
|
96
|
+
}
|
|
97
|
+
const privateKey = await this.sudoKeyManager.getPrivateKey(keyId);
|
|
98
|
+
if (!privateKey) {
|
|
99
|
+
throw new sudo_common_1.KeyNotFoundError(`Private key not found for keyId: ${keyId}`);
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
publicKey: node_crypto_1.cryptoProvider.arrayBufferToBase64(publicKey.keyData),
|
|
103
|
+
publicKeyFormat: publicKey.keyFormat,
|
|
104
|
+
privateKey: node_crypto_1.cryptoProvider.arrayBufferToBase64(privateKey),
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.KeyManager = KeyManager;
|
|
109
|
+
KeyManager.Constants = {
|
|
110
|
+
publicKeyAlgorithm: 'RSA',
|
|
111
|
+
symmetricAlgorithm: 'AES/256',
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=key-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-manager.js","sourceRoot":"","sources":["../../../src/core/key-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protected-store.js","sourceRoot":"","sources":["../../../src/core/protected-store.ts"],"names":[],"mappings":""}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../../src/core/publisher.ts"],"names":[],"mappings":""}
|
|
File without changes
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getIdentityServiceConfig = exports.Config = exports.FederatedSignInConfigCodec = exports.IdentityServiceConfigCodec = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const sudo_common_1 = require("@sudoplatform/sudo-common");
|
|
6
|
+
const t = tslib_1.__importStar(require("io-ts"));
|
|
7
|
+
const error_1 = require("../user/error");
|
|
8
|
+
// eslint-disable-next-line tree-shaking/no-side-effects-in-initialization
|
|
9
|
+
exports.IdentityServiceConfigCodec = t.intersection([
|
|
10
|
+
// eslint-disable-next-line tree-shaking/no-side-effects-in-initialization
|
|
11
|
+
t.type({
|
|
12
|
+
region: t.string,
|
|
13
|
+
poolId: t.string,
|
|
14
|
+
clientId: t.string,
|
|
15
|
+
identityPoolId: t.string,
|
|
16
|
+
apiUrl: t.string,
|
|
17
|
+
apiKey: t.string,
|
|
18
|
+
bucket: t.string,
|
|
19
|
+
transientBucket: t.string,
|
|
20
|
+
// eslint-disable-next-line tree-shaking/no-side-effects-in-initialization
|
|
21
|
+
registrationMethods: t.array(t.string),
|
|
22
|
+
}),
|
|
23
|
+
// eslint-disable-next-line tree-shaking/no-side-effects-in-initialization
|
|
24
|
+
t.partial({
|
|
25
|
+
refreshTokenLifetime: t.number,
|
|
26
|
+
}),
|
|
27
|
+
], 'IdentityServiceConfig');
|
|
28
|
+
// eslint-disable-next-line tree-shaking/no-side-effects-in-initialization
|
|
29
|
+
exports.FederatedSignInConfigCodec = t.intersection([
|
|
30
|
+
// eslint-disable-next-line tree-shaking/no-side-effects-in-initialization
|
|
31
|
+
t.type({
|
|
32
|
+
appClientId: t.string,
|
|
33
|
+
signInRedirectUri: t.string,
|
|
34
|
+
signOutRedirectUri: t.string,
|
|
35
|
+
webDomain: t.string,
|
|
36
|
+
}),
|
|
37
|
+
// eslint-disable-next-line tree-shaking/no-side-effects-in-initialization
|
|
38
|
+
t.partial({
|
|
39
|
+
identityProvider: t.string,
|
|
40
|
+
refreshTokenLifetime: t.number,
|
|
41
|
+
}),
|
|
42
|
+
], 'FederatedSignInConfig');
|
|
43
|
+
// eslint-disable-next-line tree-shaking/no-side-effects-in-initialization
|
|
44
|
+
exports.Config = t.intersection([
|
|
45
|
+
// eslint-disable-next-line tree-shaking/no-side-effects-in-initialization
|
|
46
|
+
t.type({
|
|
47
|
+
identityService: exports.IdentityServiceConfigCodec,
|
|
48
|
+
}),
|
|
49
|
+
// eslint-disable-next-line tree-shaking/no-side-effects-in-initialization
|
|
50
|
+
t.partial({
|
|
51
|
+
federatedSignIn: exports.FederatedSignInConfigCodec,
|
|
52
|
+
}),
|
|
53
|
+
]);
|
|
54
|
+
function getIdentityServiceConfig() {
|
|
55
|
+
if (!sudo_common_1.DefaultConfigurationManager.getInstance().getConfigSet('identityService')) {
|
|
56
|
+
throw new error_1.IdentityServiceConfigNotFoundError();
|
|
57
|
+
}
|
|
58
|
+
return sudo_common_1.DefaultConfigurationManager.getInstance().bindConfigSet(exports.Config, undefined);
|
|
59
|
+
}
|
|
60
|
+
exports.getIdentityServiceConfig = getIdentityServiceConfig;
|
|
61
|
+
//# sourceMappingURL=sdk-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-config.js","sourceRoot":"","sources":["../../../src/core/sdk-config.ts"],"names":[],"mappings":";;;;AAAA,2DAAuE;AACvE,iDAA0B;AAC1B,yCAAkE;AAElE,0EAA0E;AAC7D,QAAA,0BAA0B,GAAG,CAAC,CAAC,YAAY,CACtD;IACE,0EAA0E;IAC1E,CAAC,CAAC,IAAI,CAAC;QACL,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,QAAQ,EAAE,CAAC,CAAC,MAAM;QAClB,cAAc,EAAE,CAAC,CAAC,MAAM;QACxB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,eAAe,EAAE,CAAC,CAAC,MAAM;QACzB,0EAA0E;QAC1E,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;KACvC,CAAC;IACF,0EAA0E;IAC1E,CAAC,CAAC,OAAO,CAAC;QACR,oBAAoB,EAAE,CAAC,CAAC,MAAM;KAC/B,CAAC;CACH,EACD,uBAAuB,CACxB,CAAA;AAED,0EAA0E;AAC7D,QAAA,0BAA0B,GAAG,CAAC,CAAC,YAAY,CACtD;IACE,0EAA0E;IAC1E,CAAC,CAAC,IAAI,CAAC;QACL,WAAW,EAAE,CAAC,CAAC,MAAM;QACrB,iBAAiB,EAAE,CAAC,CAAC,MAAM;QAC3B,kBAAkB,EAAE,CAAC,CAAC,MAAM;QAC5B,SAAS,EAAE,CAAC,CAAC,MAAM;KACpB,CAAC;IACF,0EAA0E;IAC1E,CAAC,CAAC,OAAO,CAAC;QACR,gBAAgB,EAAE,CAAC,CAAC,MAAM;QAC1B,oBAAoB,EAAE,CAAC,CAAC,MAAM;KAC/B,CAAC;CACH,EACD,uBAAuB,CACxB,CAAA;AAED,0EAA0E;AAC7D,QAAA,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC;IACnC,0EAA0E;IAC1E,CAAC,CAAC,IAAI,CAAC;QACL,eAAe,EAAE,kCAA0B;KAC5C,CAAC;IACF,0EAA0E;IAC1E,CAAC,CAAC,OAAO,CAAC;QACR,eAAe,EAAE,kCAA0B;KAC5C,CAAC;CACH,CAAC,CAAA;AAMF,SAAgB,wBAAwB;IACtC,IACE,CAAC,yCAA2B,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,EAC1E;QACA,MAAM,IAAI,0CAAkC,EAAE,CAAA;KAC/C;IAED,OAAO,yCAA2B,CAAC,WAAW,EAAE,CAAC,aAAa,CAC5D,cAAM,EACN,SAAS,CACV,CAAA;AACH,CAAC;AAXD,4DAWC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriber.js","sourceRoot":"","sources":["../../../src/core/subscriber.ts"],"names":[],"mappings":""}
|
|
File without changes
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RegisterFederatedIdDocument = exports.GlobalSignOutDocument = exports.DeregisterDocument = void 0;
|
|
4
|
+
exports.DeregisterDocument = {
|
|
5
|
+
kind: 'Document',
|
|
6
|
+
definitions: [
|
|
7
|
+
{
|
|
8
|
+
kind: 'OperationDefinition',
|
|
9
|
+
operation: 'mutation',
|
|
10
|
+
name: { kind: 'Name', value: 'deregister' },
|
|
11
|
+
selectionSet: {
|
|
12
|
+
kind: 'SelectionSet',
|
|
13
|
+
selections: [
|
|
14
|
+
{
|
|
15
|
+
kind: 'Field',
|
|
16
|
+
name: { kind: 'Name', value: 'deregister' },
|
|
17
|
+
selectionSet: {
|
|
18
|
+
kind: 'SelectionSet',
|
|
19
|
+
selections: [
|
|
20
|
+
{ kind: 'Field', name: { kind: 'Name', value: 'success' } },
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
};
|
|
29
|
+
exports.GlobalSignOutDocument = {
|
|
30
|
+
kind: 'Document',
|
|
31
|
+
definitions: [
|
|
32
|
+
{
|
|
33
|
+
kind: 'OperationDefinition',
|
|
34
|
+
operation: 'mutation',
|
|
35
|
+
name: { kind: 'Name', value: 'GlobalSignOut' },
|
|
36
|
+
selectionSet: {
|
|
37
|
+
kind: 'SelectionSet',
|
|
38
|
+
selections: [
|
|
39
|
+
{
|
|
40
|
+
kind: 'Field',
|
|
41
|
+
name: { kind: 'Name', value: 'globalSignOut' },
|
|
42
|
+
selectionSet: {
|
|
43
|
+
kind: 'SelectionSet',
|
|
44
|
+
selections: [
|
|
45
|
+
{ kind: 'Field', name: { kind: 'Name', value: 'success' } },
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
};
|
|
54
|
+
exports.RegisterFederatedIdDocument = {
|
|
55
|
+
kind: 'Document',
|
|
56
|
+
definitions: [
|
|
57
|
+
{
|
|
58
|
+
kind: 'OperationDefinition',
|
|
59
|
+
operation: 'mutation',
|
|
60
|
+
name: { kind: 'Name', value: 'registerFederatedId' },
|
|
61
|
+
variableDefinitions: [
|
|
62
|
+
{
|
|
63
|
+
kind: 'VariableDefinition',
|
|
64
|
+
variable: {
|
|
65
|
+
kind: 'Variable',
|
|
66
|
+
name: { kind: 'Name', value: 'input' },
|
|
67
|
+
},
|
|
68
|
+
type: {
|
|
69
|
+
kind: 'NonNullType',
|
|
70
|
+
type: {
|
|
71
|
+
kind: 'NamedType',
|
|
72
|
+
name: { kind: 'Name', value: 'RegisterFederatedIdInput' },
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
selectionSet: {
|
|
78
|
+
kind: 'SelectionSet',
|
|
79
|
+
selections: [
|
|
80
|
+
{
|
|
81
|
+
kind: 'Field',
|
|
82
|
+
name: { kind: 'Name', value: 'registerFederatedId' },
|
|
83
|
+
arguments: [
|
|
84
|
+
{
|
|
85
|
+
kind: 'Argument',
|
|
86
|
+
name: { kind: 'Name', value: 'input' },
|
|
87
|
+
value: {
|
|
88
|
+
kind: 'Variable',
|
|
89
|
+
name: { kind: 'Name', value: 'input' },
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
],
|
|
93
|
+
selectionSet: {
|
|
94
|
+
kind: 'SelectionSet',
|
|
95
|
+
selections: [
|
|
96
|
+
{ kind: 'Field', name: { kind: 'Name', value: 'identityId' } },
|
|
97
|
+
],
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
],
|
|
104
|
+
};
|
|
105
|
+
//# sourceMappingURL=graphql-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql-types.js","sourceRoot":"","sources":["../../../src/gen/graphql-types.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
package/cjs/src/index.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LocalAuthenticationProvider = exports.TESTAuthenticationProvider = exports.DefaultSudoUserClient = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
/* Everything exported here is considered public API and is documented by typedoc. */
|
|
6
|
+
var user_client_1 = require("./user/user-client");
|
|
7
|
+
Object.defineProperty(exports, "DefaultSudoUserClient", { enumerable: true, get: function () { return user_client_1.DefaultSudoUserClient; } });
|
|
8
|
+
tslib_1.__exportStar(require("./user/user-client-interface"), exports);
|
|
9
|
+
var auth_provider_1 = require("./user/auth-provider");
|
|
10
|
+
Object.defineProperty(exports, "TESTAuthenticationProvider", { enumerable: true, get: function () { return auth_provider_1.TESTAuthenticationProvider; } });
|
|
11
|
+
Object.defineProperty(exports, "LocalAuthenticationProvider", { enumerable: true, get: function () { return auth_provider_1.LocalAuthenticationProvider; } });
|
|
12
|
+
tslib_1.__exportStar(require("./user/error"), exports);
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,qFAAqF;AACrF,kDAA0D;AAAjD,oHAAA,qBAAqB,OAAA;AAC9B,uEAA4C;AAC5C,sDAI6B;AAH3B,2HAAA,0BAA0B,OAAA;AAC1B,4HAAA,2BAA2B,OAAA;AAI7B,uDAA4B"}
|