@nlabs/lex 1.55.1 → 1.56.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -0
- package/lib/LexConfig.d.ts +7 -3
- package/lib/LexConfig.js +8 -2
- package/lib/commands/build/build.d.ts +3 -2
- package/lib/commands/build/build.js +2 -2
- package/lib/commands/dev/dev.d.ts +1 -0
- package/lib/commands/dev/dev.js +21 -8
- package/lib/commands/publish/publish.js +10 -5
- package/lib/commands/serverless/serverless.js +15 -13
- package/lib/commands/test/test.js +2 -2
- package/lib/commands/versions/versions.d.ts +1 -1
- package/lib/commands/versions/versions.js +2 -2
- package/lib/create/changelog.d.ts +11 -6
- package/lib/create/changelog.js +5 -5
- package/lib/lex.js +4 -4
- package/lib/types/modules.d.js +2 -0
- package/lib/utils/app.d.ts +4 -4
- package/lib/utils/app.js +6 -6
- package/lib/utils/postcss/postcss-for.d.ts +9 -1
- package/lib/utils/postcss/postcss-for.js +7 -6
- package/lib/utils/postcss/postcss-percentage.d.ts +3 -2
- package/lib/utils/postcss/postcss-percentage.js +1 -2
- package/lib/utils/webpack/LexSvgSpritemapPlugin.d.ts +20 -0
- package/lib/utils/webpack/LexSvgSpritemapPlugin.js +257 -0
- package/package.json +43 -45
- package/tsconfig.json +1 -0
- package/webpack.config.js +6 -13
package/lib/utils/app.d.ts
CHANGED
|
@@ -27,16 +27,16 @@ export interface Spinner {
|
|
|
27
27
|
export declare const createSpinner: (quiet?: boolean) => Spinner;
|
|
28
28
|
export declare const createProgressBar: (percentage: number) => string;
|
|
29
29
|
export declare const handleWebpackProgress: (output: string, spinner: Spinner, quiet: boolean, emoji: string, action: string) => void;
|
|
30
|
-
export declare const copyFiles: (files: string[], typeName: string, spinner:
|
|
31
|
-
export declare const copyConfiguredFiles: (spinner:
|
|
30
|
+
export declare const copyFiles: (files: string[], typeName: string, spinner: Spinner, config: LexConfigType) => Promise<void>;
|
|
31
|
+
export declare const copyConfiguredFiles: (spinner: Spinner, config: LexConfigType, quiet: boolean) => Promise<void>;
|
|
32
32
|
export declare const copyFileSync: (source: string, target: string) => void;
|
|
33
33
|
export declare const copyFolderRecursiveSync: (source: string, target: string) => void;
|
|
34
34
|
export declare const getPackageJson: (packagePath?: string) => any;
|
|
35
35
|
export declare const getFilesByExt: (ext: string, config: LexConfigType) => string[];
|
|
36
|
-
export declare const removeConflictModules: (moduleList:
|
|
36
|
+
export declare const removeConflictModules: (moduleList: Record<string, unknown>) => Record<string, unknown>;
|
|
37
37
|
export declare const removeFiles: (fileName: string, isRelative?: boolean) => Promise<unknown>;
|
|
38
38
|
export declare const removeModules: () => Promise<unknown>;
|
|
39
|
-
export declare const setPackageJson: (json:
|
|
39
|
+
export declare const setPackageJson: (json: unknown, packagePath?: string) => void;
|
|
40
40
|
export interface LinkedModuleType {
|
|
41
41
|
readonly name: string;
|
|
42
42
|
readonly path: string;
|
package/lib/utils/app.js
CHANGED
|
@@ -12,13 +12,13 @@ import { rimrafSync } from 'rimraf';
|
|
|
12
12
|
import { log } from './log.js';
|
|
13
13
|
export const getFilenames = (props)=>{
|
|
14
14
|
const { callback, cliName, name, quiet, type, useTypescript } = props;
|
|
15
|
-
let nameCaps;
|
|
15
|
+
let nameCaps = '';
|
|
16
16
|
const itemTypes = [
|
|
17
17
|
'stores',
|
|
18
18
|
'views'
|
|
19
19
|
];
|
|
20
20
|
if (!name) {
|
|
21
|
-
if (itemTypes.includes(type)) {
|
|
21
|
+
if (type && itemTypes.includes(type)) {
|
|
22
22
|
log(`\n${cliName} Error: ${type} name is required. Please use 'lex -h' for options.`, 'error', quiet);
|
|
23
23
|
callback?.(1);
|
|
24
24
|
return undefined;
|
|
@@ -88,7 +88,7 @@ export const copyFiles = async (files, typeName, spinner, config)=>{
|
|
|
88
88
|
const { outputFullPath, sourceFullPath } = config;
|
|
89
89
|
const items = files.map((fileName)=>({
|
|
90
90
|
from: fileName,
|
|
91
|
-
to: pathResolve(outputFullPath, pathRelative(sourceFullPath, fileName))
|
|
91
|
+
to: pathResolve(outputFullPath || process.cwd(), pathRelative(sourceFullPath || process.cwd(), fileName))
|
|
92
92
|
}));
|
|
93
93
|
try {
|
|
94
94
|
spinner.start(`Copying ${typeName} files...`);
|
|
@@ -108,7 +108,7 @@ export const copyFiles = async (files, typeName, spinner, config)=>{
|
|
|
108
108
|
} catch (error) {
|
|
109
109
|
spinner.fail(`Copying of ${typeName} files failed.`);
|
|
110
110
|
log(`Error: ${error.message}`, 'error');
|
|
111
|
-
log(error, 'error');
|
|
111
|
+
log(String(error), 'error');
|
|
112
112
|
}
|
|
113
113
|
};
|
|
114
114
|
export const copyConfiguredFiles = async (spinner, config, quiet)=>{
|
|
@@ -135,7 +135,7 @@ export const copyConfiguredFiles = async (spinner, config, quiet)=>{
|
|
|
135
135
|
}
|
|
136
136
|
const copyPromises = matchingFiles.map((sourceFile)=>{
|
|
137
137
|
const relativePath = pathRelative(baseDir, sourceFile);
|
|
138
|
-
const destPath = pathResolve(outputFullPath, relativePath);
|
|
138
|
+
const destPath = pathResolve(outputFullPath || process.cwd(), relativePath);
|
|
139
139
|
const destDir = pathResolve(destPath, '..');
|
|
140
140
|
mkdirSync(destDir, {
|
|
141
141
|
recursive: true
|
|
@@ -298,4 +298,4 @@ export const updateTemplateName = (filePath, replace, replaceCaps)=>{
|
|
|
298
298
|
writeFileSync(filePath, data, 'utf8');
|
|
299
299
|
};
|
|
300
300
|
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hcHAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cblxuaW1wb3J0IGJveGVuIGZyb20gJ2JveGVuJztcbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQge2NvcHlGaWxlLCBleGlzdHNTeW5jLCBsc3RhdFN5bmMsIG1rZGlyU3luYywgcmVhZGRpclN5bmMsIHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luY30gZnJvbSAnZnMnO1xuaW1wb3J0IHtzeW5jIGFzIGdsb2JTeW5jfSBmcm9tICdnbG9iJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5LmpzJztcbmltcG9ydCBvcmEgZnJvbSAnb3JhJztcbmltcG9ydCB7YmFzZW5hbWUgYXMgcGF0aEJhc2VuYW1lLCBqb2luIGFzIHBhdGhKb2luLCByZWxhdGl2ZSBhcyBwYXRoUmVsYXRpdmUsIHJlc29sdmUgYXMgcGF0aFJlc29sdmV9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtyaW1yYWZTeW5jfSBmcm9tICdyaW1yYWYnO1xuXG5pbXBvcnQge2xvZ30gZnJvbSAnLi9sb2cuanMnO1xuXG5pbXBvcnQgdHlwZSB7TGV4Q29uZmlnVHlwZX0gZnJvbSAnLi4vTGV4Q29uZmlnLmpzJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIEdldEZpbGVuYW1lc1Byb3BzIHtcbiAgcmVhZG9ubHkgY2FsbGJhY2s/OiAoc3RhdHVzOiBudW1iZXIpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IGNsaU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHF1aWV0PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdHlwZT86IHN0cmluZztcbiAgcmVhZG9ubHkgdXNlVHlwZXNjcmlwdD86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBGaWxlbmFtZXNSZXN1bHQge1xuICBuYW1lQ2Fwczogc3RyaW5nO1xuICB0ZW1wbGF0ZUV4dDogc3RyaW5nO1xuICB0ZW1wbGF0ZVBhdGg6IHN0cmluZztcbiAgdGVtcGxhdGVSZWFjdDogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0RmlsZW5hbWVzID0gKHByb3BzOiBHZXRGaWxlbmFtZXNQcm9wcyk6IEZpbGVuYW1lc1Jlc3VsdCB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHtjYWxsYmFjaywgY2xpTmFtZSwgbmFtZSwgcXVpZXQsIHR5cGUsIHVzZVR5cGVzY3JpcHR9ID0gcHJvcHM7XG5cbiAgbGV0IG5hbWVDYXBzOiBzdHJpbmc7XG4gIGNvbnN0IGl0ZW1UeXBlczogc3RyaW5nW10gPSBbJ3N0b3JlcycsICd2aWV3cyddO1xuXG4gIGlmKCFuYW1lKSB7XG4gICAgaWYoaXRlbVR5cGVzLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6ICR7dHlwZX0gbmFtZSBpcyByZXF1aXJlZC4gUGxlYXNlIHVzZSAnbGV4IC1oJyBmb3Igb3B0aW9ucy5gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICBjYWxsYmFjaz8uKDEpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbmFtZUNhcHMgPSBgJHtuYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7bmFtZS5zdWJzdHIoMSl9YDtcbiAgfVxuXG4gIGxvZyhgJHtjbGlOYW1lfSBhZGRpbmcgJHtuYW1lfSAke3R5cGV9Li4uYCwgJ2luZm8nLCBxdWlldCk7XG5cbiAgbGV0IHRlbXBsYXRlUGF0aDogc3RyaW5nO1xuICBsZXQgdGVtcGxhdGVFeHQ6IHN0cmluZztcbiAgbGV0IHRlbXBsYXRlUmVhY3Q6IHN0cmluZztcblxuICBpZih1c2VUeXBlc2NyaXB0KSB7XG4gICAgdGVtcGxhdGVQYXRoID0gJy4uLy4uL3RlbXBsYXRlcy90eXBlc2NyaXB0JztcbiAgICB0ZW1wbGF0ZUV4dCA9ICcudHMnO1xuICAgIHRlbXBsYXRlUmVhY3QgPSAnLnRzeCc7XG4gIH0gZWxzZSB7XG4gICAgdGVtcGxhdGVQYXRoID0gJy4uLy4uL3RlbXBsYXRlcy9mbG93JztcbiAgICB0ZW1wbGF0ZUV4dCA9ICcuanMnO1xuICAgIHRlbXBsYXRlUmVhY3QgPSAnLmpzJztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbmFtZUNhcHMsXG4gICAgdGVtcGxhdGVFeHQsXG4gICAgdGVtcGxhdGVQYXRoLFxuICAgIHRlbXBsYXRlUmVhY3RcbiAgfTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3Bpbm5lciB7XG4gIGZhaWw6ICh0ZXh0Pzogc3RyaW5nKSA9PiB2b2lkO1xuICBzdGFydDogKHRleHQ/OiBzdHJpbmcpID0+IHZvaWQ7XG4gIHN1Y2NlZWQ6ICh0ZXh0Pzogc3RyaW5nKSA9PiB2b2lkO1xuICB0ZXh0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlU3Bpbm5lciA9IChxdWlldCA9IGZhbHNlKTogU3Bpbm5lciA9PiB7XG4gIGlmKHF1aWV0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZhaWw6ICgpID0+IHt9LFxuICAgICAgc3RhcnQ6ICgpID0+IHt9LFxuICAgICAgc3VjY2VlZDogKCkgPT4ge31cbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIG9yYSh7Y29sb3I6ICd5ZWxsb3cnfSk7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlUHJvZ3Jlc3NCYXIgPSAocGVyY2VudGFnZTogbnVtYmVyKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgd2lkdGggPSAyMDtcbiAgY29uc3QgZmlsbGVkID0gTWF0aC5yb3VuZCgocGVyY2VudGFnZSAvIDEwMCkgKiB3aWR0aCk7XG4gIGNvbnN0IGVtcHR5ID0gd2lkdGggLSBmaWxsZWQ7XG5cbiAgY29uc3QgZmlsbGVkQmFyID0gY2hhbGsuY3lhbign4paIJykucmVwZWF0KGZpbGxlZCk7XG4gIGNvbnN0IGVtcHR5QmFyID0gY2hhbGsuZ3JheSgn4paRJykucmVwZWF0KGVtcHR5KTtcblxuICByZXR1cm4gZmlsbGVkQmFyICsgZW1wdHlCYXI7XG59O1xuXG5leHBvcnQgY29uc3QgaGFuZGxlV2VicGFja1Byb2dyZXNzID0gKFxuICBvdXRwdXQ6IHN0cmluZyxcbiAgc3Bpbm5lcjogU3Bpbm5lcixcbiAgcXVpZXQ6IGJvb2xlYW4sXG4gIGVtb2ppOiBzdHJpbmcsXG4gIGFjdGlvbjogc3RyaW5nXG4pOiB2b2lkID0+IHtcbiAgaWYocXVpZXQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBwcm9ncmVzc01hdGNoID0gb3V0cHV0Lm1hdGNoKC9cXFt3ZWJwYWNrXFwuUHJvZ3Jlc3NcXF0gKFxcZCspJS8pO1xuICBpZihwcm9ncmVzc01hdGNoKSB7XG4gICAgY29uc3QgcHJvZ3Jlc3MgPSBwYXJzZUludChwcm9ncmVzc01hdGNoWzFdKTtcbiAgICBjb25zdCBwcm9ncmVzc0JhciA9IGNyZWF0ZVByb2dyZXNzQmFyKHByb2dyZXNzKTtcbiAgICBzcGlubmVyLnRleHQgPSBgJHtlbW9qaX0gJHthY3Rpb259OiAke3Byb2dyZXNzQmFyfSAke3Byb2dyZXNzfSVgO1xuICB9IGVsc2UgaWYob3V0cHV0LmluY2x1ZGVzKCdbd2VicGFjay5Qcm9ncmVzc10nKSkge1xuICAgIGNvbnN0IGdlbmVyYWxQcm9ncmVzc01hdGNoID0gb3V0cHV0Lm1hdGNoKC8oXFxkKyklLyk7XG4gICAgaWYoZ2VuZXJhbFByb2dyZXNzTWF0Y2gpIHtcbiAgICAgIGNvbnN0IHByb2dyZXNzID0gcGFyc2VJbnQoZ2VuZXJhbFByb2dyZXNzTWF0Y2hbMV0pO1xuICAgICAgY29uc3QgcHJvZ3Jlc3NCYXIgPSBjcmVhdGVQcm9ncmVzc0Jhcihwcm9ncmVzcyk7XG4gICAgICBzcGlubmVyLnRleHQgPSBgJHtlbW9qaX0gJHthY3Rpb259OiAke3Byb2dyZXNzQmFyfSAke3Byb2dyZXNzfSVgO1xuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGNvcHlGaWxlcyA9IGFzeW5jIChmaWxlczogc3RyaW5nW10sIHR5cGVOYW1lOiBzdHJpbmcsIHNwaW5uZXIsIGNvbmZpZzogTGV4Q29uZmlnVHlwZSkgPT4ge1xuICBjb25zdCB7b3V0cHV0RnVsbFBhdGgsIHNvdXJjZUZ1bGxQYXRofSA9IGNvbmZpZztcbiAgY29uc3QgaXRlbXMgPSBmaWxlcy5tYXAoKGZpbGVOYW1lOiBzdHJpbmcpID0+ICh7XG4gICAgZnJvbTogZmlsZU5hbWUsXG4gICAgdG86IHBhdGhSZXNvbHZlKG91dHB1dEZ1bGxQYXRoLCBwYXRoUmVsYXRpdmUoc291cmNlRnVsbFBhdGgsIGZpbGVOYW1lKSlcbiAgfSkpO1xuXG4gIHRyeSB7XG4gICAgc3Bpbm5lci5zdGFydChgQ29weWluZyAke3R5cGVOYW1lfSBmaWxlcy4uLmApO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKGl0ZW1zLm1hcCgoe2Zyb20sIHRvfSkgPT4gbmV3IFByb21pc2UoXG4gICAgICAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIG1rZGlyU3luYyhwYXRoUmVzb2x2ZSh0bywgJy4uJyksIHtyZWN1cnNpdmU6IHRydWV9KTtcbiAgICAgICAgcmV0dXJuIGNvcHlGaWxlKGZyb20sIHRvLCAoY29weUVycm9yKSA9PiB7XG4gICAgICAgICAgaWYoY29weUVycm9yKSB7XG4gICAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICkpKTtcbiAgICBzcGlubmVyLnN1Y2NlZWQoYFN1Y2Nlc3NmdWxseSBjb3BpZWQgJHtmaWxlcy5sZW5ndGh9ICR7dHlwZU5hbWV9IGZpbGVzIWApO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgc3Bpbm5lci5mYWlsKGBDb3B5aW5nIG9mICR7dHlwZU5hbWV9IGZpbGVzIGZhaWxlZC5gKTtcbiAgICBsb2coYEVycm9yOiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJyk7XG4gICAgbG9nKGVycm9yLCAnZXJyb3InKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGNvcHlDb25maWd1cmVkRmlsZXMgPSBhc3luYyAoc3Bpbm5lciwgY29uZmlnOiBMZXhDb25maWdUeXBlLCBxdWlldDogYm9vbGVhbikgPT4ge1xuICBjb25zdCB7Y29weUZpbGVzOiBjb3B5RmlsZXNDb25maWcsIG91dHB1dEZ1bGxQYXRoLCBzb3VyY2VGdWxsUGF0aCwgc291cmNlUGF0aH0gPSBjb25maWc7XG4gIGlmKCFjb3B5RmlsZXNDb25maWcgfHwgY29weUZpbGVzQ29uZmlnLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHRyeSB7XG4gICAgc3Bpbm5lci5zdGFydCgnQ29weWluZyBjb25maWd1cmVkIGZpbGVzLi4uJyk7XG4gICAgbGV0IHRvdGFsQ29waWVkID0gMDtcblxuICAgIGNvbnN0IGJhc2VEaXIgPSBzb3VyY2VGdWxsUGF0aCB8fCAoc291cmNlUGF0aCA/IHBhdGhSZXNvbHZlKHByb2Nlc3MuY3dkKCksIHNvdXJjZVBhdGgpIDogcHJvY2Vzcy5jd2QoKSk7XG4gICAgY29uc3QgYWxsQ29weVByb21pc2VzOiBQcm9taXNlPHVua25vd24+W10gPSBbXTtcblxuICAgIGZvcihjb25zdCBwYXR0ZXJuIG9mIGNvcHlGaWxlc0NvbmZpZykge1xuICAgICAgY29uc3QgcmVzb2x2ZWRQYXR0ZXJuID0gcGF0aFJlc29sdmUoYmFzZURpciwgcGF0dGVybik7XG4gICAgICBjb25zdCBtYXRjaGluZ0ZpbGVzID0gZ2xvYlN5bmMocmVzb2x2ZWRQYXR0ZXJuLCB7XG4gICAgICAgIGFic29sdXRlOiB0cnVlLFxuICAgICAgICBub2RpcjogdHJ1ZVxuICAgICAgfSk7XG5cbiAgICAgIGlmKG1hdGNoaW5nRmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGlmKCFxdWlldCkge1xuICAgICAgICAgIGxvZyhgV2FybmluZzogTm8gZmlsZXMgZm91bmQgbWF0Y2hpbmcgcGF0dGVybjogJHtwYXR0ZXJufWAsICd3YXJuJywgcXVpZXQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb3B5UHJvbWlzZXMgPSBtYXRjaGluZ0ZpbGVzLm1hcCgoc291cmNlRmlsZSkgPT4ge1xuICAgICAgICBjb25zdCByZWxhdGl2ZVBhdGggPSBwYXRoUmVsYXRpdmUoYmFzZURpciwgc291cmNlRmlsZSk7XG4gICAgICAgIGNvbnN0IGRlc3RQYXRoID0gcGF0aFJlc29sdmUob3V0cHV0RnVsbFBhdGgsIHJlbGF0aXZlUGF0aCk7XG4gICAgICAgIGNvbnN0IGRlc3REaXIgPSBwYXRoUmVzb2x2ZShkZXN0UGF0aCwgJy4uJyk7XG4gICAgICAgIG1rZGlyU3luYyhkZXN0RGlyLCB7cmVjdXJzaXZlOiB0cnVlfSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICBjb3B5RmlsZShzb3VyY2VGaWxlLCBkZXN0UGF0aCwgKGNvcHlFcnJvcikgPT4ge1xuICAgICAgICAgICAgaWYoY29weUVycm9yKSB7XG4gICAgICAgICAgICAgIHJlamVjdChjb3B5RXJyb3IpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgYWxsQ29weVByb21pc2VzLnB1c2goLi4uY29weVByb21pc2VzKTtcbiAgICAgIHRvdGFsQ29waWVkICs9IG1hdGNoaW5nRmlsZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIGF3YWl0IFByb21pc2UuYWxsKGFsbENvcHlQcm9taXNlcyk7XG5cbiAgICBpZih0b3RhbENvcGllZCA+IDApIHtcbiAgICAgIHNwaW5uZXIuc3VjY2VlZChgU3VjY2Vzc2Z1bGx5IGNvcGllZCAke3RvdGFsQ29waWVkfSBjb25maWd1cmVkIGZpbGVzIWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBzcGlubmVyLnN1Y2NlZWQoJ05vIGNvbmZpZ3VyZWQgZmlsZXMgdG8gY29weScpO1xuICAgIH1cbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHNwaW5uZXIuZmFpbCgnRmFpbGVkIHRvIGNvcHkgY29uZmlndXJlZCBmaWxlcycpO1xuICAgIGxvZyhgRXJyb3IgY29weWluZyBjb25maWd1cmVkIGZpbGVzOiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY29weUZpbGVTeW5jID0gKHNvdXJjZTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZykgPT4ge1xuICBsZXQgdGFyZ2V0RmlsZTogc3RyaW5nID0gdGFyZ2V0O1xuXG4gIGlmKGV4aXN0c1N5bmModGFyZ2V0KSkge1xuICAgIGlmKGxzdGF0U3luYyh0YXJnZXQpLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIHRhcmdldEZpbGUgPSBwYXRoSm9pbih0YXJnZXQsIHBhdGhCYXNlbmFtZShzb3VyY2UpKTtcbiAgICB9XG4gIH1cblxuICB3cml0ZUZpbGVTeW5jKHRhcmdldEZpbGUsIHJlYWRGaWxlU3luYyhzb3VyY2UpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb3B5Rm9sZGVyUmVjdXJzaXZlU3luYyA9IChzb3VyY2U6IHN0cmluZywgdGFyZ2V0OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgbGV0IGZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0IHRhcmdldEZvbGRlcjogc3RyaW5nID0gcGF0aEpvaW4odGFyZ2V0LCBwYXRoQmFzZW5hbWUoc291cmNlKSk7XG5cbiAgaWYoIWV4aXN0c1N5bmModGFyZ2V0Rm9sZGVyKSkge1xuICAgIG1rZGlyU3luYyh0YXJnZXRGb2xkZXIpO1xuICB9XG5cbiAgaWYobHN0YXRTeW5jKHNvdXJjZSkuaXNEaXJlY3RvcnkoKSkge1xuICAgIGZpbGVzID0gcmVhZGRpclN5bmMoc291cmNlKTtcbiAgICBmaWxlcy5mb3JFYWNoKChmaWxlOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGN1clNvdXJjZTogc3RyaW5nID0gcGF0aEpvaW4oc291cmNlLCBmaWxlKTtcblxuICAgICAgaWYobHN0YXRTeW5jKGN1clNvdXJjZSkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICBjb3B5Rm9sZGVyUmVjdXJzaXZlU3luYyhjdXJTb3VyY2UsIHRhcmdldEZvbGRlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb3B5RmlsZVN5bmMoY3VyU291cmNlLCB0YXJnZXRGb2xkZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UGFja2FnZUpzb24gPSAocGFja2FnZVBhdGg/OiBzdHJpbmcpID0+IHtcbiAgY29uc3QgZm9ybWF0UGF0aDogc3RyaW5nID0gcGFja2FnZVBhdGggfHwgYCR7cHJvY2Vzcy5jd2QoKX0vcGFja2FnZS5qc29uYDtcbiAgY29uc3QgcGFja2FnZURhdGE6IHN0cmluZyA9IHJlYWRGaWxlU3luYyhmb3JtYXRQYXRoKS50b1N0cmluZygpO1xuXG4gIHJldHVybiBKU09OLnBhcnNlKHBhY2thZ2VEYXRhKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaWxlc0J5RXh0ID0gKGV4dDogc3RyaW5nLCBjb25maWc6IExleENvbmZpZ1R5cGUpOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IHtzb3VyY2VGdWxsUGF0aH0gPSBjb25maWc7XG4gIHJldHVybiBnbG9iU3luYyhgKiovKioke2V4dH1gLCB7XG4gICAgYWJzb2x1dGU6IHRydWUsXG4gICAgY3dkOiBzb3VyY2VGdWxsUGF0aCxcbiAgICBub2RpcjogdHJ1ZVxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVDb25mbGljdE1vZHVsZXMgPSAobW9kdWxlTGlzdDogb2JqZWN0KSA9PiB7XG4gIGNvbnN0IHVwZGF0ZWRMaXN0OiBvYmplY3QgPSB7Li4ubW9kdWxlTGlzdH07XG5cbiAgT2JqZWN0LmtleXModXBkYXRlZExpc3QpLmZvckVhY2goKG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHJlZ2V4OiBSZWdFeHAgPSBuZXcgUmVnRXhwKCdeKD8hQHR5cGVzLykuKj8odml0ZXN0fHdlYnBhY2spLiokJywgJ2dpJyk7XG4gICAgaWYocmVnZXgudGVzdChtb2R1bGVOYW1lKSkge1xuICAgICAgZGVsZXRlIHVwZGF0ZWRMaXN0W21vZHVsZU5hbWVdO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHVwZGF0ZWRMaXN0O1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUZpbGVzID0gKGZpbGVOYW1lOiBzdHJpbmcsIGlzUmVsYXRpdmU6IGJvb2xlYW4gPSBmYWxzZSkgPT4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICBjb25zdCBmaWxlUGF0aDogc3RyaW5nID0gaXNSZWxhdGl2ZSA/IHBhdGhSZXNvbHZlKHByb2Nlc3MuY3dkKCksIGZpbGVOYW1lKSA6IGZpbGVOYW1lO1xuXG4gIHRyeSB7XG4gICAgcmltcmFmU3luYyhmaWxlUGF0aCk7XG4gICAgcmV0dXJuIHJlc29sdmUobnVsbCk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBjb25zdCByZW1vdmVNb2R1bGVzID0gKCkgPT4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICB0cnkge1xuICAgIGF3YWl0IHJlbW92ZUZpbGVzKCcuL25vZGVfbW9kdWxlcycsIHRydWUpO1xuICAgIGF3YWl0IHJlbW92ZUZpbGVzKCcuL3lhcm4ubG9jaycsIHRydWUpO1xuICAgIGF3YWl0IHJlbW92ZUZpbGVzKCcuL3BhY2thZ2UtbG9jay5qc29uJywgdHJ1ZSk7XG5cbiAgICByZXNvbHZlKG51bGwpO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgcmVqZWN0KGVycm9yKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBjb25zdCBzZXRQYWNrYWdlSnNvbiA9IChqc29uLCBwYWNrYWdlUGF0aD86IHN0cmluZykgPT4ge1xuICBpZighanNvbikge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGZvcm1hdFBhdGg6IHN0cmluZyA9IHBhY2thZ2VQYXRoIHx8IGAke3Byb2Nlc3MuY3dkKCl9L3BhY2thZ2UuanNvbmA7XG5cbiAgd3JpdGVGaWxlU3luYyhmb3JtYXRQYXRoLCBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKSk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIExpbmtlZE1vZHVsZVR5cGUge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGxpbmtlZE1vZHVsZXMgPSAoc3RhcnRQYXRoPzogc3RyaW5nKTogTGlua2VkTW9kdWxlVHlwZVtdID0+IHtcbiAgY29uc3Qgd29ya2luZ1BhdGg6IHN0cmluZyA9IHN0YXJ0UGF0aCB8fCBwcm9jZXNzLmN3ZCgpO1xuICBsZXQgbW9kdWxlUGF0aDogc3RyaW5nO1xuICBsZXQgcHJlZml4OiBzdHJpbmc7XG5cbiAgaWYod29ya2luZ1BhdGguaW5jbHVkZXMoJ0AnKSkge1xuICAgIHByZWZpeCA9IGBAJHt3b3JraW5nUGF0aC5zcGxpdCgnQCcpLnBvcCgpfWA7XG4gICAgbW9kdWxlUGF0aCA9IHdvcmtpbmdQYXRoO1xuICB9IGVsc2Uge1xuICAgIG1vZHVsZVBhdGggPSBwYXRoSm9pbih3b3JraW5nUGF0aCwgJ25vZGVfbW9kdWxlcycpO1xuICB9XG5cbiAgY29uc3QgZm91bmRQYXRoczogc3RyaW5nW10gPSBnbG9iU3luYygnKicsIHtcbiAgICBhYnNvbHV0ZTogdHJ1ZSxcbiAgICBjd2Q6IG1vZHVsZVBhdGgsXG4gICAgbm9kaXI6IGZhbHNlXG4gIH0pO1xuXG4gIHJldHVybiBmb3VuZFBhdGhzLnJlZHVjZSgobGlzdDogTGlua2VkTW9kdWxlVHlwZVtdLCBmb3VuZFBhdGg6IHN0cmluZykgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGF0cyA9IGxzdGF0U3luYyhmb3VuZFBhdGgpO1xuXG4gICAgICBpZihzdGF0cy5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgIGNvbnN0IGRlZXBMaXN0OiBMaW5rZWRNb2R1bGVUeXBlW10gPSBsaW5rZWRNb2R1bGVzKGZvdW5kUGF0aCk7XG4gICAgICAgIGxpc3QucHVzaCguLi5kZWVwTGlzdCk7XG4gICAgICB9IGVsc2UgaWYoc3RhdHMuaXNTeW1ib2xpY0xpbmsoKSkge1xuICAgICAgICBjb25zdCBtb2R1bGVOYW1lczogc3RyaW5nW10gPSAoW3ByZWZpeCwgcGF0aEJhc2VuYW1lKGZvdW5kUGF0aCldKS5maWx0ZXIoKGl0ZW06IHN0cmluZykgPT4gIWlzRW1wdHkoaXRlbSkpO1xuICAgICAgICBsaXN0LnB1c2goe25hbWU6IGAke21vZHVsZU5hbWVzLmpvaW4oJy8nKX1gLCBwYXRoOiBmb3VuZFBhdGh9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSBjYXRjaHtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cbiAgfSwgW10pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNoZWNrTGlua2VkTW9kdWxlcyA9ICgpID0+IHtcbiAgY29uc3QgbGlua2VkID0gbGlua2VkTW9kdWxlcygpO1xuXG4gIGlmKGxpbmtlZC5sZW5ndGgpIHtcbiAgICBjb25zdCBtc2dNb2R1bGU6IHN0cmluZyA9IGxpbmtlZC5sZW5ndGggPiAxID8gJ01vZHVsZXMnIDogJ01vZHVsZSc7XG4gICAgY29uc3QgbGlua2VkTXNnOiBzdHJpbmcgPSBsaW5rZWQucmVkdWNlKFxuICAgICAgKG1zZzogc3RyaW5nLCBsaW5rZWRNb2R1bGU6IExpbmtlZE1vZHVsZVR5cGUpID0+XG4gICAgICAgIGAke21zZ31cXG4gKiAke2xpbmtlZE1vZHVsZS5uYW1lfWAsXG4gICAgICBgTGlua2VkICR7bXNnTW9kdWxlfTpgXG4gICAgKTtcblxuICAgIGxvZyhib3hlbihsaW5rZWRNc2csIHtkaW1Cb3JkZXI6IHRydWUsIHBhZGRpbmc6IDF9KSwgJ3dhcm4nKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVRlbXBsYXRlTmFtZSA9IChmaWxlUGF0aDogc3RyaW5nLCByZXBsYWNlOiBzdHJpbmcsIHJlcGxhY2VDYXBzOiBzdHJpbmcpID0+IHtcbiAgbGV0IGRhdGE6IHN0cmluZyA9IHJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0ZjgnKTtcbiAgZGF0YSA9IGRhdGEucmVwbGFjZSgvc2FtcGxlL2csIHJlcGxhY2UpO1xuICBkYXRhID0gZGF0YS5yZXBsYWNlKC9TYW1wbGUvZywgcmVwbGFjZUNhcHMpO1xuICB3cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBkYXRhLCAndXRmOCcpO1xufTtcbiJdLCJuYW1lcyI6WyJib3hlbiIsImNoYWxrIiwiY29weUZpbGUiLCJleGlzdHNTeW5jIiwibHN0YXRTeW5jIiwibWtkaXJTeW5jIiwicmVhZGRpclN5bmMiLCJyZWFkRmlsZVN5bmMiLCJ3cml0ZUZpbGVTeW5jIiwic3luYyIsImdsb2JTeW5jIiwiaXNFbXB0eSIsIm9yYSIsImJhc2VuYW1lIiwicGF0aEJhc2VuYW1lIiwiam9pbiIsInBhdGhKb2luIiwicmVsYXRpdmUiLCJwYXRoUmVsYXRpdmUiLCJyZXNvbHZlIiwicGF0aFJlc29sdmUiLCJyaW1yYWZTeW5jIiwibG9nIiwiZ2V0RmlsZW5hbWVzIiwicHJvcHMiLCJjYWxsYmFjayIsImNsaU5hbWUiLCJuYW1lIiwicXVpZXQiLCJ0eXBlIiwidXNlVHlwZXNjcmlwdCIsIm5hbWVDYXBzIiwiaXRlbVR5cGVzIiwiaW5jbHVkZXMiLCJ1bmRlZmluZWQiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInN1YnN0ciIsInRlbXBsYXRlUGF0aCIsInRlbXBsYXRlRXh0IiwidGVtcGxhdGVSZWFjdCIsImNyZWF0ZVNwaW5uZXIiLCJmYWlsIiwic3RhcnQiLCJzdWNjZWVkIiwiY29sb3IiLCJjcmVhdGVQcm9ncmVzc0JhciIsInBlcmNlbnRhZ2UiLCJ3aWR0aCIsImZpbGxlZCIsIk1hdGgiLCJyb3VuZCIsImVtcHR5IiwiZmlsbGVkQmFyIiwiY3lhbiIsInJlcGVhdCIsImVtcHR5QmFyIiwiZ3JheSIsImhhbmRsZVdlYnBhY2tQcm9ncmVzcyIsIm91dHB1dCIsInNwaW5uZXIiLCJlbW9qaSIsImFjdGlvbiIsInByb2dyZXNzTWF0Y2giLCJtYXRjaCIsInByb2dyZXNzIiwicGFyc2VJbnQiLCJwcm9ncmVzc0JhciIsInRleHQiLCJnZW5lcmFsUHJvZ3Jlc3NNYXRjaCIsImNvcHlGaWxlcyIsImZpbGVzIiwidHlwZU5hbWUiLCJjb25maWciLCJvdXRwdXRGdWxsUGF0aCIsInNvdXJjZUZ1bGxQYXRoIiwiaXRlbXMiLCJtYXAiLCJmaWxlTmFtZSIsImZyb20iLCJ0byIsIlByb21pc2UiLCJhbGwiLCJyZWplY3QiLCJyZWN1cnNpdmUiLCJjb3B5RXJyb3IiLCJsZW5ndGgiLCJlcnJvciIsIm1lc3NhZ2UiLCJjb3B5Q29uZmlndXJlZEZpbGVzIiwiY29weUZpbGVzQ29uZmlnIiwic291cmNlUGF0aCIsInRvdGFsQ29waWVkIiwiYmFzZURpciIsInByb2Nlc3MiLCJjd2QiLCJhbGxDb3B5UHJvbWlzZXMiLCJwYXR0ZXJuIiwicmVzb2x2ZWRQYXR0ZXJuIiwibWF0Y2hpbmdGaWxlcyIsImFic29sdXRlIiwibm9kaXIiLCJjb3B5UHJvbWlzZXMiLCJzb3VyY2VGaWxlIiwicmVsYXRpdmVQYXRoIiwiZGVzdFBhdGgiLCJkZXN0RGlyIiwicHVzaCIsImNvcHlGaWxlU3luYyIsInNvdXJjZSIsInRhcmdldCIsInRhcmdldEZpbGUiLCJpc0RpcmVjdG9yeSIsImNvcHlGb2xkZXJSZWN1cnNpdmVTeW5jIiwidGFyZ2V0Rm9sZGVyIiwiZm9yRWFjaCIsImZpbGUiLCJjdXJTb3VyY2UiLCJnZXRQYWNrYWdlSnNvbiIsInBhY2thZ2VQYXRoIiwiZm9ybWF0UGF0aCIsInBhY2thZ2VEYXRhIiwidG9TdHJpbmciLCJKU09OIiwicGFyc2UiLCJnZXRGaWxlc0J5RXh0IiwiZXh0IiwicmVtb3ZlQ29uZmxpY3RNb2R1bGVzIiwibW9kdWxlTGlzdCIsInVwZGF0ZWRMaXN0IiwiT2JqZWN0Iiwia2V5cyIsIm1vZHVsZU5hbWUiLCJyZWdleCIsIlJlZ0V4cCIsInRlc3QiLCJyZW1vdmVGaWxlcyIsImlzUmVsYXRpdmUiLCJmaWxlUGF0aCIsInJlbW92ZU1vZHVsZXMiLCJzZXRQYWNrYWdlSnNvbiIsImpzb24iLCJzdHJpbmdpZnkiLCJsaW5rZWRNb2R1bGVzIiwic3RhcnRQYXRoIiwid29ya2luZ1BhdGgiLCJtb2R1bGVQYXRoIiwicHJlZml4Iiwic3BsaXQiLCJwb3AiLCJmb3VuZFBhdGhzIiwicmVkdWNlIiwibGlzdCIsImZvdW5kUGF0aCIsInN0YXRzIiwiZGVlcExpc3QiLCJpc1N5bWJvbGljTGluayIsIm1vZHVsZU5hbWVzIiwiZmlsdGVyIiwiaXRlbSIsInBhdGgiLCJjaGVja0xpbmtlZE1vZHVsZXMiLCJsaW5rZWQiLCJtc2dNb2R1bGUiLCJsaW5rZWRNc2ciLCJtc2ciLCJsaW5rZWRNb2R1bGUiLCJkaW1Cb3JkZXIiLCJwYWRkaW5nIiwidXBkYXRlVGVtcGxhdGVOYW1lIiwicmVwbGFjZSIsInJlcGxhY2VDYXBzIiwiZGF0YSJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBRUQsT0FBT0EsV0FBVyxRQUFRO0FBQzFCLE9BQU9DLFdBQVcsUUFBUTtBQUMxQixTQUFRQyxRQUFRLEVBQUVDLFVBQVUsRUFBRUMsU0FBUyxFQUFFQyxTQUFTLEVBQUVDLFdBQVcsRUFBRUMsWUFBWSxFQUFFQyxhQUFhLFFBQU8sS0FBSztBQUN4RyxTQUFRQyxRQUFRQyxRQUFRLFFBQU8sT0FBTztBQUN0QyxPQUFPQyxhQUFhLG9CQUFvQjtBQUN4QyxPQUFPQyxTQUFTLE1BQU07QUFDdEIsU0FBUUMsWUFBWUMsWUFB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
|
|
301
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hcHAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cblxuaW1wb3J0IGJveGVuIGZyb20gJ2JveGVuJztcbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQge2NvcHlGaWxlLCBleGlzdHNTeW5jLCBsc3RhdFN5bmMsIG1rZGlyU3luYywgcmVhZGRpclN5bmMsIHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luY30gZnJvbSAnZnMnO1xuaW1wb3J0IHtzeW5jIGFzIGdsb2JTeW5jfSBmcm9tICdnbG9iJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5LmpzJztcbmltcG9ydCBvcmEgZnJvbSAnb3JhJztcbmltcG9ydCB7YmFzZW5hbWUgYXMgcGF0aEJhc2VuYW1lLCBqb2luIGFzIHBhdGhKb2luLCByZWxhdGl2ZSBhcyBwYXRoUmVsYXRpdmUsIHJlc29sdmUgYXMgcGF0aFJlc29sdmV9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtyaW1yYWZTeW5jfSBmcm9tICdyaW1yYWYnO1xuXG5pbXBvcnQge2xvZ30gZnJvbSAnLi9sb2cuanMnO1xuXG5pbXBvcnQgdHlwZSB7TGV4Q29uZmlnVHlwZX0gZnJvbSAnLi4vTGV4Q29uZmlnLmpzJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIEdldEZpbGVuYW1lc1Byb3BzIHtcbiAgcmVhZG9ubHkgY2FsbGJhY2s/OiAoc3RhdHVzOiBudW1iZXIpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IGNsaU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHF1aWV0PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdHlwZT86IHN0cmluZztcbiAgcmVhZG9ubHkgdXNlVHlwZXNjcmlwdD86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBGaWxlbmFtZXNSZXN1bHQge1xuICBuYW1lQ2Fwczogc3RyaW5nO1xuICB0ZW1wbGF0ZUV4dDogc3RyaW5nO1xuICB0ZW1wbGF0ZVBhdGg6IHN0cmluZztcbiAgdGVtcGxhdGVSZWFjdDogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0RmlsZW5hbWVzID0gKHByb3BzOiBHZXRGaWxlbmFtZXNQcm9wcyk6IEZpbGVuYW1lc1Jlc3VsdCB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHtjYWxsYmFjaywgY2xpTmFtZSwgbmFtZSwgcXVpZXQsIHR5cGUsIHVzZVR5cGVzY3JpcHR9ID0gcHJvcHM7XG5cbiAgbGV0IG5hbWVDYXBzID0gJyc7XG4gIGNvbnN0IGl0ZW1UeXBlczogc3RyaW5nW10gPSBbJ3N0b3JlcycsICd2aWV3cyddO1xuXG4gIGlmKCFuYW1lKSB7XG4gICAgaWYodHlwZSAmJiBpdGVtVHlwZXMuaW5jbHVkZXModHlwZSkpIHtcbiAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogJHt0eXBlfSBuYW1lIGlzIHJlcXVpcmVkLiBQbGVhc2UgdXNlICdsZXggLWgnIGZvciBvcHRpb25zLmAsICdlcnJvcicsIHF1aWV0KTtcbiAgICAgIGNhbGxiYWNrPy4oMSk7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBuYW1lQ2FwcyA9IGAke25hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHtuYW1lLnN1YnN0cigxKX1gO1xuICB9XG5cbiAgbG9nKGAke2NsaU5hbWV9IGFkZGluZyAke25hbWV9ICR7dHlwZX0uLi5gLCAnaW5mbycsIHF1aWV0KTtcblxuICBsZXQgdGVtcGxhdGVQYXRoOiBzdHJpbmc7XG4gIGxldCB0ZW1wbGF0ZUV4dDogc3RyaW5nO1xuICBsZXQgdGVtcGxhdGVSZWFjdDogc3RyaW5nO1xuXG4gIGlmKHVzZVR5cGVzY3JpcHQpIHtcbiAgICB0ZW1wbGF0ZVBhdGggPSAnLi4vLi4vdGVtcGxhdGVzL3R5cGVzY3JpcHQnO1xuICAgIHRlbXBsYXRlRXh0ID0gJy50cyc7XG4gICAgdGVtcGxhdGVSZWFjdCA9ICcudHN4JztcbiAgfSBlbHNlIHtcbiAgICB0ZW1wbGF0ZVBhdGggPSAnLi4vLi4vdGVtcGxhdGVzL2Zsb3cnO1xuICAgIHRlbXBsYXRlRXh0ID0gJy5qcyc7XG4gICAgdGVtcGxhdGVSZWFjdCA9ICcuanMnO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lQ2FwcyxcbiAgICB0ZW1wbGF0ZUV4dCxcbiAgICB0ZW1wbGF0ZVBhdGgsXG4gICAgdGVtcGxhdGVSZWFjdFxuICB9O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBTcGlubmVyIHtcbiAgZmFpbDogKHRleHQ/OiBzdHJpbmcpID0+IHZvaWQ7XG4gIHN0YXJ0OiAodGV4dD86IHN0cmluZykgPT4gdm9pZDtcbiAgc3VjY2VlZDogKHRleHQ/OiBzdHJpbmcpID0+IHZvaWQ7XG4gIHRleHQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVTcGlubmVyID0gKHF1aWV0ID0gZmFsc2UpOiBTcGlubmVyID0+IHtcbiAgaWYocXVpZXQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZmFpbDogKCkgPT4ge30sXG4gICAgICBzdGFydDogKCkgPT4ge30sXG4gICAgICBzdWNjZWVkOiAoKSA9PiB7fVxuICAgIH07XG4gIH1cblxuICByZXR1cm4gb3JhKHtjb2xvcjogJ3llbGxvdyd9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVQcm9ncmVzc0JhciA9IChwZXJjZW50YWdlOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB3aWR0aCA9IDIwO1xuICBjb25zdCBmaWxsZWQgPSBNYXRoLnJvdW5kKChwZXJjZW50YWdlIC8gMTAwKSAqIHdpZHRoKTtcbiAgY29uc3QgZW1wdHkgPSB3aWR0aCAtIGZpbGxlZDtcblxuICBjb25zdCBmaWxsZWRCYXIgPSBjaGFsay5jeWFuKCfilognKS5yZXBlYXQoZmlsbGVkKTtcbiAgY29uc3QgZW1wdHlCYXIgPSBjaGFsay5ncmF5KCfilpEnKS5yZXBlYXQoZW1wdHkpO1xuXG4gIHJldHVybiBmaWxsZWRCYXIgKyBlbXB0eUJhcjtcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVXZWJwYWNrUHJvZ3Jlc3MgPSAoXG4gIG91dHB1dDogc3RyaW5nLFxuICBzcGlubmVyOiBTcGlubmVyLFxuICBxdWlldDogYm9vbGVhbixcbiAgZW1vamk6IHN0cmluZyxcbiAgYWN0aW9uOiBzdHJpbmdcbik6IHZvaWQgPT4ge1xuICBpZihxdWlldCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHByb2dyZXNzTWF0Y2ggPSBvdXRwdXQubWF0Y2goL1xcW3dlYnBhY2tcXC5Qcm9ncmVzc1xcXSAoXFxkKyklLyk7XG4gIGlmKHByb2dyZXNzTWF0Y2gpIHtcbiAgICBjb25zdCBwcm9ncmVzcyA9IHBhcnNlSW50KHByb2dyZXNzTWF0Y2hbMV0pO1xuICAgIGNvbnN0IHByb2dyZXNzQmFyID0gY3JlYXRlUHJvZ3Jlc3NCYXIocHJvZ3Jlc3MpO1xuICAgIHNwaW5uZXIudGV4dCA9IGAke2Vtb2ppfSAke2FjdGlvbn06ICR7cHJvZ3Jlc3NCYXJ9ICR7cHJvZ3Jlc3N9JWA7XG4gIH0gZWxzZSBpZihvdXRwdXQuaW5jbHVkZXMoJ1t3ZWJwYWNrLlByb2dyZXNzXScpKSB7XG4gICAgY29uc3QgZ2VuZXJhbFByb2dyZXNzTWF0Y2ggPSBvdXRwdXQubWF0Y2goLyhcXGQrKSUvKTtcbiAgICBpZihnZW5lcmFsUHJvZ3Jlc3NNYXRjaCkge1xuICAgICAgY29uc3QgcHJvZ3Jlc3MgPSBwYXJzZUludChnZW5lcmFsUHJvZ3Jlc3NNYXRjaFsxXSk7XG4gICAgICBjb25zdCBwcm9ncmVzc0JhciA9IGNyZWF0ZVByb2dyZXNzQmFyKHByb2dyZXNzKTtcbiAgICAgIHNwaW5uZXIudGV4dCA9IGAke2Vtb2ppfSAke2FjdGlvbn06ICR7cHJvZ3Jlc3NCYXJ9ICR7cHJvZ3Jlc3N9JWA7XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY29weUZpbGVzID0gYXN5bmMgKGZpbGVzOiBzdHJpbmdbXSwgdHlwZU5hbWU6IHN0cmluZywgc3Bpbm5lcjogU3Bpbm5lciwgY29uZmlnOiBMZXhDb25maWdUeXBlKSA9PiB7XG4gIGNvbnN0IHtvdXRwdXRGdWxsUGF0aCwgc291cmNlRnVsbFBhdGh9ID0gY29uZmlnO1xuICBjb25zdCBpdGVtcyA9IGZpbGVzLm1hcCgoZmlsZU5hbWU6IHN0cmluZykgPT4gKHtcbiAgICBmcm9tOiBmaWxlTmFtZSxcbiAgICB0bzogcGF0aFJlc29sdmUob3V0cHV0RnVsbFBhdGggfHwgcHJvY2Vzcy5jd2QoKSwgcGF0aFJlbGF0aXZlKHNvdXJjZUZ1bGxQYXRoIHx8IHByb2Nlc3MuY3dkKCksIGZpbGVOYW1lKSlcbiAgfSkpO1xuXG4gIHRyeSB7XG4gICAgc3Bpbm5lci5zdGFydChgQ29weWluZyAke3R5cGVOYW1lfSBmaWxlcy4uLmApO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKGl0ZW1zLm1hcCgoe2Zyb20sIHRvfSkgPT4gbmV3IFByb21pc2UoXG4gICAgICAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIG1rZGlyU3luYyhwYXRoUmVzb2x2ZSh0bywgJy4uJyksIHtyZWN1cnNpdmU6IHRydWV9KTtcbiAgICAgICAgcmV0dXJuIGNvcHlGaWxlKGZyb20sIHRvLCAoY29weUVycm9yKSA9PiB7XG4gICAgICAgICAgaWYoY29weUVycm9yKSB7XG4gICAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICkpKTtcbiAgICBzcGlubmVyLnN1Y2NlZWQoYFN1Y2Nlc3NmdWxseSBjb3BpZWQgJHtmaWxlcy5sZW5ndGh9ICR7dHlwZU5hbWV9IGZpbGVzIWApO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgc3Bpbm5lci5mYWlsKGBDb3B5aW5nIG9mICR7dHlwZU5hbWV9IGZpbGVzIGZhaWxlZC5gKTtcbiAgICBsb2coYEVycm9yOiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJyk7XG4gICAgbG9nKFN0cmluZyhlcnJvciksICdlcnJvcicpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY29weUNvbmZpZ3VyZWRGaWxlcyA9IGFzeW5jIChzcGlubmVyOiBTcGlubmVyLCBjb25maWc6IExleENvbmZpZ1R5cGUsIHF1aWV0OiBib29sZWFuKSA9PiB7XG4gIGNvbnN0IHtjb3B5RmlsZXM6IGNvcHlGaWxlc0NvbmZpZywgb3V0cHV0RnVsbFBhdGgsIHNvdXJjZUZ1bGxQYXRoLCBzb3VyY2VQYXRofSA9IGNvbmZpZztcbiAgaWYoIWNvcHlGaWxlc0NvbmZpZyB8fCBjb3B5RmlsZXNDb25maWcubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBzcGlubmVyLnN0YXJ0KCdDb3B5aW5nIGNvbmZpZ3VyZWQgZmlsZXMuLi4nKTtcbiAgICBsZXQgdG90YWxDb3BpZWQgPSAwO1xuXG4gICAgY29uc3QgYmFzZURpciA9IHNvdXJjZUZ1bGxQYXRoIHx8IChzb3VyY2VQYXRoID8gcGF0aFJlc29sdmUocHJvY2Vzcy5jd2QoKSwgc291cmNlUGF0aCkgOiBwcm9jZXNzLmN3ZCgpKTtcbiAgICBjb25zdCBhbGxDb3B5UHJvbWlzZXM6IFByb21pc2U8dW5rbm93bj5bXSA9IFtdO1xuXG4gICAgZm9yKGNvbnN0IHBhdHRlcm4gb2YgY29weUZpbGVzQ29uZmlnKSB7XG4gICAgICBjb25zdCByZXNvbHZlZFBhdHRlcm4gPSBwYXRoUmVzb2x2ZShiYXNlRGlyLCBwYXR0ZXJuKTtcbiAgICAgIGNvbnN0IG1hdGNoaW5nRmlsZXMgPSBnbG9iU3luYyhyZXNvbHZlZFBhdHRlcm4sIHtcbiAgICAgICAgYWJzb2x1dGU6IHRydWUsXG4gICAgICAgIG5vZGlyOiB0cnVlXG4gICAgICB9KTtcblxuICAgICAgaWYobWF0Y2hpbmdGaWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgaWYoIXF1aWV0KSB7XG4gICAgICAgICAgbG9nKGBXYXJuaW5nOiBObyBmaWxlcyBmb3VuZCBtYXRjaGluZyBwYXR0ZXJuOiAke3BhdHRlcm59YCwgJ3dhcm4nLCBxdWlldCk7XG4gICAgICAgIH1cbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvcHlQcm9taXNlcyA9IG1hdGNoaW5nRmlsZXMubWFwKChzb3VyY2VGaWxlKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHBhdGhSZWxhdGl2ZShiYXNlRGlyLCBzb3VyY2VGaWxlKTtcbiAgICAgICAgY29uc3QgZGVzdFBhdGggPSBwYXRoUmVzb2x2ZShvdXRwdXRGdWxsUGF0aCB8fCBwcm9jZXNzLmN3ZCgpLCByZWxhdGl2ZVBhdGgpO1xuICAgICAgICBjb25zdCBkZXN0RGlyID0gcGF0aFJlc29sdmUoZGVzdFBhdGgsICcuLicpO1xuICAgICAgICBta2RpclN5bmMoZGVzdERpciwge3JlY3Vyc2l2ZTogdHJ1ZX0pO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgY29weUZpbGUoc291cmNlRmlsZSwgZGVzdFBhdGgsIChjb3B5RXJyb3IpID0+IHtcbiAgICAgICAgICAgIGlmKGNvcHlFcnJvcikge1xuICAgICAgICAgICAgICByZWplY3QoY29weUVycm9yKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGFsbENvcHlQcm9taXNlcy5wdXNoKC4uLmNvcHlQcm9taXNlcyk7XG4gICAgICB0b3RhbENvcGllZCArPSBtYXRjaGluZ0ZpbGVzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChhbGxDb3B5UHJvbWlzZXMpO1xuXG4gICAgaWYodG90YWxDb3BpZWQgPiAwKSB7XG4gICAgICBzcGlubmVyLnN1Y2NlZWQoYFN1Y2Nlc3NmdWxseSBjb3BpZWQgJHt0b3RhbENvcGllZH0gY29uZmlndXJlZCBmaWxlcyFgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3Bpbm5lci5zdWNjZWVkKCdObyBjb25maWd1cmVkIGZpbGVzIHRvIGNvcHknKTtcbiAgICB9XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBzcGlubmVyLmZhaWwoJ0ZhaWxlZCB0byBjb3B5IGNvbmZpZ3VyZWQgZmlsZXMnKTtcbiAgICBsb2coYEVycm9yIGNvcHlpbmcgY29uZmlndXJlZCBmaWxlczogJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGNvcHlGaWxlU3luYyA9IChzb3VyY2U6IHN0cmluZywgdGFyZ2V0OiBzdHJpbmcpID0+IHtcbiAgbGV0IHRhcmdldEZpbGU6IHN0cmluZyA9IHRhcmdldDtcblxuICBpZihleGlzdHNTeW5jKHRhcmdldCkpIHtcbiAgICBpZihsc3RhdFN5bmModGFyZ2V0KS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICB0YXJnZXRGaWxlID0gcGF0aEpvaW4odGFyZ2V0LCBwYXRoQmFzZW5hbWUoc291cmNlKSk7XG4gICAgfVxuICB9XG5cbiAgd3JpdGVGaWxlU3luYyh0YXJnZXRGaWxlLCByZWFkRmlsZVN5bmMoc291cmNlKSk7XG59O1xuXG5leHBvcnQgY29uc3QgY29weUZvbGRlclJlY3Vyc2l2ZVN5bmMgPSAoc291cmNlOiBzdHJpbmcsIHRhcmdldDogc3RyaW5nKTogdm9pZCA9PiB7XG4gIGxldCBmaWxlczogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdCB0YXJnZXRGb2xkZXI6IHN0cmluZyA9IHBhdGhKb2luKHRhcmdldCwgcGF0aEJhc2VuYW1lKHNvdXJjZSkpO1xuXG4gIGlmKCFleGlzdHNTeW5jKHRhcmdldEZvbGRlcikpIHtcbiAgICBta2RpclN5bmModGFyZ2V0Rm9sZGVyKTtcbiAgfVxuXG4gIGlmKGxzdGF0U3luYyhzb3VyY2UpLmlzRGlyZWN0b3J5KCkpIHtcbiAgICBmaWxlcyA9IHJlYWRkaXJTeW5jKHNvdXJjZSk7XG4gICAgZmlsZXMuZm9yRWFjaCgoZmlsZTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBjdXJTb3VyY2U6IHN0cmluZyA9IHBhdGhKb2luKHNvdXJjZSwgZmlsZSk7XG5cbiAgICAgIGlmKGxzdGF0U3luYyhjdXJTb3VyY2UpLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgY29weUZvbGRlclJlY3Vyc2l2ZVN5bmMoY3VyU291cmNlLCB0YXJnZXRGb2xkZXIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29weUZpbGVTeW5jKGN1clNvdXJjZSwgdGFyZ2V0Rm9sZGVyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldFBhY2thZ2VKc29uID0gKHBhY2thZ2VQYXRoPzogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGZvcm1hdFBhdGg6IHN0cmluZyA9IHBhY2thZ2VQYXRoIHx8IGAke3Byb2Nlc3MuY3dkKCl9L3BhY2thZ2UuanNvbmA7XG4gIGNvbnN0IHBhY2thZ2VEYXRhOiBzdHJpbmcgPSByZWFkRmlsZVN5bmMoZm9ybWF0UGF0aCkudG9TdHJpbmcoKTtcblxuICByZXR1cm4gSlNPTi5wYXJzZShwYWNrYWdlRGF0YSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RmlsZXNCeUV4dCA9IChleHQ6IHN0cmluZywgY29uZmlnOiBMZXhDb25maWdUeXBlKTogc3RyaW5nW10gPT4ge1xuICBjb25zdCB7c291cmNlRnVsbFBhdGh9ID0gY29uZmlnO1xuICByZXR1cm4gZ2xvYlN5bmMoYCoqLyoqJHtleHR9YCwge1xuICAgIGFic29sdXRlOiB0cnVlLFxuICAgIGN3ZDogc291cmNlRnVsbFBhdGgsXG4gICAgbm9kaXI6IHRydWVcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlQ29uZmxpY3RNb2R1bGVzID0gKG1vZHVsZUxpc3Q6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gIGNvbnN0IHVwZGF0ZWRMaXN0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHsuLi5tb2R1bGVMaXN0fTtcblxuICBPYmplY3Qua2V5cyh1cGRhdGVkTGlzdCkuZm9yRWFjaCgobW9kdWxlTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcmVnZXg6IFJlZ0V4cCA9IG5ldyBSZWdFeHAoJ14oPyFAdHlwZXMvKS4qPyh2aXRlc3R8d2VicGFjaykuKiQnLCAnZ2knKTtcbiAgICBpZihyZWdleC50ZXN0KG1vZHVsZU5hbWUpKSB7XG4gICAgICBkZWxldGUgdXBkYXRlZExpc3RbbW9kdWxlTmFtZV07XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdXBkYXRlZExpc3Q7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlRmlsZXMgPSAoZmlsZU5hbWU6IHN0cmluZywgaXNSZWxhdGl2ZTogYm9vbGVhbiA9IGZhbHNlKSA9PiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gIGNvbnN0IGZpbGVQYXRoOiBzdHJpbmcgPSBpc1JlbGF0aXZlID8gcGF0aFJlc29sdmUocHJvY2Vzcy5jd2QoKSwgZmlsZU5hbWUpIDogZmlsZU5hbWU7XG5cbiAgdHJ5IHtcbiAgICByaW1yYWZTeW5jKGZpbGVQYXRoKTtcbiAgICByZXR1cm4gcmVzb2x2ZShudWxsKTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICB9XG59KTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZU1vZHVsZXMgPSAoKSA9PiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgcmVtb3ZlRmlsZXMoJy4vbm9kZV9tb2R1bGVzJywgdHJ1ZSk7XG4gICAgYXdhaXQgcmVtb3ZlRmlsZXMoJy4veWFybi5sb2NrJywgdHJ1ZSk7XG4gICAgYXdhaXQgcmVtb3ZlRmlsZXMoJy4vcGFja2FnZS1sb2NrLmpzb24nLCB0cnVlKTtcblxuICAgIHJlc29sdmUobnVsbCk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICByZWplY3QoZXJyb3IpO1xuICB9XG59KTtcblxuZXhwb3J0IGNvbnN0IHNldFBhY2thZ2VKc29uID0gKGpzb246IHVua25vd24sIHBhY2thZ2VQYXRoPzogc3RyaW5nKSA9PiB7XG4gIGlmKCFqc29uKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZm9ybWF0UGF0aDogc3RyaW5nID0gcGFja2FnZVBhdGggfHwgYCR7cHJvY2Vzcy5jd2QoKX0vcGFja2FnZS5qc29uYDtcblxuICB3cml0ZUZpbGVTeW5jKGZvcm1hdFBhdGgsIEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIDIpKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlua2VkTW9kdWxlVHlwZSB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgbGlua2VkTW9kdWxlcyA9IChzdGFydFBhdGg/OiBzdHJpbmcpOiBMaW5rZWRNb2R1bGVUeXBlW10gPT4ge1xuICBjb25zdCB3b3JraW5nUGF0aDogc3RyaW5nID0gc3RhcnRQYXRoIHx8IHByb2Nlc3MuY3dkKCk7XG4gIGxldCBtb2R1bGVQYXRoOiBzdHJpbmc7XG4gIGxldCBwcmVmaXg6IHN0cmluZztcblxuICBpZih3b3JraW5nUGF0aC5pbmNsdWRlcygnQCcpKSB7XG4gICAgcHJlZml4ID0gYEAke3dvcmtpbmdQYXRoLnNwbGl0KCdAJykucG9wKCl9YDtcbiAgICBtb2R1bGVQYXRoID0gd29ya2luZ1BhdGg7XG4gIH0gZWxzZSB7XG4gICAgbW9kdWxlUGF0aCA9IHBhdGhKb2luKHdvcmtpbmdQYXRoLCAnbm9kZV9tb2R1bGVzJyk7XG4gIH1cblxuICBjb25zdCBmb3VuZFBhdGhzOiBzdHJpbmdbXSA9IGdsb2JTeW5jKCcqJywge1xuICAgIGFic29sdXRlOiB0cnVlLFxuICAgIGN3ZDogbW9kdWxlUGF0aCxcbiAgICBub2RpcjogZmFsc2VcbiAgfSk7XG5cbiAgcmV0dXJuIGZvdW5kUGF0aHMucmVkdWNlKChsaXN0OiBMaW5rZWRNb2R1bGVUeXBlW10sIGZvdW5kUGF0aDogc3RyaW5nKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0YXRzID0gbHN0YXRTeW5jKGZvdW5kUGF0aCk7XG5cbiAgICAgIGlmKHN0YXRzLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgY29uc3QgZGVlcExpc3Q6IExpbmtlZE1vZHVsZVR5cGVbXSA9IGxpbmtlZE1vZHVsZXMoZm91bmRQYXRoKTtcbiAgICAgICAgbGlzdC5wdXNoKC4uLmRlZXBMaXN0KTtcbiAgICAgIH0gZWxzZSBpZihzdGF0cy5pc1N5bWJvbGljTGluaygpKSB7XG4gICAgICAgIGNvbnN0IG1vZHVsZU5hbWVzOiBzdHJpbmdbXSA9IChbcHJlZml4LCBwYXRoQmFzZW5hbWUoZm91bmRQYXRoKV0pLmZpbHRlcigoaXRlbTogc3RyaW5nKSA9PiAhaXNFbXB0eShpdGVtKSk7XG4gICAgICAgIGxpc3QucHVzaCh7bmFtZTogYCR7bW9kdWxlTmFtZXMuam9pbignLycpfWAsIHBhdGg6IGZvdW5kUGF0aH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbGlzdDtcbiAgICB9IGNhdGNoe1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfVxuICB9LCBbXSk7XG59O1xuXG5leHBvcnQgY29uc3QgY2hlY2tMaW5rZWRNb2R1bGVzID0gKCkgPT4ge1xuICBjb25zdCBsaW5rZWQgPSBsaW5rZWRNb2R1bGVzKCk7XG5cbiAgaWYobGlua2VkLmxlbmd0aCkge1xuICAgIGNvbnN0IG1zZ01vZHVsZTogc3RyaW5nID0gbGlua2VkLmxlbmd0aCA+IDEgPyAnTW9kdWxlcycgOiAnTW9kdWxlJztcbiAgICBjb25zdCBsaW5rZWRNc2c6IHN0cmluZyA9IGxpbmtlZC5yZWR1Y2UoXG4gICAgICAobXNnOiBzdHJpbmcsIGxpbmtlZE1vZHVsZTogTGlua2VkTW9kdWxlVHlwZSkgPT5cbiAgICAgICAgYCR7bXNnfVxcbiAqICR7bGlua2VkTW9kdWxlLm5hbWV9YCxcbiAgICAgIGBMaW5rZWQgJHttc2dNb2R1bGV9OmBcbiAgICApO1xuXG4gICAgbG9nKGJveGVuKGxpbmtlZE1zZywge2RpbUJvcmRlcjogdHJ1ZSwgcGFkZGluZzogMX0pLCAnd2FybicpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlVGVtcGxhdGVOYW1lID0gKGZpbGVQYXRoOiBzdHJpbmcsIHJlcGxhY2U6IHN0cmluZywgcmVwbGFjZUNhcHM6IHN0cmluZykgPT4ge1xuICBsZXQgZGF0YTogc3RyaW5nID0gcmVhZEZpbGVTeW5jKGZpbGVQYXRoLCAndXRmOCcpO1xuICBkYXRhID0gZGF0YS5yZXBsYWNlKC9zYW1wbGUvZywgcmVwbGFjZSk7XG4gIGRhdGEgPSBkYXRhLnJlcGxhY2UoL1NhbXBsZS9nLCByZXBsYWNlQ2Fwcyk7XG4gIHdyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIGRhdGEsICd1dGY4Jyk7XG59O1xuIl0sIm5hbWVzIjpbImJveGVuIiwiY2hhbGsiLCJjb3B5RmlsZSIsImV4aXN0c1N5bmMiLCJsc3RhdFN5bmMiLCJta2RpclN5bmMiLCJyZWFkZGlyU3luYyIsInJlYWRGaWxlU3luYyIsIndyaXRlRmlsZVN5bmMiLCJzeW5jIiwiZ2xvYlN5bmMiLCJpc0VtcHR5Iiwib3JhIiwiYmFzZW5hbWUiLCJwYXRoQmFzZW5hbWUiLCJqb2luIiwicGF0aEpvaW4iLCJyZWxhdGl2ZSIsInBhdGhSZWxhdGl2ZSIsInJlc29sdmUiLCJwYXRoUmVzb2x2ZSIsInJpbXJhZlN5bmMiLCJsb2ciLCJnZXRGaWxlbmFtZXMiLCJwcm9wcyIsImNhbGxiYWNrIiwiY2xpTmFtZSIsIm5hbWUiLCJxdWlldCIsInR5cGUiLCJ1c2VUeXBlc2NyaXB0IiwibmFtZUNhcHMiLCJpdGVtVHlwZXMiLCJpbmNsdWRlcyIsInVuZGVmaW5lZCIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic3Vic3RyIiwidGVtcGxhdGVQYXRoIiwidGVtcGxhdGVFeHQiLCJ0ZW1wbGF0ZVJlYWN0IiwiY3JlYXRlU3Bpbm5lciIsImZhaWwiLCJzdGFydCIsInN1Y2NlZWQiLCJjb2xvciIsImNyZWF0ZVByb2dyZXNzQmFyIiwicGVyY2VudGFnZSIsIndpZHRoIiwiZmlsbGVkIiwiTWF0aCIsInJvdW5kIiwiZW1wdHkiLCJmaWxsZWRCYXIiLCJjeWFuIiwicmVwZWF0IiwiZW1wdHlCYXIiLCJncmF5IiwiaGFuZGxlV2VicGFja1Byb2dyZXNzIiwib3V0cHV0Iiwic3Bpbm5lciIsImVtb2ppIiwiYWN0aW9uIiwicHJvZ3Jlc3NNYXRjaCIsIm1hdGNoIiwicHJvZ3Jlc3MiLCJwYXJzZUludCIsInByb2dyZXNzQmFyIiwidGV4dCIsImdlbmVyYWxQcm9ncmVzc01hdGNoIiwiY29weUZpbGVzIiwiZmlsZXMiLCJ0eXBlTmFtZSIsImNvbmZpZyIsIm91dHB1dEZ1bGxQYXRoIiwic291cmNlRnVsbFBhdGgiLCJpdGVtcyIsIm1hcCIsImZpbGVOYW1lIiwiZnJvbSIsInRvIiwicHJvY2VzcyIsImN3ZCIsIlByb21pc2UiLCJhbGwiLCJyZWplY3QiLCJyZWN1cnNpdmUiLCJjb3B5RXJyb3IiLCJsZW5ndGgiLCJlcnJvciIsIm1lc3NhZ2UiLCJTdHJpbmciLCJjb3B5Q29uZmlndXJlZEZpbGVzIiwiY29weUZpbGVzQ29uZmlnIiwic291cmNlUGF0aCIsInRvdGFsQ29waWVkIiwiYmFzZURpciIsImFsbENvcHlQcm9taXNlcyIsInBhdHRlcm4iLCJyZXNvbHZlZFBhdHRlcm4iLCJtYXRjaGluZ0ZpbGVzIiwiYWJzb2x1dGUiLCJub2RpciIsImNvcHlQcm9taXNlcyIsInNvdXJjZUZpbGUiLCJyZWxhdGl2ZVBhdGgiLCJkZXN0UGF0aCIsImRlc3REaXIiLCJwdXNoIiwiY29weUZpbGVTeW5jIiwic291cmNlIiwidGFyZ2V0IiwidGFyZ2V0RmlsZSIsImlzRGlyZWN0b3J5IiwiY29weUZvbGRlclJlY3Vyc2l2ZVN5bmMiLCJ0YXJnZXRGb2xkZXIiLCJmb3JFYWNoIiwiZmlsZSIsImN1clNvdXJjZSIsImdldFBhY2thZ2VKc29uIiwicGFja2FnZVBhdGgiLCJmb3JtYXRQYXRoIiwicGFja2FnZURhdGEiLCJ0b1N0cmluZyIsIkpTT04iLCJwYXJzZSIsImdldEZpbGVzQnlFeHQiLCJleHQiLCJyZW1vdmVDb25mbGljdE1vZHVsZXMiLCJtb2R1bGVMaXN0IiwidXBkYXRlZExpc3QiLCJPYmplY3QiLCJrZXlzIiwibW9kdWxlTmFtZSIsInJlZ2V4IiwiUmVnRXhwIiwidGVzdCIsInJlbW92ZUZpbGVzIiwiaXNSZWxhdGl2ZSIsImZpbGVQYXRoIiwicmVtb3ZlTW9kdWxlcyIsInNldFBhY2thZ2VKc29uIiwianNvbiIsInN0cmluZ2lmeSIsImxpbmtlZE1vZHVsZXMiLCJzdGFydFBhdGgiLCJ3b3JraW5nUGF0aCIsIm1vZHVsZVBhdGgiLCJwcmVmaXgiLCJzcGxpdCIsInBvcCIsImZvdW5kUGF0aHMiLCJyZWR1Y2UiLCJsaXN0IiwiZm91bmRQYXRoIiwic3RhdHMiLCJkZWVwTGlzdCIsImlzU3ltYm9saWNMaW5rIiwibW9kdWxlTmFtZXMiLCJmaWx0ZXIiLCJpdGVtIiwicGF0aCIsImNoZWNrTGlua2VkTW9kdWxlcyIsImxpbmtlZCIsIm1zZ01vZHVsZSIsImxpbmtlZE1zZyIsIm1zZyIsImxpbmtlZE1vZHVsZSIsImRpbUJvcmRlciIsInBhZGRpbmciLCJ1cGRhdGVUZW1wbGF0ZU5hbWUiLCJyZXBsYWNlIiwicmVwbGFjZUNhcHMiLCJkYXRhIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FFRCxPQUFPQSxXQUFXLFFBQVE7QUFDMUIsT0FBT0MsV0FBVyxRQUFRO0FBQzFCLFNBQVFDLFFBQVEsRUFBRUMsVUFBVSxFQUFFQyxTQUFTLEVBQUVDLFNBQVMsRUFBRUMsV0FB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
|
|
@@ -1,9 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025-Present, Nitrogen Labs, Inc.
|
|
3
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
*
|
|
5
|
+
* PostCSS 8-compatible version of postcss-for plugin
|
|
6
|
+
* Original: https://github.com/antyakushev/postcss-for
|
|
7
|
+
*/
|
|
8
|
+
import postcss from 'postcss';
|
|
1
9
|
interface PostcssForOptions {
|
|
2
10
|
nested?: boolean;
|
|
3
11
|
}
|
|
4
12
|
declare const postcssFor: {
|
|
5
13
|
(opts?: PostcssForOptions): {
|
|
6
|
-
Once(root:
|
|
14
|
+
Once(root: postcss.Root): void;
|
|
7
15
|
postcssPlugin: string;
|
|
8
16
|
};
|
|
9
17
|
postcss: boolean;
|
|
@@ -11,16 +11,17 @@ const postcssFor = (opts = {})=>{
|
|
|
11
11
|
};
|
|
12
12
|
const iterStack = [];
|
|
13
13
|
const parentsHaveIterator = (rule, param)=>{
|
|
14
|
-
|
|
14
|
+
const parent = rule.parent;
|
|
15
|
+
if (parent === null || parent === undefined) {
|
|
15
16
|
return false;
|
|
16
17
|
}
|
|
17
|
-
if (
|
|
18
|
+
if (parent.type === 'root') {
|
|
18
19
|
return false;
|
|
19
20
|
}
|
|
20
|
-
if (
|
|
21
|
+
if (parent.type !== 'atrule') {
|
|
21
22
|
return false;
|
|
22
23
|
}
|
|
23
|
-
const parentIterVar =
|
|
24
|
+
const parentIterVar = parent.params.split(/\s+/)[0];
|
|
24
25
|
if (!parentIterVar) {
|
|
25
26
|
return false;
|
|
26
27
|
}
|
|
@@ -30,7 +31,7 @@ const postcssFor = (opts = {})=>{
|
|
|
30
31
|
if (iterStack.indexOf(param) !== -1) {
|
|
31
32
|
return true;
|
|
32
33
|
}
|
|
33
|
-
return parentsHaveIterator(
|
|
34
|
+
return parentsHaveIterator(parent, param);
|
|
34
35
|
};
|
|
35
36
|
const manageIterStack = (rule)=>{
|
|
36
37
|
if (rule.parent && rule.parent.type !== 'root') {
|
|
@@ -139,4 +140,4 @@ const postcssFor = (opts = {})=>{
|
|
|
139
140
|
postcssFor.postcss = true;
|
|
140
141
|
export default postcssFor;
|
|
141
142
|
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9wb3N0Y3NzL3Bvc3Rjc3MtZm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICpcbiAqIFBvc3RDU1MgOC1jb21wYXRpYmxlIHZlcnNpb24gb2YgcG9zdGNzcy1mb3IgcGx1Z2luXG4gKiBPcmlnaW5hbDogaHR0cHM6Ly9naXRodWIuY29tL2FudHlha3VzaGV2L3Bvc3Rjc3MtZm9yXG4gKi9cbmltcG9ydCBwb3N0Y3NzIGZyb20gJ3Bvc3Rjc3MnO1xuaW1wb3J0IHBvc3Rjc3NTaW1wbGVWYXJzIGZyb20gJ3Bvc3Rjc3Mtc2ltcGxlLXZhcnMnO1xuXG5pbnRlcmZhY2UgUG9zdGNzc0Zvck9wdGlvbnMge1xuICBuZXN0ZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBwb3N0Y3NzRm9yID0gKG9wdHM6IFBvc3Rjc3NGb3JPcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICBuZXN0ZWQ6IG9wdHMubmVzdGVkICE9PSBmYWxzZVxuICB9O1xuXG4gIGNvbnN0IGl0ZXJTdGFjazogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdCBwYXJlbnRzSGF2ZUl0ZXJhdG9yID0gKHJ1bGU6IHBvc3Rjc3MuQXRSdWxlLCBwYXJhbTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgaWYocnVsZS5wYXJlbnQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYocnVsZS5wYXJlbnQudHlwZSA9PT0gJ3Jvb3QnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmKHJ1bGUucGFyZW50LnR5cGUgIT09ICdhdHJ1bGUnIHx8ICFydWxlLnBhcmVudC5wYXJhbXMpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJlbnRJdGVyVmFyID0gcnVsZS5wYXJlbnQucGFyYW1zLnNwbGl0KC9cXHMrLylbMF07XG4gICAgaWYoIXBhcmVudEl0ZXJWYXIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYocGFyZW50SXRlclZhciA9PT0gcGFyYW0pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZihpdGVyU3RhY2suaW5kZXhPZihwYXJhbSkgIT09IC0xKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcmVudHNIYXZlSXRlcmF0b3IocnVsZS5wYXJlbnQgYXMgcG9zdGNzcy5BdFJ1bGUsIHBhcmFtKTtcbiAgfTtcblxuICBjb25zdCBtYW5hZ2VJdGVyU3RhY2sgPSAocnVsZTogcG9zdGNzcy5BdFJ1bGUpID0+IHtcbiAgICBpZihydWxlLnBhcmVudCAmJiBydWxlLnBhcmVudC50eXBlICE9PSAncm9vdCcpIHtcbiAgICAgIGNvbnN0IHBhcmVudEl0ZXJWYXIgPSBydWxlLnBhcmVudC50eXBlID09PSAnYXRydWxlJyAmJiBydWxlLnBhcmVudC5wYXJhbXNcbiAgICAgICAgPyBydWxlLnBhcmVudC5wYXJhbXMuc3BsaXQoL1xccysvKVswXVxuICAgICAgICA6IG51bGw7XG4gICAgICBpZihwYXJlbnRJdGVyVmFyICYmIGl0ZXJTdGFjay5pbmRleE9mKHBhcmVudEl0ZXJWYXIpID09PSAtMSkge1xuICAgICAgICBpdGVyU3RhY2suc3BsaWNlKDAsIGl0ZXJTdGFjay5sZW5ndGgpO1xuICAgICAgfSBlbHNlIGlmKHBhcmVudEl0ZXJWYXIpIHtcbiAgICAgICAgY29uc3QgcGFyZW50SW5kZXggPSBpdGVyU3RhY2suaW5kZXhPZihwYXJlbnRJdGVyVmFyKTtcbiAgICAgICAgaWYocGFyZW50SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgaXRlclN0YWNrLnNwbGljZShwYXJlbnRJbmRleCArIDEsIGl0ZXJTdGFjay5sZW5ndGggLSBwYXJlbnRJbmRleCAtIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGl0ZXJTdGFjay5zcGxpY2UoMCwgaXRlclN0YWNrLmxlbmd0aCk7XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRJdGVyVmFyID0gcnVsZS5wYXJhbXMuc3BsaXQoL1xccysvKVswXTtcbiAgICBpZihjdXJyZW50SXRlclZhcikge1xuICAgICAgaXRlclN0YWNrLnB1c2goY3VycmVudEl0ZXJWYXIpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBjaGVja051bWJlciA9IChydWxlOiBwb3N0Y3NzLkF0UnVsZSkgPT4gKHBhcmFtOiBzdHJpbmcpID0+IHtcbiAgICBpZihpc05hTihOdW1iZXIocGFyYW0pKSB8fCAhcGFyYW0ubWF0Y2goL14tP1xcZCtcXC4/XFxkKiQvKSkge1xuICAgICAgaWYocGFyYW0uaW5kZXhPZignJCcpICE9PSAtMSkge1xuICAgICAgICBpZighcGFyZW50c0hhdmVJdGVyYXRvcihydWxlLCBwYXJhbSkpIHtcbiAgICAgICAgICB0aHJvdyBydWxlLmVycm9yKCdFeHRlcm5hbCB2YXJpYWJsZSAobm90IGZyb20gYSBwYXJlbnQgZm9yIGxvb3ApIGNhbm5vdCBiZSB1c2VkIGFzIGEgcmFuZ2UgcGFyYW1ldGVyJywge1xuICAgICAgICAgICAgcGx1Z2luOiAncG9zdGNzcy1mb3InXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IHJ1bGUuZXJyb3IoJ1JhbmdlIHBhcmFtZXRlciBzaG91bGQgYmUgYSBudW1iZXInLCB7XG4gICAgICAgICAgcGx1Z2luOiAncG9zdGNzcy1mb3InXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCBjaGVja1BhcmFtcyA9IChydWxlOiBwb3N0Y3NzLkF0UnVsZSwgcGFyYW1zOiBzdHJpbmdbXSkgPT4ge1xuICAgIGlmKFxuICAgICAgIXBhcmFtc1swXT8uc3RhcnRzV2l0aCgnJCcpIHx8XG4gICAgICBwYXJhbXNbMV0gIT09ICdmcm9tJyB8fFxuICAgICAgcGFyYW1zWzNdICE9PSAndG8nIHx8XG4gICAgICAocGFyYW1zWzVdICYmIHBhcmFtc1s1XSAhPT0gJ2J5JylcbiAgICApIHtcbiAgICAgIHRocm93IHJ1bGUuZXJyb3IoJ1dyb25nIGxvb3Agc3ludGF4Jywge1xuICAgICAgICBwbHVnaW46ICdwb3N0Y3NzLWZvcidcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIFtwYXJhbXNbMl0sIHBhcmFtc1s0XSwgcGFyYW1zWzZdIHx8ICcwJ10uZm9yRWFjaChjaGVja051bWJlcihydWxlKSk7XG4gIH07XG5cbiAgY29uc3QgdW5yb2xsTG9vcCA9IChydWxlOiBwb3N0Y3NzLkF0UnVsZSkgPT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IHJ1bGUucGFyYW1zLnNwbGl0KC9cXHMrLyk7XG5cbiAgICBjaGVja1BhcmFtcyhydWxlLCBwYXJhbXMpO1xuXG4gICAgY29uc3QgaXRlcmF0b3IgPSBwYXJhbXNbMF0uc2xpY2UoMSk7XG4gICAgY29uc3QgaW5kZXggPSArcGFyYW1zWzJdO1xuICAgIGNvbnN0IHRvcCA9ICtwYXJhbXNbNF07XG4gICAgY29uc3QgZGlyID0gdG9wIDwgaW5kZXggPyAtMSA6IDE7XG4gICAgY29uc3QgYnkgPSAoKyhwYXJhbXNbNl0gfHwgMSkpICogZGlyO1xuXG4gICAgY29uc3QgdmFsdWU6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7fTtcbiAgICBmb3IobGV0IGkgPSBpbmRleDsgaSAqIGRpciA8PSB0b3AgKiBkaXI7IGkgPSBpICsgYnkpIHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBydWxlLmNsb25lKCk7XG4gICAgICB2YWx1ZVtpdGVyYXRvcl0gPSBpO1xuICAgICAgY29uc3Qgc2ltcGxlVmFyc1BsdWdpbiA9IHBvc3Rjc3NTaW1wbGVWYXJzKHtvbmx5OiB2YWx1ZX0pO1xuICAgICAgaWYoc2ltcGxlVmFyc1BsdWdpbi5wcmVwYXJlKSB7XG4gICAgICAgIGNvbnN0IHByZXBhcmVkID0gc2ltcGxlVmFyc1BsdWdpbi5wcmVwYXJlKHt9IGFzIGFueSk7XG4gICAgICAgIGlmKHByZXBhcmVkLk9uY2UpIHtcbiAgICAgICAgICBwcmVwYXJlZC5PbmNlKGNvbnRlbnQsIHt9IGFzIGFueSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZih0eXBlb2Ygc2ltcGxlVmFyc1BsdWdpbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBzaW1wbGVWYXJzUGx1Z2luKGNvbnRlbnQpO1xuICAgICAgfVxuICAgICAgaWYob3B0aW9ucy5uZXN0ZWQpIHtcbiAgICAgICAgcHJvY2Vzc0xvb3BzKGNvbnRlbnQpO1xuICAgICAgfVxuICAgICAgaWYocnVsZS5wYXJlbnQpIHtcbiAgICAgICAgcnVsZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKHJ1bGUsIGNvbnRlbnQubm9kZXMpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZihydWxlLnBhcmVudCkge1xuICAgICAgcnVsZS5yZW1vdmUoKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcHJvY2Vzc0xvb3BzID0gKGNzczogcG9zdGNzcy5Db250YWluZXIpID0+IHtcbiAgICBjc3Mud2Fsa0F0UnVsZXMoKHJ1bGUpID0+IHtcbiAgICAgIGlmKHJ1bGUubmFtZSA9PT0gJ2ZvcicpIHtcbiAgICAgICAgdW5yb2xsTG9vcChydWxlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBwcm9jZXNzT3JpZ2luYWxMb29wcyA9IChjc3M6IHBvc3Rjc3MuUm9vdCkgPT4ge1xuICAgIGNzcy53YWxrQXRSdWxlcygocnVsZSkgPT4ge1xuICAgICAgaWYocnVsZS5uYW1lID09PSAnZm9yJykge1xuICAgICAgICBpZihydWxlLnBhcmVudCkge1xuICAgICAgICAgIG1hbmFnZUl0ZXJTdGFjayhydWxlKTtcbiAgICAgICAgfVxuICAgICAgICB1bnJvbGxMb29wKHJ1bGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgT25jZShyb290KSB7XG4gICAgICBwcm9jZXNzT3JpZ2luYWxMb29wcyhyb290KTtcbiAgICB9LFxuICAgIHBvc3Rjc3NQbHVnaW46ICdwb3N0Y3NzLWZvcidcbiAgfTtcbn07XG5cbnBvc3Rjc3NGb3IucG9zdGNzcyA9IHRydWU7XG5cbmV4cG9ydCBkZWZhdWx0IHBvc3Rjc3NGb3I7XG5cbiJdLCJuYW1lcyI6WyJwb3N0Y3NzU2ltcGxlVmFycyIsInBvc3Rjc3NGb3IiLCJvcHRzIiwib3B0aW9ucyIsIm5lc3RlZCIsIml0ZXJTdGFjayIsInBhcmVudHNIYXZlSXRlcmF0b3IiLCJydWxlIiwicGFyYW0iLCJwYXJlbnQiLCJ0eXBlIiwicGFyYW1zIiwicGFyZW50SXRlclZhciIsInNwbGl0IiwiaW5kZXhPZiIsIm1hbmFnZUl0ZXJTdGFjayIsInNwbGljZSIsImxlbmd0aCIsInBhcmVudEluZGV4IiwiY3VycmVudEl0ZXJWYXIiLCJwdXNoIiwiY2hlY2tOdW1iZXIiLCJpc05hTiIsIk51bWJlciIsIm1hdGNoIiwiZXJyb3IiLCJwbHVnaW4iLCJjaGVja1BhcmFtcyIsInN0YXJ0c1dpdGgiLCJmb3JFYWNoIiwidW5yb2xsTG9vcCIsIml0ZXJhdG9yIiwic2xpY2UiLCJpbmRleCIsInRvcCIsImRpciIsImJ5IiwidmFsdWUiLCJpIiwiY29udGVudCIsImNsb25lIiwic2ltcGxlVmFyc1BsdWdpbiIsIm9ubHkiLCJwcmVwYXJlIiwicHJlcGFyZWQiLCJPbmNlIiwicHJvY2Vzc0xvb3BzIiwiaW5zZXJ0QmVmb3JlIiwibm9kZXMiLCJyZW1vdmUiLCJjc3MiLCJ3YWxrQXRSdWxlcyIsIm5hbWUiLCJwcm9jZXNzT3JpZ2luYWxMb29wcyIsInJvb3QiLCJwb3N0Y3NzUGx1Z2luIiwicG9zdGNzcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztDQU1DLEdBRUQsT0FBT0EsdUJBQXVC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
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9wb3N0Y3NzL3Bvc3Rjc3MtZm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICpcbiAqIFBvc3RDU1MgOC1jb21wYXRpYmxlIHZlcnNpb24gb2YgcG9zdGNzcy1mb3IgcGx1Z2luXG4gKiBPcmlnaW5hbDogaHR0cHM6Ly9naXRodWIuY29tL2FudHlha3VzaGV2L3Bvc3Rjc3MtZm9yXG4gKi9cbmltcG9ydCBwb3N0Y3NzIGZyb20gJ3Bvc3Rjc3MnO1xuaW1wb3J0IHBvc3Rjc3NTaW1wbGVWYXJzIGZyb20gJ3Bvc3Rjc3Mtc2ltcGxlLXZhcnMnO1xuXG5pbnRlcmZhY2UgUG9zdGNzc0Zvck9wdGlvbnMge1xuICBuZXN0ZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBwb3N0Y3NzRm9yID0gKG9wdHM6IFBvc3Rjc3NGb3JPcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICBuZXN0ZWQ6IG9wdHMubmVzdGVkICE9PSBmYWxzZVxuICB9O1xuXG4gIGNvbnN0IGl0ZXJTdGFjazogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdCBwYXJlbnRzSGF2ZUl0ZXJhdG9yID0gKHJ1bGU6IHBvc3Rjc3MuQXRSdWxlLCBwYXJhbTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgcGFyZW50ID0gcnVsZS5wYXJlbnQ7XG5cbiAgICBpZihwYXJlbnQgPT09IG51bGwgfHwgcGFyZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYocGFyZW50LnR5cGUgPT09ICdyb290Jykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZihwYXJlbnQudHlwZSAhPT0gJ2F0cnVsZScpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJlbnRJdGVyVmFyID0gcGFyZW50LnBhcmFtcy5zcGxpdCgvXFxzKy8pWzBdO1xuICAgIGlmKCFwYXJlbnRJdGVyVmFyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmKHBhcmVudEl0ZXJWYXIgPT09IHBhcmFtKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYoaXRlclN0YWNrLmluZGV4T2YocGFyYW0pICE9PSAtMSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBwYXJlbnRzSGF2ZUl0ZXJhdG9yKHBhcmVudCwgcGFyYW0pO1xuICB9O1xuXG4gIGNvbnN0IG1hbmFnZUl0ZXJTdGFjayA9IChydWxlOiBwb3N0Y3NzLkF0UnVsZSkgPT4ge1xuICAgIGlmKHJ1bGUucGFyZW50ICYmIHJ1bGUucGFyZW50LnR5cGUgIT09ICdyb290Jykge1xuICAgICAgY29uc3QgcGFyZW50SXRlclZhciA9IHJ1bGUucGFyZW50LnR5cGUgPT09ICdhdHJ1bGUnICYmIHJ1bGUucGFyZW50LnBhcmFtc1xuICAgICAgICA/IHJ1bGUucGFyZW50LnBhcmFtcy5zcGxpdCgvXFxzKy8pWzBdXG4gICAgICAgIDogbnVsbDtcbiAgICAgIGlmKHBhcmVudEl0ZXJWYXIgJiYgaXRlclN0YWNrLmluZGV4T2YocGFyZW50SXRlclZhcikgPT09IC0xKSB7XG4gICAgICAgIGl0ZXJTdGFjay5zcGxpY2UoMCwgaXRlclN0YWNrLmxlbmd0aCk7XG4gICAgICB9IGVsc2UgaWYocGFyZW50SXRlclZhcikge1xuICAgICAgICBjb25zdCBwYXJlbnRJbmRleCA9IGl0ZXJTdGFjay5pbmRleE9mKHBhcmVudEl0ZXJWYXIpO1xuICAgICAgICBpZihwYXJlbnRJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICBpdGVyU3RhY2suc3BsaWNlKHBhcmVudEluZGV4ICsgMSwgaXRlclN0YWNrLmxlbmd0aCAtIHBhcmVudEluZGV4IC0gMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaXRlclN0YWNrLnNwbGljZSgwLCBpdGVyU3RhY2subGVuZ3RoKTtcbiAgICB9XG4gICAgY29uc3QgY3VycmVudEl0ZXJWYXIgPSBydWxlLnBhcmFtcy5zcGxpdCgvXFxzKy8pWzBdO1xuICAgIGlmKGN1cnJlbnRJdGVyVmFyKSB7XG4gICAgICBpdGVyU3RhY2sucHVzaChjdXJyZW50SXRlclZhcik7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGNoZWNrTnVtYmVyID0gKHJ1bGU6IHBvc3Rjc3MuQXRSdWxlKSA9PiAocGFyYW06IHN0cmluZykgPT4ge1xuICAgIGlmKGlzTmFOKE51bWJlcihwYXJhbSkpIHx8ICFwYXJhbS5tYXRjaCgvXi0/XFxkK1xcLj9cXGQqJC8pKSB7XG4gICAgICBpZihwYXJhbS5pbmRleE9mKCckJykgIT09IC0xKSB7XG4gICAgICAgIGlmKCFwYXJlbnRzSGF2ZUl0ZXJhdG9yKHJ1bGUsIHBhcmFtKSkge1xuICAgICAgICAgIHRocm93IHJ1bGUuZXJyb3IoJ0V4dGVybmFsIHZhcmlhYmxlIChub3QgZnJvbSBhIHBhcmVudCBmb3IgbG9vcCkgY2Fubm90IGJlIHVzZWQgYXMgYSByYW5nZSBwYXJhbWV0ZXInLCB7XG4gICAgICAgICAgICBwbHVnaW46ICdwb3N0Y3NzLWZvcidcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgcnVsZS5lcnJvcignUmFuZ2UgcGFyYW1ldGVyIHNob3VsZCBiZSBhIG51bWJlcicsIHtcbiAgICAgICAgICBwbHVnaW46ICdwb3N0Y3NzLWZvcidcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGNoZWNrUGFyYW1zID0gKHJ1bGU6IHBvc3Rjc3MuQXRSdWxlLCBwYXJhbXM6IHN0cmluZ1tdKSA9PiB7XG4gICAgaWYoXG4gICAgICAhcGFyYW1zWzBdPy5zdGFydHNXaXRoKCckJykgfHxcbiAgICAgIHBhcmFtc1sxXSAhPT0gJ2Zyb20nIHx8XG4gICAgICBwYXJhbXNbM10gIT09ICd0bycgfHxcbiAgICAgIChwYXJhbXNbNV0gJiYgcGFyYW1zWzVdICE9PSAnYnknKVxuICAgICkge1xuICAgICAgdGhyb3cgcnVsZS5lcnJvcignV3JvbmcgbG9vcCBzeW50YXgnLCB7XG4gICAgICAgIHBsdWdpbjogJ3Bvc3Rjc3MtZm9yJ1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgW3BhcmFtc1syXSwgcGFyYW1zWzRdLCBwYXJhbXNbNl0gfHwgJzAnXS5mb3JFYWNoKGNoZWNrTnVtYmVyKHJ1bGUpKTtcbiAgfTtcblxuICBjb25zdCB1bnJvbGxMb29wID0gKHJ1bGU6IHBvc3Rjc3MuQXRSdWxlKSA9PiB7XG4gICAgY29uc3QgcGFyYW1zID0gcnVsZS5wYXJhbXMuc3BsaXQoL1xccysvKTtcblxuICAgIGNoZWNrUGFyYW1zKHJ1bGUsIHBhcmFtcyk7XG5cbiAgICBjb25zdCBpdGVyYXRvciA9IHBhcmFtc1swXS5zbGljZSgxKTtcbiAgICBjb25zdCBpbmRleCA9ICtwYXJhbXNbMl07XG4gICAgY29uc3QgdG9wID0gK3BhcmFtc1s0XTtcbiAgICBjb25zdCBkaXIgPSB0b3AgPCBpbmRleCA/IC0xIDogMTtcbiAgICBjb25zdCBieSA9ICgrKHBhcmFtc1s2XSB8fCAxKSkgKiBkaXI7XG5cbiAgICBjb25zdCB2YWx1ZTogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHt9O1xuICAgIGZvcihsZXQgaSA9IGluZGV4OyBpICogZGlyIDw9IHRvcCAqIGRpcjsgaSA9IGkgKyBieSkge1xuICAgICAgY29uc3QgY29udGVudCA9IHJ1bGUuY2xvbmUoKTtcbiAgICAgIHZhbHVlW2l0ZXJhdG9yXSA9IGk7XG4gICAgICBjb25zdCBzaW1wbGVWYXJzUGx1Z2luID0gcG9zdGNzc1NpbXBsZVZhcnMoe29ubHk6IHZhbHVlfSk7XG4gICAgICBpZihzaW1wbGVWYXJzUGx1Z2luLnByZXBhcmUpIHtcbiAgICAgICAgY29uc3QgcHJlcGFyZWQgPSBzaW1wbGVWYXJzUGx1Z2luLnByZXBhcmUoe30gYXMgYW55KTtcbiAgICAgICAgaWYocHJlcGFyZWQuT25jZSkge1xuICAgICAgICAgIHByZXBhcmVkLk9uY2UoY29udGVudCwge30gYXMgYW55KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmKHR5cGVvZiBzaW1wbGVWYXJzUGx1Z2luID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHNpbXBsZVZhcnNQbHVnaW4oY29udGVudCk7XG4gICAgICB9XG4gICAgICBpZihvcHRpb25zLm5lc3RlZCkge1xuICAgICAgICBwcm9jZXNzTG9vcHMoY29udGVudCk7XG4gICAgICB9XG4gICAgICBpZihydWxlLnBhcmVudCkge1xuICAgICAgICBydWxlLnBhcmVudC5pbnNlcnRCZWZvcmUocnVsZSwgY29udGVudC5ub2Rlcyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmKHJ1bGUucGFyZW50KSB7XG4gICAgICBydWxlLnJlbW92ZSgpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBwcm9jZXNzTG9vcHMgPSAoY3NzOiBwb3N0Y3NzLkNvbnRhaW5lcjxwb3N0Y3NzLkNoaWxkTm9kZT4pID0+IHtcbiAgICBjc3Mud2Fsa0F0UnVsZXMoKHJ1bGUpID0+IHtcbiAgICAgIGlmKHJ1bGUubmFtZSA9PT0gJ2ZvcicpIHtcbiAgICAgICAgdW5yb2xsTG9vcChydWxlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBwcm9jZXNzT3JpZ2luYWxMb29wcyA9IChjc3M6IHBvc3Rjc3MuUm9vdCkgPT4ge1xuICAgIGNzcy53YWxrQXRSdWxlcygocnVsZSkgPT4ge1xuICAgICAgaWYocnVsZS5uYW1lID09PSAnZm9yJykge1xuICAgICAgICBpZihydWxlLnBhcmVudCkge1xuICAgICAgICAgIG1hbmFnZUl0ZXJTdGFjayhydWxlKTtcbiAgICAgICAgfVxuICAgICAgICB1bnJvbGxMb29wKHJ1bGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgT25jZShyb290OiBwb3N0Y3NzLlJvb3QpIHtcbiAgICAgIHByb2Nlc3NPcmlnaW5hbExvb3BzKHJvb3QpO1xuICAgIH0sXG4gICAgcG9zdGNzc1BsdWdpbjogJ3Bvc3Rjc3MtZm9yJ1xuICB9O1xufTtcblxucG9zdGNzc0Zvci5wb3N0Y3NzID0gdHJ1ZTtcblxuZXhwb3J0IGRlZmF1bHQgcG9zdGNzc0ZvcjtcbiJdLCJuYW1lcyI6WyJwb3N0Y3NzU2ltcGxlVmFycyIsInBvc3Rjc3NGb3IiLCJvcHRzIiwib3B0aW9ucyIsIm5lc3RlZCIsIml0ZXJTdGFjayIsInBhcmVudHNIYXZlSXRlcmF0b3IiLCJydWxlIiwicGFyYW0iLCJwYXJlbnQiLCJ1bmRlZmluZWQiLCJ0eXBlIiwicGFyZW50SXRlclZhciIsInBhcmFtcyIsInNwbGl0IiwiaW5kZXhPZiIsIm1hbmFnZUl0ZXJTdGFjayIsInNwbGljZSIsImxlbmd0aCIsInBhcmVudEluZGV4IiwiY3VycmVudEl0ZXJWYXIiLCJwdXNoIiwiY2hlY2tOdW1iZXIiLCJpc05hTiIsIk51bWJlciIsIm1hdGNoIiwiZXJyb3IiLCJwbHVnaW4iLCJjaGVja1BhcmFtcyIsInN0YXJ0c1dpdGgiLCJmb3JFYWNoIiwidW5yb2xsTG9vcCIsIml0ZXJhdG9yIiwic2xpY2UiLCJpbmRleCIsInRvcCIsImRpciIsImJ5IiwidmFsdWUiLCJpIiwiY29udGVudCIsImNsb25lIiwic2ltcGxlVmFyc1BsdWdpbiIsIm9ubHkiLCJwcmVwYXJlIiwicHJlcGFyZWQiLCJPbmNlIiwicHJvY2Vzc0xvb3BzIiwiaW5zZXJ0QmVmb3JlIiwibm9kZXMiLCJyZW1vdmUiLCJjc3MiLCJ3YWxrQXRSdWxlcyIsIm5hbWUiLCJwcm9jZXNzT3JpZ2luYWxMb29wcyIsInJvb3QiLCJwb3N0Y3NzUGx1Z2luIiwicG9zdGNzcyJdLCJtYXBwaW5n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
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import postcss from 'postcss';
|
|
1
2
|
interface PostcssPercentageOptions {
|
|
2
3
|
floor?: boolean;
|
|
3
4
|
precision?: number;
|
|
@@ -5,8 +6,8 @@ interface PostcssPercentageOptions {
|
|
|
5
6
|
}
|
|
6
7
|
declare const postcssPercentage: {
|
|
7
8
|
(opts?: PostcssPercentageOptions): {
|
|
8
|
-
Once(root:
|
|
9
|
-
result:
|
|
9
|
+
Once(root: postcss.Root, { result }: {
|
|
10
|
+
result: postcss.Result;
|
|
10
11
|
}): void;
|
|
11
12
|
postcssPlugin: string;
|
|
12
13
|
};
|
|
@@ -53,7 +53,6 @@ const postcssPercentage = (opts = {})=>{
|
|
|
53
53
|
} catch (e) {
|
|
54
54
|
const error = e;
|
|
55
55
|
decl.warn(result, error.message, {
|
|
56
|
-
index: decl.index,
|
|
57
56
|
word: decl.value
|
|
58
57
|
});
|
|
59
58
|
}
|
|
@@ -65,4 +64,4 @@ const postcssPercentage = (opts = {})=>{
|
|
|
65
64
|
postcssPercentage.postcss = true;
|
|
66
65
|
export default postcssPercentage;
|
|
67
66
|
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9wb3N0Y3NzL3Bvc3Rjc3MtcGVyY2VudGFnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqXG4gKiBQb3N0Q1NTIDgtY29tcGF0aWJsZSB2ZXJzaW9uIG9mIHBvc3Rjc3MtcGVyY2VudGFnZSBwbHVnaW5cbiAqIE9yaWdpbmFsOiBodHRwczovL2dpdGh1Yi5jb20vYW50eWFrdXNoZXYvcG9zdGNzcy1wZXJjZW50YWdlXG4gKi9cbmltcG9ydCBNZXhwIGZyb20gJ21hdGgtZXhwcmVzc2lvbi1ldmFsdWF0b3InO1xuaW1wb3J0IHBvc3Rjc3MgZnJvbSAncG9zdGNzcyc7XG5pbXBvcnQgcGFyc2VyIGZyb20gJ3Bvc3Rjc3MtdmFsdWUtcGFyc2VyJztcblxuaW50ZXJmYWNlIFBvc3Rjc3NQZXJjZW50YWdlT3B0aW9ucyB7XG4gIGZsb29yPzogYm9vbGVhbjtcbiAgcHJlY2lzaW9uPzogbnVtYmVyO1xuICB0cmltVHJhaWxpbmdaZXJvPzogYm9vbGVhbjtcbn1cblxuY29uc3QgdHJhbnNmb3JtUGVyY2VudGFnZSA9IChcbiAgdmFsdWU6IHN0cmluZyxcbiAgcHJlY2lzaW9uOiBudW1iZXIsXG4gIGZsb29yOiBib29sZWFuIHwgdW5kZWZpbmVkLFxuICB0cmltVHJhaWxpbmdaZXJvOiBib29sZWFuIHwgdW5kZWZpbmVkXG4pOiBzdHJpbmcgPT4ge1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIC0gTWV4cCBkZWZhdWx0IGV4cG9ydCB0eXBlIGlzc3VlXG4gIGNvbnN0IGV2YWx1YXRvciA9IG5ldyBNZXhwKCk7XG4gIHJldHVybiBwYXJzZXIodmFsdWUpLndhbGsoKG5vZGUpID0+IHtcbiAgICBpZihub2RlLnR5cGUgIT09ICdmdW5jdGlvbicgfHwgbm9kZS52YWx1ZSAhPT0gJ3BlcmNlbnRhZ2UnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gZXZhbHVhdG9yLmV2YWwocGFyc2VyLnN0cmluZ2lmeShub2RlLm5vZGVzKSkgKiAxMDA7XG4gICAgbGV0IHJlc3VsdFN0cjogc3RyaW5nO1xuICAgIGlmKHJlc3VsdCA9PT0gMCkge1xuICAgICAgcmVzdWx0U3RyID0gJzAnO1xuICAgIH0gZWxzZSBpZihmbG9vcikge1xuICAgICAgY29uc3QgcmVzdWx0U3RyaW5nID0gcmVzdWx0LnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBpbmRleCA9IHJlc3VsdFN0cmluZy5pbmRleE9mKCcuJyk7XG4gICAgICByZXN1bHRTdHIgPSBpbmRleCA9PT0gLTFcbiAgICAgICAgPyByZXN1bHRTdHJpbmdcbiAgICAgICAgOiByZXN1bHRTdHJpbmcuc3Vic3RyaW5nKDAsIGluZGV4ICsgMSArIHByZWNpc2lvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdFN0ciA9IHJlc3VsdC50b0ZpeGVkKHByZWNpc2lvbik7XG4gICAgfVxuICAgIGlmKHRyaW1UcmFpbGluZ1plcm8pIHtcbiAgICAgIHJlc3VsdFN0ciA9IHJlc3VsdFN0clxuICAgICAgICAucmVwbGFjZSgvXFwuMCskLywgJycpXG4gICAgICAgIC5yZXBsYWNlKC8oXFwuXFxkKlsxLTldKTArJC8sICckMScpO1xuICAgIH1cbiAgICByZXN1bHRTdHIgKz0gJyUnO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXByb3BlcnRpZXNcbiAgICBPYmplY3QuYXNzaWduKG5vZGUsIHtcbiAgICAgIHR5cGU6ICd3b3JkJyBhcyBjb25zdCxcbiAgICAgIHZhbHVlOiByZXN1bHRTdHJcbiAgICB9KTtcbiAgfSkudG9TdHJpbmcoKTtcbn07XG5cbmNvbnN0IHBvc3Rjc3NQZXJjZW50YWdlID0gKG9wdHM6IFBvc3Rjc3NQZXJjZW50YWdlT3B0aW9ucyA9IHt9KSA9PiB7XG4gIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgZmxvb3I6IG9wdHMuZmxvb3IsXG4gICAgcHJlY2lzaW9uOiBvcHRzLnByZWNpc2lvbiA9PT0gbnVsbCB8fCBvcHRzLnByZWNpc2lvbiA9PT0gdW5kZWZpbmVkIHx8IG9wdHMucHJlY2lzaW9uID4gMjAgfHwgb3B0cy5wcmVjaXNpb24gPCAwXG4gICAgICA/IDZcbiAgICAgIDogb3B0cy5wcmVjaXNpb24sXG4gICAgdHJpbVRyYWlsaW5nWmVybzogb3B0cy50cmltVHJhaWxpbmdaZXJvID09PSBudWxsIHx8IG9wdHMudHJpbVRyYWlsaW5nWmVybyA9PT0gdW5kZWZpbmVkXG4gICAgICA/IHRydWVcbiAgICAgIDogb3B0cy50cmltVHJhaWxpbmdaZXJvXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgT25jZShyb290OiBwb3N0Y3NzLlJvb3QsIHtyZXN1bHR9OiB7cmVzdWx0OiBwb3N0Y3NzLlJlc3VsdH0pIHtcbiAgICAgIHJvb3Qud2Fsa0RlY2xzKChkZWNsOiBwb3N0Y3NzLkRlY2xhcmF0aW9uKSA9PiB7XG4gICAgICAgIGlmKCFkZWNsLnZhbHVlIHx8ICEvcGVyY2VudGFnZVxccypcXCgvLnRlc3QoZGVjbC52YWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGRlY2wudmFsdWUgPSB0cmFuc2Zvcm1QZXJjZW50YWdlKFxuICAgICAgICAgICAgZGVjbC52YWx1ZSxcbiAgICAgICAgICAgIG9wdGlvbnMucHJlY2lzaW9uLFxuICAgICAgICAgICAgb3B0aW9ucy5mbG9vcixcbiAgICAgICAgICAgIG9wdGlvbnMudHJpbVRyYWlsaW5nWmVyb1xuICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICAgIGNvbnN0IGVycm9yID0gZSBhcyBFcnJvcjtcbiAgICAgICAgICBkZWNsLndhcm4ocmVzdWx0LCBlcnJvci5tZXNzYWdlLCB7XG4gICAgICAgICAgICB3b3JkOiBkZWNsLnZhbHVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sXG4gICAgcG9zdGNzc1BsdWdpbjogJ3Bvc3Rjc3MtcGVyY2VudGFnZSdcbiAgfTtcbn07XG5cbnBvc3Rjc3NQZXJjZW50YWdlLnBvc3Rjc3MgPSB0cnVlO1xuXG5leHBvcnQgZGVmYXVsdCBwb3N0Y3NzUGVyY2VudGFnZTtcbiJdLCJuYW1lcyI6WyJNZXhwIiwicGFyc2VyIiwidHJhbnNmb3JtUGVyY2VudGFnZSIsInZhbHVlIiwicHJlY2lzaW9uIiwiZmxvb3IiLCJ0cmltVHJhaWxpbmdaZXJvIiwiZXZhbHVhdG9yIiwid2FsayIsIm5vZGUiLCJ0eXBlIiwicmVzdWx0IiwiZXZhbCIsInN0cmluZ2lmeSIsIm5vZGVzIiwicmVzdWx0U3RyIiwicmVzdWx0U3RyaW5nIiwidG9TdHJpbmciLCJpbmRleCIsImluZGV4T2YiLCJzdWJzdHJpbmciLCJ0b0ZpeGVkIiwicmVwbGFjZSIsIk9iamVjdCIsImFzc2lnbiIsInBvc3Rjc3NQZXJjZW50YWdlIiwib3B0cyIsIm9wdGlvbnMiLCJ1bmRlZmluZWQiLCJPbmNlIiwicm9vdCIsIndhbGtEZWNscyIsImRlY2wiLCJ0ZXN0IiwiZSIsImVycm9yIiwid2FybiIsIm1lc3NhZ2UiLCJ3b3JkIiwicG9zdGNzc1BsdWdpbiIsInBvc3Rjc3MiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Q0FNQyxHQUNELE9BQU9BLFVBQVUsNEJBQTRCO0FBRTdDLE9BQU9DLFlBQVksdUJBQXVCO0FBUTFDLE1BQU1DLHNCQUFzQixDQUMxQkMsT0FDQUMsV0FDQUMsT0FDQUM7SUFFQSxvREFBb0Q7SUFDcEQsTUFBTUMsWUFBWSxJQUFJUDtJQUN0QixPQUFPQyxPQUFPRSxPQUFPSyxJQUFJLENBQUMsQ0FBQ0M7UUFDekIsSUFBR0EsS0FBS0MsSUFBSSxLQUFLLGNBQWNELEtBQUtOLEtBQUssS0FBSyxjQUFjO1lBQzFEO1FBQ0Y7UUFFQSxNQUFNUSxTQUFTSixVQUFVSyxJQUFJLENBQUNYLE9BQU9ZLFNBQVMsQ0FBQ0osS0FBS0ssS0FBSyxLQUFLO1FBQzlELElBQUlDO1FBQ0osSUFBR0osV0FBVyxHQUFHO1lBQ2ZJLFlBQVk7UUFDZCxPQUFPLElBQUdWLE9BQU87WUFDZixNQUFNVyxlQUFlTCxPQUFPTSxRQUFRO1lBQ3BDLE1BQU1DLFFBQVFGLGFBQWFHLE9BQU8sQ0FBQztZQUNuQ0osWUFBWUcsVUFBVSxDQUFDLElBQ25CRixlQUNBQSxhQUFhSSxTQUFTLENBQUMsR0FBR0YsUUFBUSxJQUFJZDtRQUM1QyxPQUFPO1lBQ0xXLFlBQVlKLE9BQU9VLE9BQU8sQ0FBQ2pCO1FBQzdCO1FBQ0EsSUFBR0Usa0JBQWtCO1lBQ25CUyxZQUFZQSxVQUNUTyxPQUFPLENBQUMsU0FBUyxJQUNqQkEsT0FBTyxDQUFDLG1CQUFtQjtRQUNoQztRQUNBUCxhQUFhO1FBQ2Isb0RBQW9EO1FBQ3BEUSxPQUFPQyxNQUFNLENBQUNmLE1BQU07WUFDbEJDLE1BQU07WUFDTlAsT0FBT1k7UUFDVDtJQUNGLEdBQUdFLFFBQVE7QUFDYjtBQUVBLE1BQU1RLG9CQUFvQixDQUFDQyxPQUFpQyxDQUFDLENBQUM7SUFDNUQsTUFBTUMsVUFBVTtRQUNkdEIsT0FBT3FCLEtBQUtyQixLQUFLO1FBQ2pCRCxXQUFXc0IsS0FBS3RCLFNBQVMsS0FBSyxRQUFRc0IsS0FBS3RCLFNBQVMsS0FBS3dCLGFBQWFGLEtBQUt0QixTQUFTLEdBQUcsTUFBTXNCLEtBQUt0QixTQUFTLEdBQUcsSUFDMUcsSUFDQXNCLEtBQUt0QixTQUFTO1FBQ2xCRSxrQkFBa0JvQixLQUFLcEIsZ0JBQWdCLEtBQUssUUFBUW9CLEtBQUtwQixnQkFBZ0IsS0FBS3NCLFlBQzFFLE9BQ0FGLEtBQUtwQixnQkFBZ0I7SUFDM0I7SUFFQSxPQUFPO1FBQ0wsZ0VBQWdFO1FBQ2hFdUIsTUFBS0MsSUFBa0IsRUFBRSxFQUFDbkIsTUFBTSxFQUEyQjtZQUN6RG1CLEtBQUtDLFNBQVMsQ0FBQyxDQUFDQztnQkFDZCxJQUFHLENBQUNBLEtBQUs3QixLQUFLLElBQUksQ0FBQyxrQkFBa0I4QixJQUFJLENBQUNELEtBQUs3QixLQUFLLEdBQUc7b0JBQ3JEO2dCQUNGO2dCQUVBLElBQUk7b0JBQ0Y2QixLQUFLN0IsS0FBSyxHQUFHRCxvQkFDWDhCLEtBQUs3QixLQUFLLEVBQ1Z3QixRQUFRdkIsU0FBUyxFQUNqQnVCLFFBQVF0QixLQUFLLEVBQ2JzQixRQUFRckIsZ0JBQWdCO2dCQUU1QixFQUFFLE9BQU00QixHQUFHO29CQUNULE1BQU1DLFFBQVFEO29CQUNkRixLQUFLSSxJQUFJLENBQUN6QixRQUFRd0IsTUFBTUUsT0FBTyxFQUFFO3dCQUMvQkMsTUFBTU4sS0FBSzdCLEtBQUs7b0JBQ2xCO2dCQUNGO1lBQ0Y7UUFDRjtRQUNBb0MsZUFBZTtJQUNqQjtBQUNGO0FBRUFkLGtCQUFrQmUsT0FBTyxHQUFHO0FBRTVCLGVBQWVmLGtCQUFrQiJ9
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import webpack from 'webpack';
|
|
2
|
+
type IdentifierPrefix = false | string | ((filePath: string) => string);
|
|
3
|
+
export interface LexSvgSpritemapPluginOptions {
|
|
4
|
+
readonly allowDuplicates?: boolean;
|
|
5
|
+
readonly filename?: string;
|
|
6
|
+
readonly optimize?: boolean;
|
|
7
|
+
readonly prefix?: IdentifierPrefix;
|
|
8
|
+
}
|
|
9
|
+
export declare class LexSvgSpritemapPlugin {
|
|
10
|
+
readonly patterns: string[];
|
|
11
|
+
readonly options: Required<LexSvgSpritemapPluginOptions>;
|
|
12
|
+
constructor(patterns: string | string[], options?: LexSvgSpritemapPluginOptions);
|
|
13
|
+
buildSpritemap(): {
|
|
14
|
+
content: string | null;
|
|
15
|
+
filePaths: string[];
|
|
16
|
+
warnings: webpack.WebpackError[];
|
|
17
|
+
};
|
|
18
|
+
apply(compiler: webpack.Compiler): void;
|
|
19
|
+
}
|
|
20
|
+
export default LexSvgSpritemapPlugin;
|