@lifeready/core 1.1.18 → 1.1.20
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 +284 -204
- 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/utils.js +27 -3
- package/esm2015/lib/auth/auth.config.js +1 -1
- package/esm2015/lib/auth/auth.types.js +1 -1
- package/esm2015/lib/auth/life-ready-auth.service.js +83 -13
- package/esm2015/lib/file-upload/file-upload.service.js +12 -20
- package/esm2015/lib/idle/idle.service.js +8 -15
- package/esm2015/lib/key/key.service.js +4 -4
- package/esm2015/lib/lbop/lbop.service.js +4 -4
- package/esm2015/lib/life-ready.config.js +8 -12
- package/esm2015/lib/life-ready.module.js +5 -5
- package/esm2015/lib/password/password.service.js +11 -17
- package/esm2015/lib/profile/profile.service.js +4 -4
- package/esm2015/lib/register/register.service.js +4 -4
- package/esm2015/lib/time/time.service.js +4 -16
- package/esm2015/lib/tp-password-reset/tp-password-reset-user.service.js +4 -4
- package/fesm2015/lifeready-core.js +196 -146
- package/fesm2015/lifeready-core.js.map +1 -1
- package/lib/_common/utils.d.ts +10 -0
- package/lib/auth/auth.config.d.ts +2 -2
- package/lib/auth/auth.types.d.ts +0 -1
- package/lib/auth/life-ready-auth.service.d.ts +14 -5
- package/lib/file-upload/file-upload.service.d.ts +4 -4
- package/lib/idle/idle.service.d.ts +2 -2
- package/lib/key/key.service.d.ts +2 -2
- package/lib/lbop/lbop.service.d.ts +2 -2
- package/lib/life-ready.config.d.ts +6 -3
- package/lib/life-ready.module.d.ts +2 -2
- package/lib/password/password.service.d.ts +6 -5
- package/lib/profile/profile.service.d.ts +2 -2
- package/lib/register/register.service.d.ts +2 -2
- package/lib/time/time.service.d.ts +0 -1
- package/lib/tp-password-reset/tp-password-reset-user.service.d.ts +2 -2
- package/lifeready-core.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -13,9 +13,9 @@ import { RetryLink } from '@apollo/client/link/retry';
|
|
|
13
13
|
import { CookieService } from 'ngx-cookie-service';
|
|
14
14
|
import { print } from 'graphql/language/printer';
|
|
15
15
|
import Auth, { CognitoUser } from '@aws-amplify/auth';
|
|
16
|
+
import { HttpClient, HttpClientModule } from '@angular/common/http';
|
|
16
17
|
import { Hub } from '@aws-amplify/core';
|
|
17
18
|
import { ReplaySubject } from 'rxjs';
|
|
18
|
-
import { HttpClient, HttpClientModule } from '@angular/common/http';
|
|
19
19
|
import { DEFAULT_INTERRUPTSOURCES, Idle } from '@ng-idle/core';
|
|
20
20
|
import { Keepalive, NgIdleKeepaliveModule } from '@ng-idle/keepalive';
|
|
21
21
|
import { Slip39Helper, Slip39 } from 'slip39';
|
|
@@ -177,6 +177,82 @@ class LrBadStateException extends LrException {
|
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
179
|
|
|
180
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
181
|
+
// promote everything to a promise.
|
|
182
|
+
function promiseAllMayAsync(values) {
|
|
183
|
+
if (!Array.isArray(values)) {
|
|
184
|
+
throw new Error('not array');
|
|
185
|
+
}
|
|
186
|
+
if (values.some((value) => value === null || value === void 0 ? void 0 : value.then)) {
|
|
187
|
+
const ret = Promise.all(values);
|
|
188
|
+
return ret;
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
return values;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
function remap(obj, values) {
|
|
195
|
+
const ret = {};
|
|
196
|
+
for (const [i, key] of Object.keys(obj).entries()) {
|
|
197
|
+
ret[key] = values[i];
|
|
198
|
+
}
|
|
199
|
+
return ret;
|
|
200
|
+
}
|
|
201
|
+
function mapValuesMayAsync(obj,
|
|
202
|
+
// callback can either return a Promise, or a value.
|
|
203
|
+
// The Promise<any> type is redundant but it shows that it can return a promise
|
|
204
|
+
callback) {
|
|
205
|
+
const values = promiseAllMayAsync(Object.entries(obj).map(([key, value]) => callback(value, key, obj)));
|
|
206
|
+
if (values.then) {
|
|
207
|
+
return values.then((resolvedValues) => remap(obj, resolvedValues));
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
return remap(obj, values);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
function mapValuesAsync(obj,
|
|
214
|
+
// callback can either return a Promise, or a value.
|
|
215
|
+
// The Promise<any> type is redundant but it shows that it can return a promise
|
|
216
|
+
// By default, it returns the value without any process, so you can use
|
|
217
|
+
// this to simply wait for all promises in an object to resolve.
|
|
218
|
+
callback) {
|
|
219
|
+
const values = Promise.all(Object.entries(obj).map(([key, value]) => callback ? callback(value, key, obj) : value));
|
|
220
|
+
return values.then((resolvedValues) => remap(obj, resolvedValues));
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Returns the defaultValue when value is undefined
|
|
224
|
+
* @param value The value to check
|
|
225
|
+
* @param defaultValue The value to return if value is undefined.
|
|
226
|
+
*/
|
|
227
|
+
function undefinedDefault(value, defaultValue) {
|
|
228
|
+
return value === undefined ? defaultValue : value;
|
|
229
|
+
}
|
|
230
|
+
function getAccessJwtToken(auth) {
|
|
231
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
232
|
+
try {
|
|
233
|
+
return (yield auth.currentSession()).getAccessToken().getJwtToken();
|
|
234
|
+
}
|
|
235
|
+
catch (error) {
|
|
236
|
+
// The error thrown by Cognito is of type string.
|
|
237
|
+
if (error == 'No current user') {
|
|
238
|
+
return '';
|
|
239
|
+
}
|
|
240
|
+
throw error;
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
function httpOptions(auth, config) {
|
|
245
|
+
var _a;
|
|
246
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
247
|
+
const token = yield getAccessJwtToken(auth);
|
|
248
|
+
const debugUsername = (_a = config.debug) === null || _a === void 0 ? void 0 : _a.username;
|
|
249
|
+
return {
|
|
250
|
+
withCredentials: true,
|
|
251
|
+
headers: Object.assign(Object.assign({}, (token && { authorization: `Bearer ${token}` })), (debugUsername && { 'x-kc-dev-user': debugUsername })),
|
|
252
|
+
};
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
|
|
180
256
|
// Ref: https://stackoverflow.com/questions/59735280/angular-8-moment-error-cannot-call-a-namespace-moment
|
|
181
257
|
const moment = moment_;
|
|
182
258
|
const ServerTimeQuery = gql `
|
|
@@ -197,23 +273,10 @@ class TimeService {
|
|
|
197
273
|
this.offsetMs = null; // Millisecond offset of local clock.
|
|
198
274
|
this.verified = false; // Verified with independent time source
|
|
199
275
|
}
|
|
200
|
-
getAccessToken() {
|
|
201
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
202
|
-
try {
|
|
203
|
-
return (yield this.auth.currentAuthenticatedUser())
|
|
204
|
-
.getSignInUserSession()
|
|
205
|
-
.getAccessToken()
|
|
206
|
-
.getJwtToken();
|
|
207
|
-
}
|
|
208
|
-
catch (error) {
|
|
209
|
-
return ''; // Not authenticated
|
|
210
|
-
}
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
276
|
// Get time from independent source to confirm.
|
|
214
277
|
verifyCognito() {
|
|
215
278
|
return __awaiter(this, void 0, void 0, function* () {
|
|
216
|
-
const accessToken = yield this.
|
|
279
|
+
const accessToken = yield getAccessJwtToken(this.auth);
|
|
217
280
|
if (!accessToken) {
|
|
218
281
|
return;
|
|
219
282
|
}
|
|
@@ -291,7 +354,7 @@ class TimeService {
|
|
|
291
354
|
}
|
|
292
355
|
if (this.VERIFY_ENABLED) {
|
|
293
356
|
// logged in but not yet verified time matches.
|
|
294
|
-
if (!this.verified && (yield this.
|
|
357
|
+
if (!this.verified && (yield getAccessJwtToken(this.auth))) {
|
|
295
358
|
needsRefresh = true;
|
|
296
359
|
}
|
|
297
360
|
}
|
|
@@ -761,7 +824,10 @@ KeyFactoryService.ctorParameters = () => [
|
|
|
761
824
|
{ type: WebCryptoService }
|
|
762
825
|
];
|
|
763
826
|
|
|
764
|
-
const
|
|
827
|
+
// The injection token string is set to be the same as the const stand name since you
|
|
828
|
+
// can possibly have different tokens with the same type (i.e. KcConfig). So it would not
|
|
829
|
+
// be appropriate to use "KcConfig" as the token string.
|
|
830
|
+
const KC_CONFIG = new InjectionToken('KC_CONFIG');
|
|
765
831
|
const RETRY_ERROR_CODES = [LrApiErrorCode.CONCURRENT_ACCESS];
|
|
766
832
|
const configureApollo = (config, auth) => {
|
|
767
833
|
const defaultOptions = {
|
|
@@ -778,16 +844,8 @@ const configureApollo = (config, auth) => {
|
|
|
778
844
|
},
|
|
779
845
|
};
|
|
780
846
|
const authLink = setContext((_, { headers }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
accessJwt = (yield auth.currentSession()).getAccessToken();
|
|
784
|
-
}
|
|
785
|
-
catch (_a) {
|
|
786
|
-
console.log('User not signed in');
|
|
787
|
-
}
|
|
788
|
-
return {
|
|
789
|
-
headers: Object.assign(Object.assign({}, headers), { authorization: accessJwt ? `Bearer ${accessJwt.jwtToken}` : '' }),
|
|
790
|
-
};
|
|
847
|
+
const options = yield httpOptions(auth, config);
|
|
848
|
+
return Object.assign(Object.assign({}, options), { headers: Object.assign(Object.assign({}, headers), options.headers) });
|
|
791
849
|
}));
|
|
792
850
|
// We are only retrying on certain errors, like the CONCURRENT_ACCESS gql
|
|
793
851
|
// error which indicates DB race condition. So can be safely retried.
|
|
@@ -1113,14 +1171,14 @@ class KeyService {
|
|
|
1113
1171
|
});
|
|
1114
1172
|
}
|
|
1115
1173
|
}
|
|
1116
|
-
KeyService.ɵprov = ɵɵdefineInjectable({ factory: function KeyService_Factory() { return new KeyService(ɵɵinject(
|
|
1174
|
+
KeyService.ɵprov = ɵɵdefineInjectable({ factory: function KeyService_Factory() { return new KeyService(ɵɵinject(KC_CONFIG), ɵɵinject(PersistService)); }, token: KeyService, providedIn: "root" });
|
|
1117
1175
|
KeyService.decorators = [
|
|
1118
1176
|
{ type: Injectable, args: [{
|
|
1119
1177
|
providedIn: 'root',
|
|
1120
1178
|
},] }
|
|
1121
1179
|
];
|
|
1122
1180
|
KeyService.ctorParameters = () => [
|
|
1123
|
-
{ type: undefined, decorators: [{ type: Inject, args: [
|
|
1181
|
+
{ type: undefined, decorators: [{ type: Inject, args: [KC_CONFIG,] }] },
|
|
1124
1182
|
{ type: PersistService }
|
|
1125
1183
|
];
|
|
1126
1184
|
|
|
@@ -1762,59 +1820,6 @@ function RunOutsideAngular({ ngZoneName, exceptLastPromise = true, excludeMethod
|
|
|
1762
1820
|
};
|
|
1763
1821
|
}
|
|
1764
1822
|
|
|
1765
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
1766
|
-
// Promise.all always returns a promise, even if all the values are not async.
|
|
1767
|
-
// During processing of deep hierarchies of nested objects we don't always need to
|
|
1768
|
-
// promote everything to a promise.
|
|
1769
|
-
function promiseAllMayAsync(values) {
|
|
1770
|
-
if (!Array.isArray(values)) {
|
|
1771
|
-
throw new Error('not array');
|
|
1772
|
-
}
|
|
1773
|
-
if (values.some((value) => value === null || value === void 0 ? void 0 : value.then)) {
|
|
1774
|
-
const ret = Promise.all(values);
|
|
1775
|
-
return ret;
|
|
1776
|
-
}
|
|
1777
|
-
else {
|
|
1778
|
-
return values;
|
|
1779
|
-
}
|
|
1780
|
-
}
|
|
1781
|
-
function remap(obj, values) {
|
|
1782
|
-
const ret = {};
|
|
1783
|
-
for (const [i, key] of Object.keys(obj).entries()) {
|
|
1784
|
-
ret[key] = values[i];
|
|
1785
|
-
}
|
|
1786
|
-
return ret;
|
|
1787
|
-
}
|
|
1788
|
-
function mapValuesMayAsync(obj,
|
|
1789
|
-
// callback can either return a Promise, or a value.
|
|
1790
|
-
// The Promise<any> type is redundant but it shows that it can return a promise
|
|
1791
|
-
callback) {
|
|
1792
|
-
const values = promiseAllMayAsync(Object.entries(obj).map(([key, value]) => callback(value, key, obj)));
|
|
1793
|
-
if (values.then) {
|
|
1794
|
-
return values.then((resolvedValues) => remap(obj, resolvedValues));
|
|
1795
|
-
}
|
|
1796
|
-
else {
|
|
1797
|
-
return remap(obj, values);
|
|
1798
|
-
}
|
|
1799
|
-
}
|
|
1800
|
-
function mapValuesAsync(obj,
|
|
1801
|
-
// callback can either return a Promise, or a value.
|
|
1802
|
-
// The Promise<any> type is redundant but it shows that it can return a promise
|
|
1803
|
-
// By default, it returns the value without any process, so you can use
|
|
1804
|
-
// this to simply wait for all promises in an object to resolve.
|
|
1805
|
-
callback) {
|
|
1806
|
-
const values = Promise.all(Object.entries(obj).map(([key, value]) => callback ? callback(value, key, obj) : value));
|
|
1807
|
-
return values.then((resolvedValues) => remap(obj, resolvedValues));
|
|
1808
|
-
}
|
|
1809
|
-
/**
|
|
1810
|
-
* Returns the defaultValue when value is undefined
|
|
1811
|
-
* @param value The value to check
|
|
1812
|
-
* @param defaultValue The value to return if value is undefined.
|
|
1813
|
-
*/
|
|
1814
|
-
function undefinedDefault(value, defaultValue) {
|
|
1815
|
-
return value === undefined ? defaultValue : value;
|
|
1816
|
-
}
|
|
1817
|
-
|
|
1818
1823
|
const DefaultProcessorOptions = {
|
|
1819
1824
|
hasKeys: true,
|
|
1820
1825
|
};
|
|
@@ -3071,18 +3076,10 @@ class IdleService {
|
|
|
3071
3076
|
}
|
|
3072
3077
|
keepalivePost() {
|
|
3073
3078
|
return __awaiter(this, void 0, void 0, function* () {
|
|
3074
|
-
// currentAuthenticatedUser() refreshes the access token if required.
|
|
3075
|
-
const cognitoUser = yield this.auth.currentAuthenticatedUser();
|
|
3076
3079
|
const keepaliveResult = yield this.http
|
|
3077
|
-
.post(`${this.config.authUrl}auth/keepalive/`, null,
|
|
3078
|
-
|
|
3079
|
-
|
|
3080
|
-
Authorization: `Bearer ${cognitoUser
|
|
3081
|
-
.getSignInUserSession()
|
|
3082
|
-
.getAccessToken()
|
|
3083
|
-
.getJwtToken()}`,
|
|
3084
|
-
},
|
|
3085
|
-
})
|
|
3080
|
+
.post(`${this.config.authUrl}auth/keepalive/`, null,
|
|
3081
|
+
// /auth/keepalive/ will be extending the sessions cookie.
|
|
3082
|
+
yield httpOptions(this.auth, this.config))
|
|
3086
3083
|
.toPromise();
|
|
3087
3084
|
return {
|
|
3088
3085
|
keepaliveResult,
|
|
@@ -3137,14 +3134,14 @@ class IdleService {
|
|
|
3137
3134
|
localStorage.removeItem(this.IDLING_KEY);
|
|
3138
3135
|
}
|
|
3139
3136
|
}
|
|
3140
|
-
IdleService.ɵprov = ɵɵdefineInjectable({ factory: function IdleService_Factory() { return new IdleService(ɵɵinject(
|
|
3137
|
+
IdleService.ɵprov = ɵɵdefineInjectable({ factory: function IdleService_Factory() { return new IdleService(ɵɵinject(KC_CONFIG), ɵɵinject(HttpClient), ɵɵinject(Idle), ɵɵinject(Keepalive), ɵɵinject(KeyService), ɵɵinject(AuthClass)); }, token: IdleService, providedIn: "root" });
|
|
3141
3138
|
IdleService.decorators = [
|
|
3142
3139
|
{ type: Injectable, args: [{
|
|
3143
3140
|
providedIn: 'root',
|
|
3144
3141
|
},] }
|
|
3145
3142
|
];
|
|
3146
3143
|
IdleService.ctorParameters = () => [
|
|
3147
|
-
{ type: undefined, decorators: [{ type: Inject, args: [
|
|
3144
|
+
{ type: undefined, decorators: [{ type: Inject, args: [KC_CONFIG,] }] },
|
|
3148
3145
|
{ type: HttpClient },
|
|
3149
3146
|
{ type: Idle },
|
|
3150
3147
|
{ type: Keepalive },
|
|
@@ -4324,14 +4321,14 @@ class ProfileService {
|
|
|
4324
4321
|
});
|
|
4325
4322
|
}
|
|
4326
4323
|
}
|
|
4327
|
-
ProfileService.ɵprov = ɵɵdefineInjectable({ factory: function ProfileService_Factory() { return new ProfileService(ɵɵinject(
|
|
4324
|
+
ProfileService.ɵprov = ɵɵdefineInjectable({ factory: function ProfileService_Factory() { return new ProfileService(ɵɵinject(KC_CONFIG), ɵɵinject(HttpClient), ɵɵinject(LrApolloService), ɵɵinject(KeyService), ɵɵinject(KeyMetaService), ɵɵinject(KeyGraphService), ɵɵinject(EncryptionService)); }, token: ProfileService, providedIn: "root" });
|
|
4328
4325
|
ProfileService.decorators = [
|
|
4329
4326
|
{ type: Injectable, args: [{
|
|
4330
4327
|
providedIn: 'root',
|
|
4331
4328
|
},] }
|
|
4332
4329
|
];
|
|
4333
4330
|
ProfileService.ctorParameters = () => [
|
|
4334
|
-
{ type: undefined, decorators: [{ type: Inject, args: [
|
|
4331
|
+
{ type: undefined, decorators: [{ type: Inject, args: [KC_CONFIG,] }] },
|
|
4335
4332
|
{ type: HttpClient },
|
|
4336
4333
|
{ type: LrApolloService },
|
|
4337
4334
|
{ type: KeyService },
|
|
@@ -4372,7 +4369,7 @@ const moment$1 = moment_;
|
|
|
4372
4369
|
class PasswordCheck {
|
|
4373
4370
|
}
|
|
4374
4371
|
class PasswordService {
|
|
4375
|
-
constructor(config, http, apollo, auth, profileService, keyFactory, encryptionService, keyGraph, webCryptoService
|
|
4372
|
+
constructor(config, http, apollo, auth, profileService, keyFactory, encryptionService, keyGraph, webCryptoService) {
|
|
4376
4373
|
this.config = config;
|
|
4377
4374
|
this.http = http;
|
|
4378
4375
|
this.apollo = apollo;
|
|
@@ -4382,7 +4379,6 @@ class PasswordService {
|
|
|
4382
4379
|
this.encryptionService = encryptionService;
|
|
4383
4380
|
this.keyGraph = keyGraph;
|
|
4384
4381
|
this.webCryptoService = webCryptoService;
|
|
4385
|
-
this.idleService = idleService;
|
|
4386
4382
|
this.CLIENT_NONCE_LENGTH = 32;
|
|
4387
4383
|
}
|
|
4388
4384
|
checkPassword(plainPassword) {
|
|
@@ -4508,17 +4504,14 @@ class PasswordService {
|
|
|
4508
4504
|
// a network timeout for example. But we don't know if it's the response that timed out and
|
|
4509
4505
|
// the idp password change was actually carried out. So we have to be extra conservative and
|
|
4510
4506
|
// only act on a clear success. Otherwise we go into recover mode.
|
|
4511
|
-
yield this.changePasswordComplete(
|
|
4507
|
+
yield this.changePasswordComplete({ useNewPassword: true, token });
|
|
4512
4508
|
});
|
|
4513
4509
|
}
|
|
4514
|
-
changePasswordComplete(
|
|
4510
|
+
changePasswordComplete(options) {
|
|
4515
4511
|
return __awaiter(this, void 0, void 0, function* () {
|
|
4512
|
+
const { useNewPassword, token } = options;
|
|
4516
4513
|
return this.http
|
|
4517
|
-
.post(`${this.config.authUrl}users/password-change-complete/`, Object.assign({ use_new_password: useNewPassword }, (token && { token })),
|
|
4518
|
-
headers: {
|
|
4519
|
-
Authorization: `Bearer ${accessToken}`,
|
|
4520
|
-
},
|
|
4521
|
-
})
|
|
4514
|
+
.post(`${this.config.authUrl}users/password-change-complete/`, Object.assign({ use_new_password: useNewPassword }, (token && { token })), yield httpOptions(this.auth, this.config))
|
|
4522
4515
|
.toPromise();
|
|
4523
4516
|
});
|
|
4524
4517
|
}
|
|
@@ -4638,14 +4631,14 @@ class PasswordService {
|
|
|
4638
4631
|
};
|
|
4639
4632
|
}
|
|
4640
4633
|
}
|
|
4641
|
-
PasswordService.ɵprov = ɵɵdefineInjectable({ factory: function PasswordService_Factory() { return new PasswordService(ɵɵinject(
|
|
4634
|
+
PasswordService.ɵprov = ɵɵdefineInjectable({ factory: function PasswordService_Factory() { return new PasswordService(ɵɵinject(KC_CONFIG), ɵɵinject(HttpClient), ɵɵinject(LrApolloService), ɵɵinject(AuthClass), ɵɵinject(ProfileService), ɵɵinject(KeyFactoryService), ɵɵinject(EncryptionService), ɵɵinject(KeyGraphService), ɵɵinject(WebCryptoService)); }, token: PasswordService, providedIn: "root" });
|
|
4642
4635
|
PasswordService.decorators = [
|
|
4643
4636
|
{ type: Injectable, args: [{
|
|
4644
4637
|
providedIn: 'root',
|
|
4645
4638
|
},] }
|
|
4646
4639
|
];
|
|
4647
4640
|
PasswordService.ctorParameters = () => [
|
|
4648
|
-
{ type: undefined, decorators: [{ type: Inject, args: [
|
|
4641
|
+
{ type: undefined, decorators: [{ type: Inject, args: [KC_CONFIG,] }] },
|
|
4649
4642
|
{ type: HttpClient },
|
|
4650
4643
|
{ type: LrApolloService },
|
|
4651
4644
|
{ type: AuthClass },
|
|
@@ -4653,8 +4646,7 @@ PasswordService.ctorParameters = () => [
|
|
|
4653
4646
|
{ type: KeyFactoryService },
|
|
4654
4647
|
{ type: EncryptionService },
|
|
4655
4648
|
{ type: KeyGraphService },
|
|
4656
|
-
{ type: WebCryptoService }
|
|
4657
|
-
{ type: IdleService }
|
|
4649
|
+
{ type: WebCryptoService }
|
|
4658
4650
|
];
|
|
4659
4651
|
|
|
4660
4652
|
const TP_PASSWORD_RESET_CLIENT_NONCE_LENGTH = 32;
|
|
@@ -5482,7 +5474,7 @@ const initialiseAuth = (authService) => {
|
|
|
5482
5474
|
return () => authService.initialise();
|
|
5483
5475
|
};
|
|
5484
5476
|
class LifeReadyAuthService {
|
|
5485
|
-
constructor(config, auth, keyFactory, keyService, profileService, keyGraphService, passwordService, idleService, lrGraphQL, tpPasswordResetProcessorService, persistService, encryptionService, assemblyController) {
|
|
5477
|
+
constructor(config, auth, keyFactory, keyService, profileService, keyGraphService, passwordService, idleService, lrGraphQL, tpPasswordResetProcessorService, persistService, encryptionService, assemblyController, http) {
|
|
5486
5478
|
this.config = config;
|
|
5487
5479
|
this.auth = auth;
|
|
5488
5480
|
this.keyFactory = keyFactory;
|
|
@@ -5496,17 +5488,82 @@ class LifeReadyAuthService {
|
|
|
5496
5488
|
this.persistService = persistService;
|
|
5497
5489
|
this.encryptionService = encryptionService;
|
|
5498
5490
|
this.assemblyController = assemblyController;
|
|
5491
|
+
this.http = http;
|
|
5499
5492
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5500
5493
|
this.hubSubject = new ReplaySubject(1);
|
|
5501
5494
|
// Could use rxjs observables here. But trying to have kc-client use as little angular
|
|
5502
5495
|
// features as possible. Rxjs is not used anywhere else in kc-client.
|
|
5503
5496
|
this.logoutListeners = new Set();
|
|
5497
|
+
if (!isDevMode()) {
|
|
5498
|
+
if (this.config.debug != null) {
|
|
5499
|
+
throw new LrBadLogicException('In production mode, "config.debug" must be set to null');
|
|
5500
|
+
}
|
|
5501
|
+
}
|
|
5504
5502
|
}
|
|
5505
5503
|
initialise() {
|
|
5506
5504
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5507
5505
|
Hub.listen('auth', (data) => this.hubSubject.next(data.payload));
|
|
5508
5506
|
});
|
|
5509
5507
|
}
|
|
5508
|
+
debugLogin(username, password) {
|
|
5509
|
+
// This will fail if debug is null. But when debug is null, this function
|
|
5510
|
+
// should not be called.
|
|
5511
|
+
this.config.debug.username = username;
|
|
5512
|
+
return this.debugLoadUser(password);
|
|
5513
|
+
}
|
|
5514
|
+
// ------------------------------------------------------------------------
|
|
5515
|
+
// ------------------------------------------------------------------------
|
|
5516
|
+
// ------------------------------------------------------------------------
|
|
5517
|
+
/**
|
|
5518
|
+
* Login using the server side session method.
|
|
5519
|
+
*/
|
|
5520
|
+
debugLoginUsingSession(username) {
|
|
5521
|
+
return this.http
|
|
5522
|
+
.get(this.config.apiUrl +
|
|
5523
|
+
'debug_only/users/login/?username=' +
|
|
5524
|
+
encodeURIComponent(username), {
|
|
5525
|
+
// Non-obvious alert: if you want the cookies to be set, you must use the
|
|
5526
|
+
// "withCredentials" header. I would have thought the withCredentials header
|
|
5527
|
+
// is only used to send the cookies with the requests. But, if you don't include
|
|
5528
|
+
// the "withCredentials" header, the cookies in the response DOES NOT get set!
|
|
5529
|
+
//
|
|
5530
|
+
// ref: https://github.com/github/fetch/issues/386#issuecomment-243229388
|
|
5531
|
+
withCredentials: true,
|
|
5532
|
+
})
|
|
5533
|
+
.toPromise();
|
|
5534
|
+
}
|
|
5535
|
+
debugLoadUser(password) {
|
|
5536
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
5537
|
+
const { currentUser, contactCard, userPlans } = yield this.profileService.getCurrentUser();
|
|
5538
|
+
// Debug mode can not deal with session encryption key yet.
|
|
5539
|
+
// NO SESSION ENCRYPTION KEY.
|
|
5540
|
+
const passKey = (yield this.keyFactory.derivePassKey(Object.assign({ password }, currentUser.currentUserKey.passKey.passKeyParams))).jwk;
|
|
5541
|
+
const masterKey = yield this.keyGraphService.unwrapWithPassKey(currentUser.currentUserKey.passKey.id, passKey, currentUser.currentUserKey.masterKey.id);
|
|
5542
|
+
yield this.idleService.persistMasterKey(masterKey);
|
|
5543
|
+
yield this.keyGraphService.populateKeys(currentUser.currentUserKey);
|
|
5544
|
+
return {
|
|
5545
|
+
id: currentUser.id,
|
|
5546
|
+
sub: 'DEBUG_MODE',
|
|
5547
|
+
username: currentUser.username,
|
|
5548
|
+
currentUserKey: currentUser.currentUserKey,
|
|
5549
|
+
email: 'DEBUG_MODE',
|
|
5550
|
+
emailVerified: false,
|
|
5551
|
+
phone: 'DEBUG_MODE',
|
|
5552
|
+
phoneVerified: false,
|
|
5553
|
+
contactCard: Object.assign({}, (yield this.profileService.decryptContactCard(contactCard))),
|
|
5554
|
+
userDelete: currentUser.userDelete,
|
|
5555
|
+
userPlans,
|
|
5556
|
+
hasTPVaultAccess: this.mapTPVaultAccess(currentUser.features),
|
|
5557
|
+
features: currentUser.features,
|
|
5558
|
+
sessionEncryptionKey: currentUser.sessionEncryptionKey,
|
|
5559
|
+
};
|
|
5560
|
+
});
|
|
5561
|
+
}
|
|
5562
|
+
getAccessJwtToken() {
|
|
5563
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
5564
|
+
return getAccessJwtToken(this.auth);
|
|
5565
|
+
});
|
|
5566
|
+
}
|
|
5510
5567
|
importPassword(plainPassword) {
|
|
5511
5568
|
return this.keyFactory.importPassword(plainPassword);
|
|
5512
5569
|
}
|
|
@@ -5672,11 +5729,9 @@ class LifeReadyAuthService {
|
|
|
5672
5729
|
handlePasswordRecovery(user) {
|
|
5673
5730
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5674
5731
|
if (user.recoveryStatus !== RecoveryStatus.NONE) {
|
|
5675
|
-
|
|
5676
|
-
.
|
|
5677
|
-
|
|
5678
|
-
.getJwtToken();
|
|
5679
|
-
yield this.passwordService.changePasswordComplete(jwtToken, user.recoveryStatus === RecoveryStatus.NEW_PASSWORD);
|
|
5732
|
+
yield this.passwordService.changePasswordComplete({
|
|
5733
|
+
useNewPassword: user.recoveryStatus === RecoveryStatus.NEW_PASSWORD,
|
|
5734
|
+
});
|
|
5680
5735
|
}
|
|
5681
5736
|
});
|
|
5682
5737
|
}
|
|
@@ -5734,7 +5789,6 @@ class LifeReadyAuthService {
|
|
|
5734
5789
|
sub: this.getUserAttribute('sub', userAttributes),
|
|
5735
5790
|
username: currentUser.username,
|
|
5736
5791
|
currentUserKey: currentUser.currentUserKey,
|
|
5737
|
-
getAccessJwtToken: () => cognitoUser.getSignInUserSession().getAccessToken().getJwtToken(),
|
|
5738
5792
|
email: this.getUserAttribute('email', userAttributes),
|
|
5739
5793
|
emailVerified: this.getUserAttribute('email_verified', userAttributes) === 'true',
|
|
5740
5794
|
phone: this.getUserAttribute('phone_number', userAttributes),
|
|
@@ -5753,6 +5807,7 @@ class LifeReadyAuthService {
|
|
|
5753
5807
|
return this.hubSubject;
|
|
5754
5808
|
}
|
|
5755
5809
|
logout() {
|
|
5810
|
+
var _a;
|
|
5756
5811
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5757
5812
|
// Notify all listeners to clean up.
|
|
5758
5813
|
yield Promise.all([...this.logoutListeners].map((callback) => callback()));
|
|
@@ -5760,6 +5815,9 @@ class LifeReadyAuthService {
|
|
|
5760
5815
|
this.keyService.purgeKeys();
|
|
5761
5816
|
this.keyGraphService.purgeKeys();
|
|
5762
5817
|
yield Promise.all([this.auth.signOut(), this.profileService.signOut()]);
|
|
5818
|
+
if ((_a = this.config.debug) === null || _a === void 0 ? void 0 : _a.username) {
|
|
5819
|
+
this.config.debug.username = null;
|
|
5820
|
+
}
|
|
5763
5821
|
});
|
|
5764
5822
|
}
|
|
5765
5823
|
getUserAttribute(attributeName, userAttributes) {
|
|
@@ -5914,14 +5972,14 @@ class LifeReadyAuthService {
|
|
|
5914
5972
|
});
|
|
5915
5973
|
}
|
|
5916
5974
|
}
|
|
5917
|
-
LifeReadyAuthService.ɵprov = ɵɵdefineInjectable({ factory: function LifeReadyAuthService_Factory() { return new LifeReadyAuthService(ɵɵinject(
|
|
5975
|
+
LifeReadyAuthService.ɵprov = ɵɵdefineInjectable({ factory: function LifeReadyAuthService_Factory() { return new LifeReadyAuthService(ɵɵinject(KC_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), ɵɵinject(HttpClient)); }, token: LifeReadyAuthService, providedIn: "root" });
|
|
5918
5976
|
LifeReadyAuthService.decorators = [
|
|
5919
5977
|
{ type: Injectable, args: [{
|
|
5920
5978
|
providedIn: 'root',
|
|
5921
5979
|
},] }
|
|
5922
5980
|
];
|
|
5923
5981
|
LifeReadyAuthService.ctorParameters = () => [
|
|
5924
|
-
{ type: undefined, decorators: [{ type: Inject, args: [
|
|
5982
|
+
{ type: undefined, decorators: [{ type: Inject, args: [KC_CONFIG,] }] },
|
|
5925
5983
|
{ type: AuthClass },
|
|
5926
5984
|
{ type: KeyFactoryService },
|
|
5927
5985
|
{ type: KeyService },
|
|
@@ -5933,7 +5991,8 @@ LifeReadyAuthService.ctorParameters = () => [
|
|
|
5933
5991
|
{ type: TpPasswordResetProcessorService },
|
|
5934
5992
|
{ type: PersistService },
|
|
5935
5993
|
{ type: EncryptionService },
|
|
5936
|
-
{ type: TpPasswordResetAssemblyController }
|
|
5994
|
+
{ type: TpPasswordResetAssemblyController },
|
|
5995
|
+
{ type: HttpClient }
|
|
5937
5996
|
];
|
|
5938
5997
|
|
|
5939
5998
|
var FileType;
|
|
@@ -6699,10 +6758,10 @@ ContactCard2Service = __decorate([
|
|
|
6699
6758
|
], ContactCard2Service);
|
|
6700
6759
|
|
|
6701
6760
|
class FileUploadService {
|
|
6702
|
-
constructor(config, http,
|
|
6761
|
+
constructor(config, http, auth) {
|
|
6703
6762
|
this.config = config;
|
|
6704
6763
|
this.http = http;
|
|
6705
|
-
this.
|
|
6764
|
+
this.auth = auth;
|
|
6706
6765
|
}
|
|
6707
6766
|
downloadEncryptedFile(fileStateNodeId) {
|
|
6708
6767
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -6713,12 +6772,7 @@ class FileUploadService {
|
|
|
6713
6772
|
return __awaiter(this, void 0, void 0, function* () {
|
|
6714
6773
|
const url = `${this.config.apiUrl}files/download/?file_state_node_id=${fileStateNodeId}`;
|
|
6715
6774
|
const content = yield this.http
|
|
6716
|
-
.get(url, {
|
|
6717
|
-
responseType: 'text',
|
|
6718
|
-
headers: {
|
|
6719
|
-
Authorization: `Bearer ${(yield this.lrAuth.getUser()).getAccessJwtToken()}`,
|
|
6720
|
-
},
|
|
6721
|
-
})
|
|
6775
|
+
.get(url, Object.assign(Object.assign({}, (yield httpOptions(this.auth, this.config))), { responseType: 'text' }))
|
|
6722
6776
|
.toPromise();
|
|
6723
6777
|
return content;
|
|
6724
6778
|
});
|
|
@@ -6741,26 +6795,22 @@ class FileUploadService {
|
|
|
6741
6795
|
const formData = new FormData();
|
|
6742
6796
|
formData.append('content', new Blob([encryptedContent]), fileName);
|
|
6743
6797
|
const { content_resource } = yield this.http
|
|
6744
|
-
.post(`${this.config.apiUrl}files/upload/`, formData,
|
|
6745
|
-
headers: {
|
|
6746
|
-
Authorization: `Bearer ${(yield this.lrAuth.getUser()).getAccessJwtToken()}`,
|
|
6747
|
-
},
|
|
6748
|
-
})
|
|
6798
|
+
.post(`${this.config.apiUrl}files/upload/`, formData, yield httpOptions(this.auth, this.config))
|
|
6749
6799
|
.toPromise();
|
|
6750
6800
|
return content_resource;
|
|
6751
6801
|
});
|
|
6752
6802
|
}
|
|
6753
6803
|
}
|
|
6754
|
-
FileUploadService.ɵprov = ɵɵdefineInjectable({ factory: function FileUploadService_Factory() { return new FileUploadService(ɵɵinject(
|
|
6804
|
+
FileUploadService.ɵprov = ɵɵdefineInjectable({ factory: function FileUploadService_Factory() { return new FileUploadService(ɵɵinject(KC_CONFIG), ɵɵinject(HttpClient), ɵɵinject(AuthClass)); }, token: FileUploadService, providedIn: "root" });
|
|
6755
6805
|
FileUploadService.decorators = [
|
|
6756
6806
|
{ type: Injectable, args: [{
|
|
6757
6807
|
providedIn: 'root',
|
|
6758
6808
|
},] }
|
|
6759
6809
|
];
|
|
6760
6810
|
FileUploadService.ctorParameters = () => [
|
|
6761
|
-
{ type: undefined, decorators: [{ type: Inject, args: [
|
|
6811
|
+
{ type: undefined, decorators: [{ type: Inject, args: [KC_CONFIG,] }] },
|
|
6762
6812
|
{ type: HttpClient },
|
|
6763
|
-
{ type:
|
|
6813
|
+
{ type: AuthClass }
|
|
6764
6814
|
];
|
|
6765
6815
|
|
|
6766
6816
|
const LockFragment = gqlTyped `
|
|
@@ -9303,14 +9353,14 @@ class LbopService {
|
|
|
9303
9353
|
});
|
|
9304
9354
|
}
|
|
9305
9355
|
}
|
|
9306
|
-
LbopService.ɵprov = ɵɵdefineInjectable({ factory: function LbopService_Factory() { return new LbopService(ɵɵinject(
|
|
9356
|
+
LbopService.ɵprov = ɵɵdefineInjectable({ factory: function LbopService_Factory() { return new LbopService(ɵɵinject(KC_CONFIG), ɵɵinject(HttpClient), ɵɵinject(LrApolloService), ɵɵinject(AuthClass), ɵɵinject(LifeReadyAuthService), ɵɵinject(KeyFactoryService), ɵɵinject(KeyService), ɵɵinject(EncryptionService), ɵɵinject(KeyGraphService), ɵɵinject(PasswordService)); }, token: LbopService, providedIn: "root" });
|
|
9307
9357
|
LbopService.decorators = [
|
|
9308
9358
|
{ type: Injectable, args: [{
|
|
9309
9359
|
providedIn: 'root',
|
|
9310
9360
|
},] }
|
|
9311
9361
|
];
|
|
9312
9362
|
LbopService.ctorParameters = () => [
|
|
9313
|
-
{ type: undefined, decorators: [{ type: Inject, args: [
|
|
9363
|
+
{ type: undefined, decorators: [{ type: Inject, args: [KC_CONFIG,] }] },
|
|
9314
9364
|
{ type: HttpClient },
|
|
9315
9365
|
{ type: LrApolloService },
|
|
9316
9366
|
{ type: AuthClass },
|
|
@@ -9328,7 +9378,7 @@ class LifeReadyModule {
|
|
|
9328
9378
|
ngModule: LifeReadyModule,
|
|
9329
9379
|
providers: [
|
|
9330
9380
|
{
|
|
9331
|
-
provide:
|
|
9381
|
+
provide: KC_CONFIG,
|
|
9332
9382
|
useValue: config,
|
|
9333
9383
|
},
|
|
9334
9384
|
{
|
|
@@ -9338,7 +9388,7 @@ class LifeReadyModule {
|
|
|
9338
9388
|
{
|
|
9339
9389
|
provide: APP_INITIALIZER,
|
|
9340
9390
|
useFactory: configureAmplifyAuth,
|
|
9341
|
-
deps: [
|
|
9391
|
+
deps: [KC_CONFIG, AuthClass],
|
|
9342
9392
|
multi: true,
|
|
9343
9393
|
},
|
|
9344
9394
|
{
|
|
@@ -9350,7 +9400,7 @@ class LifeReadyModule {
|
|
|
9350
9400
|
{
|
|
9351
9401
|
provide: APOLLO_OPTIONS,
|
|
9352
9402
|
useFactory: configureApollo,
|
|
9353
|
-
deps: [
|
|
9403
|
+
deps: [KC_CONFIG, AuthClass],
|
|
9354
9404
|
},
|
|
9355
9405
|
],
|
|
9356
9406
|
};
|
|
@@ -10959,14 +11009,14 @@ class RegisterService {
|
|
|
10959
11009
|
});
|
|
10960
11010
|
}
|
|
10961
11011
|
}
|
|
10962
|
-
RegisterService.ɵprov = ɵɵdefineInjectable({ factory: function RegisterService_Factory() { return new RegisterService(ɵɵinject(
|
|
11012
|
+
RegisterService.ɵprov = ɵɵdefineInjectable({ factory: function RegisterService_Factory() { return new RegisterService(ɵɵinject(KC_CONFIG), ɵɵinject(AuthClass), ɵɵinject(HttpClient), ɵɵinject(KeyFactoryService), ɵɵinject(EncryptionService), ɵɵinject(PasswordService)); }, token: RegisterService, providedIn: "root" });
|
|
10963
11013
|
RegisterService.decorators = [
|
|
10964
11014
|
{ type: Injectable, args: [{
|
|
10965
11015
|
providedIn: 'root',
|
|
10966
11016
|
},] }
|
|
10967
11017
|
];
|
|
10968
11018
|
RegisterService.ctorParameters = () => [
|
|
10969
|
-
{ type: undefined, decorators: [{ type: Inject, args: [
|
|
11019
|
+
{ type: undefined, decorators: [{ type: Inject, args: [KC_CONFIG,] }] },
|
|
10970
11020
|
{ type: AuthClass },
|
|
10971
11021
|
{ type: HttpClient },
|
|
10972
11022
|
{ type: KeyFactoryService },
|
|
@@ -12246,7 +12296,7 @@ let TpPasswordResetUserService = class TpPasswordResetUserService extends LrServ
|
|
|
12246
12296
|
});
|
|
12247
12297
|
}
|
|
12248
12298
|
};
|
|
12249
|
-
TpPasswordResetUserService.ɵprov = ɵɵdefineInjectable({ factory: function TpPasswordResetUserService_Factory() { return new TpPasswordResetUserService(ɵɵinject(NgZone), ɵɵinject(INJECTOR), ɵɵinject(
|
|
12299
|
+
TpPasswordResetUserService.ɵprov = ɵɵdefineInjectable({ factory: function TpPasswordResetUserService_Factory() { return new TpPasswordResetUserService(ɵɵinject(NgZone), ɵɵinject(INJECTOR), ɵɵinject(KC_CONFIG), ɵɵinject(KeyFactoryService), ɵɵinject(EncryptionService), ɵɵinject(PasswordService), ɵɵinject(HttpClient), ɵɵinject(AuthClass)); }, token: TpPasswordResetUserService, providedIn: "root" });
|
|
12250
12300
|
TpPasswordResetUserService.decorators = [
|
|
12251
12301
|
{ type: Injectable, args: [{
|
|
12252
12302
|
providedIn: 'root',
|
|
@@ -12255,7 +12305,7 @@ TpPasswordResetUserService.decorators = [
|
|
|
12255
12305
|
TpPasswordResetUserService.ctorParameters = () => [
|
|
12256
12306
|
{ type: NgZone },
|
|
12257
12307
|
{ type: Injector },
|
|
12258
|
-
{ type: undefined, decorators: [{ type: Inject, args: [
|
|
12308
|
+
{ type: undefined, decorators: [{ type: Inject, args: [KC_CONFIG,] }] },
|
|
12259
12309
|
{ type: KeyFactoryService },
|
|
12260
12310
|
{ type: EncryptionService },
|
|
12261
12311
|
{ type: PasswordService },
|
|
@@ -12732,5 +12782,5 @@ TwoFactorService.ctorParameters = () => [
|
|
|
12732
12782
|
* Generated bundle index. Do not edit.
|
|
12733
12783
|
*/
|
|
12734
12784
|
|
|
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,
|
|
12785
|
+
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, KC_CONFIG, KeyExchange2Service, KeyExchangeFields, KeyExchangeMode, KeyExchangeOtkState, KeyExchangeQuery, KeyExchangeService, KeyExchangeState, KeyExchangeTokenQuery, KeyExchangesQuery, KeyGraphField, KeyGraphFragment, 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 };
|
|
12736
12786
|
//# sourceMappingURL=lifeready-core.js.map
|