lodash-walk-object 16.444.14 → 18.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/shared/shared_folder_info.txt +1 -1
- package/browser/README.md +24 -24
- package/browser/esm2022/lib/index.mjs +47 -25
- package/browser/fesm2022/lodash-walk-object.mjs +46 -24
- package/browser/fesm2022/lodash-walk-object.mjs.map +1 -1
- package/client/README.md +24 -24
- package/client/esm2022/lib/index.mjs +47 -25
- package/client/fesm2022/lodash-walk-object.mjs +46 -24
- package/client/fesm2022/lodash-walk-object.mjs.map +1 -1
- package/firedev.jsonc +43 -43
- package/lib/index.js +45 -24
- package/lib/index.js.map +1 -1
- package/package.json +4 -4
- package/tmp-environment.json +196 -195
- package/websql/README.md +24 -24
- package/websql/esm2022/lib/index.mjs +47 -25
- package/websql/fesm2022/lodash-walk-object.mjs +46 -24
- package/websql/fesm2022/lodash-walk-object.mjs.map +1 -1
- package/client/package.json +0 -377
|
@@ -12,16 +12,28 @@ function findChildren(ver, lp, walkGetters) {
|
|
|
12
12
|
const allKeys = !walkGetters ? [] : Object.getOwnPropertyNames(obj);
|
|
13
13
|
const children = [];
|
|
14
14
|
for (const key in obj) {
|
|
15
|
-
if (_.isObject(obj) &&
|
|
15
|
+
if (_.isObject(obj) &&
|
|
16
|
+
_.isFunction(obj.hasOwnProperty) &&
|
|
17
|
+
obj.hasOwnProperty(key)) {
|
|
16
18
|
_.pull(allKeys, key);
|
|
17
|
-
children.push({
|
|
19
|
+
children.push({
|
|
20
|
+
v: obj[key],
|
|
21
|
+
p: `${lp === '' ? '' : `${lp}.`}${key}`,
|
|
22
|
+
parent: ver,
|
|
23
|
+
isGetter: false,
|
|
24
|
+
});
|
|
18
25
|
}
|
|
19
26
|
}
|
|
20
27
|
if (walkGetters) {
|
|
21
28
|
for (let index = 0; index < allKeys.length; index++) {
|
|
22
29
|
if (_.isObject(obj)) {
|
|
23
30
|
const key = allKeys[index];
|
|
24
|
-
children.push({
|
|
31
|
+
children.push({
|
|
32
|
+
v: obj[key],
|
|
33
|
+
p: `${lp === '' ? '' : `${lp}.`}${key}`,
|
|
34
|
+
parent: ver,
|
|
35
|
+
isGetter: true,
|
|
36
|
+
});
|
|
25
37
|
}
|
|
26
38
|
}
|
|
27
39
|
}
|
|
@@ -37,7 +49,8 @@ export class Helpers {
|
|
|
37
49
|
if (_.isUndefined(optionsOrWalkGettersValue)) {
|
|
38
50
|
optionsOrWalkGettersValue = {};
|
|
39
51
|
}
|
|
40
|
-
optionsOrWalkGettersValue.hasIterator =
|
|
52
|
+
optionsOrWalkGettersValue.hasIterator =
|
|
53
|
+
_.isFunction(iterator);
|
|
41
54
|
if (_.isUndefined(optionsOrWalkGettersValue.breadthWalk)) {
|
|
42
55
|
optionsOrWalkGettersValue.breadthWalk = false;
|
|
43
56
|
}
|
|
@@ -51,7 +64,7 @@ export class Helpers {
|
|
|
51
64
|
// @ts-ignore
|
|
52
65
|
const json = inContext[property];
|
|
53
66
|
return self.Walk.Object(json, iterator, options);
|
|
54
|
-
}
|
|
67
|
+
},
|
|
55
68
|
};
|
|
56
69
|
}
|
|
57
70
|
static _changeValue(json, lodahPath, simpleChange = false, options) {
|
|
@@ -78,11 +91,14 @@ export class Helpers {
|
|
|
78
91
|
static _prepareParams(lodashPath) {
|
|
79
92
|
const contextPath = this._Helpers.Path.getContextPath(lodashPath);
|
|
80
93
|
let property = this._Helpers.Path.getPropertyPath(lodashPath, contextPath);
|
|
81
|
-
if (_.isString(property) &&
|
|
94
|
+
if (_.isString(property) &&
|
|
95
|
+
property.trim() !== '' &&
|
|
96
|
+
!_.isNaN(Number(property))) {
|
|
82
97
|
property = Number(property);
|
|
83
98
|
}
|
|
84
99
|
return {
|
|
85
|
-
contextPath,
|
|
100
|
+
contextPath,
|
|
101
|
+
property,
|
|
86
102
|
};
|
|
87
103
|
}
|
|
88
104
|
static get _Helpers() {
|
|
@@ -91,11 +107,11 @@ export class Helpers {
|
|
|
91
107
|
return {
|
|
92
108
|
// @ts-ignore
|
|
93
109
|
getPropertyPath(lodahPath, contetPath) {
|
|
94
|
-
return
|
|
110
|
+
return lodahPath
|
|
95
111
|
.replace(contetPath, '')
|
|
96
112
|
.replace(/^\./, '')
|
|
97
113
|
.replace(/\[/, '')
|
|
98
|
-
.replace(/\]/, '')
|
|
114
|
+
.replace(/\]/, '');
|
|
99
115
|
},
|
|
100
116
|
getContextPath(p) {
|
|
101
117
|
let res;
|
|
@@ -106,20 +122,22 @@ export class Helpers {
|
|
|
106
122
|
res = p.replace(/\.([a-zA-Z0-9]|\$|\_|\@|\-|\/|\:)+$/, '');
|
|
107
123
|
}
|
|
108
124
|
return res === p ? '' : res;
|
|
109
|
-
}
|
|
125
|
+
},
|
|
110
126
|
};
|
|
111
|
-
}
|
|
127
|
+
},
|
|
112
128
|
};
|
|
113
129
|
}
|
|
114
130
|
static _shoudlReturn(include = [], exclude = [], lodashPath) {
|
|
115
131
|
let res = false;
|
|
116
132
|
if (lodashPath.replace(/^\[(\'|\")?[0-9]*(\'|\")?\]/, '').trim() !== '') {
|
|
117
133
|
lodashPath = lodashPath.replace(/^\[(\'|\")?[0-9]*(\'|\")?\]\./, '');
|
|
118
|
-
res =
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
134
|
+
res =
|
|
135
|
+
(_.isArray(include) &&
|
|
136
|
+
include.length > 0 &&
|
|
137
|
+
!include.find(p => lodashPath.startsWith(p))) ||
|
|
138
|
+
(_.isArray(exclude) &&
|
|
139
|
+
exclude.length > 0 &&
|
|
140
|
+
!!exclude.find(p => lodashPath.startsWith(p)));
|
|
123
141
|
}
|
|
124
142
|
return res;
|
|
125
143
|
}
|
|
@@ -181,7 +199,7 @@ export class Helpers {
|
|
|
181
199
|
if (inDB && CLASS.OBJECT(inDB.target).isEqual(obj)) {
|
|
182
200
|
const circ = {
|
|
183
201
|
pathToObj: lodashPath,
|
|
184
|
-
circuralTargetPath: inDB.path
|
|
202
|
+
circuralTargetPath: inDB.path,
|
|
185
203
|
};
|
|
186
204
|
// @ts-ignore
|
|
187
205
|
options.circural.push(circ);
|
|
@@ -190,7 +208,7 @@ export class Helpers {
|
|
|
190
208
|
else {
|
|
191
209
|
_.set(db, p, {
|
|
192
210
|
path: lodashPath,
|
|
193
|
-
target: obj
|
|
211
|
+
target: obj,
|
|
194
212
|
});
|
|
195
213
|
}
|
|
196
214
|
}
|
|
@@ -200,7 +218,7 @@ export class Helpers {
|
|
|
200
218
|
if (!_.isUndefined(inStack)) {
|
|
201
219
|
const circ = {
|
|
202
220
|
pathToObj: lodashPath,
|
|
203
|
-
circuralTargetPath: inStack.path
|
|
221
|
+
circuralTargetPath: inStack.path,
|
|
204
222
|
};
|
|
205
223
|
// @ts-ignore
|
|
206
224
|
options.circural.push(circ);
|
|
@@ -210,7 +228,7 @@ export class Helpers {
|
|
|
210
228
|
// @ts-ignore
|
|
211
229
|
stack.push({
|
|
212
230
|
path: lodashPath,
|
|
213
|
-
target: obj
|
|
231
|
+
target: obj,
|
|
214
232
|
});
|
|
215
233
|
}
|
|
216
234
|
}
|
|
@@ -303,10 +321,13 @@ export class Helpers {
|
|
|
303
321
|
for (const key in obj) {
|
|
304
322
|
if (_.isObject(obj) && obj.hasOwnProperty(key)) {
|
|
305
323
|
_.pull(allKeys, key);
|
|
306
|
-
|
|
324
|
+
let newPropKey = key;
|
|
307
325
|
options.isGetter = false;
|
|
326
|
+
if (newPropKey.includes('.')) {
|
|
327
|
+
newPropKey = `['${newPropKey}']`;
|
|
328
|
+
}
|
|
308
329
|
// @ts-ignore
|
|
309
|
-
this._walk(json, obj[
|
|
330
|
+
this._walk(json, obj[newPropKey], iterator, `${lodashPath === '' ? '' : `${lodashPath}.`}${newPropKey}`, options, depthLevel + 1);
|
|
310
331
|
}
|
|
311
332
|
}
|
|
312
333
|
if (walkGetters) {
|
|
@@ -316,7 +337,7 @@ export class Helpers {
|
|
|
316
337
|
// @ts-ignore
|
|
317
338
|
options.isGetter = true;
|
|
318
339
|
// @ts-ignore
|
|
319
|
-
this._walk(json, obj[key], iterator, `${
|
|
340
|
+
this._walk(json, obj[key], iterator, `${lodashPath === '' ? '' : `${lodashPath}.`}${key}`, options, depthLevel + 1);
|
|
320
341
|
}
|
|
321
342
|
}
|
|
322
343
|
}
|
|
@@ -332,7 +353,8 @@ export class Helpers {
|
|
|
332
353
|
}
|
|
333
354
|
export const walk = {
|
|
334
355
|
Object: Helpers.Walk.Object,
|
|
335
|
-
ObjectBy: Helpers.Walk.ObjectBy
|
|
356
|
+
ObjectBy: Helpers.Walk.ObjectBy,
|
|
336
357
|
};
|
|
358
|
+
;
|
|
337
359
|
({}); // @--end-of-file-for-module=lodash-walk-object lib/index.ts
|
|
338
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvbG9kYXNoLXdhbGstb2JqZWN0L3Byb2plY3RzL2xvZGFzaC13YWxrLW9iamVjdC9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHeEQsY0FBYyxVQUFVLENBQUM7QUFFekIsU0FBUyxZQUFZLENBQUMsR0FBZSxFQUFFLEVBQVUsRUFBRSxXQUFvQjtJQUVyRSxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ2pCLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNsQixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdEIsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUE7UUFDOUQsQ0FBQyxDQUFDLENBQUM7S0FDSjtTQUFNLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUUxQixNQUFNLE9BQU8sR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEUsTUFBTSxRQUFRLEdBQWlCLEVBQUUsQ0FBQztRQUNsQyxLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRTtZQUNyQixJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUs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LElBQUksQ0FBQyxRQUFRO0NBQ2hDLENBRUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsNERBQTREIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgQ0xBU1MgfSBmcm9tICd0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvd2Vic3FsJztcblxuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi9tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnO1xuXG5mdW5jdGlvbiBmaW5kQ2hpbGRyZW4odmVyOiBNb2RlbHMuVmVyLCBscDogc3RyaW5nLCB3YWxrR2V0dGVyczogYm9vbGVhbik6IE1vZGVscy5WZXJbXSB7XG5cbiAgY29uc3Qgb2JqID0gdmVyLnZcbiAgaWYgKF8uaXNBcnJheShvYmopKSB7XG4gICAgcmV0dXJuIG9iai5tYXAoKHYsIGkpID0+IHtcbiAgICAgIHJldHVybiB7IHYsIHA6IGAke2xwfVske2l9XWAsIHBhcmVudDogdmVyLCBpc0dldHRlcjogZmFsc2UgfVxuICAgIH0pO1xuICB9IGVsc2UgaWYgKF8uaXNPYmplY3Qob2JqKSkge1xuXG4gICAgY29uc3QgYWxsS2V5cyA9ICF3YWxrR2V0dGVycyA/IFtdIDogT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKTtcbiAgICBjb25zdCBjaGlsZHJlbjogTW9kZWxzLlZlcltdID0gW107XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgICBpZiAoXy5pc09iamVjdChvYmopICYmIF8uaXNGdW5jdGlvbihvYmouaGFzT3duUHJvcGVydHkpICYmIG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIF8ucHVsbChhbGxLZXlzLCBrZXkpXG4gICAgICAgIGNoaWxkcmVuLnB1c2goeyB2OiBvYmpba2V5XSwgcDogYCR7KGxwID09PSAnJykgPyAnJyA6IGAke2xwfS5gfSR7a2V5fWAsIHBhcmVudDogdmVyLCBpc0dldHRlcjogZmFsc2UgfSlcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHdhbGtHZXR0ZXJzKSB7XG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYWxsS2V5cy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgaWYgKF8uaXNPYmplY3Qob2JqKSkge1xuICAgICAgICAgIGNvbnN0IGtleSA9IGFsbEtleXNbaW5kZXhdO1xuICAgICAgICAgIGNoaWxkcmVuLnB1c2goeyB2OiBvYmpba2V5XSwgcDogYCR7KGxwID09PSAnJykgPyAnJyA6IGAke2xwfS5gfSR7a2V5fWAsIHBhcmVudDogdmVyLCBpc0dldHRlcjogdHJ1ZSB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuICByZXR1cm4gW107XG59XG5cblxuXG5leHBvcnQgdHlwZSBJdGVyYXRvciA9ICh2YWx1ZTogYW55LFxuICBsb2Rhc2hQYXRoOiBzdHJpbmcsXG4gIC8vIEB0cy1pZ25vcmVcbiAgY2hhbmdlVmFsdWVUbzogKG5ld1ZhbHVlKSA9PiB2b2lkLFxuICBvcHRpb25zPzogTW9kZWxzLkFkZGl0aW9uYWxJdGVyYXRvck9wdGlvbnNcblxuKSA9PiB2b2lkXG5leHBvcnQgY2xhc3MgSGVscGVycyB7XG5cbiAgcHVibGljIHN0YXRpYyBnZXQgV2FsaygpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICByZXR1cm4ge1xuICAgICAgT2JqZWN0KGpzb246IE9iamVjdCwgaXRlcmF0b3I6IEl0ZXJhdG9yLCBvcHRpb25zT3JXYWxrR2V0dGVyc1ZhbHVlPzogTW9kZWxzLlN0YXJ0SXRlcmF0b3JPcHRpb25zKSB7XG5cbiAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9uc09yV2Fsa0dldHRlcnNWYWx1ZSkpIHtcbiAgICAgICAgICBvcHRpb25zT3JXYWxrR2V0dGVyc1ZhbHVlID0ge31cbiAgICAgICAgfVxuXG4gICAgICAgIChvcHRpb25zT3JXYWxrR2V0dGVyc1ZhbHVlIGFzIE1vZGVscy5JbnRlcm5hbFZhbHVlcykuaGFzSXRlcmF0b3IgPSBfLmlzRnVuY3Rpb24oaXRlcmF0b3IpXG5cbiAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9uc09yV2Fsa0dldHRlcnNWYWx1ZS5icmVhZHRoV2FsaykpIHtcbiAgICAgICAgICBvcHRpb25zT3JXYWxrR2V0dGVyc1ZhbHVlLmJyZWFkdGhXYWxrID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQge1xuICAgICAgICAgIGNpcmN1cmFsXG4gICAgICAgIH0gPSBzZWxmLl93YWxrKGpzb24sIGpzb24sIGl0ZXJhdG9yLCB2b2lkIDAsIG9wdGlvbnNPcldhbGtHZXR0ZXJzVmFsdWUgYXMgYW55KVxuXG4gICAgICAgIHJldHVybiB7IGNpcmNzOiBjaXJjdXJhbCB9XG4gICAgICB9LFxuICAgICAgT2JqZWN0QnkocHJvcGVydHk6IHN0cmluZywgaW5Db250ZXh0OiBPYmplY3QsIGl0ZXJhdG9yOiBJdGVyYXRvciwgb3B0aW9ucz86IE1vZGVscy5TdGFydEl0ZXJhdG9yT3B0aW9ucykge1xuICAgICAgICBpZiAoXy5pc0Z1bmN0aW9uKGl0ZXJhdG9yKSkge1xuICAgICAgICAgIGl0ZXJhdG9yKGluQ29udGV4dCwgJycsIHNlbGYuX2NoYW5nZVZhbHVlKGluQ29udGV4dCwgcHJvcGVydHksIHRydWUpKSAvLyBUT0RPIEFkZCBvcHRvaW5zXG4gICAgICAgIH1cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCBqc29uID0gaW5Db250ZXh0W3Byb3BlcnR5XVxuICAgICAgICByZXR1cm4gc2VsZi5XYWxrLk9iamVjdChqc29uLCBpdGVyYXRvciwgb3B0aW9ucylcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfY2hhbmdlVmFsdWUoanNvbjogT2JqZWN0LCBsb2RhaFBhdGg6IHN0cmluZywgc2ltcGxlQ2hhbmdlID0gZmFsc2UsIG9wdGlvbnM/OiBNb2RlbHMuSW50ZXJuYWxWYWx1ZXMpIHtcblxuICAgIHZhciB7IGNvbnRleHRQYXRoLCBwcm9wZXJ0eSB9ID0gdGhpcy5fcHJlcGFyZVBhcmFtcyhsb2RhaFBhdGgpO1xuICAgIHZhciBjb250ZXh0ID0gXy5nZXQoanNvbiwgY29udGV4dFBhdGgpO1xuXG4gICAgcmV0dXJuIChuZXdWYWx1ZTogYW55KSA9PiB7XG4gICAgICBpZiAoY29udGV4dFBhdGggPT09ICcnKSB7XG4gICAgICAgIHNpbXBsZUNoYW5nZSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChzaW1wbGVDaGFuZ2UpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBqc29uW3Byb3BlcnR5XSA9IG5ld1ZhbHVlO1xuICAgICAgfSBlbHNlIHtcblxuXG4gICAgICAgIGlmIChjb250ZXh0KSB7XG4gICAgICAgICAgY29udGV4dFtwcm9wZXJ0eV0gPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucy5fdmFsdWVDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfcHJlcGFyZVBhcmFtcyhsb2Rhc2hQYXRoOiBzdHJpbmcpIHtcblxuICAgIGNvbnN0IGNvbnRleHRQYXRoID0gdGhpcy5fSGVscGVycy5QYXRoLmdldENvbnRleHRQYXRoKGxvZGFzaFBhdGgpO1xuXG5cbiAgICBsZXQgcHJvcGVydHkgPSB0aGlzLl9IZWxwZXJzLlBhdGguZ2V0UHJvcGVydHlQYXRoKGxvZGFzaFBhdGgsIGNvbnRleHRQYXRoKTtcblxuICAgIGlmIChfLmlzU3RyaW5nKHByb3BlcnR5KSAmJiBwcm9wZXJ0eS50cmltKCkgIT09ICcnICYmICFfLmlzTmFOKE51bWJlcihwcm9wZXJ0eSkpKSB7XG4gICAgICBwcm9wZXJ0eSA9IE51bWJlcihwcm9wZXJ0eSlcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRleHRQYXRoLCBwcm9wZXJ0eVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldCBfSGVscGVycygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZ2V0IFBhdGgoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIGdldFByb3BlcnR5UGF0aChsb2RhaFBhdGgsIGNvbnRldFBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybiAobG9kYWhQYXRoXG4gICAgICAgICAgICAgIC5yZXBsYWNlKGNvbnRldFBhdGgsICcnKVxuICAgICAgICAgICAgICAucmVwbGFjZSgvXlxcLi8sICcnKVxuICAgICAgICAgICAgICAucmVwbGFjZSgvXFxbLywgJycpXG4gICAgICAgICAgICAgIC5yZXBsYWNlKC9cXF0vLCAnJykpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBnZXRDb250ZXh0UGF0aChwOiBzdHJpbmcpIHtcbiAgICAgICAgICAgIGxldCByZXM6IHN0cmluZztcbiAgICAgICAgICAgIGlmIChwLmVuZHNXaXRoKCddJykpIHtcbiAgICAgICAgICAgICAgcmVzID0gcC5yZXBsYWNlKC9cXFsoXFxcInxcXCcpP1swLTldKyhcXFwifFxcJyk/XFxdJC8sICcnKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVzID0gcC5yZXBsYWNlKC9cXC4oW2EtekEtWjAtOV18XFwkfFxcX3xcXEB8XFwtfFxcL3xcXDopKyQvLCAnJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXMgPT09IHAgPyAnJyA6IHJlcztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfc2hvdWRsUmV0dXJuKGluY2x1ZGUgPSBbXSwgZXhjbHVkZSA9IFtdLCBsb2Rhc2hQYXRoOiBzdHJpbmcpIHtcbiAgICBsZXQgcmVzID0gZmFsc2U7XG4gICAgaWYgKGxvZGFzaFBhdGgucmVwbGFjZSgvXlxcWyhcXCd8XFxcIik/WzAtOV0qKFxcJ3xcXFwiKT9cXF0vLCAnJykudHJpbSgpICE9PSAnJykge1xuICAgICAgbG9kYXNoUGF0aCA9IGxvZGFzaFBhdGgucmVwbGFjZSgvXlxcWyhcXCd8XFxcIik/WzAtOV0qKFxcJ3xcXFwiKT9cXF1cXC4vLCAnJylcbiAgICAgIHJlcyA9IChcbiAgICAgICAgKF8uaXNBcnJheShpbmNsdWRlKSAmJiBpbmNsdWRlLmxlbmd0aCA+IDBcbiAgICAgICAgICAmJiAhaW5jbHVkZS5maW5kKHAgPT4gbG9kYXNoUGF0aC5zdGFydHNXaXRoKHApKSlcbiAgICAgICAgfHxcbiAgICAgICAgKF8uaXNBcnJheShleGNsdWRlKSAmJiBleGNsdWRlLmxlbmd0aCA+IDBcbiAgICAgICAgICAmJiAhIWV4Y2x1ZGUuZmluZChwID0+IGxvZGFzaFBhdGguc3RhcnRzV2l0aChwKSkpXG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgcHJpdmF0ZSBzdGF0aWMgcHJlcGFyZU9wdGlvbnMob3B0aW9uczogTW9kZWxzLkludGVybmFsVmFsdWVzLCBvYmosIGxvZGFzaFBhdGgpIHtcblxuICAgIGlmIChvcHRpb25zLl9leGl0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucy53YWxrR2V0dGVycykpIHtcbiAgICAgIG9wdGlvbnMud2Fsa0dldHRlcnMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChfLmlzVW5kZWZpbmVkKG9wdGlvbnMuY2hlY2tDaXJjdXJhbCkpIHtcbiAgICAgIG9wdGlvbnMuY2hlY2tDaXJjdXJhbCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChfLmlzVW5kZWZpbmVkKG9wdGlvbnMuaXNHZXR0ZXIpKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBvcHRpb25zLmlzR2V0dGVyID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucy5fdmFsdWVDaGFuZ2VkKSkge1xuICAgICAgb3B0aW9ucy5fdmFsdWVDaGFuZ2VkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucy5fZXhpdCkpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG9wdGlvbnMuX2V4aXQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zLmV4aXQpKSB7XG4gICAgICBvcHRpb25zLmV4aXQgPSAoKSA9PiB7XG4gICAgICAgIG9wdGlvbnMuX2V4aXQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChfLmlzVW5kZWZpbmVkKG9wdGlvbnMuX3NraXApKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBvcHRpb25zLl9za2lwID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucy5za2lwT2JqZWN0KSkge1xuICAgICAgb3B0aW9ucy5za2lwT2JqZWN0ID0gKCkgPT4ge1xuICAgICAgICBvcHRpb25zLl9za2lwID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5jaGVja0NpcmN1cmFsKSB7XG4gICAgICBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zLmRiKSkge1xuICAgICAgICBvcHRpb25zLmRiID0ge31cbiAgICAgIH1cblxuICAgICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucy5zdGFjaykpIHtcbiAgICAgICAgb3B0aW9ucy5zdGFjayA9IFtdXG4gICAgICB9XG5cbiAgICAgIGlmIChfLmlzVW5kZWZpbmVkKG9wdGlvbnMuY2lyY3VyYWwpKSB7XG4gICAgICAgIG9wdGlvbnMuY2lyY3VyYWwgPSBbXVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHsgZGIsIHN0YWNrIH0gPSBvcHRpb25zO1xuICAgIG9wdGlvbnMuaXNDaXJjdXJhbCA9IGZhbHNlO1xuXG4gICAgaWYgKG9wdGlvbnMuY2hlY2tDaXJjdXJhbCAmJiBfLmlzT2JqZWN0KG9iaikpIHtcbiAgICAgIGxldCBpbmRleFZhbHVlID0gQ0xBU1MuT0JKRUNUKG9iaikuaW5kZXhWYWx1ZVxuICAgICAgaWYgKENMQVNTLk9CSkVDVChvYmopLmlzQ2xhc3NPYmplY3QgJiYgIV8uaXNVbmRlZmluZWQoaW5kZXhWYWx1ZSkpIHtcbiAgICAgICAgbGV0IGNsYXNzTmFtZSA9IENMQVNTLmdldE5hbWVGcm9tT2JqZWN0KG9iaik7XG4gICAgICAgIGxldCBwID0gYCR7Y2xhc3NOYW1lfS5pZF8ke2luZGV4VmFsdWV9YDtcbiAgICAgICAgY29uc3QgaW5EQjogTW9kZWxzLkluREJUeXBlID0gXy5nZXQoZGIsIHApO1xuXG4gICAgICAgIGlmIChpbkRCICYmIENMQVNTLk9CSkVDVChpbkRCLnRhcmdldCkuaXNFcXVhbChvYmopKSB7XG4gICAgICAgICAgY29uc3QgY2lyYzogTW9kZWxzLkNpcmMgPSB7XG4gICAgICAgICAgICBwYXRoVG9PYmo6IGxvZGFzaFBhdGgsXG4gICAgICAgICAgICBjaXJjdXJhbFRhcmdldFBhdGg6IGluREIucGF0aFxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgb3B0aW9ucy5jaXJjdXJhbC5wdXNoKGNpcmMpXG4gICAgICAgICAgb3B0aW9ucy5pc0NpcmN1cmFsID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfLnNldChkYiwgcCwge1xuICAgICAgICAgICAgcGF0aDogbG9kYXNoUGF0aCxcbiAgICAgICAgICAgIHRhcmdldDogb2JqXG4gICAgICAgICAgfSBhcyBNb2RlbHMuSW5EQlR5cGUpXG4gICAgICAgIH1cblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCBpblN0YWNrID0gc3RhY2suZmluZCgoYzogTW9kZWxzLkluREJUeXBlKSA9PiBjLnRhcmdldCA9PSBvYmopO1xuXG4gICAgICAgIGlmICghXy5pc1VuZGVmaW5lZChpblN0YWNrKSkge1xuICAgICAgICAgIGNvbnN0IGNpcmM6IE1vZGVscy5DaXJjID0ge1xuICAgICAgICAgICAgcGF0aFRvT2JqOiBsb2Rhc2hQYXRoLFxuICAgICAgICAgICAgY2lyY3VyYWxUYXJnZXRQYXRoOiBpblN0YWNrLnBhdGhcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIG9wdGlvbnMuY2lyY3VyYWwucHVzaChjaXJjKVxuICAgICAgICAgIG9wdGlvbnMuaXNDaXJjdXJhbCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHN0YWNrLnB1c2goe1xuICAgICAgICAgICAgcGF0aDogbG9kYXNoUGF0aCxcbiAgICAgICAgICAgIHRhcmdldDogb2JqXG4gICAgICAgICAgfSBhcyBNb2RlbHMuSW5EQlR5cGUpO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfd2Fsayhqc29uOiBPYmplY3QsIG9iajogT2JqZWN0LCBpdGVyYXRvcjogSXRlcmF0b3IsIGxvZGFzaFBhdGggPSAnJyxcbiAgICBvcHRpb25zPzogTW9kZWxzLkludGVybmFsVmFsdWVzLCBkZXB0aExldmVsID0gMCkge1xuXG4gICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICBvcHRpb25zID0ge30gYXMgYW55O1xuICAgIH1cblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBpZiAoIW9wdGlvbnMuYnJlYWR0aFdhbGspIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG9wdGlvbnMgPSB0aGlzLnByZXBhcmVPcHRpb25zKG9wdGlvbnMsIG9iaiwgbG9kYXNoUGF0aClcblxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgaWYgKHRoaXMuX3Nob3VkbFJldHVybihvcHRpb25zLmluY2x1ZGUsIG9wdGlvbnMuZXhjbHVkZSwgbG9kYXNoUGF0aCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBpZiAob3B0aW9ucy5oYXNJdGVyYXRvciAmJiBsb2Rhc2hQYXRoICE9PSAnJykge1xuICAgICAgICBpdGVyYXRvcihvYmosIGxvZGFzaFBhdGgsIHRoaXMuX2NoYW5nZVZhbHVlKGpzb24sIGxvZGFzaFBhdGgsIGZhbHNlLCBvcHRpb25zKSwgb3B0aW9ucylcbiAgICAgIH1cblxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgaWYgKG9wdGlvbnMuX3ZhbHVlQ2hhbmdlZCkge1xuICAgICAgICBvYmogPSBfLmdldChqc29uLCBsb2Rhc2hQYXRoKVxuICAgICAgfVxuICAgICAgb3B0aW9ucy5fdmFsdWVDaGFuZ2VkID0gZmFsc2U7XG5cbiAgICAgIGlmIChvcHRpb25zLmlzQ2lyY3VyYWwpIHtcbiAgICAgICAgb3B0aW9ucy5fc2tpcCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb25zLl9za2lwKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgb3B0aW9ucy5fc2tpcCA9IGZhbHNlO1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG5cblxuXG4gICAgaWYgKG9wdGlvbnMuYnJlYWR0aFdhbGspIHtcblxuICAgICAgbGV0IHF1ZXVlOiBNb2RlbHMuVmVyW10gPSBbeyB2OiBqc29uLCBwOiBsb2Rhc2hQYXRoLCBwYXJlbnQ6IHZvaWQgMCB9XTtcblxuXG4gICAgICB3aGlsZSAocXVldWUubGVuZ3RoID4gMCkge1xuXG4gICAgICAgIGNvbnN0IHZlciA9IHF1ZXVlLnNoaWZ0KCk7XG5cblxuXG5cblxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmICh0aGlzLl9zaG91ZGxSZXR1cm4ob3B0aW9ucy5pbmNsdWRlLCBvcHRpb25zLmV4Y2x1ZGUsIHZlci5wKSkge1xuXG5cbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG5cblxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGxldCB7IHYsIHAgfSA9IHZlcjtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBvcHRpb25zID0gdGhpcy5wcmVwYXJlT3B0aW9ucyhvcHRpb25zLCB2LCBwKVxuXG4gICAgICAgIGlmIChvcHRpb25zLl9leGl0KSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0VYSVQnKVxuICAgICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmhhc0l0ZXJhdG9yICYmIHAgIT09ICcnKSB7XG4gICAgICAgICAgaXRlcmF0b3IodiwgcCwgdGhpcy5fY2hhbmdlVmFsdWUoanNvbiwgcCwgZmFsc2UsIG9wdGlvbnMpLCBvcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKG9wdGlvbnMuX3ZhbHVlQ2hhbmdlZCkge1xuICAgICAgICAgIHZlci52ID0gXy5nZXQoanNvbiwgcCk7XG4gICAgICAgIH1cbiAgICAgICAgb3B0aW9ucy5fdmFsdWVDaGFuZ2VkID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuaXNDaXJjdXJhbCkge1xuXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5fc2tpcCkge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBvcHRpb25zLl9za2lwID0gZmFsc2U7XG5cbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChfLmlzQXJyYXkodikpIHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgcXVldWUgPSBxdWV1ZS5jb25jYXQoZmluZENoaWxkcmVuKHZlciwgcCwgb3B0aW9ucy53YWxrR2V0dGVycykpXG4gICAgICAgIH0gZWxzZSBpZiAoXy5pc09iamVjdCh2KSkge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBxdWV1ZSA9IHF1ZXVlLmNvbmNhdChmaW5kQ2hpbGRyZW4odmVyLCBwLCBvcHRpb25zLndhbGtHZXR0ZXJzKSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGNvbnN0IHsgd2Fsa0dldHRlcnMgfSA9IG9wdGlvbnM7XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgICAgb2JqLmZvckVhY2goKG8sIGkpID0+IHtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgdGhpcy5fd2Fsayhqc29uLCBvYmpbaV0sIGl0ZXJhdG9yLCBgJHtsb2Rhc2hQYXRofVske2l9XWAsIG9wdGlvbnMsIGRlcHRoTGV2ZWwgKyAxKVxuICAgICAgICB9KVxuXG4gICAgICB9IGVsc2UgaWYgKF8uaXNPYmplY3Qob2JqKSkge1xuICAgICAgICBjb25zdCBhbGxLZXlzID0gIXdhbGtHZXR0ZXJzID8gW10gOiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcbiAgICAgICAgICBpZiAoXy5pc09iamVjdChvYmopICYmIG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICBfLnB1bGwoYWxsS2V5cywga2V5KVxuXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBvcHRpb25zLmlzR2V0dGVyID0gZmFsc2U7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLl93YWxrKGpzb24sIG9ialtrZXldLCBpdGVyYXRvciwgYCR7KGxvZGFzaFBhdGggPT09ICcnKSA/ICcnIDogYCR7bG9kYXNoUGF0aH0uYH0ke2tleX1gLCBvcHRpb25zLCBkZXB0aExldmVsICsgMSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdhbGtHZXR0ZXJzKSB7XG4gICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFsbEtleXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBpZiAoXy5pc09iamVjdChvYmopKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGtleSA9IGFsbEtleXNbaW5kZXhdO1xuXG4gICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgb3B0aW9ucy5pc0dldHRlciA9IHRydWU7XG4gICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgdGhpcy5fd2Fsayhqc29uLCBvYmpba2V5XSwgaXRlcmF0b3IsIGAkeyhsb2Rhc2hQYXRoID09PSAnJykgPyAnJyA6IGAke2xvZGFzaFBhdGh9LmB9JHtrZXl9YCwgb3B0aW9ucywgZGVwdGhMZXZlbCArIDEpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGlmIChvcHRpb25zLl9leGl0ICYmIGpzb24gPT09IG9iaikge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIG9wdGlvbnMuX2V4aXQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbn1cblxuZXhwb3J0IGNvbnN0IHdhbGsgPSB7XG4gIE9iamVjdDogSGVscGVycy5XYWxrLk9iamVjdCxcbiAgT2JqZWN0Qnk6IEhlbHBlcnMuV2Fsay5PYmplY3RCeVxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9bG9kYXNoLXdhbGstb2JqZWN0IGxpYi9pbmRleC50cyJdfQ==
|
|
360
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvbG9kYXNoLXdhbGstb2JqZWN0L3Byb2plY3RzL2xvZGFzaC13YWxrLW9iamVjdC9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHeEQsY0FBYyxVQUFVLENBQUM7QUFFekIsU0FBUyxZQUFZLENBQ25CLEdBQWUsRUFDZixFQUFVLEVBQ1YsV0FBb0I7SUFFcEIsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNsQixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNuQixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdEIsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO1NBQU0sSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDM0IsTUFBTSxPQUFPLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sUUFBUSxHQUFpQixFQUFFLENBQUM7UUFDbEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUNFLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFD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S0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDcEQsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7NEJBQ3BCLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQzs0QkFFM0IsYUFBYTs0QkFDYixPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzs0QkFDeEIsYUFBYTs0QkFDYixJQUFJLENBQUMsS0FBSyxDQUNSLElBQUksRUFDSixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQ1IsUUFBUSxFQUNSLEdBQUcsVUFBVSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUNwRCxPQUFPLEVBQ1AsVUFBVSxHQUFHLENBQUMsQ0FDZixDQUFDO3dCQUNKLENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUVELGFBQWE7WUFDYixJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNsQyxhQUFhO2dCQUNiLE9BQU8sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHO0lBQ2xCLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU07SUFDM0IsUUFBUSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUTtDQUNoQyxDQUFDO0FBRUQsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyw0REFBNEQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBDTEFTUyB9IGZyb20gJ3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy93ZWJzcWwnO1xuXG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscyc7XG5cbmZ1bmN0aW9uIGZpbmRDaGlsZHJlbihcbiAgdmVyOiBNb2RlbHMuVmVyLFxuICBscDogc3RyaW5nLFxuICB3YWxrR2V0dGVyczogYm9vbGVhbixcbik6IE1vZGVscy5WZXJbXSB7XG4gIGNvbnN0IG9iaiA9IHZlci52O1xuICBpZiAoXy5pc0FycmF5KG9iaikpIHtcbiAgICByZXR1cm4gb2JqLm1hcCgodiwgaSkgPT4ge1xuICAgICAgcmV0dXJuIHsgdiwgcDogYCR7bHB9WyR7aX1dYCwgcGFyZW50OiB2ZXIsIGlzR2V0dGVyOiBmYWxzZSB9O1xuICAgIH0pO1xuICB9IGVsc2UgaWYgKF8uaXNPYmplY3Qob2JqKSkge1xuICAgIGNvbnN0IGFsbEtleXMgPSAhd2Fsa0dldHRlcnMgPyBbXSA6IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaik7XG4gICAgY29uc3QgY2hpbGRyZW46IE1vZGVscy5WZXJbXSA9IFtdO1xuICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xuICAgICAgaWYgKFxuICAgICAgICBfLmlzT2JqZWN0KG9iaikgJiZcbiAgICAgICAgXy5pc0Z1bmN0aW9uKG9iai5oYXNPd25Qcm9wZXJ0eSkgJiZcbiAgICAgICAgb2JqLmhhc093blByb3BlcnR5KGtleSlcbiAgICAgICkge1xuICAgICAgICBfLnB1bGwoYWxsS2V5cywga2V5KTtcbiAgICAgICAgY2hpbGRyZW4ucHVzaCh7XG4gICAgICAgICAgdjogb2JqW2tleV0sXG4gICAgICAgICAgcDogYCR7bHAgPT09ICcnID8gJycgOiBgJHtscH0uYH0ke2tleX1gLFxuICAgICAgICAgIHBhcmVudDogdmVyLFxuICAgICAgICAgIGlzR2V0dGVyOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh3YWxrR2V0dGVycykge1xuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFsbEtleXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGlmIChfLmlzT2JqZWN0KG9iaikpIHtcbiAgICAgICAgICBjb25zdCBrZXkgPSBhbGxLZXlzW2luZGV4XTtcbiAgICAgICAgICBjaGlsZHJlbi5wdXNoKHtcbiAgICAgICAgICAgIHY6IG9ialtrZXldLFxuICAgICAgICAgICAgcDogYCR7bHAgPT09ICcnID8gJycgOiBgJHtscH0uYH0ke2tleX1gLFxuICAgICAgICAgICAgcGFyZW50OiB2ZXIsXG4gICAgICAgICAgICBpc0dldHRlcjogdHJ1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2hpbGRyZW47XG4gIH1cbiAgcmV0dXJuIFtdO1xufVxuXG5leHBvcnQgdHlwZSBJdGVyYXRvciA9IChcbiAgdmFsdWU6IGFueSxcbiAgbG9kYXNoUGF0aDogc3RyaW5nLFxuICAvLyBAdHMtaWdub3JlXG4gIGNoYW5nZVZhbHVlVG86IChuZXdWYWx1ZSkgPT4gdm9pZCxcbiAgb3B0aW9ucz86IE1vZGVscy5BZGRpdGlvbmFsSXRlcmF0b3JPcHRpb25zLFxuKSA9PiB2b2lkO1xuZXhwb3J0IGNsYXNzIEhlbHBlcnMge1xuICBwdWJsaWMgc3RhdGljIGdldCBXYWxrKCkge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHJldHVybiB7XG4gICAgICBPYmplY3QoXG4gICAgICAgIGpzb246IE9iamVjdCxcbiAgICAgICAgaXRlcmF0b3I6IEl0ZXJhdG9yLFxuICAgICAgICBvcHRpb25zT3JXYWxrR2V0dGVyc1ZhbHVlPzogTW9kZWxzLlN0YXJ0SXRlcmF0b3JPcHRpb25zLFxuICAgICAgKSB7XG4gICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKG9wdGlvbnNPcldhbGtHZXR0ZXJzVmFsdWUpKSB7XG4gICAgICAgICAgb3B0aW9uc09yV2Fsa0dldHRlcnNWYWx1ZSA9IHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgKG9wdGlvbnNPcldhbGtHZXR0ZXJzVmFsdWUgYXMgTW9kZWxzLkludGVybmFsVmFsdWVzKS5oYXNJdGVyYXRvciA9XG4gICAgICAgICAgXy5pc0Z1bmN0aW9uKGl0ZXJhdG9yKTtcblxuICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zT3JXYWxrR2V0dGVyc1ZhbHVlLmJyZWFkdGhXYWxrKSkge1xuICAgICAgICAgIG9wdGlvbnNPcldhbGtHZXR0ZXJzVmFsdWUuYnJlYWR0aFdhbGsgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB7IGNpcmN1cmFsIH0gPSBzZWxmLl93YWxrKFxuICAgICAgICAgIGpzb24sXG4gICAgICAgICAganNvbixcbiAgICAgICAgICBpdGVyYXRvcixcbiAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgb3B0aW9uc09yV2Fsa0dldHRlcnNWYWx1ZSBhcyBhbnksXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHsgY2lyY3M6IGNpcmN1cmFsIH07XG4gICAgICB9LFxuICAgICAgT2JqZWN0QnkoXG4gICAgICAgIHByb3BlcnR5OiBzdHJpbmcsXG4gICAgICAgIGluQ29udGV4dDogT2JqZWN0LFxuICAgICAgICBpdGVyYXRvcjogSXRlcmF0b3IsXG4gICAgICAgIG9wdGlvbnM/OiBNb2RlbHMuU3RhcnRJdGVyYXRvck9wdGlvbnMsXG4gICAgICApIHtcbiAgICAgICAgaWYgKF8uaXNGdW5jdGlvbihpdGVyYXRvcikpIHtcbiAgICAgICAgICBpdGVyYXRvcihpbkNvbnRleHQsICcnLCBzZWxmLl9jaGFuZ2VWYWx1ZShpbkNvbnRleHQsIHByb3BlcnR5LCB0cnVlKSk7IC8vIFRPRE8gQWRkIG9wdG9pbnNcbiAgICAgICAgfVxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGNvbnN0IGpzb24gPSBpbkNvbnRleHRbcHJvcGVydHldO1xuICAgICAgICByZXR1cm4gc2VsZi5XYWxrLk9iamVjdChqc29uLCBpdGVyYXRvciwgb3B0aW9ucyk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfY2hhbmdlVmFsdWUoXG4gICAganNvbjogT2JqZWN0LFxuICAgIGxvZGFoUGF0aDogc3RyaW5nLFxuICAgIHNpbXBsZUNoYW5nZSA9IGZhbHNlLFxuICAgIG9wdGlvbnM/OiBNb2RlbHMuSW50ZXJuYWxWYWx1ZXMsXG4gICkge1xuICAgIHZhciB7IGNvbnRleHRQYXRoLCBwcm9wZXJ0eSB9ID0gdGhpcy5fcHJlcGFyZVBhcmFtcyhsb2RhaFBhdGgpO1xuICAgIHZhciBjb250ZXh0ID0gXy5nZXQoanNvbiwgY29udGV4dFBhdGgpO1xuXG4gICAgcmV0dXJuIChuZXdWYWx1ZTogYW55KSA9PiB7XG4gICAgICBpZiAoY29udGV4dFBhdGggPT09ICcnKSB7XG4gICAgICAgIHNpbXBsZUNoYW5nZSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChzaW1wbGVDaGFuZ2UpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBqc29uW3Byb3BlcnR5XSA9IG5ld1ZhbHVlO1xuICAgICAgfSBlbHNlIHtcblxuXG4gICAgICAgIGlmIChjb250ZXh0KSB7XG4gICAgICAgICAgY29udGV4dFtwcm9wZXJ0eV0gPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgb3B0aW9ucy5fdmFsdWVDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX3ByZXBhcmVQYXJhbXMobG9kYXNoUGF0aDogc3RyaW5nKSB7XG5cbiAgICBjb25zdCBjb250ZXh0UGF0aCA9IHRoaXMuX0hlbHBlcnMuUGF0aC5nZXRDb250ZXh0UGF0aChsb2Rhc2hQYXRoKTtcblxuXG4gICAgbGV0IHByb3BlcnR5ID0gdGhpcy5fSGVscGVycy5QYXRoLmdldFByb3BlcnR5UGF0aChsb2Rhc2hQYXRoLCBjb250ZXh0UGF0aCk7XG5cbiAgICBpZiAoXG4gICAgICBfLmlzU3RyaW5nKHByb3BlcnR5KSAmJlxuICAgICAgcHJvcGVydHkudHJpbSgpICE9PSAnJyAmJlxuICAgICAgIV8uaXNOYU4oTnVtYmVyKHByb3BlcnR5KSlcbiAgICApIHtcbiAgICAgIHByb3BlcnR5ID0gTnVtYmVyKHByb3BlcnR5KTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRleHRQYXRoLFxuICAgICAgcHJvcGVydHksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldCBfSGVscGVycygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZ2V0IFBhdGgoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIGdldFByb3BlcnR5UGF0aChsb2RhaFBhdGgsIGNvbnRldFBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybiBsb2RhaFBhdGhcbiAgICAgICAgICAgICAgLnJlcGxhY2UoY29udGV0UGF0aCwgJycpXG4gICAgICAgICAgICAgIC5yZXBsYWNlKC9eXFwuLywgJycpXG4gICAgICAgICAgICAgIC5yZXBsYWNlKC9cXFsvLCAnJylcbiAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcXS8sICcnKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGdldENvbnRleHRQYXRoKHA6IHN0cmluZykge1xuICAgICAgICAgICAgbGV0IHJlczogc3RyaW5nO1xuICAgICAgICAgICAgaWYgKHAuZW5kc1dpdGgoJ10nKSkge1xuICAgICAgICAgICAgICByZXMgPSBwLnJlcGxhY2UoL1xcWyhcXFwifFxcJyk/WzAtOV0rKFxcXCJ8XFwnKT9cXF0kLywgJycpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVzID0gcC5yZXBsYWNlKC9cXC4oW2EtekEtWjAtOV18XFwkfFxcX3xcXEB8XFwtfFxcL3xcXDopKyQvLCAnJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzID09PSBwID8gJycgOiByZXM7XG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9zaG91ZGxSZXR1cm4oaW5jbHVkZSA9IFtdLCBleGNsdWRlID0gW10sIGxvZGFzaFBhdGg6IHN0cmluZykge1xuICAgIGxldCByZXMgPSBmYWxzZTtcbiAgICBpZiAobG9kYXNoUGF0aC5yZXBsYWNlKC9eXFxbKFxcJ3xcXFwiKT9bMC05XSooXFwnfFxcXCIpP1xcXS8sICcnKS50cmltKCkgIT09ICcnKSB7XG4gICAgICBsb2Rhc2hQYXRoID0gbG9kYXNoUGF0aC5yZXBsYWNlKC9eXFxbKFxcJ3xcXFwiKT9bMC05XSooXFwnfFxcXCIpP1xcXVxcLi8sICcnKTtcbiAgICAgIHJlcyA9XG4gICAgICAgIChfLmlzQXJyYXkoaW5jbHVkZSkgJiZcbiAgICAgICAgICBpbmNsdWRlLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAhaW5jbHVkZS5maW5kKHAgPT4gbG9kYXNoUGF0aC5zdGFydHNXaXRoKHApKSkgfHxcbiAgICAgICAgKF8uaXNBcnJheShleGNsdWRlKSAmJlxuICAgICAgICAgIGV4Y2x1ZGUubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICEhZXhjbHVkZS5maW5kKHAgPT4gbG9kYXNoUGF0aC5zdGFydHNXaXRoKHApKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgcHJpdmF0ZSBzdGF0aWMgcHJlcGFyZU9wdGlvbnMoXG4gICAgb3B0aW9uczogTW9kZWxzLkludGVybmFsVmFsdWVzLFxuICAgIG9iaixcbiAgICBsb2Rhc2hQYXRoLFxuICApIHtcbiAgICBpZiAob3B0aW9ucy5fZXhpdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChfLmlzVW5kZWZpbmVkKG9wdGlvbnMud2Fsa0dldHRlcnMpKSB7XG4gICAgICBvcHRpb25zLndhbGtHZXR0ZXJzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zLmNoZWNrQ2lyY3VyYWwpKSB7XG4gICAgICBvcHRpb25zLmNoZWNrQ2lyY3VyYWwgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zLmlzR2V0dGVyKSkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgb3B0aW9ucy5pc0dldHRlciA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChfLmlzVW5kZWZpbmVkKG9wdGlvbnMuX3ZhbHVlQ2hhbmdlZCkpIHtcbiAgICAgIG9wdGlvbnMuX3ZhbHVlQ2hhbmdlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChfLmlzVW5kZWZpbmVkKG9wdGlvbnMuX2V4aXQpKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBvcHRpb25zLl9leGl0ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucy5leGl0KSkge1xuICAgICAgb3B0aW9ucy5leGl0ID0gKCkgPT4ge1xuICAgICAgICBvcHRpb25zLl9leGl0ID0gdHJ1ZTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucy5fc2tpcCkpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG9wdGlvbnMuX3NraXAgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zLnNraXBPYmplY3QpKSB7XG4gICAgICBvcHRpb25zLnNraXBPYmplY3QgPSAoKSA9PiB7XG4gICAgICAgIG9wdGlvbnMuX3NraXAgPSB0cnVlO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5jaGVja0NpcmN1cmFsKSB7XG4gICAgICBpZiAoXy5pc1VuZGVmaW5lZChvcHRpb25zLmRiKSkge1xuICAgICAgICBvcHRpb25zLmRiID0ge307XG4gICAgICB9XG5cbiAgICAgIGlmIChfLmlzVW5kZWZpbmVkKG9wdGlvbnMuc3RhY2spKSB7XG4gICAgICAgIG9wdGlvbnMuc3RhY2sgPSBbXTtcbiAgICAgIH1cblxuICAgICAgaWYgKF8uaXNVbmRlZmluZWQob3B0aW9ucy5jaXJjdXJhbCkpIHtcbiAgICAgICAgb3B0aW9ucy5jaXJjdXJhbCA9IFtdO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHsgZGIsIHN0YWNrIH0gPSBvcHRpb25zO1xuICAgIG9wdGlvbnMuaXNDaXJjdXJhbCA9IGZhbHNlO1xuXG4gICAgaWYgKG9wdGlvbnMuY2hlY2tDaXJjdXJhbCAmJiBfLmlzT2JqZWN0KG9iaikpIHtcbiAgICAgIGxldCBpbmRleFZhbHVlID0gQ0xBU1MuT0JKRUNUKG9iaikuaW5kZXhWYWx1ZTtcbiAgICAgIGlmIChDTEFTUy5PQkpFQ1Qob2JqKS5pc0NsYXNzT2JqZWN0ICYmICFfLmlzVW5kZWZpbmVkKGluZGV4VmFsdWUpKSB7XG4gICAgICAgIGxldCBjbGFzc05hbWUgPSBDTEFTUy5nZXROYW1lRnJvbU9iamVjdChvYmopO1xuICAgICAgICBsZXQgcCA9IGAke2NsYXNzTmFtZX0uaWRfJHtpbmRleFZhbHVlfWA7XG4gICAgICAgIGNvbnN0IGluREI6IE1vZGVscy5JbkRCVHlwZSA9IF8uZ2V0KGRiLCBwKTtcblxuICAgICAgICBpZiAoaW5EQiAmJiBDTEFTUy5PQkpFQ1QoaW5EQi50YXJnZXQpLmlzRXF1YWwob2JqKSkge1xuICAgICAgICAgIGNvbnN0IGNpcmM6IE1vZGVscy5DaXJjID0ge1xuICAgICAgICAgICAgcGF0aFRvT2JqOiBsb2Rhc2hQYXRoLFxuICAgICAgICAgICAgY2lyY3VyYWxUYXJnZXRQYXRoOiBpbkRCLnBhdGgsXG4gICAgICAgICAgfTtcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgb3B0aW9ucy5jaXJjdXJhbC5wdXNoKGNpcmMpO1xuICAgICAgICAgIG9wdGlvbnMuaXNDaXJjdXJhbCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgXy5zZXQoZGIsIHAsIHtcbiAgICAgICAgICAgIHBhdGg6IGxvZGFzaFBhdGgsXG4gICAgICAgICAgICB0YXJnZXQ6IG9iaixcbiAgICAgICAgICB9IGFzIE1vZGVscy5JbkRCVHlwZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgY29uc3QgaW5TdGFjayA9IHN0YWNrLmZpbmQoKGM6IE1vZGVscy5JbkRCVHlwZSkgPT4gYy50YXJnZXQgPT0gb2JqKTtcblxuICAgICAgICBpZiAoIV8uaXNVbmRlZmluZWQoaW5TdGFjaykpIHtcbiAgICAgICAgICBjb25zdCBjaXJjOiBNb2RlbHMuQ2lyYyA9IHtcbiAgICAgICAgICAgIHBhdGhUb09iajogbG9kYXNoUGF0aCxcbiAgICAgICAgICAgIGNpcmN1cmFsVGFyZ2V0UGF0aDogaW5TdGFjay5wYXRoLFxuICAgICAgICAgIH07XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIG9wdGlvbnMuY2lyY3VyYWwucHVzaChjaXJjKTtcbiAgICAgICAgICBvcHRpb25zLmlzQ2lyY3VyYWwgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBzdGFjay5wdXNoKHtcbiAgICAgICAgICAgIHBhdGg6IGxvZGFzaFBhdGgsXG4gICAgICAgICAgICB0YXJnZXQ6IG9iaixcbiAgICAgICAgICB9IGFzIE1vZGVscy5JbkRCVHlwZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBfd2FsayhcbiAgICBqc29uOiBPYmplY3QsXG4gICAgb2JqOiBPYmplY3QsXG4gICAgaXRlcmF0b3I6IEl0ZXJhdG9yLFxuICAgIGxvZGFzaFBhdGggPSAnJyxcbiAgICBvcHRpb25zPzogTW9kZWxzLkludGVybmFsVmFsdWVzLFxuICAgIGRlcHRoTGV2ZWwgPSAwLFxuICApIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIG9wdGlvbnMgPSB7fSBhcyBhbnk7XG4gICAgfVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlmICghb3B0aW9ucy5icmVhZHRoV2Fsaykge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgb3B0aW9ucyA9IHRoaXMucHJlcGFyZU9wdGlvbnMob3B0aW9ucywgb2JqLCBsb2Rhc2hQYXRoKTtcblxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgaWYgKHRoaXMuX3Nob3VkbFJldHVybihvcHRpb25zLmluY2x1ZGUsIG9wdGlvbnMuZXhjbHVkZSwgbG9kYXNoUGF0aCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBpZiAob3B0aW9ucy5oYXNJdGVyYXRvciAmJiBsb2Rhc2hQYXRoICE9PSAnJykge1xuICAgICAgICBpdGVyYXRvcihcbiAgICAgICAgICBvYmosXG4gICAgICAgICAgbG9kYXNoUGF0aCxcbiAgICAgICAgICB0aGlzLl9jaGFuZ2VWYWx1ZShqc29uLCBsb2Rhc2hQYXRoLCBmYWxzZSwgb3B0aW9ucyksXG4gICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgaWYgKG9wdGlvbnMuX3ZhbHVlQ2hhbmdlZCkge1xuICAgICAgICBvYmogPSBfLmdldChqc29uLCBsb2Rhc2hQYXRoKTtcbiAgICAgIH1cbiAgICAgIG9wdGlvbnMuX3ZhbHVlQ2hhbmdlZCA9IGZhbHNlO1xuXG4gICAgICBpZiAob3B0aW9ucy5pc0NpcmN1cmFsKSB7XG4gICAgICAgIG9wdGlvbnMuX3NraXAgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9ucy5fc2tpcCkge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIG9wdGlvbnMuX3NraXAgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmJyZWFkdGhXYWxrKSB7XG4gICAgICBsZXQgcXVldWU6IE1vZGVscy5WZXJbXSA9IFt7IHY6IGpzb24sIHA6IGxvZGFzaFBhdGgsIHBhcmVudDogdm9pZCAwIH1dO1xuXG5cbiAgICAgIHdoaWxlIChxdWV1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHZlciA9IHF1ZXVlLnNoaWZ0KCk7XG5cblxuXG5cblxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmICh0aGlzLl9zaG91ZGxSZXR1cm4ob3B0aW9ucy5pbmNsdWRlLCBvcHRpb25zLmV4Y2x1ZGUsIHZlci5wKSkge1xuXG5cbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG5cblxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGxldCB7IHYsIHAgfSA9IHZlcjtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBvcHRpb25zID0gdGhpcy5wcmVwYXJlT3B0aW9ucyhvcHRpb25zLCB2LCBwKTtcblxuICAgICAgICBpZiAob3B0aW9ucy5fZXhpdCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdFWElUJyk7XG4gICAgICAgICAgcmV0dXJuIG9wdGlvbnM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMuaGFzSXRlcmF0b3IgJiYgcCAhPT0gJycpIHtcbiAgICAgICAgICBpdGVyYXRvcih2LCBwLCB0aGlzLl9jaGFuZ2VWYWx1ZShqc29uLCBwLCBmYWxzZSwgb3B0aW9ucyksIG9wdGlvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBpZiAob3B0aW9ucy5fdmFsdWVDaGFuZ2VkKSB7XG4gICAgICAgICAgdmVyLnYgPSBfLmdldChqc29uLCBwKTtcbiAgICAgICAgfVxuICAgICAgICBvcHRpb25zLl92YWx1ZUNoYW5nZWQgPSBmYWxzZTtcblxuICAgICAgICBpZiAob3B0aW9ucy5pc0NpcmN1cmFsKSB7XG5cbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLl9za2lwKSB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIG9wdGlvbnMuX3NraXAgPSBmYWxzZTtcblxuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKF8uaXNBcnJheSh2KSkge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBxdWV1ZSA9IHF1ZXVlLmNvbmNhdChmaW5kQ2hpbGRyZW4odmVyLCBwLCBvcHRpb25zLndhbGtHZXR0ZXJzKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoXy5pc09iamVjdCh2KSkge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBxdWV1ZSA9IHF1ZXVlLmNvbmNhdChmaW5kQ2hpbGRyZW4odmVyLCBwLCBvcHRpb25zLndhbGtHZXR0ZXJzKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgY29uc3QgeyB3YWxrR2V0dGVycyB9ID0gb3B0aW9ucztcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgICBvYmouZm9yRWFjaCgobywgaSkgPT4ge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICB0aGlzLl93YWxrKFxuICAgICAgICAgICAganNvbixcbiAgICAgICAgICAgIG9ialtpXSxcbiAgICAgICAgICAgIGl0ZXJhdG9yLFxuICAgICAgICAgICAgYCR7bG9kYXNoUGF0aH1bJHtpfV1gLFxuICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgIGRlcHRoTGV2ZWwgKyAxLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChfLmlzT2JqZWN0KG9iaikpIHtcbiAgICAgICAgY29uc3QgYWxsS2V5cyA9ICF3YWxrR2V0dGVycyA/IFtdIDogT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG5cbiAgICAgICAgICBpZiAoXy5pc09iamVjdChvYmopICYmIG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICBfLnB1bGwoYWxsS2V5cywga2V5KTtcblxuICAgICAgICAgICAgbGV0IG5ld1Byb3BLZXkgPSBrZXk7XG4gICAgICAgICAgICBvcHRpb25zLmlzR2V0dGVyID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAobmV3UHJvcEtleS5pbmNsdWRlcygnLicpKSB7XG4gICAgICAgICAgICAgIG5ld1Byb3BLZXkgPSBgWycke25ld1Byb3BLZXl9J11gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy5fd2FsayhcbiAgICAgICAgICAgICAganNvbixcbiAgICAgICAgICAgICAgb2JqW25ld1Byb3BLZXldLFxuICAgICAgICAgICAgICBpdGVyYXRvcixcbiAgICAgICAgICAgICAgYCR7bG9kYXNoUGF0aCA9PT0gJycgPyAnJyA6IGAke2xvZGFzaFBhdGh9LmB9JHtuZXdQcm9wS2V5fWAsXG4gICAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICAgIGRlcHRoTGV2ZWwgKyAxLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdhbGtHZXR0ZXJzKSB7XG4gICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFsbEtleXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBpZiAoXy5pc09iamVjdChvYmopKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGtleSA9IGFsbEtleXNbaW5kZXhdO1xuXG4gICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgb3B0aW9ucy5pc0dldHRlciA9IHRydWU7XG4gICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgdGhpcy5fd2FsayhcbiAgICAgICAgICAgICAgICBqc29uLFxuICAgICAgICAgICAgICAgIG9ialtrZXldLFxuICAgICAgICAgICAgICAgIGl0ZXJhdG9yLFxuICAgICAgICAgICAgICAgIGAke2xvZGFzaFBhdGggPT09ICcnID8gJycgOiBgJHtsb2Rhc2hQYXRofS5gfSR7a2V5fWAsXG4gICAgICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgICAgICBkZXB0aExldmVsICsgMSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgaWYgKG9wdGlvbnMuX2V4aXQgJiYganNvbiA9PT0gb2JqKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgb3B0aW9ucy5fZXhpdCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCB3YWxrID0ge1xuICBPYmplY3Q6IEhlbHBlcnMuV2Fsay5PYmplY3QsXG4gIE9iamVjdEJ5OiBIZWxwZXJzLldhbGsuT2JqZWN0QnksXG59O1xuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9bG9kYXNoLXdhbGstb2JqZWN0IGxpYi9pbmRleC50cyJdfQ==
|
|
@@ -15,16 +15,28 @@ function findChildren(ver, lp, walkGetters) {
|
|
|
15
15
|
const allKeys = !walkGetters ? [] : Object.getOwnPropertyNames(obj);
|
|
16
16
|
const children = [];
|
|
17
17
|
for (const key in obj) {
|
|
18
|
-
if (_.isObject(obj) &&
|
|
18
|
+
if (_.isObject(obj) &&
|
|
19
|
+
_.isFunction(obj.hasOwnProperty) &&
|
|
20
|
+
obj.hasOwnProperty(key)) {
|
|
19
21
|
_.pull(allKeys, key);
|
|
20
|
-
children.push({
|
|
22
|
+
children.push({
|
|
23
|
+
v: obj[key],
|
|
24
|
+
p: `${lp === '' ? '' : `${lp}.`}${key}`,
|
|
25
|
+
parent: ver,
|
|
26
|
+
isGetter: false,
|
|
27
|
+
});
|
|
21
28
|
}
|
|
22
29
|
}
|
|
23
30
|
if (walkGetters) {
|
|
24
31
|
for (let index = 0; index < allKeys.length; index++) {
|
|
25
32
|
if (_.isObject(obj)) {
|
|
26
33
|
const key = allKeys[index];
|
|
27
|
-
children.push({
|
|
34
|
+
children.push({
|
|
35
|
+
v: obj[key],
|
|
36
|
+
p: `${lp === '' ? '' : `${lp}.`}${key}`,
|
|
37
|
+
parent: ver,
|
|
38
|
+
isGetter: true,
|
|
39
|
+
});
|
|
28
40
|
}
|
|
29
41
|
}
|
|
30
42
|
}
|
|
@@ -40,7 +52,8 @@ class Helpers {
|
|
|
40
52
|
if (_.isUndefined(optionsOrWalkGettersValue)) {
|
|
41
53
|
optionsOrWalkGettersValue = {};
|
|
42
54
|
}
|
|
43
|
-
optionsOrWalkGettersValue.hasIterator =
|
|
55
|
+
optionsOrWalkGettersValue.hasIterator =
|
|
56
|
+
_.isFunction(iterator);
|
|
44
57
|
if (_.isUndefined(optionsOrWalkGettersValue.breadthWalk)) {
|
|
45
58
|
optionsOrWalkGettersValue.breadthWalk = false;
|
|
46
59
|
}
|
|
@@ -54,7 +67,7 @@ class Helpers {
|
|
|
54
67
|
// @ts-ignore
|
|
55
68
|
const json = inContext[property];
|
|
56
69
|
return self.Walk.Object(json, iterator, options);
|
|
57
|
-
}
|
|
70
|
+
},
|
|
58
71
|
};
|
|
59
72
|
}
|
|
60
73
|
static _changeValue(json, lodahPath, simpleChange = false, options) {
|
|
@@ -81,11 +94,14 @@ class Helpers {
|
|
|
81
94
|
static _prepareParams(lodashPath) {
|
|
82
95
|
const contextPath = this._Helpers.Path.getContextPath(lodashPath);
|
|
83
96
|
let property = this._Helpers.Path.getPropertyPath(lodashPath, contextPath);
|
|
84
|
-
if (_.isString(property) &&
|
|
97
|
+
if (_.isString(property) &&
|
|
98
|
+
property.trim() !== '' &&
|
|
99
|
+
!_.isNaN(Number(property))) {
|
|
85
100
|
property = Number(property);
|
|
86
101
|
}
|
|
87
102
|
return {
|
|
88
|
-
contextPath,
|
|
103
|
+
contextPath,
|
|
104
|
+
property,
|
|
89
105
|
};
|
|
90
106
|
}
|
|
91
107
|
static get _Helpers() {
|
|
@@ -94,11 +110,11 @@ class Helpers {
|
|
|
94
110
|
return {
|
|
95
111
|
// @ts-ignore
|
|
96
112
|
getPropertyPath(lodahPath, contetPath) {
|
|
97
|
-
return
|
|
113
|
+
return lodahPath
|
|
98
114
|
.replace(contetPath, '')
|
|
99
115
|
.replace(/^\./, '')
|
|
100
116
|
.replace(/\[/, '')
|
|
101
|
-
.replace(/\]/, '')
|
|
117
|
+
.replace(/\]/, '');
|
|
102
118
|
},
|
|
103
119
|
getContextPath(p) {
|
|
104
120
|
let res;
|
|
@@ -109,20 +125,22 @@ class Helpers {
|
|
|
109
125
|
res = p.replace(/\.([a-zA-Z0-9]|\$|\_|\@|\-|\/|\:)+$/, '');
|
|
110
126
|
}
|
|
111
127
|
return res === p ? '' : res;
|
|
112
|
-
}
|
|
128
|
+
},
|
|
113
129
|
};
|
|
114
|
-
}
|
|
130
|
+
},
|
|
115
131
|
};
|
|
116
132
|
}
|
|
117
133
|
static _shoudlReturn(include = [], exclude = [], lodashPath) {
|
|
118
134
|
let res = false;
|
|
119
135
|
if (lodashPath.replace(/^\[(\'|\")?[0-9]*(\'|\")?\]/, '').trim() !== '') {
|
|
120
136
|
lodashPath = lodashPath.replace(/^\[(\'|\")?[0-9]*(\'|\")?\]\./, '');
|
|
121
|
-
res =
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
137
|
+
res =
|
|
138
|
+
(_.isArray(include) &&
|
|
139
|
+
include.length > 0 &&
|
|
140
|
+
!include.find(p => lodashPath.startsWith(p))) ||
|
|
141
|
+
(_.isArray(exclude) &&
|
|
142
|
+
exclude.length > 0 &&
|
|
143
|
+
!!exclude.find(p => lodashPath.startsWith(p)));
|
|
126
144
|
}
|
|
127
145
|
return res;
|
|
128
146
|
}
|
|
@@ -184,7 +202,7 @@ class Helpers {
|
|
|
184
202
|
if (inDB && CLASS.OBJECT(inDB.target).isEqual(obj)) {
|
|
185
203
|
const circ = {
|
|
186
204
|
pathToObj: lodashPath,
|
|
187
|
-
circuralTargetPath: inDB.path
|
|
205
|
+
circuralTargetPath: inDB.path,
|
|
188
206
|
};
|
|
189
207
|
// @ts-ignore
|
|
190
208
|
options.circural.push(circ);
|
|
@@ -193,7 +211,7 @@ class Helpers {
|
|
|
193
211
|
else {
|
|
194
212
|
_.set(db, p, {
|
|
195
213
|
path: lodashPath,
|
|
196
|
-
target: obj
|
|
214
|
+
target: obj,
|
|
197
215
|
});
|
|
198
216
|
}
|
|
199
217
|
}
|
|
@@ -203,7 +221,7 @@ class Helpers {
|
|
|
203
221
|
if (!_.isUndefined(inStack)) {
|
|
204
222
|
const circ = {
|
|
205
223
|
pathToObj: lodashPath,
|
|
206
|
-
circuralTargetPath: inStack.path
|
|
224
|
+
circuralTargetPath: inStack.path,
|
|
207
225
|
};
|
|
208
226
|
// @ts-ignore
|
|
209
227
|
options.circural.push(circ);
|
|
@@ -213,7 +231,7 @@ class Helpers {
|
|
|
213
231
|
// @ts-ignore
|
|
214
232
|
stack.push({
|
|
215
233
|
path: lodashPath,
|
|
216
|
-
target: obj
|
|
234
|
+
target: obj,
|
|
217
235
|
});
|
|
218
236
|
}
|
|
219
237
|
}
|
|
@@ -306,10 +324,13 @@ class Helpers {
|
|
|
306
324
|
for (const key in obj) {
|
|
307
325
|
if (_.isObject(obj) && obj.hasOwnProperty(key)) {
|
|
308
326
|
_.pull(allKeys, key);
|
|
309
|
-
|
|
327
|
+
let newPropKey = key;
|
|
310
328
|
options.isGetter = false;
|
|
329
|
+
if (newPropKey.includes('.')) {
|
|
330
|
+
newPropKey = `['${newPropKey}']`;
|
|
331
|
+
}
|
|
311
332
|
// @ts-ignore
|
|
312
|
-
this._walk(json, obj[
|
|
333
|
+
this._walk(json, obj[newPropKey], iterator, `${lodashPath === '' ? '' : `${lodashPath}.`}${newPropKey}`, options, depthLevel + 1);
|
|
313
334
|
}
|
|
314
335
|
}
|
|
315
336
|
if (walkGetters) {
|
|
@@ -319,7 +340,7 @@ class Helpers {
|
|
|
319
340
|
// @ts-ignore
|
|
320
341
|
options.isGetter = true;
|
|
321
342
|
// @ts-ignore
|
|
322
|
-
this._walk(json, obj[key], iterator, `${
|
|
343
|
+
this._walk(json, obj[key], iterator, `${lodashPath === '' ? '' : `${lodashPath}.`}${key}`, options, depthLevel + 1);
|
|
323
344
|
}
|
|
324
345
|
}
|
|
325
346
|
}
|
|
@@ -335,8 +356,9 @@ class Helpers {
|
|
|
335
356
|
}
|
|
336
357
|
const walk = {
|
|
337
358
|
Object: Helpers.Walk.Object,
|
|
338
|
-
ObjectBy: Helpers.Walk.ObjectBy
|
|
359
|
+
ObjectBy: Helpers.Walk.ObjectBy,
|
|
339
360
|
};
|
|
361
|
+
;
|
|
340
362
|
({}); // @--end-of-file-for-module=lodash-walk-object lib/index.ts
|
|
341
363
|
|
|
342
364
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lodash-walk-object.mjs","sources":["../../../tmp-libs-for-dist-websql/lodash-walk-object/projects/lodash-walk-object/src/lib/models.ts","../../../tmp-libs-for-dist-websql/lodash-walk-object/projects/lodash-walk-object/src/lib/index.ts","../../../tmp-libs-for-dist-websql/lodash-walk-object/projects/lodash-walk-object/src/lodash-walk-object.ts"],"sourcesContent":["\n\nexport namespace Models {\n\n export type InDBType = { target: any; path: string; };\n export type Circ = { pathToObj: string; circuralTargetPath: string; };\n\n\n // @ts-ignore\n export type Ver = { v: any; p: string; parent: Ver; isGetter?: boolean; }\n\n export interface StartIteratorOptions {\n walkGetters?: boolean;\n\n /**\n * Default in breadhTwalk\n */\n checkCircural?: boolean;\n breadthWalk?: boolean;\n include?: string[];\n exclude?: string[];\n }\n\n export interface AdditionalIteratorOptions extends StartIteratorOptions {\n skipObject?: () => void;\n isGetter?: boolean;\n /**\n * Breadth walk will skip content of circural objects\n */\n isCircural?: boolean;\n exit?: () => void;\n\n }\n\n export interface InternalValues extends AdditionalIteratorOptions {\n db?: any;\n stack?: any[];\n circural?: Circ[];\n hasIterator?: boolean;\n _valueChanged: boolean;\n _skip: boolean;\n _exit: boolean;\n }\n}\n\n ;({}); // @--end-of-file-for-module=lodash-walk-object lib/models.ts","\n\nimport { _ } from 'tnp-core/websql';\nimport { CLASS } from 'typescript-class-helpers/websql';\n\nimport { Models } from './models';\nexport * from './models';\n\nfunction findChildren(ver: Models.Ver, lp: string, walkGetters: boolean): Models.Ver[] {\n\n const obj = ver.v\n if (_.isArray(obj)) {\n return obj.map((v, i) => {\n return { v, p: `${lp}[${i}]`, parent: ver, isGetter: false }\n });\n } else if (_.isObject(obj)) {\n\n const allKeys = !walkGetters ? [] : Object.getOwnPropertyNames(obj);\n const children: Models.Ver[] = [];\n for (const key in obj) {\n if (_.isObject(obj) && _.isFunction(obj.hasOwnProperty) && obj.hasOwnProperty(key)) {\n _.pull(allKeys, key)\n children.push({ v: obj[key], p: `${(lp === '') ? '' : `${lp}.`}${key}`, parent: ver, isGetter: false })\n }\n }\n if (walkGetters) {\n for (let index = 0; index < allKeys.length; index++) {\n if (_.isObject(obj)) {\n const key = allKeys[index];\n children.push({ v: obj[key], p: `${(lp === '') ? '' : `${lp}.`}${key}`, parent: ver, isGetter: true })\n }\n }\n }\n return children;\n }\n return [];\n}\n\n\n\nexport type Iterator = (value: any,\n lodashPath: string,\n // @ts-ignore\n changeValueTo: (newValue) => void,\n options?: Models.AdditionalIteratorOptions\n\n) => void\nexport class Helpers {\n\n public static get Walk() {\n const self = this;\n return {\n Object(json: Object, iterator: Iterator, optionsOrWalkGettersValue?: Models.StartIteratorOptions) {\n\n if (_.isUndefined(optionsOrWalkGettersValue)) {\n optionsOrWalkGettersValue = {}\n }\n\n (optionsOrWalkGettersValue as Models.InternalValues).hasIterator = _.isFunction(iterator)\n\n if (_.isUndefined(optionsOrWalkGettersValue.breadthWalk)) {\n optionsOrWalkGettersValue.breadthWalk = false;\n }\n\n let {\n circural\n } = self._walk(json, json, iterator, void 0, optionsOrWalkGettersValue as any)\n\n return { circs: circural }\n },\n ObjectBy(property: string, inContext: Object, iterator: Iterator, options?: Models.StartIteratorOptions) {\n if (_.isFunction(iterator)) {\n iterator(inContext, '', self._changeValue(inContext, property, true)) // TODO Add optoins\n }\n // @ts-ignore\n const json = inContext[property]\n return self.Walk.Object(json, iterator, options)\n }\n }\n }\n\n private static _changeValue(json: Object, lodahPath: string, simpleChange = false, options?: Models.InternalValues) {\n\n var { contextPath, property } = this._prepareParams(lodahPath);\n var context = _.get(json, contextPath);\n\n return (newValue: any) => {\n if (contextPath === '') {\n simpleChange = true;\n }\n\n if (simpleChange) {\n // @ts-ignore\n json[property] = newValue;\n } else {\n\n\n if (context) {\n context[property] = newValue;\n }\n }\n if (options) {\n options._valueChanged = true;\n }\n }\n }\n\n private static _prepareParams(lodashPath: string) {\n\n const contextPath = this._Helpers.Path.getContextPath(lodashPath);\n\n\n let property = this._Helpers.Path.getPropertyPath(lodashPath, contextPath);\n\n if (_.isString(property) && property.trim() !== '' && !_.isNaN(Number(property))) {\n property = Number(property)\n }\n return {\n contextPath, property\n }\n }\n\n private static get _Helpers() {\n return {\n get Path() {\n return {\n // @ts-ignore\n getPropertyPath(lodahPath, contetPath) {\n return (lodahPath\n .replace(contetPath, '')\n .replace(/^\\./, '')\n .replace(/\\[/, '')\n .replace(/\\]/, ''))\n },\n getContextPath(p: string) {\n let res: string;\n if (p.endsWith(']')) {\n res = p.replace(/\\[(\\\"|\\')?[0-9]+(\\\"|\\')?\\]$/, '')\n } else {\n res = p.replace(/\\.([a-zA-Z0-9]|\\$|\\_|\\@|\\-|\\/|\\:)+$/, '')\n }\n return res === p ? '' : res;\n }\n }\n }\n }\n }\n\n private static _shoudlReturn(include = [], exclude = [], lodashPath: string) {\n let res = false;\n if (lodashPath.replace(/^\\[(\\'|\\\")?[0-9]*(\\'|\\\")?\\]/, '').trim() !== '') {\n lodashPath = lodashPath.replace(/^\\[(\\'|\\\")?[0-9]*(\\'|\\\")?\\]\\./, '')\n res = (\n (_.isArray(include) && include.length > 0\n && !include.find(p => lodashPath.startsWith(p)))\n ||\n (_.isArray(exclude) && exclude.length > 0\n && !!exclude.find(p => lodashPath.startsWith(p)))\n )\n }\n\n return res;\n }\n\n // @ts-ignore\n private static prepareOptions(options: Models.InternalValues, obj, lodashPath) {\n\n if (options._exit) {\n return;\n }\n\n if (_.isUndefined(options.walkGetters)) {\n options.walkGetters = true;\n }\n\n if (_.isUndefined(options.checkCircural)) {\n options.checkCircural = false;\n }\n\n if (_.isUndefined(options.isGetter)) {\n // @ts-ignore\n options.isGetter = false;\n }\n\n if (_.isUndefined(options._valueChanged)) {\n options._valueChanged = false;\n }\n\n if (_.isUndefined(options._exit)) {\n // @ts-ignore\n options._exit = false;\n }\n\n if (_.isUndefined(options.exit)) {\n options.exit = () => {\n options._exit = true;\n }\n }\n\n if (_.isUndefined(options._skip)) {\n // @ts-ignore\n options._skip = false;\n }\n\n if (_.isUndefined(options.skipObject)) {\n options.skipObject = () => {\n options._skip = true;\n }\n }\n\n if (options.checkCircural) {\n if (_.isUndefined(options.db)) {\n options.db = {}\n }\n\n if (_.isUndefined(options.stack)) {\n options.stack = []\n }\n\n if (_.isUndefined(options.circural)) {\n options.circural = []\n }\n }\n\n const { db, stack } = options;\n options.isCircural = false;\n\n if (options.checkCircural && _.isObject(obj)) {\n let indexValue = CLASS.OBJECT(obj).indexValue\n if (CLASS.OBJECT(obj).isClassObject && !_.isUndefined(indexValue)) {\n let className = CLASS.getNameFromObject(obj);\n let p = `${className}.id_${indexValue}`;\n const inDB: Models.InDBType = _.get(db, p);\n\n if (inDB && CLASS.OBJECT(inDB.target).isEqual(obj)) {\n const circ: Models.Circ = {\n pathToObj: lodashPath,\n circuralTargetPath: inDB.path\n }\n // @ts-ignore\n options.circural.push(circ)\n options.isCircural = true;\n } else {\n _.set(db, p, {\n path: lodashPath,\n target: obj\n } as Models.InDBType)\n }\n\n } else {\n // @ts-ignore\n const inStack = stack.find((c: Models.InDBType) => c.target == obj);\n\n if (!_.isUndefined(inStack)) {\n const circ: Models.Circ = {\n pathToObj: lodashPath,\n circuralTargetPath: inStack.path\n }\n // @ts-ignore\n options.circural.push(circ)\n options.isCircural = true;\n } else {\n // @ts-ignore\n stack.push({\n path: lodashPath,\n target: obj\n } as Models.InDBType);\n }\n\n }\n }\n return options;\n }\n\n private static _walk(json: Object, obj: Object, iterator: Iterator, lodashPath = '',\n options?: Models.InternalValues, depthLevel = 0) {\n\n if (!options) {\n options = {} as any;\n }\n\n // @ts-ignore\n if (!options.breadthWalk) {\n // @ts-ignore\n options = this.prepareOptions(options, obj, lodashPath)\n\n // @ts-ignore\n if (this._shoudlReturn(options.include, options.exclude, lodashPath)) {\n return;\n }\n\n // @ts-ignore\n if (options.hasIterator && lodashPath !== '') {\n iterator(obj, lodashPath, this._changeValue(json, lodashPath, false, options), options)\n }\n\n // @ts-ignore\n if (options._valueChanged) {\n obj = _.get(json, lodashPath)\n }\n options._valueChanged = false;\n\n if (options.isCircural) {\n options._skip = true;\n }\n\n if (options._skip) {\n // @ts-ignore\n options._skip = false;\n return\n }\n }\n\n\n\n if (options.breadthWalk) {\n\n let queue: Models.Ver[] = [{ v: json, p: lodashPath, parent: void 0 }];\n\n\n while (queue.length > 0) {\n\n const ver = queue.shift();\n\n\n\n\n\n // @ts-ignore\n if (this._shoudlReturn(options.include, options.exclude, ver.p)) {\n\n\n continue;\n }\n\n\n\n // @ts-ignore\n let { v, p } = ver;\n // @ts-ignore\n options = this.prepareOptions(options, v, p)\n\n if (options._exit) {\n console.log('EXIT')\n return options;\n }\n if (options.hasIterator && p !== '') {\n iterator(v, p, this._changeValue(json, p, false, options), options);\n }\n\n // @ts-ignore\n if (options._valueChanged) {\n ver.v = _.get(json, p);\n }\n options._valueChanged = false;\n\n if (options.isCircural) {\n\n continue;\n }\n\n if (options._skip) {\n // @ts-ignore\n options._skip = false;\n\n continue;\n }\n\n if (_.isArray(v)) {\n // @ts-ignore\n queue = queue.concat(findChildren(ver, p, options.walkGetters))\n } else if (_.isObject(v)) {\n // @ts-ignore\n queue = queue.concat(findChildren(ver, p, options.walkGetters))\n }\n }\n\n } else {\n // @ts-ignore\n const { walkGetters } = options;\n\n if (Array.isArray(obj)) {\n obj.forEach((o, i) => {\n // @ts-ignore\n this._walk(json, obj[i], iterator, `${lodashPath}[${i}]`, options, depthLevel + 1)\n })\n\n } else if (_.isObject(obj)) {\n const allKeys = !walkGetters ? [] : Object.getOwnPropertyNames(obj);\n for (const key in obj) {\n if (_.isObject(obj) && obj.hasOwnProperty(key)) {\n _.pull(allKeys, key)\n\n // @ts-ignore\n options.isGetter = false;\n // @ts-ignore\n this._walk(json, obj[key], iterator, `${(lodashPath === '') ? '' : `${lodashPath}.`}${key}`, options, depthLevel + 1)\n }\n }\n if (walkGetters) {\n for (let index = 0; index < allKeys.length; index++) {\n if (_.isObject(obj)) {\n const key = allKeys[index];\n\n // @ts-ignore\n options.isGetter = true;\n // @ts-ignore\n this._walk(json, obj[key], iterator, `${(lodashPath === '') ? '' : `${lodashPath}.`}${key}`, options, depthLevel + 1)\n }\n }\n }\n }\n\n // @ts-ignore\n if (options._exit && json === obj) {\n // @ts-ignore\n options._exit = false;\n }\n\n }\n\n return options;\n }\n\n}\n\nexport const walk = {\n Object: Helpers.Walk.Object,\n ObjectBy: Helpers.Walk.ObjectBy\n}\n\n ;({}); // @--end-of-file-for-module=lodash-walk-object lib/index.ts","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lodash-walk-object.mjs","sources":["../../../tmp-libs-for-dist-websql/lodash-walk-object/projects/lodash-walk-object/src/lib/models.ts","../../../tmp-libs-for-dist-websql/lodash-walk-object/projects/lodash-walk-object/src/lib/index.ts","../../../tmp-libs-for-dist-websql/lodash-walk-object/projects/lodash-walk-object/src/lodash-walk-object.ts"],"sourcesContent":["\n\nexport namespace Models {\n\n export type InDBType = { target: any; path: string; };\n export type Circ = { pathToObj: string; circuralTargetPath: string; };\n\n\n // @ts-ignore\n export type Ver = { v: any; p: string; parent: Ver; isGetter?: boolean; }\n\n export interface StartIteratorOptions {\n walkGetters?: boolean;\n\n /**\n * Default in breadhTwalk\n */\n checkCircural?: boolean;\n breadthWalk?: boolean;\n include?: string[];\n exclude?: string[];\n }\n\n export interface AdditionalIteratorOptions extends StartIteratorOptions {\n skipObject?: () => void;\n isGetter?: boolean;\n /**\n * Breadth walk will skip content of circural objects\n */\n isCircural?: boolean;\n exit?: () => void;\n\n }\n\n export interface InternalValues extends AdditionalIteratorOptions {\n db?: any;\n stack?: any[];\n circural?: Circ[];\n hasIterator?: boolean;\n _valueChanged: boolean;\n _skip: boolean;\n _exit: boolean;\n }\n}\n\n ;({}); // @--end-of-file-for-module=lodash-walk-object lib/models.ts","\n\nimport { _ } from 'tnp-core/websql';\nimport { CLASS } from 'typescript-class-helpers/websql';\n\nimport { Models } from './models';\nexport * from './models';\n\nfunction findChildren(\n ver: Models.Ver,\n lp: string,\n walkGetters: boolean,\n): Models.Ver[] {\n const obj = ver.v;\n if (_.isArray(obj)) {\n return obj.map((v, i) => {\n return { v, p: `${lp}[${i}]`, parent: ver, isGetter: false };\n });\n } else if (_.isObject(obj)) {\n const allKeys = !walkGetters ? [] : Object.getOwnPropertyNames(obj);\n const children: Models.Ver[] = [];\n for (const key in obj) {\n if (\n _.isObject(obj) &&\n _.isFunction(obj.hasOwnProperty) &&\n obj.hasOwnProperty(key)\n ) {\n _.pull(allKeys, key);\n children.push({\n v: obj[key],\n p: `${lp === '' ? '' : `${lp}.`}${key}`,\n parent: ver,\n isGetter: false,\n });\n }\n }\n if (walkGetters) {\n for (let index = 0; index < allKeys.length; index++) {\n if (_.isObject(obj)) {\n const key = allKeys[index];\n children.push({\n v: obj[key],\n p: `${lp === '' ? '' : `${lp}.`}${key}`,\n parent: ver,\n isGetter: true,\n });\n }\n }\n }\n return children;\n }\n return [];\n}\n\nexport type Iterator = (\n value: any,\n lodashPath: string,\n // @ts-ignore\n changeValueTo: (newValue) => void,\n options?: Models.AdditionalIteratorOptions,\n) => void;\nexport class Helpers {\n public static get Walk() {\n const self = this;\n return {\n Object(\n json: Object,\n iterator: Iterator,\n optionsOrWalkGettersValue?: Models.StartIteratorOptions,\n ) {\n if (_.isUndefined(optionsOrWalkGettersValue)) {\n optionsOrWalkGettersValue = {};\n }\n\n (optionsOrWalkGettersValue as Models.InternalValues).hasIterator =\n _.isFunction(iterator);\n\n if (_.isUndefined(optionsOrWalkGettersValue.breadthWalk)) {\n optionsOrWalkGettersValue.breadthWalk = false;\n }\n\n let { circural } = self._walk(\n json,\n json,\n iterator,\n void 0,\n optionsOrWalkGettersValue as any,\n );\n\n return { circs: circural };\n },\n ObjectBy(\n property: string,\n inContext: Object,\n iterator: Iterator,\n options?: Models.StartIteratorOptions,\n ) {\n if (_.isFunction(iterator)) {\n iterator(inContext, '', self._changeValue(inContext, property, true)); // TODO Add optoins\n }\n // @ts-ignore\n const json = inContext[property];\n return self.Walk.Object(json, iterator, options);\n },\n };\n }\n\n private static _changeValue(\n json: Object,\n lodahPath: string,\n simpleChange = false,\n options?: Models.InternalValues,\n ) {\n var { contextPath, property } = this._prepareParams(lodahPath);\n var context = _.get(json, contextPath);\n\n return (newValue: any) => {\n if (contextPath === '') {\n simpleChange = true;\n }\n\n if (simpleChange) {\n // @ts-ignore\n json[property] = newValue;\n } else {\n\n\n if (context) {\n context[property] = newValue;\n }\n }\n if (options) {\n options._valueChanged = true;\n }\n };\n }\n\n private static _prepareParams(lodashPath: string) {\n\n const contextPath = this._Helpers.Path.getContextPath(lodashPath);\n\n\n let property = this._Helpers.Path.getPropertyPath(lodashPath, contextPath);\n\n if (\n _.isString(property) &&\n property.trim() !== '' &&\n !_.isNaN(Number(property))\n ) {\n property = Number(property);\n }\n return {\n contextPath,\n property,\n };\n }\n\n private static get _Helpers() {\n return {\n get Path() {\n return {\n // @ts-ignore\n getPropertyPath(lodahPath, contetPath) {\n return lodahPath\n .replace(contetPath, '')\n .replace(/^\\./, '')\n .replace(/\\[/, '')\n .replace(/\\]/, '');\n },\n getContextPath(p: string) {\n let res: string;\n if (p.endsWith(']')) {\n res = p.replace(/\\[(\\\"|\\')?[0-9]+(\\\"|\\')?\\]$/, '');\n } else {\n res = p.replace(/\\.([a-zA-Z0-9]|\\$|\\_|\\@|\\-|\\/|\\:)+$/, '');\n }\n return res === p ? '' : res;\n },\n };\n },\n };\n }\n\n private static _shoudlReturn(include = [], exclude = [], lodashPath: string) {\n let res = false;\n if (lodashPath.replace(/^\\[(\\'|\\\")?[0-9]*(\\'|\\\")?\\]/, '').trim() !== '') {\n lodashPath = lodashPath.replace(/^\\[(\\'|\\\")?[0-9]*(\\'|\\\")?\\]\\./, '');\n res =\n (_.isArray(include) &&\n include.length > 0 &&\n !include.find(p => lodashPath.startsWith(p))) ||\n (_.isArray(exclude) &&\n exclude.length > 0 &&\n !!exclude.find(p => lodashPath.startsWith(p)));\n }\n\n return res;\n }\n\n // @ts-ignore\n private static prepareOptions(\n options: Models.InternalValues,\n obj,\n lodashPath,\n ) {\n if (options._exit) {\n return;\n }\n\n if (_.isUndefined(options.walkGetters)) {\n options.walkGetters = true;\n }\n\n if (_.isUndefined(options.checkCircural)) {\n options.checkCircural = false;\n }\n\n if (_.isUndefined(options.isGetter)) {\n // @ts-ignore\n options.isGetter = false;\n }\n\n if (_.isUndefined(options._valueChanged)) {\n options._valueChanged = false;\n }\n\n if (_.isUndefined(options._exit)) {\n // @ts-ignore\n options._exit = false;\n }\n\n if (_.isUndefined(options.exit)) {\n options.exit = () => {\n options._exit = true;\n };\n }\n\n if (_.isUndefined(options._skip)) {\n // @ts-ignore\n options._skip = false;\n }\n\n if (_.isUndefined(options.skipObject)) {\n options.skipObject = () => {\n options._skip = true;\n };\n }\n\n if (options.checkCircural) {\n if (_.isUndefined(options.db)) {\n options.db = {};\n }\n\n if (_.isUndefined(options.stack)) {\n options.stack = [];\n }\n\n if (_.isUndefined(options.circural)) {\n options.circural = [];\n }\n }\n\n const { db, stack } = options;\n options.isCircural = false;\n\n if (options.checkCircural && _.isObject(obj)) {\n let indexValue = CLASS.OBJECT(obj).indexValue;\n if (CLASS.OBJECT(obj).isClassObject && !_.isUndefined(indexValue)) {\n let className = CLASS.getNameFromObject(obj);\n let p = `${className}.id_${indexValue}`;\n const inDB: Models.InDBType = _.get(db, p);\n\n if (inDB && CLASS.OBJECT(inDB.target).isEqual(obj)) {\n const circ: Models.Circ = {\n pathToObj: lodashPath,\n circuralTargetPath: inDB.path,\n };\n // @ts-ignore\n options.circural.push(circ);\n options.isCircural = true;\n } else {\n _.set(db, p, {\n path: lodashPath,\n target: obj,\n } as Models.InDBType);\n }\n } else {\n // @ts-ignore\n const inStack = stack.find((c: Models.InDBType) => c.target == obj);\n\n if (!_.isUndefined(inStack)) {\n const circ: Models.Circ = {\n pathToObj: lodashPath,\n circuralTargetPath: inStack.path,\n };\n // @ts-ignore\n options.circural.push(circ);\n options.isCircural = true;\n } else {\n // @ts-ignore\n stack.push({\n path: lodashPath,\n target: obj,\n } as Models.InDBType);\n }\n }\n }\n return options;\n }\n\n private static _walk(\n json: Object,\n obj: Object,\n iterator: Iterator,\n lodashPath = '',\n options?: Models.InternalValues,\n depthLevel = 0,\n ) {\n if (!options) {\n options = {} as any;\n }\n\n // @ts-ignore\n if (!options.breadthWalk) {\n // @ts-ignore\n options = this.prepareOptions(options, obj, lodashPath);\n\n // @ts-ignore\n if (this._shoudlReturn(options.include, options.exclude, lodashPath)) {\n return;\n }\n\n // @ts-ignore\n if (options.hasIterator && lodashPath !== '') {\n iterator(\n obj,\n lodashPath,\n this._changeValue(json, lodashPath, false, options),\n options,\n );\n }\n\n // @ts-ignore\n if (options._valueChanged) {\n obj = _.get(json, lodashPath);\n }\n options._valueChanged = false;\n\n if (options.isCircural) {\n options._skip = true;\n }\n\n if (options._skip) {\n // @ts-ignore\n options._skip = false;\n return;\n }\n }\n\n if (options.breadthWalk) {\n let queue: Models.Ver[] = [{ v: json, p: lodashPath, parent: void 0 }];\n\n\n while (queue.length > 0) {\n const ver = queue.shift();\n\n\n\n\n\n // @ts-ignore\n if (this._shoudlReturn(options.include, options.exclude, ver.p)) {\n\n\n continue;\n }\n\n\n\n // @ts-ignore\n let { v, p } = ver;\n // @ts-ignore\n options = this.prepareOptions(options, v, p);\n\n if (options._exit) {\n console.log('EXIT');\n return options;\n }\n if (options.hasIterator && p !== '') {\n iterator(v, p, this._changeValue(json, p, false, options), options);\n }\n\n // @ts-ignore\n if (options._valueChanged) {\n ver.v = _.get(json, p);\n }\n options._valueChanged = false;\n\n if (options.isCircural) {\n\n continue;\n }\n\n if (options._skip) {\n // @ts-ignore\n options._skip = false;\n\n continue;\n }\n\n if (_.isArray(v)) {\n // @ts-ignore\n queue = queue.concat(findChildren(ver, p, options.walkGetters));\n } else if (_.isObject(v)) {\n // @ts-ignore\n queue = queue.concat(findChildren(ver, p, options.walkGetters));\n }\n }\n } else {\n // @ts-ignore\n const { walkGetters } = options;\n\n if (Array.isArray(obj)) {\n obj.forEach((o, i) => {\n // @ts-ignore\n this._walk(\n json,\n obj[i],\n iterator,\n `${lodashPath}[${i}]`,\n options,\n depthLevel + 1,\n );\n });\n } else if (_.isObject(obj)) {\n const allKeys = !walkGetters ? [] : Object.getOwnPropertyNames(obj);\n for (const key in obj) {\n\n if (_.isObject(obj) && obj.hasOwnProperty(key)) {\n _.pull(allKeys, key);\n\n let newPropKey = key;\n options.isGetter = false;\n if (newPropKey.includes('.')) {\n newPropKey = `['${newPropKey}']`;\n }\n // @ts-ignore\n this._walk(\n json,\n obj[newPropKey],\n iterator,\n `${lodashPath === '' ? '' : `${lodashPath}.`}${newPropKey}`,\n options,\n depthLevel + 1,\n );\n }\n }\n if (walkGetters) {\n for (let index = 0; index < allKeys.length; index++) {\n if (_.isObject(obj)) {\n const key = allKeys[index];\n\n // @ts-ignore\n options.isGetter = true;\n // @ts-ignore\n this._walk(\n json,\n obj[key],\n iterator,\n `${lodashPath === '' ? '' : `${lodashPath}.`}${key}`,\n options,\n depthLevel + 1,\n );\n }\n }\n }\n }\n\n // @ts-ignore\n if (options._exit && json === obj) {\n // @ts-ignore\n options._exit = false;\n }\n }\n\n return options;\n }\n}\n\nexport const walk = {\n Object: Helpers.Walk.Object,\n ObjectBy: Helpers.Walk.ObjectBy,\n};\n\n ;({}); // @--end-of-file-for-module=lodash-walk-object lib/index.ts","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|