@lifeready/core 0.6.0-beta.1
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/README.md +62 -0
- package/bundles/lifeready-core.umd.js +15939 -0
- package/bundles/lifeready-core.umd.js.map +1 -0
- package/bundles/lifeready-core.umd.min.js +2 -0
- package/bundles/lifeready-core.umd.min.js.map +1 -0
- package/esm2015/lib/_common/ast.js +40 -0
- package/esm2015/lib/_common/deferred-promise.js +24 -0
- package/esm2015/lib/_common/exceptions.js +157 -0
- package/esm2015/lib/_common/queries.gql.js +190 -0
- package/esm2015/lib/_common/run-outside-angular.js +79 -0
- package/esm2015/lib/_common/types.js +1 -0
- package/esm2015/lib/_common/utils.js +44 -0
- package/esm2015/lib/api/contact-card.gql.js +79 -0
- package/esm2015/lib/api/contact-card.service.js +154 -0
- package/esm2015/lib/api/contact-card2.gql.js +60 -0
- package/esm2015/lib/api/contact-card2.service.js +103 -0
- package/esm2015/lib/api/file.service.js +74 -0
- package/esm2015/lib/api/item2.gql.js +110 -0
- package/esm2015/lib/api/item2.service.js +311 -0
- package/esm2015/lib/api/key-exchange.gql.js +188 -0
- package/esm2015/lib/api/key-exchange.service.js +442 -0
- package/esm2015/lib/api/key-exchange.types.js +18 -0
- package/esm2015/lib/api/key-exchange2.gql.js +171 -0
- package/esm2015/lib/api/key-exchange2.service.js +479 -0
- package/esm2015/lib/api/lock.gql.js +40 -0
- package/esm2015/lib/api/lock.service.js +64 -0
- package/esm2015/lib/api/lr-apollo.service.js +46 -0
- package/esm2015/lib/api/lr-graphql/index.js +6 -0
- package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +155 -0
- package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +213 -0
- package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +51 -0
- package/esm2015/lib/api/lr-graphql/lr-mutation.js +48 -0
- package/esm2015/lib/api/lr-graphql/lr.service.js +18 -0
- package/esm2015/lib/api/message.service.js +138 -0
- package/esm2015/lib/api/persist.service.js +181 -0
- package/esm2015/lib/api/query-processor/common-processors.service.js +93 -0
- package/esm2015/lib/api/query-processor/index.js +3 -0
- package/esm2015/lib/api/query-processor/query-processor.service.js +192 -0
- package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +109 -0
- package/esm2015/lib/api/shared-contact-card.service.js +119 -0
- package/esm2015/lib/api/shared-contact-card2.gql.js +41 -0
- package/esm2015/lib/api/shared-contact-card2.service.js +117 -0
- package/esm2015/lib/api/time.service.js +146 -0
- package/esm2015/lib/api/types/graphql.types.js +7 -0
- package/esm2015/lib/api/types/index.js +3 -0
- package/esm2015/lib/api/types/lr-graphql.types.js +71 -0
- package/esm2015/lib/auth/auth.config.js +57 -0
- package/esm2015/lib/auth/auth.gql.js +48 -0
- package/esm2015/lib/auth/auth.types.js +27 -0
- package/esm2015/lib/auth/idle.service.js +168 -0
- package/esm2015/lib/auth/idle.types.js +7 -0
- package/esm2015/lib/auth/lbop.service.js +355 -0
- package/esm2015/lib/auth/life-ready-auth.service.js +333 -0
- package/esm2015/lib/auth/password.service.js +320 -0
- package/esm2015/lib/auth/register.service.js +172 -0
- package/esm2015/lib/auth/two-factor.service.js +74 -0
- package/esm2015/lib/category/category-meta.service.js +99 -0
- package/esm2015/lib/category/category.gql.js +406 -0
- package/esm2015/lib/category/category.service.js +390 -0
- package/esm2015/lib/category/category.types.js +29 -0
- package/esm2015/lib/cryptography/cryptography.types.js +11 -0
- package/esm2015/lib/cryptography/encryption.service.js +189 -0
- package/esm2015/lib/cryptography/key-factory.service.js +237 -0
- package/esm2015/lib/cryptography/key-graph.service.js +280 -0
- package/esm2015/lib/cryptography/key-meta.service.js +200 -0
- package/esm2015/lib/cryptography/key.service.js +124 -0
- package/esm2015/lib/cryptography/slip39.service.js +169 -0
- package/esm2015/lib/cryptography/web-crypto.service.js +29 -0
- package/esm2015/lib/life-ready.config.js +84 -0
- package/esm2015/lib/life-ready.module.js +74 -0
- package/esm2015/lib/plan/plan.gql.js +123 -0
- package/esm2015/lib/plan/plan.service.js +149 -0
- package/esm2015/lib/plan/plan.types.js +11 -0
- package/esm2015/lib/record/record-attachment.service.js +101 -0
- package/esm2015/lib/record/record.gql.js +179 -0
- package/esm2015/lib/record/record.service.js +206 -0
- package/esm2015/lib/record/record.types.js +15 -0
- package/esm2015/lib/record-type/record-type.service.js +75 -0
- package/esm2015/lib/record-type/record-type.types.js +28 -0
- package/esm2015/lib/scenario/approvals/scenario-approval.gql.js +105 -0
- package/esm2015/lib/scenario/approvals/scenario-approval.types.js +1 -0
- package/esm2015/lib/scenario/approvals/scenario-approver.service.js +300 -0
- package/esm2015/lib/scenario/claimants/scenario-claimant.gql.js +52 -0
- package/esm2015/lib/scenario/claimants/scenario-claimant.service.js +97 -0
- package/esm2015/lib/scenario/claimants/scenario-claimant.types.js +1 -0
- package/esm2015/lib/scenario/receivers/scenario-receiver.gql.js +150 -0
- package/esm2015/lib/scenario/receivers/scenario-receiver.service.js +229 -0
- package/esm2015/lib/scenario/receivers/scenario-receiver.types.js +1 -0
- package/esm2015/lib/scenario/scenario-setup.service.js +269 -0
- package/esm2015/lib/scenario/scenario.gql.js +368 -0
- package/esm2015/lib/scenario/scenario.service.js +611 -0
- package/esm2015/lib/scenario/scenario.types.js +64 -0
- package/esm2015/lib/search/search.gql.js +62 -0
- package/esm2015/lib/search/search.service.js +156 -0
- package/esm2015/lib/search/search.types.js +6 -0
- package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +112 -0
- package/esm2015/lib/trusted-parties/tp-password-reset-user.service.js +266 -0
- package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +232 -0
- package/esm2015/lib/trusted-parties/tp-password-reset.service.js +300 -0
- package/esm2015/lib/trusted-parties/trusted-party.gql.js +148 -0
- package/esm2015/lib/trusted-parties/trusted-party.service.js +326 -0
- package/esm2015/lib/trusted-parties/trusted-party.types.js +41 -0
- package/esm2015/lib/trusted-parties/trusted-party2.gql.js +87 -0
- package/esm2015/lib/trusted-parties/trusted-party2.service.js +215 -0
- package/esm2015/lib/users/profile-details.service.js +214 -0
- package/esm2015/lib/users/profile.gql.js +97 -0
- package/esm2015/lib/users/profile.service.js +169 -0
- package/esm2015/lib/users/profile.types.js +34 -0
- package/esm2015/lib/users/user.gql.js +60 -0
- package/esm2015/lib/users/user.service.js +79 -0
- package/esm2015/lib/users/user.types.js +5 -0
- package/esm2015/lifeready-core.js +10 -0
- package/esm2015/public-api.js +81 -0
- package/fesm2015/lifeready-core.js +13290 -0
- package/fesm2015/lifeready-core.js.map +1 -0
- package/lib/_common/ast.d.ts +11 -0
- package/lib/_common/deferred-promise.d.ts +12 -0
- package/lib/_common/exceptions.d.ts +109 -0
- package/lib/_common/queries.gql.d.ts +10 -0
- package/lib/_common/run-outside-angular.d.ts +14 -0
- package/lib/_common/types.d.ts +10 -0
- package/lib/_common/utils.d.ts +3 -0
- package/lib/api/contact-card.gql.d.ts +7 -0
- package/lib/api/contact-card.service.d.ts +52 -0
- package/lib/api/contact-card2.gql.d.ts +34 -0
- package/lib/api/contact-card2.service.d.ts +49 -0
- package/lib/api/file.service.d.ts +18 -0
- package/lib/api/item2.gql.d.ts +96 -0
- package/lib/api/item2.service.d.ts +177 -0
- package/lib/api/key-exchange.gql.d.ts +9 -0
- package/lib/api/key-exchange.service.d.ts +39 -0
- package/lib/api/key-exchange.types.d.ts +196 -0
- package/lib/api/key-exchange2.gql.d.ts +125 -0
- package/lib/api/key-exchange2.service.d.ts +187 -0
- package/lib/api/lock.gql.d.ts +27 -0
- package/lib/api/lock.service.d.ts +25 -0
- package/lib/api/lr-apollo.service.d.ts +15 -0
- package/lib/api/lr-graphql/index.d.ts +5 -0
- package/lib/api/lr-graphql/lr-graphql.service.d.ts +60 -0
- package/lib/api/lr-graphql/lr-merged-mutation.d.ts +27 -0
- package/lib/api/lr-graphql/lr-mutation-base.d.ts +28 -0
- package/lib/api/lr-graphql/lr-mutation.d.ts +8 -0
- package/lib/api/lr-graphql/lr.service.d.ts +9 -0
- package/lib/api/message.service.d.ts +58 -0
- package/lib/api/persist.service.d.ts +31 -0
- package/lib/api/query-processor/common-processors.service.d.ts +36 -0
- package/lib/api/query-processor/index.d.ts +2 -0
- package/lib/api/query-processor/query-processor.service.d.ts +18 -0
- package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +15 -0
- package/lib/api/shared-contact-card.service.d.ts +33 -0
- package/lib/api/shared-contact-card2.gql.d.ts +36 -0
- package/lib/api/shared-contact-card2.service.d.ts +45 -0
- package/lib/api/time.service.d.ts +16 -0
- package/lib/api/types/graphql.types.d.ts +29 -0
- package/lib/api/types/index.d.ts +2 -0
- package/lib/api/types/lr-graphql.types.d.ts +385 -0
- package/lib/auth/auth.config.d.ts +5 -0
- package/lib/auth/auth.gql.d.ts +15 -0
- package/lib/auth/auth.types.d.ts +66 -0
- package/lib/auth/idle.service.d.ts +40 -0
- package/lib/auth/idle.types.d.ts +10 -0
- package/lib/auth/lbop.service.d.ts +91 -0
- package/lib/auth/life-ready-auth.service.d.ts +46 -0
- package/lib/auth/password.service.d.ts +78 -0
- package/lib/auth/register.service.d.ts +25 -0
- package/lib/auth/two-factor.service.d.ts +15 -0
- package/lib/category/category-meta.service.d.ts +23 -0
- package/lib/category/category.gql.d.ts +45 -0
- package/lib/category/category.service.d.ts +67 -0
- package/lib/category/category.types.d.ts +79 -0
- package/lib/cryptography/cryptography.types.d.ts +83 -0
- package/lib/cryptography/encryption.service.d.ts +41 -0
- package/lib/cryptography/key-factory.service.d.ts +38 -0
- package/lib/cryptography/key-graph.service.d.ts +33 -0
- package/lib/cryptography/key-meta.service.d.ts +44 -0
- package/lib/cryptography/key.service.d.ts +36 -0
- package/lib/cryptography/slip39.service.d.ts +43 -0
- package/lib/cryptography/web-crypto.service.d.ts +5 -0
- package/lib/life-ready.config.d.ts +14 -0
- package/lib/life-ready.module.d.ts +5 -0
- package/lib/plan/plan.gql.d.ts +11 -0
- package/lib/plan/plan.service.d.ts +33 -0
- package/lib/plan/plan.types.d.ts +31 -0
- package/lib/record/record-attachment.service.d.ts +16 -0
- package/lib/record/record.gql.d.ts +14 -0
- package/lib/record/record.service.d.ts +25 -0
- package/lib/record/record.types.d.ts +57 -0
- package/lib/record-type/record-type.service.d.ts +11 -0
- package/lib/record-type/record-type.types.d.ts +50 -0
- package/lib/scenario/approvals/scenario-approval.gql.d.ts +7 -0
- package/lib/scenario/approvals/scenario-approval.types.d.ts +63 -0
- package/lib/scenario/approvals/scenario-approver.service.d.ts +32 -0
- package/lib/scenario/claimants/scenario-claimant.gql.d.ts +5 -0
- package/lib/scenario/claimants/scenario-claimant.service.d.ts +17 -0
- package/lib/scenario/claimants/scenario-claimant.types.d.ts +18 -0
- package/lib/scenario/receivers/scenario-receiver.gql.d.ts +8 -0
- package/lib/scenario/receivers/scenario-receiver.service.d.ts +30 -0
- package/lib/scenario/receivers/scenario-receiver.types.d.ts +54 -0
- package/lib/scenario/scenario-setup.service.d.ts +22 -0
- package/lib/scenario/scenario.gql.d.ts +34 -0
- package/lib/scenario/scenario.service.d.ts +58 -0
- package/lib/scenario/scenario.types.d.ts +217 -0
- package/lib/search/search.gql.d.ts +1 -0
- package/lib/search/search.service.d.ts +25 -0
- package/lib/search/search.types.d.ts +20 -0
- package/lib/trusted-parties/tp-password-reset-request.service.d.ts +20 -0
- package/lib/trusted-parties/tp-password-reset-user.service.d.ts +41 -0
- package/lib/trusted-parties/tp-password-reset.gql.d.ts +218 -0
- package/lib/trusted-parties/tp-password-reset.service.d.ts +131 -0
- package/lib/trusted-parties/trusted-party.gql.d.ts +9 -0
- package/lib/trusted-parties/trusted-party.service.d.ts +44 -0
- package/lib/trusted-parties/trusted-party.types.d.ts +102 -0
- package/lib/trusted-parties/trusted-party2.gql.d.ts +79 -0
- package/lib/trusted-parties/trusted-party2.service.d.ts +114 -0
- package/lib/users/profile-details.service.d.ts +21 -0
- package/lib/users/profile.gql.d.ts +11 -0
- package/lib/users/profile.service.d.ts +35 -0
- package/lib/users/profile.types.d.ts +96 -0
- package/lib/users/user.gql.d.ts +9 -0
- package/lib/users/user.service.d.ts +12 -0
- package/lib/users/user.types.d.ts +23 -0
- package/lifeready-core.d.ts +9 -0
- package/lifeready-core.metadata.json +1 -0
- package/package.json +29 -0
- package/public-api.d.ts +77 -0
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
import { __awaiter, __decorate } from "tslib";
|
|
2
|
+
import { Hub } from '@aws-amplify/core';
|
|
3
|
+
import { Inject, Injectable, Injector, NgZone } from '@angular/core';
|
|
4
|
+
import { EncryptionService } from '../cryptography/encryption.service';
|
|
5
|
+
import { KeyGraphService } from '../cryptography/key-graph.service';
|
|
6
|
+
import { LR_CONFIG } from '../life-ready.config';
|
|
7
|
+
import * as slip from '../cryptography/slip39.service';
|
|
8
|
+
import { JWK } from 'node-jose';
|
|
9
|
+
import { LrBadStateException, LrException } from '../_common/exceptions';
|
|
10
|
+
import { CompleteTpPasswordResetRequestMutation, CreateTpAssemblyKeyChallengeMutation, PreCompleteTpPasswordResetRequestMutation, } from './tp-password-reset.gql';
|
|
11
|
+
import { PasswordService } from '../auth/password.service';
|
|
12
|
+
import { HttpClient } from '@angular/common/http';
|
|
13
|
+
import { AuthClass } from '@aws-amplify/auth/lib-esm/Auth';
|
|
14
|
+
import { TpPasswordResetService, } from './tp-password-reset.service';
|
|
15
|
+
import { LifeReadyAuthService } from '../auth/life-ready-auth.service';
|
|
16
|
+
import { KeyFactoryService } from '../cryptography/key-factory.service';
|
|
17
|
+
import { TpClaimState } from '../api/types';
|
|
18
|
+
import { LrMutation, LrService } from '../api/lr-graphql';
|
|
19
|
+
import { RunOutsideAngular } from '../_common/run-outside-angular';
|
|
20
|
+
import * as i0 from "@angular/core";
|
|
21
|
+
import * as i1 from "../life-ready.config";
|
|
22
|
+
import * as i2 from "../cryptography/key-factory.service";
|
|
23
|
+
import * as i3 from "../cryptography/encryption.service";
|
|
24
|
+
import * as i4 from "../cryptography/key-graph.service";
|
|
25
|
+
import * as i5 from "../cryptography/slip39.service";
|
|
26
|
+
import * as i6 from "../auth/password.service";
|
|
27
|
+
import * as i7 from "@angular/common/http";
|
|
28
|
+
import * as i8 from "@aws-amplify/auth/lib-esm/Auth";
|
|
29
|
+
import * as i9 from "../auth/life-ready-auth.service";
|
|
30
|
+
let TpPasswordResetUserService = class TpPasswordResetUserService extends LrService {
|
|
31
|
+
constructor(ngZone, injector, config, keyFactory, encryptionService, keyGraphService, slip39Service, passwordService, http, auth, lrAuth) {
|
|
32
|
+
super(injector);
|
|
33
|
+
this.ngZone = ngZone;
|
|
34
|
+
this.injector = injector;
|
|
35
|
+
this.config = config;
|
|
36
|
+
this.keyFactory = keyFactory;
|
|
37
|
+
this.encryptionService = encryptionService;
|
|
38
|
+
this.keyGraphService = keyGraphService;
|
|
39
|
+
this.slip39Service = slip39Service;
|
|
40
|
+
this.passwordService = passwordService;
|
|
41
|
+
this.http = http;
|
|
42
|
+
this.auth = auth;
|
|
43
|
+
this.lrAuth = lrAuth;
|
|
44
|
+
this.CLIENT_NONCE_LENGTH = 32;
|
|
45
|
+
}
|
|
46
|
+
verifyEmailContact(email) {
|
|
47
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
const params = {
|
|
49
|
+
email,
|
|
50
|
+
};
|
|
51
|
+
return this.http
|
|
52
|
+
.post(`${this.config.authUrl}tp/password-reset/verify-contact/`, params)
|
|
53
|
+
.toPromise();
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
verifyContactRespond(claimId, claimCode) {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
const { token } = yield this.http
|
|
59
|
+
.post(`${this.config.authUrl}cove/respond/`, {
|
|
60
|
+
claim_id: claimId,
|
|
61
|
+
v_code: claimCode,
|
|
62
|
+
})
|
|
63
|
+
.toPromise();
|
|
64
|
+
return token;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
requestReset(password, claimId, claimToken) {
|
|
68
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
+
// Generate the key materials
|
|
70
|
+
const passKeyBundle = yield this.passwordService.createPassKeyBundle(password);
|
|
71
|
+
const masterKey = yield this.keyFactory.createKey();
|
|
72
|
+
const wrappedMasterKey = yield this.encryptionService.encrypt(passKeyBundle.passKey, masterKey.toJSON(true));
|
|
73
|
+
// Ephemeral PKC key
|
|
74
|
+
const prk = yield this.keyFactory.createPkcKey();
|
|
75
|
+
const masterKeyWrappedPrk = yield this.encryptionService.encrypt(masterKey, prk.toJSON(true));
|
|
76
|
+
// API call to setup reset request
|
|
77
|
+
const requestResetResult = yield this.http
|
|
78
|
+
.post(`${this.config.authUrl}tp/password-reset/request/`, {
|
|
79
|
+
claimId,
|
|
80
|
+
claimToken,
|
|
81
|
+
pass_key_params: passKeyBundle.passKeyParams,
|
|
82
|
+
pass_idp_params: passKeyBundle.passIdpParams,
|
|
83
|
+
pass_idp_verifier_pbk: passKeyBundle.passIdpVerifier.toJSON(),
|
|
84
|
+
wrapped_pass_idp_verifier_prk: passKeyBundle.wrappedPassIdpVerifierPrk,
|
|
85
|
+
wrapped_master_key: wrappedMasterKey,
|
|
86
|
+
pbk: prk.toJSON(),
|
|
87
|
+
master_key_wrapped_prk: masterKeyWrappedPrk,
|
|
88
|
+
})
|
|
89
|
+
.toPromise();
|
|
90
|
+
console.log(requestResetResult);
|
|
91
|
+
console.log('Using new password: ', this.passwordService.getPassIdpString(passKeyBundle.passIdp));
|
|
92
|
+
// API call to create user on cognito
|
|
93
|
+
const signUpResult = yield this.auth.signUp({
|
|
94
|
+
username: requestResetResult.reset_username,
|
|
95
|
+
password: this.passwordService.getPassIdpString(passKeyBundle.passIdp),
|
|
96
|
+
clientMetadata: {
|
|
97
|
+
tp_password_reset_request: JSON.stringify({
|
|
98
|
+
id: requestResetResult.id,
|
|
99
|
+
associate_reset_user_token: requestResetResult.associate_reset_user_token,
|
|
100
|
+
}),
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
console.log('requestRest done: ', signUpResult);
|
|
104
|
+
return {
|
|
105
|
+
requestResetResult,
|
|
106
|
+
signUpResult,
|
|
107
|
+
};
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
getResetUser(reload = false) {
|
|
111
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
112
|
+
if (!reload && this.resetUser) {
|
|
113
|
+
return this.resetUser;
|
|
114
|
+
}
|
|
115
|
+
this.resetUser = yield this.lrAuth.loadResetUser();
|
|
116
|
+
return this.resetUser;
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
recoverAssemblyKey(resetUser) {
|
|
120
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
121
|
+
// Recover the assembly key.
|
|
122
|
+
let assemblyKeyParams;
|
|
123
|
+
const prk = yield this.keyGraphService.getKey(resetUser.pxk.id);
|
|
124
|
+
const shares = yield Promise.all(resetUser.approvals.map((approval) => __awaiter(this, void 0, void 0, function* () {
|
|
125
|
+
const partialAssemblyKey = yield this.encryptionService.decrypt(prk, approval.receiverCipherPartialAssemblyKey);
|
|
126
|
+
if (assemblyKeyParams) {
|
|
127
|
+
if (JSON.stringify(assemblyKeyParams) !==
|
|
128
|
+
JSON.stringify(partialAssemblyKey.assemblyKeyParams)) {
|
|
129
|
+
throw new LrBadStateException('The assembly key parameters are different between the approvals.');
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
assemblyKeyParams = partialAssemblyKey.assemblyKeyParams;
|
|
134
|
+
}
|
|
135
|
+
return partialAssemblyKey.slip39.share.mnemonics;
|
|
136
|
+
})));
|
|
137
|
+
console.log('recoverAssemblyKey()', shares);
|
|
138
|
+
const rawAssemblyKey = yield this.slip39Service.recoverSecret(shares, TpPasswordResetService.SLIP39_PASSPHRASE);
|
|
139
|
+
return JWK.asKey(Object.assign(Object.assign({}, assemblyKeyParams), { k: rawAssemblyKey }));
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
completeRequest(newPassword) {
|
|
143
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
144
|
+
const resetUser = yield this.getResetUser(true);
|
|
145
|
+
if (resetUser.state !== TpClaimState.APPROVED) {
|
|
146
|
+
throw new LrBadStateException('Password reset request has not been approved.');
|
|
147
|
+
}
|
|
148
|
+
// --------------------------------------------------------------
|
|
149
|
+
// Prepare all materials to ensure there are no errors.
|
|
150
|
+
// --------------------------------------------------------------
|
|
151
|
+
const assemblyKey = yield this.recoverAssemblyKey(resetUser);
|
|
152
|
+
const { rootKey } = yield this.encryptionService.decrypt(assemblyKey, resetUser.assemblyCipherData);
|
|
153
|
+
console.log(rootKey);
|
|
154
|
+
// Making sure it's a valid key.
|
|
155
|
+
const rootKeyJwk = yield JWK.asKey(rootKey);
|
|
156
|
+
const masterKey = yield this.keyGraphService.getKey(resetUser.masterKey.id);
|
|
157
|
+
const masterKeyWrappedRootKey = yield this.encryptionService.encryptToString(masterKey.jwk, rootKeyJwk.toJSON(true));
|
|
158
|
+
// The new password
|
|
159
|
+
const newPassIdpResult = yield this.keyFactory.derivePassIdp(Object.assign({ password: newPassword }, resetUser.passKey.passIdpParams));
|
|
160
|
+
const newIdpPassword = this.passwordService.getPassIdpString(newPassIdpResult.jwk);
|
|
161
|
+
// --------------------------------------------------------------
|
|
162
|
+
// Get assembly key challenge
|
|
163
|
+
// --------------------------------------------------------------
|
|
164
|
+
const challenge = (yield this.mutate(new LrMutation({
|
|
165
|
+
mutation: CreateTpAssemblyKeyChallengeMutation,
|
|
166
|
+
variables: {
|
|
167
|
+
input: {},
|
|
168
|
+
},
|
|
169
|
+
}), {
|
|
170
|
+
includeKeyGraph: false,
|
|
171
|
+
})).createTpAssemblyKeyChallenge.challenge;
|
|
172
|
+
console.log(challenge);
|
|
173
|
+
// Sign the challenge
|
|
174
|
+
// Generate a client side nonce that's no in the server's control.
|
|
175
|
+
challenge.clientNonce = this.keyFactory.randomString(this.CLIENT_NONCE_LENGTH);
|
|
176
|
+
console.log(challenge);
|
|
177
|
+
const assemblyKeyVerifierPrk = yield this.encryptionService.decrypt(assemblyKey, resetUser.wrappedAssemblyKeyVerifierPrk);
|
|
178
|
+
const signedChallenge = yield this.encryptionService.sign(assemblyKeyVerifierPrk, challenge);
|
|
179
|
+
// --------------------------------------------------------------
|
|
180
|
+
// Change password for the original user
|
|
181
|
+
// --------------------------------------------------------------
|
|
182
|
+
const tempIdpPassword = (yield this.mutate(new LrMutation({
|
|
183
|
+
mutation: PreCompleteTpPasswordResetRequestMutation,
|
|
184
|
+
variables: {
|
|
185
|
+
input: {
|
|
186
|
+
signedChallenge: JSON.stringify(signedChallenge),
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
}), {
|
|
190
|
+
includeKeyGraph: false,
|
|
191
|
+
})).preCompleteTpPasswordResetRequest.idpPassword;
|
|
192
|
+
// --------------------------------------------------------------
|
|
193
|
+
// Login as the original user using new temporary password
|
|
194
|
+
// --------------------------------------------------------------
|
|
195
|
+
// At this point, the original account's password has been changed
|
|
196
|
+
// to a temporary password. It is no longer possible for the user
|
|
197
|
+
// to use the original password to login. Any successful login
|
|
198
|
+
// can only be using the temporary password. So it's safe to assume
|
|
199
|
+
// that we want to "complete" the password reset.
|
|
200
|
+
// The maybe 2FA so we listen for the auth event from Amplify.
|
|
201
|
+
const retPromise = new Promise((resolve) => {
|
|
202
|
+
const listener = (data) => __awaiter(this, void 0, void 0, function* () {
|
|
203
|
+
if (data.payload.event !== 'signIn') {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
Hub.remove('auth', listener);
|
|
207
|
+
console.log(data.payload);
|
|
208
|
+
yield this.auth.signIn(resetUser.username, newIdpPassword);
|
|
209
|
+
// Switch over to the new set of keys
|
|
210
|
+
yield this.mutate(new LrMutation({
|
|
211
|
+
mutation: CompleteTpPasswordResetRequestMutation,
|
|
212
|
+
variables: {
|
|
213
|
+
input: {
|
|
214
|
+
masterKeyWrappedRootKey,
|
|
215
|
+
masterKeyId: masterKey.id,
|
|
216
|
+
},
|
|
217
|
+
},
|
|
218
|
+
}));
|
|
219
|
+
resolve();
|
|
220
|
+
});
|
|
221
|
+
Hub.listen('auth', listener);
|
|
222
|
+
});
|
|
223
|
+
// Signin as the original user. Password has been reset to temporary one. It should return
|
|
224
|
+
// with NEW_PASSWORD_REQUIRED
|
|
225
|
+
let user = yield this.auth.signIn(resetUser.username, tempIdpPassword, {
|
|
226
|
+
noProxy: 'true',
|
|
227
|
+
});
|
|
228
|
+
if (user.challengeName !== 'NEW_PASSWORD_REQUIRED') {
|
|
229
|
+
throw new LrException({
|
|
230
|
+
message: 'Internal error. Expecting Cognito to have done a password reset after call to PreCompleteTpPasswordResetRequestMutation.',
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
// Set new password on Idp
|
|
234
|
+
// the awsFetch() function passes NEW_PASSWORD_REQUIRED directly to AWS without
|
|
235
|
+
// going through the proxy.
|
|
236
|
+
user = yield this.auth.completeNewPassword(user, newIdpPassword, {});
|
|
237
|
+
return retPromise;
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
};
|
|
241
|
+
TpPasswordResetUserService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TpPasswordResetUserService_Factory() { return new TpPasswordResetUserService(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1.LR_CONFIG), i0.ɵɵinject(i2.KeyFactoryService), i0.ɵɵinject(i3.EncryptionService), i0.ɵɵinject(i4.KeyGraphService), i0.ɵɵinject(i5.Slip39Service), i0.ɵɵinject(i6.PasswordService), i0.ɵɵinject(i7.HttpClient), i0.ɵɵinject(i8.AuthClass), i0.ɵɵinject(i9.LifeReadyAuthService)); }, token: TpPasswordResetUserService, providedIn: "root" });
|
|
242
|
+
TpPasswordResetUserService.decorators = [
|
|
243
|
+
{ type: Injectable, args: [{
|
|
244
|
+
providedIn: 'root',
|
|
245
|
+
},] }
|
|
246
|
+
];
|
|
247
|
+
TpPasswordResetUserService.ctorParameters = () => [
|
|
248
|
+
{ type: NgZone },
|
|
249
|
+
{ type: Injector },
|
|
250
|
+
{ type: undefined, decorators: [{ type: Inject, args: [LR_CONFIG,] }] },
|
|
251
|
+
{ type: KeyFactoryService },
|
|
252
|
+
{ type: EncryptionService },
|
|
253
|
+
{ type: KeyGraphService },
|
|
254
|
+
{ type: slip.Slip39Service },
|
|
255
|
+
{ type: PasswordService },
|
|
256
|
+
{ type: HttpClient },
|
|
257
|
+
{ type: AuthClass },
|
|
258
|
+
{ type: LifeReadyAuthService }
|
|
259
|
+
];
|
|
260
|
+
TpPasswordResetUserService = __decorate([
|
|
261
|
+
RunOutsideAngular({
|
|
262
|
+
ngZoneName: 'ngZone',
|
|
263
|
+
})
|
|
264
|
+
], TpPasswordResetUserService);
|
|
265
|
+
export { TpPasswordResetUserService };
|
|
266
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHAtcGFzc3dvcmQtcmVzZXQtdXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2plY3RzL3Rlc3QvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvdHJ1c3RlZC1wYXJ0aWVzL3RwLXBhc3N3b3JkLXJlc2V0LXVzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBbUIsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEUsT0FBTyxLQUFLLElBQUksTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RSxPQUFPLEVBQ0wsc0NBQXNDLEVBQ3RDLG9DQUFvQyxFQUNwQyx5Q0FBeUMsR0FDMUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEVBRUwsc0JBQXNCLEdBQ3ZCLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1B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O1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRW5jcnlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkvZW5jcnlwdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgS2V5R3JhcGhTZXJ2aWNlIH0gZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L2tleS1ncmFwaC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGlmZVJlYWR5Q29uZmlnLCBMUl9DT05GSUcgfSBmcm9tICcuLi9saWZlLXJlYWR5LmNvbmZpZyc7XHJcbmltcG9ydCAqIGFzIHNsaXAgZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L3NsaXAzOS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSldLIH0gZnJvbSAnbm9kZS1qb3NlJztcclxuaW1wb3J0IHsgTHJCYWRTdGF0ZUV4Y2VwdGlvbiwgTHJFeGNlcHRpb24gfSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uLFxyXG4gIENyZWF0ZVRwQXNzZW1ibHlLZXlDaGFsbGVuZ2VNdXRhdGlvbixcclxuICBQcmVDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcclxufSBmcm9tICcuL3RwLXBhc3N3b3JkLXJlc2V0LmdxbCc7XHJcbmltcG9ydCB7IFBhc3N3b3JkU2VydmljZSB9IGZyb20gJy4uL2F1dGgvcGFzc3dvcmQuc2VydmljZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEF1dGhDbGFzcyB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9hdXRoL2xpYi1lc20vQXV0aCc7XHJcbmltcG9ydCB7XHJcbiAgUmVxdWVzdFJlc2V0UmVzdWx0LFxyXG4gIFRwUGFzc3dvcmRSZXNldFNlcnZpY2UsXHJcbn0gZnJvbSAnLi90cC1wYXNzd29yZC1yZXNldC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSVNpZ25VcFJlc3VsdCB9IGZyb20gJ2FtYXpvbi1jb2duaXRvLWlkZW50aXR5LWpzJztcclxuaW1wb3J0IHsgTGlmZVJlYWR5QXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoL2xpZmUtcmVhZHktYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgS2V5RmFjdG9yeVNlcnZpY2UgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkva2V5LWZhY3Rvcnkuc2VydmljZSc7XHJcbmltcG9ydCB7IFRwQ2xhaW1TdGF0ZSwgVHBQYXNzd29yZFJlc2V0VXNlck5vZGUgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xyXG5pbXBvcnQgeyBMck11dGF0aW9uLCBMclNlcnZpY2UgfSBmcm9tICcuLi9hcGkvbHItZ3JhcGhxbCc7XHJcbmltcG9ydCB7IFJ1bk91dHNpZGVBbmd1bGFyIH0gZnJvbSAnLi4vX2NvbW1vbi9ydW4tb3V0c2lkZS1hbmd1bGFyJztcclxuXHJcbkBSdW5PdXRzaWRlQW5ndWxhcih7XHJcbiAgbmdab25lTmFtZTogJ25nWm9uZScsXHJcbn0pXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcFBhc3N3b3JkUmVzZXRVc2VyU2VydmljZSBleHRlbmRzIExyU2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBDTElFTlRfTk9OQ0VfTEVOR1RIID0gMzI7XHJcbiAgcHJpdmF0ZSByZXNldFVzZXI6IFRwUGFzc3dvcmRSZXNldFVzZXJOb2RlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIEBJbmplY3QoTFJfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogTGlmZVJlYWR5Q29uZmlnLFxyXG4gICAgcHJpdmF0ZSBrZXlGYWN0b3J5OiBLZXlGYWN0b3J5U2VydmljZSxcclxuICAgIHByaXZhdGUgZW5jcnlwdGlvblNlcnZpY2U6IEVuY3J5cHRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBrZXlHcmFwaFNlcnZpY2U6IEtleUdyYXBoU2VydmljZSxcclxuICAgIHByaXZhdGUgc2xpcDM5U2VydmljZTogc2xpcC5TbGlwMzlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwYXNzd29yZFNlcnZpY2U6IFBhc3N3b3JkU2VydmljZSxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgYXV0aDogQXV0aENsYXNzLFxyXG4gICAgcHJpdmF0ZSBsckF1dGg6IExpZmVSZWFkeUF1dGhTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgfVxyXG5cclxuICBhc3luYyB2ZXJpZnlFbWFpbENvbnRhY3QoZW1haWwpOiBQcm9taXNlPHsgY2xhaW1JZDogc3RyaW5nIH0+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgZW1haWwsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KFxyXG4gICAgICAgIGAke3RoaXMuY29uZmlnLmF1dGhVcmx9dHAvcGFzc3dvcmQtcmVzZXQvdmVyaWZ5LWNvbnRhY3QvYCxcclxuICAgICAgICBwYXJhbXNcclxuICAgICAgKVxyXG4gICAgICAudG9Qcm9taXNlKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyB2ZXJpZnlDb250YWN0UmVzcG9uZChcclxuICAgIGNsYWltSWQ6IHN0cmluZyxcclxuICAgIGNsYWltQ29kZTogc3RyaW5nXHJcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IHsgdG9rZW4gfSA9IGF3YWl0IHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDx7IHRva2VuIH0+KGAke3RoaXMuY29uZmlnLmF1dGhVcmx9Y292ZS9yZXNwb25kL2AsIHtcclxuICAgICAgICBjbGFpbV9pZDogY2xhaW1JZCxcclxuICAgICAgICB2X2NvZGU6IGNsYWltQ29kZSxcclxuICAgICAgfSlcclxuICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgcmV0dXJuIHRva2VuO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgcmVxdWVzdFJlc2V0KFxyXG4gICAgcGFzc3dvcmQ6IHN0cmluZyxcclxuICAgIGNsYWltSWQ6IHN0cmluZyxcclxuICAgIGNsYWltVG9rZW46IHN0cmluZ1xyXG4gICk6IFByb21pc2U8e1xyXG4gICAgcmVxdWVzdFJlc2V0UmVzdWx0OiBSZXF1ZXN0UmVzZXRSZXN1bHQ7XHJcbiAgICBzaWduVXBSZXN1bHQ6IElTaWduVXBSZXN1bHQ7XHJcbiAgfT4ge1xyXG4gICAgLy8gR2VuZXJhdGUgdGhlIGtleSBtYXRlcmlhbHNcclxuICAgIGNvbnN0IHBhc3NLZXlCdW5kbGUgPSBhd2FpdCB0aGlzLnBhc3N3b3JkU2VydmljZS5jcmVhdGVQYXNzS2V5QnVuZGxlKFxyXG4gICAgICBwYXNzd29yZFxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBtYXN0ZXJLZXkgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuY3JlYXRlS2V5KCk7XHJcbiAgICBjb25zdCB3cmFwcGVkTWFzdGVyS2V5ID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0KFxyXG4gICAgICBwYXNzS2V5QnVuZGxlLnBhc3NLZXksXHJcbiAgICAgIG1hc3RlcktleS50b0pTT04odHJ1ZSlcclxuICAgICk7XHJcblxyXG4gICAgLy8gRXBoZW1lcmFsIFBLQyBrZXlcclxuICAgIGNvbnN0IHByayA9IGF3YWl0IHRoaXMua2V5RmFjdG9yeS5jcmVhdGVQa2NLZXkoKTtcclxuICAgIGNvbnN0IG1hc3RlcktleVdyYXBwZWRQcmsgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHQoXHJcbiAgICAgIG1hc3RlcktleSxcclxuICAgICAgcHJrLnRvSlNPTih0cnVlKVxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBBUEkgY2FsbCB0byBzZXR1cCByZXNldCByZXF1ZXN0XHJcbiAgICBjb25zdCByZXF1ZXN0UmVzZXRSZXN1bHQgPSBhd2FpdCB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8UmVxdWVzdFJlc2V0UmVzdWx0PihcclxuICAgICAgICBgJHt0aGlzLmNvbmZpZy5hdXRoVXJsfXRwL3Bhc3N3b3JkLXJlc2V0L3JlcXVlc3QvYCxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBjbGFpbUlkLFxyXG4gICAgICAgICAgY2xhaW1Ub2tlbixcclxuICAgICAgICAgIHBhc3Nfa2V5X3BhcmFtczogcGFzc0tleUJ1bmRsZS5wYXNzS2V5UGFyYW1zLFxyXG4gICAgICAgICAgcGFzc19pZHBfcGFyYW1zOiBwYXNzS2V5QnVuZGxlLnBhc3NJZHBQYXJhbXMsXHJcbiAgICAgICAgICBwYXNzX2lkcF92ZXJpZmllcl9wYms6IHBhc3NLZXlCdW5kbGUucGFzc0lkcFZlcmlmaWVyLnRvSlNPTigpLCAvLyBwdWJsaWMga2V5XHJcbiAgICAgICAgICB3cmFwcGVkX3Bhc3NfaWRwX3ZlcmlmaWVyX3ByazpcclxuICAgICAgICAgICAgcGFzc0tleUJ1bmRsZS53cmFwcGVkUGFzc0lkcFZlcmlmaWVyUHJrLFxyXG4gICAgICAgICAgd3JhcHBlZF9tYXN0ZXJfa2V5OiB3cmFwcGVkTWFzdGVyS2V5LFxyXG4gICAgICAgICAgcGJrOiBwcmsudG9KU09OKCksIC8vIGVwaGVtZXJhbCBwdWJsaWMga2V5XHJcbiAgICAgICAgICBtYXN0ZXJfa2V5X3dyYXBwZWRfcHJrOiBtYXN0ZXJLZXlXcmFwcGVkUHJrLFxyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgICAudG9Qcm9taXNlKCk7XHJcblxyXG4gICAgY29uc29sZS5sb2cocmVxdWVzdFJlc2V0UmVzdWx0KTtcclxuICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAnVXNpbmcgbmV3IHBhc3N3b3JkOiAnLFxyXG4gICAgICB0aGlzLnBhc3N3b3JkU2VydmljZS5nZXRQYXNzSWRwU3RyaW5nKHBhc3NLZXlCdW5kbGUucGFzc0lkcClcclxuICAgICk7XHJcblxyXG4gICAgLy8gQVBJIGNhbGwgdG8gY3JlYXRlIHVzZXIgb24gY29nbml0b1xyXG4gICAgY29uc3Qgc2lnblVwUmVzdWx0ID0gYXdhaXQgdGhpcy5hdXRoLnNpZ25VcCh7XHJcbiAgICAgIHVzZXJuYW1lOiByZXF1ZXN0UmVzZXRSZXN1bHQucmVzZXRfdXNlcm5hbWUsXHJcbiAgICAgIHBhc3N3b3JkOiB0aGlzLnBhc3N3b3JkU2VydmljZS5nZXRQYXNzSWRwU3RyaW5nKHBhc3NLZXlCdW5kbGUucGFzc0lkcCksXHJcbiAgICAgIGNsaWVudE1ldGFkYXRhOiB7XHJcbiAgICAgICAgdHBfcGFzc3dvcmRfcmVzZXRfcmVxdWVzdDogSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgICAgaWQ6IHJlcXVlc3RSZXNldFJlc3VsdC5pZCxcclxuICAgICAgICAgIGFzc29jaWF0ZV9yZXNldF91c2VyX3Rva2VuOlxyXG4gICAgICAgICAgICByZXF1ZXN0UmVzZXRSZXN1bHQuYXNzb2NpYXRlX3Jlc2V0X3VzZXJfdG9rZW4sXHJcbiAgICAgICAgfSksXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zb2xlLmxvZygncmVxdWVzdFJlc3QgZG9uZTogJywgc2lnblVwUmVzdWx0KTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICByZXF1ZXN0UmVzZXRSZXN1bHQsXHJcbiAgICAgIHNpZ25VcFJlc3VsdCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRSZXNldFVzZXIoXHJcbiAgICByZWxvYWQ6IGJvb2xlYW4gPSBmYWxzZVxyXG4gICk6IFByb21pc2U8VHBQYXNzd29yZFJlc2V0VXNlck5vZGU+IHtcclxuICAgIGlmICghcmVsb2FkICYmIHRoaXMucmVzZXRVc2VyKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJlc2V0VXNlcjtcclxuICAgIH1cclxuICAgIHRoaXMucmVzZXRVc2VyID0gYXdhaXQgdGhpcy5sckF1dGgubG9hZFJlc2V0VXNlcigpO1xyXG4gICAgcmV0dXJuIHRoaXMucmVzZXRVc2VyO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyByZWNvdmVyQXNzZW1ibHlLZXkoXHJcbiAgICByZXNldFVzZXI6IFRwUGFzc3dvcmRSZXNldFVzZXJOb2RlXHJcbiAgKTogUHJvbWlzZTxKV0suS2V5PiB7XHJcbiAgICAvLyBSZWNvdmVyIHRoZSBhc3NlbWJseSBrZXkuXHJcbiAgICBsZXQgYXNzZW1ibHlLZXlQYXJhbXM6IG9iamVjdDtcclxuXHJcbiAgICBjb25zdCBwcmsgPSBhd2FpdCB0aGlzLmtleUdyYXBoU2VydmljZS5nZXRLZXkocmVzZXRVc2VyLnB4ay5pZCk7XHJcblxyXG4gICAgY29uc3Qgc2hhcmVzID0gYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgIHJlc2V0VXNlci5hcHByb3ZhbHMubWFwKGFzeW5jIChhcHByb3ZhbCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHBhcnRpYWxBc3NlbWJseUtleSA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcclxuICAgICAgICAgIHByayxcclxuICAgICAgICAgIGFwcHJvdmFsLnJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKGFzc2VtYmx5S2V5UGFyYW1zKSB7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGFzc2VtYmx5S2V5UGFyYW1zKSAhPT1cclxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkocGFydGlhbEFzc2VtYmx5S2V5LmFzc2VtYmx5S2V5UGFyYW1zKVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBMckJhZFN0YXRlRXhjZXB0aW9uKFxyXG4gICAgICAgICAgICAgICdUaGUgYXNzZW1ibHkga2V5IHBhcmFtZXRlcnMgYXJlIGRpZmZlcmVudCBiZXR3ZWVuIHRoZSBhcHByb3ZhbHMuJ1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBhc3NlbWJseUtleVBhcmFtcyA9IHBhcnRpYWxBc3NlbWJseUtleS5hc3NlbWJseUtleVBhcmFtcztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBhcnRpYWxBc3NlbWJseUtleS5zbGlwMzkuc2hhcmUubW5lbW9uaWNzO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zb2xlLmxvZygncmVjb3ZlckFzc2VtYmx5S2V5KCknLCBzaGFyZXMpO1xyXG5cclxuICAgIGNvbnN0IHJhd0Fzc2VtYmx5S2V5ID0gYXdhaXQgdGhpcy5zbGlwMzlTZXJ2aWNlLnJlY292ZXJTZWNyZXQoXHJcbiAgICAgIHNoYXJlcyxcclxuICAgICAgVHBQYXNzd29yZFJlc2V0U2VydmljZS5TTElQMzlfUEFTU1BIUkFTRVxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gSldLLmFzS2V5KHtcclxuICAgICAgLi4uYXNzZW1ibHlLZXlQYXJhbXMsXHJcbiAgICAgIGs6IHJhd0Fzc2VtYmx5S2V5LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBjb21wbGV0ZVJlcXVlc3QobmV3UGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcmVzZXRVc2VyID0gYXdhaXQgdGhpcy5nZXRSZXNldFVzZXIodHJ1ZSk7XHJcbiAgICBpZiAocmVzZXRVc2VyLnN0YXRlICE9PSBUcENsYWltU3RhdGUuQVBQUk9WRUQpIHtcclxuICAgICAgdGhyb3cgbmV3IExyQmFkU3RhdGVFeGNlcHRpb24oXHJcbiAgICAgICAgJ1Bhc3N3b3JkIHJlc2V0IHJlcXVlc3QgaGFzIG5vdCBiZWVuIGFwcHJvdmVkLidcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgLy8gUHJlcGFyZSBhbGwgbWF0ZXJpYWxzIHRvIGVuc3VyZSB0aGVyZSBhcmUgbm8gZXJyb3JzLlxyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIGNvbnN0IGFzc2VtYmx5S2V5ID0gYXdhaXQgdGhpcy5yZWNvdmVyQXNzZW1ibHlLZXkocmVzZXRVc2VyKTtcclxuXHJcbiAgICBjb25zdCB7IHJvb3RLZXkgfSA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcclxuICAgICAgYXNzZW1ibHlLZXksXHJcbiAgICAgIHJlc2V0VXNlci5hc3NlbWJseUNpcGhlckRhdGFcclxuICAgICk7XHJcbiAgICBjb25zb2xlLmxvZyhyb290S2V5KTtcclxuXHJcbiAgICAvLyBNYWtpbmcgc3VyZSBpdCdzIGEgdmFsaWQga2V5LlxyXG4gICAgY29uc3Qgcm9vdEtleUp3ayA9IGF3YWl0IEpXSy5hc0tleShyb290S2V5KTtcclxuXHJcbiAgICBjb25zdCBtYXN0ZXJLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoU2VydmljZS5nZXRLZXkocmVzZXRVc2VyLm1hc3RlcktleS5pZCk7XHJcblxyXG4gICAgY29uc3QgbWFzdGVyS2V5V3JhcHBlZFJvb3RLZXkgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRUb1N0cmluZyhcclxuICAgICAgbWFzdGVyS2V5Lmp3ayxcclxuICAgICAgcm9vdEtleUp3ay50b0pTT04odHJ1ZSlcclxuICAgICk7XHJcblxyXG4gICAgLy8gVGhlIG5ldyBwYXNzd29yZFxyXG4gICAgY29uc3QgbmV3UGFzc0lkcFJlc3VsdCA9IGF3YWl0IHRoaXMua2V5RmFjdG9yeS5kZXJpdmVQYXNzSWRwKHtcclxuICAgICAgcGFzc3dvcmQ6IG5ld1Bhc3N3b3JkLFxyXG4gICAgICAuLi5yZXNldFVzZXIucGFzc0tleS5wYXNzSWRwUGFyYW1zLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgbmV3SWRwUGFzc3dvcmQgPSB0aGlzLnBhc3N3b3JkU2VydmljZS5nZXRQYXNzSWRwU3RyaW5nKFxyXG4gICAgICBuZXdQYXNzSWRwUmVzdWx0Lmp3a1xyXG4gICAgKTtcclxuXHJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgLy8gR2V0IGFzc2VtYmx5IGtleSBjaGFsbGVuZ2VcclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICBjb25zdCBjaGFsbGVuZ2UgPSAoXHJcbiAgICAgIGF3YWl0IHRoaXMubXV0YXRlKFxyXG4gICAgICAgIG5ldyBMck11dGF0aW9uKHtcclxuICAgICAgICAgIG11dGF0aW9uOiBDcmVhdGVUcEFzc2VtYmx5S2V5Q2hhbGxlbmdlTXV0YXRpb24sXHJcbiAgICAgICAgICB2YXJpYWJsZXM6IHtcclxuICAgICAgICAgICAgaW5wdXQ6IHt9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpbmNsdWRlS2V5R3JhcGg6IGZhbHNlLFxyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgKS5jcmVhdGVUcEFzc2VtYmx5S2V5Q2hhbGxlbmdlLmNoYWxsZW5nZTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhjaGFsbGVuZ2UpO1xyXG5cclxuICAgIC8vIFNpZ24gdGhlIGNoYWxsZW5nZVxyXG4gICAgLy8gR2VuZXJhdGUgYSBjbGllbnQgc2lkZSBub25jZSB0aGF0J3Mgbm8gaW4gdGhlIHNlcnZlcidzIGNvbnRyb2wuXHJcbiAgICBjaGFsbGVuZ2UuY2xpZW50Tm9uY2UgPSB0aGlzLmtleUZhY3RvcnkucmFuZG9tU3RyaW5nKFxyXG4gICAgICB0aGlzLkNMSUVOVF9OT05DRV9MRU5HVEhcclxuICAgICk7XHJcbiAgICBjb25zb2xlLmxvZyhjaGFsbGVuZ2UpO1xyXG5cclxuICAgIGNvbnN0IGFzc2VtYmx5S2V5VmVyaWZpZXJQcmsgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXHJcbiAgICAgIGFzc2VtYmx5S2V5LFxyXG4gICAgICByZXNldFVzZXIud3JhcHBlZEFzc2VtYmx5S2V5VmVyaWZpZXJQcmtcclxuICAgICk7XHJcbiAgICBjb25zdCBzaWduZWRDaGFsbGVuZ2UgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLnNpZ24oXHJcbiAgICAgIGFzc2VtYmx5S2V5VmVyaWZpZXJQcmssXHJcbiAgICAgIGNoYWxsZW5nZVxyXG4gICAgKTtcclxuXHJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgLy8gQ2hhbmdlIHBhc3N3b3JkIGZvciB0aGUgb3JpZ2luYWwgdXNlclxyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIGNvbnN0IHRlbXBJZHBQYXNzd29yZCA9IChcclxuICAgICAgYXdhaXQgdGhpcy5tdXRhdGUoXHJcbiAgICAgICAgbmV3IExyTXV0YXRpb24oe1xyXG4gICAgICAgICAgbXV0YXRpb246IFByZUNvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uLFxyXG4gICAgICAgICAgdmFyaWFibGVzOiB7XHJcbiAgICAgICAgICAgIGlucHV0OiB7XHJcbiAgICAgICAgICAgICAgc2lnbmVkQ2hhbGxlbmdlOiBKU09OLnN0cmluZ2lmeShzaWduZWRDaGFsbGVuZ2UpLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpbmNsdWRlS2V5R3JhcGg6IGZhbHNlLFxyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgKS5wcmVDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3QuaWRwUGFzc3dvcmQ7XHJcblxyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIC8vIExvZ2luIGFzIHRoZSBvcmlnaW5hbCB1c2VyIHVzaW5nIG5ldyB0ZW1wb3JhcnkgcGFzc3dvcmRcclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICAvLyBBdCB0aGlzIHBvaW50LCB0aGUgb3JpZ2luYWwgYWNjb3VudCdzIHBhc3N3b3JkIGhhcyBiZWVuIGNoYW5nZWRcclxuICAgIC8vIHRvIGEgdGVtcG9yYXJ5IHBhc3N3b3JkLiBJdCBpcyBubyBsb25nZXIgcG9zc2libGUgZm9yIHRoZSB1c2VyXHJcbiAgICAvLyB0byB1c2UgdGhlIG9yaWdpbmFsIHBhc3N3b3JkIHRvIGxvZ2luLiBBbnkgc3VjY2Vzc2Z1bCBsb2dpblxyXG4gICAgLy8gY2FuIG9ubHkgYmUgdXNpbmcgdGhlIHRlbXBvcmFyeSBwYXNzd29yZC4gU28gaXQncyBzYWZlIHRvIGFzc3VtZVxyXG4gICAgLy8gdGhhdCB3ZSB3YW50IHRvIFwiY29tcGxldGVcIiB0aGUgcGFzc3dvcmQgcmVzZXQuXHJcblxyXG4gICAgLy8gVGhlIG1heWJlIDJGQSBzbyB3ZSBsaXN0ZW4gZm9yIHRoZSBhdXRoIGV2ZW50IGZyb20gQW1wbGlmeS5cclxuICAgIGNvbnN0IHJldFByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xyXG4gICAgICBjb25zdCBsaXN0ZW5lciA9IGFzeW5jIChkYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEucGF5bG9hZC5ldmVudCAhPT0gJ3NpZ25JbicpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEh1Yi5yZW1vdmUoJ2F1dGgnLCBsaXN0ZW5lcik7XHJcblxyXG4gICAgICAgIGNvbnNvbGUubG9nKGRhdGEucGF5bG9hZCk7XHJcblxyXG4gICAgICAgIGF3YWl0IHRoaXMuYXV0aC5zaWduSW4ocmVzZXRVc2VyLnVzZXJuYW1lLCBuZXdJZHBQYXNzd29yZCk7XHJcblxyXG4gICAgICAgIC8vIFN3aXRjaCBvdmVyIHRvIHRoZSBuZXcgc2V0IG9mIGtleXNcclxuICAgICAgICBhd2FpdCB0aGlzLm11dGF0ZShcclxuICAgICAgICAgIG5ldyBMck11dGF0aW9uKHtcclxuICAgICAgICAgICAgbXV0YXRpb246IENvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uLFxyXG4gICAgICAgICAgICB2YXJpYWJsZXM6IHtcclxuICAgICAgICAgICAgICBpbnB1dDoge1xyXG4gICAgICAgICAgICAgICAgbWFzdGVyS2V5V3JhcHBlZFJvb3RLZXksXHJcbiAgICAgICAgICAgICAgICBtYXN0ZXJLZXlJZDogbWFzdGVyS2V5LmlkLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIEh1Yi5saXN0ZW4oJ2F1dGgnLCBsaXN0ZW5lcik7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBTaWduaW4gYXMgdGhlIG9yaWdpbmFsIHVzZXIuIFBhc3N3b3JkIGhhcyBiZWVuIHJlc2V0IHRvIHRlbXBvcmFyeSBvbmUuIEl0IHNob3VsZCByZXR1cm5cclxuICAgIC8vIHdpdGggTkVXX1BBU1NXT1JEX1JFUVVJUkVEXHJcbiAgICBsZXQgdXNlciA9IGF3YWl0IHRoaXMuYXV0aC5zaWduSW4ocmVzZXRVc2VyLnVzZXJuYW1lLCB0ZW1wSWRwUGFzc3dvcmQsIHtcclxuICAgICAgbm9Qcm94eTogJ3RydWUnLFxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHVzZXIuY2hhbGxlbmdlTmFtZSAhPT0gJ05FV19QQVNTV09SRF9SRVFVSVJFRCcpIHtcclxuICAgICAgdGhyb3cgbmV3IExyRXhjZXB0aW9uKHtcclxuICAgICAgICBtZXNzYWdlOlxyXG4gICAgICAgICAgJ0ludGVybmFsIGVycm9yLiBFeHBlY3RpbmcgQ29nbml0byB0byBoYXZlIGRvbmUgYSBwYXNzd29yZCByZXNldCBhZnRlciBjYWxsIHRvIFByZUNvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uLicsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFNldCBuZXcgcGFzc3dvcmQgb24gSWRwXHJcbiAgICAvLyB0aGUgYXdzRmV0Y2goKSBmdW5jdGlvbiBwYXNzZXMgTkVXX1BBU1NXT1JEX1JFUVVJUkVEIGRpcmVjdGx5IHRvIEFXUyB3aXRob3V0XHJcbiAgICAvLyBnb2luZyB0aHJvdWdoIHRoZSBwcm94eS5cclxuICAgIHVzZXIgPSBhd2FpdCB0aGlzLmF1dGguY29tcGxldGVOZXdQYXNzd29yZCh1c2VyLCBuZXdJZHBQYXNzd29yZCwge30pO1xyXG5cclxuICAgIHJldHVybiByZXRQcm9taXNlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import { gqlTyped } from '../_common/ast';
|
|
2
|
+
const SharedTpPasswordResetFragment = gqlTyped `
|
|
3
|
+
fragment SharedTpPasswordResetFragment on SharedTpPasswordResetNode {
|
|
4
|
+
id
|
|
5
|
+
tp {
|
|
6
|
+
id
|
|
7
|
+
other {
|
|
8
|
+
username
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
assembly {
|
|
12
|
+
asApprovers {
|
|
13
|
+
edges {
|
|
14
|
+
node {
|
|
15
|
+
id
|
|
16
|
+
sharedKey {
|
|
17
|
+
id
|
|
18
|
+
}
|
|
19
|
+
sharedCipherData
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
sharedRequest {
|
|
25
|
+
id
|
|
26
|
+
pxk {
|
|
27
|
+
id
|
|
28
|
+
pbk
|
|
29
|
+
}
|
|
30
|
+
claim {
|
|
31
|
+
id
|
|
32
|
+
state
|
|
33
|
+
asClaimApprovers {
|
|
34
|
+
edges {
|
|
35
|
+
node {
|
|
36
|
+
id
|
|
37
|
+
state
|
|
38
|
+
sharedKey {
|
|
39
|
+
id
|
|
40
|
+
}
|
|
41
|
+
sharedCipherApprovalData
|
|
42
|
+
sharedCipherPartialAssemblyKey
|
|
43
|
+
receiverApprovals {
|
|
44
|
+
edges {
|
|
45
|
+
node {
|
|
46
|
+
id
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}`;
|
|
56
|
+
export const SharedTpPasswordResetsQuery = gqlTyped `
|
|
57
|
+
query SharedTpPasswordResetsQuery {
|
|
58
|
+
sharedTpPasswordResets {
|
|
59
|
+
edges {
|
|
60
|
+
node {
|
|
61
|
+
...SharedTpPasswordResetFragment
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
${SharedTpPasswordResetFragment}
|
|
67
|
+
`;
|
|
68
|
+
export const SharedTpPasswordResetQuery = gqlTyped `
|
|
69
|
+
query SharedTpPasswordResetQuery($id: LrRelayIdInput!) {
|
|
70
|
+
sharedTpPasswordReset(id: $id) {
|
|
71
|
+
...SharedTpPasswordResetFragment
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
${SharedTpPasswordResetFragment}
|
|
75
|
+
`;
|
|
76
|
+
export const CancelTpPasswordResetRequestMutation = gqlTyped `
|
|
77
|
+
mutation CancelTpPasswordResetRequestMutation {
|
|
78
|
+
cancelTpPasswordResetRequest(input: {}) {
|
|
79
|
+
id
|
|
80
|
+
}
|
|
81
|
+
}`;
|
|
82
|
+
export const CreateTpAssemblyKeyChallengeMutation = gqlTyped `
|
|
83
|
+
mutation CreateTpAssemblyKeyChallengeMutation(
|
|
84
|
+
$input: CreateTpAssemblyKeyChallengeInput!
|
|
85
|
+
) {
|
|
86
|
+
createTpAssemblyKeyChallenge(input: $input) {
|
|
87
|
+
challenge
|
|
88
|
+
}
|
|
89
|
+
}`;
|
|
90
|
+
export const PreCompleteTpPasswordResetRequestMutation = gqlTyped `
|
|
91
|
+
mutation PreCompleteTpPasswordResetRequestMutation(
|
|
92
|
+
$input: PreCompleteTpPasswordResetRequestInput!
|
|
93
|
+
) {
|
|
94
|
+
preCompleteTpPasswordResetRequest(input: $input) {
|
|
95
|
+
idpPassword
|
|
96
|
+
}
|
|
97
|
+
}`;
|
|
98
|
+
export const CompleteTpPasswordResetRequestMutation = gqlTyped `
|
|
99
|
+
mutation CompleteTpPasswordResetRequestMutation(
|
|
100
|
+
$input: CompleteTpPasswordResetRequestInput!
|
|
101
|
+
) {
|
|
102
|
+
completeTpPasswordResetRequest(input: $input) {
|
|
103
|
+
id
|
|
104
|
+
}
|
|
105
|
+
}`;
|
|
106
|
+
export const ApproveTpPasswordResetRequestMutation = gqlTyped `
|
|
107
|
+
mutation ApproveTpPasswordResetRequestMutation(
|
|
108
|
+
$input: ApproveTpPasswordResetRequestInput!
|
|
109
|
+
) {
|
|
110
|
+
approveTpPasswordResetRequest(input: $input) {
|
|
111
|
+
claimApprover {
|
|
112
|
+
id
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}`;
|
|
116
|
+
export const RejectTpPasswordResetRequestMutation = gqlTyped `
|
|
117
|
+
mutation RejectTpPasswordResetRequestMutation(
|
|
118
|
+
$input: RejectTpPasswordResetRequestInput!
|
|
119
|
+
) {
|
|
120
|
+
rejectTpPasswordResetRequest(input: $input) {
|
|
121
|
+
claimApprover {
|
|
122
|
+
id
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}`;
|
|
126
|
+
export const TpPasswordResetUserQuery = gqlTyped `
|
|
127
|
+
query TpPasswordResetUserQuery {
|
|
128
|
+
tpPasswordResetUser {
|
|
129
|
+
username
|
|
130
|
+
resetUsername
|
|
131
|
+
state
|
|
132
|
+
passKey {
|
|
133
|
+
id
|
|
134
|
+
passKeyParams
|
|
135
|
+
passIdpParams
|
|
136
|
+
}
|
|
137
|
+
masterKey {
|
|
138
|
+
id
|
|
139
|
+
}
|
|
140
|
+
pxk {
|
|
141
|
+
id
|
|
142
|
+
}
|
|
143
|
+
sessionEncryptionKey
|
|
144
|
+
assembly {
|
|
145
|
+
singleReject
|
|
146
|
+
quorum
|
|
147
|
+
subAssemblies {
|
|
148
|
+
singleReject
|
|
149
|
+
quorum
|
|
150
|
+
approvers {
|
|
151
|
+
name
|
|
152
|
+
email
|
|
153
|
+
state
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
approvals {
|
|
158
|
+
id
|
|
159
|
+
modified
|
|
160
|
+
approverEmail
|
|
161
|
+
receiverCipher
|
|
162
|
+
receiverCipherPartialAssemblyKey
|
|
163
|
+
}
|
|
164
|
+
assemblyCipherData
|
|
165
|
+
wrappedAssemblyKeyVerifierPrk
|
|
166
|
+
}
|
|
167
|
+
}`;
|
|
168
|
+
export const TpPasswordResetQuery = gqlTyped `
|
|
169
|
+
query TpPasswordResetQuery {
|
|
170
|
+
tpPasswordReset {
|
|
171
|
+
id
|
|
172
|
+
applied
|
|
173
|
+
assembly {
|
|
174
|
+
singleReject
|
|
175
|
+
quorum
|
|
176
|
+
subjectKey {
|
|
177
|
+
id
|
|
178
|
+
}
|
|
179
|
+
assemblyKey {
|
|
180
|
+
id
|
|
181
|
+
}
|
|
182
|
+
assemblyCipherData
|
|
183
|
+
subAssemblies {
|
|
184
|
+
edges {
|
|
185
|
+
node {
|
|
186
|
+
id
|
|
187
|
+
singleReject
|
|
188
|
+
quorum
|
|
189
|
+
subjectCipherData
|
|
190
|
+
approvers {
|
|
191
|
+
edges {
|
|
192
|
+
node {
|
|
193
|
+
id
|
|
194
|
+
tp {
|
|
195
|
+
id
|
|
196
|
+
}
|
|
197
|
+
sharedKey {
|
|
198
|
+
id
|
|
199
|
+
}
|
|
200
|
+
sharedCipherData
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}`;
|
|
210
|
+
export const CreateTpPasswordResetMutation = gqlTyped `
|
|
211
|
+
mutation CreateTpPasswordResetMutation($input: CreateTpPasswordResetInput!) {
|
|
212
|
+
createTpPasswordReset(input: $input) {
|
|
213
|
+
tpPasswordReset {
|
|
214
|
+
id
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}`;
|
|
218
|
+
export const DeleteTpPasswordResetMutation = gqlTyped `
|
|
219
|
+
mutation DeleteTpPasswordResetMutation {
|
|
220
|
+
deleteTpPasswordReset(input: {}) {
|
|
221
|
+
id
|
|
222
|
+
}
|
|
223
|
+
}`;
|
|
224
|
+
export const UpdateTpPasswordResetMutation = gqlTyped `
|
|
225
|
+
mutation UpdateTpPasswordResetMutation($input: UpdateTpPasswordResetInput!) {
|
|
226
|
+
updateTpPasswordReset(input: $input) {
|
|
227
|
+
tpPasswordReset {
|
|
228
|
+
id
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}`;
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHAtcGFzc3dvcmQtcmVzZXQuZ3FsLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2plY3RzL3Rlc3QvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvdHJ1c3RlZC1wYXJ0aWVzL3RwLXBhc3N3b3JkLXJlc2V0LmdxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUErRDFDLE1BQU0sNkJBQTZCLEdBQUcsUUFBUSxDQUFxQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFxRGpGLENBQUM7QUFTSCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxRQUFRLENBQW1DOzs7Ozs7Ozs7O0VBVXBGLDZCQUE2QjtDQUM5QixDQUFDO0FBS0YsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsUUFBUSxDQUFrQzs7Ozs7O0VBTWxGLDZCQUE2QjtDQUM5QixDQUFDO0FBT0YsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsUUFBUSxDQUE0Qzs7Ozs7RUFLdEcsQ0FBQztBQU9ILE1BQU0sQ0FBQyxNQUFNLG9DQUFvQyxHQUFHLFFBQVEsQ0FBNEM7Ozs7Ozs7RUFPdEcsQ0FBQztBQU9ILE1BQU0sQ0FBQyxNQUFNLHlDQUF5QyxHQUFHLFFBQVEsQ0FBaUQ7Ozs7Ozs7RUFPaEgsQ0FBQztBQU9ILE1BQU0sQ0FBQyxNQUFNLHNDQUFzQyxHQUFHLFFBQVEsQ0FBOEM7Ozs7Ozs7RUFPMUcsQ0FBQztBQVNILE1BQU0sQ0FBQyxNQUFNLHFDQUFxQyxHQUFHLFFBQVEsQ0FBNkM7Ozs7Ozs7OztFQVN4RyxDQUFDO0FBU0gsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsUUFBUSxDQUE0Qzs7Ozs7Ozs7O0VBU3RHLENBQUM7QUEyQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsUUFBUSxDQUFnQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF5QzlFLENBQUM7QUE0Q0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsUUFBUSxDQUE0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF5Q3RFLENBQUM7QUFTSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxRQUFRLENBQXFDOzs7Ozs7O0VBT3hGLENBQUM7QUFPSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxRQUFRLENBQXFDOzs7OztFQUt4RixDQUFDO0FBU0gsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsUUFBUSxDQUFxQzs7Ozs7OztFQU94RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2VuZXJpY1NjYWxhciwgSUQgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xyXG5pbXBvcnQgeyBncWxUeXBlZCB9IGZyb20gJy4uL19jb21tb24vYXN0JztcclxuaW1wb3J0IHtcclxuICBUcENsYWltU3RhdGUsXHJcbiAgVHBDbGFpbUFwcHJvdmVyU3RhdGUsXHJcbn0gZnJvbSAnLi4vYXBpL3R5cGVzL2xyLWdyYXBocWwudHlwZXMnO1xyXG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gJy4uL2FwaS90eXBlcy9ncmFwaHFsLnR5cGVzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkVHBQYXNzd29yZFJlc2V0RnJhZ21lbnRSZXN1bHQge1xyXG4gIGlkOiBJRDtcclxuICB0cDoge1xyXG4gICAgaWQ6IElEO1xyXG4gICAgb3RoZXI6IHtcclxuICAgICAgdXNlcm5hbWU6IHN0cmluZztcclxuICAgIH07XHJcbiAgfTtcclxuICBhc3NlbWJseToge1xyXG4gICAgYXNBcHByb3ZlcnM6IHtcclxuICAgICAgZWRnZXM6IHtcclxuICAgICAgICBub2RlOiB7XHJcbiAgICAgICAgICBpZDogSUQ7XHJcbiAgICAgICAgICBzaGFyZWRLZXk6IHtcclxuICAgICAgICAgICAgaWQ6IElEO1xyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHNoYXJlZENpcGhlckRhdGE6IHN0cmluZztcclxuICAgICAgICAgIHNoYXJlZENpcGhlckRhdGFDbGVhckpzb246IGFueTtcclxuICAgICAgICB9O1xyXG4gICAgICB9W107XHJcbiAgICB9O1xyXG4gIH07XHJcbiAgc2hhcmVkUmVxdWVzdDoge1xyXG4gICAgaWQ6IElEO1xyXG4gICAgcHhrOiB7XHJcbiAgICAgIGlkOiBJRDtcclxuICAgICAgcGJrOiBzdHJpbmc7XHJcbiAgICB9O1xyXG4gICAgY2xhaW06IHtcclxuICAgICAgaWQ6IElEO1xyXG4gICAgICBzdGF0ZTogVHBDbGFpbVN0YXRlO1xyXG4gICAgICBhc0NsYWltQXBwcm92ZXJzOiB7XHJcbiAgICAgICAgZWRnZXM6IHtcclxuICAgICAgICAgIG5vZGU6IHtcclxuICAgICAgICAgICAgaWQ6IElEO1xyXG4gICAgICAgICAgICBzdGF0ZTogVHBDbGFpbUFwcHJvdmVyU3RhdGU7XHJcbiAgICAgICAgICAgIHNoYXJlZEtleToge1xyXG4gICAgICAgICAgICAgIGlkOiBJRDtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgc2hhcmVkQ2lwaGVyQXBwcm92YWxEYXRhOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIHNoYXJlZENpcGhlckFwcHJvdmFsRGF0YUNsZWFySnNvbjogYW55O1xyXG4gICAgICAgICAgICBzaGFyZWRDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXk6IHN0cmluZztcclxuICAgICAgICAgICAgc2hhcmVkQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5Q2xlYXJKc29uOiBhbnk7XHJcbiAgICAgICAgICAgIHJlY2VpdmVyQXBwcm92YWxzOiB7XHJcbiAgICAgICAgICAgICAgZWRnZXM6IHtcclxuICAgICAgICAgICAgICAgIG5vZGU6IHtcclxuICAgICAgICAgICAgICAgICAgaWQ6IElEO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9W107XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1bXTtcclxuICAgICAgfTtcclxuICAgIH07XHJcbiAgfTtcclxufVxyXG5jb25zdCBTaGFyZWRUcFBhc3N3b3JkUmVzZXRGcmFnbWVudCA9IGdxbFR5cGVkPFNoYXJlZFRwUGFzc3dvcmRSZXNldEZyYWdtZW50UmVzdWx0PmBcclxuZnJhZ21lbnQgU2hhcmVkVHBQYXNzd29yZFJlc2V0RnJhZ21lbnQgb24gU2hhcmVkVHBQYXNzd29yZFJlc2V0Tm9kZSB7XHJcbiAgaWRcclxuICB0cCB7XHJcbiAgICBpZFxyXG4gICAgb3RoZXIge1xyXG4gICAgICB1c2VybmFtZVxyXG4gICAgfVxyXG4gIH1cclxuICBhc3NlbWJseSB7XHJcbiAgICBhc0FwcHJvdmVycyB7XHJcbiAgICAgIGVkZ2VzIHtcclxuICAgICAgICBub2RlIHtcclxuICAgICAgICAgIGlkXHJcbiAgICAgICAgICBzaGFyZWRLZXkge1xyXG4gICAgICAgICAgICBpZFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgc2hhcmVkQ2lwaGVyRGF0YVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBzaGFyZWRSZXF1ZXN0IHtcclxuICAgIGlkXHJcbiAgICBweGsge1xyXG4gICAgICBpZFxyXG4gICAgICBwYmtcclxuICAgIH1cclxuICAgIGNsYWltIHtcclxuICAgICAgaWRcclxuICAgICAgc3RhdGVcclxuICAgICAgYXNDbGFpbUFwcHJvdmVycyB7XHJcbiAgICAgICAgZWRnZXMge1xyXG4gICAgICAgICAgbm9kZSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIHN0YXRlXHJcbiAgICAgICAgICAgIHNoYXJlZEtleSB7XHJcbiAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzaGFyZWRDaXBoZXJBcHByb3ZhbERhdGFcclxuICAgICAgICAgICAgc2hhcmVkQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5XHJcbiAgICAgICAgICAgIHJlY2VpdmVyQXBwcm92YWxzIHtcclxuICAgICAgICAgICAgICBlZGdlcyB7XHJcbiAgICAgICAgICAgICAgICBub2RlIHtcclxuICAgICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1gO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRUcFBhc3N3b3JkUmVzZXRzUXVlcnlSZXN1bHQge1xyXG4gIHNoYXJlZFRwUGFzc3dvcmRSZXNldHM6IHtcclxuICAgIGVkZ2VzOiB7XHJcbiAgICAgIG5vZGU6IFNoYXJlZFRwUGFzc3dvcmRSZXNldEZyYWdtZW50UmVzdWx0O1xyXG4gICAgfVtdO1xyXG4gIH07XHJcbn1cclxuZXhwb3J0IGNvbnN0IFNoYXJlZFRwUGFzc3dvcmRSZXNldHNRdWVyeSA9IGdxbFR5cGVkPFNoYXJlZFRwUGFzc3dvcmRSZXNldHNRdWVyeVJlc3VsdD5gXHJcbnF1ZXJ5IFNoYXJlZFRwUGFzc3dvcmRSZXNldHNRdWVyeSB7XHJcbiAgc2hhcmVkVHBQYXNzd29yZFJlc2V0cyB7XHJcbiAgICBlZGdlcyB7XHJcbiAgICAgIG5vZGUge1xyXG4gICAgICAgIC4uLlNoYXJlZFRwUGFzc3dvcmRSZXNldEZyYWdtZW50XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuJHtTaGFyZWRUcFBhc3N3b3JkUmVzZXRGcmFnbWVudH1cclxuYDtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkVHBQYXNzd29yZFJlc2V0UXVlcnlSZXN1bHQge1xyXG4gIHNoYXJlZFRwUGFzc3dvcmRSZXNldDogU2hhcmVkVHBQYXNzd29yZFJlc2V0RnJhZ21lbnRSZXN1bHQ7XHJcbn1cclxuZXhwb3J0IGNvbnN0IFNoYXJlZFRwUGFzc3dvcmRSZXNldFF1ZXJ5ID0gZ3FsVHlwZWQ8U2hhcmVkVHBQYXNzd29yZFJlc2V0UXVlcnlSZXN1bHQ+YFxyXG5xdWVyeSBTaGFyZWRUcFBhc3N3b3JkUmVzZXRRdWVyeSgkaWQ6IExyUmVsYXlJZElucHV0ISkge1xyXG4gIHNoYXJlZFRwUGFzc3dvcmRSZXNldChpZDogJGlkKSB7XHJcbiAgICAuLi5TaGFyZWRUcFBhc3N3b3JkUmVzZXRGcmFnbWVudFxyXG4gIH1cclxufVxyXG4ke1NoYXJlZFRwUGFzc3dvcmRSZXNldEZyYWdtZW50fVxyXG5gO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDYW5jZWxUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb25SZXN1bHQge1xyXG4gIGNhbmNlbFRwUGFzc3dvcmRSZXNldFJlcXVlc3Q6IHtcclxuICAgIGlkOiBJRDtcclxuICB9O1xyXG59XHJcbmV4cG9ydCBjb25zdCBDYW5jZWxUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24gPSBncWxUeXBlZDxDYW5jZWxUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb25SZXN1bHQ+YFxyXG5tdXRhdGlvbiBDYW5jZWxUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24ge1xyXG4gIGNhbmNlbFRwUGFzc3dvcmRSZXNldFJlcXVlc3QoaW5wdXQ6IHt9KSB7XHJcbiAgICBpZFxyXG4gIH1cclxufWA7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVRwQXNzZW1ibHlLZXlDaGFsbGVuZ2VNdXRhdGlvblJlc3VsdCB7XHJcbiAgY3JlYXRlVHBBc3NlbWJseUtleUNoYWxsZW5nZToge1xyXG4gICAgY2hhbGxlbmdlOiBhbnk7XHJcbiAgfTtcclxufVxyXG5leHBvcnQgY29uc3QgQ3JlYXRlVHBBc3NlbWJseUtleUNoYWxsZW5nZU11dGF0aW9uID0gZ3FsVHlwZWQ8Q3JlYXRlVHBBc3NlbWJseUtleUNoYWxsZW5nZU11dGF0aW9uUmVzdWx0PmBcclxubXV0YXRpb24gQ3JlYXRlVHBBc3NlbWJseUtleUNoYWxsZW5nZU11dGF0aW9uKFxyXG4gICRpbnB1dDogQ3JlYXRlVHBBc3NlbWJseUtleUNoYWxsZW5nZUlucHV0IVxyXG4pIHtcclxuICBjcmVhdGVUcEFzc2VtYmx5S2V5Q2hhbGxlbmdlKGlucHV0OiAkaW5wdXQpIHtcclxuICAgIGNoYWxsZW5nZVxyXG4gIH1cclxufWA7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFByZUNvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uUmVzdWx0IHtcclxuICBwcmVDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3Q6IHtcclxuICAgIGlkcFBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgfTtcclxufVxyXG5leHBvcnQgY29uc3QgUHJlQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24gPSBncWxUeXBlZDxQcmVDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvblJlc3VsdD5gXHJcbm11dGF0aW9uIFByZUNvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uKFxyXG4gICRpbnB1dDogUHJlQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0SW5wdXQhXHJcbikge1xyXG4gIHByZUNvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdChpbnB1dDogJGlucHV0KSB7XHJcbiAgICBpZHBQYXNzd29yZFxyXG4gIH1cclxufWA7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uUmVzdWx0IHtcclxuICBjb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3Q6IHtcclxuICAgIGlkOiBJRDtcclxuICB9O1xyXG59XHJcbmV4cG9ydCBjb25zdCBDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbiA9IGdxbFR5cGVkPENvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uUmVzdWx0PmBcclxubXV0YXRpb24gQ29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24oXHJcbiAgJGlucHV0OiBDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RJbnB1dCFcclxuKSB7XHJcbiAgY29tcGxldGVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0KGlucHV0OiAkaW5wdXQpIHtcclxuICAgIGlkXHJcbiAgfVxyXG59YDtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXBwcm92ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvblJlc3VsdCB7XHJcbiAgYXBwcm92ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3Q6IHtcclxuICAgIGNsYWltQXBwcm92ZXI6IHtcclxuICAgICAgaWQ6IElEO1xyXG4gICAgfTtcclxuICB9O1xyXG59XHJcbmV4cG9ydCBjb25zdCBBcHByb3ZlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uID0gZ3FsVHlwZWQ8QXBwcm92ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvblJlc3VsdD5gXHJcbm11dGF0aW9uIEFwcHJvdmVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24oXHJcbiAgJGlucHV0OiBBcHByb3ZlVHBQYXNzd29yZFJlc2V0UmVxdWVzdElucHV0IVxyXG4pIHtcclxuICBhcHByb3ZlVHBQYXNzd29yZFJlc2V0UmVxdWVzdChpbnB1dDogJGlucHV0KSB7XHJcbiAgICBjbGFpbUFwcHJvdmVyIHtcclxuICAgICAgaWRcclxuICAgIH1cclxuICB9XHJcbn1gO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZWplY3RUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb25SZXN1bHQge1xyXG4gIHJlamVjdFRwUGFzc3dvcmRSZXNldFJlcXVlc3Q6IHtcclxuICAgIGNsYWltQXBwcm92ZXI6IHtcclxuICAgICAgaWQ6IElEO1xyXG4gICAgfTtcclxuICB9O1xyXG59XHJcbmV4cG9ydCBjb25zdCBSZWplY3RUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24gPSBncWxUeXBlZDxSZWplY3RUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb25SZXN1bHQ+YFxyXG5tdXRhdGlvbiBSZWplY3RUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24oXHJcbiAgJGlucHV0OiBSZWplY3RUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0SW5wdXQhXHJcbikge1xyXG4gIHJlamVjdFRwUGFzc3dvcmRSZXNldFJlcXVlc3QoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgY2xhaW1BcHByb3ZlciB7XHJcbiAgICAgIGlkXHJcbiAgICB9XHJcbiAgfVxyXG59YDtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHBQYXNzd29yZFJlc2V0VXNlclF1ZXJ5UmVzdWx0IHtcclxuICB0cFBhc3N3b3JkUmVzZXRVc2VyOiB7XHJcbiAgICB1c2VybmFtZTogc3RyaW5nO1xyXG4gICAgcmVzZXRVc2VybmFtZTogc3RyaW5nO1xyXG4gICAgc3RhdGU6IFRwQ2xhaW1TdGF0ZTtcclxuICAgIHBhc3NLZXk6IHtcclxuICAgICAgaWQ6IElEO1xyXG4gICAgICBwYXNzS2V5UGFyYW1zOiBHZW5lcmljU2NhbGFyO1xyXG4gICAgICBwYXNzSWRwUGFyYW1zOiBHZW5lcmljU2NhbGFyO1xyXG4gICAgfTtcclxuICAgIG1hc3RlcktleToge1xyXG4gICAgICBpZDogSUQ7XHJcbiAgICB9O1xyXG4gICAgcHhrOiB7XHJcbiAgICAgIGlkOiBJRDtcclxuICAgIH07XHJcbiAgICBzZXNzaW9uRW5jcnlwdGlvbktleTogc3RyaW5nO1xyXG4gICAgYXNzZW1ibHk6IHtcclxuICAgICAgc2luZ2xlUmVqZWN0OiBib29sZWFuO1xyXG4gICAgICBxdW9ydW06IG51bWJlcjtcclxuICAgICAgc3ViQXNzZW1ibGllczoge1xyXG4gICAgICAgIHNpbmdsZVJlamVjdDogYm9vbGVhbjtcclxuICAgICAgICBxdW9ydW06IG51bWJlcjtcclxuICAgICAgICBhcHByb3ZlcnM6IHtcclxuICAgICAgICAgIG5hbWU6IHN0cmluZztcclxuICAgICAgICAgIGVtYWlsOiBzdHJpbmc7XHJcbiAgICAgICAgICBzdGF0ZTogVHBDbGFpbUFwcHJvdmVyU3RhdGU7XHJcbiAgICAgICAgfVtdO1xyXG4gICAgICB9W107XHJcbiAgICB9O1xyXG4gICAgYXBwcm92YWxzOiB7XHJcbiAgICAgIGlkOiBJRDtcclxuICAgICAgbW9kaWZpZWQ6IERhdGVUaW1lO1xyXG4gICAgICBhcHByb3ZlckVtYWlsOiBzdHJpbmc7XHJcbiAgICAgIHJlY2VpdmVyQ2lwaGVyOiBzdHJpbmc7XHJcbiAgICAgIHJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5OiBzdHJpbmc7XHJcbiAgICB9W107XHJcbiAgICBhc3NlbWJseUNpcGhlckRhdGE6IHN0cmluZztcclxuICAgIHdyYXBwZWRBc3NlbWJseUtleVZlcmlmaWVyUHJrOiBzdHJpbmc7XHJcbiAgfTtcclxufVxyXG5leHBvcnQgY29uc3QgVHBQYXNzd29yZFJlc2V0VXNlclF1ZXJ5ID0gZ3FsVHlwZWQ8VHBQYXNzd29yZFJlc2V0VXNlclF1ZXJ5UmVzdWx0PmBcclxucXVlcnkgVHBQYXNzd29yZFJlc2V0VXNlclF1ZXJ5IHtcclxuICB0cFBhc3N3b3JkUmVzZXRVc2VyIHtcclxuICAgIHVzZXJuYW1lXHJcbiAgICByZXNldFVzZXJuYW1lXHJcbiAgICBzdGF0ZVxyXG4gICAgcGFzc0tleSB7XHJcbiAgICAgIGlkXHJcbiAgICAgIHBhc3NLZXlQYXJhbXNcclxuICAgICAgcGFzc0lkcFBhcmFtc1xyXG4gICAgfVxyXG4gICAgbWFzdGVyS2V5IHtcclxuICAgICAgaWRcclxuICAgIH1cclxuICAgIHB4ayB7XHJcbiAgICAgIGlkXHJcbiAgICB9XHJcbiAgICBzZXNzaW9uRW5jcnlwdGlvbktleVxyXG4gICAgYXNzZW1ibHkge1xyXG4gICAgICBzaW5nbGVSZWplY3RcclxuICAgICAgcXVvcnVtXHJcbiAgICAgIHN1YkFzc2VtYmxpZXMge1xyXG4gICAgICAgIHNpbmdsZVJlamVjdFxyXG4gICAgICAgIHF1b3J1bVxyXG4gICAgICAgIGFwcHJvdmVycyB7XHJcbiAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICBlbWFpbFxyXG4gICAgICAgICAgc3RhdGVcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGFwcHJvdmFscyB7XHJcbiAgICAgIGlkXHJcbiAgICAgIG1vZGlmaWVkXHJcbiAgICAgIGFwcHJvdmVyRW1haWxcclxuICAgICAgcmVjZWl2ZXJDaXBoZXJcclxuICAgICAgcmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXlcclxuICAgIH1cclxuICAgIGFzc2VtYmx5Q2lwaGVyRGF0YVxyXG4gICAgd3JhcHBlZEFzc2VtYmx5S2V5VmVyaWZpZXJQcmtcclxuICB9XHJcbn1gO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUcFBhc3N3b3JkUmVzZXRRdWVyeVJlc3VsdCB7XHJcbiAgdHBQYXNzd29yZFJlc2V0OiB7XHJcbiAgICBpZDogSUQ7XHJcbiAgICBhcHBsaWVkOiBib29sZWFuO1xyXG4gICAgYXNzZW1ibHk6IHtcclxuICAgICAgc2luZ2xlUmVqZWN0OiBib29sZWFuO1xyXG4gICAgICBxdW9ydW06IG51bWJlcjtcclxuICAgICAgc3ViamVjdEtleToge1xyXG4gICAgICAgIGlkOiBJRDtcclxuICAgICAgfTtcclxuICAgICAgYXNzZW1ibHlLZXk6IHtcclxuICAgICAgICBpZDogSUQ7XHJcbiAgICAgIH07XHJcbiAgICAgIGFzc2VtYmx5Q2lwaGVyRGF0YTogc3RyaW5nO1xyXG4gICAgICBzdWJBc3NlbWJsaWVzOiB7XHJcbiAgICAgICAgZWRnZXM6IHtcclxuICAgICAgICAgIG5vZGU6IHtcclxuICAgICAgICAgICAgaWQ6IElEO1xyXG4gICAgICAgICAgICBzaW5nbGVSZWplY3Q6IGJvb2xlYW47XHJcbiAgICAgICAgICAgIHF1b3J1bTogbnVtYmVyO1xyXG4gICAgICAgICAgICBzdWJqZWN0Q2lwaGVyRGF0YTogc3RyaW5nO1xyXG4gICAgICAgICAgICBzdWJqZWN0Q2lwaGVyRGF0YUNsZWFySnNvbjogYW55O1xyXG4gICAgICAgICAgICBhcHByb3ZlcnM6IHtcclxuICAgICAgICAgICAgICBlZGdlczoge1xyXG4gICAgICAgICAgICAgICAgbm9kZToge1xyXG4gICAgICAgICAgICAgICAgICBpZDogSUQ7XHJcbiAgICAgICAgICAgICAgICAgIHRwOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IElEO1xyXG4gICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICBzaGFyZWRLZXk6IHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogSUQ7XHJcbiAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgIHNoYXJlZENpcGhlckRhdGE6IHN0cmluZztcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgfVtdO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9W107XHJcbiAgICAgIH07XHJcbiAgICB9O1xyXG4gIH07XHJcbn1cclxuZXhwb3J0IGNvbnN0IFRwUGFzc3dvcmRSZXNldFF1ZXJ5ID0gZ3FsVHlwZWQ8VHBQYXNzd29yZFJlc2V0UXVlcnlSZXN1bHQ+YFxyXG5xdWVyeSBUcFBhc3N3b3JkUmVzZXRRdWVyeSB7XHJcbiAgdHBQYXNzd29yZFJlc2V0IHtcclxuICAgIGlkXHJcbiAgICBhcHBsaWVkXHJcbiAgICBhc3NlbWJseSB7XHJcbiAgICAgIHNpbmdsZVJlamVjdFxyXG4gICAgICBxdW9ydW1cclxuICAgICAgc3ViamVjdEtleSB7XHJcbiAgICAgICAgaWRcclxuICAgICAgfVxyXG4gICAgICBhc3NlbWJseUtleSB7XHJcbiAgICAgICAgaWRcclxuICAgICAgfVxyXG4gICAgICBhc3NlbWJseUNpcGhlckRhdGFcclxuICAgICAgc3ViQXNzZW1ibGllcyB7XHJcbiAgICAgICAgZWRnZXMge1xyXG4gICAgICAgICAgbm9kZSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIHNpbmdsZVJlamVjdFxyXG4gICAgICAgICAgICBxdW9ydW1cclxuICAgICAgICAgICAgc3ViamVjdENpcGhlckRhdGFcclxuICAgICAgICAgICAgYXBwcm92ZXJzIHtcclxuICAgICAgICAgICAgICBlZGdlcyB7XHJcbiAgICAgICAgICAgICAgICBub2RlIHtcclxuICAgICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgICAgdHAge1xyXG4gICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgc2hhcmVkS2V5IHtcclxuICAgICAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHNoYXJlZENpcGhlckRhdGFcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1gO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVUcFBhc3N3b3JkUmVzZXRNdXRhdGlvblJlc3VsdCB7XHJcbiAgY3JlYXRlVHBQYXNzd29yZFJlc2V0OiB7XHJcbiAgICB0cFBhc3N3b3JkUmVzZXQ6IHtcclxuICAgICAgaWQ6IElEO1xyXG4gICAgfTtcclxuICB9O1xyXG59XHJcbmV4cG9ydCBjb25zdCBDcmVhdGVUcFBhc3N3b3JkUmVzZXRNdXRhdGlvbiA9IGdxbFR5cGVkPENyZWF0ZVRwUGFzc3dvcmRSZXNldE11dGF0aW9uUmVzdWx0PmBcclxubXV0YXRpb24gQ3JlYXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb24oJGlucHV0OiBDcmVhdGVUcFBhc3N3b3JkUmVzZXRJbnB1dCEpIHtcclxuICBjcmVhdGVUcFBhc3N3b3JkUmVzZXQoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgdHBQYXNzd29yZFJlc2V0IHtcclxuICAgICAgaWRcclxuICAgIH1cclxuICB9XHJcbn1gO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEZWxldGVUcFBhc3N3b3JkUmVzZXRNdXRhdGlvblJlc3VsdCB7XHJcbiAgZGVsZXRlVHBQYXNzd29yZFJlc2V0OiB7XHJcbiAgICBpZDogSUQ7XHJcbiAgfTtcclxufVxyXG5leHBvcnQgY29uc3QgRGVsZXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb24gPSBncWxUeXBlZDxEZWxldGVUcFBhc3N3b3JkUmVzZXRNdXRhdGlvblJlc3VsdD5gXHJcbm11dGF0aW9uIERlbGV0ZVRwUGFzc3dvcmRSZXNldE11dGF0aW9uIHtcclxuICBkZWxldGVUcFBhc3N3b3JkUmVzZXQoaW5wdXQ6IHt9KSB7XHJcbiAgICBpZFxyXG4gIH1cclxufWA7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVRwUGFzc3dvcmRSZXNldE11dGF0aW9uUmVzdWx0IHtcclxuICB1cGRhdGVUcFBhc3N3b3JkUmVzZXQ6IHtcclxuICAgIHRwUGFzc3dvcmRSZXNldDoge1xyXG4gICAgICBpZDogSUQ7XHJcbiAgICB9O1xyXG4gIH07XHJcbn1cclxuZXhwb3J0IGNvbnN0IFVwZGF0ZVRwUGFzc3dvcmRSZXNldE11dGF0aW9uID0gZ3FsVHlwZWQ8VXBkYXRlVHBQYXNzd29yZFJlc2V0TXV0YXRpb25SZXN1bHQ+YFxyXG5tdXRhdGlvbiBVcGRhdGVUcFBhc3N3b3JkUmVzZXRNdXRhdGlvbigkaW5wdXQ6IFVwZGF0ZVRwUGFzc3dvcmRSZXNldElucHV0ISkge1xyXG4gIHVwZGF0ZVRwUGFzc3dvcmRSZXNldChpbnB1dDogJGlucHV0KSB7XHJcbiAgICB0cFBhc3N3b3JkUmVzZXQge1xyXG4gICAgICBpZFxyXG4gICAgfVxyXG4gIH1cclxufWA7XHJcbiJdfQ==
|