@lifeready/core 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -62
- package/bundles/lifeready-core.umd.js +15445 -15445
- package/bundles/lifeready-core.umd.js.map +1 -1
- package/bundles/lifeready-core.umd.min.js.map +1 -1
- package/esm2015/lib/_common/ast.js +40 -40
- package/esm2015/lib/_common/deferred-promise.js +24 -24
- package/esm2015/lib/_common/exceptions.js +157 -157
- package/esm2015/lib/_common/queries.gql.js +190 -190
- package/esm2015/lib/_common/run-outside-angular.js +79 -79
- package/esm2015/lib/_common/types.js +1 -1
- package/esm2015/lib/_common/utils.js +44 -44
- package/esm2015/lib/api/contact-card.gql.js +79 -79
- package/esm2015/lib/api/contact-card.service.js +154 -154
- package/esm2015/lib/api/contact-card2.gql.js +60 -60
- package/esm2015/lib/api/contact-card2.service.js +103 -103
- package/esm2015/lib/api/file.service.js +74 -74
- package/esm2015/lib/api/item2.gql.js +110 -110
- package/esm2015/lib/api/item2.service.js +311 -311
- package/esm2015/lib/api/key-exchange.gql.js +188 -188
- package/esm2015/lib/api/key-exchange.service.js +442 -442
- package/esm2015/lib/api/key-exchange.types.js +18 -18
- package/esm2015/lib/api/key-exchange2.gql.js +171 -171
- package/esm2015/lib/api/key-exchange2.service.js +479 -479
- package/esm2015/lib/api/lock.gql.js +40 -40
- package/esm2015/lib/api/lock.service.js +64 -64
- package/esm2015/lib/api/lr-apollo.service.js +46 -46
- package/esm2015/lib/api/lr-graphql/index.js +6 -6
- package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +155 -155
- package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +213 -213
- package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +51 -51
- package/esm2015/lib/api/lr-graphql/lr-mutation.js +48 -48
- package/esm2015/lib/api/lr-graphql/lr.service.js +18 -18
- package/esm2015/lib/api/message.service.js +138 -138
- package/esm2015/lib/api/persist.service.js +181 -181
- package/esm2015/lib/api/query-processor/common-processors.service.js +93 -93
- package/esm2015/lib/api/query-processor/index.js +3 -3
- package/esm2015/lib/api/query-processor/query-processor.service.js +192 -192
- package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +109 -109
- package/esm2015/lib/api/shared-contact-card.service.js +119 -119
- package/esm2015/lib/api/shared-contact-card2.gql.js +41 -41
- package/esm2015/lib/api/shared-contact-card2.service.js +117 -117
- package/esm2015/lib/api/time.service.js +146 -146
- package/esm2015/lib/api/types/graphql.types.js +7 -7
- package/esm2015/lib/api/types/index.js +3 -3
- package/esm2015/lib/api/types/lr-graphql.types.js +71 -71
- package/esm2015/lib/auth/auth.config.js +57 -57
- package/esm2015/lib/auth/auth.gql.js +48 -48
- package/esm2015/lib/auth/auth.types.js +27 -27
- package/esm2015/lib/auth/idle.service.js +168 -168
- package/esm2015/lib/auth/idle.types.js +7 -7
- package/esm2015/lib/auth/lbop.service.js +355 -355
- package/esm2015/lib/auth/life-ready-auth.service.js +500 -500
- package/esm2015/lib/auth/password.service.js +320 -320
- package/esm2015/lib/auth/register.service.js +172 -172
- package/esm2015/lib/auth/two-factor.service.js +74 -74
- package/esm2015/lib/category/category-meta.service.js +99 -99
- package/esm2015/lib/category/category.gql.js +406 -406
- package/esm2015/lib/category/category.service.js +390 -390
- package/esm2015/lib/category/category.types.js +29 -29
- package/esm2015/lib/cryptography/cryptography.types.js +11 -11
- package/esm2015/lib/cryptography/encryption.service.js +189 -189
- package/esm2015/lib/cryptography/key-factory.service.js +237 -237
- package/esm2015/lib/cryptography/key-graph.service.js +280 -280
- package/esm2015/lib/cryptography/key-meta.service.js +200 -200
- package/esm2015/lib/cryptography/key.service.js +124 -124
- package/esm2015/lib/cryptography/slip39.service.js +169 -169
- package/esm2015/lib/cryptography/web-crypto.service.js +29 -29
- package/esm2015/lib/life-ready.config.js +84 -84
- package/esm2015/lib/life-ready.module.js +74 -74
- package/esm2015/lib/plan/plan.gql.js +123 -123
- package/esm2015/lib/plan/plan.service.js +149 -149
- package/esm2015/lib/plan/plan.types.js +11 -11
- package/esm2015/lib/record/record-attachment.service.js +101 -101
- package/esm2015/lib/record/record.gql.js +179 -179
- package/esm2015/lib/record/record.service.js +206 -206
- package/esm2015/lib/record/record.types.js +15 -15
- package/esm2015/lib/record-type/record-type.service.js +75 -75
- package/esm2015/lib/record-type/record-type.types.js +28 -28
- package/esm2015/lib/scenario/approvals/scenario-approval.gql.js +105 -105
- package/esm2015/lib/scenario/approvals/scenario-approval.types.js +1 -1
- package/esm2015/lib/scenario/approvals/scenario-approver.service.js +300 -300
- package/esm2015/lib/scenario/claimants/scenario-claimant.gql.js +52 -52
- package/esm2015/lib/scenario/claimants/scenario-claimant.service.js +97 -97
- package/esm2015/lib/scenario/claimants/scenario-claimant.types.js +1 -1
- package/esm2015/lib/scenario/receivers/scenario-receiver.gql.js +150 -150
- package/esm2015/lib/scenario/receivers/scenario-receiver.service.js +229 -229
- package/esm2015/lib/scenario/receivers/scenario-receiver.types.js +1 -1
- package/esm2015/lib/scenario/scenario-setup.service.js +269 -269
- package/esm2015/lib/scenario/scenario.gql.js +368 -368
- package/esm2015/lib/scenario/scenario.service.js +611 -611
- package/esm2015/lib/scenario/scenario.types.js +64 -64
- package/esm2015/lib/search/search.gql.js +62 -62
- package/esm2015/lib/search/search.service.js +156 -156
- package/esm2015/lib/search/search.types.js +6 -6
- package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +112 -112
- package/esm2015/lib/trusted-parties/tp-password-reset-user.service.js +129 -129
- package/esm2015/lib/trusted-parties/tp-password-reset.constants.js +4 -4
- package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +232 -232
- package/esm2015/lib/trusted-parties/tp-password-reset.service.js +299 -299
- package/esm2015/lib/trusted-parties/trusted-party.gql.js +148 -148
- package/esm2015/lib/trusted-parties/trusted-party.service.js +326 -326
- package/esm2015/lib/trusted-parties/trusted-party.types.js +41 -41
- package/esm2015/lib/trusted-parties/trusted-party2.gql.js +87 -87
- package/esm2015/lib/trusted-parties/trusted-party2.service.js +215 -215
- package/esm2015/lib/users/profile-details.service.js +214 -214
- package/esm2015/lib/users/profile.gql.js +97 -97
- package/esm2015/lib/users/profile.service.js +169 -169
- package/esm2015/lib/users/profile.types.js +34 -34
- package/esm2015/lib/users/user.gql.js +60 -60
- package/esm2015/lib/users/user.service.js +79 -79
- package/esm2015/lib/users/user.types.js +5 -5
- package/esm2015/lifeready-core.js +10 -10
- package/esm2015/public-api.js +81 -81
- package/fesm2015/lifeready-core.js +13088 -13088
- package/fesm2015/lifeready-core.js.map +1 -1
- package/lib/_common/ast.d.ts +11 -11
- package/lib/_common/deferred-promise.d.ts +12 -12
- package/lib/_common/exceptions.d.ts +109 -109
- package/lib/_common/queries.gql.d.ts +10 -10
- package/lib/_common/run-outside-angular.d.ts +14 -14
- package/lib/_common/types.d.ts +10 -10
- package/lib/_common/utils.d.ts +3 -3
- package/lib/api/contact-card.gql.d.ts +7 -7
- package/lib/api/contact-card.service.d.ts +52 -52
- package/lib/api/contact-card2.gql.d.ts +34 -34
- package/lib/api/contact-card2.service.d.ts +49 -49
- package/lib/api/file.service.d.ts +18 -18
- package/lib/api/item2.gql.d.ts +96 -96
- package/lib/api/item2.service.d.ts +177 -177
- package/lib/api/key-exchange.gql.d.ts +9 -9
- package/lib/api/key-exchange.service.d.ts +39 -39
- package/lib/api/key-exchange.types.d.ts +196 -196
- package/lib/api/key-exchange2.gql.d.ts +125 -125
- package/lib/api/key-exchange2.service.d.ts +187 -187
- package/lib/api/lock.gql.d.ts +27 -27
- package/lib/api/lock.service.d.ts +25 -25
- package/lib/api/lr-apollo.service.d.ts +15 -15
- package/lib/api/lr-graphql/index.d.ts +5 -5
- package/lib/api/lr-graphql/lr-graphql.service.d.ts +60 -60
- package/lib/api/lr-graphql/lr-merged-mutation.d.ts +27 -27
- package/lib/api/lr-graphql/lr-mutation-base.d.ts +28 -28
- package/lib/api/lr-graphql/lr-mutation.d.ts +8 -8
- package/lib/api/lr-graphql/lr.service.d.ts +9 -9
- package/lib/api/message.service.d.ts +58 -58
- package/lib/api/persist.service.d.ts +31 -31
- package/lib/api/query-processor/common-processors.service.d.ts +36 -36
- package/lib/api/query-processor/index.d.ts +2 -2
- package/lib/api/query-processor/query-processor.service.d.ts +18 -18
- package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +15 -15
- package/lib/api/shared-contact-card.service.d.ts +33 -33
- package/lib/api/shared-contact-card2.gql.d.ts +36 -36
- package/lib/api/shared-contact-card2.service.d.ts +45 -45
- package/lib/api/time.service.d.ts +16 -16
- package/lib/api/types/graphql.types.d.ts +29 -29
- package/lib/api/types/index.d.ts +2 -2
- package/lib/api/types/lr-graphql.types.d.ts +385 -385
- package/lib/auth/auth.config.d.ts +5 -5
- package/lib/auth/auth.gql.d.ts +15 -15
- package/lib/auth/auth.types.d.ts +66 -66
- package/lib/auth/idle.service.d.ts +40 -40
- package/lib/auth/idle.types.d.ts +10 -10
- package/lib/auth/lbop.service.d.ts +91 -91
- package/lib/auth/life-ready-auth.service.d.ts +59 -59
- package/lib/auth/password.service.d.ts +78 -78
- package/lib/auth/register.service.d.ts +25 -25
- package/lib/auth/two-factor.service.d.ts +15 -15
- package/lib/category/category-meta.service.d.ts +23 -23
- package/lib/category/category.gql.d.ts +45 -45
- package/lib/category/category.service.d.ts +67 -67
- package/lib/category/category.types.d.ts +79 -79
- package/lib/cryptography/cryptography.types.d.ts +83 -83
- package/lib/cryptography/encryption.service.d.ts +41 -41
- package/lib/cryptography/key-factory.service.d.ts +38 -38
- package/lib/cryptography/key-graph.service.d.ts +33 -33
- package/lib/cryptography/key-meta.service.d.ts +44 -44
- package/lib/cryptography/key.service.d.ts +36 -36
- package/lib/cryptography/slip39.service.d.ts +43 -43
- package/lib/cryptography/web-crypto.service.d.ts +5 -5
- package/lib/life-ready.config.d.ts +14 -14
- package/lib/life-ready.module.d.ts +5 -5
- package/lib/plan/plan.gql.d.ts +11 -11
- package/lib/plan/plan.service.d.ts +33 -33
- package/lib/plan/plan.types.d.ts +31 -31
- package/lib/record/record-attachment.service.d.ts +16 -16
- package/lib/record/record.gql.d.ts +14 -14
- package/lib/record/record.service.d.ts +25 -25
- package/lib/record/record.types.d.ts +57 -57
- package/lib/record-type/record-type.service.d.ts +11 -11
- package/lib/record-type/record-type.types.d.ts +50 -50
- package/lib/scenario/approvals/scenario-approval.gql.d.ts +7 -7
- package/lib/scenario/approvals/scenario-approval.types.d.ts +63 -63
- package/lib/scenario/approvals/scenario-approver.service.d.ts +32 -32
- package/lib/scenario/claimants/scenario-claimant.gql.d.ts +5 -5
- package/lib/scenario/claimants/scenario-claimant.service.d.ts +17 -17
- package/lib/scenario/claimants/scenario-claimant.types.d.ts +18 -18
- package/lib/scenario/receivers/scenario-receiver.gql.d.ts +8 -8
- package/lib/scenario/receivers/scenario-receiver.service.d.ts +30 -30
- package/lib/scenario/receivers/scenario-receiver.types.d.ts +54 -54
- package/lib/scenario/scenario-setup.service.d.ts +22 -22
- package/lib/scenario/scenario.gql.d.ts +34 -34
- package/lib/scenario/scenario.service.d.ts +58 -58
- package/lib/scenario/scenario.types.d.ts +217 -217
- package/lib/search/search.gql.d.ts +1 -1
- package/lib/search/search.service.d.ts +25 -25
- package/lib/search/search.types.d.ts +20 -20
- package/lib/trusted-parties/tp-password-reset-request.service.d.ts +20 -20
- package/lib/trusted-parties/tp-password-reset-user.service.d.ts +35 -35
- package/lib/trusted-parties/tp-password-reset.constants.d.ts +3 -3
- package/lib/trusted-parties/tp-password-reset.gql.d.ts +218 -218
- package/lib/trusted-parties/tp-password-reset.service.d.ts +130 -130
- package/lib/trusted-parties/trusted-party.gql.d.ts +9 -9
- package/lib/trusted-parties/trusted-party.service.d.ts +44 -44
- package/lib/trusted-parties/trusted-party.types.d.ts +102 -102
- package/lib/trusted-parties/trusted-party2.gql.d.ts +79 -79
- package/lib/trusted-parties/trusted-party2.service.d.ts +114 -114
- package/lib/users/profile-details.service.d.ts +21 -21
- package/lib/users/profile.gql.d.ts +11 -11
- package/lib/users/profile.service.d.ts +35 -35
- package/lib/users/profile.types.d.ts +96 -96
- package/lib/users/user.gql.d.ts +9 -9
- package/lib/users/user.service.d.ts +12 -12
- package/lib/users/user.types.d.ts +23 -23
- package/lifeready-core.d.ts +9 -9
- package/package.json +1 -1
- package/public-api.d.ts +77 -77
|
@@ -1,156 +1,156 @@
|
|
|
1
|
-
import { __awaiter, __decorate } from "tslib";
|
|
2
|
-
import { Injectable, NgZone } from '@angular/core';
|
|
3
|
-
import { LrApolloService } from '../api/lr-apollo.service';
|
|
4
|
-
import { CategoryService } from '../category/category.service';
|
|
5
|
-
import { KeyGraphService } from '../cryptography/key-graph.service';
|
|
6
|
-
import { RecordFieldType } from '../record-type/record-type.types';
|
|
7
|
-
import { RecordContentFilter } from '../record/record.gql';
|
|
8
|
-
import { RunOutsideAngular } from '../_common/run-outside-angular';
|
|
9
|
-
import { SearchRecordContentsQuery } from './search.gql';
|
|
10
|
-
import { SearchItemType } from './search.types';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "../api/lr-apollo.service";
|
|
13
|
-
import * as i2 from "../category/category.service";
|
|
14
|
-
import * as i3 from "../cryptography/key-graph.service";
|
|
15
|
-
function debugPopulateCategory(categoryService, recordService, keyFactory, categoryId, recordsPerCategory) {
|
|
16
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
17
|
-
const tasks = [];
|
|
18
|
-
const category = yield categoryService.getCategory(categoryId);
|
|
19
|
-
// Create records
|
|
20
|
-
for (let i = category.records.length; i < recordsPerCategory; ++i) {
|
|
21
|
-
const name = `${category.category.name}+${keyFactory.randomString(16)}`;
|
|
22
|
-
console.log('Creating record: ', name);
|
|
23
|
-
yield recordService.createRecord({
|
|
24
|
-
categoryIds: [category.category.id],
|
|
25
|
-
name,
|
|
26
|
-
recordType: {
|
|
27
|
-
id: '1',
|
|
28
|
-
version: 1,
|
|
29
|
-
name: 'Vehicle Details',
|
|
30
|
-
},
|
|
31
|
-
fields: [
|
|
32
|
-
{
|
|
33
|
-
id: '1-vin',
|
|
34
|
-
type: RecordFieldType.Text,
|
|
35
|
-
label: 'VIN Number',
|
|
36
|
-
value: '1234567890',
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
id: '1-location',
|
|
40
|
-
type: RecordFieldType.Text,
|
|
41
|
-
label: 'Location',
|
|
42
|
-
value: '10'.repeat(1000),
|
|
43
|
-
},
|
|
44
|
-
],
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
// Delete records
|
|
48
|
-
for (let i = category.records.length; i > recordsPerCategory; --i) {
|
|
49
|
-
const id = category.records[i - 1].id;
|
|
50
|
-
console.log('Deleting record: ', id);
|
|
51
|
-
yield recordService.deleteRecord(id);
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
export function debugPopulateRecords(categoryService, recordService, keyFactory, recordsPerCategory) {
|
|
56
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
-
const pillars = yield categoryService.getCategories();
|
|
58
|
-
// For each category, added records
|
|
59
|
-
for (const pillar of pillars) {
|
|
60
|
-
const category = yield categoryService.getCategory(pillar.id);
|
|
61
|
-
for (const subCategory of category.subCategories) {
|
|
62
|
-
if (subCategory.allowRecords) {
|
|
63
|
-
yield debugPopulateCategory(categoryService, recordService, keyFactory, subCategory.id, recordsPerCategory);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
let SearchService = class SearchService {
|
|
70
|
-
constructor(ngZone, lrApollo, categoryService, keyGraph) {
|
|
71
|
-
this.ngZone = ngZone;
|
|
72
|
-
this.lrApollo = lrApollo;
|
|
73
|
-
this.categoryService = categoryService;
|
|
74
|
-
this.keyGraph = keyGraph;
|
|
75
|
-
this.vaultItems = {};
|
|
76
|
-
}
|
|
77
|
-
mapRecordContent(recordContent) {
|
|
78
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
-
const record = recordContent.nParentDirectoryLinks.list[0].parentDirectory;
|
|
80
|
-
const state = recordContent.currentVersion.state;
|
|
81
|
-
const plainCipherMeta = state.cipherMeta &&
|
|
82
|
-
(yield this.keyGraph.decryptFromString(state.keyId, state.cipherMeta));
|
|
83
|
-
return {
|
|
84
|
-
type: SearchItemType.RECORD,
|
|
85
|
-
id: record.id,
|
|
86
|
-
created: new Date(record.created),
|
|
87
|
-
modified: new Date(record.modified),
|
|
88
|
-
archived: record.archived,
|
|
89
|
-
plainMeta: state.plainMeta &&
|
|
90
|
-
JSON.parse(recordContent.currentVersion.state.plainMeta),
|
|
91
|
-
plainCipherMeta,
|
|
92
|
-
parentCategoryId: record.nParentDirectoryLinks.list[0].parentDirectory.id,
|
|
93
|
-
};
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
mapRecordContents(edges) {
|
|
97
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
-
return Promise.all(edges.map((edge) => this.mapRecordContent(edge.node)));
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
load() {
|
|
102
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
103
|
-
const defaultVault = yield this.categoryService.getDefaultVault();
|
|
104
|
-
let start;
|
|
105
|
-
let end;
|
|
106
|
-
start = Date.now();
|
|
107
|
-
this.recordContentsResult = yield this.lrApollo.query({
|
|
108
|
-
query: SearchRecordContentsQuery,
|
|
109
|
-
variables: {
|
|
110
|
-
id: defaultVault.id,
|
|
111
|
-
depth: 5,
|
|
112
|
-
first: null,
|
|
113
|
-
after: null,
|
|
114
|
-
recordContentFilter: RecordContentFilter,
|
|
115
|
-
},
|
|
116
|
-
});
|
|
117
|
-
end = Date.now();
|
|
118
|
-
console.log('Search API time (s): ', (end - start) / 1000);
|
|
119
|
-
start = Date.now();
|
|
120
|
-
// try {
|
|
121
|
-
const items = yield this.mapRecordContents(this.recordContentsResult.category.descendantDirectories.recordContents
|
|
122
|
-
.edges);
|
|
123
|
-
for (const item of items) {
|
|
124
|
-
this.vaultItems[item.id] = item;
|
|
125
|
-
}
|
|
126
|
-
end = Date.now();
|
|
127
|
-
console.log('Search mapCategory time (s): ', (end - start) / 1000);
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
refresh() {
|
|
131
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
132
|
-
yield this.load();
|
|
133
|
-
console.log(Object.values(this.vaultItems));
|
|
134
|
-
return this.vaultItems;
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
};
|
|
138
|
-
SearchService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SearchService_Factory() { return new SearchService(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1.LrApolloService), i0.ɵɵinject(i2.CategoryService), i0.ɵɵinject(i3.KeyGraphService)); }, token: SearchService, providedIn: "root" });
|
|
139
|
-
SearchService.decorators = [
|
|
140
|
-
{ type: Injectable, args: [{
|
|
141
|
-
providedIn: 'root',
|
|
142
|
-
},] }
|
|
143
|
-
];
|
|
144
|
-
SearchService.ctorParameters = () => [
|
|
145
|
-
{ type: NgZone },
|
|
146
|
-
{ type: LrApolloService },
|
|
147
|
-
{ type: CategoryService },
|
|
148
|
-
{ type: KeyGraphService }
|
|
149
|
-
];
|
|
150
|
-
SearchService = __decorate([
|
|
151
|
-
RunOutsideAngular({
|
|
152
|
-
ngZoneName: 'ngZone',
|
|
153
|
-
})
|
|
154
|
-
], SearchService);
|
|
155
|
-
export { SearchService };
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL29wdC9hdGxhc3NpYW4vcGlwZWxpbmVzL2FnZW50L2J1aWxkL3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL3NlYXJjaC9zZWFyY2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6RCxPQUFPLEVBQWMsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBRTVELFNBQWUscUJBQXFCLENBQ2xDLGVBQWdDLEVBQ2hDLGFBQTRCLEVBQzVCLFVBQTZCLEVBQzdCLFVBQWtCLEVBQ2xCLGtCQUEwQjs7UUFFMUIsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBRWpCLE1BQU0sUUFBUSxHQUFHLE1BQU0sZUFBZSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUvRCxpQkFBaUI7UUFDakIsS0FBSyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDakUsTUFBTSxJQUFJLEdBQUcsR0FBRyxRQUFRLENBQUMsUUFBUSxD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WUFDbEIsZUFBZTtZQUNmLGVBQWU7WUFFZixlQUFlOztBQXdGWCxhQUFhO0lBTnpCLGlCQUFpQixDQUFDO1FBQ2pCLFVBQVUsRUFBRSxRQUFRO0tBQ3JCLENBQUM7R0FJVyxhQUFhLENBaUZ6QjtTQWpGWSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMckFwb2xsb1NlcnZpY2UgfSBmcm9tICcuLi9hcGkvbHItYXBvbGxvLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vY2F0ZWdvcnkvY2F0ZWdvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9rZXktZmFjdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUdyYXBoU2VydmljZSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9rZXktZ3JhcGguc2VydmljZSc7XG5pbXBvcnQgeyBSZWNvcmRGaWVsZFR5cGUgfSBmcm9tICcuLi9yZWNvcmQtdHlwZS9yZWNvcmQtdHlwZS50eXBlcyc7XG5pbXBvcnQgeyBSZWNvcmRDb250ZW50RmlsdGVyIH0gZnJvbSAnLi4vcmVjb3JkL3JlY29yZC5ncWwnO1xuaW1wb3J0IHsgUmVjb3JkU2VydmljZSB9IGZyb20gJy4uL3JlY29yZC9yZWNvcmQuc2VydmljZSc7XG5pbXBvcnQgeyBSdW5PdXRzaWRlQW5ndWxhciB9IGZyb20gJy4uL19jb21tb24vcnVuLW91dHNpZGUtYW5ndWxhcic7XG5pbXBvcnQgeyBTZWFyY2hSZWNvcmRDb250ZW50c1F1ZXJ5IH0gZnJvbSAnLi9zZWFyY2guZ3FsJztcbmltcG9ydCB7IFNlYXJjaEl0ZW0sIFNlYXJjaEl0ZW1UeXBlIH0gZnJvbSAnLi9zZWFyY2gudHlwZXMnO1xuXG5hc3luYyBmdW5jdGlvbiBkZWJ1Z1BvcHVsYXRlQ2F0ZWdvcnkoXG4gIGNhdGVnb3J5U2VydmljZTogQ2F0ZWdvcnlTZXJ2aWNlLFxuICByZWNvcmRTZXJ2aWNlOiBSZWNvcmRTZXJ2aWNlLFxuICBrZXlGYWN0b3J5OiBLZXlGYWN0b3J5U2VydmljZSxcbiAgY2F0ZWdvcnlJZDogc3RyaW5nLFxuICByZWNvcmRzUGVyQ2F0ZWdvcnk6IG51bWJlclxuKSB7XG4gIGNvbnN0IHRhc2tzID0gW107XG5cbiAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBjYXRlZ29yeVNlcnZpY2UuZ2V0Q2F0ZWdvcnkoY2F0ZWdvcnlJZCk7XG5cbiAgLy8gQ3JlYXRlIHJlY29yZHNcbiAgZm9yIChsZXQgaSA9IGNhdGVnb3J5LnJlY29yZHMubGVuZ3RoOyBpIDwgcmVjb3Jkc1BlckNhdGVnb3J5OyArK2kpIHtcbiAgICBjb25zdCBuYW1lID0gYCR7Y2F0ZWdvcnkuY2F0ZWdvcnkubmFtZX0rJHtrZXlGYWN0b3J5LnJhbmRvbVN0cmluZygxNil9YDtcbiAgICBjb25zb2xlLmxvZygnQ3JlYXRpbmcgcmVjb3JkOiAnLCBuYW1lKTtcbiAgICBhd2FpdCByZWNvcmRTZXJ2aWNlLmNyZWF0ZVJlY29yZCh7XG4gICAgICBjYXRlZ29yeUlkczogW2NhdGVnb3J5LmNhdGVnb3J5LmlkXSxcbiAgICAgIG5hbWUsXG4gICAgICByZWNvcmRUeXBlOiB7XG4gICAgICAgIGlkOiAnMScsXG4gICAgICAgIHZlcnNpb246IDEsXG4gICAgICAgIG5hbWU6ICdWZWhpY2xlIERldGFpbHMnLFxuICAgICAgfSxcbiAgICAgIGZpZWxkczogW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICcxLXZpbicsXG4gICAgICAgICAgdHlwZTogUmVjb3JkRmllbGRUeXBlLlRleHQsXG4gICAgICAgICAgbGFiZWw6ICdWSU4gTnVtYmVyJyxcbiAgICAgICAgICB2YWx1ZTogJzEyMzQ1Njc4OTAnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICcxLWxvY2F0aW9uJyxcbiAgICAgICAgICB0eXBlOiBSZWNvcmRGaWVsZFR5cGUuVGV4dCxcbiAgICAgICAgICBsYWJlbDogJ0xvY2F0aW9uJyxcbiAgICAgICAgICB2YWx1ZTogJzEwJy5yZXBlYXQoMTAwMCksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgLy8gYXR0YWNobWVudHNcbiAgICB9KTtcbiAgfVxuXG4gIC8vIERlbGV0ZSByZWNvcmRzXG4gIGZvciAobGV0IGkgPSBjYXRlZ29yeS5yZWNvcmRzLmxlbmd0aDsgaSA+IHJlY29yZHNQZXJDYXRlZ29yeTsgLS1pKSB7XG4gICAgY29uc3QgaWQgPSBjYXRlZ29yeS5yZWNvcmRzW2kgLSAxXS5pZDtcbiAgICBjb25zb2xlLmxvZygnRGVsZXRpbmcgcmVjb3JkOiAnLCBpZCk7XG4gICAgYXdhaXQgcmVjb3JkU2VydmljZS5kZWxldGVSZWNvcmQoaWQpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWJ1Z1BvcHVsYXRlUmVjb3JkcyhcbiAgY2F0ZWdvcnlTZXJ2aWNlOiBDYXRlZ29yeVNlcnZpY2UsXG4gIHJlY29yZFNlcnZpY2U6IFJlY29yZFNlcnZpY2UsXG4gIGtleUZhY3Rvcnk6IEtleUZhY3RvcnlTZXJ2aWNlLFxuICByZWNvcmRzUGVyQ2F0ZWdvcnk6IG51bWJlclxuKSB7XG4gIGNvbnN0IHBpbGxhcnMgPSBhd2FpdCBjYXRlZ29yeVNlcnZpY2UuZ2V0Q2F0ZWdvcmllcygpO1xuXG4gIC8vIEZvciBlYWNoIGNhdGVnb3J5LCBhZGRlZCByZWNvcmRzXG4gIGZvciAoY29uc3QgcGlsbGFyIG9mIHBpbGxhcnMpIHtcbiAgICBjb25zdCBjYXRlZ29yeSA9IGF3YWl0IGNhdGVnb3J5U2VydmljZS5nZXRDYXRlZ29yeShwaWxsYXIuaWQpO1xuICAgIGZvciAoY29uc3Qgc3ViQ2F0ZWdvcnkgb2YgY2F0ZWdvcnkuc3ViQ2F0ZWdvcmllcykge1xuICAgICAgaWYgKHN1YkNhdGVnb3J5LmFsbG93UmVjb3Jkcykge1xuICAgICAgICBhd2FpdCBkZWJ1Z1BvcHVsYXRlQ2F0ZWdvcnkoXG4gICAgICAgICAgY2F0ZWdvcnlTZXJ2aWNlLFxuICAgICAgICAgIHJlY29yZFNlcnZpY2UsXG4gICAgICAgICAga2V5RmFjdG9yeSxcbiAgICAgICAgICBzdWJDYXRlZ29yeS5pZCxcbiAgICAgICAgICByZWNvcmRzUGVyQ2F0ZWdvcnlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcbiAgbmdab25lTmFtZTogJ25nWm9uZScsXG59KVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaFNlcnZpY2Uge1xuICB2YXVsdEl0ZW1zOiB7IFtpdGVtSWQ6IHN0cmluZ106IFNlYXJjaEl0ZW0gfSA9IHt9O1xuICByZWNvcmRDb250ZW50c1Jlc3VsdDogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBsckFwb2xsbzogTHJBcG9sbG9TZXJ2aWNlLFxuICAgIHByaXZhdGUgY2F0ZWdvcnlTZXJ2aWNlOiBDYXRlZ29yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlHcmFwaDogS2V5R3JhcGhTZXJ2aWNlXG4gICkge31cblxuICBwcml2YXRlIGFzeW5jIG1hcFJlY29yZENvbnRlbnQocmVjb3JkQ29udGVudDogYW55KTogUHJvbWlzZTxTZWFyY2hJdGVtPiB7XG4gICAgY29uc3QgcmVjb3JkID0gcmVjb3JkQ29udGVudC5uUGFyZW50RGlyZWN0b3J5TGlua3MubGlzdFswXS5wYXJlbnREaXJlY3Rvcnk7XG4gICAgY29uc3Qgc3RhdGUgPSByZWNvcmRDb250ZW50LmN1cnJlbnRWZXJzaW9uLnN0YXRlO1xuXG4gICAgY29uc3QgcGxhaW5DaXBoZXJNZXRhID1cbiAgICAgIHN0YXRlLmNpcGhlck1ldGEgJiZcbiAgICAgIChhd2FpdCB0aGlzLmtleUdyYXBoLmRlY3J5cHRGcm9tU3RyaW5nPGFueT4oXG4gICAgICAgIHN0YXRlLmtleUlkLFxuICAgICAgICBzdGF0ZS5jaXBoZXJNZXRhXG4gICAgICApKTtcblxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBTZWFyY2hJdGVtVHlwZS5SRUNPUkQsXG4gICAgICBpZDogcmVjb3JkLmlkLFxuICAgICAgY3JlYXRlZDogbmV3IERhdGUocmVjb3JkLmNyZWF0ZWQpLFxuICAgICAgbW9kaWZpZWQ6IG5ldyBEYXRlKHJlY29yZC5tb2RpZmllZCksXG4gICAgICBhcmNoaXZlZDogcmVjb3JkLmFyY2hpdmVkLFxuICAgICAgcGxhaW5NZXRhOlxuICAgICAgICBzdGF0ZS5wbGFpbk1ldGEgJiZcbiAgICAgICAgSlNPTi5wYXJzZShyZWNvcmRDb250ZW50LmN1cnJlbnRWZXJzaW9uLnN0YXRlLnBsYWluTWV0YSksXG4gICAgICBwbGFpbkNpcGhlck1ldGEsXG4gICAgICBwYXJlbnRDYXRlZ29yeUlkOiByZWNvcmQublBhcmVudERpcmVjdG9yeUxpbmtzLmxpc3RbMF0ucGFyZW50RGlyZWN0b3J5LmlkLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG1hcFJlY29yZENvbnRlbnRzKGVkZ2VzOiBhbnlbXSk6IFByb21pc2U8U2VhcmNoSXRlbVtdPiB7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKGVkZ2VzLm1hcCgoZWRnZSkgPT4gdGhpcy5tYXBSZWNvcmRDb250ZW50KGVkZ2Uubm9kZSkpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZCgpIHtcbiAgICBjb25zdCBkZWZhdWx0VmF1bHQgPSBhd2FpdCB0aGlzLmNhdGVnb3J5U2VydmljZS5nZXREZWZhdWx0VmF1bHQoKTtcbiAgICBsZXQgc3RhcnQ7XG4gICAgbGV0IGVuZDtcblxuICAgIHN0YXJ0ID0gRGF0ZS5ub3coKTtcblxuICAgIHRoaXMucmVjb3JkQ29udGVudHNSZXN1bHQgPSBhd2FpdCB0aGlzLmxyQXBvbGxvLnF1ZXJ5PGFueT4oe1xuICAgICAgcXVlcnk6IFNlYXJjaFJlY29yZENvbnRlbnRzUXVlcnksXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaWQ6IGRlZmF1bHRWYXVsdC5pZCxcbiAgICAgICAgZGVwdGg6IDUsXG4gICAgICAgIGZpcnN0OiBudWxsLFxuICAgICAgICBhZnRlcjogbnVsbCxcbiAgICAgICAgcmVjb3JkQ29udGVudEZpbHRlcjogUmVjb3JkQ29udGVudEZpbHRlcixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBlbmQgPSBEYXRlLm5vdygpO1xuICAgIGNvbnNvbGUubG9nKCdTZWFyY2ggQVBJIHRpbWUgKHMpOiAnLCAoZW5kIC0gc3RhcnQpIC8gMTAwMCk7XG5cbiAgICBzdGFydCA9IERhdGUubm93KCk7XG4gICAgLy8gdHJ5IHtcbiAgICBjb25zdCBpdGVtcyA9IGF3YWl0IHRoaXMubWFwUmVjb3JkQ29udGVudHMoXG4gICAgICB0aGlzLnJlY29yZENvbnRlbnRzUmVzdWx0LmNhdGVnb3J5LmRlc2NlbmRhbnREaXJlY3Rvcmllcy5yZWNvcmRDb250ZW50c1xuICAgICAgICAuZWRnZXNcbiAgICApO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgdGhpcy52YXVsdEl0ZW1zW2l0ZW0uaWRdID0gaXRlbTtcbiAgICB9XG5cbiAgICBlbmQgPSBEYXRlLm5vdygpO1xuICAgIGNvbnNvbGUubG9nKCdTZWFyY2ggbWFwQ2F0ZWdvcnkgdGltZSAocyk6ICcsIChlbmQgLSBzdGFydCkgLyAxMDAwKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZWZyZXNoKCkge1xuICAgIGF3YWl0IHRoaXMubG9hZCgpO1xuXG4gICAgY29uc29sZS5sb2coT2JqZWN0LnZhbHVlcyh0aGlzLnZhdWx0SXRlbXMpKTtcbiAgICByZXR1cm4gdGhpcy52YXVsdEl0ZW1zO1xuICB9XG59XG4iXX0=
|
|
1
|
+
import { __awaiter, __decorate } from "tslib";
|
|
2
|
+
import { Injectable, NgZone } from '@angular/core';
|
|
3
|
+
import { LrApolloService } from '../api/lr-apollo.service';
|
|
4
|
+
import { CategoryService } from '../category/category.service';
|
|
5
|
+
import { KeyGraphService } from '../cryptography/key-graph.service';
|
|
6
|
+
import { RecordFieldType } from '../record-type/record-type.types';
|
|
7
|
+
import { RecordContentFilter } from '../record/record.gql';
|
|
8
|
+
import { RunOutsideAngular } from '../_common/run-outside-angular';
|
|
9
|
+
import { SearchRecordContentsQuery } from './search.gql';
|
|
10
|
+
import { SearchItemType } from './search.types';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "../api/lr-apollo.service";
|
|
13
|
+
import * as i2 from "../category/category.service";
|
|
14
|
+
import * as i3 from "../cryptography/key-graph.service";
|
|
15
|
+
function debugPopulateCategory(categoryService, recordService, keyFactory, categoryId, recordsPerCategory) {
|
|
16
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17
|
+
const tasks = [];
|
|
18
|
+
const category = yield categoryService.getCategory(categoryId);
|
|
19
|
+
// Create records
|
|
20
|
+
for (let i = category.records.length; i < recordsPerCategory; ++i) {
|
|
21
|
+
const name = `${category.category.name}+${keyFactory.randomString(16)}`;
|
|
22
|
+
console.log('Creating record: ', name);
|
|
23
|
+
yield recordService.createRecord({
|
|
24
|
+
categoryIds: [category.category.id],
|
|
25
|
+
name,
|
|
26
|
+
recordType: {
|
|
27
|
+
id: '1',
|
|
28
|
+
version: 1,
|
|
29
|
+
name: 'Vehicle Details',
|
|
30
|
+
},
|
|
31
|
+
fields: [
|
|
32
|
+
{
|
|
33
|
+
id: '1-vin',
|
|
34
|
+
type: RecordFieldType.Text,
|
|
35
|
+
label: 'VIN Number',
|
|
36
|
+
value: '1234567890',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: '1-location',
|
|
40
|
+
type: RecordFieldType.Text,
|
|
41
|
+
label: 'Location',
|
|
42
|
+
value: '10'.repeat(1000),
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
// Delete records
|
|
48
|
+
for (let i = category.records.length; i > recordsPerCategory; --i) {
|
|
49
|
+
const id = category.records[i - 1].id;
|
|
50
|
+
console.log('Deleting record: ', id);
|
|
51
|
+
yield recordService.deleteRecord(id);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
export function debugPopulateRecords(categoryService, recordService, keyFactory, recordsPerCategory) {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
const pillars = yield categoryService.getCategories();
|
|
58
|
+
// For each category, added records
|
|
59
|
+
for (const pillar of pillars) {
|
|
60
|
+
const category = yield categoryService.getCategory(pillar.id);
|
|
61
|
+
for (const subCategory of category.subCategories) {
|
|
62
|
+
if (subCategory.allowRecords) {
|
|
63
|
+
yield debugPopulateCategory(categoryService, recordService, keyFactory, subCategory.id, recordsPerCategory);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
let SearchService = class SearchService {
|
|
70
|
+
constructor(ngZone, lrApollo, categoryService, keyGraph) {
|
|
71
|
+
this.ngZone = ngZone;
|
|
72
|
+
this.lrApollo = lrApollo;
|
|
73
|
+
this.categoryService = categoryService;
|
|
74
|
+
this.keyGraph = keyGraph;
|
|
75
|
+
this.vaultItems = {};
|
|
76
|
+
}
|
|
77
|
+
mapRecordContent(recordContent) {
|
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
const record = recordContent.nParentDirectoryLinks.list[0].parentDirectory;
|
|
80
|
+
const state = recordContent.currentVersion.state;
|
|
81
|
+
const plainCipherMeta = state.cipherMeta &&
|
|
82
|
+
(yield this.keyGraph.decryptFromString(state.keyId, state.cipherMeta));
|
|
83
|
+
return {
|
|
84
|
+
type: SearchItemType.RECORD,
|
|
85
|
+
id: record.id,
|
|
86
|
+
created: new Date(record.created),
|
|
87
|
+
modified: new Date(record.modified),
|
|
88
|
+
archived: record.archived,
|
|
89
|
+
plainMeta: state.plainMeta &&
|
|
90
|
+
JSON.parse(recordContent.currentVersion.state.plainMeta),
|
|
91
|
+
plainCipherMeta,
|
|
92
|
+
parentCategoryId: record.nParentDirectoryLinks.list[0].parentDirectory.id,
|
|
93
|
+
};
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
mapRecordContents(edges) {
|
|
97
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
+
return Promise.all(edges.map((edge) => this.mapRecordContent(edge.node)));
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
load() {
|
|
102
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
103
|
+
const defaultVault = yield this.categoryService.getDefaultVault();
|
|
104
|
+
let start;
|
|
105
|
+
let end;
|
|
106
|
+
start = Date.now();
|
|
107
|
+
this.recordContentsResult = yield this.lrApollo.query({
|
|
108
|
+
query: SearchRecordContentsQuery,
|
|
109
|
+
variables: {
|
|
110
|
+
id: defaultVault.id,
|
|
111
|
+
depth: 5,
|
|
112
|
+
first: null,
|
|
113
|
+
after: null,
|
|
114
|
+
recordContentFilter: RecordContentFilter,
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
end = Date.now();
|
|
118
|
+
console.log('Search API time (s): ', (end - start) / 1000);
|
|
119
|
+
start = Date.now();
|
|
120
|
+
// try {
|
|
121
|
+
const items = yield this.mapRecordContents(this.recordContentsResult.category.descendantDirectories.recordContents
|
|
122
|
+
.edges);
|
|
123
|
+
for (const item of items) {
|
|
124
|
+
this.vaultItems[item.id] = item;
|
|
125
|
+
}
|
|
126
|
+
end = Date.now();
|
|
127
|
+
console.log('Search mapCategory time (s): ', (end - start) / 1000);
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
refresh() {
|
|
131
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
132
|
+
yield this.load();
|
|
133
|
+
console.log(Object.values(this.vaultItems));
|
|
134
|
+
return this.vaultItems;
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
SearchService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SearchService_Factory() { return new SearchService(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1.LrApolloService), i0.ɵɵinject(i2.CategoryService), i0.ɵɵinject(i3.KeyGraphService)); }, token: SearchService, providedIn: "root" });
|
|
139
|
+
SearchService.decorators = [
|
|
140
|
+
{ type: Injectable, args: [{
|
|
141
|
+
providedIn: 'root',
|
|
142
|
+
},] }
|
|
143
|
+
];
|
|
144
|
+
SearchService.ctorParameters = () => [
|
|
145
|
+
{ type: NgZone },
|
|
146
|
+
{ type: LrApolloService },
|
|
147
|
+
{ type: CategoryService },
|
|
148
|
+
{ type: KeyGraphService }
|
|
149
|
+
];
|
|
150
|
+
SearchService = __decorate([
|
|
151
|
+
RunOutsideAngular({
|
|
152
|
+
ngZoneName: 'ngZone',
|
|
153
|
+
})
|
|
154
|
+
], SearchService);
|
|
155
|
+
export { SearchService };
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVjdHMvbmV3cmVwby9rYy1jbGllbnQvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvc2VhcmNoL3NlYXJjaC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRS9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pELE9BQU8sRUFBYyxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFFNUQsU0FBZSxxQkFBcUIsQ0FDbEMsZUFBZ0MsRUFDaEMsYUFBNEIsRUFDNUIsVUFBNkIsRUFDN0IsVUFBa0IsRUFDbEIsa0JBQTBCOztRQUUxQixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7UUFFakIsTUFBTSxRQUFRLEdBQUcsTUFBTSxlQUFlLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRS9ELGlCQUFpQjtRQUNqQixLQUFLLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUNqRSxNQUFNLElBQUksR0FBRyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFB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QUFlO1lBQ2YsZUFBZTtZQUVmLGVBQWU7O0FBd0ZYLGFBQWE7SUFOekIsaUJBQWlCLENBQUM7UUFDakIsVUFBVSxFQUFFLFFBQVE7S0FDckIsQ0FBQztHQUlXLGFBQWEsQ0FpRnpCO1NBakZZLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTHJBcG9sbG9TZXJ2aWNlIH0gZnJvbSAnLi4vYXBpL2xyLWFwb2xsby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vY2F0ZWdvcnkvY2F0ZWdvcnkuc2VydmljZSc7XHJcbmltcG9ydCB7IEtleUZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L2tleS1mYWN0b3J5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkva2V5LWdyYXBoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZWNvcmRGaWVsZFR5cGUgfSBmcm9tICcuLi9yZWNvcmQtdHlwZS9yZWNvcmQtdHlwZS50eXBlcyc7XHJcbmltcG9ydCB7IFJlY29yZENvbnRlbnRGaWx0ZXIgfSBmcm9tICcuLi9yZWNvcmQvcmVjb3JkLmdxbCc7XHJcbmltcG9ydCB7IFJlY29yZFNlcnZpY2UgfSBmcm9tICcuLi9yZWNvcmQvcmVjb3JkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSdW5PdXRzaWRlQW5ndWxhciB9IGZyb20gJy4uL19jb21tb24vcnVuLW91dHNpZGUtYW5ndWxhcic7XHJcbmltcG9ydCB7IFNlYXJjaFJlY29yZENvbnRlbnRzUXVlcnkgfSBmcm9tICcuL3NlYXJjaC5ncWwnO1xyXG5pbXBvcnQgeyBTZWFyY2hJdGVtLCBTZWFyY2hJdGVtVHlwZSB9IGZyb20gJy4vc2VhcmNoLnR5cGVzJztcclxuXHJcbmFzeW5jIGZ1bmN0aW9uIGRlYnVnUG9wdWxhdGVDYXRlZ29yeShcclxuICBjYXRlZ29yeVNlcnZpY2U6IENhdGVnb3J5U2VydmljZSxcclxuICByZWNvcmRTZXJ2aWNlOiBSZWNvcmRTZXJ2aWNlLFxyXG4gIGtleUZhY3Rvcnk6IEtleUZhY3RvcnlTZXJ2aWNlLFxyXG4gIGNhdGVnb3J5SWQ6IHN0cmluZyxcclxuICByZWNvcmRzUGVyQ2F0ZWdvcnk6IG51bWJlclxyXG4pIHtcclxuICBjb25zdCB0YXNrcyA9IFtdO1xyXG5cclxuICBjb25zdCBjYXRlZ29yeSA9IGF3YWl0IGNhdGVnb3J5U2VydmljZS5nZXRDYXRlZ29yeShjYXRlZ29yeUlkKTtcclxuXHJcbiAgLy8gQ3JlYXRlIHJlY29yZHNcclxuICBmb3IgKGxldCBpID0gY2F0ZWdvcnkucmVjb3Jkcy5sZW5ndGg7IGkgPCByZWNvcmRzUGVyQ2F0ZWdvcnk7ICsraSkge1xyXG4gICAgY29uc3QgbmFtZSA9IGAke2NhdGVnb3J5LmNhdGVnb3J5Lm5hbWV9KyR7a2V5RmFjdG9yeS5yYW5kb21TdHJpbmcoMTYpfWA7XHJcbiAgICBjb25zb2xlLmxvZygnQ3JlYXRpbmcgcmVjb3JkOiAnLCBuYW1lKTtcclxuICAgIGF3YWl0IHJlY29yZFNlcnZpY2UuY3JlYXRlUmVjb3JkKHtcclxuICAgICAgY2F0ZWdvcnlJZHM6IFtjYXRlZ29yeS5jYXRlZ29yeS5pZF0sXHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIHJlY29yZFR5cGU6IHtcclxuICAgICAgICBpZDogJzEnLFxyXG4gICAgICAgIHZlcnNpb246IDEsXHJcbiAgICAgICAgbmFtZTogJ1ZlaGljbGUgRGV0YWlscycsXHJcbiAgICAgIH0sXHJcbiAgICAgIGZpZWxkczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIGlkOiAnMS12aW4nLFxyXG4gICAgICAgICAgdHlwZTogUmVjb3JkRmllbGRUeXBlLlRleHQsXHJcbiAgICAgICAgICBsYWJlbDogJ1ZJTiBOdW1iZXInLFxyXG4gICAgICAgICAgdmFsdWU6ICcxMjM0NTY3ODkwJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGlkOiAnMS1sb2NhdGlvbicsXHJcbiAgICAgICAgICB0eXBlOiBSZWNvcmRGaWVsZFR5cGUuVGV4dCxcclxuICAgICAgICAgIGxhYmVsOiAnTG9jYXRpb24nLFxyXG4gICAgICAgICAgdmFsdWU6ICcxMCcucmVwZWF0KDEwMDApLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIC8vIGF0dGFjaG1lbnRzXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIERlbGV0ZSByZWNvcmRzXHJcbiAgZm9yIChsZXQgaSA9IGNhdGVnb3J5LnJlY29yZHMubGVuZ3RoOyBpID4gcmVjb3Jkc1BlckNhdGVnb3J5OyAtLWkpIHtcclxuICAgIGNvbnN0IGlkID0gY2F0ZWdvcnkucmVjb3Jkc1tpIC0gMV0uaWQ7XHJcbiAgICBjb25zb2xlLmxvZygnRGVsZXRpbmcgcmVjb3JkOiAnLCBpZCk7XHJcbiAgICBhd2FpdCByZWNvcmRTZXJ2aWNlLmRlbGV0ZVJlY29yZChpZCk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVidWdQb3B1bGF0ZVJlY29yZHMoXHJcbiAgY2F0ZWdvcnlTZXJ2aWNlOiBDYXRlZ29yeVNlcnZpY2UsXHJcbiAgcmVjb3JkU2VydmljZTogUmVjb3JkU2VydmljZSxcclxuICBrZXlGYWN0b3J5OiBLZXlGYWN0b3J5U2VydmljZSxcclxuICByZWNvcmRzUGVyQ2F0ZWdvcnk6IG51bWJlclxyXG4pIHtcclxuICBjb25zdCBwaWxsYXJzID0gYXdhaXQgY2F0ZWdvcnlTZXJ2aWNlLmdldENhdGVnb3JpZXMoKTtcclxuXHJcbiAgLy8gRm9yIGVhY2ggY2F0ZWdvcnksIGFkZGVkIHJlY29yZHNcclxuICBmb3IgKGNvbnN0IHBpbGxhciBvZiBwaWxsYXJzKSB7XHJcbiAgICBjb25zdCBjYXRlZ29yeSA9IGF3YWl0IGNhdGVnb3J5U2VydmljZS5nZXRDYXRlZ29yeShwaWxsYXIuaWQpO1xyXG4gICAgZm9yIChjb25zdCBzdWJDYXRlZ29yeSBvZiBjYXRlZ29yeS5zdWJDYXRlZ29yaWVzKSB7XHJcbiAgICAgIGlmIChzdWJDYXRlZ29yeS5hbGxvd1JlY29yZHMpIHtcclxuICAgICAgICBhd2FpdCBkZWJ1Z1BvcHVsYXRlQ2F0ZWdvcnkoXHJcbiAgICAgICAgICBjYXRlZ29yeVNlcnZpY2UsXHJcbiAgICAgICAgICByZWNvcmRTZXJ2aWNlLFxyXG4gICAgICAgICAga2V5RmFjdG9yeSxcclxuICAgICAgICAgIHN1YkNhdGVnb3J5LmlkLFxyXG4gICAgICAgICAgcmVjb3Jkc1BlckNhdGVnb3J5XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcclxuICBuZ1pvbmVOYW1lOiAnbmdab25lJyxcclxufSlcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlYXJjaFNlcnZpY2Uge1xyXG4gIHZhdWx0SXRlbXM6IHsgW2l0ZW1JZDogc3RyaW5nXTogU2VhcmNoSXRlbSB9ID0ge307XHJcbiAgcmVjb3JkQ29udGVudHNSZXN1bHQ6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxyXG4gICAgcHJpdmF0ZSBsckFwb2xsbzogTHJBcG9sbG9TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjYXRlZ29yeVNlcnZpY2U6IENhdGVnb3J5U2VydmljZSxcclxuICAgIHByaXZhdGUga2V5R3JhcGg6IEtleUdyYXBoU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBtYXBSZWNvcmRDb250ZW50KHJlY29yZENvbnRlbnQ6IGFueSk6IFByb21pc2U8U2VhcmNoSXRlbT4ge1xyXG4gICAgY29uc3QgcmVjb3JkID0gcmVjb3JkQ29udGVudC5uUGFyZW50RGlyZWN0b3J5TGlua3MubGlzdFswXS5wYXJlbnREaXJlY3Rvcnk7XHJcbiAgICBjb25zdCBzdGF0ZSA9IHJlY29yZENvbnRlbnQuY3VycmVudFZlcnNpb24uc3RhdGU7XHJcblxyXG4gICAgY29uc3QgcGxhaW5DaXBoZXJNZXRhID1cclxuICAgICAgc3RhdGUuY2lwaGVyTWV0YSAmJlxyXG4gICAgICAoYXdhaXQgdGhpcy5rZXlHcmFwaC5kZWNyeXB0RnJvbVN0cmluZzxhbnk+KFxyXG4gICAgICAgIHN0YXRlLmtleUlkLFxyXG4gICAgICAgIHN0YXRlLmNpcGhlck1ldGFcclxuICAgICAgKSk7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogU2VhcmNoSXRlbVR5cGUuUkVDT1JELFxyXG4gICAgICBpZDogcmVjb3JkLmlkLFxyXG4gICAgICBjcmVhdGVkOiBuZXcgRGF0ZShyZWNvcmQuY3JlYXRlZCksXHJcbiAgICAgIG1vZGlmaWVkOiBuZXcgRGF0ZShyZWNvcmQubW9kaWZpZWQpLFxyXG4gICAgICBhcmNoaXZlZDogcmVjb3JkLmFyY2hpdmVkLFxyXG4gICAgICBwbGFpbk1ldGE6XHJcbiAgICAgICAgc3RhdGUucGxhaW5NZXRhICYmXHJcbiAgICAgICAgSlNPTi5wYXJzZShyZWNvcmRDb250ZW50LmN1cnJlbnRWZXJzaW9uLnN0YXRlLnBsYWluTWV0YSksXHJcbiAgICAgIHBsYWluQ2lwaGVyTWV0YSxcclxuICAgICAgcGFyZW50Q2F0ZWdvcnlJZDogcmVjb3JkLm5QYXJlbnREaXJlY3RvcnlMaW5rcy5saXN0WzBdLnBhcmVudERpcmVjdG9yeS5pZCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIG1hcFJlY29yZENvbnRlbnRzKGVkZ2VzOiBhbnlbXSk6IFByb21pc2U8U2VhcmNoSXRlbVtdPiB7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoZWRnZXMubWFwKChlZGdlKSA9PiB0aGlzLm1hcFJlY29yZENvbnRlbnQoZWRnZS5ub2RlKSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBsb2FkKCkge1xyXG4gICAgY29uc3QgZGVmYXVsdFZhdWx0ID0gYXdhaXQgdGhpcy5jYXRlZ29yeVNlcnZpY2UuZ2V0RGVmYXVsdFZhdWx0KCk7XHJcbiAgICBsZXQgc3RhcnQ7XHJcbiAgICBsZXQgZW5kO1xyXG5cclxuICAgIHN0YXJ0ID0gRGF0ZS5ub3coKTtcclxuXHJcbiAgICB0aGlzLnJlY29yZENvbnRlbnRzUmVzdWx0ID0gYXdhaXQgdGhpcy5sckFwb2xsby5xdWVyeTxhbnk+KHtcclxuICAgICAgcXVlcnk6IFNlYXJjaFJlY29yZENvbnRlbnRzUXVlcnksXHJcbiAgICAgIHZhcmlhYmxlczoge1xyXG4gICAgICAgIGlkOiBkZWZhdWx0VmF1bHQuaWQsXHJcbiAgICAgICAgZGVwdGg6IDUsXHJcbiAgICAgICAgZmlyc3Q6IG51bGwsXHJcbiAgICAgICAgYWZ0ZXI6IG51bGwsXHJcbiAgICAgICAgcmVjb3JkQ29udGVudEZpbHRlcjogUmVjb3JkQ29udGVudEZpbHRlcixcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIGVuZCA9IERhdGUubm93KCk7XHJcbiAgICBjb25zb2xlLmxvZygnU2VhcmNoIEFQSSB0aW1lIChzKTogJywgKGVuZCAtIHN0YXJ0KSAvIDEwMDApO1xyXG5cclxuICAgIHN0YXJ0ID0gRGF0ZS5ub3coKTtcclxuICAgIC8vIHRyeSB7XHJcbiAgICBjb25zdCBpdGVtcyA9IGF3YWl0IHRoaXMubWFwUmVjb3JkQ29udGVudHMoXHJcbiAgICAgIHRoaXMucmVjb3JkQ29udGVudHNSZXN1bHQuY2F0ZWdvcnkuZGVzY2VuZGFudERpcmVjdG9yaWVzLnJlY29yZENvbnRlbnRzXHJcbiAgICAgICAgLmVkZ2VzXHJcbiAgICApO1xyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XHJcbiAgICAgIHRoaXMudmF1bHRJdGVtc1tpdGVtLmlkXSA9IGl0ZW07XHJcbiAgICB9XHJcblxyXG4gICAgZW5kID0gRGF0ZS5ub3coKTtcclxuICAgIGNvbnNvbGUubG9nKCdTZWFyY2ggbWFwQ2F0ZWdvcnkgdGltZSAocyk6ICcsIChlbmQgLSBzdGFydCkgLyAxMDAwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyByZWZyZXNoKCkge1xyXG4gICAgYXdhaXQgdGhpcy5sb2FkKCk7XHJcblxyXG4gICAgY29uc29sZS5sb2coT2JqZWN0LnZhbHVlcyh0aGlzLnZhdWx0SXRlbXMpKTtcclxuICAgIHJldHVybiB0aGlzLnZhdWx0SXRlbXM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export var SearchItemType;
|
|
2
|
-
(function (SearchItemType) {
|
|
3
|
-
SearchItemType["RECORD"] = "RECORD";
|
|
4
|
-
SearchItemType["CATEGORY"] = "CATEGORY";
|
|
5
|
-
})(SearchItemType || (SearchItemType = {}));
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export var SearchItemType;
|
|
2
|
+
(function (SearchItemType) {
|
|
3
|
+
SearchItemType["RECORD"] = "RECORD";
|
|
4
|
+
SearchItemType["CATEGORY"] = "CATEGORY";
|
|
5
|
+
})(SearchItemType || (SearchItemType = {}));
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2plY3RzL25ld3JlcG8va2MtY2xpZW50L3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL3NlYXJjaC9zZWFyY2gudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVksY0FHWDtBQUhELFdBQVksY0FBYztJQUN4QixtQ0FBaUIsQ0FBQTtJQUNqQix1Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSFcsY0FBYyxLQUFkLGNBQWMsUUFHekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRnVzZSBmcm9tICdmdXNlLmpzJztcclxuXHJcbmV4cG9ydCBlbnVtIFNlYXJjaEl0ZW1UeXBlIHtcclxuICBSRUNPUkQgPSAnUkVDT1JEJyxcclxuICBDQVRFR09SWSA9ICdDQVRFR09SWScsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUmVjb3JkQXR0YWNobWVudCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaEl0ZW0ge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgdHlwZTogU2VhcmNoSXRlbVR5cGU7XHJcbiAgY3JlYXRlZDogRGF0ZTtcclxuICBtb2RpZmllZDogRGF0ZTtcclxuICBhcmNoaXZlZDogYm9vbGVhbjtcclxuICBwbGFpbk1ldGE6IGFueTtcclxuICBwbGFpbkNpcGhlck1ldGE6IGFueTtcclxuICBwYXJlbnRDYXRlZ29yeUlkPzogc3RyaW5nO1xyXG4gIGF0dGFjaG1lbnRzPzogU2VhcmNoUmVjb3JkQXR0YWNobWVudFtdO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTZWFyY2hSZXN1bHRzID0gRnVzZS5GdXNlUmVzdWx0PFNlYXJjaEl0ZW0+W107XHJcbiJdfQ==
|