@lifeready/core 1.0.1 → 1.0.3
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 +15939 -0
- package/bundles/lifeready-core.umd.js.map +1 -0
- package/bundles/lifeready-core.umd.min.js +16 -0
- package/bundles/lifeready-core.umd.min.js.map +1 -0
- package/esm2015/lib/_common/ast.js +40 -0
- package/esm2015/lib/_common/deferred-promise.js +24 -0
- package/esm2015/lib/_common/exceptions.js +157 -0
- package/esm2015/lib/_common/queries.gql.js +190 -0
- package/esm2015/lib/_common/run-outside-angular.js +79 -0
- package/esm2015/lib/_common/types.js +1 -0
- package/esm2015/lib/_common/utils.js +44 -0
- package/esm2015/lib/api/contact-card.gql.js +79 -0
- package/esm2015/lib/api/contact-card.service.js +154 -0
- package/esm2015/lib/api/contact-card2.gql.js +60 -0
- package/esm2015/lib/api/contact-card2.service.js +103 -0
- package/esm2015/lib/api/file.service.js +74 -0
- package/esm2015/lib/api/item2.gql.js +110 -0
- package/esm2015/lib/api/item2.service.js +311 -0
- package/esm2015/lib/api/key-exchange.gql.js +188 -0
- package/esm2015/lib/api/key-exchange.service.js +442 -0
- package/esm2015/lib/api/key-exchange.types.js +18 -0
- package/esm2015/lib/api/key-exchange2.gql.js +171 -0
- package/esm2015/lib/api/key-exchange2.service.js +479 -0
- package/esm2015/lib/api/lock.gql.js +40 -0
- package/esm2015/lib/api/lock.service.js +64 -0
- package/esm2015/lib/api/lr-apollo.service.js +46 -0
- package/esm2015/lib/api/lr-graphql/index.js +6 -0
- package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +155 -0
- package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +213 -0
- package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +51 -0
- package/esm2015/lib/api/lr-graphql/lr-mutation.js +48 -0
- package/esm2015/lib/api/lr-graphql/lr.service.js +18 -0
- package/esm2015/lib/api/message.service.js +138 -0
- package/esm2015/lib/api/persist.service.js +181 -0
- package/esm2015/lib/api/query-processor/common-processors.service.js +93 -0
- package/esm2015/lib/api/query-processor/index.js +3 -0
- package/esm2015/lib/api/query-processor/query-processor.service.js +192 -0
- package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +109 -0
- package/esm2015/lib/api/shared-contact-card.service.js +119 -0
- package/esm2015/lib/api/shared-contact-card2.gql.js +41 -0
- package/esm2015/lib/api/shared-contact-card2.service.js +117 -0
- package/esm2015/lib/api/time.service.js +146 -0
- package/esm2015/lib/api/types/graphql.types.js +7 -0
- package/esm2015/lib/api/types/index.js +3 -0
- package/esm2015/lib/api/types/lr-graphql.types.js +71 -0
- package/esm2015/lib/auth/auth.config.js +57 -0
- package/esm2015/lib/auth/auth.gql.js +48 -0
- package/esm2015/lib/auth/auth.types.js +27 -0
- package/esm2015/lib/auth/idle.service.js +168 -0
- package/esm2015/lib/auth/idle.types.js +7 -0
- package/esm2015/lib/auth/lbop.service.js +355 -0
- package/esm2015/lib/auth/life-ready-auth.service.js +500 -0
- package/esm2015/lib/auth/password.service.js +320 -0
- package/esm2015/lib/auth/register.service.js +172 -0
- package/esm2015/lib/auth/two-factor.service.js +74 -0
- package/esm2015/lib/category/category-meta.service.js +99 -0
- package/esm2015/lib/category/category.gql.js +406 -0
- package/esm2015/lib/category/category.service.js +390 -0
- package/esm2015/lib/category/category.types.js +29 -0
- package/esm2015/lib/cryptography/cryptography.types.js +11 -0
- package/esm2015/lib/cryptography/encryption.service.js +189 -0
- package/esm2015/lib/cryptography/key-factory.service.js +237 -0
- package/esm2015/lib/cryptography/key-graph.service.js +280 -0
- package/esm2015/lib/cryptography/key-meta.service.js +200 -0
- package/esm2015/lib/cryptography/key.service.js +124 -0
- package/esm2015/lib/cryptography/slip39.service.js +169 -0
- package/esm2015/lib/cryptography/web-crypto.service.js +29 -0
- package/esm2015/lib/life-ready.config.js +84 -0
- package/esm2015/lib/life-ready.module.js +74 -0
- package/esm2015/lib/plan/plan.gql.js +123 -0
- package/esm2015/lib/plan/plan.service.js +149 -0
- package/esm2015/lib/plan/plan.types.js +11 -0
- package/esm2015/lib/record/record-attachment.service.js +101 -0
- package/esm2015/lib/record/record.gql.js +179 -0
- package/esm2015/lib/record/record.service.js +206 -0
- package/esm2015/lib/record/record.types.js +15 -0
- package/esm2015/lib/record-type/record-type.service.js +75 -0
- package/esm2015/lib/record-type/record-type.types.js +28 -0
- package/esm2015/lib/scenario/approvals/scenario-approval.gql.js +105 -0
- package/esm2015/lib/scenario/approvals/scenario-approval.types.js +1 -0
- package/esm2015/lib/scenario/approvals/scenario-approver.service.js +300 -0
- package/esm2015/lib/scenario/claimants/scenario-claimant.gql.js +52 -0
- package/esm2015/lib/scenario/claimants/scenario-claimant.service.js +97 -0
- package/esm2015/lib/scenario/claimants/scenario-claimant.types.js +1 -0
- package/esm2015/lib/scenario/receivers/scenario-receiver.gql.js +150 -0
- package/esm2015/lib/scenario/receivers/scenario-receiver.service.js +229 -0
- package/esm2015/lib/scenario/receivers/scenario-receiver.types.js +1 -0
- package/esm2015/lib/scenario/scenario-setup.service.js +269 -0
- package/esm2015/lib/scenario/scenario.gql.js +368 -0
- package/esm2015/lib/scenario/scenario.service.js +611 -0
- package/esm2015/lib/scenario/scenario.types.js +64 -0
- package/esm2015/lib/search/search.gql.js +62 -0
- package/esm2015/lib/search/search.service.js +156 -0
- package/esm2015/lib/search/search.types.js +6 -0
- package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +112 -0
- package/esm2015/lib/trusted-parties/tp-password-reset-user.service.js +129 -0
- package/esm2015/lib/trusted-parties/tp-password-reset.constants.js +4 -0
- package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +232 -0
- package/esm2015/lib/trusted-parties/tp-password-reset.service.js +299 -0
- package/esm2015/lib/trusted-parties/trusted-party.gql.js +148 -0
- package/esm2015/lib/trusted-parties/trusted-party.service.js +326 -0
- package/esm2015/lib/trusted-parties/trusted-party.types.js +41 -0
- package/esm2015/lib/trusted-parties/trusted-party2.gql.js +87 -0
- package/esm2015/lib/trusted-parties/trusted-party2.service.js +215 -0
- package/esm2015/lib/users/profile-details.service.js +214 -0
- package/esm2015/lib/users/profile.gql.js +97 -0
- package/esm2015/lib/users/profile.service.js +169 -0
- package/esm2015/lib/users/profile.types.js +34 -0
- package/esm2015/lib/users/user.gql.js +60 -0
- package/esm2015/lib/users/user.service.js +79 -0
- package/esm2015/lib/users/user.types.js +5 -0
- package/esm2015/lifeready-core.js +10 -0
- package/esm2015/public-api.js +81 -0
- package/fesm2015/lifeready-core.js +13314 -0
- package/fesm2015/lifeready-core.js.map +1 -0
- package/lib/_common/ast.d.ts +11 -0
- package/lib/_common/deferred-promise.d.ts +12 -0
- package/lib/_common/exceptions.d.ts +109 -0
- package/lib/_common/queries.gql.d.ts +10 -0
- package/lib/_common/run-outside-angular.d.ts +14 -0
- package/{src/lib/_common/types.ts → lib/_common/types.d.ts} +3 -6
- package/lib/_common/utils.d.ts +3 -0
- package/lib/api/contact-card.gql.d.ts +7 -0
- package/lib/api/contact-card.service.d.ts +52 -0
- package/lib/api/contact-card2.gql.d.ts +34 -0
- package/lib/api/contact-card2.service.d.ts +49 -0
- package/lib/api/file.service.d.ts +18 -0
- package/lib/api/item2.gql.d.ts +96 -0
- package/lib/api/item2.service.d.ts +177 -0
- package/lib/api/key-exchange.gql.d.ts +9 -0
- package/lib/api/key-exchange.service.d.ts +39 -0
- package/lib/api/key-exchange.types.d.ts +196 -0
- package/lib/api/key-exchange2.gql.d.ts +125 -0
- package/lib/api/key-exchange2.service.d.ts +187 -0
- package/lib/api/lock.gql.d.ts +27 -0
- package/lib/api/lock.service.d.ts +25 -0
- package/lib/api/lr-apollo.service.d.ts +15 -0
- package/lib/api/lr-graphql/lr-graphql.service.d.ts +60 -0
- package/lib/api/lr-graphql/lr-merged-mutation.d.ts +27 -0
- package/lib/api/lr-graphql/lr-mutation-base.d.ts +28 -0
- package/lib/api/lr-graphql/lr-mutation.d.ts +8 -0
- package/lib/api/lr-graphql/lr.service.d.ts +9 -0
- package/lib/api/message.service.d.ts +58 -0
- package/lib/api/persist.service.d.ts +31 -0
- package/lib/api/query-processor/common-processors.service.d.ts +36 -0
- package/lib/api/query-processor/query-processor.service.d.ts +18 -0
- package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +15 -0
- package/lib/api/shared-contact-card.service.d.ts +33 -0
- package/lib/api/shared-contact-card2.gql.d.ts +36 -0
- package/lib/api/shared-contact-card2.service.d.ts +45 -0
- package/lib/api/time.service.d.ts +16 -0
- package/lib/api/types/graphql.types.d.ts +29 -0
- package/lib/api/types/lr-graphql.types.d.ts +385 -0
- package/lib/auth/auth.config.d.ts +5 -0
- package/lib/auth/auth.gql.d.ts +15 -0
- package/lib/auth/auth.types.d.ts +66 -0
- package/lib/auth/idle.service.d.ts +40 -0
- package/lib/auth/idle.types.d.ts +10 -0
- package/lib/auth/lbop.service.d.ts +91 -0
- package/lib/auth/life-ready-auth.service.d.ts +59 -0
- package/lib/auth/password.service.d.ts +78 -0
- package/lib/auth/register.service.d.ts +25 -0
- package/lib/auth/two-factor.service.d.ts +15 -0
- package/lib/category/category-meta.service.d.ts +23 -0
- package/lib/category/category.gql.d.ts +45 -0
- package/lib/category/category.service.d.ts +67 -0
- package/lib/category/category.types.d.ts +79 -0
- package/lib/cryptography/cryptography.types.d.ts +83 -0
- package/lib/cryptography/encryption.service.d.ts +41 -0
- package/lib/cryptography/key-factory.service.d.ts +38 -0
- package/lib/cryptography/key-graph.service.d.ts +33 -0
- package/lib/cryptography/key-meta.service.d.ts +44 -0
- package/lib/cryptography/key.service.d.ts +36 -0
- package/lib/cryptography/slip39.service.d.ts +43 -0
- package/lib/cryptography/web-crypto.service.d.ts +5 -0
- package/lib/life-ready.config.d.ts +14 -0
- package/lib/life-ready.module.d.ts +5 -0
- package/lib/plan/plan.gql.d.ts +11 -0
- package/lib/plan/plan.service.d.ts +33 -0
- package/lib/plan/plan.types.d.ts +31 -0
- package/lib/record/record-attachment.service.d.ts +16 -0
- package/lib/record/record.gql.d.ts +14 -0
- package/lib/record/record.service.d.ts +25 -0
- package/lib/record/record.types.d.ts +57 -0
- package/lib/record-type/record-type.service.d.ts +11 -0
- package/lib/record-type/record-type.types.d.ts +50 -0
- package/lib/scenario/approvals/scenario-approval.gql.d.ts +7 -0
- package/lib/scenario/approvals/scenario-approval.types.d.ts +63 -0
- package/lib/scenario/approvals/scenario-approver.service.d.ts +32 -0
- package/lib/scenario/claimants/scenario-claimant.gql.d.ts +5 -0
- package/lib/scenario/claimants/scenario-claimant.service.d.ts +17 -0
- package/lib/scenario/claimants/scenario-claimant.types.d.ts +18 -0
- package/lib/scenario/receivers/scenario-receiver.gql.d.ts +8 -0
- package/lib/scenario/receivers/scenario-receiver.service.d.ts +30 -0
- package/lib/scenario/receivers/scenario-receiver.types.d.ts +54 -0
- package/lib/scenario/scenario-setup.service.d.ts +22 -0
- package/lib/scenario/scenario.gql.d.ts +34 -0
- package/lib/scenario/scenario.service.d.ts +58 -0
- package/lib/scenario/scenario.types.d.ts +217 -0
- package/lib/search/search.gql.d.ts +1 -0
- package/lib/search/search.service.d.ts +25 -0
- package/lib/search/search.types.d.ts +20 -0
- package/lib/trusted-parties/tp-password-reset-request.service.d.ts +20 -0
- package/lib/trusted-parties/tp-password-reset-user.service.d.ts +35 -0
- package/lib/trusted-parties/tp-password-reset.constants.d.ts +3 -0
- package/lib/trusted-parties/tp-password-reset.gql.d.ts +218 -0
- package/lib/trusted-parties/tp-password-reset.service.d.ts +130 -0
- package/lib/trusted-parties/trusted-party.gql.d.ts +9 -0
- package/lib/trusted-parties/trusted-party.service.d.ts +44 -0
- package/lib/trusted-parties/trusted-party.types.d.ts +102 -0
- package/lib/trusted-parties/trusted-party2.gql.d.ts +79 -0
- package/lib/trusted-parties/trusted-party2.service.d.ts +114 -0
- package/lib/users/profile-details.service.d.ts +21 -0
- package/lib/users/profile.gql.d.ts +11 -0
- package/lib/users/profile.service.d.ts +35 -0
- package/lib/users/profile.types.d.ts +96 -0
- package/lib/users/user.gql.d.ts +9 -0
- package/lib/users/user.service.d.ts +12 -0
- package/lib/users/user.types.d.ts +23 -0
- package/lifeready-core.d.ts +9 -0
- package/lifeready-core.metadata.json +1 -0
- package/package.json +29 -21
- package/{src/public-api.ts → public-api.d.ts} +0 -19
- package/karma.conf.js +0 -32
- package/ng-package.json +0 -26
- package/src/lib/_common/ast.ts +0 -75
- package/src/lib/_common/deferred-promise.ts +0 -35
- package/src/lib/_common/exceptions.ts +0 -189
- package/src/lib/_common/queries.gql.ts +0 -200
- package/src/lib/_common/run-outside-angular.ts +0 -125
- package/src/lib/_common/tests.ts +0 -82
- package/src/lib/_common/utils.ts +0 -57
- package/src/lib/api/api-mutation.spec.ts +0 -547
- package/src/lib/api/api-query.spec.ts +0 -40
- package/src/lib/api/contact-card.gql.ts +0 -85
- package/src/lib/api/contact-card.service.spec.ts +0 -249
- package/src/lib/api/contact-card.service.ts +0 -228
- package/src/lib/api/contact-card2.gql.ts +0 -93
- package/src/lib/api/contact-card2.service.spec.ts +0 -297
- package/src/lib/api/contact-card2.service.ts +0 -139
- package/src/lib/api/file.service.spec.ts +0 -14
- package/src/lib/api/file.service.ts +0 -81
- package/src/lib/api/item2.gql.ts +0 -211
- package/src/lib/api/item2.service.spec.ts +0 -1043
- package/src/lib/api/item2.service.ts +0 -481
- package/src/lib/api/key-exchange.gql.ts +0 -196
- package/src/lib/api/key-exchange.service.spec.ts +0 -470
- package/src/lib/api/key-exchange.service.ts +0 -731
- package/src/lib/api/key-exchange.types.ts +0 -235
- package/src/lib/api/key-exchange2.gql.ts +0 -310
- package/src/lib/api/key-exchange2.service.spec.ts +0 -892
- package/src/lib/api/key-exchange2.service.ts +0 -875
- package/src/lib/api/lock.gql.ts +0 -67
- package/src/lib/api/lock.service.spec.ts +0 -549
- package/src/lib/api/lock.service.ts +0 -57
- package/src/lib/api/lr-apollo.service.spec.ts +0 -27
- package/src/lib/api/lr-apollo.service.ts +0 -43
- package/src/lib/api/lr-graphql/lr-graphql.service.ts +0 -313
- package/src/lib/api/lr-graphql/lr-merged-mutation.ts +0 -377
- package/src/lib/api/lr-graphql/lr-mutation-base.ts +0 -67
- package/src/lib/api/lr-graphql/lr-mutation.ts +0 -74
- package/src/lib/api/lr-graphql/lr.service.ts +0 -28
- package/src/lib/api/message.service.spec.ts +0 -20
- package/src/lib/api/message.service.ts +0 -210
- package/src/lib/api/persist.service.spec.ts +0 -209
- package/src/lib/api/persist.service.ts +0 -220
- package/src/lib/api/query-processor/common-processors.service.ts +0 -148
- package/src/lib/api/query-processor/query-processor.service.ts +0 -240
- package/src/lib/api/query-processor/tp-password-reset-processor.service.ts +0 -177
- package/src/lib/api/shared-contact-card.service.ts +0 -156
- package/src/lib/api/shared-contact-card2.gql.ts +0 -76
- package/src/lib/api/shared-contact-card2.service.ts +0 -154
- package/src/lib/api/time.service.spec.ts +0 -48
- package/src/lib/api/time.service.ts +0 -155
- package/src/lib/api/types/graphql.types.ts +0 -48
- package/src/lib/api/types/lr-graphql.types.ts +0 -467
- package/src/lib/auth/auth.config.ts +0 -83
- package/src/lib/auth/auth.gql.ts +0 -62
- package/src/lib/auth/auth.types.ts +0 -79
- package/src/lib/auth/idle.service.spec.ts +0 -119
- package/src/lib/auth/idle.service.ts +0 -208
- package/src/lib/auth/idle.types.ts +0 -11
- package/src/lib/auth/lbop.service.spec.ts +0 -56
- package/src/lib/auth/lbop.service.ts +0 -539
- package/src/lib/auth/life-ready-auth.service.spec.ts +0 -70
- package/src/lib/auth/life-ready-auth.service.ts +0 -454
- package/src/lib/auth/password.service.spec.ts +0 -51
- package/src/lib/auth/password.service.ts +0 -438
- package/src/lib/auth/register.service.spec.ts +0 -31
- package/src/lib/auth/register.service.ts +0 -181
- package/src/lib/auth/two-factor.service.spec.ts +0 -21
- package/src/lib/auth/two-factor.service.ts +0 -69
- package/src/lib/category/category-meta.service.spec.ts +0 -28
- package/src/lib/category/category-meta.service.ts +0 -125
- package/src/lib/category/category.gql.ts +0 -449
- package/src/lib/category/category.service.spec.ts +0 -26
- package/src/lib/category/category.service.ts +0 -498
- package/src/lib/category/category.types.ts +0 -89
- package/src/lib/cryptography/cryptography.types.ts +0 -108
- package/src/lib/cryptography/encryption.service.spec.ts +0 -125
- package/src/lib/cryptography/encryption.service.ts +0 -243
- package/src/lib/cryptography/key-factory.service.spec.ts +0 -15
- package/src/lib/cryptography/key-factory.service.ts +0 -303
- package/src/lib/cryptography/key-graph.service.spec.ts +0 -16
- package/src/lib/cryptography/key-graph.service.ts +0 -354
- package/src/lib/cryptography/key-meta.service.spec.ts +0 -40
- package/src/lib/cryptography/key-meta.service.ts +0 -254
- package/src/lib/cryptography/key.service.spec.ts +0 -16
- package/src/lib/cryptography/key.service.ts +0 -154
- package/src/lib/cryptography/slip39.service.spec.ts +0 -44
- package/src/lib/cryptography/slip39.service.ts +0 -204
- package/src/lib/cryptography/web-crypto.service.ts +0 -22
- package/src/lib/life-ready.config.ts +0 -127
- package/src/lib/life-ready.module.ts +0 -81
- package/src/lib/plan/plan.gql.ts +0 -133
- package/src/lib/plan/plan.service.spec.ts +0 -294
- package/src/lib/plan/plan.service.ts +0 -198
- package/src/lib/plan/plan.types.ts +0 -37
- package/src/lib/record/record-attachment.service.spec.ts +0 -31
- package/src/lib/record/record-attachment.service.ts +0 -101
- package/src/lib/record/record.gql.ts +0 -192
- package/src/lib/record/record.service.spec.ts +0 -598
- package/src/lib/record/record.service.ts +0 -236
- package/src/lib/record/record.types.ts +0 -86
- package/src/lib/record-type/record-type.service.spec.ts +0 -16
- package/src/lib/record-type/record-type.service.ts +0 -71
- package/src/lib/record-type/record-type.types.ts +0 -58
- package/src/lib/scenario/approvals/scenario-approval.gql.ts +0 -112
- package/src/lib/scenario/approvals/scenario-approval.types.ts +0 -85
- package/src/lib/scenario/approvals/scenario-approver.service.spec.ts +0 -16
- package/src/lib/scenario/approvals/scenario-approver.service.ts +0 -422
- package/src/lib/scenario/claimants/scenario-claimant.gql.ts +0 -56
- package/src/lib/scenario/claimants/scenario-claimant.service.spec.ts +0 -16
- package/src/lib/scenario/claimants/scenario-claimant.service.ts +0 -100
- package/src/lib/scenario/claimants/scenario-claimant.types.ts +0 -21
- package/src/lib/scenario/receivers/scenario-receiver.gql.ts +0 -157
- package/src/lib/scenario/receivers/scenario-receiver.service.spec.ts +0 -16
- package/src/lib/scenario/receivers/scenario-receiver.service.ts +0 -278
- package/src/lib/scenario/receivers/scenario-receiver.types.ts +0 -66
- package/src/lib/scenario/scenario-setup.service.spec.ts +0 -22
- package/src/lib/scenario/scenario-setup.service.ts +0 -369
- package/src/lib/scenario/scenario.gql.ts +0 -404
- package/src/lib/scenario/scenario.service.spec.ts +0 -1586
- package/src/lib/scenario/scenario.service.ts +0 -811
- package/src/lib/scenario/scenario.types.ts +0 -258
- package/src/lib/search/search.gql.ts +0 -62
- package/src/lib/search/search.service.spec.ts +0 -57
- package/src/lib/search/search.service.ts +0 -174
- package/src/lib/search/search.types.ts +0 -24
- package/src/lib/trusted-parties/tp-password-reset-request.service.ts +0 -140
- package/src/lib/trusted-parties/tp-password-reset-user.service.ts +0 -359
- package/src/lib/trusted-parties/tp-password-reset.gql.ts +0 -453
- package/src/lib/trusted-parties/tp-password-reset.service.spec.ts +0 -602
- package/src/lib/trusted-parties/tp-password-reset.service.ts +0 -482
- package/src/lib/trusted-parties/trusted-party.gql.ts +0 -159
- package/src/lib/trusted-parties/trusted-party.service.spec.ts +0 -1008
- package/src/lib/trusted-parties/trusted-party.service.ts +0 -394
- package/src/lib/trusted-parties/trusted-party.types.ts +0 -119
- package/src/lib/trusted-parties/trusted-party2.gql.ts +0 -165
- package/src/lib/trusted-parties/trusted-party2.service.spec.ts +0 -1782
- package/src/lib/trusted-parties/trusted-party2.service.ts +0 -272
- package/src/lib/users/profile-details.service.spec.ts +0 -45
- package/src/lib/users/profile-details.service.ts +0 -278
- package/src/lib/users/profile.gql.ts +0 -108
- package/src/lib/users/profile.service.spec.ts +0 -97
- package/src/lib/users/profile.service.ts +0 -224
- package/src/lib/users/profile.types.ts +0 -101
- package/src/lib/users/user.gql.ts +0 -69
- package/src/lib/users/user.service.spec.ts +0 -161
- package/src/lib/users/user.service.ts +0 -72
- package/src/lib/users/user.types.ts +0 -27
- package/src/test.ts +0 -21
- package/tsconfig.lib.json +0 -21
- package/tsconfig.lib.prod.json +0 -6
- package/tsconfig.spec.json +0 -10
- package/tslint.json +0 -17
- /package/{src/lib/api/lr-graphql/index.ts → lib/api/lr-graphql/index.d.ts} +0 -0
- /package/{src/lib/api/query-processor/index.ts → lib/api/query-processor/index.d.ts} +0 -0
- /package/{src/lib/api/types/index.ts → lib/api/types/index.d.ts} +0 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// Glossary
|
|
2
|
+
// - Subject: the user that the scenario applies to
|
|
3
|
+
// - Approver: the user that can approve a scenario
|
|
4
|
+
// - Approver sub-assembly: a group of approvers that must reach quorum for the sub-assembly to be considered approved
|
|
5
|
+
// - Approver assembly: a group of sub-assemblies that must reach quorum for the assembly to be considered approved
|
|
6
|
+
// - Receiver: a user that will receive the released information
|
|
7
|
+
// - Claimant: a user that can start the process of release of information
|
|
8
|
+
export var ScenarioState;
|
|
9
|
+
(function (ScenarioState) {
|
|
10
|
+
// Can not be claimed when DISABLED. Scenarios can be created in this state, then
|
|
11
|
+
// set to ENABLED once setup is complete.
|
|
12
|
+
ScenarioState["DISABLED"] = "DISABLED";
|
|
13
|
+
// Can be claimed when ENABLED. It sits in this state until claimed.
|
|
14
|
+
ScenarioState["ENABLED"] = "ENABLED";
|
|
15
|
+
// Claimant has initiated a claim.
|
|
16
|
+
ScenarioState["CLAIMED"] = "CLAIMED";
|
|
17
|
+
// Approvers have approved this scenario
|
|
18
|
+
ScenarioState["APPROVED"] = "APPROVED";
|
|
19
|
+
ScenarioState["REJECTED"] = "REJECTED";
|
|
20
|
+
})(ScenarioState || (ScenarioState = {}));
|
|
21
|
+
export var ScenarioClaimState;
|
|
22
|
+
(function (ScenarioClaimState) {
|
|
23
|
+
ScenarioClaimState["Claimed"] = "CLAIMED";
|
|
24
|
+
ScenarioClaimState["Approved"] = "APPROVED";
|
|
25
|
+
ScenarioClaimState["Expired"] = "EXPIRED";
|
|
26
|
+
ScenarioClaimState["Rejected"] = "REJECTED";
|
|
27
|
+
ScenarioClaimState["Cancelled"] = "CANCELLED";
|
|
28
|
+
ScenarioClaimState["Reset"] = "RESET";
|
|
29
|
+
})(ScenarioClaimState || (ScenarioClaimState = {}));
|
|
30
|
+
export var ApproverClaimState;
|
|
31
|
+
(function (ApproverClaimState) {
|
|
32
|
+
ApproverClaimState["Claimed"] = "CLAIMED";
|
|
33
|
+
ApproverClaimState["Approved"] = "APPROVED";
|
|
34
|
+
ApproverClaimState["Rejected"] = "REJECTED";
|
|
35
|
+
})(ApproverClaimState || (ApproverClaimState = {}));
|
|
36
|
+
export class NewScenario {
|
|
37
|
+
}
|
|
38
|
+
export class NewScenarioClaimant {
|
|
39
|
+
}
|
|
40
|
+
export class NewScenarioApprovalGroup {
|
|
41
|
+
}
|
|
42
|
+
export class NewScenarioApprover {
|
|
43
|
+
}
|
|
44
|
+
export class NewScenarioReceiver {
|
|
45
|
+
}
|
|
46
|
+
export class UpdateScenario {
|
|
47
|
+
}
|
|
48
|
+
export class UpdatedScenarioClaimant {
|
|
49
|
+
}
|
|
50
|
+
export class UpdatedScenarioApprovalGroup {
|
|
51
|
+
}
|
|
52
|
+
export class UpdatedScenarioApprover {
|
|
53
|
+
}
|
|
54
|
+
export class UpdatedScenarioReceiver {
|
|
55
|
+
}
|
|
56
|
+
export class ScenarioSummary {
|
|
57
|
+
}
|
|
58
|
+
export class ScenarioClaim {
|
|
59
|
+
}
|
|
60
|
+
export class SharedScenarioSummary {
|
|
61
|
+
}
|
|
62
|
+
export class SharedScenario {
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmFyaW8udHlwZXMuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVjdHMvbmV3cmVwby9rYy1jbGllbnQvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvc2NlbmFyaW8vc2NlbmFyaW8udHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsV0FBVztBQUNYLG1EQUFtRDtBQUNuRCxtREFBbUQ7QUFDbkQsc0hBQXNIO0FBQ3RILG1IQUFtSDtBQUNuSCxnRUFBZ0U7QUFDaEUsMEVBQTBFO0FBRTFFLE1BQU0sQ0FBTixJQUFZLGFBV1g7QUFYRCxXQUFZLGFBQWE7SUFDdkIsaUZBQWlGO0lBQ2pGLHlDQUF5QztJQUN6QyxzQ0FBcUIsQ0FBQTtJQUNyQixvRUFBb0U7SUFDcEUsb0NBQW1CLENBQUE7SUFDbkIsa0NBQWtDO0lBQ2xDLG9DQUFtQixDQUFBO0lBQ25CLHdDQUF3QztJQUN4QyxzQ0FBcUIsQ0FBQTtJQUNyQixzQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBWFcsYUFBYSxLQUFiLGFBQWEsUUFXeEI7QUFFRCxNQUFNLENBQU4sSUFBWSxrQkFPWDtBQVBELFdBQVksa0JBQWtCO0lBQzVCLHlDQUFtQixDQUFBO0lBQ25CLDJDQUFxQixDQUFBO0lBQ3JCLHlDQUFtQixDQUFBO0lBQ25CLDJDQUFxQixDQUFBO0lBQ3JCLDZDQUF1QixDQUFBO0lBQ3ZCLHFDQUFlLENBQUE7QUFDakIsQ0FBQyxFQVBXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFPN0I7QUFFRCxNQUFNLENBQU4sSUFBWSxrQkFJWDtBQUpELFdBQVksa0JBQWtCO0lBQzVCLHlDQUFtQixDQUFBO0lBQ25CLDJDQUFxQixDQUFBO0lBQ3JCLDJDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBSTdCO0FBRUQsTUFBTSxPQUFPLFdBQVc7Q0FNdkI7QUFFRCxNQUFNLE9BQU8sbUJBQW1CO0NBSS9CO0FBRUQsTUFBTSxPQUFPLHdCQUF3QjtDQUtwQztBQUVELE1BQU0sT0FBTyxtQkFBbUI7Q0FJL0I7QUFFRCxNQUFNLE9BQU8sbUJBQW1CO0NBSy9CO0FBRUQsTUFBTSxPQUFPLGNBQWM7Q0FZMUI7QUFFRCxNQUFNLE9BQU8sdUJBQXVCO0NBTW5DO0FBRUQsTUFBTSxPQUFPLDRCQUE0QjtDQU94QztBQUVELE1BQU0sT0FBTyx1QkFBdUI7Q0FNbkM7QUFFRCxNQUFNLE9BQU8sdUJBQXVCO0NBT25DO0FBRUQsTUFBTSxPQUFPLGVBQWU7Q0FTM0I7QUFFRCxNQUFNLE9BQU8sYUFBYTtDQU96QjtBQUVELE1BQU0sT0FBTyxxQkFBcUI7Q0FPakM7QUFFRCxNQUFNLE9BQU8sY0FBYztDQWlCMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcmVwYXJlZFBlcm1pc3Npb25zIH0gZnJvbSAnLi4vYXBpL2tleS1leGNoYW5nZS50eXBlcyc7XHJcbmltcG9ydCB7IEtleSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9jcnlwdG9ncmFwaHkudHlwZXMnO1xyXG5pbXBvcnQgeyBTZWNyZXRTaGFyZSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9zbGlwMzkuc2VydmljZSc7XHJcbmltcG9ydCB7IFRydXN0ZWRQYXJ0eSB9IGZyb20gJy4uL3RydXN0ZWQtcGFydGllcy90cnVzdGVkLXBhcnR5LnR5cGVzJztcclxuaW1wb3J0IHsgQXBwcm92YWxHcm91cCB9IGZyb20gJy4vYXBwcm92YWxzL3NjZW5hcmlvLWFwcHJvdmFsLnR5cGVzJztcclxuaW1wb3J0IHsgQ2xhaW1hbnQgfSBmcm9tICcuL2NsYWltYW50cy9zY2VuYXJpby1jbGFpbWFudC50eXBlcyc7XHJcbmltcG9ydCB7IFJlY2VpdmVyIH0gZnJvbSAnLi9yZWNlaXZlcnMvc2NlbmFyaW8tcmVjZWl2ZXIudHlwZXMnO1xyXG5cclxuLy8gR2xvc3NhcnlcclxuLy8gLSBTdWJqZWN0OiB0aGUgdXNlciB0aGF0IHRoZSBzY2VuYXJpbyBhcHBsaWVzIHRvXHJcbi8vIC0gQXBwcm92ZXI6IHRoZSB1c2VyIHRoYXQgY2FuIGFwcHJvdmUgYSBzY2VuYXJpb1xyXG4vLyAtIEFwcHJvdmVyIHN1Yi1hc3NlbWJseTogYSBncm91cCBvZiBhcHByb3ZlcnMgdGhhdCBtdXN0IHJlYWNoIHF1b3J1bSBmb3IgdGhlIHN1Yi1hc3NlbWJseSB0byBiZSBjb25zaWRlcmVkIGFwcHJvdmVkXHJcbi8vIC0gQXBwcm92ZXIgYXNzZW1ibHk6IGEgZ3JvdXAgb2Ygc3ViLWFzc2VtYmxpZXMgdGhhdCBtdXN0IHJlYWNoIHF1b3J1bSBmb3IgdGhlIGFzc2VtYmx5IHRvIGJlIGNvbnNpZGVyZWQgYXBwcm92ZWRcclxuLy8gLSBSZWNlaXZlcjogYSB1c2VyIHRoYXQgd2lsbCByZWNlaXZlIHRoZSByZWxlYXNlZCBpbmZvcm1hdGlvblxyXG4vLyAtIENsYWltYW50OiBhIHVzZXIgdGhhdCBjYW4gc3RhcnQgdGhlIHByb2Nlc3Mgb2YgcmVsZWFzZSBvZiBpbmZvcm1hdGlvblxyXG5cclxuZXhwb3J0IGVudW0gU2NlbmFyaW9TdGF0ZSB7XHJcbiAgLy8gQ2FuIG5vdCBiZSBjbGFpbWVkIHdoZW4gRElTQUJMRUQuIFNjZW5hcmlvcyBjYW4gYmUgY3JlYXRlZCBpbiB0aGlzIHN0YXRlLCB0aGVuXHJcbiAgLy8gc2V0IHRvIEVOQUJMRUQgb25jZSBzZXR1cCBpcyBjb21wbGV0ZS5cclxuICBESVNBQkxFRCA9ICdESVNBQkxFRCcsXHJcbiAgLy8gQ2FuIGJlIGNsYWltZWQgd2hlbiBFTkFCTEVELiBJdCBzaXRzIGluIHRoaXMgc3RhdGUgdW50aWwgY2xhaW1lZC5cclxuICBFTkFCTEVEID0gJ0VOQUJMRUQnLFxyXG4gIC8vIENsYWltYW50IGhhcyBpbml0aWF0ZWQgYSBjbGFpbS5cclxuICBDTEFJTUVEID0gJ0NMQUlNRUQnLFxyXG4gIC8vIEFwcHJvdmVycyBoYXZlIGFwcHJvdmVkIHRoaXMgc2NlbmFyaW9cclxuICBBUFBST1ZFRCA9ICdBUFBST1ZFRCcsXHJcbiAgUkVKRUNURUQgPSAnUkVKRUNURUQnLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBTY2VuYXJpb0NsYWltU3RhdGUge1xyXG4gIENsYWltZWQgPSAnQ0xBSU1FRCcsXHJcbiAgQXBwcm92ZWQgPSAnQVBQUk9WRUQnLFxyXG4gIEV4cGlyZWQgPSAnRVhQSVJFRCcsXHJcbiAgUmVqZWN0ZWQgPSAnUkVKRUNURUQnLFxyXG4gIENhbmNlbGxlZCA9ICdDQU5DRUxMRUQnLFxyXG4gIFJlc2V0ID0gJ1JFU0VUJyxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gQXBwcm92ZXJDbGFpbVN0YXRlIHtcclxuICBDbGFpbWVkID0gJ0NMQUlNRUQnLFxyXG4gIEFwcHJvdmVkID0gJ0FQUFJPVkVEJyxcclxuICBSZWplY3RlZCA9ICdSRUpFQ1RFRCcsXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBOZXdTY2VuYXJpbyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGV2ZW50OiBzdHJpbmc7XHJcbiAgY2xhaW1hbnRzOiBOZXdTY2VuYXJpb0NsYWltYW50W107XHJcbiAgYXBwcm92YWxHcm91cHM6IE5ld1NjZW5hcmlvQXBwcm92YWxHcm91cFtdO1xyXG4gIHJlY2VpdmVyczogTmV3U2NlbmFyaW9SZWNlaXZlcltdO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTmV3U2NlbmFyaW9DbGFpbWFudCB7XHJcbiAgdHJ1c3RlZFBhcnR5SWQ6IHN0cmluZztcclxuICB0cnVzdGVkUGFydHlTaGFyZWRLZXlJZDogc3RyaW5nO1xyXG4gIG1lc3NhZ2U/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBOZXdTY2VuYXJpb0FwcHJvdmFsR3JvdXAge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBxdW9ydW06IG51bWJlcjtcclxuICBzaW5nbGVSZWplY3Q6IGJvb2xlYW47XHJcbiAgYXBwcm92ZXJzOiBOZXdTY2VuYXJpb0FwcHJvdmVyW107XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBOZXdTY2VuYXJpb0FwcHJvdmVyIHtcclxuICB0cnVzdGVkUGFydHlJZDogc3RyaW5nO1xyXG4gIHRydXN0ZWRQYXJ0eVNoYXJlZEtleUlkOiBzdHJpbmc7XHJcbiAgbWVzc2FnZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE5ld1NjZW5hcmlvUmVjZWl2ZXIge1xyXG4gIHRydXN0ZWRQYXJ0eUlkOiBzdHJpbmc7XHJcbiAgdHJ1c3RlZFBhcnR5U2hhcmVkS2V5SWQ6IHN0cmluZztcclxuICBwZXJtaXNzaW9uczogUHJlcGFyZWRQZXJtaXNzaW9ucztcclxuICBtZXNzYWdlPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVXBkYXRlU2NlbmFyaW8ge1xyXG4gIHNjZW5hcmlvSWQ6IHN0cmluZztcclxuICBrZXlJZDogc3RyaW5nO1xyXG4gIGFzc2VtYmx5S2V5SWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZXZlbnQ6IHN0cmluZztcclxuICBjbGFpbWFudHM6IFVwZGF0ZWRTY2VuYXJpb0NsYWltYW50W107XHJcbiAgZGVsZXRlZENsYWltYW50SWRzOiBzdHJpbmdbXTtcclxuICBhcHByb3ZhbEdyb3VwczogVXBkYXRlZFNjZW5hcmlvQXBwcm92YWxHcm91cFtdO1xyXG4gIGRlbGV0ZWRHcm91cElkczogc3RyaW5nW107XHJcbiAgcmVjZWl2ZXJzOiBVcGRhdGVkU2NlbmFyaW9SZWNlaXZlcltdO1xyXG4gIGRlbGV0ZWRSZWNlaXZlcklkczogc3RyaW5nW107XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBVcGRhdGVkU2NlbmFyaW9DbGFpbWFudCB7XHJcbiAgY2xhaW1hbnRJZD86IHN0cmluZztcclxuICBrZXlJZD86IHN0cmluZztcclxuICB0cnVzdGVkUGFydHlJZDogc3RyaW5nO1xyXG4gIHRydXN0ZWRQYXJ0eVNoYXJlZEtleUlkOiBzdHJpbmc7XHJcbiAgbWVzc2FnZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVwZGF0ZWRTY2VuYXJpb0FwcHJvdmFsR3JvdXAge1xyXG4gIHN1YkFzc2VtYmx5SWQ/OiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHF1b3J1bTogbnVtYmVyO1xyXG4gIHNpbmdsZVJlamVjdDogYm9vbGVhbjtcclxuICBhcHByb3ZlcnM6IFVwZGF0ZWRTY2VuYXJpb0FwcHJvdmVyW107XHJcbiAgZGVsZXRlZEFwcHJvdmVySWRzOiBzdHJpbmdbXTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVwZGF0ZWRTY2VuYXJpb0FwcHJvdmVyIHtcclxuICBhcHByb3ZlcklkPzogc3RyaW5nO1xyXG4gIGtleUlkPzogc3RyaW5nO1xyXG4gIHRydXN0ZWRQYXJ0eUlkOiBzdHJpbmc7XHJcbiAgdHJ1c3RlZFBhcnR5U2hhcmVkS2V5SWQ6IHN0cmluZztcclxuICBtZXNzYWdlPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVXBkYXRlZFNjZW5hcmlvUmVjZWl2ZXIge1xyXG4gIHJlY2VpdmVySWQ/OiBzdHJpbmc7XHJcbiAga2V5SWQ/OiBzdHJpbmc7XHJcbiAgdHJ1c3RlZFBhcnR5SWQ6IHN0cmluZztcclxuICB0cnVzdGVkUGFydHlTaGFyZWRLZXlJZDogc3RyaW5nO1xyXG4gIHBlcm1pc3Npb25zOiBQcmVwYXJlZFBlcm1pc3Npb25zO1xyXG4gIG1lc3NhZ2U/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTY2VuYXJpb1N1bW1hcnkge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgc3RhdHVzOiBTY2VuYXJpb1N0YXRlO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBldmVudDogc3RyaW5nO1xyXG4gIGNsYWltSWQ/OiBzdHJpbmc7XHJcbiAgY2xhaW1TdGF0dXM/OiBTY2VuYXJpb0NsYWltU3RhdGU7XHJcbiAgY3JlYXRlZE9uOiBzdHJpbmcgfCBEYXRlO1xyXG4gIGxhc3RNb2RpZmllZDogc3RyaW5nIHwgRGF0ZTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNjZW5hcmlvQ2xhaW0ge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgc3RhdGU6IFNjZW5hcmlvQ2xhaW1TdGF0ZTtcclxuICB0cmlnZ2VyZWRCeTogVHJ1c3RlZFBhcnR5O1xyXG4gIHRyaWdnZXJlZE9uOiBzdHJpbmc7XHJcbiAgbGFzdE1vZGlmaWVkOiBzdHJpbmc7XHJcbiAgc2NlbmFyaW86IFNjZW5hcmlvU3VtbWFyeTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNoYXJlZFNjZW5hcmlvU3VtbWFyeSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBzdGF0dXM6IFNjZW5hcmlvU3RhdGU7XHJcbiAgZXZlbnQ6IHN0cmluZztcclxuXHJcbiAgdHJ1c3RlZFBhcnR5OiBUcnVzdGVkUGFydHk7XHJcbiAgY2xhaW1TdGF0dXM/OiBTY2VuYXJpb0NsYWltU3RhdGU7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTaGFyZWRTY2VuYXJpbyB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBzdGF0dXM6IFNjZW5hcmlvU3RhdGU7XHJcbiAgZXZlbnQ6IHN0cmluZztcclxuXHJcbiAgdHJ1c3RlZFBhcnR5OiBUcnVzdGVkUGFydHk7XHJcbiAgaXNDbGFpbWFudDogYm9vbGVhbjtcclxuICBjbGFpbWFudE1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgaXNBcHByb3ZlcjogYm9vbGVhbjtcclxuICBhcHByb3Zlck1lc3NhZ2VzPzogc3RyaW5nW107XHJcbiAgaXNSZWNlaXZlcjogYm9vbGVhbjtcclxuICByZWNlaXZlck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgcmVjZWl2ZXJLZXlJZD86IHN0cmluZztcclxuICByZWNlaXZlclBia0lkPzogc3RyaW5nO1xyXG4gIHJlY2VpdmVyRGlyZWN0b3JpZXM/OiB7IGlkOiBzdHJpbmc7IHdyYXBwZWRJdGVtS2V5OiBzdHJpbmcgfVtdO1xyXG5cclxuICBjbGFpbT86IFNoYXJlZFNjZW5hcmlvQ2xhaW07XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2NlbmFyaW9DbGFpbSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBpc0NsYWltYW50OiBib29sZWFuO1xyXG4gIHN0YXR1czogU2NlbmFyaW9DbGFpbVN0YXRlO1xyXG4gIGFzQXBwcm92ZXJzPzogU2hhcmVkU2NlbmFyaW9DbGFpbUFwcHJvdmVyW107XHJcbiAgYXNSZWNlaXZlcj86IHtcclxuICAgIHJlY2VpdmVkOiBib29sZWFuO1xyXG4gICAgY2lwaGVyczogc3RyaW5nW107XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRTY2VuYXJpb0NsYWltQXBwcm92ZXIge1xyXG4gIGFwcHJvdmVySWQ6IHN0cmluZztcclxuICBhcHByb3ZlcktleTogc3RyaW5nO1xyXG4gIHN0YXR1czogQXBwcm92ZXJDbGFpbVN0YXRlO1xyXG4gIHJlY2VpdmVyczoge1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIHBia0lkOiBzdHJpbmc7XHJcbiAgfVtdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNjZW5hcmlvIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIGtleUlkOiBzdHJpbmc7XHJcbiAgYXNzZW1ibHlLZXlJZDogc3RyaW5nO1xyXG4gIGFzc2VtYmx5UXVvcnVtOiBudW1iZXI7XHJcbiAgc3RhdHVzOiBTY2VuYXJpb1N0YXRlO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBldmVudDogc3RyaW5nO1xyXG4gIGNsYWltYW50czogQ2xhaW1hbnRbXTtcclxuICBhcHByb3Zlckdyb3VwczogQXBwcm92YWxHcm91cFtdO1xyXG4gIHJlY2VpdmVyczogUmVjZWl2ZXJbXTtcclxuICBjbGFpbToge1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIHN0YXR1czogU2NlbmFyaW9DbGFpbVN0YXRlO1xyXG4gICAgY2xhaW1hbnQ6IENsYWltYW50O1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlU2NlbmFyaW9JbnB1dCB7XHJcbiAgcGxhaW5TdWJqZWN0Q2lwaGVyRGF0YTogb2JqZWN0O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVNjZW5hcmlvSW5wdXQge1xyXG4gIHNjZW5hcmlvSWQ6IHN0cmluZztcclxuICBrZXlJZDogc3RyaW5nO1xyXG4gIHBsYWluU3ViamVjdENpcGhlckRhdGE6IG9iamVjdDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYXJ0aWFsQXNzZW1ibHlLZXkge1xyXG4gIHNsaXAzOToge1xyXG4gICAgc2hhcmU6IFNlY3JldFNoYXJlO1xyXG4gICAgLy8gTWFpbmx5IGZvciBkZWJ1Z2dpbmcuXHJcbiAgICBzdWJBc3NlbWJseToge1xyXG4gICAgICBxdW9ydW06IG51bWJlcjtcclxuICAgICAgc2l6ZTogbnVtYmVyO1xyXG4gICAgfTtcclxuICB9O1xyXG4gIGFzc2VtYmx5S2V5UGFyYW1zOiBvYmplY3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkQ2xhaW1SZWNlaXZlciB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBwYms6IEtleTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRDbGFpbUFwcHJvdmVyIHtcclxuICByZWNlaXZlcnM6IHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBwYms6IEtleTtcclxuICB9W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkQ2xhaW1BcHByb3ZhbCB7XHJcbiAgcmVjZWl2ZXJQYmtDaXBoZXI6IHN0cmluZztcclxuICBwbGFpblJlY2VpdmVyUGJrQ2lwaGVyOiB7XHJcbiAgICBwYXJ0aWFsQXNzZW1ibHlLZXk6IFBhcnRpYWxBc3NlbWJseUtleTtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZENsYWltUmVjZWl2ZXIge1xyXG4gIHJlY2VpdmVkOiBib29sZWFuO1xyXG4gIGFwcHJvdmFsczogU2hhcmVkQ2xhaW1BcHByb3ZhbFtdO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import gql from 'graphql-tag';
|
|
2
|
+
import { KeyGraphFragment } from '../_common/queries.gql';
|
|
3
|
+
const MAX_CATEGORY_DEPTH = 4;
|
|
4
|
+
const DEFAULT_CATEGORY_DEPTH = 4;
|
|
5
|
+
export const SearchRecordContentsQuery = gql `
|
|
6
|
+
query GetRecordContents(
|
|
7
|
+
$id: LrRelayIdInput!
|
|
8
|
+
$depth: Int
|
|
9
|
+
$first: Int
|
|
10
|
+
$after: String
|
|
11
|
+
$recordContentFilter: LrJSONFilter!
|
|
12
|
+
) {
|
|
13
|
+
category: directory(id: $id) {
|
|
14
|
+
descendantDirectories(depth: $depth) {
|
|
15
|
+
recordContents: files(
|
|
16
|
+
first: $first
|
|
17
|
+
after: $after
|
|
18
|
+
plainMeta: $recordContentFilter
|
|
19
|
+
orderBy: "-created"
|
|
20
|
+
) {
|
|
21
|
+
edges {
|
|
22
|
+
node {
|
|
23
|
+
currentVersion {
|
|
24
|
+
state {
|
|
25
|
+
keyId
|
|
26
|
+
plainMeta
|
|
27
|
+
cipherMeta
|
|
28
|
+
contentResource
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
nParentDirectoryLinks(n: 1) {
|
|
32
|
+
list {
|
|
33
|
+
parentDirectory {
|
|
34
|
+
id
|
|
35
|
+
keyId
|
|
36
|
+
created
|
|
37
|
+
modified
|
|
38
|
+
archived
|
|
39
|
+
plainMeta
|
|
40
|
+
cipherMeta
|
|
41
|
+
nParentDirectoryLinks(n: 3) {
|
|
42
|
+
list {
|
|
43
|
+
parentDirectory {
|
|
44
|
+
id
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
keyGraph {
|
|
57
|
+
...KeyGraphFragment
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
${KeyGraphFragment}
|
|
61
|
+
`;
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmdxbC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWN0cy9uZXdyZXBvL2tjLWNsaWVudC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zZWFyY2gvc2VhcmNoLmdxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUM7QUFDOUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7QUFDN0IsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLENBQUM7QUFFakMsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBdUR4QyxnQkFBZ0I7Q0FDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBncWwgZnJvbSAnZ3JhcGhxbC10YWcnO1xyXG5pbXBvcnQgeyBLZXlHcmFwaEZyYWdtZW50IH0gZnJvbSAnLi4vX2NvbW1vbi9xdWVyaWVzLmdxbCc7XHJcbmNvbnN0IE1BWF9DQVRFR09SWV9ERVBUSCA9IDQ7XHJcbmNvbnN0IERFRkFVTFRfQ0FURUdPUllfREVQVEggPSA0O1xyXG5cclxuZXhwb3J0IGNvbnN0IFNlYXJjaFJlY29yZENvbnRlbnRzUXVlcnkgPSBncWxgXHJcbiAgcXVlcnkgR2V0UmVjb3JkQ29udGVudHMoXHJcbiAgICAkaWQ6IExyUmVsYXlJZElucHV0IVxyXG4gICAgJGRlcHRoOiBJbnRcclxuICAgICRmaXJzdDogSW50XHJcbiAgICAkYWZ0ZXI6IFN0cmluZ1xyXG4gICAgJHJlY29yZENvbnRlbnRGaWx0ZXI6IExySlNPTkZpbHRlciFcclxuICApIHtcclxuICAgIGNhdGVnb3J5OiBkaXJlY3RvcnkoaWQ6ICRpZCkge1xyXG4gICAgICBkZXNjZW5kYW50RGlyZWN0b3JpZXMoZGVwdGg6ICRkZXB0aCkge1xyXG4gICAgICAgIHJlY29yZENvbnRlbnRzOiBmaWxlcyhcclxuICAgICAgICAgIGZpcnN0OiAkZmlyc3RcclxuICAgICAgICAgIGFmdGVyOiAkYWZ0ZXJcclxuICAgICAgICAgIHBsYWluTWV0YTogJHJlY29yZENvbnRlbnRGaWx0ZXJcclxuICAgICAgICAgIG9yZGVyQnk6IFwiLWNyZWF0ZWRcIlxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgZWRnZXMge1xyXG4gICAgICAgICAgICBub2RlIHtcclxuICAgICAgICAgICAgICBjdXJyZW50VmVyc2lvbiB7XHJcbiAgICAgICAgICAgICAgICBzdGF0ZSB7XHJcbiAgICAgICAgICAgICAgICAgIGtleUlkXHJcbiAgICAgICAgICAgICAgICAgIHBsYWluTWV0YVxyXG4gICAgICAgICAgICAgICAgICBjaXBoZXJNZXRhXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnRSZXNvdXJjZVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBuUGFyZW50RGlyZWN0b3J5TGlua3MobjogMSkge1xyXG4gICAgICAgICAgICAgICAgbGlzdCB7XHJcbiAgICAgICAgICAgICAgICAgIHBhcmVudERpcmVjdG9yeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICAgICAgICBrZXlJZFxyXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRcclxuICAgICAgICAgICAgICAgICAgICBtb2RpZmllZFxyXG4gICAgICAgICAgICAgICAgICAgIGFyY2hpdmVkXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhaW5NZXRhXHJcbiAgICAgICAgICAgICAgICAgICAgY2lwaGVyTWV0YVxyXG4gICAgICAgICAgICAgICAgICAgIG5QYXJlbnREaXJlY3RvcnlMaW5rcyhuOiAzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBsaXN0IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50RGlyZWN0b3J5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBrZXlHcmFwaCB7XHJcbiAgICAgIC4uLktleUdyYXBoRnJhZ21lbnRcclxuICAgIH1cclxuICB9XHJcbiAgJHtLZXlHcmFwaEZyYWdtZW50fVxyXG5gO1xyXG4iXX0=
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { __awaiter, __decorate } from "tslib";
|
|
2
|
+
import { Injectable, NgZone } from '@angular/core';
|
|
3
|
+
import { LrApolloService } from '../api/lr-apollo.service';
|
|
4
|
+
import { CategoryService } from '../category/category.service';
|
|
5
|
+
import { KeyGraphService } from '../cryptography/key-graph.service';
|
|
6
|
+
import { RecordFieldType } from '../record-type/record-type.types';
|
|
7
|
+
import { RecordContentFilter } from '../record/record.gql';
|
|
8
|
+
import { RunOutsideAngular } from '../_common/run-outside-angular';
|
|
9
|
+
import { SearchRecordContentsQuery } from './search.gql';
|
|
10
|
+
import { SearchItemType } from './search.types';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "../api/lr-apollo.service";
|
|
13
|
+
import * as i2 from "../category/category.service";
|
|
14
|
+
import * as i3 from "../cryptography/key-graph.service";
|
|
15
|
+
function debugPopulateCategory(categoryService, recordService, keyFactory, categoryId, recordsPerCategory) {
|
|
16
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17
|
+
const tasks = [];
|
|
18
|
+
const category = yield categoryService.getCategory(categoryId);
|
|
19
|
+
// Create records
|
|
20
|
+
for (let i = category.records.length; i < recordsPerCategory; ++i) {
|
|
21
|
+
const name = `${category.category.name}+${keyFactory.randomString(16)}`;
|
|
22
|
+
console.log('Creating record: ', name);
|
|
23
|
+
yield recordService.createRecord({
|
|
24
|
+
categoryIds: [category.category.id],
|
|
25
|
+
name,
|
|
26
|
+
recordType: {
|
|
27
|
+
id: '1',
|
|
28
|
+
version: 1,
|
|
29
|
+
name: 'Vehicle Details',
|
|
30
|
+
},
|
|
31
|
+
fields: [
|
|
32
|
+
{
|
|
33
|
+
id: '1-vin',
|
|
34
|
+
type: RecordFieldType.Text,
|
|
35
|
+
label: 'VIN Number',
|
|
36
|
+
value: '1234567890',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: '1-location',
|
|
40
|
+
type: RecordFieldType.Text,
|
|
41
|
+
label: 'Location',
|
|
42
|
+
value: '10'.repeat(1000),
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
// Delete records
|
|
48
|
+
for (let i = category.records.length; i > recordsPerCategory; --i) {
|
|
49
|
+
const id = category.records[i - 1].id;
|
|
50
|
+
console.log('Deleting record: ', id);
|
|
51
|
+
yield recordService.deleteRecord(id);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
export function debugPopulateRecords(categoryService, recordService, keyFactory, recordsPerCategory) {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
const pillars = yield categoryService.getCategories();
|
|
58
|
+
// For each category, added records
|
|
59
|
+
for (const pillar of pillars) {
|
|
60
|
+
const category = yield categoryService.getCategory(pillar.id);
|
|
61
|
+
for (const subCategory of category.subCategories) {
|
|
62
|
+
if (subCategory.allowRecords) {
|
|
63
|
+
yield debugPopulateCategory(categoryService, recordService, keyFactory, subCategory.id, recordsPerCategory);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
let SearchService = class SearchService {
|
|
70
|
+
constructor(ngZone, lrApollo, categoryService, keyGraph) {
|
|
71
|
+
this.ngZone = ngZone;
|
|
72
|
+
this.lrApollo = lrApollo;
|
|
73
|
+
this.categoryService = categoryService;
|
|
74
|
+
this.keyGraph = keyGraph;
|
|
75
|
+
this.vaultItems = {};
|
|
76
|
+
}
|
|
77
|
+
mapRecordContent(recordContent) {
|
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
const record = recordContent.nParentDirectoryLinks.list[0].parentDirectory;
|
|
80
|
+
const state = recordContent.currentVersion.state;
|
|
81
|
+
const plainCipherMeta = state.cipherMeta &&
|
|
82
|
+
(yield this.keyGraph.decryptFromString(state.keyId, state.cipherMeta));
|
|
83
|
+
return {
|
|
84
|
+
type: SearchItemType.RECORD,
|
|
85
|
+
id: record.id,
|
|
86
|
+
created: new Date(record.created),
|
|
87
|
+
modified: new Date(record.modified),
|
|
88
|
+
archived: record.archived,
|
|
89
|
+
plainMeta: state.plainMeta &&
|
|
90
|
+
JSON.parse(recordContent.currentVersion.state.plainMeta),
|
|
91
|
+
plainCipherMeta,
|
|
92
|
+
parentCategoryId: record.nParentDirectoryLinks.list[0].parentDirectory.id,
|
|
93
|
+
};
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
mapRecordContents(edges) {
|
|
97
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
+
return Promise.all(edges.map((edge) => this.mapRecordContent(edge.node)));
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
load() {
|
|
102
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
103
|
+
const defaultVault = yield this.categoryService.getDefaultVault();
|
|
104
|
+
let start;
|
|
105
|
+
let end;
|
|
106
|
+
start = Date.now();
|
|
107
|
+
this.recordContentsResult = yield this.lrApollo.query({
|
|
108
|
+
query: SearchRecordContentsQuery,
|
|
109
|
+
variables: {
|
|
110
|
+
id: defaultVault.id,
|
|
111
|
+
depth: 5,
|
|
112
|
+
first: null,
|
|
113
|
+
after: null,
|
|
114
|
+
recordContentFilter: RecordContentFilter,
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
end = Date.now();
|
|
118
|
+
console.log('Search API time (s): ', (end - start) / 1000);
|
|
119
|
+
start = Date.now();
|
|
120
|
+
// try {
|
|
121
|
+
const items = yield this.mapRecordContents(this.recordContentsResult.category.descendantDirectories.recordContents
|
|
122
|
+
.edges);
|
|
123
|
+
for (const item of items) {
|
|
124
|
+
this.vaultItems[item.id] = item;
|
|
125
|
+
}
|
|
126
|
+
end = Date.now();
|
|
127
|
+
console.log('Search mapCategory time (s): ', (end - start) / 1000);
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
refresh() {
|
|
131
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
132
|
+
yield this.load();
|
|
133
|
+
console.log(Object.values(this.vaultItems));
|
|
134
|
+
return this.vaultItems;
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
SearchService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SearchService_Factory() { return new SearchService(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1.LrApolloService), i0.ɵɵinject(i2.CategoryService), i0.ɵɵinject(i3.KeyGraphService)); }, token: SearchService, providedIn: "root" });
|
|
139
|
+
SearchService.decorators = [
|
|
140
|
+
{ type: Injectable, args: [{
|
|
141
|
+
providedIn: 'root',
|
|
142
|
+
},] }
|
|
143
|
+
];
|
|
144
|
+
SearchService.ctorParameters = () => [
|
|
145
|
+
{ type: NgZone },
|
|
146
|
+
{ type: LrApolloService },
|
|
147
|
+
{ type: CategoryService },
|
|
148
|
+
{ type: KeyGraphService }
|
|
149
|
+
];
|
|
150
|
+
SearchService = __decorate([
|
|
151
|
+
RunOutsideAngular({
|
|
152
|
+
ngZoneName: 'ngZone',
|
|
153
|
+
})
|
|
154
|
+
], SearchService);
|
|
155
|
+
export { SearchService };
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVjdHMvbmV3cmVwby9rYy1jbGllbnQvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvc2VhcmNoL3NlYXJjaC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pELE9BQU8sRUFBYyxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFFNUQsU0FBZSxxQkFBcUIsQ0FDbEMsZUFBZ0MsRUFDaEMsYUFBNEIsRUFDNUIsVUFBNkIsRUFDN0IsVUFBa0IsRUFDbEIsa0JBQTBCOztRQUUxQixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxlQUFlLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRS9ELGlCQUFpQjtRQUNqQixLQUFLLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUNqRSxNQUFNLElBQUksR0FBRyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFB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QUFlO1lBQ2YsZUFBZTtZQUVmLGVBQWU7O0FBd0ZYLGFBQWE7SUFOekIsaUJBQWlCLENBQUM7UUFDakIsVUFBVSxFQUFFLFFBQVE7S0FDckIsQ0FBQztHQUlXLGFBQWEsQ0FpRnpCO1NBakZZLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTHJBcG9sbG9TZXJ2aWNlIH0gZnJvbSAnLi4vYXBpL2xyLWFwb2xsby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vY2F0ZWdvcnkvY2F0ZWdvcnkuc2VydmljZSc7XHJcbmltcG9ydCB7IEtleUZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L2tleS1mYWN0b3J5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkva2V5LWdyYXBoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZWNvcmRGaWVsZFR5cGUgfSBmcm9tICcuLi9yZWNvcmQtdHlwZS9yZWNvcmQtdHlwZS50eXBlcyc7XHJcbmltcG9ydCB7IFJlY29yZENvbnRlbnRGaWx0ZXIgfSBmcm9tICcuLi9yZWNvcmQvcmVjb3JkLmdxbCc7XHJcbmltcG9ydCB7IFJlY29yZFNlcnZpY2UgfSBmcm9tICcuLi9yZWNvcmQvcmVjb3JkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSdW5PdXRzaWRlQW5ndWxhciB9IGZyb20gJy4uL19jb21tb24vcnVuLW91dHNpZGUtYW5ndWxhcic7XHJcbmltcG9ydCB7IFNlYXJjaFJlY29yZENvbnRlbnRzUXVlcnkgfSBmcm9tICcuL3NlYXJjaC5ncWwnO1xyXG5pbXBvcnQgeyBTZWFyY2hJdGVtLCBTZWFyY2hJdGVtVHlwZSB9IGZyb20gJy4vc2VhcmNoLnR5cGVzJztcclxuXHJcbmFzeW5jIGZ1bmN0aW9uIGRlYnVnUG9wdWxhdGVDYXRlZ29yeShcclxuICBjYXRlZ29yeVNlcnZpY2U6IENhdGVnb3J5U2VydmljZSxcclxuICByZWNvcmRTZXJ2aWNlOiBSZWNvcmRTZXJ2aWNlLFxyXG4gIGtleUZhY3Rvcnk6IEtleUZhY3RvcnlTZXJ2aWNlLFxyXG4gIGNhdGVnb3J5SWQ6IHN0cmluZyxcclxuICByZWNvcmRzUGVyQ2F0ZWdvcnk6IG51bWJlclxyXG4pIHtcclxuICBjb25zdCB0YXNrcyA9IFtdO1xyXG5cclxuICBjb25zdCBjYXRlZ29yeSA9IGF3YWl0IGNhdGVnb3J5U2VydmljZS5nZXRDYXRlZ29yeShjYXRlZ29yeUlkKTtcclxuXHJcbiAgLy8gQ3JlYXRlIHJlY29yZHNcclxuICBmb3IgKGxldCBpID0gY2F0ZWdvcnkucmVjb3Jkcy5sZW5ndGg7IGkgPCByZWNvcmRzUGVyQ2F0ZWdvcnk7ICsraSkge1xyXG4gICAgY29uc3QgbmFtZSA9IGAke2NhdGVnb3J5LmNhdGVnb3J5Lm5hbWV9KyR7a2V5RmFjdG9yeS5yYW5kb21TdHJpbmcoMTYpfWA7XHJcbiAgICBjb25zb2xlLmxvZygnQ3JlYXRpbmcgcmVjb3JkOiAnLCBuYW1lKTtcclxuICAgIGF3YWl0IHJlY29yZFNlcnZpY2UuY3JlYXRlUmVjb3JkKHtcclxuICAgICAgY2F0ZWdvcnlJZHM6IFtjYXRlZ29yeS5jYXRlZ29yeS5pZF0sXHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIHJlY29yZFR5cGU6IHtcclxuICAgICAgICBpZDogJzEnLFxyXG4gICAgICAgIHZlcnNpb246IDEsXHJcbiAgICAgICAgbmFtZTogJ1ZlaGljbGUgRGV0YWlscycsXHJcbiAgICAgIH0sXHJcbiAgICAgIGZpZWxkczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIGlkOiAnMS12aW4nLFxyXG4gICAgICAgICAgdHlwZTogUmVjb3JkRmllbGRUeXBlLlRleHQsXHJcbiAgICAgICAgICBsYWJlbDogJ1ZJTiBOdW1iZXInLFxyXG4gICAgICAgICAgdmFsdWU6ICcxMjM0NTY3ODkwJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGlkOiAnMS1sb2NhdGlvbicsXHJcbiAgICAgICAgICB0eXBlOiBSZWNvcmRGaWVsZFR5cGUuVGV4dCxcclxuICAgICAgICAgIGxhYmVsOiAnTG9jYXRpb24nLFxyXG4gICAgICAgICAgdmFsdWU6ICcxMCcucmVwZWF0KDEwMDApLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIC8vIGF0dGFjaG1lbnRzXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIERlbGV0ZSByZWNvcmRzXHJcbiAgZm9yIChsZXQgaSA9IGNhdGVnb3J5LnJlY29yZHMubGVuZ3RoOyBpID4gcmVjb3Jkc1BlckNhdGVnb3J5OyAtLWkpIHtcclxuICAgIGNvbnN0IGlkID0gY2F0ZWdvcnkucmVjb3Jkc1tpIC0gMV0uaWQ7XHJcbiAgICBjb25zb2xlLmxvZygnRGVsZXRpbmcgcmVjb3JkOiAnLCBpZCk7XHJcbiAgICBhd2FpdCByZWNvcmRTZXJ2aWNlLmRlbGV0ZVJlY29yZChpZCk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVidWdQb3B1bGF0ZVJlY29yZHMoXHJcbiAgY2F0ZWdvcnlTZXJ2aWNlOiBDYXRlZ29yeVNlcnZpY2UsXHJcbiAgcmVjb3JkU2VydmljZTogUmVjb3JkU2VydmljZSxcclxuICBrZXlGYWN0b3J5OiBLZXlGYWN0b3J5U2VydmljZSxcclxuICByZWNvcmRzUGVyQ2F0ZWdvcnk6IG51bWJlclxyXG4pIHtcclxuICBjb25zdCBwaWxsYXJzID0gYXdhaXQgY2F0ZWdvcnlTZXJ2aWNlLmdldENhdGVnb3JpZXMoKTtcclxuXHJcbiAgLy8gRm9yIGVhY2ggY2F0ZWdvcnksIGFkZGVkIHJlY29yZHNcclxuICBmb3IgKGNvbnN0IHBpbGxhciBvZiBwaWxsYXJzKSB7XHJcbiAgICBjb25zdCBjYXRlZ29yeSA9IGF3YWl0IGNhdGVnb3J5U2VydmljZS5nZXRDYXRlZ29yeShwaWxsYXIuaWQpO1xyXG4gICAgZm9yIChjb25zdCBzdWJDYXRlZ29yeSBvZiBjYXRlZ29yeS5zdWJDYXRlZ29yaWVzKSB7XHJcbiAgICAgIGlmIChzdWJDYXRlZ29yeS5hbGxvd1JlY29yZHMpIHtcclxuICAgICAgICBhd2FpdCBkZWJ1Z1BvcHVsYXRlQ2F0ZWdvcnkoXHJcbiAgICAgICAgICBjYXRlZ29yeVNlcnZpY2UsXHJcbiAgICAgICAgICByZWNvcmRTZXJ2aWNlLFxyXG4gICAgICAgICAga2V5RmFjdG9yeSxcclxuICAgICAgICAgIHN1YkNhdGVnb3J5LmlkLFxyXG4gICAgICAgICAgcmVjb3Jkc1BlckNhdGVnb3J5XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcclxuICBuZ1pvbmVOYW1lOiAnbmdab25lJyxcclxufSlcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlYXJjaFNlcnZpY2Uge1xyXG4gIHZhdWx0SXRlbXM6IHsgW2l0ZW1JZDogc3RyaW5nXTogU2VhcmNoSXRlbSB9ID0ge307XHJcbiAgcmVjb3JkQ29udGVudHNSZXN1bHQ6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxyXG4gICAgcHJpdmF0ZSBsckFwb2xsbzogTHJBcG9sbG9TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjYXRlZ29yeVNlcnZpY2U6IENhdGVnb3J5U2VydmljZSxcclxuICAgIHByaXZhdGUga2V5R3JhcGg6IEtleUdyYXBoU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBtYXBSZWNvcmRDb250ZW50KHJlY29yZENvbnRlbnQ6IGFueSk6IFByb21pc2U8U2VhcmNoSXRlbT4ge1xyXG4gICAgY29uc3QgcmVjb3JkID0gcmVjb3JkQ29udGVudC5uUGFyZW50RGlyZWN0b3J5TGlua3MubGlzdFswXS5wYXJlbnREaXJlY3Rvcnk7XHJcbiAgICBjb25zdCBzdGF0ZSA9IHJlY29yZENvbnRlbnQuY3VycmVudFZlcnNpb24uc3RhdGU7XHJcblxyXG4gICAgY29uc3QgcGxhaW5DaXBoZXJNZXRhID1cclxuICAgICAgc3RhdGUuY2lwaGVyTWV0YSAmJlxyXG4gICAgICAoYXdhaXQgdGhpcy5rZXlHcmFwaC5kZWNyeXB0RnJvbVN0cmluZzxhbnk+KFxyXG4gICAgICAgIHN0YXRlLmtleUlkLFxyXG4gICAgICAgIHN0YXRlLmNpcGhlck1ldGFcclxuICAgICAgKSk7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogU2VhcmNoSXRlbVR5cGUuUkVDT1JELFxyXG4gICAgICBpZDogcmVjb3JkLmlkLFxyXG4gICAgICBjcmVhdGVkOiBuZXcgRGF0ZShyZWNvcmQuY3JlYXRlZCksXHJcbiAgICAgIG1vZGlmaWVkOiBuZXcgRGF0ZShyZWNvcmQubW9kaWZpZWQpLFxyXG4gICAgICBhcmNoaXZlZDogcmVjb3JkLmFyY2hpdmVkLFxyXG4gICAgICBwbGFpbk1ldGE6XHJcbiAgICAgICAgc3RhdGUucGxhaW5NZXRhICYmXHJcbiAgICAgICAgSlNPTi5wYXJzZShyZWNvcmRDb250ZW50LmN1cnJlbnRWZXJzaW9uLnN0YXRlLnBsYWluTWV0YSksXHJcbiAgICAgIHBsYWluQ2lwaGVyTWV0YSxcclxuICAgICAgcGFyZW50Q2F0ZWdvcnlJZDogcmVjb3JkLm5QYXJlbnREaXJlY3RvcnlMaW5rcy5saXN0WzBdLnBhcmVudERpcmVjdG9yeS5pZCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIG1hcFJlY29yZENvbnRlbnRzKGVkZ2VzOiBhbnlbXSk6IFByb21pc2U8U2VhcmNoSXRlbVtdPiB7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoZWRnZXMubWFwKChlZGdlKSA9PiB0aGlzLm1hcFJlY29yZENvbnRlbnQoZWRnZS5ub2RlKSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBsb2FkKCkge1xyXG4gICAgY29uc3QgZGVmYXVsdFZhdWx0ID0gYXdhaXQgdGhpcy5jYXRlZ29yeVNlcnZpY2UuZ2V0RGVmYXVsdFZhdWx0KCk7XHJcbiAgICBsZXQgc3RhcnQ7XHJcbiAgICBsZXQgZW5kO1xyXG5cclxuICAgIHN0YXJ0ID0gRGF0ZS5ub3coKTtcclxuXHJcbiAgICB0aGlzLnJlY29yZENvbnRlbnRzUmVzdWx0ID0gYXdhaXQgdGhpcy5sckFwb2xsby5xdWVyeTxhbnk+KHtcclxuICAgICAgcXVlcnk6IFNlYXJjaFJlY29yZENvbnRlbnRzUXVlcnksXHJcbiAgICAgIHZhcmlhYmxlczoge1xyXG4gICAgICAgIGlkOiBkZWZhdWx0VmF1bHQuaWQsXHJcbiAgICAgICAgZGVwdGg6IDUsXHJcbiAgICAgICAgZmlyc3Q6IG51bGwsXHJcbiAgICAgICAgYWZ0ZXI6IG51bGwsXHJcbiAgICAgICAgcmVjb3JkQ29udGVudEZpbHRlcjogUmVjb3JkQ29udGVudEZpbHRlcixcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIGVuZCA9IERhdGUubm93KCk7XHJcbiAgICBjb25zb2xlLmxvZygnU2VhcmNoIEFQSSB0aW1lIChzKTogJywgKGVuZCAtIHN0YXJ0KSAvIDEwMDApO1xyXG5cclxuICAgIHN0YXJ0ID0gRGF0ZS5ub3coKTtcclxuICAgIC8vIHRyeSB7XHJcbiAgICBjb25zdCBpdGVtcyA9IGF3YWl0IHRoaXMubWFwUmVjb3JkQ29udGVudHMoXHJcbiAgICAgIHRoaXMucmVjb3JkQ29udGVudHNSZXN1bHQuY2F0ZWdvcnkuZGVzY2VuZGFudERpcmVjdG9yaWVzLnJlY29yZENvbnRlbnRzXHJcbiAgICAgICAgLmVkZ2VzXHJcbiAgICApO1xyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XHJcbiAgICAgIHRoaXMudmF1bHRJdGVtc1tpdGVtLmlkXSA9IGl0ZW07XHJcbiAgICB9XHJcblxyXG4gICAgZW5kID0gRGF0ZS5ub3coKTtcclxuICAgIGNvbnNvbGUubG9nKCdTZWFyY2ggbWFwQ2F0ZWdvcnkgdGltZSAocyk6ICcsIChlbmQgLSBzdGFydCkgLyAxMDAwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyByZWZyZXNoKCkge1xyXG4gICAgYXdhaXQgdGhpcy5sb2FkKCk7XHJcblxyXG4gICAgY29uc29sZS5sb2coT2JqZWN0LnZhbHVlcyh0aGlzLnZhdWx0SXRlbXMpKTtcclxuICAgIHJldHVybiB0aGlzLnZhdWx0SXRlbXM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export var SearchItemType;
|
|
2
|
+
(function (SearchItemType) {
|
|
3
|
+
SearchItemType["RECORD"] = "RECORD";
|
|
4
|
+
SearchItemType["CATEGORY"] = "CATEGORY";
|
|
5
|
+
})(SearchItemType || (SearchItemType = {}));
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2plY3RzL25ld3JlcG8va2MtY2xpZW50L3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL3NlYXJjaC9zZWFyY2gudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVksY0FHWDtBQUhELFdBQVksY0FBYztJQUN4QixtQ0FBaUIsQ0FBQTtJQUNqQix1Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSFcsY0FBYyxLQUFkLGNBQWMsUUFHekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRnVzZSBmcm9tICdmdXNlLmpzJztcclxuXHJcbmV4cG9ydCBlbnVtIFNlYXJjaEl0ZW1UeXBlIHtcclxuICBSRUNPUkQgPSAnUkVDT1JEJyxcclxuICBDQVRFR09SWSA9ICdDQVRFR09SWScsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUmVjb3JkQXR0YWNobWVudCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaEl0ZW0ge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgdHlwZTogU2VhcmNoSXRlbVR5cGU7XHJcbiAgY3JlYXRlZDogRGF0ZTtcclxuICBtb2RpZmllZDogRGF0ZTtcclxuICBhcmNoaXZlZDogYm9vbGVhbjtcclxuICBwbGFpbk1ldGE6IGFueTtcclxuICBwbGFpbkNpcGhlck1ldGE6IGFueTtcclxuICBwYXJlbnRDYXRlZ29yeUlkPzogc3RyaW5nO1xyXG4gIGF0dGFjaG1lbnRzPzogU2VhcmNoUmVjb3JkQXR0YWNobWVudFtdO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTZWFyY2hSZXN1bHRzID0gRnVzZS5GdXNlUmVzdWx0PFNlYXJjaEl0ZW0+W107XHJcbiJdfQ==
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { __awaiter, __decorate } from "tslib";
|
|
2
|
+
import { Injectable, Injector, NgZone } from '@angular/core';
|
|
3
|
+
import { JWK } from 'node-jose';
|
|
4
|
+
import { LrMergedMutation, LrMutation, LrService, } from '../api/lr-graphql';
|
|
5
|
+
import { TpAssemblyState, TpClaimApproverState } from '../api/types';
|
|
6
|
+
import { EncryptionService } from '../cryptography/encryption.service';
|
|
7
|
+
import { LrBadStateException } from '../_common/exceptions';
|
|
8
|
+
import { RunOutsideAngular } from '../_common/run-outside-angular';
|
|
9
|
+
import { ApproveTpPasswordResetRequestMutation, RejectTpPasswordResetRequestMutation, SharedTpPasswordResetQuery, SharedTpPasswordResetsQuery, } from './tp-password-reset.gql';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "../cryptography/encryption.service";
|
|
12
|
+
let TpPasswordResetRequestService = class TpPasswordResetRequestService extends LrService {
|
|
13
|
+
constructor(ngZone, injector, encryptionService) {
|
|
14
|
+
super(injector);
|
|
15
|
+
this.ngZone = ngZone;
|
|
16
|
+
this.injector = injector;
|
|
17
|
+
this.encryptionService = encryptionService;
|
|
18
|
+
}
|
|
19
|
+
getSharedResets() {
|
|
20
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
return (yield this.query({
|
|
22
|
+
query: SharedTpPasswordResetsQuery,
|
|
23
|
+
})).sharedTpPasswordResets;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
getSharedReset(id) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
return (yield this.query({
|
|
29
|
+
query: SharedTpPasswordResetQuery,
|
|
30
|
+
variables: {
|
|
31
|
+
id,
|
|
32
|
+
},
|
|
33
|
+
})).sharedTpPasswordReset;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
activeRequestOrRaise(sharedReset) {
|
|
37
|
+
const state = sharedReset.sharedRequest.claim.state;
|
|
38
|
+
if (state !== TpAssemblyState.CLAIMED) {
|
|
39
|
+
throw new LrBadStateException(`Claim is already in ${state} state.`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
rejectRequest(sharedResetId) {
|
|
43
|
+
return this.mutate(this.rejectRequestMutation(sharedResetId));
|
|
44
|
+
}
|
|
45
|
+
rejectRequestMutation(sharedResetId) {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
const sharedReset = yield this.getSharedReset(sharedResetId);
|
|
48
|
+
this.activeRequestOrRaise(sharedReset);
|
|
49
|
+
return LrMergedMutation.create(sharedReset.sharedRequest.claim.asClaimApprovers.edges
|
|
50
|
+
.filter((edge) => edge.node.state === TpClaimApproverState.CLAIMED)
|
|
51
|
+
.map((edge) => new LrMutation({
|
|
52
|
+
mutation: RejectTpPasswordResetRequestMutation,
|
|
53
|
+
variables: { input: { claimApproverId: edge.node.id } },
|
|
54
|
+
})));
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
// ?? TODO The return from this should not be any.
|
|
58
|
+
approveRequest(sharedResetId, pbkFingerPrint) {
|
|
59
|
+
return this.mutate(this.approveRequestMutation(sharedResetId, pbkFingerPrint));
|
|
60
|
+
}
|
|
61
|
+
approveRequestMutation(sharedResetId, pbkFingerPrint) {
|
|
62
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
const sharedReset = yield this.getSharedReset(sharedResetId);
|
|
64
|
+
this.activeRequestOrRaise(sharedReset);
|
|
65
|
+
const pbk = yield JWK.asKey(JSON.parse(sharedReset.sharedRequest.pxk.pbk));
|
|
66
|
+
console.log(pbk.toJSON());
|
|
67
|
+
// TODO <AZ> Verify pbk against pbkFingerPrint
|
|
68
|
+
const claimApprovers = sharedReset.sharedRequest.claim.asClaimApprovers.edges.filter((edge) => edge.node.state === TpClaimApproverState.CLAIMED);
|
|
69
|
+
// A single approver may belong to multiple sub-assemblies. We approve them all here in a single
|
|
70
|
+
// transaction.
|
|
71
|
+
return LrMergedMutation.create(yield Promise.all(claimApprovers.map((approverEdge) => __awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
const ca = approverEdge.node;
|
|
73
|
+
const input = {
|
|
74
|
+
claimApproverId: ca.id,
|
|
75
|
+
receiverApprovals: yield Promise.all(ca.receiverApprovals.edges.map((receiverEdge) => __awaiter(this, void 0, void 0, function* () {
|
|
76
|
+
const ra = receiverEdge.node;
|
|
77
|
+
return {
|
|
78
|
+
receiverApprovalId: ra.id,
|
|
79
|
+
receiverCipher: '',
|
|
80
|
+
receiverCipherPartialAssemblyKey: yield this.encryptionService.encryptToString(pbk, ca.sharedCipherPartialAssemblyKeyClearJson),
|
|
81
|
+
};
|
|
82
|
+
}))),
|
|
83
|
+
};
|
|
84
|
+
console.log(input);
|
|
85
|
+
return new LrMutation({
|
|
86
|
+
mutation: ApproveTpPasswordResetRequestMutation,
|
|
87
|
+
variables: {
|
|
88
|
+
input,
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
}))));
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
TpPasswordResetRequestService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TpPasswordResetRequestService_Factory() { return new TpPasswordResetRequestService(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1.EncryptionService)); }, token: TpPasswordResetRequestService, providedIn: "root" });
|
|
96
|
+
TpPasswordResetRequestService.decorators = [
|
|
97
|
+
{ type: Injectable, args: [{
|
|
98
|
+
providedIn: 'root',
|
|
99
|
+
},] }
|
|
100
|
+
];
|
|
101
|
+
TpPasswordResetRequestService.ctorParameters = () => [
|
|
102
|
+
{ type: NgZone },
|
|
103
|
+
{ type: Injector },
|
|
104
|
+
{ type: EncryptionService }
|
|
105
|
+
];
|
|
106
|
+
TpPasswordResetRequestService = __decorate([
|
|
107
|
+
RunOutsideAngular({
|
|
108
|
+
ngZoneName: 'ngZone',
|
|
109
|
+
})
|
|
110
|
+
], TpPasswordResetRequestService);
|
|
111
|
+
export { TpPasswordResetRequestService };
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHAtcGFzc3dvcmQtcmVzZXQtcmVxdWVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2plY3RzL25ld3JlcG8va2MtY2xpZW50L3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL3RydXN0ZWQtcGFydGllcy90cC1wYXNzd29yZC1yZXNldC1yZXF1ZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFFTCxnQkFBZ0IsRUFDaEIsVUFBVSxFQUVWLFNBQVMsR0FDVixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUNMLHFDQUFxQyxFQUNyQyxvQ0FBb0MsRUFDcEMsMEJBQTBCLEVBQzFCLDJCQUEyQixHQUM1QixNQUFNLHlCQUF5QixDQUFDOzs7SUFRcEIsNkJBQTZCLFNBQTdCLDZCQUE4QixTQUFRLFNBQVM7SUFDMUQsWUFDVSxNQUFjLEVBQ2QsUUFBa0IsRUFDbEIsaUJBQW9DO1FBRTVDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUpSLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFHOUMsQ0FBQztJQUVLLGVBQWU7O1lBQ25CLE9BQU8sQ0FDTCxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ2YsS0FBSyxFQUFFLDJCQUEyQjthQUNuQyxDQUFDLENBQ0gsQ0FBQyxzQkFBc0IsQ0FBQztRQUMzQixDQUFDO0tBQUE7SUFFSyxjQUFjLENBQUMsRUFBRTs7WUFDckIsT0FBTyxDQUNMLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDZixLQUFLLEVBQUUsMEJBQTBCO2dCQUNqQyxTQUFTLEVBQUU7b0JBQ1QsRUFBRTtpQkFDSDthQUNGLENBQUMsQ0FDSCxDQUFDLHFCQUFxQixDQUFDO1FBQzFCLENBQUM7S0FBQTtJQUVPLG9CQUFvQixDQUFDLFdBQVc7UUFDdEMsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3BELElBQUksS0FBSyxLQUFLLGVBQWUsQ0FBQyxPQUFPLEVBQUU7WUFDckMsTUFBTSxJQUFJLG1CQUFtQixDQUFDLHVCQUF1QixLQUFLLFNBQVMsQ0FBQyxDQUFDO1NBQ3RFO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxhQUFxQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVLLHFCQUFxQixDQUFDLGFBQXFCOztZQUMvQyxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFN0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRXZDLE9BQU8sZ0JBQWdCLENBQUMsTUFBTSxDQUM1QixXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLO2lCQUNuRCxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLG9CQUFvQixDQUFDLE9BQU8sQ0FBQztpQkFDbEUsR0FBRyxDQUNGLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDUCxJQUFJLFVBQVUsQ0FBQztnQkFDYixRQUFRLEVBQUUsb0NBQW9DO2dCQUM5QyxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRTthQUN4RCxDQUFDLENBQ0wsQ0FDSixDQUFDO1FBQ0osQ0FBQztLQUFBO0lBRUQsa0RBQWtEO0lBQ2xELGNBQWMsQ0FBQyxhQUFxQixFQUFFLGNBQXVCO1FBQzNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FDaEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FDM0QsQ0FBQztJQUNKLENBQUM7SUFFSyxzQkFBc0IsQ0FBQyxhQUFxQixFQUFFLGNBQXVCOztZQUN6RSxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFN0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRXZDLE1BQU0sR0FBRyxHQUFHLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDM0UsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUUxQiw4Q0FBOEM7WUFFOUMsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDbEYsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLG9CQUFvQixDQUFDLE9BQU8sQ0FDM0QsQ0FBQztZQUVGLGdHQUFnRztZQUNoRyxlQUFlO1lBQ2YsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQzVCLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixjQUFjLENBQUMsR0FBRyxDQUFDLENBQU8sWUFBWSxFQUFFLEVBQUU7Z0JBQ3hDLE1BQU0sRUFBRSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQzdCLE1BQU0sS0FBSyxHQUFHO29CQUNaLGVBQWUsRUFBRSxFQUFFLENBQUMsRUFBRTtvQkFDdEIsaUJBQWlCLEVBQUUsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNsQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFPLFlBQVksRUFBRSxFQUFFO3dCQUNwRCxNQUFNLEVBQUUsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO3dCQUM3QixPQUFPOzRCQUNMLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxFQUFFOzRCQUN6QixjQUFjLEVBQUUsRUFBRTs0QkFDbEIsZ0NBQWdDLEVBQUUsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUM1RSxHQUFHLEVBQ0gsRUFBRSxDQUFDLHVDQUF1QyxDQUMzQzt5QkFDRixDQUFDO29CQUNKLENBQUMsQ0FBQSxDQUFDLENBQ0g7aUJBQ0YsQ0FBQztnQkFFRixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUVuQixPQUFPLElBQUksVUFBVSxDQUFDO29CQUNwQixRQUFRLEVBQUUscUNBQXFDO29CQUMvQyxTQUFTLEVBQUU7d0JBQ1QsS0FBSztxQkFDTjtpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDLENBQUEsQ0FBQyxDQUNILENBQ0YsQ0FBQztRQUNKLENBQUM7S0FBQTtDQUNGLENBQUE7OztZQXBIQSxVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQXpCOEIsTUFBTTtZQUFoQixRQUFRO1lBVXBCLGlCQUFpQjs7QUFnQmIsNkJBQTZCO0lBTnpDLGlCQUFpQixDQUFDO1FBQ2pCLFVBQVUsRUFBRSxRQUFRO0tBQ3JCLENBQUM7R0FJVyw2QkFBNkIsQ0FpSHpDO1NBakhZLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSldLIH0gZnJvbSAnbm9kZS1qb3NlJztcclxuaW1wb3J0IHtcclxuICBMckdyYXBoUUxTZXJ2aWNlLFxyXG4gIExyTWVyZ2VkTXV0YXRpb24sXHJcbiAgTHJNdXRhdGlvbixcclxuICBMck11dGF0aW9uQmFzZSxcclxuICBMclNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vYXBpL2xyLWdyYXBocWwnO1xyXG5pbXBvcnQgeyBUcEFzc2VtYmx5U3RhdGUsIFRwQ2xhaW1BcHByb3ZlclN0YXRlIH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcclxuaW1wb3J0IHsgRW5jcnlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkvZW5jcnlwdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTHJCYWRTdGF0ZUV4Y2VwdGlvbiB9IGZyb20gJy4uL19jb21tb24vZXhjZXB0aW9ucyc7XHJcbmltcG9ydCB7IFJ1bk91dHNpZGVBbmd1bGFyIH0gZnJvbSAnLi4vX2NvbW1vbi9ydW4tb3V0c2lkZS1hbmd1bGFyJztcclxuaW1wb3J0IHtcclxuICBBcHByb3ZlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uLFxyXG4gIFJlamVjdFRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcclxuICBTaGFyZWRUcFBhc3N3b3JkUmVzZXRRdWVyeSxcclxuICBTaGFyZWRUcFBhc3N3b3JkUmVzZXRzUXVlcnksXHJcbn0gZnJvbSAnLi90cC1wYXNzd29yZC1yZXNldC5ncWwnO1xyXG5cclxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcclxuICBuZ1pvbmVOYW1lOiAnbmdab25lJyxcclxufSlcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRwUGFzc3dvcmRSZXNldFJlcXVlc3RTZXJ2aWNlIGV4dGVuZHMgTHJTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgZW5jcnlwdGlvblNlcnZpY2U6IEVuY3J5cHRpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRTaGFyZWRSZXNldHMoKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICBhd2FpdCB0aGlzLnF1ZXJ5KHtcclxuICAgICAgICBxdWVyeTogU2hhcmVkVHBQYXNzd29yZFJlc2V0c1F1ZXJ5LFxyXG4gICAgICB9KVxyXG4gICAgKS5zaGFyZWRUcFBhc3N3b3JkUmVzZXRzO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0U2hhcmVkUmVzZXQoaWQpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIGF3YWl0IHRoaXMucXVlcnkoe1xyXG4gICAgICAgIHF1ZXJ5OiBTaGFyZWRUcFBhc3N3b3JkUmVzZXRRdWVyeSxcclxuICAgICAgICB2YXJpYWJsZXM6IHtcclxuICAgICAgICAgIGlkLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pXHJcbiAgICApLnNoYXJlZFRwUGFzc3dvcmRSZXNldDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWN0aXZlUmVxdWVzdE9yUmFpc2Uoc2hhcmVkUmVzZXQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN0YXRlID0gc2hhcmVkUmVzZXQuc2hhcmVkUmVxdWVzdC5jbGFpbS5zdGF0ZTtcclxuICAgIGlmIChzdGF0ZSAhPT0gVHBBc3NlbWJseVN0YXRlLkNMQUlNRUQpIHtcclxuICAgICAgdGhyb3cgbmV3IExyQmFkU3RhdGVFeGNlcHRpb24oYENsYWltIGlzIGFscmVhZHkgaW4gJHtzdGF0ZX0gc3RhdGUuYCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWplY3RSZXF1ZXN0KHNoYXJlZFJlc2V0SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKHRoaXMucmVqZWN0UmVxdWVzdE11dGF0aW9uKHNoYXJlZFJlc2V0SWQpKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHJlamVjdFJlcXVlc3RNdXRhdGlvbihzaGFyZWRSZXNldElkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHNoYXJlZFJlc2V0ID0gYXdhaXQgdGhpcy5nZXRTaGFyZWRSZXNldChzaGFyZWRSZXNldElkKTtcclxuXHJcbiAgICB0aGlzLmFjdGl2ZVJlcXVlc3RPclJhaXNlKHNoYXJlZFJlc2V0KTtcclxuXHJcbiAgICByZXR1cm4gTHJNZXJnZWRNdXRhdGlvbi5jcmVhdGUoXHJcbiAgICAgIHNoYXJlZFJlc2V0LnNoYXJlZFJlcXVlc3QuY2xhaW0uYXNDbGFpbUFwcHJvdmVycy5lZGdlc1xyXG4gICAgICAgIC5maWx0ZXIoKGVkZ2UpID0+IGVkZ2Uubm9kZS5zdGF0ZSA9PT0gVHBDbGFpbUFwcHJvdmVyU3RhdGUuQ0xBSU1FRClcclxuICAgICAgICAubWFwKFxyXG4gICAgICAgICAgKGVkZ2UpID0+XHJcbiAgICAgICAgICAgIG5ldyBMck11dGF0aW9uKHtcclxuICAgICAgICAgICAgICBtdXRhdGlvbjogUmVqZWN0VHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uLFxyXG4gICAgICAgICAgICAgIHZhcmlhYmxlczogeyBpbnB1dDogeyBjbGFpbUFwcHJvdmVySWQ6IGVkZ2Uubm9kZS5pZCB9IH0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vID8/IFRPRE8gVGhlIHJldHVybiBmcm9tIHRoaXMgc2hvdWxkIG5vdCBiZSBhbnkuXHJcbiAgYXBwcm92ZVJlcXVlc3Qoc2hhcmVkUmVzZXRJZDogc3RyaW5nLCBwYmtGaW5nZXJQcmludD86IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMubXV0YXRlKFxyXG4gICAgICB0aGlzLmFwcHJvdmVSZXF1ZXN0TXV0YXRpb24oc2hhcmVkUmVzZXRJZCwgcGJrRmluZ2VyUHJpbnQpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgYXBwcm92ZVJlcXVlc3RNdXRhdGlvbihzaGFyZWRSZXNldElkOiBzdHJpbmcsIHBia0ZpbmdlclByaW50Pzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBzaGFyZWRSZXNldCA9IGF3YWl0IHRoaXMuZ2V0U2hhcmVkUmVzZXQoc2hhcmVkUmVzZXRJZCk7XHJcblxyXG4gICAgdGhpcy5hY3RpdmVSZXF1ZXN0T3JSYWlzZShzaGFyZWRSZXNldCk7XHJcblxyXG4gICAgY29uc3QgcGJrID0gYXdhaXQgSldLLmFzS2V5KEpTT04ucGFyc2Uoc2hhcmVkUmVzZXQuc2hhcmVkUmVxdWVzdC5weGsucGJrKSk7XHJcbiAgICBjb25zb2xlLmxvZyhwYmsudG9KU09OKCkpO1xyXG5cclxuICAgIC8vIFRPRE8gPEFaPiBWZXJpZnkgcGJrIGFnYWluc3QgcGJrRmluZ2VyUHJpbnRcclxuXHJcbiAgICBjb25zdCBjbGFpbUFwcHJvdmVycyA9IHNoYXJlZFJlc2V0LnNoYXJlZFJlcXVlc3QuY2xhaW0uYXNDbGFpbUFwcHJvdmVycy5lZGdlcy5maWx0ZXIoXHJcbiAgICAgIChlZGdlKSA9PiBlZGdlLm5vZGUuc3RhdGUgPT09IFRwQ2xhaW1BcHByb3ZlclN0YXRlLkNMQUlNRURcclxuICAgICk7XHJcblxyXG4gICAgLy8gQSBzaW5nbGUgYXBwcm92ZXIgbWF5IGJlbG9uZyB0byBtdWx0aXBsZSBzdWItYXNzZW1ibGllcy4gV2UgYXBwcm92ZSB0aGVtIGFsbCBoZXJlIGluIGEgc2luZ2xlXHJcbiAgICAvLyB0cmFuc2FjdGlvbi5cclxuICAgIHJldHVybiBMck1lcmdlZE11dGF0aW9uLmNyZWF0ZShcclxuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgY2xhaW1BcHByb3ZlcnMubWFwKGFzeW5jIChhcHByb3ZlckVkZ2UpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGNhID0gYXBwcm92ZXJFZGdlLm5vZGU7XHJcbiAgICAgICAgICBjb25zdCBpbnB1dCA9IHtcclxuICAgICAgICAgICAgY2xhaW1BcHByb3ZlcklkOiBjYS5pZCxcclxuICAgICAgICAgICAgcmVjZWl2ZXJBcHByb3ZhbHM6IGF3YWl0IFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgICAgIGNhLnJlY2VpdmVyQXBwcm92YWxzLmVkZ2VzLm1hcChhc3luYyAocmVjZWl2ZXJFZGdlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByYSA9IHJlY2VpdmVyRWRnZS5ub2RlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgcmVjZWl2ZXJBcHByb3ZhbElkOiByYS5pZCxcclxuICAgICAgICAgICAgICAgICAgcmVjZWl2ZXJDaXBoZXI6ICcnLFxyXG4gICAgICAgICAgICAgICAgICByZWNlaXZlckNpcGhlclBhcnRpYWxBc3NlbWJseUtleTogYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0VG9TdHJpbmcoXHJcbiAgICAgICAgICAgICAgICAgICAgcGJrLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhLnNoYXJlZENpcGhlclBhcnRpYWxBc3NlbWJseUtleUNsZWFySnNvblxyXG4gICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcclxuICAgICAgICAgICAgbXV0YXRpb246IEFwcHJvdmVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24sXHJcbiAgICAgICAgICAgIHZhcmlhYmxlczoge1xyXG4gICAgICAgICAgICAgIGlucHV0LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { __awaiter, __decorate } from "tslib";
|
|
2
|
+
import { Inject, Injectable, Injector, NgZone } from '@angular/core';
|
|
3
|
+
import { EncryptionService } from '../cryptography/encryption.service';
|
|
4
|
+
import { KeyGraphService } from '../cryptography/key-graph.service';
|
|
5
|
+
import { LR_CONFIG } from '../life-ready.config';
|
|
6
|
+
import * as slip from '../cryptography/slip39.service';
|
|
7
|
+
import { PasswordService } from '../auth/password.service';
|
|
8
|
+
import { HttpClient } from '@angular/common/http';
|
|
9
|
+
import { AuthClass } from '@aws-amplify/auth/lib-esm/Auth';
|
|
10
|
+
import { LifeReadyAuthService } from '../auth/life-ready-auth.service';
|
|
11
|
+
import { KeyFactoryService } from '../cryptography/key-factory.service';
|
|
12
|
+
import { LrService } from '../api/lr-graphql';
|
|
13
|
+
import { RunOutsideAngular } from '../_common/run-outside-angular';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
import * as i1 from "../life-ready.config";
|
|
16
|
+
import * as i2 from "../cryptography/key-factory.service";
|
|
17
|
+
import * as i3 from "../cryptography/encryption.service";
|
|
18
|
+
import * as i4 from "../cryptography/key-graph.service";
|
|
19
|
+
import * as i5 from "../cryptography/slip39.service";
|
|
20
|
+
import * as i6 from "../auth/password.service";
|
|
21
|
+
import * as i7 from "@angular/common/http";
|
|
22
|
+
import * as i8 from "@aws-amplify/auth/lib-esm/Auth";
|
|
23
|
+
import * as i9 from "../auth/life-ready-auth.service";
|
|
24
|
+
let TpPasswordResetUserService = class TpPasswordResetUserService extends LrService {
|
|
25
|
+
constructor(ngZone, injector, config, keyFactory, encryptionService, keyGraphService, slip39Service, passwordService, http, auth, lrAuth) {
|
|
26
|
+
super(injector);
|
|
27
|
+
this.ngZone = ngZone;
|
|
28
|
+
this.injector = injector;
|
|
29
|
+
this.config = config;
|
|
30
|
+
this.keyFactory = keyFactory;
|
|
31
|
+
this.encryptionService = encryptionService;
|
|
32
|
+
this.keyGraphService = keyGraphService;
|
|
33
|
+
this.slip39Service = slip39Service;
|
|
34
|
+
this.passwordService = passwordService;
|
|
35
|
+
this.http = http;
|
|
36
|
+
this.auth = auth;
|
|
37
|
+
this.lrAuth = lrAuth;
|
|
38
|
+
}
|
|
39
|
+
verifyEmailContact(email) {
|
|
40
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
const params = {
|
|
42
|
+
email,
|
|
43
|
+
};
|
|
44
|
+
return this.http
|
|
45
|
+
.post(`${this.config.authUrl}tp/password-reset/verify-contact/`, params)
|
|
46
|
+
.toPromise();
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
verifyContactRespond(claimId, claimCode) {
|
|
50
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
const { token } = yield this.http
|
|
52
|
+
.post(`${this.config.authUrl}cove/respond/`, {
|
|
53
|
+
claim_id: claimId,
|
|
54
|
+
v_code: claimCode,
|
|
55
|
+
})
|
|
56
|
+
.toPromise();
|
|
57
|
+
return token;
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
requestReset(password, claimId, claimToken) {
|
|
61
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
+
// Generate the key materials
|
|
63
|
+
const passKeyBundle = yield this.passwordService.createPassKeyBundle(password);
|
|
64
|
+
const masterKey = yield this.keyFactory.createKey();
|
|
65
|
+
const wrappedMasterKey = yield this.encryptionService.encrypt(passKeyBundle.passKey, masterKey.toJSON(true));
|
|
66
|
+
// Ephemeral PKC key
|
|
67
|
+
const prk = yield this.keyFactory.createPkcKey();
|
|
68
|
+
const masterKeyWrappedPrk = yield this.encryptionService.encrypt(masterKey, prk.toJSON(true));
|
|
69
|
+
// API call to setup reset request
|
|
70
|
+
const requestResetResult = yield this.http
|
|
71
|
+
.post(`${this.config.authUrl}tp/password-reset/request/`, {
|
|
72
|
+
claimId,
|
|
73
|
+
claimToken,
|
|
74
|
+
pass_key_params: passKeyBundle.passKeyParams,
|
|
75
|
+
pass_idp_params: passKeyBundle.passIdpParams,
|
|
76
|
+
pass_idp_verifier_pbk: passKeyBundle.passIdpVerifier.toJSON(),
|
|
77
|
+
wrapped_pass_idp_verifier_prk: passKeyBundle.wrappedPassIdpVerifierPrk,
|
|
78
|
+
wrapped_master_key: wrappedMasterKey,
|
|
79
|
+
pbk: prk.toJSON(),
|
|
80
|
+
master_key_wrapped_prk: masterKeyWrappedPrk,
|
|
81
|
+
})
|
|
82
|
+
.toPromise();
|
|
83
|
+
console.log(requestResetResult);
|
|
84
|
+
console.log('Using new password: ', this.passwordService.getPassIdpString(passKeyBundle.passIdp));
|
|
85
|
+
// API call to create user on cognito
|
|
86
|
+
const signUpResult = yield this.auth.signUp({
|
|
87
|
+
username: requestResetResult.reset_username,
|
|
88
|
+
password: this.passwordService.getPassIdpString(passKeyBundle.passIdp),
|
|
89
|
+
clientMetadata: {
|
|
90
|
+
tp_password_reset_request: JSON.stringify({
|
|
91
|
+
id: requestResetResult.id,
|
|
92
|
+
associate_reset_user_token: requestResetResult.associate_reset_user_token,
|
|
93
|
+
}),
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
console.log('requestRest done: ', signUpResult);
|
|
97
|
+
return {
|
|
98
|
+
requestResetResult,
|
|
99
|
+
signUpResult,
|
|
100
|
+
};
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
TpPasswordResetUserService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TpPasswordResetUserService_Factory() { return new TpPasswordResetUserService(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1.LR_CONFIG), i0.ɵɵinject(i2.KeyFactoryService), i0.ɵɵinject(i3.EncryptionService), i0.ɵɵinject(i4.KeyGraphService), i0.ɵɵinject(i5.Slip39Service), i0.ɵɵinject(i6.PasswordService), i0.ɵɵinject(i7.HttpClient), i0.ɵɵinject(i8.AuthClass), i0.ɵɵinject(i9.LifeReadyAuthService)); }, token: TpPasswordResetUserService, providedIn: "root" });
|
|
105
|
+
TpPasswordResetUserService.decorators = [
|
|
106
|
+
{ type: Injectable, args: [{
|
|
107
|
+
providedIn: 'root',
|
|
108
|
+
},] }
|
|
109
|
+
];
|
|
110
|
+
TpPasswordResetUserService.ctorParameters = () => [
|
|
111
|
+
{ type: NgZone },
|
|
112
|
+
{ type: Injector },
|
|
113
|
+
{ type: undefined, decorators: [{ type: Inject, args: [LR_CONFIG,] }] },
|
|
114
|
+
{ type: KeyFactoryService },
|
|
115
|
+
{ type: EncryptionService },
|
|
116
|
+
{ type: KeyGraphService },
|
|
117
|
+
{ type: slip.Slip39Service },
|
|
118
|
+
{ type: PasswordService },
|
|
119
|
+
{ type: HttpClient },
|
|
120
|
+
{ type: AuthClass },
|
|
121
|
+
{ type: LifeReadyAuthService }
|
|
122
|
+
];
|
|
123
|
+
TpPasswordResetUserService = __decorate([
|
|
124
|
+
RunOutsideAngular({
|
|
125
|
+
ngZoneName: 'ngZone',
|
|
126
|
+
})
|
|
127
|
+
], TpPasswordResetUserService);
|
|
128
|
+
export { TpPasswordResetUserService };
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHAtcGFzc3dvcmQtcmVzZXQtdXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2plY3RzL25ld3JlcG8va2MtY2xpZW50L3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL3RydXN0ZWQtcGFydGllcy90cC1wYXNzd29yZC1yZXNldC11c2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBbUIsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEUsT0FBTyxLQUFLLElBQUksTUFBTSxnQ0FBZ0MsQ0FBQztBQVF2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU0zRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV4RSxPQUFPLEVBQWMsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7O0lBU3RELDBCQUEwQixTQUExQiwwQkFBMkIsU0FBUSxTQUFTO0lBQ3ZELFlBQ1UsTUFBYyxFQUNkLFFBQWtCLEVBQ0MsTUFBdUIsRUFDMUMsVUFBNkIsRUFDN0IsaUJBQW9DLEVBQ3BDLGVBQWdDLEVBQ2hDLGFBQWlDLEVBQ2pDLGVB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VCxzQkFBc0IsRUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQzdELENBQUM7WUFFRixxQ0FBcUM7WUFDckMsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDMUMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLGNBQWM7Z0JBQzNDLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7Z0JBQ3RFLGNBQWMsRUFBRTtvQkFDZCx5QkFBeUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO3dCQUN4QyxFQUFFLEVBQUUsa0JBQWtCLENBQUMsRUFBRTt3QkFDekIsMEJBQTBCLEVBQ3hCLGtCQUFrQixDQUFDLDBCQUEwQjtxQkFDaEQsQ0FBQztpQkFDSDthQUNGLENBQUMsQ0FBQztZQUVILE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFFaEQsT0FBTztnQkFDTCxrQkFBa0I7Z0JBQ2xCLFlBQVk7YUFDYixDQUFDO1FBQ0osQ0FBQztLQUFBO0NBQ0YsQ0FBQTs7O1lBcEhBLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBaENzQyxNQUFNO1lBQWhCLFFBQVE7NENBcUNoQyxNQUFNLFNBQUMsU0FBUztZQWhCWixpQkFBaUI7WUFwQmpCLGlCQUFpQjtZQUNqQixlQUFlO1lBRVosSUFBSSxDQXFDZ0IsYUFBYTtZQTdCcEMsZUFBZTtZQUNmLFVBQVU7WUFDVixTQUFTO1lBTVQsb0JBQW9COztBQWFoQiwwQkFBMEI7SUFOdEMsaUJBQWlCLENBQUM7UUFDakIsVUFBVSxFQUFFLFFBQVE7S0FDckIsQ0FBQztHQUlXLDBCQUEwQixDQWlIdEM7U0FqSFksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHViIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2NvcmUnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRW5jcnlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkvZW5jcnlwdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgS2V5R3JhcGhTZXJ2aWNlIH0gZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L2tleS1ncmFwaC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGlmZVJlYWR5Q29uZmlnLCBMUl9DT05GSUcgfSBmcm9tICcuLi9saWZlLXJlYWR5LmNvbmZpZyc7XHJcbmltcG9ydCAqIGFzIHNsaXAgZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L3NsaXAzOS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSldLIH0gZnJvbSAnbm9kZS1qb3NlJztcclxuaW1wb3J0IHsgTHJCYWRTdGF0ZUV4Y2VwdGlvbiwgTHJFeGNlcHRpb24gfSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBsZXRlVHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uLFxyXG4gIENyZWF0ZVRwQXNzZW1ibHlLZXlDaGFsbGVuZ2VNdXRhdGlvbixcclxuICBQcmVDb21wbGV0ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcclxufSBmcm9tICcuL3RwLXBhc3N3b3JkLXJlc2V0LmdxbCc7XHJcbmltcG9ydCB7IFBhc3N3b3JkU2VydmljZSB9IGZyb20gJy4uL2F1dGgvcGFzc3dvcmQuc2VydmljZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEF1dGhDbGFzcyB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9hdXRoL2xpYi1lc20vQXV0aCc7XHJcbmltcG9ydCB7XHJcbiAgUmVxdWVzdFJlc2V0UmVzdWx0LFxyXG4gIFRwUGFzc3dvcmRSZXNldFNlcnZpY2UsXHJcbn0gZnJvbSAnLi90cC1wYXNzd29yZC1yZXNldC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSVNpZ25VcFJlc3VsdCB9IGZyb20gJ2FtYXpvbi1jb2duaXRvLWlkZW50aXR5LWpzJztcclxuaW1wb3J0IHsgTGlmZVJlYWR5QXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoL2xpZmUtcmVhZHktYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgS2V5RmFjdG9yeVNlcnZpY2UgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkva2V5LWZhY3Rvcnkuc2VydmljZSc7XHJcbmltcG9ydCB7IFRwQ2xhaW1TdGF0ZSwgVHBQYXNzd29yZFJlc2V0VXNlck5vZGUgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xyXG5pbXBvcnQgeyBMck11dGF0aW9uLCBMclNlcnZpY2UgfSBmcm9tICcuLi9hcGkvbHItZ3JhcGhxbCc7XHJcbmltcG9ydCB7IFJ1bk91dHNpZGVBbmd1bGFyIH0gZnJvbSAnLi4vX2NvbW1vbi9ydW4tb3V0c2lkZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgVHBQYXNzd29yZFJlc2V0VXNlciB9IGZyb20gJy4uL2F1dGgvYXV0aC50eXBlcyc7XHJcblxyXG5AUnVuT3V0c2lkZUFuZ3VsYXIoe1xyXG4gIG5nWm9uZU5hbWU6ICduZ1pvbmUnLFxyXG59KVxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHBQYXNzd29yZFJlc2V0VXNlclNlcnZpY2UgZXh0ZW5kcyBMclNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgQEluamVjdChMUl9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBMaWZlUmVhZHlDb25maWcsXHJcbiAgICBwcml2YXRlIGtleUZhY3Rvcnk6IEtleUZhY3RvcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbmNyeXB0aW9uU2VydmljZTogRW5jcnlwdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGtleUdyYXBoU2VydmljZTogS2V5R3JhcGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzbGlwMzlTZXJ2aWNlOiBzbGlwLlNsaXAzOVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHBhc3N3b3JkU2VydmljZTogUGFzc3dvcmRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoQ2xhc3MsXHJcbiAgICBwcml2YXRlIGxyQXV0aDogTGlmZVJlYWR5QXV0aFNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKGluamVjdG9yKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHZlcmlmeUVtYWlsQ29udGFjdChlbWFpbCk6IFByb21pc2U8eyBjbGFpbUlkOiBzdHJpbmcgfT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0ge1xyXG4gICAgICBlbWFpbCxcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oXHJcbiAgICAgICAgYCR7dGhpcy5jb25maWcuYXV0aFVybH10cC9wYXNzd29yZC1yZXNldC92ZXJpZnktY29udGFjdC9gLFxyXG4gICAgICAgIHBhcmFtc1xyXG4gICAgICApXHJcbiAgICAgIC50b1Byb21pc2UoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHZlcmlmeUNvbnRhY3RSZXNwb25kKFxyXG4gICAgY2xhaW1JZDogc3RyaW5nLFxyXG4gICAgY2xhaW1Db2RlOiBzdHJpbmdcclxuICApOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgY29uc3QgeyB0b2tlbiB9ID0gYXdhaXQgdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PHsgdG9rZW4gfT4oYCR7dGhpcy5jb25maWcuYXV0aFVybH1jb3ZlL3Jlc3BvbmQvYCwge1xyXG4gICAgICAgIGNsYWltX2lkOiBjbGFpbUlkLFxyXG4gICAgICAgIHZfY29kZTogY2xhaW1Db2RlLFxyXG4gICAgICB9KVxyXG4gICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICByZXR1cm4gdG9rZW47XHJcbiAgfVxyXG5cclxuICBhc3luYyByZXF1ZXN0UmVzZXQoXHJcbiAgICBwYXNzd29yZDogc3RyaW5nLFxyXG4gICAgY2xhaW1JZDogc3RyaW5nLFxyXG4gICAgY2xhaW1Ub2tlbjogc3RyaW5nXHJcbiAgKTogUHJvbWlzZTx7XHJcbiAgICByZXF1ZXN0UmVzZXRSZXN1bHQ6IFJlcXVlc3RSZXNldFJlc3VsdDtcclxuICAgIHNpZ25VcFJlc3VsdDogSVNpZ25VcFJlc3VsdDtcclxuICB9PiB7XHJcbiAgICAvLyBHZW5lcmF0ZSB0aGUga2V5IG1hdGVyaWFsc1xyXG4gICAgY29uc3QgcGFzc0tleUJ1bmRsZSA9IGF3YWl0IHRoaXMucGFzc3dvcmRTZXJ2aWNlLmNyZWF0ZVBhc3NLZXlCdW5kbGUoXHJcbiAgICAgIHBhc3N3b3JkXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IG1hc3RlcktleSA9IGF3YWl0IHRoaXMua2V5RmFjdG9yeS5jcmVhdGVLZXkoKTtcclxuICAgIGNvbnN0IHdyYXBwZWRNYXN0ZXJLZXkgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHQoXHJcbiAgICAgIHBhc3NLZXlCdW5kbGUucGFzc0tleSxcclxuICAgICAgbWFzdGVyS2V5LnRvSlNPTih0cnVlKVxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBFcGhlbWVyYWwgUEtDIGtleVxyXG4gICAgY29uc3QgcHJrID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZVBrY0tleSgpO1xyXG4gICAgY29uc3QgbWFzdGVyS2V5V3JhcHBlZFByayA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdChcclxuICAgICAgbWFzdGVyS2V5LFxyXG4gICAgICBwcmsudG9KU09OKHRydWUpXHJcbiAgICApO1xyXG5cclxuICAgIC8vIEFQSSBjYWxsIHRvIHNldHVwIHJlc2V0IHJlcXVlc3RcclxuICAgIGNvbnN0IHJlcXVlc3RSZXNldFJlc3VsdCA9IGF3YWl0IHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxSZXF1ZXN0UmVzZXRSZXN1bHQ+KFxyXG4gICAgICAgIGAke3RoaXMuY29uZmlnLmF1dGhVcmx9dHAvcGFzc3dvcmQtcmVzZXQvcmVxdWVzdC9gLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGNsYWltSWQsXHJcbiAgICAgICAgICBjbGFpbVRva2VuLFxyXG4gICAgICAgICAgcGFzc19rZXlfcGFyYW1zOiBwYXNzS2V5QnVuZGxlLnBhc3NLZXlQYXJhbXMsXHJcbiAgICAgICAgICBwYXNzX2lkcF9wYXJhbXM6IHBhc3NLZXlCdW5kbGUucGFzc0lkcFBhcmFtcyxcclxuICAgICAgICAgIHBhc3NfaWRwX3ZlcmlmaWVyX3BiazogcGFzc0tleUJ1bmRsZS5wYXNzSWRwVmVyaWZpZXIudG9KU09OKCksIC8vIHB1YmxpYyBrZXlcclxuICAgICAgICAgIHdyYXBwZWRfcGFzc19pZHBfdmVyaWZpZXJfcHJrOlxyXG4gICAgICAgICAgICBwYXNzS2V5QnVuZGxlLndyYXBwZWRQYXNzSWRwVmVyaWZpZXJQcmssXHJcbiAgICAgICAgICB3cmFwcGVkX21hc3Rlcl9rZXk6IHdyYXBwZWRNYXN0ZXJLZXksXHJcbiAgICAgICAgICBwYms6IHByay50b0pTT04oKSwgLy8gZXBoZW1lcmFsIHB1YmxpYyBrZXlcclxuICAgICAgICAgIG1hc3Rlcl9rZXlfd3JhcHBlZF9wcms6IG1hc3RlcktleVdyYXBwZWRQcmssXHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICAgIC50b1Byb21pc2UoKTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhyZXF1ZXN0UmVzZXRSZXN1bHQpO1xyXG4gICAgY29uc29sZS5sb2coXHJcbiAgICAgICdVc2luZyBuZXcgcGFzc3dvcmQ6ICcsXHJcbiAgICAgIHRoaXMucGFzc3dvcmRTZXJ2aWNlLmdldFBhc3NJZHBTdHJpbmcocGFzc0tleUJ1bmRsZS5wYXNzSWRwKVxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBBUEkgY2FsbCB0byBjcmVhdGUgdXNlciBvbiBjb2duaXRvXHJcbiAgICBjb25zdCBzaWduVXBSZXN1bHQgPSBhd2FpdCB0aGlzLmF1dGguc2lnblVwKHtcclxuICAgICAgdXNlcm5hbWU6IHJlcXVlc3RSZXNldFJlc3VsdC5yZXNldF91c2VybmFtZSxcclxuICAgICAgcGFzc3dvcmQ6IHRoaXMucGFzc3dvcmRTZXJ2aWNlLmdldFBhc3NJZHBTdHJpbmcocGFzc0tleUJ1bmRsZS5wYXNzSWRwKSxcclxuICAgICAgY2xpZW50TWV0YWRhdGE6IHtcclxuICAgICAgICB0cF9wYXNzd29yZF9yZXNldF9yZXF1ZXN0OiBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgICBpZDogcmVxdWVzdFJlc2V0UmVzdWx0LmlkLFxyXG4gICAgICAgICAgYXNzb2NpYXRlX3Jlc2V0X3VzZXJfdG9rZW46XHJcbiAgICAgICAgICAgIHJlcXVlc3RSZXNldFJlc3VsdC5hc3NvY2lhdGVfcmVzZXRfdXNlcl90b2tlbixcclxuICAgICAgICB9KSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKCdyZXF1ZXN0UmVzdCBkb25lOiAnLCBzaWduVXBSZXN1bHQpO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHJlcXVlc3RSZXNldFJlc3VsdCxcclxuICAgICAgc2lnblVwUmVzdWx0LFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export const TP_PASSWORD_RESET_CLIENT_NONCE_LENGTH = 32;
|
|
2
|
+
export const TP_PASSWORD_RESET_SLIP39_PASSPHRASE = 'lifeready';
|
|
3
|
+
export const TP_PASSWORD_RESET_USERNAME_SUFFIX = '.tp_password_reset';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHAtcGFzc3dvcmQtcmVzZXQuY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2plY3RzL25ld3JlcG8va2MtY2xpZW50L3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL3RydXN0ZWQtcGFydGllcy90cC1wYXNzd29yZC1yZXNldC5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsRUFBRSxDQUFDO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUFHLFdBQVcsQ0FBQztBQUMvRCxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBUUF9QQVNTV09SRF9SRVNFVF9DTElFTlRfTk9OQ0VfTEVOR1RIID0gMzI7XHJcbmV4cG9ydCBjb25zdCBUUF9QQVNTV09SRF9SRVNFVF9TTElQMzlfUEFTU1BIUkFTRSA9ICdsaWZlcmVhZHknO1xyXG5leHBvcnQgY29uc3QgVFBfUEFTU1dPUkRfUkVTRVRfVVNFUk5BTUVfU1VGRklYID0gJy50cF9wYXNzd29yZF9yZXNldCc7XHJcbiJdfQ==
|