@skyux/docs-tools 8.0.3 → 9.0.0-alpha.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/{esm2020 → esm2022}/docs-tools.module.mjs +15 -15
- package/{esm2020 → esm2022}/modules/anatomy/anatomy-item.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/anatomy/anatomy-thumbnail.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/anatomy/anatomy.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/anatomy/anatomy.module.mjs +15 -15
- package/{esm2020 → esm2022}/modules/code-examples/code-example.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/code-examples/code-examples-editor.service.mjs +4 -4
- package/{esm2020 → esm2022}/modules/code-examples/code-examples.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/code-examples/code-examples.module.mjs +15 -15
- package/{esm2020 → esm2022}/modules/demo/demo-control-panel-checkbox.component.mjs +4 -4
- package/esm2022/modules/demo/demo-control-panel-radio-group.component.mjs +80 -0
- package/{esm2020 → esm2022}/modules/demo/demo-control-panel-section.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/demo/demo-control-panel.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/demo/demo.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/demo/demo.module.mjs +25 -25
- package/{esm2020 → esm2022}/modules/demo-page/demo-page-dom-adapter.service.mjs +4 -4
- package/{esm2020 → esm2022}/modules/demo-page/demo-page-module-info.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/demo-page/demo-page-section.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/demo-page/demo-page-summary.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/demo-page/demo-page-title.service.mjs +4 -4
- package/{esm2020 → esm2022}/modules/demo-page/demo-page-type-definitions.component.mjs +4 -4
- package/esm2022/modules/demo-page/demo-page.component.mjs +185 -0
- package/{esm2020 → esm2022}/modules/demo-page/demo-page.module.mjs +35 -35
- package/{esm2020 → esm2022}/modules/design-guidelines/design-guideline-thumbnail.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/design-guidelines/design-guideline.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/design-guidelines/design-guidelines.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/design-guidelines/design-guidelines.module.mjs +9 -9
- package/{esm2020 → esm2022}/modules/heading-anchor/heading-anchor.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/heading-anchor/heading-anchor.module.mjs +5 -5
- package/{esm2020 → esm2022}/modules/markdown/markdown.module.mjs +5 -5
- package/{esm2020 → esm2022}/modules/markdown/markdown.pipe.mjs +4 -4
- package/esm2022/modules/module-info/module-info.component.mjs +72 -0
- package/{esm2020 → esm2022}/modules/module-info/module-info.module.mjs +15 -15
- package/{esm2020 → esm2022}/modules/safe-html/safe-html.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/safe-html/safe-html.module.mjs +5 -5
- package/{esm2020 → esm2022}/modules/shared/docs-tools-supportal.service.mjs +4 -4
- package/esm2022/modules/shared/sky-docs-tools-resources.module.mjs +53 -0
- package/{esm2020 → esm2022}/modules/source-code/source-code-provider.mjs +4 -4
- package/{esm2020 → esm2022}/modules/source-code/source-code.service.mjs +4 -4
- package/{esm2020 → esm2022}/modules/thumbnail/thumbnail.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/thumbnail/thumbnail.module.mjs +5 -5
- package/{esm2020 → esm2022}/modules/type-definitions/anchor-link.service.mjs +4 -4
- package/{esm2020 → esm2022}/modules/type-definitions/call-signature-definition.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/type-definitions/class-definition.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/type-definitions/directive-definition.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/type-definitions/enumeration-definition.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/type-definitions/interface-definition.component.mjs +4 -4
- package/esm2022/modules/type-definitions/method-definitions.component.mjs +70 -0
- package/{esm2020 → esm2022}/modules/type-definitions/pipe-definition.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/type-definitions/property-definitions.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/type-definitions/type-alias-definition.component.mjs +4 -4
- package/{esm2020 → esm2022}/modules/type-definitions/type-anchor-links.pipe.mjs +4 -4
- package/esm2022/modules/type-definitions/type-definitions-format.service.mjs +252 -0
- package/{esm2020 → esm2022}/modules/type-definitions/type-definitions-provider.mjs +4 -4
- package/{esm2020 → esm2022}/modules/type-definitions/type-definitions.module.mjs +39 -39
- package/{esm2020 → esm2022}/modules/type-definitions/type-definitions.service.mjs +5 -5
- package/esm2022/modules/type-definitions/typedoc-adapter.service.mjs +563 -0
- package/esm2022/modules/type-definitions/typedoc-types.mjs +2 -0
- package/{fesm2020 → fesm2022}/skyux-docs-tools.mjs +452 -424
- package/fesm2022/skyux-docs-tools.mjs.map +1 -0
- package/modules/anatomy/anatomy-item.component.d.ts +1 -1
- package/modules/anatomy/anatomy-thumbnail.component.d.ts +1 -1
- package/modules/anatomy/anatomy.component.d.ts +1 -1
- package/modules/code-examples/code-example.component.d.ts +1 -1
- package/modules/code-examples/code-examples.component.d.ts +1 -1
- package/modules/demo/demo-control-panel-checkbox.component.d.ts +1 -1
- package/modules/demo/demo-control-panel-radio-group.component.d.ts +1 -1
- package/modules/demo/demo.component.d.ts +1 -1
- package/modules/demo-page/demo-page-section.component.d.ts +1 -1
- package/modules/demo-page/demo-page-type-definitions.component.d.ts +1 -1
- package/modules/demo-page/demo-page.component.d.ts +1 -1
- package/modules/design-guidelines/design-guideline-thumbnail.component.d.ts +1 -1
- package/modules/design-guidelines/design-guideline.component.d.ts +1 -1
- package/modules/heading-anchor/heading-anchor.component.d.ts +1 -1
- package/modules/module-info/module-info.component.d.ts +1 -1
- package/modules/safe-html/safe-html.component.d.ts +1 -1
- package/modules/thumbnail/thumbnail.component.d.ts +1 -1
- package/modules/type-definitions/call-signature-definition.component.d.ts +1 -1
- package/modules/type-definitions/class-definition.component.d.ts +1 -1
- package/modules/type-definitions/directive-definition.component.d.ts +1 -1
- package/modules/type-definitions/enumeration-definition.component.d.ts +1 -1
- package/modules/type-definitions/interface-definition.component.d.ts +1 -1
- package/modules/type-definitions/method-definitions.component.d.ts +1 -1
- package/modules/type-definitions/pipe-definition.component.d.ts +1 -1
- package/modules/type-definitions/property-definitions.component.d.ts +1 -1
- package/modules/type-definitions/type-alias-definition.component.d.ts +1 -1
- package/modules/type-definitions/typedoc-types.d.ts +12 -7
- package/package.json +24 -30
- package/esm2020/modules/demo/demo-control-panel-radio-group.component.mjs +0 -83
- package/esm2020/modules/demo-page/demo-page.component.mjs +0 -187
- package/esm2020/modules/module-info/module-info.component.mjs +0 -74
- package/esm2020/modules/shared/sky-docs-tools-resources.module.mjs +0 -53
- package/esm2020/modules/type-definitions/method-definitions.component.mjs +0 -73
- package/esm2020/modules/type-definitions/type-definitions-format.service.mjs +0 -254
- package/esm2020/modules/type-definitions/typedoc-adapter.service.mjs +0 -526
- package/esm2020/modules/type-definitions/typedoc-types.mjs +0 -2
- package/fesm2015/skyux-docs-tools.mjs +0 -3225
- package/fesm2015/skyux-docs-tools.mjs.map +0 -1
- package/fesm2020/skyux-docs-tools.mjs.map +0 -1
- /package/{esm2020 → esm2022}/modules/code-examples/code-example-module-dependencies.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/code-examples/code-example-theme.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/code-examples/code-example.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/demo/demo-content-alignment.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/demo/demo-control-panel-change.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/demo/demo-control-panel-radio-choice.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/shared/docs-tools-component-info.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/shared/docs-tools-options.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/source-code/source-code-file.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/anchor-link-service-config.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/anchor-link-service-format.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/anchor-link.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/call-signature-definition.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/class-definition.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/comment-tags.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/directive-definition.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/entry-child-definition.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/entry-definition.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/enumeration-definition.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/enumeration-member-definition.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/index-signature-definition.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/interface-definition.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/interface-property-definition.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/method-definition.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/parameter-definition.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/pipe-definition.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/property-decorator.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/property-definition.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/type-alias-definition.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/type-definition.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/type-definitions.mjs +0 -0
- /package/{esm2020 → esm2022}/modules/type-definitions/type-parameter-definition.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/skyux-docs-tools.mjs +0 -0
|
@@ -1,254 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Formats type definitions into HTML-compatible strings.
|
|
5
|
-
*/
|
|
6
|
-
export class SkyDocsTypeDefinitionsFormatService {
|
|
7
|
-
/**
|
|
8
|
-
* Returns an HTML-formatted representation of the provided interface config.
|
|
9
|
-
*/
|
|
10
|
-
getInterfaceSourceCode(definition) {
|
|
11
|
-
const typeParameters = this.getFormattedTypeParameters(definition.typeParameters);
|
|
12
|
-
const config = {
|
|
13
|
-
escapeSpecialCharacters: false,
|
|
14
|
-
};
|
|
15
|
-
let signature = `interface ${definition.name}${typeParameters} {`;
|
|
16
|
-
signature += this.getFormattedInterfaceProperties(definition, config);
|
|
17
|
-
signature += '\n}';
|
|
18
|
-
return signature;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Returns an HTML-formatted representation of the provided method config.
|
|
22
|
-
*/
|
|
23
|
-
getMethodSourceCode(definition) {
|
|
24
|
-
const config = {
|
|
25
|
-
escapeSpecialCharacters: false,
|
|
26
|
-
};
|
|
27
|
-
const typeArguments = this.getFormattedTypeArguments(definition.type, config);
|
|
28
|
-
const callSignature = definition.type.callSignature;
|
|
29
|
-
const returnType = this.getFormattedType(callSignature.returnType, config);
|
|
30
|
-
let params = '';
|
|
31
|
-
if (callSignature.parameters) {
|
|
32
|
-
params += callSignature.parameters
|
|
33
|
-
.map((p) => this.getFormattedParameterName(p, config))
|
|
34
|
-
.join(', ');
|
|
35
|
-
}
|
|
36
|
-
return `public ${definition.isStatic ? 'static ' : ''}${definition.name}${typeArguments}(${params}): ${returnType}`;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Returns an HTML-formatted representation of the provided type alias config.
|
|
40
|
-
*/
|
|
41
|
-
getTypeAliasSourceCode(definition) {
|
|
42
|
-
const config = {
|
|
43
|
-
escapeSpecialCharacters: false,
|
|
44
|
-
};
|
|
45
|
-
const typeParameters = this.getFormattedTypeParameters(definition.typeParameters);
|
|
46
|
-
let signature = `type ${definition.name}${typeParameters} = `;
|
|
47
|
-
if (definition.type.callSignature) {
|
|
48
|
-
signature += this.getFormattedCallSignature(definition.type.callSignature, {
|
|
49
|
-
escapeSpecialCharacters: false,
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
else if (definition.type.indexSignature) {
|
|
53
|
-
const indexSignature = definition.type.indexSignature;
|
|
54
|
-
const type = this.getFormattedType(indexSignature.type, {
|
|
55
|
-
escapeSpecialCharacters: false,
|
|
56
|
-
});
|
|
57
|
-
signature += `{\n [${indexSignature.key.name}: string]: ${type};\n}`;
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
/*istanbul ignore else */
|
|
61
|
-
if (definition.type.type === 'union') {
|
|
62
|
-
signature += this.getFormattedUnion(definition.type, config);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return signature;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Returns a formatted string representing a parameter's name and value. For example: `'foo: string'`.
|
|
69
|
-
*/
|
|
70
|
-
getFormattedParameterName(parameter, config = {
|
|
71
|
-
escapeSpecialCharacters: true,
|
|
72
|
-
}) {
|
|
73
|
-
const optionalMarker = parameter.isOptional ? '?' : '';
|
|
74
|
-
const parameterType = this.getFormattedType(parameter.type, config);
|
|
75
|
-
let signature = `${parameter.name}${optionalMarker}: ${parameterType}`;
|
|
76
|
-
if (config.escapeSpecialCharacters) {
|
|
77
|
-
signature = this.escapeSpecialCharacters(signature);
|
|
78
|
-
}
|
|
79
|
-
return signature;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Returns a formatted string representing a property (or method's) name and value. For example: `'public foo: string'`.
|
|
83
|
-
*/
|
|
84
|
-
getFormattedPropertyName(property) {
|
|
85
|
-
let signature = '';
|
|
86
|
-
if (property.decorator?.name) {
|
|
87
|
-
signature += `@${property.decorator.name}()<br>`;
|
|
88
|
-
}
|
|
89
|
-
const indexSignature = property.type?.indexSignature;
|
|
90
|
-
let name;
|
|
91
|
-
if (indexSignature) {
|
|
92
|
-
name = `[${indexSignature.key.name}: ${this.getFormattedType(indexSignature.key.type)}]`;
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
name = property.name;
|
|
96
|
-
}
|
|
97
|
-
if (property.deprecationWarning !== undefined) {
|
|
98
|
-
signature += `<strike>${name}</strike>`;
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
signature += name;
|
|
102
|
-
}
|
|
103
|
-
if (property.decorator?.name !== 'Output' &&
|
|
104
|
-
property.isOptional &&
|
|
105
|
-
!indexSignature) {
|
|
106
|
-
signature += '?';
|
|
107
|
-
}
|
|
108
|
-
if (indexSignature) {
|
|
109
|
-
signature += `: ${this.getFormattedType(indexSignature.type)}`;
|
|
110
|
-
}
|
|
111
|
-
else if (property.type) {
|
|
112
|
-
signature += `: ${this.getFormattedType(property.type)}`;
|
|
113
|
-
}
|
|
114
|
-
return signature;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Returns an HTML-formatted method name to be used on the properties table.
|
|
118
|
-
*/
|
|
119
|
-
getFormattedMethodName(definition) {
|
|
120
|
-
let formatted = '';
|
|
121
|
-
if (definition.isStatic) {
|
|
122
|
-
formatted += `${definition.parentName}.`;
|
|
123
|
-
}
|
|
124
|
-
if (definition.deprecationWarning !== undefined) {
|
|
125
|
-
formatted = `<strike>${formatted}${definition.name}</strike>`;
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
formatted += definition.name;
|
|
129
|
-
}
|
|
130
|
-
return `${formatted}()`;
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Returns a formatted string representing the provided type.
|
|
134
|
-
*/
|
|
135
|
-
getFormattedType(type, config = {
|
|
136
|
-
escapeSpecialCharacters: true,
|
|
137
|
-
}) {
|
|
138
|
-
let formatted = 'any';
|
|
139
|
-
if (!type) {
|
|
140
|
-
return formatted;
|
|
141
|
-
}
|
|
142
|
-
if (type.callSignature) {
|
|
143
|
-
let formattedSignature = this.getFormattedCallSignature(type.callSignature, config);
|
|
144
|
-
if (type.type === 'array') {
|
|
145
|
-
formattedSignature = `(${formattedSignature})[]`;
|
|
146
|
-
}
|
|
147
|
-
return formattedSignature;
|
|
148
|
-
}
|
|
149
|
-
if (type.unionTypes) {
|
|
150
|
-
return this.getFormattedUnion(type, config);
|
|
151
|
-
}
|
|
152
|
-
if (type.name !== null && type.name !== undefined) {
|
|
153
|
-
formatted = `${type.name}`;
|
|
154
|
-
}
|
|
155
|
-
if (type.typeArguments) {
|
|
156
|
-
formatted += this.getFormattedTypeArguments(type, config);
|
|
157
|
-
}
|
|
158
|
-
if (type.type === 'array') {
|
|
159
|
-
formatted += '[]';
|
|
160
|
-
}
|
|
161
|
-
if (type.type === 'literal' && typeof type.name === 'string') {
|
|
162
|
-
formatted = `'${formatted}'`;
|
|
163
|
-
}
|
|
164
|
-
if (type.typeLiteral) {
|
|
165
|
-
const formattedTypeLiteral = this.getFormattedInterfaceProperties(type.typeLiteral, config)
|
|
166
|
-
.replace(/\n/g, ' ')
|
|
167
|
-
.replace(/\s\s+/g, ' ');
|
|
168
|
-
formatted = `{${formattedTypeLiteral} }`;
|
|
169
|
-
}
|
|
170
|
-
if (config.escapeSpecialCharacters) {
|
|
171
|
-
return this.escapeSpecialCharacters(formatted);
|
|
172
|
-
}
|
|
173
|
-
return formatted;
|
|
174
|
-
}
|
|
175
|
-
escapeSpecialCharacters(value) {
|
|
176
|
-
return value.replace(/</g, '<').replace(/>/g, '>');
|
|
177
|
-
}
|
|
178
|
-
getFormattedCallSignature(callSignature, config = {
|
|
179
|
-
escapeSpecialCharacters: true,
|
|
180
|
-
}) {
|
|
181
|
-
const returnType = this.getFormattedType(callSignature.returnType, config);
|
|
182
|
-
if (!callSignature.parameters) {
|
|
183
|
-
return `() => ${returnType}`;
|
|
184
|
-
}
|
|
185
|
-
const formattedParams = callSignature.parameters
|
|
186
|
-
.map((p) => this.getFormattedParameterName(p, config))
|
|
187
|
-
.join(', ');
|
|
188
|
-
return `(${formattedParams}) => ${returnType}`;
|
|
189
|
-
}
|
|
190
|
-
getFormattedUnion(typeConfig, config) {
|
|
191
|
-
return typeConfig.unionTypes
|
|
192
|
-
.map((t) => {
|
|
193
|
-
return this.getFormattedType(t, config);
|
|
194
|
-
})
|
|
195
|
-
.join(' | ');
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Parse any type arguments e.g. `<T, F>`.
|
|
199
|
-
*/
|
|
200
|
-
getFormattedTypeArguments(typeConfig, config) {
|
|
201
|
-
if (!typeConfig.typeArguments) {
|
|
202
|
-
return '';
|
|
203
|
-
}
|
|
204
|
-
const typeArguments = typeConfig.typeArguments.map((typeArgument) => {
|
|
205
|
-
if (typeArgument.type === 'array') {
|
|
206
|
-
return `${typeArgument.name}[]`;
|
|
207
|
-
}
|
|
208
|
-
if (typeArgument.unionTypes) {
|
|
209
|
-
return this.getFormattedUnion(typeArgument, config);
|
|
210
|
-
}
|
|
211
|
-
return typeArgument.name;
|
|
212
|
-
});
|
|
213
|
-
return `<${typeArguments.join(', ')}>`;
|
|
214
|
-
}
|
|
215
|
-
getFormattedTypeParameters(typeParameters) {
|
|
216
|
-
if (!typeParameters) {
|
|
217
|
-
return '';
|
|
218
|
-
}
|
|
219
|
-
const formatted = typeParameters.map((typeParameter) => {
|
|
220
|
-
let result = typeParameter.name;
|
|
221
|
-
if (typeParameter.type && typeParameter.type.type === 'reference') {
|
|
222
|
-
result += ` extends ${typeParameter.type.name}`;
|
|
223
|
-
}
|
|
224
|
-
return result;
|
|
225
|
-
});
|
|
226
|
-
return `<${formatted.join(', ')}>`;
|
|
227
|
-
}
|
|
228
|
-
getFormattedInterfaceProperties(definition, config) {
|
|
229
|
-
let signature = '';
|
|
230
|
-
definition.properties.forEach((property) => {
|
|
231
|
-
const indexSignature = property.type.indexSignature;
|
|
232
|
-
const optionalIndicator = property.isOptional && !indexSignature ? '?' : '';
|
|
233
|
-
const propertyType = this.getFormattedType(property.type, config);
|
|
234
|
-
let name;
|
|
235
|
-
if (indexSignature) {
|
|
236
|
-
name = `[${indexSignature.key.name}: string]`;
|
|
237
|
-
}
|
|
238
|
-
else {
|
|
239
|
-
name = property.name;
|
|
240
|
-
}
|
|
241
|
-
signature += `\n ${name}${optionalIndicator}: ${propertyType};`;
|
|
242
|
-
});
|
|
243
|
-
return signature;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
SkyDocsTypeDefinitionsFormatService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDocsTypeDefinitionsFormatService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
247
|
-
SkyDocsTypeDefinitionsFormatService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDocsTypeDefinitionsFormatService, providedIn: 'root' });
|
|
248
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDocsTypeDefinitionsFormatService, decorators: [{
|
|
249
|
-
type: Injectable,
|
|
250
|
-
args: [{
|
|
251
|
-
providedIn: 'root',
|
|
252
|
-
}]
|
|
253
|
-
}] });
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1kZWZpbml0aW9ucy1mb3JtYXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RvY3MtdG9vbHMvc3JjL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy90eXBlLWRlZmluaXRpb25zLWZvcm1hdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBd0IzQzs7R0FFRztBQUlILE1BQU0sT0FBTyxtQ0FBbUM7SUFDOUM7O09BRUc7SUFDSSxzQkFBc0IsQ0FDM0IsVUFBc0M7UUFFdEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUNwRCxVQUFVLENBQUMsY0FBYyxDQUMxQixDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUc7WUFDYix1QkFBdUIsRUFBRSxLQUFLO1NBQy9CLENBQUM7UUFFRixJQUFJLFNBQVMsR0FBVyxhQUFhLFVBQVUsQ0FBQyxJQUFJLEdBQUcsY0FBYyxJQUFJLENBQUM7UUFDMUUsU0FBUyxJQUFJLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEUsU0FBUyxJQUFJLEtBQUssQ0FBQztRQUVuQixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxtQkFBbUIsQ0FBQyxVQUF3QztRQUNqRSxNQUFNLE1BQU0sR0FBRztZQUNiLHVCQUF1QixFQUFFLEtBQUs7U0FDL0IsQ0FBQztRQUVGLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FDbEQsVUFBVSxDQUFDLElBQUksRUFDZixNQUFNLENBQ1AsQ0FBQztRQUNGLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3BELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsVUFBVSxF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QixLQUFLLFlBQVksR0FBRyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs7Z0lBclZVLG1DQUFtQztvSUFBbkMsbUNBQW1DLGNBRmxDLE1BQU07MkZBRVAsbUNBQW1DO2tCQUgvQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5RG9jc0NhbGxTaWduYXR1cmVEZWZpbml0aW9uIH0gZnJvbSAnLi9jYWxsLXNpZ25hdHVyZS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc0NsYXNzUHJvcGVydHlEZWZpbml0aW9uIH0gZnJvbSAnLi9wcm9wZXJ0eS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc0ludGVyZmFjZURlZmluaXRpb24gfSBmcm9tICcuL2ludGVyZmFjZS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc0NsYXNzTWV0aG9kRGVmaW5pdGlvbiB9IGZyb20gJy4vbWV0aG9kLWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzUGFyYW1ldGVyRGVmaW5pdGlvbiB9IGZyb20gJy4vcGFyYW1ldGVyLWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzVHlwZUFsaWFzRGVmaW5pdGlvbiB9IGZyb20gJy4vdHlwZS1hbGlhcy1kZWZpbml0aW9uJztcblxuaW1wb3J0IHsgU2t5RG9jc1R5cGVEZWZpbml0aW9uIH0gZnJvbSAnLi90eXBlLWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzVHlwZVBhcmFtZXRlckRlZmluaXRpb24gfSBmcm9tICcuL3R5cGUtcGFyYW1ldGVyLWRlZmluaXRpb24nO1xuXG5pbXBvcnQgeyBTa3lEb2NzSW50ZXJmYWNlUHJvcGVydHlEZWZpbml0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2UtcHJvcGVydHktZGVmaW5pdGlvbic7XG5cbmludGVyZmFjZSBHZXRGb3JtYXR0ZWRUeXBlQ29uZmlnIHtcbiAgZXNjYXBlU3BlY2lhbENoYXJhY3RlcnM6IGJvb2xlYW47XG59XG5cbi8qKlxuICogRm9ybWF0cyB0eXBlIGRlZmluaXRpb25zIGludG8gSFRNTC1jb21wYXRpYmxlIHN0cmluZ3MuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEb2NzVHlwZURlZmluaXRpb25zRm9ybWF0U2VydmljZSB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIEhUTUwtZm9ybWF0dGVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwcm92aWRlZCBpbnRlcmZhY2UgY29uZmlnLlxuICAgKi9cbiAgcHVibGljIGdldEludGVyZmFjZVNvdXJjZUNvZGUoXG4gICAgZGVmaW5pdGlvbjogU2t5RG9jc0ludGVyZmFjZURlZmluaXRpb25cbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCB0eXBlUGFyYW1ldGVycyA9IHRoaXMuZ2V0Rm9ybWF0dGVkVHlwZVBhcmFtZXRlcnMoXG4gICAgICBkZWZpbml0aW9uLnR5cGVQYXJhbWV0ZXJzXG4gICAgKTtcbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBlc2NhcGVTcGVjaWFsQ2hhcmFjdGVyczogZmFsc2UsXG4gICAgfTtcblxuICAgIGxldCBzaWduYXR1cmU6IHN0cmluZyA9IGBpbnRlcmZhY2UgJHtkZWZpbml0aW9uLm5hbWV9JHt0eXBlUGFyYW1ldGVyc30ge2A7XG4gICAgc2lnbmF0dXJlICs9IHRoaXMuZ2V0Rm9ybWF0dGVkSW50ZXJmYWNlUHJvcGVydGllcyhkZWZpbml0aW9uLCBjb25maWcpO1xuICAgIHNpZ25hdHVyZSArPSAnXFxufSc7XG5cbiAgICByZXR1cm4gc2lnbmF0dXJlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gSFRNTC1mb3JtYXR0ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIHByb3ZpZGVkIG1ldGhvZCBjb25maWcuXG4gICAqL1xuICBwdWJsaWMgZ2V0TWV0aG9kU291cmNlQ29kZShkZWZpbml0aW9uOiBTa3lEb2NzQ2xhc3NNZXRob2REZWZpbml0aW9uKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBlc2NhcGVTcGVjaWFsQ2hhcmFjdGVyczogZmFsc2UsXG4gICAgfTtcblxuICAgIGNvbnN0IHR5cGVBcmd1bWVudHMgPSB0aGlzLmdldEZvcm1hdHRlZFR5cGVBcmd1bWVudHMoXG4gICAgICBkZWZpbml0aW9uLnR5cGUsXG4gICAgICBjb25maWdcbiAgICApO1xuICAgIGNvbnN0IGNhbGxTaWduYXR1cmUgPSBkZWZpbml0aW9uLnR5cGUuY2FsbFNpZ25hdHVyZTtcbiAgICBjb25zdCByZXR1cm5UeXBlID0gdGhpcy5nZXRGb3JtYXR0ZWRUeXBlKGNhbGxTaWduYXR1cmUucmV0dXJuVHlwZSwgY29uZmlnKTtcblxuICAgIGxldCBwYXJhbXM6IHN0cmluZyA9ICcnO1xuICAgIGlmIChjYWxsU2lnbmF0dXJlLnBhcmFtZXRlcnMpIHtcbiAgICAgIHBhcmFtcyArPSBjYWxsU2lnbmF0dXJlLnBhcmFtZXRlcnNcbiAgICAgICAgLm1hcCgocCkgPT4gdGhpcy5nZXRGb3JtYXR0ZWRQYXJhbWV0ZXJOYW1lKHAsIGNvbmZpZykpXG4gICAgICAgIC5qb2luKCcsICcpO1xuICAgIH1cblxuICAgIHJldHVybiBgcHVibGljICR7ZGVmaW5pdGlvbi5pc1N0YXRpYyA/ICdzdGF0aWMgJyA6ICcnfSR7XG4gICAgICBkZWZpbml0aW9uLm5hbWVcbiAgICB9JHt0eXBlQXJndW1lbnRzfSgke3BhcmFtc30pOiAke3JldHVyblR5cGV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIEhUTUwtZm9ybWF0dGVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwcm92aWRlZCB0eXBlIGFsaWFzIGNvbmZpZy5cbiAgICovXG4gIHB1YmxpYyBnZXRUeXBlQWxpYXNTb3VyY2VDb2RlKFxuICAgIGRlZmluaXRpb246IFNreURvY3NUeXBlQWxpYXNEZWZpbml0aW9uXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgZXNjYXBlU3BlY2lhbENoYXJhY3RlcnM6IGZhbHNlLFxuICAgIH07XG5cbiAgICBjb25zdCB0eXBlUGFyYW1ldGVycyA9IHRoaXMuZ2V0Rm9ybWF0dGVkVHlwZVBhcmFtZXRlcnMoXG4gICAgICBkZWZpbml0aW9uLnR5cGVQYXJhbWV0ZXJzXG4gICAgKTtcblxuICAgIGxldCBzaWduYXR1cmUgPSBgdHlwZSAke2RlZmluaXRpb24ubmFtZX0ke3R5cGVQYXJhbWV0ZXJzfSA9IGA7XG5cbiAgICBpZiAoZGVmaW5pdGlvbi50eXBlLmNhbGxTaWduYXR1cmUpIHtcbiAgICAgIHNpZ25hdHVyZSArPSB0aGlzLmdldEZvcm1hdHRlZENhbGxTaWduYXR1cmUoXG4gICAgICAgIGRlZmluaXRpb24udHlwZS5jYWxsU2lnbmF0dXJlLFxuICAgICAgICB7XG4gICAgICAgICAgZXNjYXBlU3BlY2lhbENoYXJhY3RlcnM6IGZhbHNlLFxuICAgICAgICB9XG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoZGVmaW5pdGlvbi50eXBlLmluZGV4U2lnbmF0dXJlKSB7XG4gICAgICBjb25zdCBpbmRleFNpZ25hdHVyZSA9IGRlZmluaXRpb24udHlwZS5pbmRleFNpZ25hdHVyZTtcbiAgICAgIGNvbnN0IHR5cGUgPSB0aGlzLmdldEZvcm1hdHRlZFR5cGUoaW5kZXhTaWduYXR1cmUudHlwZSwge1xuICAgICAgICBlc2NhcGVTcGVjaWFsQ2hhcmFjdGVyczogZmFsc2UsXG4gICAgICB9KTtcbiAgICAgIHNpZ25hdHVyZSArPSBge1xcbiAgWyR7aW5kZXhTaWduYXR1cmUua2V5Lm5hbWV9OiBzdHJpbmddOiAke3R5cGV9O1xcbn1gO1xuICAgIH0gZWxzZSB7XG4gICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAoZGVmaW5pdGlvbi50eXBlLnR5cGUgPT09ICd1bmlvbicpIHtcbiAgICAgICAgc2lnbmF0dXJlICs9IHRoaXMuZ2V0Rm9ybWF0dGVkVW5pb24oZGVmaW5pdGlvbi50eXBlLCBjb25maWcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzaWduYXR1cmU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGZvcm1hdHRlZCBzdHJpbmcgcmVwcmVzZW50aW5nIGEgcGFyYW1ldGVyJ3MgbmFtZSBhbmQgdmFsdWUuIEZvciBleGFtcGxlOiBgJ2Zvbzogc3RyaW5nJ2AuXG4gICAqL1xuICBwdWJsaWMgZ2V0Rm9ybWF0dGVkUGFyYW1ldGVyTmFtZShcbiAgICBwYXJhbWV0ZXI6IFNreURvY3NQYXJhbWV0ZXJEZWZpbml0aW9uLFxuICAgIGNvbmZpZzogR2V0Rm9ybWF0dGVkVHlwZUNvbmZpZyA9IHtcbiAgICAgIGVzY2FwZVNwZWNpYWxDaGFyYWN0ZXJzOiB0cnVlLFxuICAgIH1cbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBvcHRpb25hbE1hcmtlciA9IHBhcmFtZXRlci5pc09wdGlvbmFsID8gJz8nIDogJyc7XG4gICAgY29uc3QgcGFyYW1ldGVyVHlwZSA9IHRoaXMuZ2V0Rm9ybWF0dGVkVHlwZShwYXJhbWV0ZXIudHlwZSwgY29uZmlnKTtcblxuICAgIGxldCBzaWduYXR1cmUgPSBgJHtwYXJhbWV0ZXIubmFtZX0ke29wdGlvbmFsTWFya2VyfTogJHtwYXJhbWV0ZXJUeXBlfWA7XG4gICAgaWYgKGNvbmZpZy5lc2NhcGVTcGVjaWFsQ2hhcmFjdGVycykge1xuICAgICAgc2lnbmF0dXJlID0gdGhpcy5lc2NhcGVTcGVjaWFsQ2hhcmFjdGVycyhzaWduYXR1cmUpO1xuICAgIH1cblxuICAgIHJldHVybiBzaWduYXR1cmU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGZvcm1hdHRlZCBzdHJpbmcgcmVwcmVzZW50aW5nIGEgcHJvcGVydHkgKG9yIG1ldGhvZCdzKSBuYW1lIGFuZCB2YWx1ZS4gRm9yIGV4YW1wbGU6IGAncHVibGljIGZvbzogc3RyaW5nJ2AuXG4gICAqL1xuICBwdWJsaWMgZ2V0Rm9ybWF0dGVkUHJvcGVydHlOYW1lKFxuICAgIHByb3BlcnR5OiBTa3lEb2NzQ2xhc3NQcm9wZXJ0eURlZmluaXRpb25cbiAgKTogc3RyaW5nIHtcbiAgICBsZXQgc2lnbmF0dXJlID0gJyc7XG5cbiAgICBpZiAocHJvcGVydHkuZGVjb3JhdG9yPy5uYW1lKSB7XG4gICAgICBzaWduYXR1cmUgKz0gYEAke3Byb3BlcnR5LmRlY29yYXRvci5uYW1lfSgpPGJyPmA7XG4gICAgfVxuXG4gICAgY29uc3QgaW5kZXhTaWduYXR1cmUgPSBwcm9wZXJ0eS50eXBlPy5pbmRleFNpZ25hdHVyZTtcbiAgICBsZXQgbmFtZTogc3RyaW5nO1xuICAgIGlmIChpbmRleFNpZ25hdHVyZSkge1xuICAgICAgbmFtZSA9IGBbJHtpbmRleFNpZ25hdHVyZS5rZXkubmFtZX06ICR7dGhpcy5nZXRGb3JtYXR0ZWRUeXBlKFxuICAgICAgICBpbmRleFNpZ25hdHVyZS5rZXkudHlwZVxuICAgICAgKX1dYDtcbiAgICB9IGVsc2Uge1xuICAgICAgbmFtZSA9IHByb3BlcnR5Lm5hbWU7XG4gICAgfVxuXG4gICAgaWYgKHByb3BlcnR5LmRlcHJlY2F0aW9uV2FybmluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzaWduYXR1cmUgKz0gYDxzdHJpa2U+JHtuYW1lfTwvc3RyaWtlPmA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNpZ25hdHVyZSArPSBuYW1lO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHByb3BlcnR5LmRlY29yYXRvcj8ubmFtZSAhPT0gJ091dHB1dCcgJiZcbiAgICAgIHByb3BlcnR5LmlzT3B0aW9uYWwgJiZcbiAgICAgICFpbmRleFNpZ25hdHVyZVxuICAgICkge1xuICAgICAgc2lnbmF0dXJlICs9ICc/JztcbiAgICB9XG5cbiAgICBpZiAoaW5kZXhTaWduYXR1cmUpIHtcbiAgICAgIHNpZ25hdHVyZSArPSBgOiAke3RoaXMuZ2V0Rm9ybWF0dGVkVHlwZShpbmRleFNpZ25hdHVyZS50eXBlKX1gO1xuICAgIH0gZWxzZSBpZiAocHJvcGVydHkudHlwZSkge1xuICAgICAgc2lnbmF0dXJlICs9IGA6ICR7dGhpcy5nZXRGb3JtYXR0ZWRUeXBlKHByb3BlcnR5LnR5cGUpfWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpZ25hdHVyZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIEhUTUwtZm9ybWF0dGVkIG1ldGhvZCBuYW1lIHRvIGJlIHVzZWQgb24gdGhlIHByb3BlcnRpZXMgdGFibGUuXG4gICAqL1xuICBwdWJsaWMgZ2V0Rm9ybWF0dGVkTWV0aG9kTmFtZShcbiAgICBkZWZpbml0aW9uOiBTa3lEb2NzQ2xhc3NNZXRob2REZWZpbml0aW9uXG4gICk6IHN0cmluZyB7XG4gICAgbGV0IGZvcm1hdHRlZCA9ICcnO1xuXG4gICAgaWYgKGRlZmluaXRpb24uaXNTdGF0aWMpIHtcbiAgICAgIGZvcm1hdHRlZCArPSBgJHtkZWZpbml0aW9uLnBhcmVudE5hbWV9LmA7XG4gICAgfVxuXG4gICAgaWYgKGRlZmluaXRpb24uZGVwcmVjYXRpb25XYXJuaW5nICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGZvcm1hdHRlZCA9IGA8c3RyaWtlPiR7Zm9ybWF0dGVkfSR7ZGVmaW5pdGlvbi5uYW1lfTwvc3RyaWtlPmA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm1hdHRlZCArPSBkZWZpbml0aW9uLm5hbWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke2Zvcm1hdHRlZH0oKWA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGZvcm1hdHRlZCBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBwcm92aWRlZCB0eXBlLlxuICAgKi9cbiAgcHVibGljIGdldEZvcm1hdHRlZFR5cGUoXG4gICAgdHlwZTogU2t5RG9jc1R5cGVEZWZpbml0aW9uLFxuICAgIGNvbmZpZzogR2V0Rm9ybWF0dGVkVHlwZUNvbmZpZyA9IHtcbiAgICAgIGVzY2FwZVNwZWNpYWxDaGFyYWN0ZXJzOiB0cnVlLFxuICAgIH1cbiAgKTogc3RyaW5nIHtcbiAgICBsZXQgZm9ybWF0dGVkID0gJ2FueSc7XG5cbiAgICBpZiAoIXR5cGUpIHtcbiAgICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUuY2FsbFNpZ25hdHVyZSkge1xuICAgICAgbGV0IGZvcm1hdHRlZFNpZ25hdHVyZSA9IHRoaXMuZ2V0Rm9ybWF0dGVkQ2FsbFNpZ25hdHVyZShcbiAgICAgICAgdHlwZS5jYWxsU2lnbmF0dXJlLFxuICAgICAgICBjb25maWdcbiAgICAgICk7XG5cbiAgICAgIGlmICh0eXBlLnR5cGUgPT09ICdhcnJheScpIHtcbiAgICAgICAgZm9ybWF0dGVkU2lnbmF0dXJlID0gYCgke2Zvcm1hdHRlZFNpZ25hdHVyZX0pW11gO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZvcm1hdHRlZFNpZ25hdHVyZTtcbiAgICB9XG5cbiAgICBpZiAodHlwZS51bmlvblR5cGVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRGb3JtYXR0ZWRVbmlvbih0eXBlLCBjb25maWcpO1xuICAgIH1cblxuICAgIGlmICh0eXBlLm5hbWUgIT09IG51bGwgJiYgdHlwZS5uYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGZvcm1hdHRlZCA9IGAke3R5cGUubmFtZX1gO1xuICAgIH1cblxuICAgIGlmICh0eXBlLnR5cGVBcmd1bWVudHMpIHtcbiAgICAgIGZvcm1hdHRlZCArPSB0aGlzLmdldEZvcm1hdHRlZFR5cGVBcmd1bWVudHModHlwZSwgY29uZmlnKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZS50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICBmb3JtYXR0ZWQgKz0gJ1tdJztcbiAgICB9XG5cbiAgICBpZiAodHlwZS50eXBlID09PSAnbGl0ZXJhbCcgJiYgdHlwZW9mIHR5cGUubmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGZvcm1hdHRlZCA9IGAnJHtmb3JtYXR0ZWR9J2A7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUudHlwZUxpdGVyYWwpIHtcbiAgICAgIGNvbnN0IGZvcm1hdHRlZFR5cGVMaXRlcmFsID0gdGhpcy5nZXRGb3JtYXR0ZWRJbnRlcmZhY2VQcm9wZXJ0aWVzKFxuICAgICAgICB0eXBlLnR5cGVMaXRlcmFsLFxuICAgICAgICBjb25maWdcbiAgICAgIClcbiAgICAgICAgLnJlcGxhY2UoL1xcbi9nLCAnICcpXG4gICAgICAgIC5yZXBsYWNlKC9cXHNcXHMrL2csICcgJyk7XG4gICAgICBmb3JtYXR0ZWQgPSBgeyR7Zm9ybWF0dGVkVHlwZUxpdGVyYWx9IH1gO1xuICAgIH1cblxuICAgIGlmIChjb25maWcuZXNjYXBlU3BlY2lhbENoYXJhY3RlcnMpIHtcbiAgICAgIHJldHVybiB0aGlzLmVzY2FwZVNwZWNpYWxDaGFyYWN0ZXJzKGZvcm1hdHRlZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcm1hdHRlZDtcbiAgfVxuXG4gIHB1YmxpYyBlc2NhcGVTcGVjaWFsQ2hhcmFjdGVycyh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvPC9nLCAnJmx0OycpLnJlcGxhY2UoLz4vZywgJyZndDsnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rm9ybWF0dGVkQ2FsbFNpZ25hdHVyZShcbiAgICBjYWxsU2lnbmF0dXJlOiBTa3lEb2NzQ2FsbFNpZ25hdHVyZURlZmluaXRpb24sXG4gICAgY29uZmlnOiBHZXRGb3JtYXR0ZWRUeXBlQ29uZmlnID0ge1xuICAgICAgZXNjYXBlU3BlY2lhbENoYXJhY3RlcnM6IHRydWUsXG4gICAgfVxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IHJldHVyblR5cGUgPSB0aGlzLmdldEZvcm1hdHRlZFR5cGUoY2FsbFNpZ25hdHVyZS5yZXR1cm5UeXBlLCBjb25maWcpO1xuXG4gICAgaWYgKCFjYWxsU2lnbmF0dXJlLnBhcmFtZXRlcnMpIHtcbiAgICAgIHJldHVybiBgKCkgPT4gJHtyZXR1cm5UeXBlfWA7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybWF0dGVkUGFyYW1zID0gY2FsbFNpZ25hdHVyZS5wYXJhbWV0ZXJzXG4gICAgICAubWFwKChwKSA9PiB0aGlzLmdldEZvcm1hdHRlZFBhcmFtZXRlck5hbWUocCwgY29uZmlnKSlcbiAgICAgIC5qb2luKCcsICcpO1xuXG4gICAgcmV0dXJuIGAoJHtmb3JtYXR0ZWRQYXJhbXN9KSA9PiAke3JldHVyblR5cGV9YDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rm9ybWF0dGVkVW5pb24oXG4gICAgdHlwZUNvbmZpZzogU2t5RG9jc1R5cGVEZWZpbml0aW9uLFxuICAgIGNvbmZpZzogR2V0Rm9ybWF0dGVkVHlwZUNvbmZpZ1xuICApOiBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlQ29uZmlnLnVuaW9uVHlwZXNcbiAgICAgIC5tYXAoKHQpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Rm9ybWF0dGVkVHlwZSh0LCBjb25maWcpO1xuICAgICAgfSlcbiAgICAgIC5qb2luKCcgfCAnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBhbnkgdHlwZSBhcmd1bWVudHMgZS5nLiBgPFQsIEY+YC5cbiAgICovXG4gIHByaXZhdGUgZ2V0Rm9ybWF0dGVkVHlwZUFyZ3VtZW50cyhcbiAgICB0eXBlQ29uZmlnOiBTa3lEb2NzVHlwZURlZmluaXRpb24sXG4gICAgY29uZmlnOiBHZXRGb3JtYXR0ZWRUeXBlQ29uZmlnXG4gICk6IHN0cmluZyB7XG4gICAgaWYgKCF0eXBlQ29uZmlnLnR5cGVBcmd1bWVudHMpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCB0eXBlQXJndW1lbnRzID0gdHlwZUNvbmZpZy50eXBlQXJndW1lbnRzLm1hcCgodHlwZUFyZ3VtZW50KSA9PiB7XG4gICAgICBpZiAodHlwZUFyZ3VtZW50LnR5cGUgPT09ICdhcnJheScpIHtcbiAgICAgICAgcmV0dXJuIGAke3R5cGVBcmd1bWVudC5uYW1lfVtdYDtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVBcmd1bWVudC51bmlvblR5cGVzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEZvcm1hdHRlZFVuaW9uKHR5cGVBcmd1bWVudCwgY29uZmlnKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHR5cGVBcmd1bWVudC5uYW1lO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGA8JHt0eXBlQXJndW1lbnRzLmpvaW4oJywgJyl9PmA7XG4gIH1cblxuICBwcml2YXRlIGdldEZvcm1hdHRlZFR5cGVQYXJhbWV0ZXJzKFxuICAgIHR5cGVQYXJhbWV0ZXJzOiBTa3lEb2NzVHlwZVBhcmFtZXRlckRlZmluaXRpb25bXVxuICApOiBzdHJpbmcge1xuICAgIGlmICghdHlwZVBhcmFtZXRlcnMpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtYXR0ZWQgPSB0eXBlUGFyYW1ldGVycy5tYXAoKHR5cGVQYXJhbWV0ZXIpID0+IHtcbiAgICAgIGxldCByZXN1bHQgPSB0eXBlUGFyYW1ldGVyLm5hbWU7XG4gICAgICBpZiAodHlwZVBhcmFtZXRlci50eXBlICYmIHR5cGVQYXJhbWV0ZXIudHlwZS50eXBlID09PSAncmVmZXJlbmNlJykge1xuICAgICAgICByZXN1bHQgKz0gYCBleHRlbmRzICR7dHlwZVBhcmFtZXRlci50eXBlLm5hbWV9YDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcblxuICAgIHJldHVybiBgPCR7Zm9ybWF0dGVkLmpvaW4oJywgJyl9PmA7XG4gIH1cblxuICBwcml2YXRlIGdldEZvcm1hdHRlZEludGVyZmFjZVByb3BlcnRpZXMoXG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgcHJvcGVydGllcz86IFNreURvY3NJbnRlcmZhY2VQcm9wZXJ0eURlZmluaXRpb25bXTtcbiAgICB9LFxuICAgIGNvbmZpZz86IEdldEZvcm1hdHRlZFR5cGVDb25maWdcbiAgKTogc3RyaW5nIHtcbiAgICBsZXQgc2lnbmF0dXJlOiBzdHJpbmcgPSAnJztcblxuICAgIGRlZmluaXRpb24ucHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xuICAgICAgY29uc3QgaW5kZXhTaWduYXR1cmUgPSBwcm9wZXJ0eS50eXBlLmluZGV4U2lnbmF0dXJlO1xuICAgICAgY29uc3Qgb3B0aW9uYWxJbmRpY2F0b3IgPVxuICAgICAgICBwcm9wZXJ0eS5pc09wdGlvbmFsICYmICFpbmRleFNpZ25hdHVyZSA/ICc/JyA6ICcnO1xuICAgICAgY29uc3QgcHJvcGVydHlUeXBlID0gdGhpcy5nZXRGb3JtYXR0ZWRUeXBlKHByb3BlcnR5LnR5cGUsIGNvbmZpZyk7XG5cbiAgICAgIGxldCBuYW1lOiBzdHJpbmc7XG4gICAgICBpZiAoaW5kZXhTaWduYXR1cmUpIHtcbiAgICAgICAgbmFtZSA9IGBbJHtpbmRleFNpZ25hdHVyZS5rZXkubmFtZX06IHN0cmluZ11gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmFtZSA9IHByb3BlcnR5Lm5hbWU7XG4gICAgICB9XG5cbiAgICAgIHNpZ25hdHVyZSArPSBgXFxuICAke25hbWV9JHtvcHRpb25hbEluZGljYXRvcn06ICR7cHJvcGVydHlUeXBlfTtgO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNpZ25hdHVyZTtcbiAgfVxufVxuIl19
|