@lifeready/core 1.1.15 → 1.1.17
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 +166 -142
- package/bundles/lifeready-core.umd.js.map +1 -1
- package/bundles/lifeready-core.umd.min.js +1 -1
- package/bundles/lifeready-core.umd.min.js.map +1 -1
- package/esm2015/lib/_common/storage.js +28 -0
- package/esm2015/lib/auth/life-ready-auth.service.js +7 -8
- package/esm2015/lib/key/key-factory.service.js +21 -32
- package/esm2015/lib/key/key.types.js +1 -1
- package/esm2015/lib/lbop/lbop.service.js +3 -3
- package/esm2015/lib/password/password.service.js +7 -7
- package/esm2015/lib/register/register.service.js +1 -1
- package/esm2015/lib/tp-password-reset/tp-password-reset-user.service.js +5 -1
- package/esm2015/lib/web-crypto/web-crypto.service.js +3 -3
- package/esm2015/lifeready-core.js +8 -9
- package/fesm2015/lifeready-core.js +70 -50
- package/fesm2015/lifeready-core.js.map +1 -1
- package/lib/_common/storage.d.ts +13 -0
- package/lib/auth/life-ready-auth.service.d.ts +7 -8
- package/lib/key/key-factory.service.d.ts +3 -3
- package/lib/key/key.types.d.ts +3 -3
- package/lib/lbop/lbop.service.d.ts +11 -3
- package/lib/password/password.service.d.ts +4 -4
- package/lib/register/register.service.d.ts +1 -1
- package/lib/tp-password-reset/tp-password-reset-user.service.d.ts +1 -1
- package/lib/web-crypto/web-crypto.service.d.ts +1 -1
- package/lifeready-core.d.ts +7 -8
- package/lifeready-core.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -518,7 +518,7 @@ EncryptionService.ctorParameters = () => [
|
|
|
518
518
|
|
|
519
519
|
class WebCryptoService {
|
|
520
520
|
constructor() {
|
|
521
|
-
this.
|
|
521
|
+
this.kcCrypto = window.crypto;
|
|
522
522
|
}
|
|
523
523
|
toHex(buffer) {
|
|
524
524
|
// Ref: https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest
|
|
@@ -530,7 +530,7 @@ class WebCryptoService {
|
|
|
530
530
|
return __awaiter(this, void 0, void 0, function* () {
|
|
531
531
|
const encoder = new TextEncoder();
|
|
532
532
|
const data = encoder.encode(message);
|
|
533
|
-
const hash = yield this.
|
|
533
|
+
const hash = yield this.kcCrypto.subtle.digest(algorithm, data);
|
|
534
534
|
return this.toHex(hash);
|
|
535
535
|
});
|
|
536
536
|
}
|
|
@@ -542,21 +542,6 @@ WebCryptoService.decorators = [
|
|
|
542
542
|
},] }
|
|
543
543
|
];
|
|
544
544
|
|
|
545
|
-
function sha256(message) {
|
|
546
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
547
|
-
// encode as UTF-8
|
|
548
|
-
const msgBuffer = new TextEncoder().encode(message);
|
|
549
|
-
// hash the message
|
|
550
|
-
const hashBuffer = yield crypto.subtle.digest('SHA-256', msgBuffer);
|
|
551
|
-
// convert ArrayBuffer to Array
|
|
552
|
-
const hashArray = Array.from(new Uint8Array(hashBuffer));
|
|
553
|
-
// convert bytes to hex string
|
|
554
|
-
const hashHex = hashArray
|
|
555
|
-
.map((b) => ('00' + b.toString(16)).slice(-2))
|
|
556
|
-
.join('');
|
|
557
|
-
return hashHex;
|
|
558
|
-
});
|
|
559
|
-
}
|
|
560
545
|
class KeyFactoryService {
|
|
561
546
|
constructor(webCryptoService) {
|
|
562
547
|
this.webCryptoService = webCryptoService;
|
|
@@ -575,7 +560,7 @@ class KeyFactoryService {
|
|
|
575
560
|
this.DEFAULT_PASS_IDP_PBKDF_ITER = this.MIN_PASS_IDP_PBKDF_ITER;
|
|
576
561
|
this.DEFAULT_PASS_KEY_PBKDF_ITER = this.MIN_PASS_KEY_PBKDF_ITER;
|
|
577
562
|
this.DEFAULT_LBOP_KEY_PBKDF_ITER = this.MIN_LBOP_KEY_PBKDF_ITER;
|
|
578
|
-
this.
|
|
563
|
+
this.kcCrypto = this.webCryptoService.kcCrypto;
|
|
579
564
|
}
|
|
580
565
|
static asKey(key, form, extras) {
|
|
581
566
|
// <AZ> Using a single global key store did not seem to improve speed.
|
|
@@ -588,7 +573,7 @@ class KeyFactoryService {
|
|
|
588
573
|
}
|
|
589
574
|
const validChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
590
575
|
let array = new Uint32Array(digits);
|
|
591
|
-
this.
|
|
576
|
+
this.kcCrypto.getRandomValues(array);
|
|
592
577
|
array = array.map((x) => validChars.charCodeAt(x % validChars.length));
|
|
593
578
|
return String.fromCharCode.apply(null, array);
|
|
594
579
|
}
|
|
@@ -603,7 +588,7 @@ class KeyFactoryService {
|
|
|
603
588
|
throw new LrBadArgumentException('chooseN <= 0');
|
|
604
589
|
}
|
|
605
590
|
const values = new Uint32Array(chooseN);
|
|
606
|
-
this.
|
|
591
|
+
this.kcCrypto.getRandomValues(values);
|
|
607
592
|
const ret = [];
|
|
608
593
|
values.forEach((v) => ret.push(array[v % array.length]));
|
|
609
594
|
return ret;
|
|
@@ -613,13 +598,13 @@ class KeyFactoryService {
|
|
|
613
598
|
}
|
|
614
599
|
createKey() {
|
|
615
600
|
return __awaiter(this, void 0, void 0, function* () {
|
|
616
|
-
const key = yield this.
|
|
601
|
+
const key = yield this.kcCrypto.subtle.generateKey({
|
|
617
602
|
name: 'AES-GCM',
|
|
618
603
|
length: 256,
|
|
619
604
|
}, true, // whether the key is extractable (i.e. can be used in exportKey)
|
|
620
605
|
['encrypt', 'decrypt'] // must be ["encrypt", "decrypt"] or ["wrapKey", "unwrapKey"]
|
|
621
606
|
);
|
|
622
|
-
const jwk = yield this.
|
|
607
|
+
const jwk = yield this.kcCrypto.subtle.exportKey('jwk', key);
|
|
623
608
|
// Removing the fields not needed by node-jose
|
|
624
609
|
delete jwk.ext;
|
|
625
610
|
delete jwk.key_ops;
|
|
@@ -628,11 +613,11 @@ class KeyFactoryService {
|
|
|
628
613
|
}
|
|
629
614
|
createSignKey() {
|
|
630
615
|
return __awaiter(this, void 0, void 0, function* () {
|
|
631
|
-
const key = yield this.
|
|
616
|
+
const key = yield this.kcCrypto.subtle.generateKey({
|
|
632
617
|
name: 'HMAC',
|
|
633
618
|
hash: { name: 'SHA-512' },
|
|
634
619
|
}, true, ['sign', 'verify']);
|
|
635
|
-
const jwk = yield this.
|
|
620
|
+
const jwk = yield this.kcCrypto.subtle.exportKey('jwk', key);
|
|
636
621
|
// Removing the fields not needed by node-jose
|
|
637
622
|
delete jwk.key_ops;
|
|
638
623
|
delete jwk.ext;
|
|
@@ -646,7 +631,7 @@ class KeyFactoryService {
|
|
|
646
631
|
// does not support sync version, so it uses the javascript implementation, which is way too slow.
|
|
647
632
|
// So we generate using webcrypto and import the key.
|
|
648
633
|
// Unfortunately Elliptical Curve is not supported by Webcrypto. So we have to settle for RSA.
|
|
649
|
-
const key = yield this.
|
|
634
|
+
const key = yield this.kcCrypto.subtle.generateKey({
|
|
650
635
|
name: 'RSA-OAEP',
|
|
651
636
|
modulusLength: 2048,
|
|
652
637
|
// As per suggestion: https://developer.mozilla.org/en-US/docs/Web/API/RsaHashedKeyGenParams
|
|
@@ -655,7 +640,7 @@ class KeyFactoryService {
|
|
|
655
640
|
}, true, // whether the key is extractable (i.e. can be used in exportKey)
|
|
656
641
|
['encrypt', 'decrypt'] // must be ["encrypt", "decrypt"] or ["wrapKey", "unwrapKey"]
|
|
657
642
|
);
|
|
658
|
-
const jwk = yield this.
|
|
643
|
+
const jwk = yield this.kcCrypto.subtle.exportKey('jwk', key.privateKey);
|
|
659
644
|
// Removing the fields not needed by node-jose
|
|
660
645
|
delete jwk.key_ops;
|
|
661
646
|
delete jwk.ext;
|
|
@@ -664,7 +649,7 @@ class KeyFactoryService {
|
|
|
664
649
|
}
|
|
665
650
|
createPkcSignKey() {
|
|
666
651
|
return __awaiter(this, void 0, void 0, function* () {
|
|
667
|
-
const key = yield this.
|
|
652
|
+
const key = yield this.kcCrypto.subtle.generateKey({
|
|
668
653
|
name: 'RSASSA-PKCS1-v1_5',
|
|
669
654
|
modulusLength: 2048,
|
|
670
655
|
// As per suggestion: https://developer.mozilla.org/en-US/docs/Web/API/RsaHashedKeyGenParams
|
|
@@ -673,24 +658,28 @@ class KeyFactoryService {
|
|
|
673
658
|
}, true, // whether the key is extractable (i.e. can be used in exportKey)
|
|
674
659
|
['sign', 'verify'] // can be any combination of "sign" and "verify"
|
|
675
660
|
);
|
|
676
|
-
const jwk = yield this.
|
|
661
|
+
const jwk = yield this.kcCrypto.subtle.exportKey('jwk', key.privateKey);
|
|
677
662
|
// Removing the fields not needed by node-jose
|
|
678
663
|
delete jwk.key_ops;
|
|
679
664
|
delete jwk.ext;
|
|
680
665
|
return KeyFactoryService.asKey(jwk);
|
|
681
666
|
});
|
|
682
667
|
}
|
|
683
|
-
|
|
668
|
+
importPassword(plainPassword) {
|
|
684
669
|
return __awaiter(this, void 0, void 0, function* () {
|
|
685
670
|
const enc = new TextEncoder();
|
|
686
|
-
|
|
687
|
-
|
|
671
|
+
return this.kcCrypto.subtle.importKey('raw', enc.encode(plainPassword), 'PBKDF2', false, ['deriveKey']);
|
|
672
|
+
});
|
|
673
|
+
}
|
|
674
|
+
deriveKey({ password, salt, iterations, kid, }) {
|
|
675
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
676
|
+
const passKey = yield this.kcCrypto.subtle.deriveKey({
|
|
688
677
|
name: 'PBKDF2',
|
|
689
678
|
salt: new TextEncoder().encode(salt),
|
|
690
679
|
iterations,
|
|
691
680
|
hash: 'SHA-256',
|
|
692
|
-
},
|
|
693
|
-
const passKeyJson = yield
|
|
681
|
+
}, password, { name: 'AES-GCM', length: 256 }, true, ['encrypt', 'decrypt']);
|
|
682
|
+
const passKeyJson = yield this.kcCrypto.subtle.exportKey('jwk', passKey);
|
|
694
683
|
if (kid) {
|
|
695
684
|
passKeyJson.kid = kid;
|
|
696
685
|
}
|
|
@@ -4396,19 +4385,19 @@ class PasswordService {
|
|
|
4396
4385
|
this.idleService = idleService;
|
|
4397
4386
|
this.CLIENT_NONCE_LENGTH = 32;
|
|
4398
4387
|
}
|
|
4399
|
-
checkPassword(
|
|
4388
|
+
checkPassword(plainPassword) {
|
|
4400
4389
|
return __awaiter(this, void 0, void 0, function* () {
|
|
4401
|
-
const { years } = this.passwordStrength(
|
|
4390
|
+
const { years } = this.passwordStrength(plainPassword);
|
|
4402
4391
|
return {
|
|
4403
|
-
length:
|
|
4392
|
+
length: plainPassword.length,
|
|
4404
4393
|
timeToCrack: moment$1.duration({ years }),
|
|
4405
|
-
passwordExposed: yield this.getExposureCount(
|
|
4394
|
+
passwordExposed: yield this.getExposureCount(plainPassword),
|
|
4406
4395
|
};
|
|
4407
4396
|
});
|
|
4408
4397
|
}
|
|
4409
|
-
getExposureCount(
|
|
4398
|
+
getExposureCount(plainPassword) {
|
|
4410
4399
|
return __awaiter(this, void 0, void 0, function* () {
|
|
4411
|
-
const sha1Password = yield this.webCryptoService.stringDigest('SHA-1',
|
|
4400
|
+
const sha1Password = yield this.webCryptoService.stringDigest('SHA-1', plainPassword);
|
|
4412
4401
|
const first5sha1 = sha1Password.substring(0, 5);
|
|
4413
4402
|
const response = yield this.http
|
|
4414
4403
|
.get(`https://api.pwnedpasswords.com/range/${first5sha1}`, {
|
|
@@ -4668,6 +4657,10 @@ PasswordService.ctorParameters = () => [
|
|
|
4668
4657
|
{ type: IdleService }
|
|
4669
4658
|
];
|
|
4670
4659
|
|
|
4660
|
+
const TP_PASSWORD_RESET_CLIENT_NONCE_LENGTH = 32;
|
|
4661
|
+
const TP_PASSWORD_RESET_SLIP39_PASSPHRASE = 'lifeready';
|
|
4662
|
+
const TP_PASSWORD_RESET_USERNAME_SUFFIX = '.tp_password_reset';
|
|
4663
|
+
|
|
4671
4664
|
class SecretShare {
|
|
4672
4665
|
constructor(assembly = 0, subAssembly = 0, mnemonics = '') {
|
|
4673
4666
|
this.assembly = assembly;
|
|
@@ -4831,10 +4824,6 @@ Slip39Service.decorators = [
|
|
|
4831
4824
|
},] }
|
|
4832
4825
|
];
|
|
4833
4826
|
|
|
4834
|
-
const TP_PASSWORD_RESET_CLIENT_NONCE_LENGTH = 32;
|
|
4835
|
-
const TP_PASSWORD_RESET_SLIP39_PASSPHRASE = 'lifeready';
|
|
4836
|
-
const TP_PASSWORD_RESET_USERNAME_SUFFIX = '.tp_password_reset';
|
|
4837
|
-
|
|
4838
4827
|
const TpsKeysQuery = gqlTyped `
|
|
4839
4828
|
query TpsKeysQuery($ids: [ID]) {
|
|
4840
4829
|
tps(id_In: $ids) {
|
|
@@ -5493,7 +5482,7 @@ const initialiseAuth = (authService) => {
|
|
|
5493
5482
|
return () => authService.initialise();
|
|
5494
5483
|
};
|
|
5495
5484
|
class LifeReadyAuthService {
|
|
5496
|
-
constructor(config, auth, keyFactory, keyService, profileService, keyGraphService, passwordService, idleService, lrGraphQL, tpPasswordResetProcessorService, persistService, encryptionService,
|
|
5485
|
+
constructor(config, auth, keyFactory, keyService, profileService, keyGraphService, passwordService, idleService, lrGraphQL, tpPasswordResetProcessorService, persistService, encryptionService, assemblyController) {
|
|
5497
5486
|
this.config = config;
|
|
5498
5487
|
this.auth = auth;
|
|
5499
5488
|
this.keyFactory = keyFactory;
|
|
@@ -5506,7 +5495,6 @@ class LifeReadyAuthService {
|
|
|
5506
5495
|
this.tpPasswordResetProcessorService = tpPasswordResetProcessorService;
|
|
5507
5496
|
this.persistService = persistService;
|
|
5508
5497
|
this.encryptionService = encryptionService;
|
|
5509
|
-
this.slip39Service = slip39Service;
|
|
5510
5498
|
this.assemblyController = assemblyController;
|
|
5511
5499
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5512
5500
|
this.hubSubject = new ReplaySubject(1);
|
|
@@ -5519,6 +5507,9 @@ class LifeReadyAuthService {
|
|
|
5519
5507
|
Hub.listen('auth', (data) => this.hubSubject.next(data.payload));
|
|
5520
5508
|
});
|
|
5521
5509
|
}
|
|
5510
|
+
importPassword(plainPassword) {
|
|
5511
|
+
return this.keyFactory.importPassword(plainPassword);
|
|
5512
|
+
}
|
|
5522
5513
|
addLogoutListener(callback) {
|
|
5523
5514
|
this.logoutListeners.add(callback);
|
|
5524
5515
|
}
|
|
@@ -5923,7 +5914,7 @@ class LifeReadyAuthService {
|
|
|
5923
5914
|
});
|
|
5924
5915
|
}
|
|
5925
5916
|
}
|
|
5926
|
-
LifeReadyAuthService.ɵprov = ɵɵdefineInjectable({ factory: function LifeReadyAuthService_Factory() { return new LifeReadyAuthService(ɵɵinject(LR_CONFIG), ɵɵinject(AuthClass), ɵɵinject(KeyFactoryService), ɵɵinject(KeyService), ɵɵinject(ProfileService), ɵɵinject(KeyGraphService), ɵɵinject(PasswordService), ɵɵinject(IdleService), ɵɵinject(LrGraphQLService), ɵɵinject(TpPasswordResetProcessorService), ɵɵinject(PersistService), ɵɵinject(EncryptionService), ɵɵinject(
|
|
5917
|
+
LifeReadyAuthService.ɵprov = ɵɵdefineInjectable({ factory: function LifeReadyAuthService_Factory() { return new LifeReadyAuthService(ɵɵinject(LR_CONFIG), ɵɵinject(AuthClass), ɵɵinject(KeyFactoryService), ɵɵinject(KeyService), ɵɵinject(ProfileService), ɵɵinject(KeyGraphService), ɵɵinject(PasswordService), ɵɵinject(IdleService), ɵɵinject(LrGraphQLService), ɵɵinject(TpPasswordResetProcessorService), ɵɵinject(PersistService), ɵɵinject(EncryptionService), ɵɵinject(TpPasswordResetAssemblyController)); }, token: LifeReadyAuthService, providedIn: "root" });
|
|
5927
5918
|
LifeReadyAuthService.decorators = [
|
|
5928
5919
|
{ type: Injectable, args: [{
|
|
5929
5920
|
providedIn: 'root',
|
|
@@ -5942,7 +5933,6 @@ LifeReadyAuthService.ctorParameters = () => [
|
|
|
5942
5933
|
{ type: TpPasswordResetProcessorService },
|
|
5943
5934
|
{ type: PersistService },
|
|
5944
5935
|
{ type: EncryptionService },
|
|
5945
|
-
{ type: Slip39Service },
|
|
5946
5936
|
{ type: TpPasswordResetAssemblyController }
|
|
5947
5937
|
];
|
|
5948
5938
|
|
|
@@ -9142,7 +9132,7 @@ class LbopService {
|
|
|
9142
9132
|
}
|
|
9143
9133
|
}
|
|
9144
9134
|
const lbopKeyParams = yield this.keyFactory.createLbopKeyParams();
|
|
9145
|
-
const lbopKey = (yield this.keyFactory.deriveLbopKey(Object.assign({ password: lbopString }, lbopKeyParams))).jwk;
|
|
9135
|
+
const lbopKey = (yield this.keyFactory.deriveLbopKey(Object.assign({ password: yield this.keyFactory.importPassword(lbopString) }, lbopKeyParams))).jwk;
|
|
9146
9136
|
const lbopKeyVerifier = yield this.keyFactory.createSignKey();
|
|
9147
9137
|
const wrappedLbopKeyVerifier = yield this.encryptionService.encrypt(lbopKey, lbopKeyVerifier.toJSON(true));
|
|
9148
9138
|
// Re-encrypt master key with new key
|
|
@@ -9186,7 +9176,7 @@ class LbopService {
|
|
|
9186
9176
|
return __awaiter(this, void 0, void 0, function* () {
|
|
9187
9177
|
const clientNonce = this.keyFactory.randomString(this.CLIENT_NONCE_LENGTH);
|
|
9188
9178
|
for (const lbop of challengeResult.lbops) {
|
|
9189
|
-
const lbopKey = (yield this.keyFactory.deriveLbopKey(Object.assign({ password: lbopString }, lbop.lbopKeyParams))).jwk;
|
|
9179
|
+
const lbopKey = (yield this.keyFactory.deriveLbopKey(Object.assign({ password: yield this.keyFactory.importPassword(lbopString) }, lbop.lbopKeyParams))).jwk;
|
|
9190
9180
|
// If decoding successful then it's the correct lbop
|
|
9191
9181
|
try {
|
|
9192
9182
|
const lbopKeyVerifier = (yield this.encryptionService.decrypt(lbopKey, lbop.wrappedLbopKeyVerifier));
|
|
@@ -12149,6 +12139,33 @@ TpPasswordResetRequestService = __decorate([
|
|
|
12149
12139
|
})
|
|
12150
12140
|
], TpPasswordResetRequestService);
|
|
12151
12141
|
|
|
12142
|
+
const COGNITO_LOCALSTORAGE_PREFIX = 'CognitoIdentityServiceProvider';
|
|
12143
|
+
/**
|
|
12144
|
+
* Remove all keys in localstorage with matching prefix.
|
|
12145
|
+
* A prefix must be specified. If you want to remove everything, then just use localStorage.clear().
|
|
12146
|
+
*
|
|
12147
|
+
* @param prefix Keys with this prefix will be removed.
|
|
12148
|
+
*/
|
|
12149
|
+
function clearLocalStorage(prefix) {
|
|
12150
|
+
if (!prefix) {
|
|
12151
|
+
throw new LrBadArgumentException('You must specify a non empty prefix.');
|
|
12152
|
+
}
|
|
12153
|
+
// Remove all persisted session variables
|
|
12154
|
+
Object.keys(localStorage).forEach((key) => {
|
|
12155
|
+
if (key.startsWith(prefix)) {
|
|
12156
|
+
localStorage.removeItem(key);
|
|
12157
|
+
}
|
|
12158
|
+
});
|
|
12159
|
+
}
|
|
12160
|
+
/**
|
|
12161
|
+
* Clear all items related to cognito in localstorage.
|
|
12162
|
+
* The remember device function sometimes interferes with creating new users
|
|
12163
|
+
* on TP based password reset.
|
|
12164
|
+
*/
|
|
12165
|
+
function clearCognitoLocalStorage() {
|
|
12166
|
+
clearLocalStorage(COGNITO_LOCALSTORAGE_PREFIX);
|
|
12167
|
+
}
|
|
12168
|
+
|
|
12152
12169
|
let TpPasswordResetUserService = class TpPasswordResetUserService extends LrService {
|
|
12153
12170
|
constructor(ngZone, injector, config, keyFactory, encryptionService, passwordService, http, auth) {
|
|
12154
12171
|
super(injector);
|
|
@@ -12185,6 +12202,9 @@ let TpPasswordResetUserService = class TpPasswordResetUserService extends LrServ
|
|
|
12185
12202
|
}
|
|
12186
12203
|
requestReset(password, claimId, claimToken) {
|
|
12187
12204
|
return __awaiter(this, void 0, void 0, function* () {
|
|
12205
|
+
// Clearing all localstorage data because cognito has the "remember device" functionality which sometimes
|
|
12206
|
+
// does not work properly. Clearing localstorage seems to solve this issue.
|
|
12207
|
+
clearCognitoLocalStorage();
|
|
12188
12208
|
// Generate the key materials
|
|
12189
12209
|
const passKeyBundle = yield this.passwordService.createPassKeyBundle(password);
|
|
12190
12210
|
const masterKey = yield this.keyFactory.createKey();
|
|
@@ -12712,5 +12732,5 @@ TwoFactorService.ctorParameters = () => [
|
|
|
12712
12732
|
* Generated bundle index. Do not edit.
|
|
12713
12733
|
*/
|
|
12714
12734
|
|
|
12715
|
-
export { AccessLevel, AccessRoleChoice, AccessRoleMethodChoice, ApiContactCard, ApiCurrentUser, ArchiveDirectoryMutation, CancelUserDeleteMutation, Category, CategoryFields, CategoryFilter, CategoryMetaService, CategoryService, ClaimApproverState, ClaimState, CognitoChallengeUser, CommonProcessorsService, CompleteOtkMutation, Config, ContactCard2Service, ContactCardAddress, ContactCardName, CreateCategoryMutation, CreateContactCardMutation$1 as CreateContactCardMutation, CreateFileMutation, CreateFileQuery, CreateLbopQuery, CreateRecordContainerMutation, CreateRecordMutation, CreateVaultMutation, CurrentCategory, CurrentUser, CurrentUserKey, CurrentUserQuery, CurrentUserSharedKeyQuery, DEFAULT_BREADCRUMB_DEPTH, DEFAULT_DESCENDANTS_DEPTH, DefaultCategory, DefaultProcessorOptions, DefaultVaultFilter, DeleteCategoryMutation, DeleteFileMutation, DeleteLbopQuery, DeleteRecordMutation, DirectoryQuery, DirectoryType, FeatureAction, Features, FetchKeyGraphField, FileOperationField, FileQuery, FileType, FileUploadService, GetCategoriesQuery, GetCategoryKeyIdQuery, GetCategoryQuery, GetMySharedCategoriesQuery, GetRecordQuery, GetRootDirectoryIdsQuery, GetTrustedPartyCategoriesQuery, GetVaultsQuery, IdleService, InitiateOtkMutation, Item2Service, KeyExchange2Service, KeyExchangeFields, KeyExchangeMode, KeyExchangeOtkState, KeyExchangeQuery, KeyExchangeService, KeyExchangeState, KeyExchangeTokenQuery, KeyExchangesQuery, KeyGraphField, KeyGraphFragment, LR_CONFIG, LbopQuery, LbopService, LbopsQuery, LifeReadyAuthService, LifeReadyModule, LinkTypeField, LoadedCategoryTree, LockService, LockState, LoginHistoryQuery, LoginResult, LrApiErrorCode, LrApolloService, LrAuthException, LrBadArgumentException, LrBadLogicException, LrBadRequestException, LrBadStateException, LrCodeMismatchException, LrConcurrentAccessException, LrEncryptionException, LrError, LrErrorCode, LrException, LrExpiredCodeException, LrExpiredException, LrGraphQLService, LrLockedException, LrMergedMutation, LrMutation, LrMutationBase, LrNotFoundException, LrRecord, LrService, LrSuspiciousException, LrUnsupportedException, MainContactCard, MainContactCardFields, MainContactCardPlainFields, MainContactCardProperty, MessageService, MoveDirectoryQuery, MoveFileQuery, NewAttachment, NewCategory, NewOrUpdatedAttachment, NewRecord, NotificationService, OtkState, OwnerPlainDataJson, PassIdpApiResult, PasswordChangeStatus, PasswordCheck, PasswordService, PermissionChoice, PersistService, Plan, PlanService, PlanState, ProfileDetailsService, ProfileService, QueryProcessorService, RecordAttachment, RecordAttachmentFilter, RecordAttachmentService, RecordContentFilter, RecordField, RecordFieldType, RecordFilter, RecordService, RecordType, RecordTypeField, RecordTypeFieldOption, RecordTypeService, RecordTypeSummary, RecoveryStatus, RegisterResult, RegisterService, RequestUserDeleteMutation, RespondOtkMutation, RevertFileQuery, ScenarioLastClaimState, ScenarioService, ScenarioState, ServerConfigService, ServerTimeQuery, SharedAccess, SharedContactCard2Service, StripeBillingPortalSession, StripeCheckoutSession, Subscription, TimeService, TpAssemblyState, TpClaimApproverState, TpClaimState, TpPasswordResetRequestService, TpPasswordResetService, TpPasswordResetUserService, TrustedParty2Service, TrustedPartyDetails, TwoFactorService, UnarchiveDirectoryMutation, UpdateCategoryMutation, UpdateContactCardMutation$1 as UpdateContactCardMutation, UpdateFileQuery, UpdateLbopQuery, UpdateRecordContainerMutation, UpdateRecordMutation, UpdatedCategory, UpdatedRecord, UserDeleteState, UserPlan, UserService, UserSharedKeyFields, Vault, VaultCategory, VaultFields, VaultRecord, VaultRecordType, WebCryptoService, awsFetch, configureAmplifyAuth, configureApollo, fragmentSpreadAstSelection, gqlTyped, handleApolloError, handleCognitoCallback, initialiseAuth, mapEdges, mapUserPlans, parentCategoriesField, processConnection, throwClaimIdMismatch, throwClaimNotApproved, ɵ0, KeyGraphService as ɵa, EncryptionService as ɵb, KeyService as ɵc, KeyFactoryService as ɵd, KeyMetaService as ɵe, LrGraphQLService as ɵf, TpPasswordResetProcessorService as ɵg, RunOutsideAngular as ɵh,
|
|
12735
|
+
export { AccessLevel, AccessRoleChoice, AccessRoleMethodChoice, ApiContactCard, ApiCurrentUser, ArchiveDirectoryMutation, CancelUserDeleteMutation, Category, CategoryFields, CategoryFilter, CategoryMetaService, CategoryService, ClaimApproverState, ClaimState, CognitoChallengeUser, CommonProcessorsService, CompleteOtkMutation, Config, ContactCard2Service, ContactCardAddress, ContactCardName, CreateCategoryMutation, CreateContactCardMutation$1 as CreateContactCardMutation, CreateFileMutation, CreateFileQuery, CreateLbopQuery, CreateRecordContainerMutation, CreateRecordMutation, CreateVaultMutation, CurrentCategory, CurrentUser, CurrentUserKey, CurrentUserQuery, CurrentUserSharedKeyQuery, DEFAULT_BREADCRUMB_DEPTH, DEFAULT_DESCENDANTS_DEPTH, DefaultCategory, DefaultProcessorOptions, DefaultVaultFilter, DeleteCategoryMutation, DeleteFileMutation, DeleteLbopQuery, DeleteRecordMutation, DirectoryQuery, DirectoryType, FeatureAction, Features, FetchKeyGraphField, FileOperationField, FileQuery, FileType, FileUploadService, GetCategoriesQuery, GetCategoryKeyIdQuery, GetCategoryQuery, GetMySharedCategoriesQuery, GetRecordQuery, GetRootDirectoryIdsQuery, GetTrustedPartyCategoriesQuery, GetVaultsQuery, IdleService, InitiateOtkMutation, Item2Service, KeyExchange2Service, KeyExchangeFields, KeyExchangeMode, KeyExchangeOtkState, KeyExchangeQuery, KeyExchangeService, KeyExchangeState, KeyExchangeTokenQuery, KeyExchangesQuery, KeyGraphField, KeyGraphFragment, LR_CONFIG, LbopQuery, LbopService, LbopsQuery, LifeReadyAuthService, LifeReadyModule, LinkTypeField, LoadedCategoryTree, LockService, LockState, LoginHistoryQuery, LoginResult, LrApiErrorCode, LrApolloService, LrAuthException, LrBadArgumentException, LrBadLogicException, LrBadRequestException, LrBadStateException, LrCodeMismatchException, LrConcurrentAccessException, LrEncryptionException, LrError, LrErrorCode, LrException, LrExpiredCodeException, LrExpiredException, LrGraphQLService, LrLockedException, LrMergedMutation, LrMutation, LrMutationBase, LrNotFoundException, LrRecord, LrService, LrSuspiciousException, LrUnsupportedException, MainContactCard, MainContactCardFields, MainContactCardPlainFields, MainContactCardProperty, MessageService, MoveDirectoryQuery, MoveFileQuery, NewAttachment, NewCategory, NewOrUpdatedAttachment, NewRecord, NotificationService, OtkState, OwnerPlainDataJson, PassIdpApiResult, PasswordChangeStatus, PasswordCheck, PasswordService, PermissionChoice, PersistService, Plan, PlanService, PlanState, ProfileDetailsService, ProfileService, QueryProcessorService, RecordAttachment, RecordAttachmentFilter, RecordAttachmentService, RecordContentFilter, RecordField, RecordFieldType, RecordFilter, RecordService, RecordType, RecordTypeField, RecordTypeFieldOption, RecordTypeService, RecordTypeSummary, RecoveryStatus, RegisterResult, RegisterService, RequestUserDeleteMutation, RespondOtkMutation, RevertFileQuery, ScenarioLastClaimState, ScenarioService, ScenarioState, ServerConfigService, ServerTimeQuery, SharedAccess, SharedContactCard2Service, StripeBillingPortalSession, StripeCheckoutSession, Subscription, TimeService, TpAssemblyState, TpClaimApproverState, TpClaimState, TpPasswordResetRequestService, TpPasswordResetService, TpPasswordResetUserService, TrustedParty2Service, TrustedPartyDetails, TwoFactorService, UnarchiveDirectoryMutation, UpdateCategoryMutation, UpdateContactCardMutation$1 as UpdateContactCardMutation, UpdateFileQuery, UpdateLbopQuery, UpdateRecordContainerMutation, UpdateRecordMutation, UpdatedCategory, UpdatedRecord, UserDeleteState, UserPlan, UserService, UserSharedKeyFields, Vault, VaultCategory, VaultFields, VaultRecord, VaultRecordType, WebCryptoService, awsFetch, configureAmplifyAuth, configureApollo, fragmentSpreadAstSelection, gqlTyped, handleApolloError, handleCognitoCallback, initialiseAuth, mapEdges, mapUserPlans, parentCategoriesField, processConnection, throwClaimIdMismatch, throwClaimNotApproved, ɵ0, KeyGraphService as ɵa, EncryptionService as ɵb, KeyService as ɵc, KeyFactoryService as ɵd, KeyMetaService as ɵe, LrGraphQLService as ɵf, TpPasswordResetProcessorService as ɵg, RunOutsideAngular as ɵh, TpPasswordResetAssemblyController as ɵi, TpAssemblyController as ɵj, LrService as ɵk, SharedContactCardService as ɵl, TrustedPartyService as ɵm, ScenarioAssemblyController as ɵn, TpPasswordResetPrivateService as ɵo };
|
|
12716
12736
|
//# sourceMappingURL=lifeready-core.js.map
|