@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,119 +0,0 @@
|
|
|
1
|
-
import { TestBed } from '@angular/core/testing';
|
|
2
|
-
import {
|
|
3
|
-
loginTestUser,
|
|
4
|
-
logoutUser,
|
|
5
|
-
} from '../auth/life-ready-auth.service.spec';
|
|
6
|
-
import { delaySec, lrConfigureTestingModule, lrit } from '../_common/tests';
|
|
7
|
-
import { IdleService } from 'projects/core/src/lib/auth/idle.service';
|
|
8
|
-
import { KeyService } from '../cryptography/key.service';
|
|
9
|
-
import { PersistService } from 'projects/core/src/lib/api/persist.service';
|
|
10
|
-
|
|
11
|
-
const TIMEOUT = 1000 * 60 * 10;
|
|
12
|
-
|
|
13
|
-
describe('IdleService', () => {
|
|
14
|
-
let idleService: IdleService;
|
|
15
|
-
let keyService: KeyService;
|
|
16
|
-
let persistService: PersistService;
|
|
17
|
-
|
|
18
|
-
beforeEach(async () => {
|
|
19
|
-
lrConfigureTestingModule();
|
|
20
|
-
|
|
21
|
-
idleService = TestBed.inject(IdleService);
|
|
22
|
-
keyService = TestBed.inject(KeyService);
|
|
23
|
-
persistService = TestBed.inject(PersistService);
|
|
24
|
-
}, TIMEOUT);
|
|
25
|
-
|
|
26
|
-
lrit(
|
|
27
|
-
'should be created',
|
|
28
|
-
() => {
|
|
29
|
-
expect(idleService).toBeTruthy();
|
|
30
|
-
},
|
|
31
|
-
TIMEOUT
|
|
32
|
-
);
|
|
33
|
-
|
|
34
|
-
// The keyService.getMasterKey() returns the memory caches lastKey. So we need
|
|
35
|
-
// to test directly against the persistService.
|
|
36
|
-
async function expectMasterKey() {
|
|
37
|
-
const value = await persistService.get(
|
|
38
|
-
(keyService as any).STORE_MASTER_KEY
|
|
39
|
-
);
|
|
40
|
-
expect(value.jwk).toBeTruthy();
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
async function expectNoMasterKey() {
|
|
44
|
-
const value = await persistService.get(
|
|
45
|
-
(keyService as any).STORE_MASTER_KEY
|
|
46
|
-
);
|
|
47
|
-
expect(value).not.toBeTruthy();
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
async function shouldDetectIdle() {
|
|
51
|
-
let timeoutCalled = 0;
|
|
52
|
-
let keepaliveCalled = 0;
|
|
53
|
-
const onTimeout = () => {
|
|
54
|
-
console.log('onTimeout() called');
|
|
55
|
-
++timeoutCalled;
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
const onKeepalive = () => {
|
|
59
|
-
console.log('onKeepalive() called');
|
|
60
|
-
++keepaliveCalled;
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
const idleSec = 3;
|
|
64
|
-
const keepAliveIntervalSec = 0.5;
|
|
65
|
-
const timeoutSec = 2;
|
|
66
|
-
|
|
67
|
-
// The default expiry is 20 minutes. Too long for this test.
|
|
68
|
-
// setting UseServerSessionExpiry to false will let is use:
|
|
69
|
-
// (idleSec + keepAliveIntervalSec + timeoutSec) as the session expiry
|
|
70
|
-
// for the passKey.
|
|
71
|
-
await idleService.init({
|
|
72
|
-
idleSec,
|
|
73
|
-
keepAliveIntervalSec,
|
|
74
|
-
timeoutSec,
|
|
75
|
-
onTimeout,
|
|
76
|
-
onKeepalive,
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
await logoutUser();
|
|
80
|
-
const user = await loginTestUser();
|
|
81
|
-
const { expiresAfterSeconds } = await idleService.keepalivePost();
|
|
82
|
-
console.log('expiresAfterSeconds: ', expiresAfterSeconds);
|
|
83
|
-
|
|
84
|
-
await expectMasterKey();
|
|
85
|
-
|
|
86
|
-
await delaySec(idleSec / 2);
|
|
87
|
-
// Should still be under the idle threshold
|
|
88
|
-
await expectMasterKey();
|
|
89
|
-
|
|
90
|
-
await delaySec(idleSec - idleSec / 2);
|
|
91
|
-
// Idle should start, this is when it should stops sending keep alive pings.
|
|
92
|
-
await expectMasterKey();
|
|
93
|
-
// So +expiresAfterSeconds from now the passkey should expire
|
|
94
|
-
const checkExpiry = (async () => {
|
|
95
|
-
await delaySec(expiresAfterSeconds);
|
|
96
|
-
await delaySec(1); // add some buffer just to be sure
|
|
97
|
-
|
|
98
|
-
expect(timeoutCalled).toEqual(1);
|
|
99
|
-
expect(keepaliveCalled).toBeGreaterThan(1);
|
|
100
|
-
|
|
101
|
-
await expectNoMasterKey();
|
|
102
|
-
})();
|
|
103
|
-
|
|
104
|
-
await delaySec(timeoutSec);
|
|
105
|
-
// Should be idling now.
|
|
106
|
-
await expectMasterKey();
|
|
107
|
-
|
|
108
|
-
return checkExpiry;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
lrit(
|
|
112
|
-
'should detect idle',
|
|
113
|
-
async () => {
|
|
114
|
-
// Run in twice to make sure it's repeatable after login.
|
|
115
|
-
await shouldDetectIdle();
|
|
116
|
-
},
|
|
117
|
-
TIMEOUT
|
|
118
|
-
);
|
|
119
|
-
});
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { Idle, DEFAULT_INTERRUPTSOURCES } from '@ng-idle/core';
|
|
3
|
-
import { Keepalive } from '@ng-idle/keepalive';
|
|
4
|
-
import { KeyService } from '../cryptography/key.service';
|
|
5
|
-
import {
|
|
6
|
-
LrBadArgumentException,
|
|
7
|
-
LrBadStateException,
|
|
8
|
-
} from '../_common/exceptions';
|
|
9
|
-
import { LifeReadyConfig, LR_CONFIG } from '../life-ready.config';
|
|
10
|
-
import { HttpClient } from '@angular/common/http';
|
|
11
|
-
import { Config, KeepaliveResult } from './idle.types';
|
|
12
|
-
import { Key } from '../cryptography/cryptography.types';
|
|
13
|
-
import { CognitoUser } from '@aws-amplify/auth';
|
|
14
|
-
import { AuthClass } from '@aws-amplify/auth/lib-esm/Auth';
|
|
15
|
-
|
|
16
|
-
export interface IdleServiceInit {
|
|
17
|
-
// TODO: this should be EventEmitter instead of a callback.
|
|
18
|
-
onTimeout?: (() => any) | (() => Promise<any>) | null;
|
|
19
|
-
onKeepalive?: (() => any) | (() => Promise<any>) | null;
|
|
20
|
-
idleSec?: number;
|
|
21
|
-
timeoutSec?: number;
|
|
22
|
-
keepAliveIntervalSec?: number;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
@Injectable({
|
|
26
|
-
providedIn: 'root',
|
|
27
|
-
})
|
|
28
|
-
export class IdleService {
|
|
29
|
-
private readonly IDLE_EXPIRY_KEY = 'ng2Idle.main.expiry';
|
|
30
|
-
private readonly IDLING_KEY = 'ng2Idle.main.idling';
|
|
31
|
-
|
|
32
|
-
private initCalled = false;
|
|
33
|
-
private onTimeout: (() => any) | (() => Promise<any>) | null;
|
|
34
|
-
private onKeepalive: (() => any) | (() => Promise<any>) | null;
|
|
35
|
-
|
|
36
|
-
constructor(
|
|
37
|
-
@Inject(LR_CONFIG) private config: LifeReadyConfig,
|
|
38
|
-
private http: HttpClient,
|
|
39
|
-
private idle: Idle,
|
|
40
|
-
private keepalive: Keepalive,
|
|
41
|
-
private keyService: KeyService,
|
|
42
|
-
private auth: AuthClass
|
|
43
|
-
) {}
|
|
44
|
-
|
|
45
|
-
private assertInit(): void {
|
|
46
|
-
if (!this.initCalled) {
|
|
47
|
-
throw new LrBadStateException('Call IdleService.init() first.');
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
public async init(params?: IdleServiceInit): Promise<void> {
|
|
52
|
-
if (this.initCalled) {
|
|
53
|
-
throw new LrBadStateException(
|
|
54
|
-
'IdleService.init() can only be called once. IdleService.start() calls init() with default values if init() has not been called yet.'
|
|
55
|
-
);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
this.initCalled = true;
|
|
59
|
-
|
|
60
|
-
// Defaults
|
|
61
|
-
params = {
|
|
62
|
-
onTimeout: null,
|
|
63
|
-
onKeepalive: null,
|
|
64
|
-
idleSec: Config.IDLE,
|
|
65
|
-
timeoutSec: Config.TIMEOUT,
|
|
66
|
-
keepAliveIntervalSec: Config.KEEP_ALIVE_INTERVAL,
|
|
67
|
-
...params,
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
// If timeoutSec == 0 then the onTimeout() callback is never called.
|
|
71
|
-
if (params.timeoutSec < 0.01) {
|
|
72
|
-
throw new LrBadArgumentException(
|
|
73
|
-
'Minimum value for IdleService.init({ timeoutSec }) is 0.01'
|
|
74
|
-
);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
this.onTimeout = params.onTimeout;
|
|
78
|
-
this.onKeepalive = params.onKeepalive;
|
|
79
|
-
|
|
80
|
-
// ------------------------------------------------------------------------
|
|
81
|
-
// Setup Idle
|
|
82
|
-
// ------------------------------------------------------------------------
|
|
83
|
-
// sets an idle timeout of 5 seconds, for testing purposes.
|
|
84
|
-
this.idle.setIdle(params.idleSec);
|
|
85
|
-
// sets a timeout period of 5 seconds. after 10 seconds of inactivity, the user will be considered timed out.
|
|
86
|
-
this.idle.setTimeout(params.timeoutSec);
|
|
87
|
-
// sets the default interrupts, in this case, things like clicks, scrolls, touches to the document
|
|
88
|
-
this.idle.setInterrupts(DEFAULT_INTERRUPTSOURCES);
|
|
89
|
-
|
|
90
|
-
this.idle.onIdleEnd.subscribe(() => console.log('Idle stopped'));
|
|
91
|
-
this.idle.onIdleStart.subscribe(() => console.log('Idle started'));
|
|
92
|
-
|
|
93
|
-
this.idle.onTimeout.subscribe(async () => {
|
|
94
|
-
console.log('Idle timed out');
|
|
95
|
-
this.reset();
|
|
96
|
-
await Promise.resolve(this.onTimeout && this.onTimeout());
|
|
97
|
-
});
|
|
98
|
-
this.idle.onTimeoutWarning.subscribe((countdown: any) =>
|
|
99
|
-
console.log(`Will timeout in ${countdown} seconds!`)
|
|
100
|
-
);
|
|
101
|
-
|
|
102
|
-
// ------------------------------------------------------------------------
|
|
103
|
-
// Setup Keepalive
|
|
104
|
-
// ------------------------------------------------------------------------
|
|
105
|
-
// Ref: https://github.com/moribvndvs/ng2-idle#readme
|
|
106
|
-
// ng-idle will instruct @ng-idle/keepalive to ping while the user is active, and stop once
|
|
107
|
-
// they go idle or time out. When the user resumes activity or the idle state is reset, it will
|
|
108
|
-
// ping immediately and then resume pinging.
|
|
109
|
-
this.keepalive.interval(params.keepAliveIntervalSec);
|
|
110
|
-
console.log(
|
|
111
|
-
`Keep alive interval set at: ${Config.KEEP_ALIVE_INTERVAL} seconds`
|
|
112
|
-
);
|
|
113
|
-
|
|
114
|
-
this.keepalive.onPing.subscribe(() => this.onPing());
|
|
115
|
-
|
|
116
|
-
// If the browser tab has been closed for a period longer thant the inactivity
|
|
117
|
-
// period, then we should logout right from the start.
|
|
118
|
-
const idleExpiry = localStorage.getItem(this.IDLE_EXPIRY_KEY);
|
|
119
|
-
if (
|
|
120
|
-
idleExpiry &&
|
|
121
|
-
parseInt(idleExpiry, 10) + this.idle.getTimeout() * 1000 < Date.now()
|
|
122
|
-
) {
|
|
123
|
-
this.reset();
|
|
124
|
-
await Promise.resolve(this.onTimeout && this.onTimeout());
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
public async keepalivePost(): Promise<{
|
|
129
|
-
expiresAfterSeconds: number;
|
|
130
|
-
keepaliveResult: KeepaliveResult;
|
|
131
|
-
}> {
|
|
132
|
-
// currentAuthenticatedUser() refreshes the access token if required.
|
|
133
|
-
const cognitoUser: CognitoUser = await this.auth.currentAuthenticatedUser();
|
|
134
|
-
|
|
135
|
-
const keepaliveResult = await this.http
|
|
136
|
-
.post<KeepaliveResult>(`${this.config.authUrl}auth/keepalive/`, null, {
|
|
137
|
-
withCredentials: true, // /auth/keepalive/ will be extending the sessions cookie.
|
|
138
|
-
headers: {
|
|
139
|
-
Authorization: `Bearer ${cognitoUser
|
|
140
|
-
.getSignInUserSession()
|
|
141
|
-
.getAccessToken()
|
|
142
|
-
.getJwtToken()}`,
|
|
143
|
-
},
|
|
144
|
-
})
|
|
145
|
-
.toPromise();
|
|
146
|
-
|
|
147
|
-
return {
|
|
148
|
-
keepaliveResult,
|
|
149
|
-
expiresAfterSeconds:
|
|
150
|
-
this.idle.getIdle() +
|
|
151
|
-
this.idle.getTimeout() +
|
|
152
|
-
this.keepalive.interval(),
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
public async persistMasterKey(masterKey: Key): Promise<void> {
|
|
157
|
-
// The keepalive API call extends the server-side session, the session cookie expiry, refresh key cookie
|
|
158
|
-
// expiry, and returns the session expiry.
|
|
159
|
-
// NOTE Use time delta rather than absolute time, since client clock and server clock maybe
|
|
160
|
-
// out of sync. We can't use the serverTime() functionality because the cookie expiry still
|
|
161
|
-
// run on local clock.
|
|
162
|
-
const { expiresAfterSeconds } = await this.keepalivePost();
|
|
163
|
-
|
|
164
|
-
// Persist the derived passKey
|
|
165
|
-
await this.keyService.persistMasterKey(masterKey, expiresAfterSeconds);
|
|
166
|
-
|
|
167
|
-
console.log('setMasterKey() done');
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
private async onPing(): Promise<void> {
|
|
171
|
-
console.log(
|
|
172
|
-
`Keep alive triggered at time: ${Date.now()}. Interval set at: ${this.keepalive.interval()} seconds`
|
|
173
|
-
);
|
|
174
|
-
|
|
175
|
-
// Keepalive API will extend the session expiry.
|
|
176
|
-
const { expiresAfterSeconds } = await this.keepalivePost();
|
|
177
|
-
|
|
178
|
-
// Extend the expiry of the persisted key
|
|
179
|
-
await this.keyService.setMasterKeyExpiresAfterSeconds(expiresAfterSeconds);
|
|
180
|
-
|
|
181
|
-
await Promise.resolve(this.onKeepalive && this.onKeepalive());
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
public async start(): Promise<void> {
|
|
185
|
-
if (!this.initCalled) {
|
|
186
|
-
await this.init();
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
if (this.idle.isRunning()) {
|
|
190
|
-
return;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
// Ping does not seem to happen right at the start. So we call it explicitly
|
|
194
|
-
await this.onPing();
|
|
195
|
-
|
|
196
|
-
this.idle.watch();
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
public stop(): void {
|
|
200
|
-
this.idle.stop();
|
|
201
|
-
this.reset();
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
private reset() {
|
|
205
|
-
localStorage.removeItem(this.IDLE_EXPIRY_KEY);
|
|
206
|
-
localStorage.removeItem(this.IDLING_KEY);
|
|
207
|
-
}
|
|
208
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export enum Config {
|
|
2
|
-
TIMEOUT = 0.01, // seconds, min value 0.01, after state is idle, wait for TIMEOUT seconds before taking action
|
|
3
|
-
IDLE = 60 * 20, // seconds, period of inactivity to consider state as idle
|
|
4
|
-
KEEP_ALIVE_INTERVAL = 60 * 1, // seconds, triggered on a regular basis while active (i.e. while not idling)
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export interface KeepaliveResult {
|
|
8
|
-
session: {
|
|
9
|
-
expires_after_seconds: number;
|
|
10
|
-
};
|
|
11
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { TestBed } from '@angular/core/testing';
|
|
2
|
-
import { loginTestUser } from '../auth/life-ready-auth.service.spec';
|
|
3
|
-
import { LbopService } from './lbop.service';
|
|
4
|
-
import { CurrentUser } from '../../public-api';
|
|
5
|
-
import { lrConfigureTestingModule, lrit } from '../_common/tests';
|
|
6
|
-
|
|
7
|
-
const TIMEOUT = 1000 * 60 * 10;
|
|
8
|
-
|
|
9
|
-
describe('LbopService', () => {
|
|
10
|
-
let lbopService: LbopService;
|
|
11
|
-
let user: CurrentUser;
|
|
12
|
-
|
|
13
|
-
beforeEach(async () => {
|
|
14
|
-
lrConfigureTestingModule();
|
|
15
|
-
lbopService = TestBed.inject(LbopService);
|
|
16
|
-
user = await loginTestUser();
|
|
17
|
-
}, TIMEOUT);
|
|
18
|
-
|
|
19
|
-
lrit(
|
|
20
|
-
'should be created',
|
|
21
|
-
() => {
|
|
22
|
-
expect(lbopService).toBeTruthy();
|
|
23
|
-
},
|
|
24
|
-
TIMEOUT
|
|
25
|
-
);
|
|
26
|
-
|
|
27
|
-
lrit(
|
|
28
|
-
'should CRUD lbop',
|
|
29
|
-
async () => {
|
|
30
|
-
if (!user) return;
|
|
31
|
-
|
|
32
|
-
const lbopsBefore = await lbopService.list();
|
|
33
|
-
const lbop1 = await lbopService.create({ name: 'abc' });
|
|
34
|
-
const lbop2 = await lbopService.create({ name: 'abc' });
|
|
35
|
-
const lbopsAfterCreate = await lbopService.list();
|
|
36
|
-
|
|
37
|
-
expect(lbop1.id).not.toBe(
|
|
38
|
-
lbop2.id,
|
|
39
|
-
'the server should allow same name because it is encrypted.'
|
|
40
|
-
);
|
|
41
|
-
expect(lbopsAfterCreate.length).toBe(lbopsBefore.length + 2);
|
|
42
|
-
|
|
43
|
-
await lbopService.remove(lbop1.id);
|
|
44
|
-
|
|
45
|
-
const lbopsAfterDelete = await lbopService.list();
|
|
46
|
-
expect(lbopsAfterDelete.length).toBe(lbopsAfterCreate.length - 1);
|
|
47
|
-
|
|
48
|
-
// Make sure it's been deleted.
|
|
49
|
-
expect(lbopsAfterDelete.some((t) => t.id === lbop1.id)).toBeFalsy();
|
|
50
|
-
|
|
51
|
-
await lbopService.update({ id: lbop2.id, name: '123' });
|
|
52
|
-
expect((await lbopService.get(lbop2.id)).name).toBe('123');
|
|
53
|
-
},
|
|
54
|
-
TIMEOUT
|
|
55
|
-
);
|
|
56
|
-
});
|