@lifeready/core 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -62
- 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} +10 -13
- 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/{src/lib/api/lr-graphql/index.ts → lib/api/lr-graphql/index.d.ts} +5 -5
- 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/{src/lib/api/query-processor/index.ts → lib/api/query-processor/index.d.ts} +2 -2
- 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/{src/lib/api/types/index.ts → lib/api/types/index.d.ts} +2 -2
- 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} +77 -96
- 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
|
@@ -1,602 +0,0 @@
|
|
|
1
|
-
import { TestBed } from '@angular/core/testing';
|
|
2
|
-
import { AppModule } from 'projects/lr-auth-app/src/app/app.module';
|
|
3
|
-
import { environment } from 'projects/lr-auth-app/src/environments/environment';
|
|
4
|
-
import {
|
|
5
|
-
loginTestUser,
|
|
6
|
-
logoutUser,
|
|
7
|
-
} from '../auth/life-ready-auth.service.spec';
|
|
8
|
-
import { HttpClient } from '@angular/common/http';
|
|
9
|
-
import { LifeReadyConfig, LR_CONFIG } from '../life-ready.config';
|
|
10
|
-
import { LifeReadyAuthService } from '../auth/life-ready-auth.service';
|
|
11
|
-
import { lrExpectAsyncThrow, lrit } from '../_common/tests';
|
|
12
|
-
import { LoginResult } from '../auth/auth.types';
|
|
13
|
-
import { LrGraphQLService } from '../api/lr-graphql';
|
|
14
|
-
import { TpAssemblyState } from '../api/types/lr-graphql.types';
|
|
15
|
-
import { TpPasswordResetService } from './tp-password-reset.service';
|
|
16
|
-
import { TpPasswordResetRequestService } from './tp-password-reset-request.service';
|
|
17
|
-
import { TpPasswordResetUserService } from './tp-password-reset-user.service';
|
|
18
|
-
import { setupTps2, getTp2, getTps2 } from './trusted-party2.service.spec';
|
|
19
|
-
import { TrustedParty2Service } from './trusted-party2.service';
|
|
20
|
-
const enableTests = environment.test.enableTests;
|
|
21
|
-
|
|
22
|
-
const TIMEOUT = 1000 * 60 * 10;
|
|
23
|
-
|
|
24
|
-
const COVE_DEBUG_V_CODE = '111111';
|
|
25
|
-
|
|
26
|
-
const RESET_USERNAME_SUFFIX = '.tp_password_reset';
|
|
27
|
-
|
|
28
|
-
describe('TpPasswordResetService', () => {
|
|
29
|
-
let tpprService: TpPasswordResetService;
|
|
30
|
-
let resetUserService: TpPasswordResetUserService;
|
|
31
|
-
let resetRequestService: TpPasswordResetRequestService;
|
|
32
|
-
let tp2Service: TrustedParty2Service;
|
|
33
|
-
let http: HttpClient;
|
|
34
|
-
let config: LifeReadyConfig;
|
|
35
|
-
let lrAuth: LifeReadyAuthService;
|
|
36
|
-
let lrGraphQL: LrGraphQLService;
|
|
37
|
-
|
|
38
|
-
beforeEach(async () => {
|
|
39
|
-
TestBed.configureTestingModule({
|
|
40
|
-
imports: [AppModule],
|
|
41
|
-
providers: [],
|
|
42
|
-
});
|
|
43
|
-
config = TestBed.inject(LR_CONFIG);
|
|
44
|
-
tpprService = TestBed.inject(TpPasswordResetService);
|
|
45
|
-
resetUserService = TestBed.inject(TpPasswordResetUserService);
|
|
46
|
-
resetRequestService = TestBed.inject(TpPasswordResetRequestService);
|
|
47
|
-
tp2Service = TestBed.inject(TrustedParty2Service);
|
|
48
|
-
http = TestBed.inject(HttpClient);
|
|
49
|
-
lrAuth = TestBed.inject(LifeReadyAuthService);
|
|
50
|
-
lrGraphQL = TestBed.inject(LrGraphQLService);
|
|
51
|
-
}, TIMEOUT);
|
|
52
|
-
|
|
53
|
-
async function debugAssociate(
|
|
54
|
-
sub,
|
|
55
|
-
requestId,
|
|
56
|
-
associateResetUserToken
|
|
57
|
-
): Promise<void> {
|
|
58
|
-
await http
|
|
59
|
-
.post<any>(
|
|
60
|
-
`${config.apiUrl}debug_only/tp/password-reset/request/${requestId}/associate/`,
|
|
61
|
-
{
|
|
62
|
-
sub,
|
|
63
|
-
associate_reset_user_token: associateResetUserToken,
|
|
64
|
-
backend: 'cognito',
|
|
65
|
-
}
|
|
66
|
-
)
|
|
67
|
-
.toPromise();
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
async function debugCancelResetRequest(username) {
|
|
71
|
-
await logoutUser();
|
|
72
|
-
await http
|
|
73
|
-
.post<any>(
|
|
74
|
-
`${config.apiUrl}debug_only/tp/password-reset/cancel-request/`,
|
|
75
|
-
{
|
|
76
|
-
username,
|
|
77
|
-
}
|
|
78
|
-
)
|
|
79
|
-
.toPromise();
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
let username1;
|
|
83
|
-
let password1;
|
|
84
|
-
let email1;
|
|
85
|
-
let username2;
|
|
86
|
-
let password2;
|
|
87
|
-
let email2;
|
|
88
|
-
let username3;
|
|
89
|
-
let password3;
|
|
90
|
-
let email3;
|
|
91
|
-
let username4;
|
|
92
|
-
let password4;
|
|
93
|
-
let email4;
|
|
94
|
-
let RESET_USER_PASSWORD;
|
|
95
|
-
|
|
96
|
-
if (enableTests) {
|
|
97
|
-
username1 = environment.test.users[0].username;
|
|
98
|
-
password1 = environment.test.users[0].password;
|
|
99
|
-
email1 = environment.test.users[0].email;
|
|
100
|
-
|
|
101
|
-
username2 = environment.test.users[1].username;
|
|
102
|
-
password2 = environment.test.users[1].password;
|
|
103
|
-
email2 = environment.test.users[1].email;
|
|
104
|
-
|
|
105
|
-
username3 = environment.test.users[2].username;
|
|
106
|
-
password3 = environment.test.users[2].password;
|
|
107
|
-
email3 = environment.test.users[2].email;
|
|
108
|
-
|
|
109
|
-
username4 = environment.test.users[3].username;
|
|
110
|
-
password4 = environment.test.users[3].password;
|
|
111
|
-
email4 = environment.test.users[3].email;
|
|
112
|
-
|
|
113
|
-
RESET_USER_PASSWORD = password1;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
async function validateApprovers(tpIds: string[]) {
|
|
117
|
-
const tps = await Promise.all(
|
|
118
|
-
tpIds.map((t) => {
|
|
119
|
-
return getTp2(t);
|
|
120
|
-
})
|
|
121
|
-
);
|
|
122
|
-
|
|
123
|
-
// Ensure all approvers have mkSharedKey.
|
|
124
|
-
try {
|
|
125
|
-
tpprService.validateApprovers(tps);
|
|
126
|
-
return tps;
|
|
127
|
-
} catch (error) {
|
|
128
|
-
await reshareMkSharedKeys();
|
|
129
|
-
const tps2 = await Promise.all(
|
|
130
|
-
tpIds.map((t) => {
|
|
131
|
-
return getTp2(t);
|
|
132
|
-
})
|
|
133
|
-
);
|
|
134
|
-
tpprService.validateApprovers(tps2);
|
|
135
|
-
return tps2;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
async function setupReset() {
|
|
140
|
-
const { U1_TP_U2_ID, U2_TP_U1_ID } = await setupTps2(
|
|
141
|
-
username1,
|
|
142
|
-
password1,
|
|
143
|
-
username2,
|
|
144
|
-
password2
|
|
145
|
-
);
|
|
146
|
-
|
|
147
|
-
// ------------------------------------------------------
|
|
148
|
-
// Test User 1: Get current reset
|
|
149
|
-
// ------------------------------------------------------
|
|
150
|
-
const currentUser = await loginTestUser(username1, password1);
|
|
151
|
-
const reset = await tpprService.getReset();
|
|
152
|
-
console.log(reset);
|
|
153
|
-
|
|
154
|
-
// ------------------------------------------------------
|
|
155
|
-
// Test User 1: Delete and create new reset
|
|
156
|
-
// ------------------------------------------------------
|
|
157
|
-
// Ensure all approvers have mkSharedKey.
|
|
158
|
-
const [U1_TP_U2] = await validateApprovers([U1_TP_U2_ID]);
|
|
159
|
-
|
|
160
|
-
if (await tpprService.getReset()) {
|
|
161
|
-
await tpprService.deleteReset();
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
await tpprService.createReset({
|
|
165
|
-
quorum: 1,
|
|
166
|
-
singleReject: true,
|
|
167
|
-
createSubAssemblies: [
|
|
168
|
-
{
|
|
169
|
-
name: 'G1',
|
|
170
|
-
quorum: 1,
|
|
171
|
-
singleReject: false,
|
|
172
|
-
approverTps: [U1_TP_U2],
|
|
173
|
-
},
|
|
174
|
-
],
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
async function requestReset() {
|
|
179
|
-
let res;
|
|
180
|
-
|
|
181
|
-
await logoutUser();
|
|
182
|
-
// ------------------------------------------------------
|
|
183
|
-
// Pre-auth
|
|
184
|
-
// ------------------------------------------------------
|
|
185
|
-
const { claimId } = await resetUserService.verifyEmailContact(email1);
|
|
186
|
-
const claimToken = await resetUserService.verifyContactRespond(
|
|
187
|
-
claimId,
|
|
188
|
-
COVE_DEBUG_V_CODE
|
|
189
|
-
);
|
|
190
|
-
res = await resetUserService.requestReset(
|
|
191
|
-
RESET_USER_PASSWORD,
|
|
192
|
-
claimId,
|
|
193
|
-
claimToken
|
|
194
|
-
);
|
|
195
|
-
|
|
196
|
-
// AWS Cognito can't use lambda to associate reset user with local server. So need to
|
|
197
|
-
// do this via debug endpoint.
|
|
198
|
-
if (environment.env === 'local') {
|
|
199
|
-
await debugAssociate(
|
|
200
|
-
res.signUpResult.userSub,
|
|
201
|
-
res.requestResetResult.id,
|
|
202
|
-
res.requestResetResult.associate_reset_user_token
|
|
203
|
-
);
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
async function approveResetRequest(username, password) {
|
|
208
|
-
await loginTestUser(username, password);
|
|
209
|
-
const requests = await resetRequestService.getSharedResets();
|
|
210
|
-
const request = requests.edges.find(
|
|
211
|
-
(edge) => edge.node.tp.other.username === username1
|
|
212
|
-
);
|
|
213
|
-
expect(request).toBeTruthy();
|
|
214
|
-
await resetRequestService.approveRequest(request.node.id);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
async function rejectResetRequest(username, password) {
|
|
218
|
-
await loginTestUser(username, password);
|
|
219
|
-
const requests = await resetRequestService.getSharedResets();
|
|
220
|
-
const request = requests.edges.find(
|
|
221
|
-
(edge) => edge.node.tp.other.username === username1
|
|
222
|
-
);
|
|
223
|
-
expect(request).toBeTruthy();
|
|
224
|
-
await resetRequestService.rejectRequest(request.node.id);
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
// Assuming signed in as the reset user.
|
|
228
|
-
async function reshareMkSharedKeys() {
|
|
229
|
-
// ------------------------------------------------------
|
|
230
|
-
// Request mkSharedKey reshare
|
|
231
|
-
// ------------------------------------------------------
|
|
232
|
-
|
|
233
|
-
let tps = await getTps2();
|
|
234
|
-
for (const edge of tps.edges) {
|
|
235
|
-
if (!edge.node.currentUserSharedKey.userSharedKey.mkReshareRequestSent) {
|
|
236
|
-
await lrGraphQL.lrMutate(tp2Service.requestMkReshare(edge.node.id));
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
tps = await getTps2();
|
|
241
|
-
|
|
242
|
-
// ------------------------------------------------------
|
|
243
|
-
// Respond mkSharedKey reshare
|
|
244
|
-
// ------------------------------------------------------
|
|
245
|
-
for (const edge of tps.edges) {
|
|
246
|
-
const tpUser = environment.test.users.find(
|
|
247
|
-
(t) => t.username === edge.node.other.username
|
|
248
|
-
);
|
|
249
|
-
|
|
250
|
-
await loginTestUser(tpUser.username, tpUser.password);
|
|
251
|
-
|
|
252
|
-
const otherTps = await getTps2();
|
|
253
|
-
const otherTp = otherTps.edges.find(
|
|
254
|
-
(otherEdge) => otherEdge.node.other.username === username1
|
|
255
|
-
).node;
|
|
256
|
-
|
|
257
|
-
if (!otherTp.currentUserSharedKey.userSharedKey.mkReshareResponseSent) {
|
|
258
|
-
await lrGraphQL.lrMutate(tp2Service.respondMkReshare(otherTp.id));
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
// ------------------------------------------------------
|
|
263
|
-
// Complete mkSharedKey reshare
|
|
264
|
-
// ------------------------------------------------------
|
|
265
|
-
await loginTestUser(username1, password1);
|
|
266
|
-
tps = await getTps2();
|
|
267
|
-
for (const edge of tps.edges) {
|
|
268
|
-
const tp = edge.node;
|
|
269
|
-
if (tp.currentUserSharedKey.userSharedKey.mkReshareResponseCipher) {
|
|
270
|
-
await lrGraphQL.lrMutate(tp2Service.completeMkReshare(tp.id));
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
async function loginResetUser() {
|
|
276
|
-
await logoutUser();
|
|
277
|
-
const res = await lrAuth.login(username1, RESET_USER_PASSWORD);
|
|
278
|
-
// console.log('Reset user: ', res);
|
|
279
|
-
return res;
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
// This will request, approve, and complete the reset. But before
|
|
283
|
-
// the TPs have reshared their shared_master_keys.
|
|
284
|
-
async function performReset() {
|
|
285
|
-
let res;
|
|
286
|
-
|
|
287
|
-
// ------------------------------------------------------
|
|
288
|
-
// Pre-auth
|
|
289
|
-
// ------------------------------------------------------
|
|
290
|
-
await requestReset();
|
|
291
|
-
|
|
292
|
-
// ------------------------------------------------------
|
|
293
|
-
// Reset user
|
|
294
|
-
// ------------------------------------------------------
|
|
295
|
-
res = await loginResetUser();
|
|
296
|
-
|
|
297
|
-
expect(res.resetUser.state).toEqual(TpAssemblyState.CLAIMED);
|
|
298
|
-
|
|
299
|
-
// ------------------------------------------------------
|
|
300
|
-
// Approve
|
|
301
|
-
// ------------------------------------------------------
|
|
302
|
-
await approveResetRequest(username2, password2);
|
|
303
|
-
|
|
304
|
-
// ------------------------------------------------------
|
|
305
|
-
// Complete reset
|
|
306
|
-
// ------------------------------------------------------
|
|
307
|
-
res = await loginResetUser();
|
|
308
|
-
expect(res.user).toBeUndefined();
|
|
309
|
-
expect(res.resetUser).toBeTruthy();
|
|
310
|
-
|
|
311
|
-
expect(res.resetUser.state).toEqual(TpAssemblyState.APPROVED);
|
|
312
|
-
|
|
313
|
-
await resetUserService.completeRequest(RESET_USER_PASSWORD);
|
|
314
|
-
console.log('TP password reset complete');
|
|
315
|
-
|
|
316
|
-
// ------------------------------------------------------
|
|
317
|
-
// Login using new password
|
|
318
|
-
// ------------------------------------------------------
|
|
319
|
-
await logoutUser();
|
|
320
|
-
res = await loginResetUser();
|
|
321
|
-
expect(res.user).toBeTruthy();
|
|
322
|
-
expect(res.resetUser).toBeUndefined();
|
|
323
|
-
|
|
324
|
-
// ----------------------------------------------------------------------------------------------
|
|
325
|
-
// Reshare mkSharedKey
|
|
326
|
-
// ----------------------------------------------------------------------------------------------
|
|
327
|
-
await reshareMkSharedKeys();
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
lrit(
|
|
331
|
-
'Should reset user password',
|
|
332
|
-
async () => {
|
|
333
|
-
await logoutUser();
|
|
334
|
-
|
|
335
|
-
await debugCancelResetRequest(username1);
|
|
336
|
-
|
|
337
|
-
// ------------------------------------------------------
|
|
338
|
-
// Re-create TP password reset
|
|
339
|
-
// ------------------------------------------------------
|
|
340
|
-
try {
|
|
341
|
-
await setupReset();
|
|
342
|
-
} catch (error) {
|
|
343
|
-
// If the reset is interrupted before the resharing of mk_shared_key between TPs are complete
|
|
344
|
-
// then you can't update the reset. So we complete the reset, then create and try again.
|
|
345
|
-
await performReset();
|
|
346
|
-
await setupReset();
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
// ------------------------------------------------------
|
|
350
|
-
// Do a TP password reset
|
|
351
|
-
// ------------------------------------------------------
|
|
352
|
-
await performReset();
|
|
353
|
-
},
|
|
354
|
-
TIMEOUT
|
|
355
|
-
);
|
|
356
|
-
|
|
357
|
-
lrit(
|
|
358
|
-
'Should reset user password with more approver.',
|
|
359
|
-
async () => {
|
|
360
|
-
let res;
|
|
361
|
-
let loginResult: LoginResult;
|
|
362
|
-
|
|
363
|
-
await logoutUser();
|
|
364
|
-
await debugCancelResetRequest(username1);
|
|
365
|
-
|
|
366
|
-
const { U1_TP_U2_ID, U2_TP_U1_ID } = await setupTps2(
|
|
367
|
-
username1,
|
|
368
|
-
password1,
|
|
369
|
-
username2,
|
|
370
|
-
password2
|
|
371
|
-
);
|
|
372
|
-
const {
|
|
373
|
-
U1_TP_U2_ID: U1_TP_U3_ID,
|
|
374
|
-
U2_TP_U1_ID: U3_TP_U1_ID,
|
|
375
|
-
} = await setupTps2(username1, password1, username3, password3);
|
|
376
|
-
const {
|
|
377
|
-
U1_TP_U2_ID: U1_TP_U4_ID,
|
|
378
|
-
U2_TP_U1_ID: U4_TP_U1_ID,
|
|
379
|
-
} = await setupTps2(username1, password1, username4, password4);
|
|
380
|
-
|
|
381
|
-
await loginTestUser(username1, password1);
|
|
382
|
-
|
|
383
|
-
// Ensure all approvers have mkSharedKey. Also reloads TPs every time because the key graph is cleared on logout.
|
|
384
|
-
let [U1_TP_U2, U1_TP_U3, U1_TP_U4] = await validateApprovers([
|
|
385
|
-
U1_TP_U2_ID,
|
|
386
|
-
U1_TP_U3_ID,
|
|
387
|
-
U1_TP_U4_ID,
|
|
388
|
-
]);
|
|
389
|
-
|
|
390
|
-
if (await tpprService.getReset()) {
|
|
391
|
-
await tpprService.deleteReset();
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
await tpprService.createReset({
|
|
395
|
-
quorum: 1,
|
|
396
|
-
singleReject: true,
|
|
397
|
-
createSubAssemblies: [
|
|
398
|
-
{
|
|
399
|
-
name: 'G1.1',
|
|
400
|
-
quorum: 1,
|
|
401
|
-
singleReject: false,
|
|
402
|
-
approverTps: [U1_TP_U2],
|
|
403
|
-
},
|
|
404
|
-
],
|
|
405
|
-
});
|
|
406
|
-
|
|
407
|
-
const reset1 = await tpprService.getReset();
|
|
408
|
-
|
|
409
|
-
// Should fail when already exists
|
|
410
|
-
(
|
|
411
|
-
await lrExpectAsyncThrow(
|
|
412
|
-
tpprService.createReset({
|
|
413
|
-
quorum: 1,
|
|
414
|
-
singleReject: true,
|
|
415
|
-
createSubAssemblies: [
|
|
416
|
-
{
|
|
417
|
-
name: 'G1.1',
|
|
418
|
-
quorum: 1,
|
|
419
|
-
singleReject: false,
|
|
420
|
-
approverTps: [U1_TP_U2],
|
|
421
|
-
},
|
|
422
|
-
],
|
|
423
|
-
})
|
|
424
|
-
)
|
|
425
|
-
).toBeTruthy();
|
|
426
|
-
|
|
427
|
-
await tpprService.updateReset({
|
|
428
|
-
quorum: 1,
|
|
429
|
-
singleReject: true,
|
|
430
|
-
updateSubAssemblies: [
|
|
431
|
-
{
|
|
432
|
-
id: reset1.assembly.subAssemblies.edges[0].node.id,
|
|
433
|
-
name: 'G1.2',
|
|
434
|
-
quorum: 2,
|
|
435
|
-
singleReject: true,
|
|
436
|
-
approverTps: [U1_TP_U2, U1_TP_U3],
|
|
437
|
-
},
|
|
438
|
-
],
|
|
439
|
-
createSubAssemblies: [
|
|
440
|
-
{
|
|
441
|
-
name: 'G2.1',
|
|
442
|
-
quorum: 1,
|
|
443
|
-
singleReject: true,
|
|
444
|
-
approverTps: [U1_TP_U2, U1_TP_U3, U1_TP_U4],
|
|
445
|
-
},
|
|
446
|
-
{
|
|
447
|
-
name: 'G3.1',
|
|
448
|
-
quorum: 1,
|
|
449
|
-
singleReject: true,
|
|
450
|
-
approverTps: [U1_TP_U2],
|
|
451
|
-
},
|
|
452
|
-
],
|
|
453
|
-
});
|
|
454
|
-
|
|
455
|
-
const reset2 = await tpprService.getReset();
|
|
456
|
-
expect(reset1.assembly.assemblyKey.id).not.toEqual(
|
|
457
|
-
reset2.assembly.assemblyKey.id,
|
|
458
|
-
'assembly key should refresh.'
|
|
459
|
-
);
|
|
460
|
-
|
|
461
|
-
// ------------------------------------------------------
|
|
462
|
-
// Test single reject
|
|
463
|
-
// ------------------------------------------------------
|
|
464
|
-
await requestReset();
|
|
465
|
-
|
|
466
|
-
// Single reject from any user should reject whole request
|
|
467
|
-
await rejectResetRequest(username3, password3);
|
|
468
|
-
|
|
469
|
-
loginResult = await loginResetUser();
|
|
470
|
-
expect(loginResult.resetUser.state).toEqual(TpAssemblyState.REJECTED);
|
|
471
|
-
|
|
472
|
-
// ------------------------------------------------------
|
|
473
|
-
// Test non single reject
|
|
474
|
-
// ------------------------------------------------------
|
|
475
|
-
await debugCancelResetRequest(username1);
|
|
476
|
-
await loginTestUser(username1, password1);
|
|
477
|
-
|
|
478
|
-
// Reload TPs every time because the key graph is cleared on logout.
|
|
479
|
-
[U1_TP_U2, U1_TP_U3, U1_TP_U4] = await validateApprovers([
|
|
480
|
-
U1_TP_U2_ID,
|
|
481
|
-
U1_TP_U3_ID,
|
|
482
|
-
U1_TP_U4_ID,
|
|
483
|
-
]);
|
|
484
|
-
|
|
485
|
-
let reset = await tpprService.getReset();
|
|
486
|
-
|
|
487
|
-
// Test deleting of sub assemblies and approvers
|
|
488
|
-
await tpprService.updateReset({
|
|
489
|
-
quorum: 2,
|
|
490
|
-
singleReject: false,
|
|
491
|
-
updateSubAssemblies: [
|
|
492
|
-
{
|
|
493
|
-
id: reset.assembly.subAssemblies.edges[0].node.id,
|
|
494
|
-
name: 'G1.3',
|
|
495
|
-
quorum: 1,
|
|
496
|
-
singleReject: false,
|
|
497
|
-
approverTps: [U1_TP_U2, U1_TP_U3],
|
|
498
|
-
},
|
|
499
|
-
{
|
|
500
|
-
id: reset.assembly.subAssemblies.edges[1].node.id,
|
|
501
|
-
name: 'G2.2',
|
|
502
|
-
quorum: 2,
|
|
503
|
-
singleReject: false,
|
|
504
|
-
approverTps: [U1_TP_U2, U1_TP_U4],
|
|
505
|
-
},
|
|
506
|
-
],
|
|
507
|
-
createSubAssemblies: [],
|
|
508
|
-
});
|
|
509
|
-
|
|
510
|
-
reset = await tpprService.getReset();
|
|
511
|
-
console.log(reset);
|
|
512
|
-
expect(reset.assembly.subAssemblies.edges.length).toEqual(2);
|
|
513
|
-
|
|
514
|
-
// Test approvers have been updated/detected
|
|
515
|
-
const G1 = reset.assembly.subAssemblies.edges.find(
|
|
516
|
-
(edge) => edge.node.subjectCipherDataClearJson.name === 'G1.3'
|
|
517
|
-
).node;
|
|
518
|
-
expect(G1.approvers.edges.length).toEqual(2);
|
|
519
|
-
G1.approvers.edges.forEach((edge) => {
|
|
520
|
-
expect([U1_TP_U2.id, U1_TP_U3.id].includes(edge.node.id));
|
|
521
|
-
});
|
|
522
|
-
|
|
523
|
-
const G2 = reset.assembly.subAssemblies.edges.find(
|
|
524
|
-
(edge) => edge.node.subjectCipherDataClearJson.name === 'G2.2'
|
|
525
|
-
).node;
|
|
526
|
-
expect(G2.approvers.edges.length).toEqual(2);
|
|
527
|
-
G2.approvers.edges.forEach((edge) => {
|
|
528
|
-
expect([U1_TP_U2.id, U1_TP_U4.id].includes(edge.node.id));
|
|
529
|
-
});
|
|
530
|
-
|
|
531
|
-
await requestReset();
|
|
532
|
-
|
|
533
|
-
// Reject but not enough to reject the request
|
|
534
|
-
await rejectResetRequest(username3, password3); // G1 can still meet quorum
|
|
535
|
-
|
|
536
|
-
loginResult = await loginResetUser();
|
|
537
|
-
expect(loginResult.resetUser.state).toEqual(TpAssemblyState.CLAIMED);
|
|
538
|
-
|
|
539
|
-
await rejectResetRequest(username2, password2); // Both G1 and G2 can not meet quorum anymore
|
|
540
|
-
|
|
541
|
-
loginResult = await loginResetUser();
|
|
542
|
-
expect(loginResult.resetUser.state).toEqual(TpAssemblyState.REJECTED);
|
|
543
|
-
|
|
544
|
-
// ------------------------------------------------------
|
|
545
|
-
// Request again
|
|
546
|
-
// ------------------------------------------------------
|
|
547
|
-
// Must cancel request first because we are using the same password for
|
|
548
|
-
// the reset user and the original user. If the reset request is present, it
|
|
549
|
-
// will log into the reset user account.
|
|
550
|
-
await debugCancelResetRequest(username1);
|
|
551
|
-
await loginTestUser(username1, password1);
|
|
552
|
-
|
|
553
|
-
await requestReset();
|
|
554
|
-
|
|
555
|
-
// ------------------------------------------------------
|
|
556
|
-
// Approve
|
|
557
|
-
// ------------------------------------------------------
|
|
558
|
-
await approveResetRequest(username2, password2);
|
|
559
|
-
|
|
560
|
-
// Check it's not approved yet.
|
|
561
|
-
loginResult = await loginResetUser();
|
|
562
|
-
expect(loginResult.resetUser.state).toEqual(TpAssemblyState.CLAIMED);
|
|
563
|
-
|
|
564
|
-
// G1 has a quorum of 1, this is redundant, but testing if we can have redundant approvals
|
|
565
|
-
await approveResetRequest(username3, password3);
|
|
566
|
-
|
|
567
|
-
// Check it's not approved yet.
|
|
568
|
-
loginResult = await loginResetUser();
|
|
569
|
-
expect(loginResult.resetUser.state).toEqual(TpAssemblyState.CLAIMED);
|
|
570
|
-
|
|
571
|
-
await approveResetRequest(username4, password4);
|
|
572
|
-
|
|
573
|
-
// Should be approved now
|
|
574
|
-
loginResult = await loginResetUser();
|
|
575
|
-
expect(loginResult.resetUser.state).toEqual(TpAssemblyState.APPROVED);
|
|
576
|
-
|
|
577
|
-
// ------------------------------------------------------
|
|
578
|
-
// Complete reset
|
|
579
|
-
// ------------------------------------------------------
|
|
580
|
-
// Should be approved now.
|
|
581
|
-
loginResult = await loginResetUser();
|
|
582
|
-
expect(loginResult.resetUser.state).toEqual(TpAssemblyState.APPROVED);
|
|
583
|
-
|
|
584
|
-
await resetUserService.completeRequest(RESET_USER_PASSWORD);
|
|
585
|
-
console.log('TP password reset complete after multiple approval');
|
|
586
|
-
|
|
587
|
-
// ------------------------------------------------------
|
|
588
|
-
// Login using new password
|
|
589
|
-
// ------------------------------------------------------
|
|
590
|
-
await logoutUser();
|
|
591
|
-
res = await lrAuth.login(username1, RESET_USER_PASSWORD);
|
|
592
|
-
expect(res.user).toBeTruthy();
|
|
593
|
-
expect(res.resetUser).toBeUndefined();
|
|
594
|
-
|
|
595
|
-
// ----------------------------------------------------------------------------------------------
|
|
596
|
-
// Reshare mkSharedKey
|
|
597
|
-
// ----------------------------------------------------------------------------------------------
|
|
598
|
-
await reshareMkSharedKeys();
|
|
599
|
-
},
|
|
600
|
-
TIMEOUT
|
|
601
|
-
);
|
|
602
|
-
});
|