@apipass/schemas 0.2.1-alpha.3 → 0.2.1-test.1
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/apipass-schemas.d.ts +5 -5
- package/assets/css/buttons.scss +112 -112
- package/assets/css/colors.scss +34 -34
- package/assets/css/fonts.scss +24 -24
- package/assets/css/inputs.scss +197 -197
- package/assets/css/pt_sans.scss +143 -143
- package/assets/css/spacing.scss +28 -28
- package/assets/css/texts.scss +18 -18
- package/base-schema.component.d.ts +11 -11
- package/bundles/apipass-schemas.umd.js +1926 -1921
- package/bundles/apipass-schemas.umd.js.map +1 -1
- package/bundles/apipass-schemas.umd.min.js +1 -1
- package/bundles/apipass-schemas.umd.min.js.map +1 -1
- package/esm2015/apipass-schemas.js +4 -4
- package/esm2015/base-schema.component.js +30 -30
- package/esm2015/public-api.js +17 -17
- package/esm2015/schema-custom-attributes/schema-custom-attributes.js +177 -177
- package/esm2015/schema-fields.service.js +77 -77
- package/esm2015/schema-form/schema-array/array-session/array-session.js +158 -158
- package/esm2015/schema-form/schema-array/schema-array.js +196 -195
- package/esm2015/schema-form/schema-form.js +73 -72
- package/esm2015/schema-form/schema-input/field-render/field-render.js +72 -72
- package/esm2015/schema-form/schema-input/input-render/boolean-input/boolean-input.component.js +45 -45
- package/esm2015/schema-form/schema-input/input-render/input-render.js +124 -124
- package/esm2015/schema-form/schema-input/input-render/number-input/number-input.component.js +43 -43
- package/esm2015/schema-form/schema-input/schema-input.js +99 -98
- package/esm2015/schema-form/schema-object/schema-object.js +95 -94
- package/esm2015/schema-form-render.js +97 -96
- package/esm2015/schema-form-render.module.js +121 -121
- package/esm2015/schema-validation-field.js +15 -15
- package/esm2015/struct.utils.js +9 -9
- package/esm2015/type-script-compile.js +77 -77
- package/fesm2015/apipass-schemas.js +1363 -1358
- package/fesm2015/apipass-schemas.js.map +1 -1
- package/package.json +1 -2
- package/public-api.d.ts +16 -16
- package/schema-custom-attributes/schema-custom-attributes.d.ts +15 -15
- package/schema-fields.service.d.ts +12 -12
- package/schema-form/schema-array/array-session/array-session.d.ts +17 -17
- package/schema-form/schema-array/schema-array.d.ts +18 -18
- package/schema-form/schema-form.d.ts +17 -17
- package/schema-form/schema-input/field-render/field-render.d.ts +15 -15
- package/schema-form/schema-input/input-render/boolean-input/boolean-input.component.d.ts +13 -13
- package/schema-form/schema-input/input-render/input-render.d.ts +19 -19
- package/schema-form/schema-input/input-render/number-input/number-input.component.d.ts +13 -13
- package/schema-form/schema-input/schema-input.d.ts +14 -14
- package/schema-form/schema-object/schema-object.d.ts +20 -20
- package/schema-form-render.d.ts +17 -17
- package/schema-form-render.module.d.ts +22 -22
- package/schema-validation-field.d.ts +17 -17
- package/struct.utils.d.ts +1 -1
- package/type-script-compile.d.ts +10 -10
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
import { FormControl, Validators } from '@angular/forms';
|
|
2
|
-
export class TypeScriptCompile {
|
|
3
|
-
static addItemToFormProperties(formProperties, item, key) {
|
|
4
|
-
if (item.minLength && item.minLength > 0) {
|
|
5
|
-
formProperties[key] = new FormControl([null, [Validators.required]]);
|
|
6
|
-
}
|
|
7
|
-
else {
|
|
8
|
-
formProperties[key] = new FormControl([null]);
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
static compileProperties(input) {
|
|
12
|
-
const compiledProperties = [];
|
|
13
|
-
const formProperties = {};
|
|
14
|
-
let inputData = {};
|
|
15
|
-
const inputToCompile = JSON.parse(JSON.stringify(input));
|
|
16
|
-
if (inputToCompile.properties) {
|
|
17
|
-
if (inputToCompile.type === 'array') {
|
|
18
|
-
inputData = [];
|
|
19
|
-
}
|
|
20
|
-
if (inputToCompile.type === 'object') {
|
|
21
|
-
inputData = {};
|
|
22
|
-
}
|
|
23
|
-
inputToCompile.id = 'inputData';
|
|
24
|
-
this.proccessProperties(inputToCompile, formProperties, 'inputData');
|
|
25
|
-
compiledProperties.push(inputToCompile);
|
|
26
|
-
}
|
|
27
|
-
else if (inputToCompile.type === 'array') {
|
|
28
|
-
inputToCompile.id = 'inputData';
|
|
29
|
-
inputData = [];
|
|
30
|
-
TypeScriptCompile.addItemToFormProperties(formProperties, inputToCompile, 'inputData');
|
|
31
|
-
compiledProperties.push(inputToCompile);
|
|
32
|
-
}
|
|
33
|
-
else if (!inputToCompile.type) {
|
|
34
|
-
for (let index = 0; index < Object.keys(inputToCompile).length; index++) {
|
|
35
|
-
const key = Object.keys(inputToCompile)[index];
|
|
36
|
-
const item = inputToCompile[key];
|
|
37
|
-
item.id = key;
|
|
38
|
-
if (item.type === 'array') {
|
|
39
|
-
inputData[item.id] = [];
|
|
40
|
-
}
|
|
41
|
-
if (item.type === 'object') {
|
|
42
|
-
inputData[item.id] = {};
|
|
43
|
-
}
|
|
44
|
-
this.proccessProperties(item, formProperties, key);
|
|
45
|
-
compiledProperties.push(item);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
compiledProperties.sort((a, b) => a.propertyOrder - b.propertyOrder);
|
|
49
|
-
return { compiledProperties, formProperties, inputData };
|
|
50
|
-
}
|
|
51
|
-
static proccessProperties(item, formProperties, key) {
|
|
52
|
-
if (this.hasProperties(item)) {
|
|
53
|
-
const arFieldsChild = [];
|
|
54
|
-
for (let indexChild = 0; indexChild < Object.keys(item.properties).length; indexChild++) {
|
|
55
|
-
const keyChild = Object.keys(item.properties)[indexChild];
|
|
56
|
-
const itemChild = item.properties[keyChild];
|
|
57
|
-
itemChild.id = keyChild;
|
|
58
|
-
if (this.hasProperties(itemChild)) {
|
|
59
|
-
this.proccessProperties(itemChild, formProperties, keyChild);
|
|
60
|
-
arFieldsChild.push(itemChild);
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
TypeScriptCompile.addItemToFormProperties(formProperties, itemChild, keyChild);
|
|
64
|
-
arFieldsChild.push(itemChild);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
item.properties = arFieldsChild;
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
TypeScriptCompile.addItemToFormProperties(formProperties, item, key);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
static hasProperties(item) {
|
|
74
|
-
return item.type === 'object' || (item.type === 'array' && item.properties);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { FormControl, Validators } from '@angular/forms';
|
|
2
|
+
export class TypeScriptCompile {
|
|
3
|
+
static addItemToFormProperties(formProperties, item, key) {
|
|
4
|
+
if (item.minLength && item.minLength > 0) {
|
|
5
|
+
formProperties[key] = new FormControl([null, [Validators.required]]);
|
|
6
|
+
}
|
|
7
|
+
else {
|
|
8
|
+
formProperties[key] = new FormControl([null]);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
static compileProperties(input) {
|
|
12
|
+
const compiledProperties = [];
|
|
13
|
+
const formProperties = {};
|
|
14
|
+
let inputData = {};
|
|
15
|
+
const inputToCompile = JSON.parse(JSON.stringify(input));
|
|
16
|
+
if (inputToCompile.properties) {
|
|
17
|
+
if (inputToCompile.type === 'array') {
|
|
18
|
+
inputData = [];
|
|
19
|
+
}
|
|
20
|
+
if (inputToCompile.type === 'object') {
|
|
21
|
+
inputData = {};
|
|
22
|
+
}
|
|
23
|
+
inputToCompile.id = 'inputData';
|
|
24
|
+
this.proccessProperties(inputToCompile, formProperties, 'inputData');
|
|
25
|
+
compiledProperties.push(inputToCompile);
|
|
26
|
+
}
|
|
27
|
+
else if (inputToCompile.type === 'array') {
|
|
28
|
+
inputToCompile.id = 'inputData';
|
|
29
|
+
inputData = [];
|
|
30
|
+
TypeScriptCompile.addItemToFormProperties(formProperties, inputToCompile, 'inputData');
|
|
31
|
+
compiledProperties.push(inputToCompile);
|
|
32
|
+
}
|
|
33
|
+
else if (!inputToCompile.type) {
|
|
34
|
+
for (let index = 0; index < Object.keys(inputToCompile).length; index++) {
|
|
35
|
+
const key = Object.keys(inputToCompile)[index];
|
|
36
|
+
const item = inputToCompile[key];
|
|
37
|
+
item.id = key;
|
|
38
|
+
if (item.type === 'array') {
|
|
39
|
+
inputData[item.id] = [];
|
|
40
|
+
}
|
|
41
|
+
if (item.type === 'object') {
|
|
42
|
+
inputData[item.id] = {};
|
|
43
|
+
}
|
|
44
|
+
this.proccessProperties(item, formProperties, key);
|
|
45
|
+
compiledProperties.push(item);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
compiledProperties.sort((a, b) => a.propertyOrder - b.propertyOrder);
|
|
49
|
+
return { compiledProperties, formProperties, inputData };
|
|
50
|
+
}
|
|
51
|
+
static proccessProperties(item, formProperties, key) {
|
|
52
|
+
if (this.hasProperties(item)) {
|
|
53
|
+
const arFieldsChild = [];
|
|
54
|
+
for (let indexChild = 0; indexChild < Object.keys(item.properties).length; indexChild++) {
|
|
55
|
+
const keyChild = Object.keys(item.properties)[indexChild];
|
|
56
|
+
const itemChild = item.properties[keyChild];
|
|
57
|
+
itemChild.id = keyChild;
|
|
58
|
+
if (this.hasProperties(itemChild)) {
|
|
59
|
+
this.proccessProperties(itemChild, formProperties, keyChild);
|
|
60
|
+
arFieldsChild.push(itemChild);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
TypeScriptCompile.addItemToFormProperties(formProperties, itemChild, keyChild);
|
|
64
|
+
arFieldsChild.push(itemChild);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
item.properties = arFieldsChild;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
TypeScriptCompile.addItemToFormProperties(formProperties, item, key);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
static hasProperties(item) {
|
|
74
|
+
return item.type === 'object' || (item.type === 'array' && item.properties);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1zY3JpcHQtY29tcGlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3NjaGVtYXMvc3JjL3R5cGUtc2NyaXB0LWNvbXBpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RCxNQUFNLE9BQU8saUJBQWlCO0lBRXBCLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxjQUFtQixFQUFFLElBQVMsRUFBRSxHQUFXO1FBQ2hGLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBRTtZQUN4QyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxXQUFXLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3RFO2FBQU07WUFDTCxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQy9DO0lBQ0gsQ0FBQztJQUVNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFVO1FBS3hDLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFDO1FBQzlCLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUMxQixJQUFJLFNBQVMsR0FBUSxFQUFFLENBQUM7UUFDeEIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDekQsSUFBSSxjQUFjLENBQUMsVUFBVSxFQUFFO1lBQzdCLElBQUksY0FBYyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7Z0JBQ25DLFNBQVMsR0FBRyxFQUFFLENBQUM7YUFDaEI7WUFDRCxJQUFJLGNBQWMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO2dCQUNwQyxTQUFTLEdBQUcsRUFBRSxDQUFDO2FBQ2hCO1lBQ0QsY0FBYyxDQUFDLEVBQUUsR0FBRyxXQUFXLENBQUM7WUFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDckUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3pDO2FBQU0sSUFBSSxjQUFjLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtZQUMxQyxjQUFjLENBQUMsRUFBRSxHQUFHLFdBQVcsQ0FBQztZQUNoQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQ2YsaUJBQWlCLENBQUMsdUJBQXVCLENBQUMsY0FBYyxFQUFFLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN2RixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDekM7YUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRTtZQUMvQixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3ZFLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQy9DLE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDakMsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUM7Z0JBRWQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtvQkFDekIsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7aUJBQ3pCO2dCQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7b0JBQzFCLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO2lCQUN6QjtnQkFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDbkQsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQy9CO1NBQ0Y7UUFFRCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBQyxDQUFDO0lBQ3pELENBQUM7SUFFTyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBUyxFQUFFLGNBQWtCLEVBQUUsR0FBUTtRQUN2RSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUIsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLEtBQUssSUFBSSxVQUFVLEdBQUcsQ0FBQyxFQUFFLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUU7Z0JBQ3ZGLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUMxRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxTQUFTLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQztnQkFDeEIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUFFO29CQUNqQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDN0QsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDL0I7cUJBQU07b0JBQ0wsaUJBQWlCLENBQUMsdUJBQXVCLENBQUMsY0FBYyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDL0UsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDL0I7YUFDRjtZQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDO1NBQ2pDO2FBQU07WUFDTCxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3RFO0lBQ0gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBUztRQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Rm9ybUNvbnRyb2wsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBjbGFzcyBUeXBlU2NyaXB0Q29tcGlsZSB7XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGFkZEl0ZW1Ub0Zvcm1Qcm9wZXJ0aWVzKGZvcm1Qcm9wZXJ0aWVzOiBhbnksIGl0ZW06IGFueSwga2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChpdGVtLm1pbkxlbmd0aCAmJiBpdGVtLm1pbkxlbmd0aCA+IDApIHtcclxuICAgICAgZm9ybVByb3BlcnRpZXNba2V5XSA9IG5ldyBGb3JtQ29udHJvbChbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmb3JtUHJvcGVydGllc1trZXldID0gbmV3IEZvcm1Db250cm9sKFtudWxsXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGNvbXBpbGVQcm9wZXJ0aWVzKGlucHV0OiBhbnkpOiB7XHJcbiAgICBjb21waWxlZFByb3BlcnRpZXM6IGFueSxcclxuICAgIGZvcm1Qcm9wZXJ0aWVzOiBhbnksXHJcbiAgICBpbnB1dERhdGE6IGFueVxyXG4gIH0ge1xyXG4gICAgY29uc3QgY29tcGlsZWRQcm9wZXJ0aWVzID0gW107XHJcbiAgICBjb25zdCBmb3JtUHJvcGVydGllcyA9IHt9O1xyXG4gICAgbGV0IGlucHV0RGF0YTogYW55ID0ge307XHJcbiAgICBjb25zdCBpbnB1dFRvQ29tcGlsZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKTtcclxuICAgIGlmIChpbnB1dFRvQ29tcGlsZS5wcm9wZXJ0aWVzKSB7XHJcbiAgICAgIGlmIChpbnB1dFRvQ29tcGlsZS50eXBlID09PSAnYXJyYXknKSB7XHJcbiAgICAgICAgaW5wdXREYXRhID0gW107XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlucHV0VG9Db21waWxlLnR5cGUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgaW5wdXREYXRhID0ge307XHJcbiAgICAgIH1cclxuICAgICAgaW5wdXRUb0NvbXBpbGUuaWQgPSAnaW5wdXREYXRhJztcclxuICAgICAgdGhpcy5wcm9jY2Vzc1Byb3BlcnRpZXMoaW5wdXRUb0NvbXBpbGUsIGZvcm1Qcm9wZXJ0aWVzLCAnaW5wdXREYXRhJyk7XHJcbiAgICAgIGNvbXBpbGVkUHJvcGVydGllcy5wdXNoKGlucHV0VG9Db21waWxlKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wdXRUb0NvbXBpbGUudHlwZSA9PT0gJ2FycmF5Jykge1xyXG4gICAgICBpbnB1dFRvQ29tcGlsZS5pZCA9ICdpbnB1dERhdGEnO1xyXG4gICAgICBpbnB1dERhdGEgPSBbXTtcclxuICAgICAgVHlwZVNjcmlwdENvbXBpbGUuYWRkSXRlbVRvRm9ybVByb3BlcnRpZXMoZm9ybVByb3BlcnRpZXMsIGlucHV0VG9Db21waWxlLCAnaW5wdXREYXRhJyk7XHJcbiAgICAgIGNvbXBpbGVkUHJvcGVydGllcy5wdXNoKGlucHV0VG9Db21waWxlKTtcclxuICAgIH0gZWxzZSBpZiAoIWlucHV0VG9Db21waWxlLnR5cGUpIHtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IE9iamVjdC5rZXlzKGlucHV0VG9Db21waWxlKS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhpbnB1dFRvQ29tcGlsZSlbaW5kZXhdO1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSBpbnB1dFRvQ29tcGlsZVtrZXldO1xyXG4gICAgICAgIGl0ZW0uaWQgPSBrZXk7XHJcblxyXG4gICAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdhcnJheScpIHtcclxuICAgICAgICAgIGlucHV0RGF0YVtpdGVtLmlkXSA9IFtdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIGlucHV0RGF0YVtpdGVtLmlkXSA9IHt9O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnByb2NjZXNzUHJvcGVydGllcyhpdGVtLCBmb3JtUHJvcGVydGllcywga2V5KTtcclxuICAgICAgICBjb21waWxlZFByb3BlcnRpZXMucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbXBpbGVkUHJvcGVydGllcy5zb3J0KChhLCBiKSA9PiBhLnByb3BlcnR5T3JkZXIgLSBiLnByb3BlcnR5T3JkZXIpO1xyXG4gICAgcmV0dXJuIHtjb21waWxlZFByb3BlcnRpZXMsIGZvcm1Qcm9wZXJ0aWVzLCBpbnB1dERhdGF9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgcHJvY2Nlc3NQcm9wZXJ0aWVzKGl0ZW06IGFueSwgZm9ybVByb3BlcnRpZXM6IHt9LCBrZXk6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaGFzUHJvcGVydGllcyhpdGVtKSkge1xyXG4gICAgICBjb25zdCBhckZpZWxkc0NoaWxkID0gW107XHJcbiAgICAgIGZvciAobGV0IGluZGV4Q2hpbGQgPSAwOyBpbmRleENoaWxkIDwgT2JqZWN0LmtleXMoaXRlbS5wcm9wZXJ0aWVzKS5sZW5ndGg7IGluZGV4Q2hpbGQrKykge1xyXG4gICAgICAgIGNvbnN0IGtleUNoaWxkID0gT2JqZWN0LmtleXMoaXRlbS5wcm9wZXJ0aWVzKVtpbmRleENoaWxkXTtcclxuICAgICAgICBjb25zdCBpdGVtQ2hpbGQgPSBpdGVtLnByb3BlcnRpZXNba2V5Q2hpbGRdO1xyXG4gICAgICAgIGl0ZW1DaGlsZC5pZCA9IGtleUNoaWxkO1xyXG4gICAgICAgIGlmICh0aGlzLmhhc1Byb3BlcnRpZXMoaXRlbUNoaWxkKSkge1xyXG4gICAgICAgICAgdGhpcy5wcm9jY2Vzc1Byb3BlcnRpZXMoaXRlbUNoaWxkLCBmb3JtUHJvcGVydGllcywga2V5Q2hpbGQpO1xyXG4gICAgICAgICAgYXJGaWVsZHNDaGlsZC5wdXNoKGl0ZW1DaGlsZCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIFR5cGVTY3JpcHRDb21waWxlLmFkZEl0ZW1Ub0Zvcm1Qcm9wZXJ0aWVzKGZvcm1Qcm9wZXJ0aWVzLCBpdGVtQ2hpbGQsIGtleUNoaWxkKTtcclxuICAgICAgICAgIGFyRmllbGRzQ2hpbGQucHVzaChpdGVtQ2hpbGQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpdGVtLnByb3BlcnRpZXMgPSBhckZpZWxkc0NoaWxkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgVHlwZVNjcmlwdENvbXBpbGUuYWRkSXRlbVRvRm9ybVByb3BlcnRpZXMoZm9ybVByb3BlcnRpZXMsIGl0ZW0sIGtleSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBoYXNQcm9wZXJ0aWVzKGl0ZW06IGFueSk6IGFueSB7XHJcbiAgICByZXR1cm4gaXRlbS50eXBlID09PSAnb2JqZWN0JyB8fCAoaXRlbS50eXBlID09PSAnYXJyYXknICYmIGl0ZW0ucHJvcGVydGllcyk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|