@lifeready/core 1.0.21 → 1.0.23
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 +10612 -10527
- package/bundles/lifeready-core.umd.js.map +1 -1
- package/bundles/lifeready-core.umd.min.js +1 -15
- package/bundles/lifeready-core.umd.min.js.map +1 -1
- package/esm2015/lib/_common/ast.js +2 -1
- package/esm2015/lib/_common/deferred-promise.js +1 -1
- package/esm2015/lib/_common/exceptions.js +1 -1
- package/esm2015/lib/_common/queries.gql.js +1 -1
- package/esm2015/lib/_common/run-outside-angular.js +3 -2
- package/esm2015/lib/_common/types.js +2 -1
- package/esm2015/lib/_common/utils.js +2 -1
- package/esm2015/lib/api/lr-apollo.service.js +4 -3
- package/esm2015/lib/api/lr-graphql/index.js +1 -1
- package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +9 -8
- package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +5 -6
- package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +1 -1
- package/esm2015/lib/api/lr-graphql/lr-mutation.js +3 -3
- package/esm2015/lib/api/lr-graphql/lr.service.js +1 -1
- package/esm2015/lib/api/query-processor/common-processors.service.js +4 -3
- package/esm2015/lib/api/query-processor/index.js +1 -1
- package/esm2015/lib/api/query-processor/query-processor.service.js +5 -4
- package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +8 -7
- package/esm2015/lib/api/types/graphql.types.js +2 -1
- package/esm2015/lib/api/types/index.js +1 -1
- package/esm2015/lib/api/types/lr-graphql.types.js +1 -1
- package/esm2015/lib/auth/auth.config.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 +36 -32
- package/esm2015/lib/category/category-meta.service.js +1 -1
- package/esm2015/lib/category/category.gql.js +3 -2
- package/esm2015/lib/category/category.service.js +9 -8
- package/esm2015/lib/category/category.types.js +1 -1
- package/esm2015/lib/contact-card/contact-card.gql.js +79 -0
- package/esm2015/lib/contact-card/contact-card.service.js +156 -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 +190 -0
- package/esm2015/lib/file-upload/file-upload.service.js +74 -0
- package/esm2015/lib/file-upload/file-upload.types.js +2 -0
- package/esm2015/lib/idle/idle.service.js +168 -0
- package/esm2015/lib/idle/idle.types.js +7 -0
- package/esm2015/lib/item2/item2.gql.js +127 -0
- package/esm2015/lib/item2/item2.gql.private.js +23 -0
- package/esm2015/lib/item2/item2.service.js +519 -0
- package/esm2015/lib/item2/item2.types.js +2 -0
- package/esm2015/lib/key/key-factory.service.js +237 -0
- package/esm2015/lib/key/key-graph.service.js +300 -0
- package/esm2015/lib/key/key-meta.service.js +201 -0
- package/esm2015/lib/{cryptography → key}/key.service.js +4 -4
- 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 +441 -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 +357 -0
- package/esm2015/lib/life-ready.config.js +2 -1
- 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 +118 -0
- package/esm2015/lib/message/message.types.js +2 -0
- package/esm2015/lib/notification/notification.gql.js +1 -1
- package/esm2015/lib/notification/notification.service.js +2 -2
- package/esm2015/lib/password/password.gql.js +28 -0
- package/esm2015/lib/password/password.service.js +316 -0
- package/esm2015/lib/persist/persist.service.js +181 -0
- package/esm2015/lib/plan/plan.gql.js +1 -1
- package/esm2015/lib/plan/plan.service.js +3 -2
- package/esm2015/lib/plan/plan.types.js +1 -1
- package/esm2015/lib/profile/profile-details.service.js +215 -0
- package/esm2015/lib/profile/profile.gql.js +98 -0
- package/esm2015/lib/profile/profile.service.js +170 -0
- package/esm2015/lib/profile/profile.types.js +34 -0
- package/esm2015/lib/record/record-attachment.service.js +16 -15
- package/esm2015/lib/record/record.gql.js +1 -1
- package/esm2015/lib/record/record.service.js +8 -8
- package/esm2015/lib/record/record.types.js +1 -1
- package/esm2015/lib/record-type/record-type.service.js +1 -1
- package/esm2015/lib/record-type/record-type.types.js +1 -1
- package/esm2015/lib/register/register.service.js +173 -0
- package/esm2015/lib/scenario/scenario.constants.js +1 -1
- package/esm2015/lib/scenario/scenario.controller.js +2 -2
- package/esm2015/lib/scenario/scenario.gql.js +1 -1
- package/esm2015/lib/scenario/scenario.private.gql.js +198 -0
- package/esm2015/lib/scenario/scenario.service.js +19 -17
- package/esm2015/lib/scenario/scenario.types.js +2 -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 +167 -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 +2 -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 +118 -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 +2 -0
- package/esm2015/lib/trusted-party/trusted-party.gql.js +148 -0
- package/esm2015/lib/trusted-party/trusted-party.service.js +327 -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 +2 -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 +80 -0
- package/esm2015/lib/user/user.types.js +2 -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 +8764 -8737
- package/fesm2015/lifeready-core.js.map +1 -1
- package/lib/_common/types.d.ts +3 -1
- package/lib/_common/utils.d.ts +2 -2
- package/lib/api/lr-apollo.service.d.ts +2 -2
- package/lib/api/lr-graphql/lr-graphql.service.d.ts +26 -8
- package/lib/api/lr-graphql/lr-merged-mutation.d.ts +22 -4
- package/lib/api/lr-graphql/lr-mutation.d.ts +1 -2
- 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 +2 -2
- package/lib/api/types/lr-graphql.types.d.ts +14 -3
- package/lib/auth/auth.gql.d.ts +0 -3
- package/lib/auth/auth.types.d.ts +5 -5
- package/lib/auth/life-ready-auth.service.d.ts +13 -13
- package/lib/category/category.gql.d.ts +1 -1
- package/lib/category/category.service.d.ts +3 -3
- 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/contact-card/contact-card2.service.d.ts +64 -0
- package/lib/{cryptography → encryption}/encryption.service.d.ts +10 -9
- package/lib/{api/file.service.d.ts → file-upload/file-upload.service.d.ts} +5 -8
- package/lib/file-upload/file-upload.types.d.ts +5 -0
- package/lib/{auth → idle}/idle.service.d.ts +6 -6
- package/lib/{items2 → item2}/item2.gql.d.ts +16 -16
- package/lib/{items2 → item2}/item2.service.d.ts +34 -35
- package/lib/{cryptography → key}/key-factory.service.d.ts +4 -3
- package/lib/{cryptography → key}/key-graph.service.d.ts +6 -6
- 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} +13 -17
- 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 +82 -29
- package/lib/{auth → lbop}/lbop.service.d.ts +7 -7
- package/lib/life-ready.config.d.ts +1 -1
- 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 +36 -0
- package/lib/message/message.types.d.ts +12 -0
- package/lib/notification/notification.service.d.ts +3 -2
- package/lib/password/password.gql.d.ts +3 -0
- package/lib/{auth → password}/password.service.d.ts +9 -9
- package/lib/{api → persist}/persist.service.d.ts +3 -3
- package/lib/plan/plan.service.d.ts +3 -2
- package/lib/plan/plan.types.d.ts +2 -1
- 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 +3 -2
- package/lib/record/record-attachment.service.d.ts +6 -6
- package/lib/record/record.service.d.ts +3 -3
- 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 +105 -5
- 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/{cryptography → slip39}/slip39.service.d.ts +0 -1
- package/lib/{trusted-parties → tp-assembly}/tp-assembly.d.ts +7 -7
- package/lib/{trusted-parties → tp-assembly}/tp-assembly.types.d.ts +3 -3
- package/lib/{trusted-parties → tp-password-reset}/tp-password-reset-request.service.d.ts +5 -9
- 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.service.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 +2 -2
- 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/idle.service.js +0 -168
- package/esm2015/lib/auth/idle.types.js +0 -7
- 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-graph.service.js +0 -299
- package/esm2015/lib/cryptography/key-meta.service.js +0 -200
- package/esm2015/lib/cryptography/slip39.service.js +0 -169
- package/esm2015/lib/cryptography/web-crypto.service.js +0 -29
- package/esm2015/lib/items2/item2.gql.js +0 -127
- package/esm2015/lib/items2/item2.gql.private.js +0 -23
- package/esm2015/lib/items2/item2.service.js +0 -516
- package/esm2015/lib/items2/item2.types.js +0 -1
- package/esm2015/lib/scenario/scenario.gql.private.js +0 -198
- 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/contact-card2.service.d.ts +0 -50
- 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/{items2 → item2}/item2.gql.private.d.ts +0 -0
- /package/lib/{items2 → item2}/item2.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/{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/{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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi90cnVzdGVkLXBhcnR5L3RydXN0ZWQtcGFydHkudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHL0QsTUFBTSxPQUFPLGdCQUFnQjtDQVE1QjtBQUVELE1BQU0sQ0FBTixJQUFZLG9CQUdYO0FBSEQsV0FBWSxvQkFBb0I7SUFDOUIsMkNBQW1CLENBQUE7SUFDbkIsNkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUhXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFHL0I7QUFFRCxNQUFNLENBQU4sSUFBWSxnQkFHWDtBQUhELFdBQVksZ0JBQWdCO0lBQzFCLGlDQUFhLENBQUE7SUFDYixpREFBNkIsQ0FBQTtBQUMvQixDQUFDLEVBSFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUczQjtBQUVELE1BQU0sQ0FBTixJQUFZLHdCQUtYO0FBTEQsV0FBWSx3QkFBd0I7SUFDbEMsbURBQXVCLENBQUE7SUFDdkIsbURBQXVCLENBQUE7SUFDdkIsaURBQXFCLENBQUE7SUFDckIsbURBQXVCLENBQUE7QUFDekIsQ0FBQyxFQUxXLHdCQUF3QixLQUF4Qix3QkFBd0IsUUFLbkM7QUFFRCxNQUFNLE9BQU8sY0FBYztDQUkxQjtBQUVELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxtQkFBbUI7Q0FJakU7QUFFRCxNQUFNLE9BQU8sa0JBQWtCO0NBb0I5QjtBQUVELE1BQU0sT0FBTyxVQUFVO0NBRXRCO0FBRUQsTUFBTSxPQUFPLGtCQUFrQjtDQUU5QjtBQUVELE1BQU0sT0FBTyxZQUFZO0NBWXhCO0FBRUQsTUFBTSxPQUFPLGlCQUFpQjtDQU03QjtBQUVELE1BQU0sT0FBTyxrQkFBa0I7Q0FJOUI7QUFFRCxNQUFNLE9BQU8sd0JBQXdCO0NBS3BDO0FBRUQsTUFBTSxPQUFPLHlCQUF5QjtDQUlyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERlY3J5cHRlZE90ayxcbiAgS2V5RXhjaGFuZ2VNZXNzYWdlLFxuICBQcmVwYXJlZFBlcm1pc3Npb25zLFxuICBVc2VyU2hhcmVkS2V5LFxufSBmcm9tICcuLi9rZXktZXhjaGFuZ2Uva2V5LWV4Y2hhbmdlLnR5cGVzJztcbmltcG9ydCB7IFRydXN0ZWRQYXJ0eURldGFpbHMgfSBmcm9tICcuLi9wcm9maWxlL3Byb2ZpbGUudHlwZXMnO1xuaW1wb3J0IHsgQWNjZXNzTGV2ZWwgfSBmcm9tICcuLy4uL2NhdGVnb3J5L2NhdGVnb3J5LnR5cGVzJztcblxuZXhwb3J0IGNsYXNzIFRydXN0ZWRQYXJ0eVJvbGUge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHJvbGVUeXBlOiBUcnVzdGVkUGFydHlSb2xlVHlwZTtcbiAgY2F0ZWdvcmllczoge1xuICAgIGNhdGVnb3J5OiBzdHJpbmdbXTtcbiAgICBhY2Nlc3NMZXZlbDogQWNjZXNzTGV2ZWw7XG4gIH1bXTtcbn1cblxuZXhwb3J0IGVudW0gVHJ1c3RlZFBhcnR5Um9sZVR5cGUge1xuICBHZW5lcmFsID0gJ2dlbmVyYWwnLFxuICBTY2VuYXJpbyA9ICdzY2VuYXJpbycsXG59XG5cbmV4cG9ydCBlbnVtIFRydXN0ZWRQYXJ0eVR5cGUge1xuICBVc2VyID0gJ3VzZXInLFxuICBPcmdhbmlzYXRpb24gPSAnb3JnYW5pc2F0aW9uJyxcbn1cblxuZXhwb3J0IGVudW0gVHJ1c3RlZFBhcnR5SW52aXRlU3RhdHVzIHtcbiAgSW52aXRlZCA9ICdJTl9QUk9HUkVTUycsXG4gIENhbmNlbGxlZCA9ICdDQU5DRUxMRUQnLFxuICBEZWNsaW5lZCA9ICdERUNMSU5FRCcsXG4gIENvbXBsZXRlZCA9ICdDT01QTEVURUQnLFxufVxuXG5leHBvcnQgY2xhc3MgVHJ1c3RlZFBhcnRpZXMge1xuICBwYXJ0aWVzOiBUcnVzdGVkUGFydHlbXTtcbiAgaW52aXRlczogVHJ1c3RlZFBhcnR5SW52aXRlW107XG4gIHNlbnRJbnZpdGVzOiBUcnVzdGVkUGFydHlJbnZpdGVbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFNoYXJlZFRydXN0ZWRQYXJ0eURldGFpbHMgZXh0ZW5kcyBUcnVzdGVkUGFydHlEZXRhaWxzIHtcbiAgaWQ6IHN0cmluZztcbiAgb3duZWRLZXlJZDogc3RyaW5nO1xuICBzaGFyZWRLZXlJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgVHJ1c3RlZFBhcnR5SW52aXRlIHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogVHJ1c3RlZFBhcnR5VHlwZTtcbiAgc3RhdHVzOiBUcnVzdGVkUGFydHlJbnZpdGVTdGF0dXM7XG4gIHRva2VuOiBzdHJpbmc7XG4gIHRva2VuRXhwaXJ5OiBzdHJpbmcgfCBEYXRlO1xuICBpc0V4cGlyZWQ6IGJvb2xlYW47XG4gIGlzU2VuZGVyOiBib29sZWFuO1xuICBhY3Rpb25SZXF1aXJlZDogYm9vbGVhbjtcbiAgbmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuXG4gIGRldGFpbHM/OiBUcnVzdGVkUGFydHlEZXRhaWxzO1xuICBtZXNzYWdlPzogS2V5RXhjaGFuZ2VNZXNzYWdlO1xuICBteVNoYXJlZERldGFpbHM/OiBUcnVzdGVkUGFydHlEZXRhaWxzO1xuICBteVNoYXJlZE1lc3NhZ2U/OiBLZXlFeGNoYW5nZU1lc3NhZ2U7XG5cbiAgcm9vdEtleUNpcGhlcjogc3RyaW5nO1xuICBwYmtDaXBoZXI6IHN0cmluZztcbiAgZGVjcnlwdGVkT3RrOiBEZWNyeXB0ZWRPdGs7XG59XG5cbmV4cG9ydCBjbGFzcyBUUEZlYXR1cmVzIHtcbiAgc2hhcmVkVmF1bHQ6IFNoYXJlZFZhdWx0RmVhdHVyZTtcbn1cblxuZXhwb3J0IGNsYXNzIFNoYXJlZFZhdWx0RmVhdHVyZSB7XG4gIGhhc0FjY2VzczogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFRydXN0ZWRQYXJ0eSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6IFRydXN0ZWRQYXJ0eVR5cGU7XG4gIG5hbWU6IHN0cmluZztcblxuICBoYXNTY2VuYXJpb3M6IGJvb2xlYW47XG4gIGhhc1NoYXJlZFZhdWx0OiBib29sZWFuO1xuICBkZXRhaWxzOiBUcnVzdGVkUGFydHlEZXRhaWxzO1xuICBteVNoYXJlZERldGFpbHM6IFNoYXJlZFRydXN0ZWRQYXJ0eURldGFpbHM7XG4gIHVzZXJTaGFyZWRLZXk6IFVzZXJTaGFyZWRLZXk7XG4gIHVzZXJuYW1lOiBzdHJpbmc7XG4gIGZlYXR1cmVzOiBUUEZlYXR1cmVzO1xufVxuXG5leHBvcnQgY2xhc3MgRm91bmRUcnVzdGVkUGFydHkge1xuICBpZDogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBpc1RydXN0ZWRQYXJ0eTogYm9vbGVhbjtcbiAgaXNNZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEludml0ZVRydXN0ZWRQYXJ0eSB7XG4gIHBhcnR5OiB7IHVzZXJuYW1lPzogc3RyaW5nOyBlbWFpbD86IHN0cmluZzsgbmFtZT86IHN0cmluZzsgbWVzc2FnZT86IHN0cmluZyB9O1xuICBwZXJtaXNzaW9ucz86IFByZXBhcmVkUGVybWlzc2lvbnM7XG4gIG15U2hhcmVkRGV0YWlsczogVHJ1c3RlZFBhcnR5RGV0YWlscztcbn1cblxuZXhwb3J0IGNsYXNzIEFjY2VwdFRydXN0ZWRQYXJ0eUludml0ZSB7XG4gIGludml0ZUlkOiBzdHJpbmc7XG4gIGludml0ZVRva2VuOiBzdHJpbmc7XG4gIGRlY3J5cHRlZE90azogRGVjcnlwdGVkT3RrO1xuICBteVNoYXJlZERldGFpbHM6IFRydXN0ZWRQYXJ0eURldGFpbHM7XG59XG5cbmV4cG9ydCBjbGFzcyBDb25maXJtVHJ1c3RlZFBhcnR5SW52aXRlIHtcbiAgaW52aXRlSWQ6IHN0cmluZztcbiAgaW5pdGlhdG9yUm9vdEtleUNpcGhlcjogc3RyaW5nO1xuICBpbml0aWF0b3JPbmVUaW1lUGJrQ2lwaGVyOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eTIuZ3FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3RydXN0ZWQtcGFydHkvdHJ1c3RlZC1wYXJ0eTIuZ3FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU8xQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQWtCOzs7Ozs7Q0FNekQsQ0FBQztBQVNGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLFFBQVEsQ0FBd0I7Ozs7Ozs7O0NBUXJFLENBQUM7QUFTRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxRQUFRLENBQTBCOzs7Ozs7OztDQVF6RSxDQUFDO0FBU0YsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFtQjs7Ozs7Ozs7Q0FRM0QsQ0FBQztBQVNGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FBcUI7Ozs7Ozs7O0NBUS9ELENBQUM7QUFPRixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxRQUFRLENBQTRCOzs7OztFQUs1RSxDQUFDO0FBT0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsUUFBUSxDQUE0Qjs7Ozs7O0NBTTdFLENBQUM7QUFPRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxRQUFRLENBQTZCOzs7OztFQUs5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUQgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHsgZ3FsVHlwZWQgfSBmcm9tICcuLi9fY29tbW9uL2FzdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlVHBNdXRhdGlvbiB7XG4gIGRlbGV0ZVRwOiB7XG4gICAgaWQ6IElEO1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IERlbGV0ZVRwTXV0YXRpb24gPSBncWxUeXBlZDxEZWxldGVUcE11dGF0aW9uPmBcbm11dGF0aW9uIERlbGV0ZVRwTXV0YXRpb24oJGlucHV0OiBEZWxldGVUcElucHV0ISkge1xuICBkZWxldGVUcChpbnB1dDogJGlucHV0KSB7XG4gICAgaWRcbiAgfVxufVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZURpcmVjdG9yeU11dGF0aW9uIHtcbiAgc2hhcmVEaXJlY3Rvcnk6IHtcbiAgICB0cERpcmVjdG9yeToge1xuICAgICAgaWQ6IElEO1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgU2hhcmVEaXJlY3RvcnlNdXRhdGlvbiA9IGdxbFR5cGVkPFNoYXJlRGlyZWN0b3J5TXV0YXRpb24+YFxuICBtdXRhdGlvbiBTaGFyZURpcmVjdG9yeU11dGF0aW9uKCRpbnB1dDogU2hhcmVEaXJlY3RvcnlJbnB1dCEpIHtcbiAgICBzaGFyZURpcmVjdG9yeShpbnB1dDogJGlucHV0KSB7XG4gICAgICB0cERpcmVjdG9yeSB7XG4gICAgICAgIGlkXG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVuc2hhcmVEaXJlY3RvcnlNdXRhdGlvbiB7XG4gIHVuc2hhcmVEaXJlY3Rvcnk6IHtcbiAgICB0cERpcmVjdG9yeToge1xuICAgICAgaWQ6IElEO1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgVW5zaGFyZURpcmVjdG9yeU11dGF0aW9uID0gZ3FsVHlwZWQ8VW5zaGFyZURpcmVjdG9yeU11dGF0aW9uPmBcbiAgbXV0YXRpb24gVW5zaGFyZURpcmVjdG9yeU11dGF0aW9uKCRpbnB1dDogVW5zaGFyZURpcmVjdG9yeUlucHV0ISkge1xuICAgIHVuc2hhcmVEaXJlY3RvcnkoaW5wdXQ6ICRpbnB1dCkge1xuICAgICAgdHBEaXJlY3Rvcnkge1xuICAgICAgICBpZFxuICAgICAgfVxuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZUZpbGVNdXRhdGlvbiB7XG4gIHNoYXJlRmlsZToge1xuICAgIHRwRmlsZToge1xuICAgICAgaWQ6IElEO1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgU2hhcmVGaWxlTXV0YXRpb24gPSBncWxUeXBlZDxTaGFyZUZpbGVNdXRhdGlvbj5gXG4gIG11dGF0aW9uIFNoYXJlRmlsZU11dGF0aW9uKCRpbnB1dDogU2hhcmVGaWxlSW5wdXQhKSB7XG4gICAgc2hhcmVGaWxlKGlucHV0OiAkaW5wdXQpIHtcbiAgICAgIHRwRmlsZSB7XG4gICAgICAgIGlkXG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVuc2hhcmVGaWxlTXV0YXRpb24ge1xuICB1bnNoYXJlRmlsZToge1xuICAgIHRwRmlsZToge1xuICAgICAgaWQ6IElEO1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgVW5zaGFyZUZpbGVNdXRhdGlvbiA9IGdxbFR5cGVkPFVuc2hhcmVGaWxlTXV0YXRpb24+YFxuICBtdXRhdGlvbiBVbnNoYXJlRmlsZU11dGF0aW9uKCRpbnB1dDogVW5zaGFyZUZpbGVJbnB1dCEpIHtcbiAgICB1bnNoYXJlRmlsZShpbnB1dDogJGlucHV0KSB7XG4gICAgICB0cEZpbGUge1xuICAgICAgICBpZFxuICAgICAgfVxuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0VHBNa1Jlc2hhcmVNdXRhdGlvbiB7XG4gIHJlcXVlc3RUcE1rUmVzaGFyZToge1xuICAgIGlkOiBJRDtcbiAgfTtcbn1cbmV4cG9ydCBjb25zdCBSZXF1ZXN0VHBNa1Jlc2hhcmVNdXRhdGlvbiA9IGdxbFR5cGVkPFJlcXVlc3RUcE1rUmVzaGFyZU11dGF0aW9uPmBcbm11dGF0aW9uIFJlcXVlc3RUcE1rUmVzaGFyZU11dGF0aW9uKCRpbnB1dDogUmVxdWVzdFRwTWtSZXNoYXJlSW5wdXQhKSB7XG4gIHJlcXVlc3RUcE1rUmVzaGFyZShpbnB1dDogJGlucHV0KSB7XG4gICAgaWRcbiAgfVxufWA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uZFRwTWtSZXNoYXJlTXV0YXRpb24ge1xuICByZXNwb25kVHBNa1Jlc2hhcmU6IHtcbiAgICBpZDogSUQ7XG4gIH07XG59XG5leHBvcnQgY29uc3QgUmVzcG9uZFRwTWtSZXNoYXJlTXV0YXRpb24gPSBncWxUeXBlZDxSZXNwb25kVHBNa1Jlc2hhcmVNdXRhdGlvbj5gXG4gIG11dGF0aW9uIFJlc3BvbmRUcE1rUmVzaGFyZU11dGF0aW9uKCRpbnB1dDogUmVzcG9uZFRwTWtSZXNoYXJlSW5wdXQhKSB7XG4gICAgcmVzcG9uZFRwTWtSZXNoYXJlKGlucHV0OiAkaW5wdXQpIHtcbiAgICAgIGlkXG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZXRlVHBNa1Jlc2hhcmVNdXRhdGlvbiB7XG4gIGNvbXBsZXRlVHBNa1Jlc2hhcmU6IHtcbiAgICBpZDogSUQ7XG4gIH07XG59XG5leHBvcnQgY29uc3QgQ29tcGxldGVUcE1rUmVzaGFyZU11dGF0aW9uID0gZ3FsVHlwZWQ8Q29tcGxldGVUcE1rUmVzaGFyZU11dGF0aW9uPmBcbm11dGF0aW9uIENvbXBsZXRlVHBNa1Jlc2hhcmVNdXRhdGlvbigkaW5wdXQ6IENvbXBsZXRlVHBNa1Jlc2hhcmVJbnB1dCEpIHtcbiAgY29tcGxldGVUcE1rUmVzaGFyZShpbnB1dDogJGlucHV0KSB7XG4gICAgaWRcbiAgfVxufWA7XG4iXX0=
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eTIuZ3FsLnByaXZhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvdHJ1c3RlZC1wYXJ0eS90cnVzdGVkLXBhcnR5Mi5ncWwucHJpdmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUF1QjFDLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLFFBQVEsQ0FBNkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FzQi9FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRCB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBncWxUeXBlZCB9IGZyb20gJy4uL19jb21tb24vYXN0JztcblxuZXhwb3J0IGludGVyZmFjZSBUcEN1cnJlbnRVc2VyU2hhcmVkS2V5UXVlcnkge1xuICB0cDoge1xuICAgIGN1cnJlbnRVc2VyU2hhcmVkS2V5OiB7XG4gICAgICB1c2VyU2hhcmVkS2V5OiB7XG4gICAgICAgIHNoYXJlZEtleToge1xuICAgICAgICAgIGlkOiBJRDtcbiAgICAgICAgfTtcbiAgICAgICAgbWtTaGFyZWRLZXk6IHtcbiAgICAgICAgICBpZDogSUQ7XG4gICAgICAgIH07XG4gICAgICAgIG1rUHhrOiB7XG4gICAgICAgICAgaWQ6IElEO1xuICAgICAgICB9O1xuICAgICAgICBta1Jlc2hhcmVSZXF1ZXN0Q2lwaGVyOiBzdHJpbmc7XG4gICAgICAgIG1rUmVzaGFyZVJlcXVlc3RTZW50OiBib29sZWFuO1xuICAgICAgICBta1Jlc2hhcmVSZXNwb25zZUNpcGhlcjogc3RyaW5nO1xuICAgICAgICBta1Jlc2hhcmVSZXNwb25zZVNlbnQ6IGJvb2xlYW47XG4gICAgICB9O1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgVHBDdXJyZW50VXNlclNoYXJlZEtleVF1ZXJ5ID0gZ3FsVHlwZWQ8VHBDdXJyZW50VXNlclNoYXJlZEtleVF1ZXJ5PmBcbnF1ZXJ5IFRwQ3VycmVudFVzZXJTaGFyZWRLZXlRdWVyeSgkaWQ6IExyUmVsYXlJZElucHV0ISkge1xuICB0cChpZDogJGlkKXtcbiAgICBjdXJyZW50VXNlclNoYXJlZEtleSB7XG4gICAgICB1c2VyU2hhcmVkS2V5IHtcbiAgICAgICAgc2hhcmVkS2V5IHtcbiAgICAgICAgICBpZFxuICAgICAgICB9XG4gICAgICAgIG1rU2hhcmVkS2V5IHtcbiAgICAgICAgICBpZFxuICAgICAgICB9XG4gICAgICAgIG1rUHhrIHtcbiAgICAgICAgICBpZFxuICAgICAgICB9XG4gICAgICAgIG1rUmVzaGFyZVJlcXVlc3RDaXBoZXJcbiAgICAgICAgbWtSZXNoYXJlUmVxdWVzdFNlbnRcbiAgICAgICAgbWtSZXNoYXJlUmVzcG9uc2VDaXBoZXJcbiAgICAgICAgbWtSZXNoYXJlUmVzcG9uc2VTZW50XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5gO1xuIl19
|
|
@@ -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 '../item2/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 "../item2/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eTIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi90cnVzdGVkLXBhcnR5L3RydXN0ZWQtcGFydHkyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBQzFCLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4QixtQkFBbUIsR0FDcEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7OztJQVM5RCxvQkFBb0IsU0FBcEIsb0JBQXFCLFNBQVEsU0FBUztJQUNqRCxZQUNVLE1BQWMsRUFDZCxRQUFrQixFQUNs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QUFBOzs7WUFqUEEsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUE5QjhCLE1BQU07WUFBaEIsUUFBUTtZQU9wQixlQUFlO1lBRmYsWUFBWTtZQUdaLFVBQVU7WUFGVixpQkFBaUI7WUFGakIsaUJBQWlCOztBQTJCYixvQkFBb0I7SUFOaEMsaUJBQWlCLENBQUM7UUFDakIsVUFBVSxFQUFFLFFBQVE7S0FDckIsQ0FBQztHQUlXLG9CQUFvQixDQThPaEM7U0E5T1ksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSldLIH0gZnJvbSAnbm9kZS1qb3NlJztcbmltcG9ydCB7IExyTXV0YXRpb24sIExyU2VydmljZSB9IGZyb20gJy4uL2FwaS9sci1ncmFwaHFsJztcbmltcG9ydCB7IExyUmVsYXlJZElucHV0IH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IEVuY3J5cHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vZW5jcnlwdGlvbi9lbmNyeXB0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgSXRlbTJTZXJ2aWNlIH0gZnJvbSAnLi4vaXRlbTIvaXRlbTIuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uL2tleS9rZXktZmFjdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUdyYXBoU2VydmljZSB9IGZyb20gJy4uL2tleS9rZXktZ3JhcGguc2VydmljZSc7XG5pbXBvcnQgeyBLZXlTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleSB9IGZyb20gJy4uL2tleS9rZXkudHlwZXMnO1xuaW1wb3J0IHsgTHJCYWRTdGF0ZUV4Y2VwdGlvbiB9IGZyb20gJy4uL19jb21tb24vZXhjZXB0aW9ucyc7XG5pbXBvcnQgeyBSdW5PdXRzaWRlQW5ndWxhciB9IGZyb20gJy4uL19jb21tb24vcnVuLW91dHNpZGUtYW5ndWxhcic7XG5pbXBvcnQge1xuICBDb21wbGV0ZVRwTWtSZXNoYXJlTXV0YXRpb24sXG4gIERlbGV0ZVRwTXV0YXRpb24sXG4gIFJlcXVlc3RUcE1rUmVzaGFyZU11dGF0aW9uLFxuICBSZXNwb25kVHBNa1Jlc2hhcmVNdXRhdGlvbixcbiAgU2hhcmVEaXJlY3RvcnlNdXRhdGlvbixcbiAgU2hhcmVGaWxlTXV0YXRpb24sXG4gIFVuc2hhcmVEaXJlY3RvcnlNdXRhdGlvbixcbiAgVW5zaGFyZUZpbGVNdXRhdGlvbixcbn0gZnJvbSAnLi90cnVzdGVkLXBhcnR5Mi5ncWwnO1xuaW1wb3J0IHsgVHBDdXJyZW50VXNlclNoYXJlZEtleVF1ZXJ5IH0gZnJvbSAnLi90cnVzdGVkLXBhcnR5Mi5ncWwucHJpdmF0ZSc7XG5pbXBvcnQgeyBTaGFyZUl0ZW1PcHRpb25zLCBVbnNoYXJlSXRlbU9wdGlvbnMgfSBmcm9tICcuL3RydXN0ZWQtcGFydHkyLnR5cGVzJztcblxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcbiAgbmdab25lTmFtZTogJ25nWm9uZScsXG59KVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRydXN0ZWRQYXJ0eTJTZXJ2aWNlIGV4dGVuZHMgTHJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGtleUdyYXBoOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpdGVtMlNlcnZpY2U6IEl0ZW0yU2VydmljZSxcbiAgICBwcml2YXRlIGtleVNlcnZpY2U6IEtleVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlGYWN0b3J5OiBLZXlGYWN0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGVuY3J5cHRpb25TZXJ2aWNlOiBFbmNyeXB0aW9uU2VydmljZVxuICApIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gIH1cblxuICBkZWxldGVUcEV4ZWModHBJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5kZWxldGVUcE11dGF0aW9uKHRwSWQpKTtcbiAgfVxuXG4gIC8vIFRPRE86IGRlcHJlY2F0ZSB0aGlzXG4gIGRlbGV0ZVRwKHRwSWQ6IExyUmVsYXlJZElucHV0KSB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlVHBNdXRhdGlvbih0cElkKTtcbiAgfVxuXG4gIGRlbGV0ZVRwTXV0YXRpb24odHBJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IERlbGV0ZVRwTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBpZDogdHBJZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzaGFyZURpcmVjdG9yeShvcHRpb25zOiBTaGFyZUl0ZW1PcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hhcmVJdGVtKHsgLi4ub3B0aW9ucywgaXNEaXJlY3Rvcnk6IHRydWUgfSk7XG4gIH1cblxuICBhc3luYyBzaGFyZUZpbGUob3B0aW9uczogU2hhcmVJdGVtT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnNoYXJlSXRlbSh7IC4uLm9wdGlvbnMsIGlzRGlyZWN0b3J5OiBmYWxzZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2hhcmVJdGVtKHtcbiAgICBpdGVtSWQsXG4gICAgaXRlbUtleUlkLFxuICAgIHRwSWQsXG4gICAgdHBTaGFyZWRLZXlJZCxcbiAgICBhY2Nlc3NSb2xlLFxuICAgIGlzRGlyZWN0b3J5LFxuICB9OiBTaGFyZUl0ZW1PcHRpb25zICYge1xuICAgIGlzRGlyZWN0b3J5OiBib29sZWFuO1xuICB9KSB7XG4gICAgY29uc3QgaXRlbUtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KGl0ZW1LZXlJZCwgKCkgPT5cbiAgICAgIGlzRGlyZWN0b3J5XG4gICAgICAgID8gdGhpcy5pdGVtMlNlcnZpY2UuZ2V0RGlyZWN0b3J5S2V5SWQoaXRlbUlkKVxuICAgICAgICA6IHRoaXMuaXRlbTJTZXJ2aWNlLmdldEZpbGVLZXlJZChpdGVtSWQpXG4gICAgKTtcbiAgICBjb25zdCB3cmFwcGluZ0tleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KHRwU2hhcmVkS2V5SWQsICgpID0+XG4gICAgICB0aGlzLmdldFRwQ3VycmVudFVzZXJTaGFyZWRLZXkodHBJZCkudGhlbigocmVzKSA9PiByZXMuc2hhcmVkS2V5LmlkKVxuICAgICk7XG4gICAgY29uc3Qgd3JhcHBlZEtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGgud3JhcEtleSh3cmFwcGluZ0tleSwgaXRlbUtleS5qd2spO1xuXG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBpc0RpcmVjdG9yeSA/IFNoYXJlRGlyZWN0b3J5TXV0YXRpb24gOiBTaGFyZUZpbGVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGlkOiBpdGVtSWQsXG4gICAgICAgICAgdHBJZCxcbiAgICAgICAgICBhY2Nlc3NSb2xlLFxuICAgICAgICAgIGtleUlkOiBpdGVtS2V5LmlkLFxuICAgICAgICAgIHdyYXBwaW5nS2V5SWQ6IHdyYXBwaW5nS2V5LmlkLFxuICAgICAgICAgIHdyYXBwZWRLZXksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgdW5zaGFyZURpcmVjdG9yeShvcHRpb25zOiBVbnNoYXJlSXRlbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy51bnNoYXJlSXRlbSh7IC4uLm9wdGlvbnMsIGlzRGlyZWN0b3J5OiB0cnVlIH0pO1xuICB9XG5cbiAgYXN5bmMgdW5zaGFyZUZpbGUob3B0aW9uczogVW5zaGFyZUl0ZW1PcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMudW5zaGFyZUl0ZW0oeyAuLi5vcHRpb25zLCBpc0RpcmVjdG9yeTogZmFsc2UgfSk7XG4gIH1cblxuICBhc3luYyByZXF1ZXN0TWtSZXNoYXJlKHRwSWQ6IExyUmVsYXlJZElucHV0KSB7XG4gICAgY29uc3QgdXNlclNoYXJlZEtleSA9IGF3YWl0IHRoaXMuZ2V0VHBDdXJyZW50VXNlclNoYXJlZEtleSh0cElkKTtcblxuICAgIGlmICh1c2VyU2hhcmVkS2V5Lm1rU2hhcmVkS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgTHJCYWRTdGF0ZUV4Y2VwdGlvbignVFAgYWxyZWFkeSBoYXMgbWtTaGFyZWRLZXknKTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXN0ZXJLZXkgPSBhd2FpdCB0aGlzLmtleVNlcnZpY2UuZ2V0Q3VycmVudE1hc3RlcktleSgpO1xuICAgIGNvbnN0IHByayA9IGF3YWl0IHRoaXMua2V5RmFjdG9yeS5jcmVhdGVQa2NLZXkoKTtcbiAgICBjb25zdCBta1dyYXBwZWRNa1ByayA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgbWFzdGVyS2V5Lmp3ayxcbiAgICAgIHByay50b0pTT04odHJ1ZSlcbiAgICApO1xuXG4gICAgY29uc3Qgc2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRLZXkodXNlclNoYXJlZEtleS5zaGFyZWRLZXkuaWQpO1xuICAgIGNvbnN0IG1rUmVzaGFyZVJlcXVlc3RDaXBoZXIgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgIHNoYXJlZEtleS5qd2ssXG4gICAgICB7XG4gICAgICAgIHBiazogcHJrLnRvSlNPTigpLFxuICAgICAgfVxuICAgICk7XG5cbiAgICByZXR1cm4gYXdhaXQgbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFJlcXVlc3RUcE1rUmVzaGFyZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgdHBJZCxcbiAgICAgICAgICBtYXN0ZXJLZXlJZDogbWFzdGVyS2V5LmlkLFxuICAgICAgICAgIG1rUGJrOiBKU09OLnN0cmluZ2lmeShwcmsudG9KU09OKCkpLFxuICAgICAgICAgIG1rV3JhcHBlZE1rUHJrLFxuICAgICAgICAgIHNoYXJlZEtleUlkOiBzaGFyZWRLZXkuaWQsXG4gICAgICAgICAgbWtSZXNoYXJlUmVxdWVzdENpcGhlcixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyByZXNwb25kTWtSZXNoYXJlKHRwSWQ6IExyUmVsYXlJZElucHV0KSB7XG4gICAgY29uc3QgdXNlclNoYXJlZEtleSA9IGF3YWl0IHRoaXMuZ2V0VHBDdXJyZW50VXNlclNoYXJlZEtleSh0cElkKTtcblxuICAgIGlmICghdXNlclNoYXJlZEtleS5ta1NoYXJlZEtleSkge1xuICAgICAgdGhyb3cgbmV3IExyQmFkU3RhdGVFeGNlcHRpb24oXG4gICAgICAgICdObyBhY2Nlc3MgdG8gdGhlIG1rU2hhcmVkS2V5IHNvIGNhbm5vdCByZXNoYXJlIGl0IHdpdGggVFAnXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNoYXJlZEtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KHVzZXJTaGFyZWRLZXkuc2hhcmVkS2V5LmlkKTtcbiAgICBjb25zdCBwbGFpbk1rUmVzaGFyZVJlcXVlc3RDaXBoZXIgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXG4gICAgICBzaGFyZWRLZXksXG4gICAgICB1c2VyU2hhcmVkS2V5Lm1rUmVzaGFyZVJlcXVlc3RDaXBoZXJcbiAgICApO1xuICAgIGNvbnN0IHBiayA9IGF3YWl0IEpXSy5hc0tleShwbGFpbk1rUmVzaGFyZVJlcXVlc3RDaXBoZXIucGJrKTtcbiAgICBjb25zdCBta1NoYXJlZEtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KFxuICAgICAgdXNlclNoYXJlZEtleS5ta1NoYXJlZEtleS5pZFxuICAgICk7XG5cbiAgICBjb25zdCBwbGFpbk1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyID0ge1xuICAgICAgbWtTaGFyZWRLZXk6IHtcbiAgICAgICAgaWQ6IG1rU2hhcmVkS2V5LmlkLFxuICAgICAgICBqd2s6IG1rU2hhcmVkS2V5Lmp3ay50b0pTT04odHJ1ZSksXG4gICAgICB9LFxuICAgIH07XG5cbiAgICAvLyBXcmFwIHdpdGggc2hhcmVkS2V5IHRoZW4gYWdhaW4gd2l0aCBQYmtcbiAgICBjb25zdCBta1Jlc2hhcmVSZXNwb25zZUNpcGhlciA9XG4gICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgICAgcGJrLFxuICAgICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgICAgICBzaGFyZWRLZXkuandrLFxuICAgICAgICAgIHBsYWluTWtSZXNoYXJlUmVzcG9uc2VDaXBoZXJcbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogUmVzcG9uZFRwTWtSZXNoYXJlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICB0cElkLFxuICAgICAgICAgIG1rU2hhcmVkS2V5SWQ6IG1rU2hhcmVkS2V5LmlkLFxuICAgICAgICAgIG1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNvbXBsZXRlTWtSZXNoYXJlKHRwSWQ6IExyUmVsYXlJZElucHV0KSB7XG4gICAgY29uc3QgdXNlclNoYXJlZEtleSA9IGF3YWl0IHRoaXMuZ2V0VHBDdXJyZW50VXNlclNoYXJlZEtleSh0cElkKTtcblxuICAgIGNvbnN0IHNoYXJlZEtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KHVzZXJTaGFyZWRLZXkuc2hhcmVkS2V5LmlkKTtcbiAgICBjb25zdCBwcmsgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEtleSh1c2VyU2hhcmVkS2V5Lm1rUHhrLmlkKTtcbiAgICBjb25zdCBwbGFpbk1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KFxuICAgICAgc2hhcmVkS2V5LFxuICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KFxuICAgICAgICBwcmssXG4gICAgICAgIHVzZXJTaGFyZWRLZXkubWtSZXNoYXJlUmVzcG9uc2VDaXBoZXJcbiAgICAgIClcbiAgICApO1xuXG4gICAgLy8gRG91YmxlIGNoZWNrIGl0J3MgYSB2YWxpZCBrZXkuXG4gICAgY29uc3QgbWtTaGFyZWRLZXk6IEtleSA9IHtcbiAgICAgIGlkOiBwbGFpbk1rUmVzaGFyZVJlc3BvbnNlQ2lwaGVyLm1rU2hhcmVkS2V5LmlkLFxuICAgICAgandrOiBhd2FpdCBKV0suYXNLZXkocGxhaW5Na1Jlc2hhcmVSZXNwb25zZUNpcGhlci5ta1NoYXJlZEtleS5qd2spLFxuICAgIH07XG5cbiAgICBjb25zdCBtYXN0ZXJLZXkgPSBhd2FpdCB0aGlzLmtleVNlcnZpY2UuZ2V0Q3VycmVudE1hc3RlcktleSgpO1xuICAgIGNvbnN0IG1rV3JhcHBlZE1rU2hhcmVkS2V5ID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICBtYXN0ZXJLZXkuandrLFxuICAgICAgbWtTaGFyZWRLZXkuandrLnRvSlNPTih0cnVlKVxuICAgICk7XG5cbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IENvbXBsZXRlVHBNa1Jlc2hhcmVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIHRwSWQsXG4gICAgICAgICAgbWFzdGVyS2V5SWQ6IG1hc3RlcktleS5pZCxcbiAgICAgICAgICBta1NoYXJlZEtleUlkOiBta1NoYXJlZEtleS5pZCxcbiAgICAgICAgICBta1dyYXBwZWRNa1NoYXJlZEtleSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEhlbHBlcnNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBwcml2YXRlIGFzeW5jIGdldFRwQ3VycmVudFVzZXJTaGFyZWRLZXkodHBJZDogTHJSZWxheUlkSW5wdXQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgYXdhaXQgdGhpcy5sckdyYXBoUUwucXVlcnkoe1xuICAgICAgICBxdWVyeTogVHBDdXJyZW50VXNlclNoYXJlZEtleVF1ZXJ5LFxuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICBpZDogdHBJZCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKS50cC5jdXJyZW50VXNlclNoYXJlZEtleS51c2VyU2hhcmVkS2V5O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1bnNoYXJlSXRlbSh7XG4gICAgaXRlbUlkLFxuICAgIHRwSWQsXG4gICAgaXNEaXJlY3RvcnksXG4gIH06IFVuc2hhcmVJdGVtT3B0aW9ucyAmIHsgaXNEaXJlY3Rvcnk6IGJvb2xlYW4gfSkge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogaXNEaXJlY3RvcnkgPyBVbnNoYXJlRGlyZWN0b3J5TXV0YXRpb24gOiBVbnNoYXJlRmlsZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgaWQ6IGl0ZW1JZCxcbiAgICAgICAgICB0cElkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eTIudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvdHJ1c3RlZC1wYXJ0eS90cnVzdGVkLXBhcnR5Mi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjZXNzUm9sZUNob2ljZSwgTHJSZWxheUlkSW5wdXQgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuXG4vLyBJZiB4eHhLZXlJZCBub3QgZ2l2ZW4sIHRoZW4gZmV0Y2ggdGhlbSB3aXRoIEFQSSBjYWxsc1xuZXhwb3J0IGludGVyZmFjZSBTaGFyZUl0ZW1PcHRpb25zIHtcbiAgaXRlbUlkOiBMclJlbGF5SWRJbnB1dDtcbiAgaXRlbUtleUlkPzogTHJSZWxheUlkSW5wdXQ7XG4gIHRwSWQ6IExyUmVsYXlJZElucHV0O1xuICB0cFNoYXJlZEtleUlkPzogTHJSZWxheUlkSW5wdXQ7XG4gIGFjY2Vzc1JvbGU6IEFjY2Vzc1JvbGVDaG9pY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVW5zaGFyZUl0ZW1PcHRpb25zIHtcbiAgaXRlbUlkOiBzdHJpbmc7XG4gIHRwSWQ6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvLWZhY3Rvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3R3by1mYWN0b3IvdHdvLWZhY3Rvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBSy9ELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsWUFBb0IsSUFBZTtRQUFmLFNBQUksR0FBSixJQUFJLENBQVc7SUFBRyxDQUFDO0lBRTFCLGVBQWU7O1lBQzFCLE1BQU0sV0FBVyxHQUFnQixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUU1RSxPQUFPLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEQsQ0FBQztLQUFBO0lBRVksZUFBZSxDQUMxQixNQUFnQzs7WUFFaEMsTUFBTSxXQUFXLEdBQWdCLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBRTVFLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZELENBQUM7S0FBQTtJQUVZLGNBQWMsQ0FBQyxLQUFLOztZQUMvQixNQUFNLFdBQVcsR0FBZ0IsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFFNUUsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRTtnQkFDaEQsWUFBWSxFQUFFLEtBQUs7YUFDcEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRVksVUFBVTs7WUFDckIsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzdELENBQUM7S0FBQTtJQUVZLGFBQWEsQ0FBQyxnQkFBd0I7O1lBQ2pELE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FDOUMsY0FBYyxFQUNkLGdCQUFnQixDQUNqQixDQUFDO1FBQ0osQ0FBQztLQUFBO0lBRVksZ0JBQWdCOztZQUMzQixNQUFNLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7YUFDNUIsQ0FBQyxDQUFDO1lBRUgsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUVwRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUN4QyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNWLE1BQU0sSUFBSSxzQkFBc0IsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO2FBQ3BFO1lBRUQsT0FBTztnQkFDTCxJQUFJO2dCQUNKLE9BQU8sRUFBRSxrQkFBa0IsS0FBSyxXQUFXLElBQUksbUJBQW1CO2FBQ25FLENBQUM7UUFDSixDQUFDO0tBQUE7SUFFWSxtQkFBbUIsQ0FBQyxRQUFnQjs7WUFDL0MsTUFBTSxXQUFXLEdBQWdCLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBRTVFLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3pELENBQUM7S0FBQTs7OztZQTlERixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQUxRLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2duaXRvVXNlciB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9hdXRoJztcbmltcG9ydCB7IEF1dGhDbGFzcyB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9hdXRoL2xpYi1lc20vQXV0aCc7XG5pbXBvcnQgeyBMckJhZEFyZ3VtZW50RXhjZXB0aW9uIH0gZnJvbSAnLi4vX2NvbW1vbi9leGNlcHRpb25zJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFR3b0ZhY3RvclNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGg6IEF1dGhDbGFzcykge31cblxuICBwdWJsaWMgYXN5bmMgZ2V0UHJlZmVycmVkTUZBKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgY29nbml0b1VzZXI6IENvZ25pdG9Vc2VyID0gYXdhaXQgdGhpcy5hdXRoLmN1cnJlbnRBdXRoZW50aWNhdGVkVXNlcigpO1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYXV0aC5nZXRQcmVmZXJyZWRNRkEoY29nbml0b1VzZXIpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNldFByZWZlcnJlZE1GQShcbiAgICBtZXRob2Q6ICdUT1RQJyB8ICdTTVMnIHwgJ05PTUZBJ1xuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb2duaXRvVXNlcjogQ29nbml0b1VzZXIgPSBhd2FpdCB0aGlzLmF1dGguY3VycmVudEF1dGhlbnRpY2F0ZWRVc2VyKCk7XG5cbiAgICBhd2FpdCB0aGlzLmF1dGguc2V0UHJlZmVycmVkTUZBKGNvZ25pdG9Vc2VyLCBtZXRob2QpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNldFBob25lTnVtYmVyKHBob25lKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY29nbml0b1VzZXI6IENvZ25pdG9Vc2VyID0gYXdhaXQgdGhpcy5hdXRoLmN1cnJlbnRBdXRoZW50aWNhdGVkVXNlcigpO1xuXG4gICAgYXdhaXQgdGhpcy5hdXRoLnVwZGF0ZVVzZXJBdHRyaWJ1dGVzKGNvZ25pdG9Vc2VyLCB7XG4gICAgICBwaG9uZV9udW1iZXI6IHBob25lLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFNNU0NvZGUoKSB7XG4gICAgYXdhaXQgdGhpcy5hdXRoLnZlcmlmeUN1cnJlbnRVc2VyQXR0cmlidXRlKCdwaG9uZV9udW1iZXInKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB2ZXJpZnlTTVNDb2RlKHZlcmlmaWNhdGlvbkNvZGU6IHN0cmluZykge1xuICAgIGF3YWl0IHRoaXMuYXV0aC52ZXJpZnlDdXJyZW50VXNlckF0dHJpYnV0ZVN1Ym1pdChcbiAgICAgICdwaG9uZV9udW1iZXInLFxuICAgICAgdmVyaWZpY2F0aW9uQ29kZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0U29mdHdhcmVUb2tlbigpOiBQcm9taXNlPHsgY29kZTogc3RyaW5nOyBjb2RlVXJpOiBzdHJpbmcgfT4ge1xuICAgIGNvbnN0IFtjb2duaXRvVXNlciwgdXNlckluZm9dID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgdGhpcy5hdXRoLmN1cnJlbnRBdXRoZW50aWNhdGVkVXNlcigpLFxuICAgICAgdGhpcy5hdXRoLmN1cnJlbnRVc2VySW5mbygpLFxuICAgIF0pO1xuXG4gICAgY29uc3QgY29kZSA9IGF3YWl0IHRoaXMuYXV0aC5zZXR1cFRPVFAoY29nbml0b1VzZXIpO1xuXG4gICAgY29uc3QgZW1haWwgPSB1c2VySW5mby5hdHRyaWJ1dGVzLmVtYWlsO1xuICAgIGlmICghZW1haWwpIHtcbiAgICAgIHRocm93IG5ldyBMckJhZEFyZ3VtZW50RXhjZXB0aW9uKCdObyBlbWFpbCBhc3NvY2lhdGVkIHdpdGggdXNlci4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29kZSxcbiAgICAgIGNvZGVVcmk6IGBvdHBhdXRoOi8vdG90cC8ke2VtYWlsfT9zZWNyZXQ9JHtjb2RlfSZpc3N1ZXI9TGlmZVJlYWR5YCxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHZlcmlmeVNvZnR3YXJlVG9rZW4odG90cENvZGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvZ25pdG9Vc2VyOiBDb2duaXRvVXNlciA9IGF3YWl0IHRoaXMuYXV0aC5jdXJyZW50QXV0aGVudGljYXRlZFVzZXIoKTtcblxuICAgIGF3YWl0IHRoaXMuYXV0aC52ZXJpZnlUb3RwVG9rZW4oY29nbml0b1VzZXIsIHRvdHBDb2RlKTtcbiAgfVxufVxuIl19
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5ncWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvdXNlci91c2VyLmdxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUM7QUFROUIsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBMkIzQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Q0FTM0MsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQTs7Ozs7O0NBTTFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7OztDQVluQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdxbCBmcm9tICdncmFwaHFsLXRhZyc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi91c2VyLnR5cGVzJztcbmltcG9ydCB7IEhhc0tleUdyYXBoIH0gZnJvbSAnLi4va2V5L2tleS50eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclF1ZXJ5VHlwZSBleHRlbmRzIEhhc0tleUdyYXBoIHtcbiAgdXNlcjogVXNlcjtcbn1cblxuZXhwb3J0IGNvbnN0IFVzZXJRdWVyeSA9IGdxbGBcbiAgcXVlcnkgVXNlclF1ZXJ5KCRlbWFpbDogTHJFbWFpbCwgJHVzZXJuYW1lOiBTdHJpbmcpIHtcbiAgICB1c2VyKGVtYWlsOiAkZW1haWwsIHVzZXJuYW1lOiAkdXNlcm5hbWUpIHtcbiAgICAgIGlkXG4gICAgICB1c2VybmFtZVxuICAgICAgaGF2ZVRwXG4gICAgICBpc0N1cnJlbnRVc2VyXG4gICAgICBjb250YWN0Q2FyZHMge1xuICAgICAgICBlZGdlcyB7XG4gICAgICAgICAgbm9kZSB7XG4gICAgICAgICAgICBwdWJsaWNEYXRhXG4gICAgICAgICAgICBwdWJsaWNTZWFyY2hhYmxlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjdXJyZW50VXNlcktleSB7XG4gICAgICAgIHNpZ1B4ayB7XG4gICAgICAgICAgaWRcbiAgICAgICAgICBwYmtcbiAgICAgICAgfVxuICAgICAgICBweGsge1xuICAgICAgICAgIGlkXG4gICAgICAgICAgcGJrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBSZXF1ZXN0VXNlckRlbGV0ZU11dGF0aW9uID0gZ3FsYFxuICBtdXRhdGlvbiBSZXF1ZXN0VXNlckRlbGV0ZSgkaW5wdXQ6IFJlcXVlc3RVc2VyRGVsZXRlSW5wdXQhKSB7XG4gICAgcmVxdWVzdFVzZXJEZWxldGUoaW5wdXQ6ICRpbnB1dCkge1xuICAgICAgdXNlckRlbGV0ZSB7XG4gICAgICAgIHN0YXRlXG4gICAgICAgIGNyZWF0ZWRcbiAgICAgIH1cbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBDYW5jZWxVc2VyRGVsZXRlTXV0YXRpb24gPSBncWxgXG4gIG11dGF0aW9uIENhbmNlbFVzZXJEZWxldGUoJGlucHV0OiBDYW5jZWxVc2VyRGVsZXRlSW5wdXQhKSB7XG4gICAgY2FuY2VsVXNlckRlbGV0ZShpbnB1dDogJGlucHV0KSB7XG4gICAgICBpZFxuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IExvZ2luSGlzdG9yeVF1ZXJ5ID0gZ3FsYFxuICBxdWVyeSBMb2dpbkhpc3RvcnkoJGZpcnN0OiBJbnQsICRhZnRlcjogU3RyaW5nKSB7XG4gICAgbG9naW5IaXN0b3J5KGZpcnN0OiAkZmlyc3QsIGFmdGVyOiAkYWZ0ZXIpIHtcbiAgICAgIHBhZ2VJbmZvIHtcbiAgICAgICAgaGFzTmV4dFBhZ2VcbiAgICAgICAgaGFzUHJldmlvdXNQYWdlXG4gICAgICAgIHN0YXJ0Q3Vyc29yXG4gICAgICAgIGVuZEN1cnNvclxuICAgICAgfVxuICAgICAgZXZlbnRzXG4gICAgfVxuICB9XG5gO1xuIl19
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
+
import { Injectable } from '@angular/core';
|
|
4
|
+
import { LrApolloService } from '../api/lr-apollo.service';
|
|
5
|
+
import { CancelUserDeleteMutation, LoginHistoryQuery, RequestUserDeleteMutation, UserQuery, } from './user.gql';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../api/lr-apollo.service";
|
|
8
|
+
export class UserService {
|
|
9
|
+
constructor(lrApollo) {
|
|
10
|
+
this.lrApollo = lrApollo;
|
|
11
|
+
}
|
|
12
|
+
getUserByEmail(email) {
|
|
13
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
14
|
+
return this.getUser({ email });
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
getUserByUsername(username) {
|
|
18
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
return this.getUser({ username });
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
getUser({ email, username }) {
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
const { user } = yield this.lrApollo.query({
|
|
25
|
+
query: UserQuery,
|
|
26
|
+
variables: {
|
|
27
|
+
email,
|
|
28
|
+
username,
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
return user;
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
requestUserDelete() {
|
|
35
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
const res = yield this.lrApollo.mutate({
|
|
37
|
+
mutation: RequestUserDeleteMutation,
|
|
38
|
+
variables: {
|
|
39
|
+
input: {},
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
return res.requestUserDelete.userDelete;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
cancelUserDelete() {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
const res = yield this.lrApollo.mutate({
|
|
48
|
+
mutation: CancelUserDeleteMutation,
|
|
49
|
+
variables: {
|
|
50
|
+
input: {},
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
return res.cancelUserDelete.id;
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
loginHistory(first = null, after = null) {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
// first: return first n entries
|
|
59
|
+
// after: pass in the pageInfo.endCursor to paginate
|
|
60
|
+
const res = yield this.lrApollo.query({
|
|
61
|
+
query: LoginHistoryQuery,
|
|
62
|
+
variables: {
|
|
63
|
+
first,
|
|
64
|
+
after,
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
return res.loginHistory;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
UserService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserService_Factory() { return new UserService(i0.ɵɵinject(i1.LrApolloService)); }, token: UserService, providedIn: "root" });
|
|
72
|
+
UserService.decorators = [
|
|
73
|
+
{ type: Injectable, args: [{
|
|
74
|
+
providedIn: 'root',
|
|
75
|
+
},] }
|
|
76
|
+
];
|
|
77
|
+
UserService.ctorParameters = () => [
|
|
78
|
+
{ type: LrApolloService }
|
|
79
|
+
];
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3VzZXIvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixpQkFBaUIsRUFDakIseUJBQXlCLEVBQ3pCLFNBQVMsR0FFVixNQUFNLFlBQVksQ0FBQzs7O0FBTXBCLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFlBQW9CLFFBQXlCO1FBQXpCLGFBQVEsR0FBUixRQUFRLENBQWlCO0lBQUcsQ0FBQztJQUUzQyxjQUFjLENBQUMsS0FBYTs7WUFDaEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNqQyxDQUFDO0tBQUE7SUFFSyxpQkFBaUIsQ0FBQyxRQUFnQjs7WUFDdEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNwQyxDQUFDO0tBQUE7SUFFSyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFnQjs7WUFDN0MsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQWdCO2dCQUN4RCxLQUFLLEVBQUUsU0FBUztnQkFDaEIsU0FBUyxFQUFFO29CQUNULEtBQUs7b0JBQ0wsUUFBUTtpQkFDVDthQUNGLENBQUMsQ0FBQztZQUNILE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztLQUFBO0lBRUssaUJBQWlCOztZQUNyQixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUE2QjtnQkFDakUsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRSxFQUFFO2lCQUNWO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsT0FBTyxHQUFHLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDO1FBQzFDLENBQUM7S0FBQTtJQUVLLGdCQUFnQjs7WUFDcEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBNEI7Z0JBQ2hFLFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLFNBQVMsRUFBRTtvQkFDVCxLQUFLLEVBQUUsRUFBRTtpQkFDVjthQUNGLENBQUMsQ0FBQztZQUVILE9BQU8sR0FBRyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUNqQyxDQUFDO0tBQUE7SUFFSyxZQUFZLENBQUMsUUFBZ0IsSUFBSSxFQUFFLFFBQWdCLElBQUk7O1lBQzNELGdDQUFnQztZQUNoQyxvREFBb0Q7WUFDcEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBd0I7Z0JBQzNELEtBQUssRUFBRSxpQkFBaUI7Z0JBQ3hCLFNBQVMsRUFBRTtvQkFDVCxLQUFLO29CQUNMLEtBQUs7aUJBQ047YUFDRixDQUFDLENBQUM7WUFFSCxPQUFPLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDMUIsQ0FBQztLQUFBOzs7O1lBM0RGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBYlEsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExyQXBvbGxvU2VydmljZSB9IGZyb20gJy4uL2FwaS9sci1hcG9sbG8uc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyRGVsZXRlTm9kZSB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQge1xuICBDYW5jZWxVc2VyRGVsZXRlTXV0YXRpb24sXG4gIExvZ2luSGlzdG9yeVF1ZXJ5LFxuICBSZXF1ZXN0VXNlckRlbGV0ZU11dGF0aW9uLFxuICBVc2VyUXVlcnksXG4gIFVzZXJRdWVyeVR5cGUsXG59IGZyb20gJy4vdXNlci5ncWwnO1xuaW1wb3J0IHsgR2V0VXNlcklucHV0LCBVc2VyIH0gZnJvbSAnLi91c2VyLnR5cGVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsckFwb2xsbzogTHJBcG9sbG9TZXJ2aWNlKSB7fVxuXG4gIGFzeW5jIGdldFVzZXJCeUVtYWlsKGVtYWlsOiBzdHJpbmcpOiBQcm9taXNlPFVzZXI+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRVc2VyKHsgZW1haWwgfSk7XG4gIH1cblxuICBhc3luYyBnZXRVc2VyQnlVc2VybmFtZSh1c2VybmFtZTogc3RyaW5nKTogUHJvbWlzZTxVc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VXNlcih7IHVzZXJuYW1lIH0pO1xuICB9XG5cbiAgYXN5bmMgZ2V0VXNlcih7IGVtYWlsLCB1c2VybmFtZSB9OiBHZXRVc2VySW5wdXQpOiBQcm9taXNlPFVzZXI+IHtcbiAgICBjb25zdCB7IHVzZXIgfSA9IGF3YWl0IHRoaXMubHJBcG9sbG8ucXVlcnk8VXNlclF1ZXJ5VHlwZT4oe1xuICAgICAgcXVlcnk6IFVzZXJRdWVyeSxcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBlbWFpbCxcbiAgICAgICAgdXNlcm5hbWUsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiB1c2VyO1xuICB9XG5cbiAgYXN5bmMgcmVxdWVzdFVzZXJEZWxldGUoKTogUHJvbWlzZTxVc2VyRGVsZXRlTm9kZT4ge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlPHsgcmVxdWVzdFVzZXJEZWxldGU6IGFueSB9Pih7XG4gICAgICBtdXRhdGlvbjogUmVxdWVzdFVzZXJEZWxldGVNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge30sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlcy5yZXF1ZXN0VXNlckRlbGV0ZS51c2VyRGVsZXRlO1xuICB9XG5cbiAgYXN5bmMgY2FuY2VsVXNlckRlbGV0ZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlPHsgY2FuY2VsVXNlckRlbGV0ZTogYW55IH0+KHtcbiAgICAgIG11dGF0aW9uOiBDYW5jZWxVc2VyRGVsZXRlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHt9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiByZXMuY2FuY2VsVXNlckRlbGV0ZS5pZDtcbiAgfVxuXG4gIGFzeW5jIGxvZ2luSGlzdG9yeShmaXJzdDogbnVtYmVyID0gbnVsbCwgYWZ0ZXI6IHN0cmluZyA9IG51bGwpOiBQcm9taXNlPGFueT4ge1xuICAgIC8vIGZpcnN0OiByZXR1cm4gZmlyc3QgbiBlbnRyaWVzXG4gICAgLy8gYWZ0ZXI6IHBhc3MgaW4gdGhlIHBhZ2VJbmZvLmVuZEN1cnNvciB0byBwYWdpbmF0ZVxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMubHJBcG9sbG8ucXVlcnk8eyBsb2dpbkhpc3Rvcnk6IGFueSB9Pih7XG4gICAgICBxdWVyeTogTG9naW5IaXN0b3J5UXVlcnksXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgZmlyc3QsXG4gICAgICAgIGFmdGVyLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiByZXMubG9naW5IaXN0b3J5O1xuICB9XG59XG4iXX0=
|