@lifeready/core 1.0.21 → 1.0.22
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/bundles/lifeready-core.umd.js +9745 -9700
- package/bundles/lifeready-core.umd.js.map +1 -1
- package/bundles/lifeready-core.umd.min.js +2 -2
- package/bundles/lifeready-core.umd.min.js.map +1 -1
- package/esm2015/lib/_common/run-outside-angular.js +2 -2
- package/esm2015/lib/_common/types.js +1 -1
- package/esm2015/lib/api/lr-apollo.service.js +3 -3
- package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +3 -3
- package/esm2015/lib/api/query-processor/common-processors.service.js +3 -3
- package/esm2015/lib/api/query-processor/query-processor.service.js +4 -4
- package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +6 -5
- package/esm2015/lib/api/types/lr-graphql.types.js +1 -1
- package/esm2015/lib/auth/auth.gql.js +1 -28
- package/esm2015/lib/auth/auth.types.js +1 -1
- package/esm2015/lib/auth/life-ready-auth.service.js +32 -31
- package/esm2015/lib/category/category.gql.js +1 -1
- package/esm2015/lib/category/category.service.js +6 -6
- package/esm2015/lib/contact-card/contact-card.gql.js +79 -0
- package/esm2015/lib/contact-card/contact-card.service.js +154 -0
- package/esm2015/lib/contact-card/contact-card2.gql.js +29 -0
- package/esm2015/lib/contact-card/contact-card2.service.js +103 -0
- package/esm2015/lib/encryption/encryption.service.js +189 -0
- package/esm2015/lib/file-upload/file-upload.service.js +74 -0
- package/esm2015/lib/file-upload/file-upload.types.js +1 -0
- package/esm2015/lib/{auth → idle}/idle.service.js +7 -7
- package/esm2015/lib/{auth → idle}/idle.types.js +1 -1
- package/esm2015/lib/items2/item2.service.js +20 -20
- package/esm2015/lib/key/key-factory.service.js +237 -0
- package/esm2015/lib/{cryptography → key}/key-graph.service.js +10 -10
- package/esm2015/lib/key/key-meta.service.js +200 -0
- package/esm2015/lib/key/key.service.js +124 -0
- package/esm2015/lib/key/key.types.js +11 -0
- package/esm2015/lib/key-exchange/key-exchange.gql.js +188 -0
- package/esm2015/lib/key-exchange/key-exchange.service.js +443 -0
- package/esm2015/lib/key-exchange/key-exchange.types.js +7 -0
- package/esm2015/lib/key-exchange/key-exchange2.gql.js +171 -0
- package/esm2015/lib/key-exchange/key-exchange2.service.js +500 -0
- package/esm2015/lib/lbop/lbop.service.js +355 -0
- package/esm2015/lib/life-ready.module.js +2 -27
- package/esm2015/lib/lock/lock.gql.js +40 -0
- package/esm2015/lib/lock/lock.service.js +64 -0
- package/esm2015/lib/message/message.gql.js +32 -0
- package/esm2015/lib/message/message.service.js +116 -0
- package/esm2015/lib/message/message.types.js +1 -0
- package/esm2015/lib/password/password.gql.js +28 -0
- package/esm2015/lib/password/password.service.js +315 -0
- package/esm2015/lib/persist/persist.service.js +180 -0
- package/esm2015/lib/profile/profile-details.service.js +214 -0
- package/esm2015/lib/profile/profile.gql.js +97 -0
- package/esm2015/lib/profile/profile.service.js +169 -0
- package/esm2015/lib/profile/profile.types.js +34 -0
- package/esm2015/lib/record/record-attachment.service.js +15 -15
- package/esm2015/lib/record/record.service.js +3 -3
- package/esm2015/lib/register/register.service.js +172 -0
- package/esm2015/lib/scenario/scenario.controller.js +2 -2
- package/esm2015/lib/scenario/{scenario.gql.private.js → scenario.private.gql.js} +1 -1
- package/esm2015/lib/scenario/scenario.service.js +9 -9
- package/esm2015/lib/scenario/scenario.types.js +1 -1
- package/esm2015/lib/shared-contact-card/shared-contact-card.service.js +119 -0
- package/esm2015/lib/shared-contact-card/shared-contact-card2.gql.js +41 -0
- package/esm2015/lib/shared-contact-card/shared-contact-card2.service.js +117 -0
- package/esm2015/lib/slip39/slip39.service.js +169 -0
- package/esm2015/lib/time/time.service.js +146 -0
- package/esm2015/lib/tp-assembly/tp-assembly.js +365 -0
- package/esm2015/lib/tp-assembly/tp-assembly.private.gql.js +22 -0
- package/esm2015/lib/tp-assembly/tp-assembly.types.js +1 -0
- package/esm2015/lib/tp-password-reset/tp-password-reset-request.service.js +100 -0
- package/esm2015/lib/tp-password-reset/tp-password-reset-user.service.js +117 -0
- package/esm2015/lib/tp-password-reset/tp-password-reset.constants.js +4 -0
- package/esm2015/lib/tp-password-reset/tp-password-reset.controller.js +34 -0
- package/esm2015/lib/tp-password-reset/tp-password-reset.gql.js +74 -0
- package/esm2015/lib/tp-password-reset/tp-password-reset.private.gql.js +165 -0
- package/esm2015/lib/tp-password-reset/tp-password-reset.private.service.js +54 -0
- package/esm2015/lib/tp-password-reset/tp-password-reset.service.js +92 -0
- package/esm2015/lib/tp-password-reset/tp-password-reset.types.js +1 -0
- package/esm2015/lib/trusted-party/trusted-party.gql.js +148 -0
- package/esm2015/lib/trusted-party/trusted-party.service.js +326 -0
- package/esm2015/lib/trusted-party/trusted-party.types.js +41 -0
- package/esm2015/lib/trusted-party/trusted-party2.gql.js +64 -0
- package/esm2015/lib/trusted-party/trusted-party2.gql.private.js +25 -0
- package/esm2015/lib/trusted-party/trusted-party2.service.js +224 -0
- package/esm2015/lib/trusted-party/trusted-party2.types.js +1 -0
- package/esm2015/lib/two-factor/two-factor.service.js +74 -0
- package/esm2015/lib/user/user.gql.js +60 -0
- package/esm2015/lib/user/user.service.js +79 -0
- package/esm2015/lib/user/user.types.js +1 -0
- package/esm2015/lib/web-crypto/web-crypto.service.js +29 -0
- package/esm2015/lifeready-core.js +15 -13
- package/esm2015/public-api.js +49 -51
- package/fesm2015/lifeready-core.js +9232 -9214
- package/fesm2015/lifeready-core.js.map +1 -1
- package/lib/_common/types.d.ts +3 -1
- package/lib/api/lr-apollo.service.d.ts +1 -1
- package/lib/api/lr-graphql/lr-graphql.service.d.ts +1 -1
- package/lib/api/query-processor/common-processors.service.d.ts +1 -1
- package/lib/api/query-processor/query-processor.service.d.ts +1 -1
- package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +1 -1
- package/lib/api/types/lr-graphql.types.d.ts +11 -0
- package/lib/auth/auth.gql.d.ts +0 -3
- package/lib/auth/auth.types.d.ts +2 -2
- package/lib/auth/life-ready-auth.service.d.ts +12 -12
- package/lib/category/category.gql.d.ts +1 -1
- package/lib/category/category.service.d.ts +2 -2
- package/lib/{api → contact-card}/contact-card.service.d.ts +9 -9
- package/lib/contact-card/contact-card2.gql.d.ts +25 -0
- package/lib/{api → contact-card}/contact-card2.service.d.ts +11 -12
- package/lib/{cryptography → encryption}/encryption.service.d.ts +2 -2
- package/lib/{api/file.service.d.ts → file-upload/file-upload.service.d.ts} +3 -7
- package/lib/file-upload/file-upload.types.d.ts +5 -0
- package/lib/{auth → idle}/idle.service.d.ts +4 -4
- package/lib/items2/item2.service.d.ts +11 -11
- package/lib/{cryptography → key}/key-factory.service.d.ts +2 -2
- package/lib/{cryptography → key}/key-graph.service.d.ts +5 -5
- package/lib/{cryptography → key}/key-meta.service.d.ts +1 -1
- package/lib/{cryptography → key}/key.service.d.ts +2 -2
- package/lib/{cryptography/cryptography.types.d.ts → key/key.types.d.ts} +9 -13
- package/lib/{api → key-exchange}/key-exchange.service.d.ts +5 -5
- package/lib/{api → key-exchange}/key-exchange.types.d.ts +4 -4
- package/lib/{api → key-exchange}/key-exchange2.gql.d.ts +1 -1
- package/lib/{api → key-exchange}/key-exchange2.service.d.ts +71 -18
- package/lib/{auth → lbop}/lbop.service.d.ts +7 -7
- package/lib/{api → lock}/lock.gql.d.ts +1 -1
- package/lib/{api → lock}/lock.service.d.ts +1 -1
- package/lib/message/message.gql.d.ts +13 -0
- package/lib/message/message.service.d.ts +29 -0
- package/lib/message/message.types.d.ts +12 -0
- package/lib/password/password.gql.d.ts +3 -0
- package/lib/{auth → password}/password.service.d.ts +8 -8
- package/lib/{api → persist}/persist.service.d.ts +3 -3
- package/lib/{users → profile}/profile-details.service.d.ts +3 -3
- package/lib/{users → profile}/profile.gql.d.ts +2 -2
- package/lib/{users → profile}/profile.service.d.ts +6 -6
- package/lib/{users → profile}/profile.types.d.ts +1 -1
- package/lib/record/record-attachment.service.d.ts +6 -6
- package/lib/record/record.service.d.ts +1 -1
- package/lib/{auth → register}/register.service.d.ts +4 -4
- package/lib/scenario/scenario.controller.d.ts +1 -1
- package/lib/scenario/scenario.service.d.ts +2 -2
- package/lib/scenario/scenario.types.d.ts +1 -1
- package/lib/{api → shared-contact-card}/shared-contact-card.service.d.ts +9 -9
- package/lib/{api → shared-contact-card}/shared-contact-card2.gql.d.ts +1 -1
- package/lib/{api → shared-contact-card}/shared-contact-card2.service.d.ts +6 -6
- package/lib/{trusted-parties → tp-assembly}/tp-assembly.d.ts +7 -7
- package/lib/{trusted-parties → tp-assembly}/tp-assembly.types.d.ts +1 -1
- package/lib/{trusted-parties → tp-password-reset}/tp-password-reset-request.service.d.ts +4 -8
- package/lib/{trusted-parties → tp-password-reset}/tp-password-reset-user.service.d.ts +7 -13
- package/lib/{trusted-parties → tp-password-reset}/tp-password-reset.controller.d.ts +1 -1
- package/lib/tp-password-reset/tp-password-reset.gql.d.ts +63 -0
- package/lib/{trusted-parties/tp-password-reset.gql.d.ts → tp-password-reset/tp-password-reset.private.gql.d.ts} +1 -63
- package/lib/tp-password-reset/tp-password-reset.private.service.d.ts +59 -0
- package/lib/{trusted-parties → tp-password-reset}/tp-password-reset.service.d.ts +6 -89
- package/lib/tp-password-reset/tp-password-reset.types.d.ts +40 -0
- package/lib/{trusted-parties → trusted-party}/trusted-party.service.d.ts +7 -7
- package/lib/{trusted-parties → trusted-party}/trusted-party.types.d.ts +2 -3
- package/lib/{trusted-parties → trusted-party}/trusted-party2.gql.d.ts +0 -22
- package/lib/trusted-party/trusted-party2.gql.private.d.ts +23 -0
- package/lib/{trusted-parties → trusted-party}/trusted-party2.service.d.ts +11 -35
- package/lib/trusted-party/trusted-party2.types.d.ts +12 -0
- package/lib/{users → user}/user.gql.d.ts +1 -1
- package/lib/{users → user}/user.types.d.ts +1 -1
- package/lifeready-core.d.ts +14 -12
- package/lifeready-core.metadata.json +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +48 -50
- package/esm2015/lib/api/contact-card.gql.js +0 -79
- package/esm2015/lib/api/contact-card.service.js +0 -154
- package/esm2015/lib/api/contact-card2.gql.js +0 -60
- package/esm2015/lib/api/contact-card2.service.js +0 -103
- package/esm2015/lib/api/file.service.js +0 -74
- package/esm2015/lib/api/key-exchange.gql.js +0 -188
- package/esm2015/lib/api/key-exchange.service.js +0 -442
- package/esm2015/lib/api/key-exchange.types.js +0 -7
- package/esm2015/lib/api/key-exchange2.gql.js +0 -171
- package/esm2015/lib/api/key-exchange2.service.js +0 -480
- package/esm2015/lib/api/lock.gql.js +0 -40
- package/esm2015/lib/api/lock.service.js +0 -64
- package/esm2015/lib/api/message.service.js +0 -138
- package/esm2015/lib/api/persist.service.js +0 -181
- package/esm2015/lib/api/shared-contact-card.service.js +0 -119
- package/esm2015/lib/api/shared-contact-card2.gql.js +0 -41
- package/esm2015/lib/api/shared-contact-card2.service.js +0 -117
- package/esm2015/lib/api/time.service.js +0 -146
- package/esm2015/lib/auth/lbop.service.js +0 -355
- package/esm2015/lib/auth/password.service.js +0 -315
- package/esm2015/lib/auth/register.service.js +0 -172
- package/esm2015/lib/auth/two-factor.service.js +0 -74
- package/esm2015/lib/cryptography/cryptography.types.js +0 -11
- package/esm2015/lib/cryptography/encryption.service.js +0 -189
- package/esm2015/lib/cryptography/key-factory.service.js +0 -237
- package/esm2015/lib/cryptography/key-meta.service.js +0 -200
- package/esm2015/lib/cryptography/key.service.js +0 -124
- package/esm2015/lib/cryptography/slip39.service.js +0 -169
- package/esm2015/lib/cryptography/web-crypto.service.js +0 -29
- package/esm2015/lib/trusted-parties/tp-assembly.gql.private.js +0 -22
- package/esm2015/lib/trusted-parties/tp-assembly.js +0 -365
- package/esm2015/lib/trusted-parties/tp-assembly.types.js +0 -1
- package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +0 -113
- package/esm2015/lib/trusted-parties/tp-password-reset-user.service.js +0 -129
- package/esm2015/lib/trusted-parties/tp-password-reset.constants.js +0 -4
- package/esm2015/lib/trusted-parties/tp-password-reset.controller.js +0 -34
- package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +0 -237
- package/esm2015/lib/trusted-parties/tp-password-reset.service.js +0 -95
- package/esm2015/lib/trusted-parties/trusted-party.gql.js +0 -148
- package/esm2015/lib/trusted-parties/trusted-party.service.js +0 -326
- package/esm2015/lib/trusted-parties/trusted-party.types.js +0 -41
- package/esm2015/lib/trusted-parties/trusted-party2.gql.js +0 -87
- package/esm2015/lib/trusted-parties/trusted-party2.service.js +0 -218
- package/esm2015/lib/users/profile-details.service.js +0 -214
- package/esm2015/lib/users/profile.gql.js +0 -97
- package/esm2015/lib/users/profile.service.js +0 -169
- package/esm2015/lib/users/profile.types.js +0 -34
- package/esm2015/lib/users/user.gql.js +0 -60
- package/esm2015/lib/users/user.service.js +0 -79
- package/esm2015/lib/users/user.types.js +0 -1
- package/lib/api/contact-card2.gql.d.ts +0 -34
- package/lib/api/message.service.d.ts +0 -59
- /package/lib/{api → contact-card}/contact-card.gql.d.ts +0 -0
- /package/lib/{auth → idle}/idle.types.d.ts +0 -0
- /package/lib/{api → key-exchange}/key-exchange.gql.d.ts +0 -0
- /package/lib/scenario/{scenario.gql.private.d.ts → scenario.private.gql.d.ts} +0 -0
- /package/lib/{cryptography → slip39}/slip39.service.d.ts +0 -0
- /package/lib/{api → time}/time.service.d.ts +0 -0
- /package/lib/{trusted-parties/tp-assembly.gql.private.d.ts → tp-assembly/tp-assembly.private.gql.d.ts} +0 -0
- /package/lib/{trusted-parties → tp-password-reset}/tp-password-reset.constants.d.ts +0 -0
- /package/lib/{trusted-parties → trusted-party}/trusted-party.gql.d.ts +0 -0
- /package/lib/{auth → two-factor}/two-factor.service.d.ts +0 -0
- /package/lib/{users → user}/user.service.d.ts +0 -0
- /package/lib/{cryptography → web-crypto}/web-crypto.service.d.ts +0 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { TrustedPartyDetails } from '../profile/profile.types';
|
|
2
|
+
export class TrustedPartyRole {
|
|
3
|
+
}
|
|
4
|
+
export var TrustedPartyRoleType;
|
|
5
|
+
(function (TrustedPartyRoleType) {
|
|
6
|
+
TrustedPartyRoleType["General"] = "general";
|
|
7
|
+
TrustedPartyRoleType["Scenario"] = "scenario";
|
|
8
|
+
})(TrustedPartyRoleType || (TrustedPartyRoleType = {}));
|
|
9
|
+
export var TrustedPartyType;
|
|
10
|
+
(function (TrustedPartyType) {
|
|
11
|
+
TrustedPartyType["User"] = "user";
|
|
12
|
+
TrustedPartyType["Organisation"] = "organisation";
|
|
13
|
+
})(TrustedPartyType || (TrustedPartyType = {}));
|
|
14
|
+
export var TrustedPartyInviteStatus;
|
|
15
|
+
(function (TrustedPartyInviteStatus) {
|
|
16
|
+
TrustedPartyInviteStatus["Invited"] = "IN_PROGRESS";
|
|
17
|
+
TrustedPartyInviteStatus["Cancelled"] = "CANCELLED";
|
|
18
|
+
TrustedPartyInviteStatus["Declined"] = "DECLINED";
|
|
19
|
+
TrustedPartyInviteStatus["Completed"] = "COMPLETED";
|
|
20
|
+
})(TrustedPartyInviteStatus || (TrustedPartyInviteStatus = {}));
|
|
21
|
+
export class TrustedParties {
|
|
22
|
+
}
|
|
23
|
+
export class SharedTrustedPartyDetails extends TrustedPartyDetails {
|
|
24
|
+
}
|
|
25
|
+
export class TrustedPartyInvite {
|
|
26
|
+
}
|
|
27
|
+
export class TPFeatures {
|
|
28
|
+
}
|
|
29
|
+
export class SharedVaultFeature {
|
|
30
|
+
}
|
|
31
|
+
export class TrustedParty {
|
|
32
|
+
}
|
|
33
|
+
export class FoundTrustedParty {
|
|
34
|
+
}
|
|
35
|
+
export class InviteTrustedParty {
|
|
36
|
+
}
|
|
37
|
+
export class AcceptTrustedPartyInvite {
|
|
38
|
+
}
|
|
39
|
+
export class ConfirmTrustedPartyInvite {
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIvb3B0L2F0bGFzc2lhbi9waXBlbGluZXMvYWdlbnQvYnVpbGQvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvdHJ1c3RlZC1wYXJ0eS90cnVzdGVkLXBhcnR5LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRy9ELE1BQU0sT0FBTyxnQkFBZ0I7Q0FRNUI7QUFFRCxNQUFNLENBQU4sSUFBWSxvQkFHWDtBQUhELFdBQVksb0JBQW9CO0lBQzlCLDJDQUFtQixDQUFBO0lBQ25CLDZDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFIVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBRy9CO0FBRUQsTUFBTSxDQUFOLElBQVksZ0JBR1g7QUFIRCxXQUFZLGdCQUFnQjtJQUMxQixpQ0FBYSxDQUFBO0lBQ2IsaURBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQUhXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFHM0I7QUFFRCxNQUFNLENBQU4sSUFBWSx3QkFLWDtBQUxELFdBQVksd0JBQXdCO0lBQ2xDLG1EQUF1QixDQUFBO0lBQ3ZCLG1EQUF1QixDQUFBO0lBQ3ZCLGlEQUFxQixDQUFBO0lBQ3JCLG1EQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFMVyx3QkFBd0IsS0FBeEIsd0JBQXdCLFFBS25DO0FBRUQsTUFBTSxPQUFPLGNBQWM7Q0FJMUI7QUFFRCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsbUJBQW1CO0NBSWpFO0FBRUQsTUFBTSxPQUFPLGtCQUFrQjtDQW9COUI7QUFFRCxNQUFNLE9BQU8sVUFBVTtDQUV0QjtBQUVELE1BQU0sT0FBTyxrQkFBa0I7Q0FFOUI7QUFFRCxNQUFNLE9BQU8sWUFBWTtDQVl4QjtBQUVELE1BQU0sT0FBTyxpQkFBaUI7Q0FNN0I7QUFFRCxNQUFNLE9BQU8sa0JBQWtCO0NBSTlCO0FBRUQsTUFBTSxPQUFPLHdCQUF3QjtDQUtwQztBQUVELE1BQU0sT0FBTyx5QkFBeUI7Q0FJckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEZWNyeXB0ZWRPdGssXG4gIEtleUV4Y2hhbmdlTWVzc2FnZSxcbiAgUHJlcGFyZWRQZXJtaXNzaW9ucyxcbiAgVXNlclNoYXJlZEtleSxcbn0gZnJvbSAnLi4va2V5LWV4Y2hhbmdlL2tleS1leGNoYW5nZS50eXBlcyc7XG5pbXBvcnQgeyBUcnVzdGVkUGFydHlEZXRhaWxzIH0gZnJvbSAnLi4vcHJvZmlsZS9wcm9maWxlLnR5cGVzJztcbmltcG9ydCB7IEFjY2Vzc0xldmVsIH0gZnJvbSAnLi8uLi9jYXRlZ29yeS9jYXRlZ29yeS50eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBUcnVzdGVkUGFydHlSb2xlIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICByb2xlVHlwZTogVHJ1c3RlZFBhcnR5Um9sZVR5cGU7XG4gIGNhdGVnb3JpZXM6IHtcbiAgICBjYXRlZ29yeTogc3RyaW5nW107XG4gICAgYWNjZXNzTGV2ZWw6IEFjY2Vzc0xldmVsO1xuICB9W107XG59XG5cbmV4cG9ydCBlbnVtIFRydXN0ZWRQYXJ0eVJvbGVUeXBlIHtcbiAgR2VuZXJhbCA9ICdnZW5lcmFsJyxcbiAgU2NlbmFyaW8gPSAnc2NlbmFyaW8nLFxufVxuXG5leHBvcnQgZW51bSBUcnVzdGVkUGFydHlUeXBlIHtcbiAgVXNlciA9ICd1c2VyJyxcbiAgT3JnYW5pc2F0aW9uID0gJ29yZ2FuaXNhdGlvbicsXG59XG5cbmV4cG9ydCBlbnVtIFRydXN0ZWRQYXJ0eUludml0ZVN0YXR1cyB7XG4gIEludml0ZWQgPSAnSU5fUFJPR1JFU1MnLFxuICBDYW5jZWxsZWQgPSAnQ0FOQ0VMTEVEJyxcbiAgRGVjbGluZWQgPSAnREVDTElORUQnLFxuICBDb21wbGV0ZWQgPSAnQ09NUExFVEVEJyxcbn1cblxuZXhwb3J0IGNsYXNzIFRydXN0ZWRQYXJ0aWVzIHtcbiAgcGFydGllczogVHJ1c3RlZFBhcnR5W107XG4gIGludml0ZXM6IFRydXN0ZWRQYXJ0eUludml0ZVtdO1xuICBzZW50SW52aXRlczogVHJ1c3RlZFBhcnR5SW52aXRlW107XG59XG5cbmV4cG9ydCBjbGFzcyBTaGFyZWRUcnVzdGVkUGFydHlEZXRhaWxzIGV4dGVuZHMgVHJ1c3RlZFBhcnR5RGV0YWlscyB7XG4gIGlkOiBzdHJpbmc7XG4gIG93bmVkS2V5SWQ6IHN0cmluZztcbiAgc2hhcmVkS2V5SWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFRydXN0ZWRQYXJ0eUludml0ZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6IFRydXN0ZWRQYXJ0eVR5cGU7XG4gIHN0YXR1czogVHJ1c3RlZFBhcnR5SW52aXRlU3RhdHVzO1xuICB0b2tlbjogc3RyaW5nO1xuICB0b2tlbkV4cGlyeTogc3RyaW5nIHwgRGF0ZTtcbiAgaXNFeHBpcmVkOiBib29sZWFuO1xuICBpc1NlbmRlcjogYm9vbGVhbjtcbiAgYWN0aW9uUmVxdWlyZWQ6IGJvb2xlYW47XG4gIG5hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcblxuICBkZXRhaWxzPzogVHJ1c3RlZFBhcnR5RGV0YWlscztcbiAgbWVzc2FnZT86IEtleUV4Y2hhbmdlTWVzc2FnZTtcbiAgbXlTaGFyZWREZXRhaWxzPzogVHJ1c3RlZFBhcnR5RGV0YWlscztcbiAgbXlTaGFyZWRNZXNzYWdlPzogS2V5RXhjaGFuZ2VNZXNzYWdlO1xuXG4gIHJvb3RLZXlDaXBoZXI6IHN0cmluZztcbiAgcGJrQ2lwaGVyOiBzdHJpbmc7XG4gIGRlY3J5cHRlZE90azogRGVjcnlwdGVkT3RrO1xufVxuXG5leHBvcnQgY2xhc3MgVFBGZWF0dXJlcyB7XG4gIHNoYXJlZFZhdWx0OiBTaGFyZWRWYXVsdEZlYXR1cmU7XG59XG5cbmV4cG9ydCBjbGFzcyBTaGFyZWRWYXVsdEZlYXR1cmUge1xuICBoYXNBY2Nlc3M6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBUcnVzdGVkUGFydHkge1xuICBpZDogc3RyaW5nO1xuICB0eXBlOiBUcnVzdGVkUGFydHlUeXBlO1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgaGFzU2NlbmFyaW9zOiBib29sZWFuO1xuICBoYXNTaGFyZWRWYXVsdDogYm9vbGVhbjtcbiAgZGV0YWlsczogVHJ1c3RlZFBhcnR5RGV0YWlscztcbiAgbXlTaGFyZWREZXRhaWxzOiBTaGFyZWRUcnVzdGVkUGFydHlEZXRhaWxzO1xuICB1c2VyU2hhcmVkS2V5OiBVc2VyU2hhcmVkS2V5O1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBmZWF0dXJlczogVFBGZWF0dXJlcztcbn1cblxuZXhwb3J0IGNsYXNzIEZvdW5kVHJ1c3RlZFBhcnR5IHtcbiAgaWQ6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgaXNUcnVzdGVkUGFydHk6IGJvb2xlYW47XG4gIGlzTWU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBJbnZpdGVUcnVzdGVkUGFydHkge1xuICBwYXJ0eTogeyB1c2VybmFtZT86IHN0cmluZzsgZW1haWw/OiBzdHJpbmc7IG5hbWU/OiBzdHJpbmc7IG1lc3NhZ2U/OiBzdHJpbmcgfTtcbiAgcGVybWlzc2lvbnM/OiBQcmVwYXJlZFBlcm1pc3Npb25zO1xuICBteVNoYXJlZERldGFpbHM6IFRydXN0ZWRQYXJ0eURldGFpbHM7XG59XG5cbmV4cG9ydCBjbGFzcyBBY2NlcHRUcnVzdGVkUGFydHlJbnZpdGUge1xuICBpbnZpdGVJZDogc3RyaW5nO1xuICBpbnZpdGVUb2tlbjogc3RyaW5nO1xuICBkZWNyeXB0ZWRPdGs6IERlY3J5cHRlZE90aztcbiAgbXlTaGFyZWREZXRhaWxzOiBUcnVzdGVkUGFydHlEZXRhaWxzO1xufVxuXG5leHBvcnQgY2xhc3MgQ29uZmlybVRydXN0ZWRQYXJ0eUludml0ZSB7XG4gIGludml0ZUlkOiBzdHJpbmc7XG4gIGluaXRpYXRvclJvb3RLZXlDaXBoZXI6IHN0cmluZztcbiAgaW5pdGlhdG9yT25lVGltZVBia0NpcGhlcjogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { gqlTyped } from '../_common/ast';
|
|
2
|
+
export const DeleteTpMutation = gqlTyped `
|
|
3
|
+
mutation DeleteTpMutation($input: DeleteTpInput!) {
|
|
4
|
+
deleteTp(input: $input) {
|
|
5
|
+
id
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
`;
|
|
9
|
+
export const ShareDirectoryMutation = gqlTyped `
|
|
10
|
+
mutation ShareDirectoryMutation($input: ShareDirectoryInput!) {
|
|
11
|
+
shareDirectory(input: $input) {
|
|
12
|
+
tpDirectory {
|
|
13
|
+
id
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
`;
|
|
18
|
+
export const UnshareDirectoryMutation = gqlTyped `
|
|
19
|
+
mutation UnshareDirectoryMutation($input: UnshareDirectoryInput!) {
|
|
20
|
+
unshareDirectory(input: $input) {
|
|
21
|
+
tpDirectory {
|
|
22
|
+
id
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
`;
|
|
27
|
+
export const ShareFileMutation = gqlTyped `
|
|
28
|
+
mutation ShareFileMutation($input: ShareFileInput!) {
|
|
29
|
+
shareFile(input: $input) {
|
|
30
|
+
tpFile {
|
|
31
|
+
id
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
`;
|
|
36
|
+
export const UnshareFileMutation = gqlTyped `
|
|
37
|
+
mutation UnshareFileMutation($input: UnshareFileInput!) {
|
|
38
|
+
unshareFile(input: $input) {
|
|
39
|
+
tpFile {
|
|
40
|
+
id
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
`;
|
|
45
|
+
export const RequestTpMkReshareMutation = gqlTyped `
|
|
46
|
+
mutation RequestTpMkReshareMutation($input: RequestTpMkReshareInput!) {
|
|
47
|
+
requestTpMkReshare(input: $input) {
|
|
48
|
+
id
|
|
49
|
+
}
|
|
50
|
+
}`;
|
|
51
|
+
export const RespondTpMkReshareMutation = gqlTyped `
|
|
52
|
+
mutation RespondTpMkReshareMutation($input: RespondTpMkReshareInput!) {
|
|
53
|
+
respondTpMkReshare(input: $input) {
|
|
54
|
+
id
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
`;
|
|
58
|
+
export const CompleteTpMkReshareMutation = gqlTyped `
|
|
59
|
+
mutation CompleteTpMkReshareMutation($input: CompleteTpMkReshareInput!) {
|
|
60
|
+
completeTpMkReshare(input: $input) {
|
|
61
|
+
id
|
|
62
|
+
}
|
|
63
|
+
}`;
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eTIuZ3FsLmpzIiwic291cmNlUm9vdCI6Ii9vcHQvYXRsYXNzaWFuL3BpcGVsaW5lcy9hZ2VudC9idWlsZC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi90cnVzdGVkLXBhcnR5L3RydXN0ZWQtcGFydHkyLmdxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFPMUMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFrQjs7Ozs7O0NBTXpELENBQUM7QUFTRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxRQUFRLENBQXdCOzs7Ozs7OztDQVFyRSxDQUFDO0FBU0YsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsUUFBUSxDQUEwQjs7Ozs7Ozs7Q0FRekUsQ0FBQztBQVNGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBbUI7Ozs7Ozs7O0NBUTNELENBQUM7QUFTRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxRQUFRLENBQXFCOzs7Ozs7OztDQVEvRCxDQUFDO0FBT0YsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsUUFBUSxDQUE0Qjs7Ozs7RUFLNUUsQ0FBQztBQU9ILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLFFBQVEsQ0FBNEI7Ozs7OztDQU03RSxDQUFDO0FBT0YsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsUUFBUSxDQUE2Qjs7Ozs7RUFLOUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElEIH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IGdxbFR5cGVkIH0gZnJvbSAnLi4vX2NvbW1vbi9hc3QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZVRwTXV0YXRpb24ge1xuICBkZWxldGVUcDoge1xuICAgIGlkOiBJRDtcbiAgfTtcbn1cbmV4cG9ydCBjb25zdCBEZWxldGVUcE11dGF0aW9uID0gZ3FsVHlwZWQ8RGVsZXRlVHBNdXRhdGlvbj5gXG5tdXRhdGlvbiBEZWxldGVUcE11dGF0aW9uKCRpbnB1dDogRGVsZXRlVHBJbnB1dCEpIHtcbiAgZGVsZXRlVHAoaW5wdXQ6ICRpbnB1dCkge1xuICAgIGlkXG4gIH1cbn1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVEaXJlY3RvcnlNdXRhdGlvbiB7XG4gIHNoYXJlRGlyZWN0b3J5OiB7XG4gICAgdHBEaXJlY3Rvcnk6IHtcbiAgICAgIGlkOiBJRDtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IFNoYXJlRGlyZWN0b3J5TXV0YXRpb24gPSBncWxUeXBlZDxTaGFyZURpcmVjdG9yeU11dGF0aW9uPmBcbiAgbXV0YXRpb24gU2hhcmVEaXJlY3RvcnlNdXRhdGlvbigkaW5wdXQ6IFNoYXJlRGlyZWN0b3J5SW5wdXQhKSB7XG4gICAgc2hhcmVEaXJlY3RvcnkoaW5wdXQ6ICRpbnB1dCkge1xuICAgICAgdHBEaXJlY3Rvcnkge1xuICAgICAgICBpZFxuICAgICAgfVxuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBVbnNoYXJlRGlyZWN0b3J5TXV0YXRpb24ge1xuICB1bnNoYXJlRGlyZWN0b3J5OiB7XG4gICAgdHBEaXJlY3Rvcnk6IHtcbiAgICAgIGlkOiBJRDtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IFVuc2hhcmVEaXJlY3RvcnlNdXRhdGlvbiA9IGdxbFR5cGVkPFVuc2hhcmVEaXJlY3RvcnlNdXRhdGlvbj5gXG4gIG11dGF0aW9uIFVuc2hhcmVEaXJlY3RvcnlNdXRhdGlvbigkaW5wdXQ6IFVuc2hhcmVEaXJlY3RvcnlJbnB1dCEpIHtcbiAgICB1bnNoYXJlRGlyZWN0b3J5KGlucHV0OiAkaW5wdXQpIHtcbiAgICAgIHRwRGlyZWN0b3J5IHtcbiAgICAgICAgaWRcbiAgICAgIH1cbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVGaWxlTXV0YXRpb24ge1xuICBzaGFyZUZpbGU6IHtcbiAgICB0cEZpbGU6IHtcbiAgICAgIGlkOiBJRDtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IFNoYXJlRmlsZU11dGF0aW9uID0gZ3FsVHlwZWQ8U2hhcmVGaWxlTXV0YXRpb24+YFxuICBtdXRhdGlvbiBTaGFyZUZpbGVNdXRhdGlvbigkaW5wdXQ6IFNoYXJlRmlsZUlucHV0ISkge1xuICAgIHNoYXJlRmlsZShpbnB1dDogJGlucHV0KSB7XG4gICAgICB0cEZpbGUge1xuICAgICAgICBpZFxuICAgICAgfVxuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBVbnNoYXJlRmlsZU11dGF0aW9uIHtcbiAgdW5zaGFyZUZpbGU6IHtcbiAgICB0cEZpbGU6IHtcbiAgICAgIGlkOiBJRDtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IFVuc2hhcmVGaWxlTXV0YXRpb24gPSBncWxUeXBlZDxVbnNoYXJlRmlsZU11dGF0aW9uPmBcbiAgbXV0YXRpb24gVW5zaGFyZUZpbGVNdXRhdGlvbigkaW5wdXQ6IFVuc2hhcmVGaWxlSW5wdXQhKSB7XG4gICAgdW5zaGFyZUZpbGUoaW5wdXQ6ICRpbnB1dCkge1xuICAgICAgdHBGaWxlIHtcbiAgICAgICAgaWRcbiAgICAgIH1cbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdFRwTWtSZXNoYXJlTXV0YXRpb24ge1xuICByZXF1ZXN0VHBNa1Jlc2hhcmU6IHtcbiAgICBpZDogSUQ7XG4gIH07XG59XG5leHBvcnQgY29uc3QgUmVxdWVzdFRwTWtSZXNoYXJlTXV0YXRpb24gPSBncWxUeXBlZDxSZXF1ZXN0VHBNa1Jlc2hhcmVNdXRhdGlvbj5gXG5tdXRhdGlvbiBSZXF1ZXN0VHBNa1Jlc2hhcmVNdXRhdGlvbigkaW5wdXQ6IFJlcXVlc3RUcE1rUmVzaGFyZUlucHV0ISkge1xuICByZXF1ZXN0VHBNa1Jlc2hhcmUoaW5wdXQ6ICRpbnB1dCkge1xuICAgIGlkXG4gIH1cbn1gO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3BvbmRUcE1rUmVzaGFyZU11dGF0aW9uIHtcbiAgcmVzcG9uZFRwTWtSZXNoYXJlOiB7XG4gICAgaWQ6IElEO1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IFJlc3BvbmRUcE1rUmVzaGFyZU11dGF0aW9uID0gZ3FsVHlwZWQ8UmVzcG9uZFRwTWtSZXNoYXJlTXV0YXRpb24+YFxuICBtdXRhdGlvbiBSZXNwb25kVHBNa1Jlc2hhcmVNdXRhdGlvbigkaW5wdXQ6IFJlc3BvbmRUcE1rUmVzaGFyZUlucHV0ISkge1xuICAgIHJlc3BvbmRUcE1rUmVzaGFyZShpbnB1dDogJGlucHV0KSB7XG4gICAgICBpZFxuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBDb21wbGV0ZVRwTWtSZXNoYXJlTXV0YXRpb24ge1xuICBjb21wbGV0ZVRwTWtSZXNoYXJlOiB7XG4gICAgaWQ6IElEO1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IENvbXBsZXRlVHBNa1Jlc2hhcmVNdXRhdGlvbiA9IGdxbFR5cGVkPENvbXBsZXRlVHBNa1Jlc2hhcmVNdXRhdGlvbj5gXG5tdXRhdGlvbiBDb21wbGV0ZVRwTWtSZXNoYXJlTXV0YXRpb24oJGlucHV0OiBDb21wbGV0ZVRwTWtSZXNoYXJlSW5wdXQhKSB7XG4gIGNvbXBsZXRlVHBNa1Jlc2hhcmUoaW5wdXQ6ICRpbnB1dCkge1xuICAgIGlkXG4gIH1cbn1gO1xuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { gqlTyped } from '../_common/ast';
|
|
2
|
+
export const TpCurrentUserSharedKeyQuery = gqlTyped `
|
|
3
|
+
query TpCurrentUserSharedKeyQuery($id: LrRelayIdInput!) {
|
|
4
|
+
tp(id: $id){
|
|
5
|
+
currentUserSharedKey {
|
|
6
|
+
userSharedKey {
|
|
7
|
+
sharedKey {
|
|
8
|
+
id
|
|
9
|
+
}
|
|
10
|
+
mkSharedKey {
|
|
11
|
+
id
|
|
12
|
+
}
|
|
13
|
+
mkPxk {
|
|
14
|
+
id
|
|
15
|
+
}
|
|
16
|
+
mkReshareRequestCipher
|
|
17
|
+
mkReshareRequestSent
|
|
18
|
+
mkReshareResponseCipher
|
|
19
|
+
mkReshareResponseSent
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
`;
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eTIuZ3FsLnByaXZhdGUuanMiLCJzb3VyY2VSb290IjoiL29wdC9hdGxhc3NpYW4vcGlwZWxpbmVzL2FnZW50L2J1aWxkL3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL3RydXN0ZWQtcGFydHkvdHJ1c3RlZC1wYXJ0eTIuZ3FsLnByaXZhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBdUIxQyxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxRQUFRLENBQTZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBc0IvRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUQgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHsgZ3FsVHlwZWQgfSBmcm9tICcuLi9fY29tbW9uL2FzdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHBDdXJyZW50VXNlclNoYXJlZEtleVF1ZXJ5IHtcbiAgdHA6IHtcbiAgICBjdXJyZW50VXNlclNoYXJlZEtleToge1xuICAgICAgdXNlclNoYXJlZEtleToge1xuICAgICAgICBzaGFyZWRLZXk6IHtcbiAgICAgICAgICBpZDogSUQ7XG4gICAgICAgIH07XG4gICAgICAgIG1rU2hhcmVkS2V5OiB7XG4gICAgICAgICAgaWQ6IElEO1xuICAgICAgICB9O1xuICAgICAgICBta1B4azoge1xuICAgICAgICAgIGlkOiBJRDtcbiAgICAgICAgfTtcbiAgICAgICAgbWtSZXNoYXJlUmVxdWVzdENpcGhlcjogc3RyaW5nO1xuICAgICAgICBta1Jlc2hhcmVSZXF1ZXN0U2VudDogYm9vbGVhbjtcbiAgICAgICAgbWtSZXNoYXJlUmVzcG9uc2VDaXBoZXI6IHN0cmluZztcbiAgICAgICAgbWtSZXNoYXJlUmVzcG9uc2VTZW50OiBib29sZWFuO1xuICAgICAgfTtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IFRwQ3VycmVudFVzZXJTaGFyZWRLZXlRdWVyeSA9IGdxbFR5cGVkPFRwQ3VycmVudFVzZXJTaGFyZWRLZXlRdWVyeT5gXG5xdWVyeSBUcEN1cnJlbnRVc2VyU2hhcmVkS2V5UXVlcnkoJGlkOiBMclJlbGF5SWRJbnB1dCEpIHtcbiAgdHAoaWQ6ICRpZCl7XG4gICAgY3VycmVudFVzZXJTaGFyZWRLZXkge1xuICAgICAgdXNlclNoYXJlZEtleSB7XG4gICAgICAgIHNoYXJlZEtleSB7XG4gICAgICAgICAgaWRcbiAgICAgICAgfVxuICAgICAgICBta1NoYXJlZEtleSB7XG4gICAgICAgICAgaWRcbiAgICAgICAgfVxuICAgICAgICBta1B4ayB7XG4gICAgICAgICAgaWRcbiAgICAgICAgfVxuICAgICAgICBta1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyXG4gICAgICAgIG1rUmVzaGFyZVJlcXVlc3RTZW50XG4gICAgICAgIG1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyXG4gICAgICAgIG1rUmVzaGFyZVJlc3BvbnNlU2VudFxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuYDtcbiJdfQ==
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { __awaiter, __decorate } from "tslib";
|
|
2
|
+
import { Injectable, Injector, NgZone } from '@angular/core';
|
|
3
|
+
import { JWK } from 'node-jose';
|
|
4
|
+
import { LrMutation, LrService } from '../api/lr-graphql';
|
|
5
|
+
import { EncryptionService } from '../encryption/encryption.service';
|
|
6
|
+
import { Item2Service } from '../items2/item2.service';
|
|
7
|
+
import { KeyFactoryService } from '../key/key-factory.service';
|
|
8
|
+
import { KeyGraphService } from '../key/key-graph.service';
|
|
9
|
+
import { KeyService } from '../key/key.service';
|
|
10
|
+
import { LrBadStateException } from '../_common/exceptions';
|
|
11
|
+
import { RunOutsideAngular } from '../_common/run-outside-angular';
|
|
12
|
+
import { CompleteTpMkReshareMutation, DeleteTpMutation, RequestTpMkReshareMutation, RespondTpMkReshareMutation, ShareDirectoryMutation, ShareFileMutation, UnshareDirectoryMutation, UnshareFileMutation, } from './trusted-party2.gql';
|
|
13
|
+
import { TpCurrentUserSharedKeyQuery } from './trusted-party2.gql.private';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
import * as i1 from "../key/key-graph.service";
|
|
16
|
+
import * as i2 from "../items2/item2.service";
|
|
17
|
+
import * as i3 from "../key/key.service";
|
|
18
|
+
import * as i4 from "../key/key-factory.service";
|
|
19
|
+
import * as i5 from "../encryption/encryption.service";
|
|
20
|
+
let TrustedParty2Service = class TrustedParty2Service extends LrService {
|
|
21
|
+
constructor(ngZone, injector, keyGraph, item2Service, keyService, keyFactory, encryptionService) {
|
|
22
|
+
super(injector);
|
|
23
|
+
this.ngZone = ngZone;
|
|
24
|
+
this.injector = injector;
|
|
25
|
+
this.keyGraph = keyGraph;
|
|
26
|
+
this.item2Service = item2Service;
|
|
27
|
+
this.keyService = keyService;
|
|
28
|
+
this.keyFactory = keyFactory;
|
|
29
|
+
this.encryptionService = encryptionService;
|
|
30
|
+
}
|
|
31
|
+
deleteTpExec(tpId) {
|
|
32
|
+
return this.mutate(this.deleteTpMutation(tpId));
|
|
33
|
+
}
|
|
34
|
+
// TODO: deprecate this
|
|
35
|
+
deleteTp(tpId) {
|
|
36
|
+
return this.deleteTpMutation(tpId);
|
|
37
|
+
}
|
|
38
|
+
deleteTpMutation(tpId) {
|
|
39
|
+
return new LrMutation({
|
|
40
|
+
mutation: DeleteTpMutation,
|
|
41
|
+
variables: {
|
|
42
|
+
input: {
|
|
43
|
+
id: tpId,
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
shareDirectory(options) {
|
|
49
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
return this.shareItem(Object.assign(Object.assign({}, options), { isDirectory: true }));
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
shareFile(options) {
|
|
54
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
return this.shareItem(Object.assign(Object.assign({}, options), { isDirectory: false }));
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
shareItem({ itemId, itemKeyId, tpId, tpSharedKeyId, accessRole, isDirectory, }) {
|
|
59
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
+
const itemKey = yield this.keyGraph.getKey(itemKeyId, () => isDirectory
|
|
61
|
+
? this.item2Service.getDirectoryKeyId(itemId)
|
|
62
|
+
: this.item2Service.getFileKeyId(itemId));
|
|
63
|
+
const wrappingKey = yield this.keyGraph.getKey(tpSharedKeyId, () => this.getTpCurrentUserSharedKey(tpId).then((res) => res.sharedKey.id));
|
|
64
|
+
const wrappedKey = yield this.keyGraph.wrapKey(wrappingKey, itemKey.jwk);
|
|
65
|
+
return new LrMutation({
|
|
66
|
+
mutation: isDirectory ? ShareDirectoryMutation : ShareFileMutation,
|
|
67
|
+
variables: {
|
|
68
|
+
input: {
|
|
69
|
+
id: itemId,
|
|
70
|
+
tpId,
|
|
71
|
+
accessRole,
|
|
72
|
+
keyId: itemKey.id,
|
|
73
|
+
wrappingKeyId: wrappingKey.id,
|
|
74
|
+
wrappedKey,
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
unshareDirectory(options) {
|
|
81
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
+
return this.unshareItem(Object.assign(Object.assign({}, options), { isDirectory: true }));
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
unshareFile(options) {
|
|
86
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
87
|
+
return this.unshareItem(Object.assign(Object.assign({}, options), { isDirectory: false }));
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
requestMkReshare(tpId) {
|
|
91
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
92
|
+
const userSharedKey = yield this.getTpCurrentUserSharedKey(tpId);
|
|
93
|
+
if (userSharedKey.mkSharedKey) {
|
|
94
|
+
throw new LrBadStateException('TP already has mkSharedKey');
|
|
95
|
+
}
|
|
96
|
+
const masterKey = yield this.keyService.getCurrentMasterKey();
|
|
97
|
+
const prk = yield this.keyFactory.createPkcKey();
|
|
98
|
+
const mkWrappedMkPrk = yield this.encryptionService.encryptToString(masterKey.jwk, prk.toJSON(true));
|
|
99
|
+
const sharedKey = yield this.keyGraph.getKey(userSharedKey.sharedKey.id);
|
|
100
|
+
const mkReshareRequestCipher = yield this.encryptionService.encryptToString(sharedKey.jwk, {
|
|
101
|
+
pbk: prk.toJSON(),
|
|
102
|
+
});
|
|
103
|
+
return yield new LrMutation({
|
|
104
|
+
mutation: RequestTpMkReshareMutation,
|
|
105
|
+
variables: {
|
|
106
|
+
input: {
|
|
107
|
+
tpId,
|
|
108
|
+
masterKeyId: masterKey.id,
|
|
109
|
+
mkPbk: JSON.stringify(prk.toJSON()),
|
|
110
|
+
mkWrappedMkPrk,
|
|
111
|
+
sharedKeyId: sharedKey.id,
|
|
112
|
+
mkReshareRequestCipher,
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
respondMkReshare(tpId) {
|
|
119
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
120
|
+
const userSharedKey = yield this.getTpCurrentUserSharedKey(tpId);
|
|
121
|
+
if (!userSharedKey.mkSharedKey) {
|
|
122
|
+
throw new LrBadStateException('No access to the mkSharedKey so cannot reshare it with TP');
|
|
123
|
+
}
|
|
124
|
+
const sharedKey = yield this.keyGraph.getKey(userSharedKey.sharedKey.id);
|
|
125
|
+
const plainMkReshareRequestCipher = yield this.encryptionService.decrypt(sharedKey, userSharedKey.mkReshareRequestCipher);
|
|
126
|
+
const pbk = yield JWK.asKey(plainMkReshareRequestCipher.pbk);
|
|
127
|
+
const mkSharedKey = yield this.keyGraph.getKey(userSharedKey.mkSharedKey.id);
|
|
128
|
+
const plainMkReshareResponseCipher = {
|
|
129
|
+
mkSharedKey: {
|
|
130
|
+
id: mkSharedKey.id,
|
|
131
|
+
jwk: mkSharedKey.jwk.toJSON(true),
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
// Wrap with sharedKey then again with Pbk
|
|
135
|
+
const mkReshareResponseCipher = yield this.encryptionService.encryptToString(pbk, yield this.encryptionService.encryptToString(sharedKey.jwk, plainMkReshareResponseCipher));
|
|
136
|
+
return new LrMutation({
|
|
137
|
+
mutation: RespondTpMkReshareMutation,
|
|
138
|
+
variables: {
|
|
139
|
+
input: {
|
|
140
|
+
tpId,
|
|
141
|
+
mkSharedKeyId: mkSharedKey.id,
|
|
142
|
+
mkReshareResponseCipher,
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
completeMkReshare(tpId) {
|
|
149
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
150
|
+
const userSharedKey = yield this.getTpCurrentUserSharedKey(tpId);
|
|
151
|
+
const sharedKey = yield this.keyGraph.getKey(userSharedKey.sharedKey.id);
|
|
152
|
+
const prk = yield this.keyGraph.getKey(userSharedKey.mkPxk.id);
|
|
153
|
+
const plainMkReshareResponseCipher = yield this.encryptionService.decrypt(sharedKey, yield this.encryptionService.decrypt(prk, userSharedKey.mkReshareResponseCipher));
|
|
154
|
+
// Double check it's a valid key.
|
|
155
|
+
const mkSharedKey = {
|
|
156
|
+
id: plainMkReshareResponseCipher.mkSharedKey.id,
|
|
157
|
+
jwk: yield JWK.asKey(plainMkReshareResponseCipher.mkSharedKey.jwk),
|
|
158
|
+
};
|
|
159
|
+
const masterKey = yield this.keyService.getCurrentMasterKey();
|
|
160
|
+
const mkWrappedMkSharedKey = yield this.encryptionService.encryptToString(masterKey.jwk, mkSharedKey.jwk.toJSON(true));
|
|
161
|
+
return new LrMutation({
|
|
162
|
+
mutation: CompleteTpMkReshareMutation,
|
|
163
|
+
variables: {
|
|
164
|
+
input: {
|
|
165
|
+
tpId,
|
|
166
|
+
masterKeyId: masterKey.id,
|
|
167
|
+
mkSharedKeyId: mkSharedKey.id,
|
|
168
|
+
mkWrappedMkSharedKey,
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
// ------------------------------------------------------------------------------------
|
|
175
|
+
// ------------------------------------------------------------------------------------
|
|
176
|
+
// Helpers
|
|
177
|
+
// ------------------------------------------------------------------------------------
|
|
178
|
+
// ------------------------------------------------------------------------------------
|
|
179
|
+
getTpCurrentUserSharedKey(tpId) {
|
|
180
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
181
|
+
return (yield this.lrGraphQL.query({
|
|
182
|
+
query: TpCurrentUserSharedKeyQuery,
|
|
183
|
+
variables: {
|
|
184
|
+
id: tpId,
|
|
185
|
+
},
|
|
186
|
+
})).tp.currentUserSharedKey.userSharedKey;
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
unshareItem({ itemId, tpId, isDirectory, }) {
|
|
190
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
191
|
+
return new LrMutation({
|
|
192
|
+
mutation: isDirectory ? UnshareDirectoryMutation : UnshareFileMutation,
|
|
193
|
+
variables: {
|
|
194
|
+
input: {
|
|
195
|
+
id: itemId,
|
|
196
|
+
tpId,
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
TrustedParty2Service.ɵprov = i0.ɵɵdefineInjectable({ factory: function TrustedParty2Service_Factory() { return new TrustedParty2Service(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1.KeyGraphService), i0.ɵɵinject(i2.Item2Service), i0.ɵɵinject(i3.KeyService), i0.ɵɵinject(i4.KeyFactoryService), i0.ɵɵinject(i5.EncryptionService)); }, token: TrustedParty2Service, providedIn: "root" });
|
|
204
|
+
TrustedParty2Service.decorators = [
|
|
205
|
+
{ type: Injectable, args: [{
|
|
206
|
+
providedIn: 'root',
|
|
207
|
+
},] }
|
|
208
|
+
];
|
|
209
|
+
TrustedParty2Service.ctorParameters = () => [
|
|
210
|
+
{ type: NgZone },
|
|
211
|
+
{ type: Injector },
|
|
212
|
+
{ type: KeyGraphService },
|
|
213
|
+
{ type: Item2Service },
|
|
214
|
+
{ type: KeyService },
|
|
215
|
+
{ type: KeyFactoryService },
|
|
216
|
+
{ type: EncryptionService }
|
|
217
|
+
];
|
|
218
|
+
TrustedParty2Service = __decorate([
|
|
219
|
+
RunOutsideAngular({
|
|
220
|
+
ngZoneName: 'ngZone',
|
|
221
|
+
})
|
|
222
|
+
], TrustedParty2Service);
|
|
223
|
+
export { TrustedParty2Service };
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eTIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIvb3B0L2F0bGFzc2lhbi9waXBlbGluZXMvYWdlbnQvYnVpbGQvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvdHJ1c3RlZC1wYXJ0eS90cnVzdGVkLXBhcnR5Mi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0IsZ0JBQWdCLEVBQ2hCLDBCQUEwQixFQUMxQiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsbUJBQW1CLEdBQ3BCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7SUFTOUQsb0JBQW9CLFNBQXBCLG9CQUFxQixTQUFRLFNBQVM7SUFDakQsWUFDVSxN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Q0wsQ0FBQztLQUFBO0NBQ0YsQ0FBQTs7O1lBalBBLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBOUI4QixNQUFNO1lBQWhCLFFBQVE7WUFPcEIsZUFBZTtZQUZmLFlBQVk7WUFHWixVQUFVO1lBRlYsaUJBQWlCO1lBRmpCLGlCQUFpQjs7QUEyQmIsb0JBQW9CO0lBTmhDLGlCQUFpQixDQUFDO1FBQ2pCLFVBQVUsRUFBRSxRQUFRO0tBQ3JCLENBQUM7R0FJVyxvQkFBb0IsQ0E4T2hDO1NBOU9ZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEpXSyB9IGZyb20gJ25vZGUtam9zZSc7XG5pbXBvcnQgeyBMck11dGF0aW9uLCBMclNlcnZpY2UgfSBmcm9tICcuLi9hcGkvbHItZ3JhcGhxbCc7XG5pbXBvcnQgeyBMclJlbGF5SWRJbnB1dCB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBFbmNyeXB0aW9uU2VydmljZSB9IGZyb20gJy4uL2VuY3J5cHRpb24vZW5jcnlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEl0ZW0yU2VydmljZSB9IGZyb20gJy4uL2l0ZW1zMi9pdGVtMi5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5R3JhcGhTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1ncmFwaC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleVNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5IH0gZnJvbSAnLi4va2V5L2tleS50eXBlcyc7XG5pbXBvcnQgeyBMckJhZFN0YXRlRXhjZXB0aW9uIH0gZnJvbSAnLi4vX2NvbW1vbi9leGNlcHRpb25zJztcbmltcG9ydCB7IFJ1bk91dHNpZGVBbmd1bGFyIH0gZnJvbSAnLi4vX2NvbW1vbi9ydW4tb3V0c2lkZS1hbmd1bGFyJztcbmltcG9ydCB7XG4gIENvbXBsZXRlVHBNa1Jlc2hhcmVNdXRhdGlvbixcbiAgRGVsZXRlVHBNdXRhdGlvbixcbiAgUmVxdWVzdFRwTWtSZXNoYXJlTXV0YXRpb24sXG4gIFJlc3BvbmRUcE1rUmVzaGFyZU11dGF0aW9uLFxuICBTaGFyZURpcmVjdG9yeU11dGF0aW9uLFxuICBTaGFyZUZpbGVNdXRhdGlvbixcbiAgVW5zaGFyZURpcmVjdG9yeU11dGF0aW9uLFxuICBVbnNoYXJlRmlsZU11dGF0aW9uLFxufSBmcm9tICcuL3RydXN0ZWQtcGFydHkyLmdxbCc7XG5pbXBvcnQgeyBUcEN1cnJlbnRVc2VyU2hhcmVkS2V5UXVlcnkgfSBmcm9tICcuL3RydXN0ZWQtcGFydHkyLmdxbC5wcml2YXRlJztcbmltcG9ydCB7IFNoYXJlSXRlbU9wdGlvbnMsIFVuc2hhcmVJdGVtT3B0aW9ucyB9IGZyb20gJy4vdHJ1c3RlZC1wYXJ0eTIudHlwZXMnO1xuXG5AUnVuT3V0c2lkZUFuZ3VsYXIoe1xuICBuZ1pvbmVOYW1lOiAnbmdab25lJyxcbn0pXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVHJ1c3RlZFBhcnR5MlNlcnZpY2UgZXh0ZW5kcyBMclNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUga2V5R3JhcGg6IEtleUdyYXBoU2VydmljZSxcbiAgICBwcml2YXRlIGl0ZW0yU2VydmljZTogSXRlbTJTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5U2VydmljZTogS2V5U2VydmljZSxcbiAgICBwcml2YXRlIGtleUZhY3Rvcnk6IEtleUZhY3RvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgZW5jcnlwdGlvblNlcnZpY2U6IEVuY3J5cHRpb25TZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGluamVjdG9yKTtcbiAgfVxuXG4gIGRlbGV0ZVRwRXhlYyh0cElkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIHJldHVybiB0aGlzLm11dGF0ZSh0aGlzLmRlbGV0ZVRwTXV0YXRpb24odHBJZCkpO1xuICB9XG5cbiAgLy8gVE9ETzogZGVwcmVjYXRlIHRoaXNcbiAgZGVsZXRlVHAodHBJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGVUcE11dGF0aW9uKHRwSWQpO1xuICB9XG5cbiAgZGVsZXRlVHBNdXRhdGlvbih0cElkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogRGVsZXRlVHBNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGlkOiB0cElkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHNoYXJlRGlyZWN0b3J5KG9wdGlvbnM6IFNoYXJlSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZUl0ZW0oeyAuLi5vcHRpb25zLCBpc0RpcmVjdG9yeTogdHJ1ZSB9KTtcbiAgfVxuXG4gIGFzeW5jIHNoYXJlRmlsZShvcHRpb25zOiBTaGFyZUl0ZW1PcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hhcmVJdGVtKHsgLi4ub3B0aW9ucywgaXNEaXJlY3Rvcnk6IGZhbHNlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzaGFyZUl0ZW0oe1xuICAgIGl0ZW1JZCxcbiAgICBpdGVtS2V5SWQsXG4gICAgdHBJZCxcbiAgICB0cFNoYXJlZEtleUlkLFxuICAgIGFjY2Vzc1JvbGUsXG4gICAgaXNEaXJlY3RvcnksXG4gIH06IFNoYXJlSXRlbU9wdGlvbnMgJiB7XG4gICAgaXNEaXJlY3Rvcnk6IGJvb2xlYW47XG4gIH0pIHtcbiAgICBjb25zdCBpdGVtS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkoaXRlbUtleUlkLCAoKSA9PlxuICAgICAgaXNEaXJlY3RvcnlcbiAgICAgICAgPyB0aGlzLml0ZW0yU2VydmljZS5nZXREaXJlY3RvcnlLZXlJZChpdGVtSWQpXG4gICAgICAgIDogdGhpcy5pdGVtMlNlcnZpY2UuZ2V0RmlsZUtleUlkKGl0ZW1JZClcbiAgICApO1xuICAgIGNvbnN0IHdyYXBwaW5nS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkodHBTaGFyZWRLZXlJZCwgKCkgPT5cbiAgICAgIHRoaXMuZ2V0VHBDdXJyZW50VXNlclNoYXJlZEtleSh0cElkKS50aGVuKChyZXMpID0+IHJlcy5zaGFyZWRLZXkuaWQpXG4gICAgKTtcbiAgICBjb25zdCB3cmFwcGVkS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC53cmFwS2V5KHdyYXBwaW5nS2V5LCBpdGVtS2V5Lmp3ayk7XG5cbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IGlzRGlyZWN0b3J5ID8gU2hhcmVEaXJlY3RvcnlNdXRhdGlvbiA6IFNoYXJlRmlsZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgaWQ6IGl0ZW1JZCxcbiAgICAgICAgICB0cElkLFxuICAgICAgICAgIGFjY2Vzc1JvbGUsXG4gICAgICAgICAga2V5SWQ6IGl0ZW1LZXkuaWQsXG4gICAgICAgICAgd3JhcHBpbmdLZXlJZDogd3JhcHBpbmdLZXkuaWQsXG4gICAgICAgICAgd3JhcHBlZEtleSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyB1bnNoYXJlRGlyZWN0b3J5KG9wdGlvbnM6IFVuc2hhcmVJdGVtT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnVuc2hhcmVJdGVtKHsgLi4ub3B0aW9ucywgaXNEaXJlY3Rvcnk6IHRydWUgfSk7XG4gIH1cblxuICBhc3luYyB1bnNoYXJlRmlsZShvcHRpb25zOiBVbnNoYXJlSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy51bnNoYXJlSXRlbSh7IC4uLm9wdGlvbnMsIGlzRGlyZWN0b3J5OiBmYWxzZSB9KTtcbiAgfVxuXG4gIGFzeW5jIHJlcXVlc3RNa1Jlc2hhcmUodHBJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICBjb25zdCB1c2VyU2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5nZXRUcEN1cnJlbnRVc2VyU2hhcmVkS2V5KHRwSWQpO1xuXG4gICAgaWYgKHVzZXJTaGFyZWRLZXkubWtTaGFyZWRLZXkpIHtcbiAgICAgIHRocm93IG5ldyBMckJhZFN0YXRlRXhjZXB0aW9uKCdUUCBhbHJlYWR5IGhhcyBta1NoYXJlZEtleScpO1xuICAgIH1cblxuICAgIGNvbnN0IG1hc3RlcktleSA9IGF3YWl0IHRoaXMua2V5U2VydmljZS5nZXRDdXJyZW50TWFzdGVyS2V5KCk7XG4gICAgY29uc3QgcHJrID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZVBrY0tleSgpO1xuICAgIGNvbnN0IG1rV3JhcHBlZE1rUHJrID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICBtYXN0ZXJLZXkuandrLFxuICAgICAgcHJrLnRvSlNPTih0cnVlKVxuICAgICk7XG5cbiAgICBjb25zdCBzaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleSh1c2VyU2hhcmVkS2V5LnNoYXJlZEtleS5pZCk7XG4gICAgY29uc3QgbWtSZXNoYXJlUmVxdWVzdENpcGhlciA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgc2hhcmVkS2V5Lmp3ayxcbiAgICAgIHtcbiAgICAgICAgcGJrOiBwcmsudG9KU09OKCksXG4gICAgICB9XG4gICAgKTtcblxuICAgIHJldHVybiBhd2FpdCBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogUmVxdWVzdFRwTWtSZXNoYXJlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICB0cElkLFxuICAgICAgICAgIG1hc3RlcktleUlkOiBtYXN0ZXJLZXkuaWQsXG4gICAgICAgICAgbWtQYms6IEpTT04uc3RyaW5naWZ5KHByay50b0pTT04oKSksXG4gICAgICAgICAgbWtXcmFwcGVkTWtQcmssXG4gICAgICAgICAgc2hhcmVkS2V5SWQ6IHNoYXJlZEtleS5pZCxcbiAgICAgICAgICBta1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHJlc3BvbmRNa1Jlc2hhcmUodHBJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICBjb25zdCB1c2VyU2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5nZXRUcEN1cnJlbnRVc2VyU2hhcmVkS2V5KHRwSWQpO1xuXG4gICAgaWYgKCF1c2VyU2hhcmVkS2V5Lm1rU2hhcmVkS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgTHJCYWRTdGF0ZUV4Y2VwdGlvbihcbiAgICAgICAgJ05vIGFjY2VzcyB0byB0aGUgbWtTaGFyZWRLZXkgc28gY2Fubm90IHJlc2hhcmUgaXQgd2l0aCBUUCdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkodXNlclNoYXJlZEtleS5zaGFyZWRLZXkuaWQpO1xuICAgIGNvbnN0IHBsYWluTWtSZXNoYXJlUmVxdWVzdENpcGhlciA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgIHNoYXJlZEtleSxcbiAgICAgIHVzZXJTaGFyZWRLZXkubWtSZXNoYXJlUmVxdWVzdENpcGhlclxuICAgICk7XG4gICAgY29uc3QgcGJrID0gYXdhaXQgSldLLmFzS2V5KHBsYWluTWtSZXNoYXJlUmVxdWVzdENpcGhlci5wYmspO1xuICAgIGNvbnN0IG1rU2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkoXG4gICAgICB1c2VyU2hhcmVkS2V5Lm1rU2hhcmVkS2V5LmlkXG4gICAgKTtcblxuICAgIGNvbnN0IHBsYWluTWtSZXNoYXJlUmVzcG9uc2VDaXBoZXIgPSB7XG4gICAgICBta1NoYXJlZEtleToge1xuICAgICAgICBpZDogbWtTaGFyZWRLZXkuaWQsXG4gICAgICAgIGp3azogbWtTaGFyZWRLZXkuandrLnRvSlNPTih0cnVlKSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIC8vIFdyYXAgd2l0aCBzaGFyZWRLZXkgdGhlbiBhZ2FpbiB3aXRoIFBia1xuICAgIGNvbnN0IG1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyID1cbiAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgICBwYmssXG4gICAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgICAgIHNoYXJlZEtleS5qd2ssXG4gICAgICAgICAgcGxhaW5Na1Jlc2hhcmVSZXNwb25zZUNpcGhlclxuICAgICAgICApXG4gICAgICApO1xuXG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBSZXNwb25kVHBNa1Jlc2hhcmVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIHRwSWQsXG4gICAgICAgICAgbWtTaGFyZWRLZXlJZDogbWtTaGFyZWRLZXkuaWQsXG4gICAgICAgICAgbWtSZXNoYXJlUmVzcG9uc2VDaXBoZXIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY29tcGxldGVNa1Jlc2hhcmUodHBJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICBjb25zdCB1c2VyU2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5nZXRUcEN1cnJlbnRVc2VyU2hhcmVkS2V5KHRwSWQpO1xuXG4gICAgY29uc3Qgc2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkodXNlclNoYXJlZEtleS5zaGFyZWRLZXkuaWQpO1xuICAgIGNvbnN0IHByayA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KHVzZXJTaGFyZWRLZXkubWtQeGsuaWQpO1xuICAgIGNvbnN0IHBsYWluTWtSZXNoYXJlUmVzcG9uc2VDaXBoZXIgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXG4gICAgICBzaGFyZWRLZXksXG4gICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXG4gICAgICAgIHByayxcbiAgICAgICAgdXNlclNoYXJlZEtleS5ta1Jlc2hhcmVSZXNwb25zZUNpcGhlclxuICAgICAgKVxuICAgICk7XG5cbiAgICAvLyBEb3VibGUgY2hlY2sgaXQncyBhIHZhbGlkIGtleS5cbiAgICBjb25zdCBta1NoYXJlZEtleTogS2V5ID0ge1xuICAgICAgaWQ6IHBsYWluTWtSZXNoYXJlUmVzcG9uc2VDaXBoZXIubWtTaGFyZWRLZXkuaWQsXG4gICAgICBqd2s6IGF3YWl0IEpXSy5hc0tleShwbGFpbk1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyLm1rU2hhcmVkS2V5Lmp3ayksXG4gICAgfTtcblxuICAgIGNvbnN0IG1hc3RlcktleSA9IGF3YWl0IHRoaXMua2V5U2VydmljZS5nZXRDdXJyZW50TWFzdGVyS2V5KCk7XG4gICAgY29uc3QgbWtXcmFwcGVkTWtTaGFyZWRLZXkgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgIG1hc3RlcktleS5qd2ssXG4gICAgICBta1NoYXJlZEtleS5qd2sudG9KU09OKHRydWUpXG4gICAgKTtcblxuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogQ29tcGxldGVUcE1rUmVzaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgdHBJZCxcbiAgICAgICAgICBtYXN0ZXJLZXlJZDogbWFzdGVyS2V5LmlkLFxuICAgICAgICAgIG1rU2hhcmVkS2V5SWQ6IG1rU2hhcmVkS2V5LmlkLFxuICAgICAgICAgIG1rV3JhcHBlZE1rU2hhcmVkS2V5LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSGVscGVyc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIHByaXZhdGUgYXN5bmMgZ2V0VHBDdXJyZW50VXNlclNoYXJlZEtleSh0cElkOiBMclJlbGF5SWRJbnB1dCkge1xuICAgIHJldHVybiAoXG4gICAgICBhd2FpdCB0aGlzLmxyR3JhcGhRTC5xdWVyeSh7XG4gICAgICAgIHF1ZXJ5OiBUcEN1cnJlbnRVc2VyU2hhcmVkS2V5UXVlcnksXG4gICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgIGlkOiB0cElkLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApLnRwLmN1cnJlbnRVc2VyU2hhcmVkS2V5LnVzZXJTaGFyZWRLZXk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVuc2hhcmVJdGVtKHtcbiAgICBpdGVtSWQsXG4gICAgdHBJZCxcbiAgICBpc0RpcmVjdG9yeSxcbiAgfTogVW5zaGFyZUl0ZW1PcHRpb25zICYgeyBpc0RpcmVjdG9yeTogYm9vbGVhbiB9KSB7XG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBpc0RpcmVjdG9yeSA/IFVuc2hhcmVEaXJlY3RvcnlNdXRhdGlvbiA6IFVuc2hhcmVGaWxlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBpZDogaXRlbUlkLFxuICAgICAgICAgIHRwSWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eTIudHlwZXMuanMiLCJzb3VyY2VSb290IjoiL29wdC9hdGxhc3NpYW4vcGlwZWxpbmVzL2FnZW50L2J1aWxkL3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL3RydXN0ZWQtcGFydHkvdHJ1c3RlZC1wYXJ0eTIudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY2Vzc1JvbGVDaG9pY2UsIExyUmVsYXlJZElucHV0IH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcblxuLy8gSWYgeHh4S2V5SWQgbm90IGdpdmVuLCB0aGVuIGZldGNoIHRoZW0gd2l0aCBBUEkgY2FsbHNcbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVJdGVtT3B0aW9ucyB7XG4gIGl0ZW1JZDogTHJSZWxheUlkSW5wdXQ7XG4gIGl0ZW1LZXlJZD86IExyUmVsYXlJZElucHV0O1xuICB0cElkOiBMclJlbGF5SWRJbnB1dDtcbiAgdHBTaGFyZWRLZXlJZD86IExyUmVsYXlJZElucHV0O1xuICBhY2Nlc3NSb2xlOiBBY2Nlc3NSb2xlQ2hvaWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVuc2hhcmVJdGVtT3B0aW9ucyB7XG4gIGl0ZW1JZDogc3RyaW5nO1xuICB0cElkOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { AuthClass } from '@aws-amplify/auth/lib-esm/Auth';
|
|
4
|
+
import { LrBadArgumentException } from '../_common/exceptions';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@aws-amplify/auth/lib-esm/Auth";
|
|
7
|
+
export class TwoFactorService {
|
|
8
|
+
constructor(auth) {
|
|
9
|
+
this.auth = auth;
|
|
10
|
+
}
|
|
11
|
+
getPreferredMFA() {
|
|
12
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
13
|
+
const cognitoUser = yield this.auth.currentAuthenticatedUser();
|
|
14
|
+
return yield this.auth.getPreferredMFA(cognitoUser);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
setPreferredMFA(method) {
|
|
18
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
const cognitoUser = yield this.auth.currentAuthenticatedUser();
|
|
20
|
+
yield this.auth.setPreferredMFA(cognitoUser, method);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
setPhoneNumber(phone) {
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
const cognitoUser = yield this.auth.currentAuthenticatedUser();
|
|
26
|
+
yield this.auth.updateUserAttributes(cognitoUser, {
|
|
27
|
+
phone_number: phone,
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
getSMSCode() {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
yield this.auth.verifyCurrentUserAttribute('phone_number');
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
verifySMSCode(verificationCode) {
|
|
37
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
yield this.auth.verifyCurrentUserAttributeSubmit('phone_number', verificationCode);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
getSoftwareToken() {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
const [cognitoUser, userInfo] = yield Promise.all([
|
|
44
|
+
this.auth.currentAuthenticatedUser(),
|
|
45
|
+
this.auth.currentUserInfo(),
|
|
46
|
+
]);
|
|
47
|
+
const code = yield this.auth.setupTOTP(cognitoUser);
|
|
48
|
+
const email = userInfo.attributes.email;
|
|
49
|
+
if (!email) {
|
|
50
|
+
throw new LrBadArgumentException('No email associated with user.');
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
code,
|
|
54
|
+
codeUri: `otpauth://totp/${email}?secret=${code}&issuer=LifeReady`,
|
|
55
|
+
};
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
verifySoftwareToken(totpCode) {
|
|
59
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
+
const cognitoUser = yield this.auth.currentAuthenticatedUser();
|
|
61
|
+
yield this.auth.verifyTotpToken(cognitoUser, totpCode);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
TwoFactorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TwoFactorService_Factory() { return new TwoFactorService(i0.ɵɵinject(i1.AuthClass)); }, token: TwoFactorService, providedIn: "root" });
|
|
66
|
+
TwoFactorService.decorators = [
|
|
67
|
+
{ type: Injectable, args: [{
|
|
68
|
+
providedIn: 'root',
|
|
69
|
+
},] }
|
|
70
|
+
];
|
|
71
|
+
TwoFactorService.ctorParameters = () => [
|
|
72
|
+
{ type: AuthClass }
|
|
73
|
+
];
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvLWZhY3Rvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9vcHQvYXRsYXNzaWFuL3BpcGVsaW5lcy9hZ2VudC9idWlsZC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi90d28tZmFjdG9yL3R3by1mYWN0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQUsvRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQW9CLElBQWU7UUFBZixTQUFJLEdBQUosSUFBSSxDQUFXO0lBQUcsQ0FBQztJQUUxQixlQUFlOztZQUMxQixNQUFNLFdBQVcsR0FBZ0IsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFFNUUsT0FBTyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RELENBQUM7S0FBQTtJQUVZLGVBQWUsQ0FDMUIsTUFBZ0M7O1lBRWhDLE1BQU0sV0FBVyxHQUFnQixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUU1RSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2RCxDQUFDO0tBQUE7SUFFWSxjQUFjLENBQUMsS0FBSzs7WUFDL0IsTUFBTSxXQUFXLEdBQWdCLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBRTVFLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUU7Z0JBQ2hELFlBQVksRUFBRSxLQUFLO2FBQ3BCLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVZLFVBQVU7O1lBQ3JCLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM3RCxDQUFDO0tBQUE7SUFFWSxhQUFhLENBQUMsZ0JBQXdCOztZQUNqRCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQzlDLGNBQWMsRUFDZCxnQkFBZ0IsQ0FDakIsQ0FBQztRQUNKLENBQUM7S0FBQTtJQUVZLGdCQUFnQjs7WUFDM0IsTUFBTSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO2FBQzVCLENBQUMsQ0FBQztZQUVILE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFcEQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDeEMsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDVixNQUFNLElBQUksc0JBQXNCLENBQUMsZ0NBQWdDLENBQUMsQ0FBQzthQUNwRTtZQUVELE9BQU87Z0JBQ0wsSUFBSTtnQkFDSixPQUFPLEVBQUUsa0JBQWtCLEtBQUssV0FBVyxJQUFJLG1CQUFtQjthQUNuRSxDQUFDO1FBQ0osQ0FBQztLQUFBO0lBRVksbUJBQW1CLENBQUMsUUFBZ0I7O1lBQy9DLE1BQU0sV0FBVyxHQUFnQixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUU1RSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN6RCxDQUFDO0tBQUE7Ozs7WUE5REYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFMUSxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29nbml0b1VzZXIgfSBmcm9tICdAYXdzLWFtcGxpZnkvYXV0aCc7XG5pbXBvcnQgeyBBdXRoQ2xhc3MgfSBmcm9tICdAYXdzLWFtcGxpZnkvYXV0aC9saWItZXNtL0F1dGgnO1xuaW1wb3J0IHsgTHJCYWRBcmd1bWVudEV4Y2VwdGlvbiB9IGZyb20gJy4uL19jb21tb24vZXhjZXB0aW9ucyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUd29GYWN0b3JTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoOiBBdXRoQ2xhc3MpIHt9XG5cbiAgcHVibGljIGFzeW5jIGdldFByZWZlcnJlZE1GQSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGNvZ25pdG9Vc2VyOiBDb2duaXRvVXNlciA9IGF3YWl0IHRoaXMuYXV0aC5jdXJyZW50QXV0aGVudGljYXRlZFVzZXIoKTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmF1dGguZ2V0UHJlZmVycmVkTUZBKGNvZ25pdG9Vc2VyKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXRQcmVmZXJyZWRNRkEoXG4gICAgbWV0aG9kOiAnVE9UUCcgfCAnU01TJyB8ICdOT01GQSdcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY29nbml0b1VzZXI6IENvZ25pdG9Vc2VyID0gYXdhaXQgdGhpcy5hdXRoLmN1cnJlbnRBdXRoZW50aWNhdGVkVXNlcigpO1xuXG4gICAgYXdhaXQgdGhpcy5hdXRoLnNldFByZWZlcnJlZE1GQShjb2duaXRvVXNlciwgbWV0aG9kKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXRQaG9uZU51bWJlcihwaG9uZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvZ25pdG9Vc2VyOiBDb2duaXRvVXNlciA9IGF3YWl0IHRoaXMuYXV0aC5jdXJyZW50QXV0aGVudGljYXRlZFVzZXIoKTtcblxuICAgIGF3YWl0IHRoaXMuYXV0aC51cGRhdGVVc2VyQXR0cmlidXRlcyhjb2duaXRvVXNlciwge1xuICAgICAgcGhvbmVfbnVtYmVyOiBwaG9uZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRTTVNDb2RlKCkge1xuICAgIGF3YWl0IHRoaXMuYXV0aC52ZXJpZnlDdXJyZW50VXNlckF0dHJpYnV0ZSgncGhvbmVfbnVtYmVyJyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdmVyaWZ5U01TQ29kZSh2ZXJpZmljYXRpb25Db2RlOiBzdHJpbmcpIHtcbiAgICBhd2FpdCB0aGlzLmF1dGgudmVyaWZ5Q3VycmVudFVzZXJBdHRyaWJ1dGVTdWJtaXQoXG4gICAgICAncGhvbmVfbnVtYmVyJyxcbiAgICAgIHZlcmlmaWNhdGlvbkNvZGVcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFNvZnR3YXJlVG9rZW4oKTogUHJvbWlzZTx7IGNvZGU6IHN0cmluZzsgY29kZVVyaTogc3RyaW5nIH0+IHtcbiAgICBjb25zdCBbY29nbml0b1VzZXIsIHVzZXJJbmZvXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIHRoaXMuYXV0aC5jdXJyZW50QXV0aGVudGljYXRlZFVzZXIoKSxcbiAgICAgIHRoaXMuYXV0aC5jdXJyZW50VXNlckluZm8oKSxcbiAgICBdKTtcblxuICAgIGNvbnN0IGNvZGUgPSBhd2FpdCB0aGlzLmF1dGguc2V0dXBUT1RQKGNvZ25pdG9Vc2VyKTtcblxuICAgIGNvbnN0IGVtYWlsID0gdXNlckluZm8uYXR0cmlidXRlcy5lbWFpbDtcbiAgICBpZiAoIWVtYWlsKSB7XG4gICAgICB0aHJvdyBuZXcgTHJCYWRBcmd1bWVudEV4Y2VwdGlvbignTm8gZW1haWwgYXNzb2NpYXRlZCB3aXRoIHVzZXIuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvZGUsXG4gICAgICBjb2RlVXJpOiBgb3RwYXV0aDovL3RvdHAvJHtlbWFpbH0/c2VjcmV0PSR7Y29kZX0maXNzdWVyPUxpZmVSZWFkeWAsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB2ZXJpZnlTb2Z0d2FyZVRva2VuKHRvdHBDb2RlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb2duaXRvVXNlcjogQ29nbml0b1VzZXIgPSBhd2FpdCB0aGlzLmF1dGguY3VycmVudEF1dGhlbnRpY2F0ZWRVc2VyKCk7XG5cbiAgICBhd2FpdCB0aGlzLmF1dGgudmVyaWZ5VG90cFRva2VuKGNvZ25pdG9Vc2VyLCB0b3RwQ29kZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import gql from 'graphql-tag';
|
|
2
|
+
export const UserQuery = gql `
|
|
3
|
+
query UserQuery($email: LrEmail, $username: String) {
|
|
4
|
+
user(email: $email, username: $username) {
|
|
5
|
+
id
|
|
6
|
+
username
|
|
7
|
+
haveTp
|
|
8
|
+
isCurrentUser
|
|
9
|
+
contactCards {
|
|
10
|
+
edges {
|
|
11
|
+
node {
|
|
12
|
+
publicData
|
|
13
|
+
publicSearchable
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
currentUserKey {
|
|
18
|
+
sigPxk {
|
|
19
|
+
id
|
|
20
|
+
pbk
|
|
21
|
+
}
|
|
22
|
+
pxk {
|
|
23
|
+
id
|
|
24
|
+
pbk
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
`;
|
|
30
|
+
export const RequestUserDeleteMutation = gql `
|
|
31
|
+
mutation RequestUserDelete($input: RequestUserDeleteInput!) {
|
|
32
|
+
requestUserDelete(input: $input) {
|
|
33
|
+
userDelete {
|
|
34
|
+
state
|
|
35
|
+
created
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
`;
|
|
40
|
+
export const CancelUserDeleteMutation = gql `
|
|
41
|
+
mutation CancelUserDelete($input: CancelUserDeleteInput!) {
|
|
42
|
+
cancelUserDelete(input: $input) {
|
|
43
|
+
id
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
`;
|
|
47
|
+
export const LoginHistoryQuery = gql `
|
|
48
|
+
query LoginHistory($first: Int, $after: String) {
|
|
49
|
+
loginHistory(first: $first, after: $after) {
|
|
50
|
+
pageInfo {
|
|
51
|
+
hasNextPage
|
|
52
|
+
hasPreviousPage
|
|
53
|
+
startCursor
|
|
54
|
+
endCursor
|
|
55
|
+
}
|
|
56
|
+
events
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
`;
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5ncWwuanMiLCJzb3VyY2VSb290IjoiL29wdC9hdGxhc3NpYW4vcGlwZWxpbmVzL2FnZW50L2J1aWxkL3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL3VzZXIvdXNlci5ncWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxHQUFHLE1BQU0sYUFBYSxDQUFDO0FBUTlCLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTJCM0IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7O0NBUzNDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLENBQUE7Ozs7OztDQU0xQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Q0FZbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBncWwgZnJvbSAnZ3JhcGhxbC10YWcnO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4vdXNlci50eXBlcyc7XG5pbXBvcnQgeyBIYXNLZXlHcmFwaCB9IGZyb20gJy4uL2tleS9rZXkudHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJRdWVyeVR5cGUgZXh0ZW5kcyBIYXNLZXlHcmFwaCB7XG4gIHVzZXI6IFVzZXI7XG59XG5cbmV4cG9ydCBjb25zdCBVc2VyUXVlcnkgPSBncWxgXG4gIHF1ZXJ5IFVzZXJRdWVyeSgkZW1haWw6IExyRW1haWwsICR1c2VybmFtZTogU3RyaW5nKSB7XG4gICAgdXNlcihlbWFpbDogJGVtYWlsLCB1c2VybmFtZTogJHVzZXJuYW1lKSB7XG4gICAgICBpZFxuICAgICAgdXNlcm5hbWVcbiAgICAgIGhhdmVUcFxuICAgICAgaXNDdXJyZW50VXNlclxuICAgICAgY29udGFjdENhcmRzIHtcbiAgICAgICAgZWRnZXMge1xuICAgICAgICAgIG5vZGUge1xuICAgICAgICAgICAgcHVibGljRGF0YVxuICAgICAgICAgICAgcHVibGljU2VhcmNoYWJsZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY3VycmVudFVzZXJLZXkge1xuICAgICAgICBzaWdQeGsge1xuICAgICAgICAgIGlkXG4gICAgICAgICAgcGJrXG4gICAgICAgIH1cbiAgICAgICAgcHhrIHtcbiAgICAgICAgICBpZFxuICAgICAgICAgIHBia1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgUmVxdWVzdFVzZXJEZWxldGVNdXRhdGlvbiA9IGdxbGBcbiAgbXV0YXRpb24gUmVxdWVzdFVzZXJEZWxldGUoJGlucHV0OiBSZXF1ZXN0VXNlckRlbGV0ZUlucHV0ISkge1xuICAgIHJlcXVlc3RVc2VyRGVsZXRlKGlucHV0OiAkaW5wdXQpIHtcbiAgICAgIHVzZXJEZWxldGUge1xuICAgICAgICBzdGF0ZVxuICAgICAgICBjcmVhdGVkXG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgQ2FuY2VsVXNlckRlbGV0ZU11dGF0aW9uID0gZ3FsYFxuICBtdXRhdGlvbiBDYW5jZWxVc2VyRGVsZXRlKCRpbnB1dDogQ2FuY2VsVXNlckRlbGV0ZUlucHV0ISkge1xuICAgIGNhbmNlbFVzZXJEZWxldGUoaW5wdXQ6ICRpbnB1dCkge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBMb2dpbkhpc3RvcnlRdWVyeSA9IGdxbGBcbiAgcXVlcnkgTG9naW5IaXN0b3J5KCRmaXJzdDogSW50LCAkYWZ0ZXI6IFN0cmluZykge1xuICAgIGxvZ2luSGlzdG9yeShmaXJzdDogJGZpcnN0LCBhZnRlcjogJGFmdGVyKSB7XG4gICAgICBwYWdlSW5mbyB7XG4gICAgICAgIGhhc05leHRQYWdlXG4gICAgICAgIGhhc1ByZXZpb3VzUGFnZVxuICAgICAgICBzdGFydEN1cnNvclxuICAgICAgICBlbmRDdXJzb3JcbiAgICAgIH1cbiAgICAgIGV2ZW50c1xuICAgIH1cbiAgfVxuYDtcbiJdfQ==
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { UserQuery, RequestUserDeleteMutation, CancelUserDeleteMutation, LoginHistoryQuery, } from './user.gql';
|
|
4
|
+
import { LrApolloService } from '../api/lr-apollo.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../api/lr-apollo.service";
|
|
7
|
+
export class UserService {
|
|
8
|
+
constructor(lrApollo) {
|
|
9
|
+
this.lrApollo = lrApollo;
|
|
10
|
+
}
|
|
11
|
+
getUserByEmail(email) {
|
|
12
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
13
|
+
return this.getUser({ email });
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
getUserByUsername(username) {
|
|
17
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
return this.getUser({ username });
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
getUser({ email, username }) {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
const { user } = yield this.lrApollo.query({
|
|
24
|
+
query: UserQuery,
|
|
25
|
+
variables: {
|
|
26
|
+
email,
|
|
27
|
+
username,
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
return user;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
requestUserDelete() {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
const res = yield this.lrApollo.mutate({
|
|
36
|
+
mutation: RequestUserDeleteMutation,
|
|
37
|
+
variables: {
|
|
38
|
+
input: {},
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
return res.requestUserDelete.userDelete;
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
cancelUserDelete() {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
const res = yield this.lrApollo.mutate({
|
|
47
|
+
mutation: CancelUserDeleteMutation,
|
|
48
|
+
variables: {
|
|
49
|
+
input: {},
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
return res.cancelUserDelete.id;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
loginHistory(first = null, after = null) {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
// first: return first n entries
|
|
58
|
+
// after: pass in the pageInfo.endCursor to paginate
|
|
59
|
+
const res = yield this.lrApollo.query({
|
|
60
|
+
query: LoginHistoryQuery,
|
|
61
|
+
variables: {
|
|
62
|
+
first,
|
|
63
|
+
after,
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
return res.loginHistory;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
UserService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserService_Factory() { return new UserService(i0.ɵɵinject(i1.LrApolloService)); }, token: UserService, providedIn: "root" });
|
|
71
|
+
UserService.decorators = [
|
|
72
|
+
{ type: Injectable, args: [{
|
|
73
|
+
providedIn: 'root',
|
|
74
|
+
},] }
|
|
75
|
+
];
|
|
76
|
+
UserService.ctorParameters = () => [
|
|
77
|
+
{ type: LrApolloService }
|
|
78
|
+
];
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9vcHQvYXRsYXNzaWFuL3BpcGVsaW5lcy9hZ2VudC9idWlsZC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi91c2VyL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQ0wsU0FBUyxFQUVULHlCQUF5QixFQUN6Qix3QkFBd0IsRUFDeEIsaUJBQWlCLEdBQ2xCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBTTNELE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFlBQW9CLFFBQXlCO1FBQXpCLGFBQVEsR0FBUixRQUFRLENBQWlCO0lBQUcsQ0FBQztJQUUzQyxjQUFjLENBQUMsS0FBYTs7WUFDaEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNqQyxDQUFDO0tBQUE7SUFFSyxpQkFBaUIsQ0FBQyxRQUFnQjs7WUFDdEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNwQyxDQUFDO0tBQUE7SUFFSyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFnQjs7WUFDN0MsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQWdCO2dCQUN4RCxLQUFLLEVBQUUsU0FBUztnQkFDaEIsU0FBUyxFQUFFO29CQUNULEtBQUs7b0JBQ0wsUUFBUTtpQkFDVDthQUNGLENBQUMsQ0FBQztZQUNILE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztLQUFBO0lBRUssaUJBQWlCOztZQUNyQixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUE2QjtnQkFDakUsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRSxFQUFFO2lCQUNWO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsT0FBTyxHQUFHLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDO1FBQzFDLENBQUM7S0FBQTtJQUVLLGdCQUFnQjs7WUFDcEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBNEI7Z0JBQ2hFLFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLFNBQVMsRUFBRTtvQkFDVCxLQUFLLEVBQUUsRUFBRTtpQkFDVjthQUNGLENBQUMsQ0FBQztZQUVILE9BQU8sR0FBRyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUNqQyxDQUFDO0tBQUE7SUFFSyxZQUFZLENBQUMsUUFBZ0IsSUFBSSxFQUFFLFFBQWdCLElBQUk7O1lBQzNELGdDQUFnQztZQUNoQyxvREFBb0Q7WUFDcEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBd0I7Z0JBQzNELEtBQUssRUFBRSxpQkFBaUI7Z0JBQ3hCLFNBQVMsRUFBRTtvQkFDVCxLQUFLO29CQUNMLEtBQUs7aUJBQ047YUFDRixDQUFDLENBQUM7WUFFSCxPQUFPLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDMUIsQ0FBQztLQUFBOzs7O1lBM0RGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBTFEsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVzZXIsIEdldFVzZXJJbnB1dCB9IGZyb20gJy4vdXNlci50eXBlcyc7XG5pbXBvcnQge1xuICBVc2VyUXVlcnksXG4gIFVzZXJRdWVyeVR5cGUsXG4gIFJlcXVlc3RVc2VyRGVsZXRlTXV0YXRpb24sXG4gIENhbmNlbFVzZXJEZWxldGVNdXRhdGlvbixcbiAgTG9naW5IaXN0b3J5UXVlcnksXG59IGZyb20gJy4vdXNlci5ncWwnO1xuaW1wb3J0IHsgTHJBcG9sbG9TZXJ2aWNlIH0gZnJvbSAnLi4vYXBpL2xyLWFwb2xsby5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJEZWxldGVOb2RlIH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsckFwb2xsbzogTHJBcG9sbG9TZXJ2aWNlKSB7fVxuXG4gIGFzeW5jIGdldFVzZXJCeUVtYWlsKGVtYWlsOiBzdHJpbmcpOiBQcm9taXNlPFVzZXI+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRVc2VyKHsgZW1haWwgfSk7XG4gIH1cblxuICBhc3luYyBnZXRVc2VyQnlVc2VybmFtZSh1c2VybmFtZTogc3RyaW5nKTogUHJvbWlzZTxVc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VXNlcih7IHVzZXJuYW1lIH0pO1xuICB9XG5cbiAgYXN5bmMgZ2V0VXNlcih7IGVtYWlsLCB1c2VybmFtZSB9OiBHZXRVc2VySW5wdXQpOiBQcm9taXNlPFVzZXI+IHtcbiAgICBjb25zdCB7IHVzZXIgfSA9IGF3YWl0IHRoaXMubHJBcG9sbG8ucXVlcnk8VXNlclF1ZXJ5VHlwZT4oe1xuICAgICAgcXVlcnk6IFVzZXJRdWVyeSxcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBlbWFpbCxcbiAgICAgICAgdXNlcm5hbWUsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiB1c2VyO1xuICB9XG5cbiAgYXN5bmMgcmVxdWVzdFVzZXJEZWxldGUoKTogUHJvbWlzZTxVc2VyRGVsZXRlTm9kZT4ge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlPHsgcmVxdWVzdFVzZXJEZWxldGU6IGFueSB9Pih7XG4gICAgICBtdXRhdGlvbjogUmVxdWVzdFVzZXJEZWxldGVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge30sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlcy5yZXF1ZXN0VXNlckRlbGV0ZS51c2VyRGVsZXRlO1xuICB9XG5cbiAgYXN5bmMgY2FuY2VsVXNlckRlbGV0ZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlPHsgY2FuY2VsVXNlckRlbGV0ZTogYW55IH0+KHtcbiAgICAgIG11dGF0aW9uOiBDYW5jZWxVc2VyRGVsZXRlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHt9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiByZXMuY2FuY2VsVXNlckRlbGV0ZS5pZDtcbiAgfVxuXG4gIGFzeW5jIGxvZ2luSGlzdG9yeShmaXJzdDogbnVtYmVyID0gbnVsbCwgYWZ0ZXI6IHN0cmluZyA9IG51bGwpOiBQcm9taXNlPGFueT4ge1xuICAgIC8vIGZpcnN0OiByZXR1cm4gZmlyc3QgbiBlbnRyaWVzXG4gICAgLy8gYWZ0ZXI6IHBhc3MgaW4gdGhlIHBhZ2VJbmZvLmVuZEN1cnNvciB0byBwYWdpbmF0ZVxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMubHJBcG9sbG8ucXVlcnk8eyBsb2dpbkhpc3Rvcnk6IGFueSB9Pih7XG4gICAgICBxdWVyeTogTG9naW5IaXN0b3J5UXVlcnksXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgZmlyc3QsXG4gICAgICAgIGFmdGVyLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiByZXMubG9naW5IaXN0b3J5O1xuICB9XG59XG4iXX0=
|