@nlabs/lex 1.51.7 → 1.52.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/lib/Button.stories.js +1 -1
- package/lib/LexConfig.d.ts +1 -1
- package/lib/LexConfig.js +36 -14
- package/lib/commands/build/build.js +111 -21
- package/lib/commands/clean/clean.js +1 -1
- package/lib/commands/compile/compile.js +95 -28
- package/lib/commands/config/config.js +1 -1
- package/lib/commands/copy/copy.js +1 -1
- package/lib/commands/create/create.js +1 -1
- package/lib/commands/dev/dev.js +5 -6
- package/lib/commands/init/init.js +1 -1
- package/lib/commands/link/link.js +1 -1
- package/lib/commands/lint/lint.js +1 -1
- package/lib/commands/serverless/serverless.js +1 -1
- package/lib/commands/storybook/storybook.js +1 -1
- package/lib/commands/versions/versions.js +1 -1
- package/lib/utils/aiService.js +1 -1
- package/lib/utils/app.d.ts +1 -1
- package/lib/utils/app.js +22 -17
- package/lib/utils/postcss/postcss-for.d.ts +1 -1
- package/lib/utils/postcss/postcss-for.js +6 -8
- package/lib/utils/postcss/postcss-percentage.d.ts +1 -1
- package/lib/utils/postcss/postcss-percentage.js +14 -13
- package/package.json +10 -3
- package/webpack.config.js +3 -1
package/lib/utils/app.js
CHANGED
|
@@ -21,7 +21,8 @@ export const getFilenames = (props)=>{
|
|
|
21
21
|
if (!name) {
|
|
22
22
|
if (itemTypes.includes(type)) {
|
|
23
23
|
log(`\n${cliName} Error: ${type} name is required. Please use 'lex -h' for options.`, 'error', quiet);
|
|
24
|
-
|
|
24
|
+
callback?.(1);
|
|
25
|
+
return undefined;
|
|
25
26
|
}
|
|
26
27
|
} else {
|
|
27
28
|
nameCaps = `${name.charAt(0).toUpperCase()}${name.substr(1)}`;
|
|
@@ -72,13 +73,13 @@ export const handleWebpackProgress = (output, spinner, quiet, emoji, action)=>{
|
|
|
72
73
|
}
|
|
73
74
|
const progressMatch = output.match(/\[webpack\.Progress\] (\d+)%/);
|
|
74
75
|
if (progressMatch) {
|
|
75
|
-
const progress = parseInt(progressMatch[1]
|
|
76
|
+
const progress = parseInt(progressMatch[1]);
|
|
76
77
|
const progressBar = createProgressBar(progress);
|
|
77
78
|
spinner.text = `${emoji} ${action}: ${progressBar} ${progress}%`;
|
|
78
79
|
} else if (output.includes('[webpack.Progress]')) {
|
|
79
80
|
const generalProgressMatch = output.match(/(\d+)%/);
|
|
80
81
|
if (generalProgressMatch) {
|
|
81
|
-
const progress = parseInt(generalProgressMatch[1]
|
|
82
|
+
const progress = parseInt(generalProgressMatch[1]);
|
|
82
83
|
const progressBar = createProgressBar(progress);
|
|
83
84
|
spinner.text = `${emoji} ${action}: ${progressBar} ${progress}%`;
|
|
84
85
|
}
|
|
@@ -120,6 +121,7 @@ export const copyConfiguredFiles = async (spinner, config, quiet)=>{
|
|
|
120
121
|
spinner.start('Copying configured files...');
|
|
121
122
|
let totalCopied = 0;
|
|
122
123
|
const baseDir = sourceFullPath || (sourcePath ? pathResolve(cwd, sourcePath) : cwd);
|
|
124
|
+
const allCopyPromises = [];
|
|
123
125
|
for (const pattern of copyFilesConfig){
|
|
124
126
|
const resolvedPattern = pathResolve(baseDir, pattern);
|
|
125
127
|
const matchingFiles = globSync(resolvedPattern, {
|
|
@@ -132,17 +134,14 @@ export const copyConfiguredFiles = async (spinner, config, quiet)=>{
|
|
|
132
134
|
}
|
|
133
135
|
continue;
|
|
134
136
|
}
|
|
135
|
-
|
|
136
|
-
// Calculate relative path from source directory
|
|
137
|
+
const copyPromises = matchingFiles.map((sourceFile)=>{
|
|
137
138
|
const relativePath = pathRelative(baseDir, sourceFile);
|
|
138
|
-
// Determine destination path in output directory
|
|
139
139
|
const destPath = pathResolve(outputFullPath, relativePath);
|
|
140
|
-
// Create destination directory if it doesn't exist
|
|
141
140
|
const destDir = pathResolve(destPath, '..');
|
|
142
141
|
mkdirSync(destDir, {
|
|
143
142
|
recursive: true
|
|
144
143
|
});
|
|
145
|
-
|
|
144
|
+
return new Promise((resolve, reject)=>{
|
|
146
145
|
copyFile(sourceFile, destPath, (copyError)=>{
|
|
147
146
|
if (copyError) {
|
|
148
147
|
reject(copyError);
|
|
@@ -151,9 +150,11 @@ export const copyConfiguredFiles = async (spinner, config, quiet)=>{
|
|
|
151
150
|
}
|
|
152
151
|
});
|
|
153
152
|
});
|
|
154
|
-
|
|
155
|
-
|
|
153
|
+
});
|
|
154
|
+
allCopyPromises.push(...copyPromises);
|
|
155
|
+
totalCopied += matchingFiles.length;
|
|
156
156
|
}
|
|
157
|
+
await Promise.all(allCopyPromises);
|
|
157
158
|
if (totalCopied > 0) {
|
|
158
159
|
spinner.succeed(`Successfully copied ${totalCopied} configured files!`);
|
|
159
160
|
} else {
|
|
@@ -199,7 +200,11 @@ export const getPackageJson = (packagePath)=>{
|
|
|
199
200
|
};
|
|
200
201
|
export const getFilesByExt = (ext, config)=>{
|
|
201
202
|
const { sourceFullPath } = config;
|
|
202
|
-
return globSync(
|
|
203
|
+
return globSync(`**/**${ext}`, {
|
|
204
|
+
absolute: true,
|
|
205
|
+
cwd: sourceFullPath,
|
|
206
|
+
nodir: true
|
|
207
|
+
});
|
|
203
208
|
};
|
|
204
209
|
export const removeConflictModules = (moduleList)=>{
|
|
205
210
|
const updatedList = {
|
|
@@ -224,11 +229,8 @@ export const removeFiles = (fileName, isRelative = false)=>new Promise((resolve,
|
|
|
224
229
|
});
|
|
225
230
|
export const removeModules = ()=>new Promise(async (resolve, reject)=>{
|
|
226
231
|
try {
|
|
227
|
-
// Remove node_modules
|
|
228
232
|
await removeFiles('./node_modules', true);
|
|
229
|
-
// Remove yarn lock
|
|
230
233
|
await removeFiles('./yarn.lock', true);
|
|
231
|
-
// Remove npm lock
|
|
232
234
|
await removeFiles('./package-lock.json', true);
|
|
233
235
|
resolve(null);
|
|
234
236
|
} catch (error) {
|
|
@@ -252,7 +254,11 @@ export const linkedModules = (startPath)=>{
|
|
|
252
254
|
} else {
|
|
253
255
|
modulePath = pathJoin(workingPath, 'node_modules');
|
|
254
256
|
}
|
|
255
|
-
const foundPaths = globSync(
|
|
257
|
+
const foundPaths = globSync('*', {
|
|
258
|
+
absolute: true,
|
|
259
|
+
cwd: modulePath,
|
|
260
|
+
nodir: false
|
|
261
|
+
});
|
|
256
262
|
return foundPaths.reduce((list, foundPath)=>{
|
|
257
263
|
try {
|
|
258
264
|
const stats = lstatSync(foundPath);
|
|
@@ -271,7 +277,6 @@ export const linkedModules = (startPath)=>{
|
|
|
271
277
|
}
|
|
272
278
|
return list;
|
|
273
279
|
} catch {
|
|
274
|
-
// Skip files that don't exist or can't be accessed
|
|
275
280
|
return list;
|
|
276
281
|
}
|
|
277
282
|
}, []);
|
|
@@ -294,4 +299,4 @@ export const updateTemplateName = (filePath, replace, replaceCaps)=>{
|
|
|
294
299
|
writeFileSync(filePath, data, 'utf8');
|
|
295
300
|
};
|
|
296
301
|
|
|
297
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hcHAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cblxuaW1wb3J0IGJveGVuIGZyb20gJ2JveGVuJztcbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQge2NvcHlGaWxlLCBleGlzdHNTeW5jLCBsc3RhdFN5bmMsIG1rZGlyU3luYywgcmVhZGRpclN5bmMsIHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luY30gZnJvbSAnZnMnO1xuaW1wb3J0IHtzeW5jIGFzIGdsb2JTeW5jfSBmcm9tICdnbG9iJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5LmpzJztcbmltcG9ydCBvcmEgZnJvbSAnb3JhJztcbmltcG9ydCB7YmFzZW5hbWUgYXMgcGF0aEJhc2VuYW1lLCBqb2luIGFzIHBhdGhKb2luLCByZWxhdGl2ZSBhcyBwYXRoUmVsYXRpdmUsIHJlc29sdmUgYXMgcGF0aFJlc29sdmV9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtyaW1yYWZTeW5jfSBmcm9tICdyaW1yYWYnO1xuXG5cbmltcG9ydCB7bG9nfSBmcm9tICcuL2xvZy5qcyc7XG5cbmltcG9ydCB0eXBlIHtMZXhDb25maWdUeXBlfSBmcm9tICcuLi9MZXhDb25maWcuanMnO1xuXG5cbmV4cG9ydCBjb25zdCBjd2Q6IHN0cmluZyA9IHByb2Nlc3MuY3dkKCk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0RmlsZW5hbWVzUHJvcHMge1xuICByZWFkb25seSBjYWxsYmFjaz86IChzdGF0dXM6IG51bWJlcikgPT4gdm9pZDtcbiAgcmVhZG9ubHkgY2xpTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgcXVpZXQ/OiBib29sZWFuO1xuICByZWFkb25seSB0eXBlPzogc3RyaW5nO1xuICByZWFkb25seSB1c2VUeXBlc2NyaXB0PzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIEZpbGVuYW1lc1Jlc3VsdCB7XG4gIG5hbWVDYXBzOiBzdHJpbmc7XG4gIHRlbXBsYXRlRXh0OiBzdHJpbmc7XG4gIHRlbXBsYXRlUGF0aDogc3RyaW5nO1xuICB0ZW1wbGF0ZVJlYWN0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRGaWxlbmFtZXMgPSAocHJvcHM6IEdldEZpbGVuYW1lc1Byb3BzKTogRmlsZW5hbWVzUmVzdWx0IHwgdm9pZCA9PiB7XG4gIGNvbnN0IHtjYWxsYmFjaywgY2xpTmFtZSwgbmFtZSwgcXVpZXQsIHR5cGUsIHVzZVR5cGVzY3JpcHR9ID0gcHJvcHM7XG5cbiAgbGV0IG5hbWVDYXBzOiBzdHJpbmc7XG4gIGNvbnN0IGl0ZW1UeXBlczogc3RyaW5nW10gPSBbJ3N0b3JlcycsICd2aWV3cyddO1xuXG4gIGlmKCFuYW1lKSB7XG4gICAgaWYoaXRlbVR5cGVzLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6ICR7dHlwZX0gbmFtZSBpcyByZXF1aXJlZC4gUGxlYXNlIHVzZSAnbGV4IC1oJyBmb3Igb3B0aW9ucy5gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICByZXR1cm4gY2FsbGJhY2s/LigxKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbmFtZUNhcHMgPSBgJHtuYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7bmFtZS5zdWJzdHIoMSl9YDtcbiAgfVxuXG4gIGxvZyhgJHtjbGlOYW1lfSBhZGRpbmcgJHtuYW1lfSAke3R5cGV9Li4uYCwgJ2luZm8nLCBxdWlldCk7XG5cbiAgbGV0IHRlbXBsYXRlUGF0aDogc3RyaW5nO1xuICBsZXQgdGVtcGxhdGVFeHQ6IHN0cmluZztcbiAgbGV0IHRlbXBsYXRlUmVhY3Q6IHN0cmluZztcblxuICBpZih1c2VUeXBlc2NyaXB0KSB7XG4gICAgdGVtcGxhdGVQYXRoID0gJy4uLy4uL3RlbXBsYXRlcy90eXBlc2NyaXB0JztcbiAgICB0ZW1wbGF0ZUV4dCA9ICcudHMnO1xuICAgIHRlbXBsYXRlUmVhY3QgPSAnLnRzeCc7XG4gIH0gZWxzZSB7XG4gICAgdGVtcGxhdGVQYXRoID0gJy4uLy4uL3RlbXBsYXRlcy9mbG93JztcbiAgICB0ZW1wbGF0ZUV4dCA9ICcuanMnO1xuICAgIHRlbXBsYXRlUmVhY3QgPSAnLmpzJztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbmFtZUNhcHMsXG4gICAgdGVtcGxhdGVFeHQsXG4gICAgdGVtcGxhdGVQYXRoLFxuICAgIHRlbXBsYXRlUmVhY3RcbiAgfTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3Bpbm5lciB7XG4gIGZhaWw6ICh0ZXh0Pzogc3RyaW5nKSA9PiB2b2lkO1xuICBzdGFydDogKHRleHQ/OiBzdHJpbmcpID0+IHZvaWQ7XG4gIHN1Y2NlZWQ6ICh0ZXh0Pzogc3RyaW5nKSA9PiB2b2lkO1xuICB0ZXh0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlU3Bpbm5lciA9IChxdWlldCA9IGZhbHNlKTogU3Bpbm5lciA9PiB7XG4gIGlmKHF1aWV0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZhaWw6ICgpID0+IHt9LFxuICAgICAgc3RhcnQ6ICgpID0+IHt9LFxuICAgICAgc3VjY2VlZDogKCkgPT4ge31cbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIG9yYSh7Y29sb3I6ICd5ZWxsb3cnfSk7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlUHJvZ3Jlc3NCYXIgPSAocGVyY2VudGFnZTogbnVtYmVyKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgd2lkdGggPSAyMDtcbiAgY29uc3QgZmlsbGVkID0gTWF0aC5yb3VuZCgocGVyY2VudGFnZSAvIDEwMCkgKiB3aWR0aCk7XG4gIGNvbnN0IGVtcHR5ID0gd2lkdGggLSBmaWxsZWQ7XG5cbiAgY29uc3QgZmlsbGVkQmFyID0gY2hhbGsuY3lhbign4paIJykucmVwZWF0KGZpbGxlZCk7XG4gIGNvbnN0IGVtcHR5QmFyID0gY2hhbGsuZ3JheSgn4paRJykucmVwZWF0KGVtcHR5KTtcblxuICByZXR1cm4gZmlsbGVkQmFyICsgZW1wdHlCYXI7XG59O1xuXG5leHBvcnQgY29uc3QgaGFuZGxlV2VicGFja1Byb2dyZXNzID0gKG91dHB1dDogc3RyaW5nLCBzcGlubmVyOiBTcGlubmVyLCBxdWlldDogYm9vbGVhbiwgZW1vamk6IHN0cmluZywgYWN0aW9uOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgaWYocXVpZXQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBwcm9ncmVzc01hdGNoID0gb3V0cHV0Lm1hdGNoKC9cXFt3ZWJwYWNrXFwuUHJvZ3Jlc3NcXF0gKFxcZCspJS8pO1xuICBpZihwcm9ncmVzc01hdGNoKSB7XG4gICAgY29uc3QgcHJvZ3Jlc3MgPSBwYXJzZUludChwcm9ncmVzc01hdGNoWzFdLCAxMCk7XG4gICAgY29uc3QgcHJvZ3Jlc3NCYXIgPSBjcmVhdGVQcm9ncmVzc0Jhcihwcm9ncmVzcyk7XG4gICAgc3Bpbm5lci50ZXh0ID0gYCR7ZW1vaml9ICR7YWN0aW9ufTogJHtwcm9ncmVzc0Jhcn0gJHtwcm9ncmVzc30lYDtcbiAgfSBlbHNlIGlmKG91dHB1dC5pbmNsdWRlcygnW3dlYnBhY2suUHJvZ3Jlc3NdJykpIHtcbiAgICBjb25zdCBnZW5lcmFsUHJvZ3Jlc3NNYXRjaCA9IG91dHB1dC5tYXRjaCgvKFxcZCspJS8pO1xuICAgIGlmKGdlbmVyYWxQcm9ncmVzc01hdGNoKSB7XG4gICAgICBjb25zdCBwcm9ncmVzcyA9IHBhcnNlSW50KGdlbmVyYWxQcm9ncmVzc01hdGNoWzFdLCAxMCk7XG4gICAgICBjb25zdCBwcm9ncmVzc0JhciA9IGNyZWF0ZVByb2dyZXNzQmFyKHByb2dyZXNzKTtcbiAgICAgIHNwaW5uZXIudGV4dCA9IGAke2Vtb2ppfSAke2FjdGlvbn06ICR7cHJvZ3Jlc3NCYXJ9ICR7cHJvZ3Jlc3N9JWA7XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY29weUZpbGVzID0gYXN5bmMgKGZpbGVzOiBzdHJpbmdbXSwgdHlwZU5hbWU6IHN0cmluZywgc3Bpbm5lciwgY29uZmlnOiBMZXhDb25maWdUeXBlKSA9PiB7XG4gIGNvbnN0IHtvdXRwdXRGdWxsUGF0aCwgc291cmNlRnVsbFBhdGh9ID0gY29uZmlnO1xuICBjb25zdCBpdGVtcyA9IGZpbGVzLm1hcCgoZmlsZU5hbWU6IHN0cmluZykgPT4gKHtcbiAgICBmcm9tOiBmaWxlTmFtZSxcbiAgICB0bzogcGF0aFJlc29sdmUob3V0cHV0RnVsbFBhdGgsIHBhdGhSZWxhdGl2ZShzb3VyY2VGdWxsUGF0aCwgZmlsZU5hbWUpKVxuICB9KSk7XG5cbiAgdHJ5IHtcbiAgICBzcGlubmVyLnN0YXJ0KGBDb3B5aW5nICR7dHlwZU5hbWV9IGZpbGVzLi4uYCk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoaXRlbXMubWFwKCh7ZnJvbSwgdG99KSA9PiBuZXcgUHJvbWlzZShcbiAgICAgIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgbWtkaXJTeW5jKHBhdGhSZXNvbHZlKHRvLCAnLi4nKSwge3JlY3Vyc2l2ZTogdHJ1ZX0pO1xuICAgICAgICByZXR1cm4gY29weUZpbGUoZnJvbSwgdG8sIChjb3B5RXJyb3IpID0+IHtcbiAgICAgICAgICBpZihjb3B5RXJyb3IpIHtcbiAgICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgKSkpO1xuICAgIHNwaW5uZXIuc3VjY2VlZChgU3VjY2Vzc2Z1bGx5IGNvcGllZCAke2ZpbGVzLmxlbmd0aH0gJHt0eXBlTmFtZX0gZmlsZXMhYCk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBzcGlubmVyLmZhaWwoYENvcHlpbmcgb2YgJHt0eXBlTmFtZX0gZmlsZXMgZmFpbGVkLmApO1xuICAgIGxvZyhgRXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InKTtcbiAgICBsb2coZXJyb3IsICdlcnJvcicpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY29weUNvbmZpZ3VyZWRGaWxlcyA9IGFzeW5jIChzcGlubmVyLCBjb25maWc6IExleENvbmZpZ1R5cGUsIHF1aWV0OiBib29sZWFuKSA9PiB7XG4gIGNvbnN0IHtjb3B5RmlsZXM6IGNvcHlGaWxlc0NvbmZpZywgb3V0cHV0RnVsbFBhdGgsIHNvdXJjZUZ1bGxQYXRoLCBzb3VyY2VQYXRofSA9IGNvbmZpZztcbiAgaWYoIWNvcHlGaWxlc0NvbmZpZyB8fCBjb3B5RmlsZXNDb25maWcubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBzcGlubmVyLnN0YXJ0KCdDb3B5aW5nIGNvbmZpZ3VyZWQgZmlsZXMuLi4nKTtcbiAgICBsZXQgdG90YWxDb3BpZWQgPSAwO1xuXG4gICAgY29uc3QgYmFzZURpciA9IHNvdXJjZUZ1bGxQYXRoIHx8IChzb3VyY2VQYXRoID8gcGF0aFJlc29sdmUoY3dkLCBzb3VyY2VQYXRoKSA6IGN3ZCk7XG5cbiAgICBmb3IoY29uc3QgcGF0dGVybiBvZiBjb3B5RmlsZXNDb25maWcpIHtcbiAgICAgIGNvbnN0IHJlc29sdmVkUGF0dGVybiA9IHBhdGhSZXNvbHZlKGJhc2VEaXIsIHBhdHRlcm4pO1xuICAgICAgY29uc3QgbWF0Y2hpbmdGaWxlcyA9IGdsb2JTeW5jKHJlc29sdmVkUGF0dGVybiwge1xuICAgICAgICBhYnNvbHV0ZTogdHJ1ZSxcbiAgICAgICAgbm9kaXI6IHRydWVcbiAgICAgIH0pO1xuICAgICAgaWYobWF0Y2hpbmdGaWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgaWYoIXF1aWV0KSB7XG4gICAgICAgICAgbG9nKGBXYXJuaW5nOiBObyBmaWxlcyBmb3VuZCBtYXRjaGluZyBwYXR0ZXJuOiAke3BhdHRlcm59YCwgJ3dhcm4nLCBxdWlldCk7XG4gICAgICAgIH1cbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGZvcihjb25zdCBzb3VyY2VGaWxlIG9mIG1hdGNoaW5nRmlsZXMpIHtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIHJlbGF0aXZlIHBhdGggZnJvbSBzb3VyY2UgZGlyZWN0b3J5XG4gICAgICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHBhdGhSZWxhdGl2ZShiYXNlRGlyLCBzb3VyY2VGaWxlKTtcbiAgICAgICAgLy8gRGV0ZXJtaW5lIGRlc3RpbmF0aW9uIHBhdGggaW4gb3V0cHV0IGRpcmVjdG9yeVxuICAgICAgICBjb25zdCBkZXN0UGF0aCA9IHBhdGhSZXNvbHZlKG91dHB1dEZ1bGxQYXRoLCByZWxhdGl2ZVBhdGgpO1xuICAgICAgICAvLyBDcmVhdGUgZGVzdGluYXRpb24gZGlyZWN0b3J5IGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICAgICAgY29uc3QgZGVzdERpciA9IHBhdGhSZXNvbHZlKGRlc3RQYXRoLCAnLi4nKTtcbiAgICAgICAgbWtkaXJTeW5jKGRlc3REaXIsIHtyZWN1cnNpdmU6IHRydWV9KTtcblxuICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgY29weUZpbGUoc291cmNlRmlsZSwgZGVzdFBhdGgsIChjb3B5RXJyb3IpID0+IHtcbiAgICAgICAgICAgIGlmKGNvcHlFcnJvcikge1xuICAgICAgICAgICAgICByZWplY3QoY29weUVycm9yKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0b3RhbENvcGllZCsrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZih0b3RhbENvcGllZCA+IDApIHtcbiAgICAgIHNwaW5uZXIuc3VjY2VlZChgU3VjY2Vzc2Z1bGx5IGNvcGllZCAke3RvdGFsQ29waWVkfSBjb25maWd1cmVkIGZpbGVzIWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBzcGlubmVyLnN1Y2NlZWQoJ05vIGNvbmZpZ3VyZWQgZmlsZXMgdG8gY29weScpO1xuICAgIH1cbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHNwaW5uZXIuZmFpbCgnRmFpbGVkIHRvIGNvcHkgY29uZmlndXJlZCBmaWxlcycpO1xuICAgIGxvZyhgRXJyb3IgY29weWluZyBjb25maWd1cmVkIGZpbGVzOiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY29weUZpbGVTeW5jID0gKHNvdXJjZTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZykgPT4ge1xuICBsZXQgdGFyZ2V0RmlsZTogc3RyaW5nID0gdGFyZ2V0O1xuXG4gIGlmKGV4aXN0c1N5bmModGFyZ2V0KSkge1xuICAgIGlmKGxzdGF0U3luYyh0YXJnZXQpLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIHRhcmdldEZpbGUgPSBwYXRoSm9pbih0YXJnZXQsIHBhdGhCYXNlbmFtZShzb3VyY2UpKTtcbiAgICB9XG4gIH1cblxuICB3cml0ZUZpbGVTeW5jKHRhcmdldEZpbGUsIHJlYWRGaWxlU3luYyhzb3VyY2UpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb3B5Rm9sZGVyUmVjdXJzaXZlU3luYyA9IChzb3VyY2U6IHN0cmluZywgdGFyZ2V0OiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgbGV0IGZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0IHRhcmdldEZvbGRlcjogc3RyaW5nID0gcGF0aEpvaW4odGFyZ2V0LCBwYXRoQmFzZW5hbWUoc291cmNlKSk7XG5cbiAgaWYoIWV4aXN0c1N5bmModGFyZ2V0Rm9sZGVyKSkge1xuICAgIG1rZGlyU3luYyh0YXJnZXRGb2xkZXIpO1xuICB9XG5cbiAgaWYobHN0YXRTeW5jKHNvdXJjZSkuaXNEaXJlY3RvcnkoKSkge1xuICAgIGZpbGVzID0gcmVhZGRpclN5bmMoc291cmNlKTtcbiAgICBmaWxlcy5mb3JFYWNoKChmaWxlOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGN1clNvdXJjZTogc3RyaW5nID0gcGF0aEpvaW4oc291cmNlLCBmaWxlKTtcblxuICAgICAgaWYobHN0YXRTeW5jKGN1clNvdXJjZSkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICBjb3B5Rm9sZGVyUmVjdXJzaXZlU3luYyhjdXJTb3VyY2UsIHRhcmdldEZvbGRlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb3B5RmlsZVN5bmMoY3VyU291cmNlLCB0YXJnZXRGb2xkZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UGFja2FnZUpzb24gPSAocGFja2FnZVBhdGg/OiBzdHJpbmcpID0+IHtcbiAgY29uc3QgZm9ybWF0UGF0aDogc3RyaW5nID0gcGFja2FnZVBhdGggfHwgYCR7cHJvY2Vzcy5jd2QoKX0vcGFja2FnZS5qc29uYDtcblxuICBjb25zdCBwYWNrYWdlRGF0YTogc3RyaW5nID0gcmVhZEZpbGVTeW5jKGZvcm1hdFBhdGgpLnRvU3RyaW5nKCk7XG4gIHJldHVybiBKU09OLnBhcnNlKHBhY2thZ2VEYXRhKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaWxlc0J5RXh0ID0gKGV4dDogc3RyaW5nLCBjb25maWc6IExleENvbmZpZ1R5cGUpOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IHtzb3VyY2VGdWxsUGF0aH0gPSBjb25maWc7XG4gIHJldHVybiBnbG9iU3luYyhgJHtzb3VyY2VGdWxsUGF0aH0vKiovKioke2V4dH1gKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVDb25mbGljdE1vZHVsZXMgPSAobW9kdWxlTGlzdDogb2JqZWN0KSA9PiB7XG4gIGNvbnN0IHVwZGF0ZWRMaXN0OiBvYmplY3QgPSB7Li4ubW9kdWxlTGlzdH07XG5cbiAgT2JqZWN0LmtleXModXBkYXRlZExpc3QpLmZvckVhY2goKG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHJlZ2V4OiBSZWdFeHAgPSBuZXcgUmVnRXhwKCdeKD8hQHR5cGVzLykuKj8oamVzdHx3ZWJwYWNrKS4qJCcsICdnaScpO1xuICAgIGlmKHJlZ2V4LnRlc3QobW9kdWxlTmFtZSkpIHtcbiAgICAgIGRlbGV0ZSB1cGRhdGVkTGlzdFttb2R1bGVOYW1lXTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB1cGRhdGVkTGlzdDtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVGaWxlcyA9IChmaWxlTmFtZTogc3RyaW5nLCBpc1JlbGF0aXZlOiBib29sZWFuID0gZmFsc2UpID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgY29uc3QgZmlsZVBhdGg6IHN0cmluZyA9IGlzUmVsYXRpdmUgPyBwYXRoUmVzb2x2ZShjd2QsIGZpbGVOYW1lKSA6IGZpbGVOYW1lO1xuICB0cnkge1xuICAgIHJpbXJhZlN5bmMoZmlsZVBhdGgpO1xuICAgIHJldHVybiByZXNvbHZlKG51bGwpO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gIH1cbn0pO1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlTW9kdWxlcyA9ICgpID0+IG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgdHJ5IHtcbiAgICAvLyBSZW1vdmUgbm9kZV9tb2R1bGVzXG4gICAgYXdhaXQgcmVtb3ZlRmlsZXMoJy4vbm9kZV9tb2R1bGVzJywgdHJ1ZSk7XG5cbiAgICAvLyBSZW1vdmUgeWFybiBsb2NrXG4gICAgYXdhaXQgcmVtb3ZlRmlsZXMoJy4veWFybi5sb2NrJywgdHJ1ZSk7XG5cbiAgICAvLyBSZW1vdmUgbnBtIGxvY2tcbiAgICBhd2FpdCByZW1vdmVGaWxlcygnLi9wYWNrYWdlLWxvY2suanNvbicsIHRydWUpO1xuXG4gICAgcmVzb2x2ZShudWxsKTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHJlamVjdChlcnJvcik7XG4gIH1cbn0pO1xuXG5leHBvcnQgY29uc3Qgc2V0UGFja2FnZUpzb24gPSAoanNvbiwgcGFja2FnZVBhdGg/OiBzdHJpbmcpID0+IHtcbiAgaWYoIWpzb24pIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBmb3JtYXRQYXRoOiBzdHJpbmcgPSBwYWNrYWdlUGF0aCB8fCBgJHtwcm9jZXNzLmN3ZCgpfS9wYWNrYWdlLmpzb25gO1xuXG4gIHdyaXRlRmlsZVN5bmMoZm9ybWF0UGF0aCwgSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgMikpO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBMaW5rZWRNb2R1bGVUeXBlIHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBsaW5rZWRNb2R1bGVzID0gKHN0YXJ0UGF0aD86IHN0cmluZyk6IExpbmtlZE1vZHVsZVR5cGVbXSA9PiB7XG4gIGNvbnN0IHdvcmtpbmdQYXRoOiBzdHJpbmcgPSBzdGFydFBhdGggfHwgcHJvY2Vzcy5jd2QoKTtcbiAgbGV0IG1vZHVsZVBhdGg6IHN0cmluZztcbiAgbGV0IHByZWZpeDogc3RyaW5nO1xuXG4gIGlmKHdvcmtpbmdQYXRoLmluY2x1ZGVzKCdAJykpIHtcbiAgICBwcmVmaXggPSBgQCR7d29ya2luZ1BhdGguc3BsaXQoJ0AnKS5wb3AoKX1gO1xuICAgIG1vZHVsZVBhdGggPSB3b3JraW5nUGF0aDtcbiAgfSBlbHNlIHtcbiAgICBtb2R1bGVQYXRoID0gcGF0aEpvaW4od29ya2luZ1BhdGgsICdub2RlX21vZHVsZXMnKTtcbiAgfVxuXG4gIGNvbnN0IGZvdW5kUGF0aHM6IHN0cmluZ1tdID0gZ2xvYlN5bmMoYCR7bW9kdWxlUGF0aH0vKmApO1xuICByZXR1cm4gZm91bmRQYXRocy5yZWR1Y2UoKGxpc3Q6IExpbmtlZE1vZHVsZVR5cGVbXSwgZm91bmRQYXRoOiBzdHJpbmcpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RhdHMgPSBsc3RhdFN5bmMoZm91bmRQYXRoKTtcblxuICAgICAgaWYoc3RhdHMuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICBjb25zdCBkZWVwTGlzdDogTGlua2VkTW9kdWxlVHlwZVtdID0gbGlua2VkTW9kdWxlcyhmb3VuZFBhdGgpO1xuICAgICAgICBsaXN0LnB1c2goLi4uZGVlcExpc3QpO1xuICAgICAgfSBlbHNlIGlmKHN0YXRzLmlzU3ltYm9saWNMaW5rKCkpIHtcbiAgICAgICAgY29uc3QgbW9kdWxlTmFtZXM6IHN0cmluZ1tdID0gKFtwcmVmaXgsIHBhdGhCYXNlbmFtZShmb3VuZFBhdGgpXSkuZmlsdGVyKChpdGVtOiBzdHJpbmcpID0+ICFpc0VtcHR5KGl0ZW0pKTtcbiAgICAgICAgbGlzdC5wdXNoKHtuYW1lOiBgJHttb2R1bGVOYW1lcy5qb2luKCcvJyl9YCwgcGF0aDogZm91bmRQYXRofSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0gY2F0Y2h7XG4gICAgICAvLyBTa2lwIGZpbGVzIHRoYXQgZG9uJ3QgZXhpc3Qgb3IgY2FuJ3QgYmUgYWNjZXNzZWRcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cbiAgfSwgW10pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNoZWNrTGlua2VkTW9kdWxlcyA9ICgpID0+IHtcbiAgY29uc3QgbGlua2VkID0gbGlua2VkTW9kdWxlcygpO1xuXG4gIGlmKGxpbmtlZC5sZW5ndGgpIHtcbiAgICBjb25zdCBtc2dNb2R1bGU6IHN0cmluZyA9IGxpbmtlZC5sZW5ndGggPiAxID8gJ01vZHVsZXMnIDogJ01vZHVsZSc7XG4gICAgY29uc3QgbGlua2VkTXNnOiBzdHJpbmcgPSBsaW5rZWQucmVkdWNlKFxuICAgICAgKG1zZzogc3RyaW5nLCBsaW5rZWRNb2R1bGU6IExpbmtlZE1vZHVsZVR5cGUpID0+XG4gICAgICAgIGAke21zZ31cXG4gKiAke2xpbmtlZE1vZHVsZS5uYW1lfWAsXG4gICAgICBgTGlua2VkICR7bXNnTW9kdWxlfTpgXG4gICAgKTtcbiAgICBsb2coYm94ZW4obGlua2VkTXNnLCB7ZGltQm9yZGVyOiB0cnVlLCBwYWRkaW5nOiAxfSksICd3YXJuJyk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVUZW1wbGF0ZU5hbWUgPSAoZmlsZVBhdGg6IHN0cmluZywgcmVwbGFjZTogc3RyaW5nLCByZXBsYWNlQ2Fwczogc3RyaW5nKSA9PiB7XG4gIGxldCBkYXRhOiBzdHJpbmcgPSByZWFkRmlsZVN5bmMoZmlsZVBhdGgsICd1dGY4Jyk7XG4gIGRhdGEgPSBkYXRhLnJlcGxhY2UoL3NhbXBsZS9nLCByZXBsYWNlKTtcbiAgZGF0YSA9IGRhdGEucmVwbGFjZSgvU2FtcGxlL2csIHJlcGxhY2VDYXBzKTtcbiAgd3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgZGF0YSwgJ3V0ZjgnKTtcbn07Il0sIm5hbWVzIjpbImJveGVuIiwiY2hhbGsiLCJjb3B5RmlsZSIsImV4aXN0c1N5bmMiLCJsc3RhdFN5bmMiLCJta2RpclN5bmMiLCJyZWFkZGlyU3luYyIsInJlYWRGaWxlU3luYyIsIndyaXRlRmlsZVN5bmMiLCJzeW5jIiwiZ2xvYlN5bmMiLCJpc0VtcHR5Iiwib3JhIiwiYmFzZW5hbWUiLCJwYXRoQmFzZW5hbWUiLCJqb2luIiwicGF0aEpvaW4iLCJyZWxhdGl2ZSIsInBhdGhSZWxhdGl2ZSIsInJlc29sdmUiLCJwYXRoUmVzb2x2ZSIsInJpbXJhZlN5bmMiLCJsb2ciLCJjd2QiLCJwcm9jZXNzIiwiZ2V0RmlsZW5hbWVzIiwicHJvcHMiLCJjYWxsYmFjayIsImNsaU5hbWUiLCJuYW1lIiwicXVpZXQiLCJ0eXBlIiwidXNlVHlwZXNjcmlwdCIsIm5hbWVDYXBzIiwiaXRlbVR5cGVzIiwiaW5jbHVkZXMiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInN1YnN0ciIsInRlbXBsYXRlUGF0aCIsInRlbXBsYXRlRXh0IiwidGVtcGxhdGVSZWFjdCIsImNyZWF0ZVNwaW5uZXIiLCJmYWlsIiwic3RhcnQiLCJzdWNjZWVkIiwiY29sb3IiLCJjcmVhdGVQcm9ncmVzc0JhciIsInBlcmNlbnRhZ2UiLCJ3aWR0aCIsImZpbGxlZCIsIk1hdGgiLCJyb3VuZCIsImVtcHR5IiwiZmlsbGVkQmFyIiwiY3lhbiIsInJlcGVhdCIsImVtcHR5QmFyIiwiZ3JheSIsImhhbmRsZVdlYnBhY2tQcm9ncmVzcyIsIm91dHB1dCIsInNwaW5uZXIiLCJlbW9qaSIsImFjdGlvbiIsInByb2dyZXNzTWF0Y2giLCJtYXRjaCIsInByb2dyZXNzIiwicGFyc2VJbnQiLCJwcm9ncmVzc0JhciIsInRleHQiLCJnZW5lcmFsUHJvZ3Jlc3NNYXRjaCIsImNvcHlGaWxlcyIsImZpbGVzIiwidHlwZU5hbWUiLCJjb25maWciLCJvdXRwdXRGdWxsUGF0aCIsInNvdXJjZUZ1bGxQYXRoIiwiaXRlbXMiLCJtYXAiLCJmaWxlTmFtZSIsImZyb20iLCJ0byIsIlByb21pc2UiLCJhbGwiLCJyZWplY3QiLCJyZWN1cnNpdmUiLCJjb3B5RXJyb3IiLCJsZW5ndGgiLCJlcnJvciIsIm1lc3NhZ2UiLCJjb3B5Q29uZmlndXJlZEZpbGVzIiwiY29weUZpbGVzQ29uZmlnIiwic291cmNlUGF0aCIsInRvdGFsQ29waWVkIiwiYmFzZURpciIsInBhdHRlcm4iLCJyZXNvbHZlZFBhdHRlcm4iLCJtYXRjaGluZ0ZpbGVzIiwiYWJzb2x1dGUiLCJub2RpciIsInNvdXJjZUZpbGUiLCJyZWxhdGl2ZVBhdGgiLCJkZXN0UGF0aCIsImRlc3REaXIiLCJjb3B5RmlsZVN5bmMiLCJzb3VyY2UiLCJ0YXJnZXQiLCJ0YXJnZXRGaWxlIiwiaXNEaXJlY3RvcnkiLCJjb3B5Rm9sZGVyUmVjdXJzaXZlU3luYyIsInRhcmdldEZvbGRlciIsImZvckVhY2giLCJmaWxlIiwiY3VyU291cmNlIiwiZ2V0UGFja2FnZUpzb24iLCJwYWNrYWdlUGF0aCIsImZvcm1hdFBhdGgiLCJwYWNrYWdlRGF0YSIsInRvU3RyaW5nIiwiSlNPTiIsInBhcnNlIiwiZ2V0RmlsZXNCeUV4dCIsImV4dCIsInJlbW92ZUNvbmZsaWN0TW9kdWxlcyIsIm1vZHVsZUxpc3QiLCJ1cGRhdGVkTGlzdCIsIk9iamVjdCIsImtleXMiLCJtb2R1bGVOYW1lIiwicmVnZXgiLCJSZWdFeHAiLCJ0ZXN0IiwicmVtb3ZlRmlsZXMiLCJpc1JlbGF0aXZlIiwiZmlsZVBhdGgiLCJyZW1vdmVNb2R1bGVzIiwic2V0UGFja2FnZUpzb24iLCJqc29uIiwic3RyaW5naWZ5IiwibGlua2VkTW9kdWxlcyIsInN0YXJ0UGF0aCIsIndvcmtpbmdQYXRoIiwibW9kdWxlUGF0aCIsInByZWZpeCIsInNwbGl0IiwicG9wIiwiZm91bmRQYXRocyIsInJlZHVjZSIsImxpc3QiLCJmb3VuZFBhdGgiLCJzdGF0cyIsImRlZXBMaXN0IiwicHVzaCIsImlzU3ltYm9saWNMaW5rIiwibW9kdWxlTmFtZXMiLCJmaWx0ZXIiLCJpdGVtIiwicGF0aCIsImNoZWNrTGlua2VkTW9kdWxlcyIsImxpbmtlZCIsIm1zZ01vZHVsZSIsImxpbmtlZE1zZyIsIm1zZyIsImxpbmtlZE1vZHVsZSIsImRpbUJvcmRlciIsInBhZGRpbmciLCJ1cGRhdGVUZW1wbGF0ZU5hbWUiLCJyZXBsYWNlIiwicmVwbGFjZUNhcHMiLCJkYXRhIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FFRCxPQUFPQSxXQUFXLFFBQVE7QUFDMUIsT0FBT0MsV0FBVyxRQUFRO0FBQzFCLFNBQVFDLFFBQVEsRUFBRUMsVUFBVSxFQUFFQyxTQUFTLEVBQUVDLFNBQVMsRUFBRUMsV0FBVyxFQUFFQyxZQUFZLEVBQUVDLGFBQWEsUUFBTyxLQUFLO0FBQ3hHLFNBQVFDLFFBQVFDLFFBQVEsUUFBTyxPQUFPO0FBQ3RDLE9BQU9DLGFBQWEsb0JBQW9CO0FBQ3hDLE9BQU9DLFNBQVMsTUFBTTtBQUN0QixTQUFRQyxZQUFZQyxZQUFZLEVBQUVDLFFBQVFDLFFBQVEsRUFBRUMsWUFBWUMsWUFBWSxFQUFFQyxXQUFXQyxXQUFXLFFBQU8sT0FBTztBQUNsSCxTQUFRQyxVQUFVLFFBQU8sU0FBUztBQUdsQyxTQUFRQyxHQUFHLFFBQU8sV0FBVztBQUs3QixPQUFPLE1BQU1DLE1BQWNDLFFBQVFELEdBQUcsR0FBRztBQWtCekMsT0FBTyxNQUFNRSxlQUFlLENBQUNDO0lBQzNCLE1BQU0sRUFBQ0MsUUFBUSxFQUFFQyxPQUFPLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFQyxJQUFJLEVBQUVDLGFBQWEsRUFBQyxHQUFHTjtJQUU5RCxJQUFJTztJQUNKLE1BQU1DLFlBQXNCO1FBQUM7UUFBVTtLQUFRO0lBRS9DLElBQUcsQ0FBQ0wsTUFBTTtRQUNSLElBQUdLLFVBQVVDLFFBQVEsQ0FBQ0osT0FBTztZQUMzQlQsSUFBSSxDQUFDLEVBQUUsRUFBRU0sUUFBUSxRQUFRLEVBQUVHLEtBQUssbURBQW1ELENBQUMsRUFBRSxTQUFTRDtZQUMvRixPQUFPSCxXQUFXO1FBQ3BCO0lBQ0YsT0FBTztRQUNMTSxXQUFXLEdBQUdKLEtBQUtPLE1BQU0sQ0FBQyxHQUFHQyxXQUFXLEtBQUtSLEtBQUtTLE1BQU0sQ0FBQyxJQUFJO0lBQy9EO0lBRUFoQixJQUFJLEdBQUdNLFFBQVEsUUFBUSxFQUFFQyxLQUFLLENBQUMsRUFBRUUsS0FBSyxHQUFHLENBQUMsRUFBRSxRQUFRRDtJQUVwRCxJQUFJUztJQUNKLElBQUlDO0lBQ0osSUFBSUM7SUFFSixJQUFHVCxlQUFlO1FBQ2hCTyxlQUFlO1FBQ2ZDLGNBQWM7UUFDZEMsZ0JBQWdCO0lBQ2xCLE9BQU87UUFDTEYsZUFBZTtRQUNmQyxjQUFjO1FBQ2RDLGdCQUFnQjtJQUNsQjtJQUVBLE9BQU87UUFDTFI7UUFDQU87UUFDQUQ7UUFDQUU7SUFDRjtBQUNGLEVBQUU7QUFTRixPQUFPLE1BQU1DLGdCQUFnQixDQUFDWixRQUFRLEtBQUs7SUFDekMsSUFBR0EsT0FBTztRQUNSLE9BQU87WUFDTGEsTUFBTSxLQUFPO1lBQ2JDLE9BQU8sS0FBTztZQUNkQyxTQUFTLEtBQU87UUFDbEI7SUFDRjtJQUVBLE9BQU9qQyxJQUFJO1FBQUNrQyxPQUFPO0lBQVE7QUFDN0IsRUFBRTtBQUVGLE9BQU8sTUFBTUMsb0JBQW9CLENBQUNDO0lBQ2hDLE1BQU1DLFFBQVE7SUFDZCxNQUFNQyxTQUFTQyxLQUFLQyxLQUFLLENBQUMsQUFBQ0osYUFBYSxNQUFPQztJQUMvQyxNQUFNSSxRQUFRSixRQUFRQztJQUV0QixNQUFNSSxZQUFZckQsTUFBTXNELElBQUksQ0FBQyxLQUFLQyxNQUFNLENBQUNOO0lBQ3pDLE1BQU1PLFdBQVd4RCxNQUFNeUQsSUFBSSxDQUFDLEtBQUtGLE1BQU0sQ0FBQ0g7SUFFeEMsT0FBT0MsWUFBWUc7QUFDckIsRUFBRTtBQUVGLE9BQU8sTUFBTUUsd0JBQXdCLENBQUNDLFFBQWdCQyxTQUFrQi9CLE9BQWdCZ0MsT0FBZUM7SUFDckcsSUFBR2pDLE9BQU87UUFDUjtJQUNGO0lBRUEsTUFBTWtDLGdCQUFnQkosT0FBT0ssS0FBSyxDQUFDO0lBQ25DLElBQUdELGVBQWU7UUFDaEIsTUFBTUUsV0FBV0MsU0FBU0gsYUFBYSxDQUFDLEVBQUUsRUFBRTtRQUM1QyxNQUFNSSxjQUFjckIsa0JBQWtCbUI7UUFDdENMLFFBQVFRLElBQUksR0FBRyxHQUFHUCxNQUFNLENBQUMsRUFBRUMsT0FBTyxFQUFFLEVBQUVLLFlBQVksQ0FBQyxFQUFFRixTQUFTLENBQUMsQ0FBQztJQUNsRSxPQUFPLElBQUdOLE9BQU96QixRQUFRLENBQUMsdUJBQXVCO1FBQy9DLE1BQU1tQyx1QkFBdUJWLE9BQU9LLEtBQUssQ0FBQztRQUMxQyxJQUFHSyxzQkFBc0I7WUFDdkIsTUFBTUosV0FBV0MsU0FBU0csb0JBQW9CLENBQUMsRUFBRSxFQUFFO1lBQ25ELE1BQU1GLGNBQWNyQixrQkFBa0JtQjtZQUN0Q0wsUUFBUVEsSUFBSSxHQUFHLEdBQUdQLE1BQU0sQ0FBQyxFQUFFQyxPQUFPLEVBQUUsRUFBRUssWUFBWSxDQUFDLEVBQUVGLFNBQVMsQ0FBQyxDQUFDO1FBQ2xFO0lBQ0Y7QUFDRixFQUFFO0FBRUYsT0FBTyxNQUFNSyxZQUFZLE9BQU9DLE9BQWlCQyxVQUFrQlosU0FBU2E7SUFDMUUsTUFBTSxFQUFDQyxjQUFjLEVBQUVDLGNBQWMsRUFBQyxHQUFHRjtJQUN6QyxNQUFNRyxRQUFRTCxNQUFNTSxHQUFHLENBQUMsQ0FBQ0MsV0FBc0IsQ0FBQTtZQUM3Q0MsTUFBTUQ7WUFDTkUsSUFBSTdELFlBQVl1RCxnQkFBZ0J6RCxhQUFhMEQsZ0JBQWdCRztRQUMvRCxDQUFBO0lBRUEsSUFBSTtRQUNGbEIsUUFBUWpCLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRTZCLFNBQVMsU0FBUyxDQUFDO1FBQzVDLE1BQU1TLFFBQVFDLEdBQUcsQ0FBQ04sTUFBTUMsR0FBRyxDQUFDLENBQUMsRUFBQ0UsSUFBSSxFQUFFQyxFQUFFLEVBQUMsR0FBSyxJQUFJQyxRQUM5QyxDQUFDL0QsU0FBU2lFO2dCQUNSL0UsVUFBVWUsWUFBWTZELElBQUksT0FBTztvQkFBQ0ksV0FBVztnQkFBSTtnQkFDakQsT0FBT25GLFNBQVM4RSxNQUFNQyxJQUFJLENBQUNLO29CQUN6QixJQUFHQSxXQUFXO3dCQUNaRjtvQkFDRixPQUFPO3dCQUNMakUsUUFBUTtvQkFDVjtnQkFDRjtZQUNGO1FBRUYwQyxRQUFRaEIsT0FBTyxDQUFDLENBQUMsb0JBQW9CLEVBQUUyQixNQUFNZSxNQUFNLENBQUMsQ0FBQyxFQUFFZCxTQUFTLE9BQU8sQ0FBQztJQUMxRSxFQUFFLE9BQU1lLE9BQU87UUFDYjNCLFFBQVFsQixJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUU4QixTQUFTLGNBQWMsQ0FBQztRQUNuRG5ELElBQUksQ0FBQyxPQUFPLEVBQUVrRSxNQUFNQyxPQUFPLEVBQUUsRUFBRTtRQUMvQm5FLElBQUlrRSxPQUFPO0lBQ2I7QUFDRixFQUFFO0FBRUYsT0FBTyxNQUFNRSxzQkFBc0IsT0FBTzdCLFNBQVNhLFFBQXVCNUM7SUFDeEUsTUFBTSxFQUFDeUMsV0FBV29CLGVBQWUsRUFBRWhCLGNBQWMsRUFBRUMsY0FBYyxFQUFFZ0IsVUFBVSxFQUFDLEdBQUdsQjtJQUNqRixJQUFHLENBQUNpQixtQkFBbUJBLGdCQUFnQkosTUFBTSxLQUFLLEdBQUc7UUFDbkQ7SUFDRjtJQUVBLElBQUk7UUFDRjFCLFFBQVFqQixLQUFLLENBQUM7UUFDZCxJQUFJaUQsY0FBYztRQUVsQixNQUFNQyxVQUFVbEIsa0JBQW1CZ0IsQ0FBQUEsYUFBYXhFLFlBQVlHLEtBQUtxRSxjQUFjckUsR0FBRTtRQUVqRixLQUFJLE1BQU13RSxXQUFXSixnQkFBaUI7WUFDcEMsTUFBTUssa0JBQWtCNUUsWUFBWTBFLFNBQVNDO1lBQzdDLE1BQU1FLGdCQUFnQnZGLFNBQVNzRixpQkFBaUI7Z0JBQzlDRSxVQUFVO2dCQUNWQyxPQUFPO1lBQ1Q7WUFDQSxJQUFHRixjQUFjVixNQUFNLEtBQUssR0FBRztnQkFDN0IsSUFBRyxDQUFDekQsT0FBTztvQkFDVFIsSUFBSSxDQUFDLDBDQUEwQyxFQUFFeUUsU0FBUyxFQUFFLFFBQVFqRTtnQkFDdEU7Z0JBQ0E7WUFDRjtZQUVBLEtBQUksTUFBTXNFLGNBQWNILGNBQWU7Z0JBQ3JDLGdEQUFnRDtnQkFDaEQsTUFBTUksZUFBZW5GLGFBQWE0RSxTQUFTTTtnQkFDM0MsaURBQWlEO2dCQUNqRCxNQUFNRSxXQUFXbEYsWUFBWXVELGdCQUFnQjBCO2dCQUM3QyxtREFBbUQ7Z0JBQ25ELE1BQU1FLFVBQVVuRixZQUFZa0YsVUFBVTtnQkFDdENqRyxVQUFVa0csU0FBUztvQkFBQ2xCLFdBQVc7Z0JBQUk7Z0JBRW5DLE1BQU0sSUFBSUgsUUFBUSxDQUFDL0QsU0FBU2lFO29CQUMxQmxGLFNBQVNrRyxZQUFZRSxVQUFVLENBQUNoQjt3QkFDOUIsSUFBR0EsV0FBVzs0QkFDWkYsT0FBT0U7d0JBQ1QsT0FBTzs0QkFDTG5FLFFBQVE7d0JBQ1Y7b0JBQ0Y7Z0JBQ0Y7Z0JBQ0EwRTtZQUNGO1FBQ0Y7UUFDQSxJQUFHQSxjQUFjLEdBQUc7WUFDbEJoQyxRQUFRaEIsT0FBTyxDQUFDLENBQUMsb0JBQW9CLEVBQUVnRCxZQUFZLGtCQUFrQixDQUFDO1FBQ3hFLE9BQU87WUFDTGhDLFFBQVFoQixPQUFPLENBQUM7UUFDbEI7SUFDRixFQUFFLE9BQU0yQyxPQUFPO1FBQ2IzQixRQUFRbEIsSUFBSSxDQUFDO1FBQ2JyQixJQUFJLENBQUMsZ0NBQWdDLEVBQUVrRSxNQUFNQyxPQUFPLEVBQUUsRUFBRSxTQUFTM0Q7UUFDakUsTUFBTTBEO0lBQ1I7QUFDRixFQUFFO0FBRUYsT0FBTyxNQUFNZ0IsZUFBZSxDQUFDQyxRQUFnQkM7SUFDM0MsSUFBSUMsYUFBcUJEO0lBRXpCLElBQUd2RyxXQUFXdUcsU0FBUztRQUNyQixJQUFHdEcsVUFBVXNHLFFBQVFFLFdBQVcsSUFBSTtZQUNsQ0QsYUFBYTNGLFNBQVMwRixRQUFRNUYsYUFBYTJGO1FBQzdDO0lBQ0Y7SUFFQWpHLGNBQWNtRyxZQUFZcEcsYUFBYWtHO0FBQ3pDLEVBQUU7QUFFRixPQUFPLE1BQU1JLDBCQUEwQixDQUFDSixRQUFnQkM7SUFDdEQsSUFBSWxDLFFBQWtCLEVBQUU7SUFFeEIsTUFBTXNDLGVBQXVCOUYsU0FBUzBGLFFBQVE1RixhQUFhMkY7SUFFM0QsSUFBRyxDQUFDdEcsV0FBVzJHLGVBQWU7UUFDNUJ6RyxVQUFVeUc7SUFDWjtJQUVBLElBQUcxRyxVQUFVcUcsUUFBUUcsV0FBVyxJQUFJO1FBQ2xDcEMsUUFBUWxFLFlBQVltRztRQUNwQmpDLE1BQU11QyxPQUFPLENBQUMsQ0FBQ0M7WUFDYixNQUFNQyxZQUFvQmpHLFNBQVN5RixRQUFRTztZQUUzQyxJQUFHNUcsVUFBVTZHLFdBQVdMLFdBQVcsSUFBSTtnQkFDckNDLHdCQUF3QkksV0FBV0g7WUFDckMsT0FBTztnQkFDTE4sYUFBYVMsV0FBV0g7WUFDMUI7UUFDRjtJQUNGO0FBQ0YsRUFBRTtBQUVGLE9BQU8sTUFBTUksaUJBQWlCLENBQUNDO0lBQzdCLE1BQU1DLGFBQXFCRCxlQUFlLEdBQUczRixRQUFRRCxHQUFHLEdBQUcsYUFBYSxDQUFDO0lBRXpFLE1BQU04RixjQUFzQjlHLGFBQWE2RyxZQUFZRSxRQUFRO0lBQzdELE9BQU9DLEtBQUtDLEtBQUssQ0FBQ0g7QUFDcEIsRUFBRTtBQUVGLE9BQU8sTUFBTUksZ0JBQWdCLENBQUNDLEtBQWFoRDtJQUN6QyxNQUFNLEVBQUNFLGNBQWMsRUFBQyxHQUFHRjtJQUN6QixPQUFPaEUsU0FBUyxHQUFHa0UsZUFBZSxNQUFNLEVBQUU4QyxLQUFLO0FBQ2pELEVBQUU7QUFFRixPQUFPLE1BQU1DLHdCQUF3QixDQUFDQztJQUNwQyxNQUFNQyxjQUFzQjtRQUFDLEdBQUdELFVBQVU7SUFBQTtJQUUxQ0UsT0FBT0MsSUFBSSxDQUFDRixhQUFhZCxPQUFPLENBQUMsQ0FBQ2lCO1FBQ2hDLE1BQU1DLFFBQWdCLElBQUlDLE9BQU8sb0NBQW9DO1FBQ3JFLElBQUdELE1BQU1FLElBQUksQ0FBQ0gsYUFBYTtZQUN6QixPQUFPSCxXQUFXLENBQUNHLFdBQVc7UUFDaEM7SUFDRjtJQUVBLE9BQU9IO0FBQ1QsRUFBRTtBQUVGLE9BQU8sTUFBTU8sY0FBYyxDQUFDckQsVUFBa0JzRCxhQUFzQixLQUFLLEdBQUssSUFBSW5ELFFBQVEsQ0FBQy9ELFNBQVNpRTtRQUNsRyxNQUFNa0QsV0FBbUJELGFBQWFqSCxZQUFZRyxLQUFLd0QsWUFBWUE7UUFDbkUsSUFBSTtZQUNGMUQsV0FBV2lIO1lBQ1gsT0FBT25ILFFBQVE7UUFDakIsRUFBRSxPQUFNcUUsT0FBTztZQUNiLE9BQU9KLE9BQU9JO1FBQ2hCO0lBQ0YsR0FBRztBQUVILE9BQU8sTUFBTStDLGdCQUFnQixJQUFNLElBQUlyRCxRQUFRLE9BQU8vRCxTQUFTaUU7UUFDN0QsSUFBSTtZQUNGLHNCQUFzQjtZQUN0QixNQUFNZ0QsWUFBWSxrQkFBa0I7WUFFcEMsbUJBQW1CO1lBQ25CLE1BQU1BLFlBQVksZUFBZTtZQUVqQyxrQkFBa0I7WUFDbEIsTUFBTUEsWUFBWSx1QkFBdUI7WUFFekNqSCxRQUFRO1FBQ1YsRUFBRSxPQUFNcUUsT0FBTztZQUNiSixPQUFPSTtRQUNUO0lBQ0YsR0FBRztBQUVILE9BQU8sTUFBTWdELGlCQUFpQixDQUFDQyxNQUFNdEI7SUFDbkMsSUFBRyxDQUFDc0IsTUFBTTtRQUNSO0lBQ0Y7SUFFQSxNQUFNckIsYUFBcUJELGVBQWUsR0FBRzNGLFFBQVFELEdBQUcsR0FBRyxhQUFhLENBQUM7SUFFekVmLGNBQWM0RyxZQUFZRyxLQUFLbUIsU0FBUyxDQUFDRCxNQUFNLE1BQU07QUFDdkQsRUFBRTtBQU9GLE9BQU8sTUFBTUUsZ0JBQWdCLENBQUNDO0lBQzVCLE1BQU1DLGNBQXNCRCxhQUFhcEgsUUFBUUQsR0FBRztJQUNwRCxJQUFJdUg7SUFDSixJQUFJQztJQUVKLElBQUdGLFlBQVkxRyxRQUFRLENBQUMsTUFBTTtRQUM1QjRHLFNBQVMsQ0FBQyxDQUFDLEVBQUVGLFlBQVlHLEtBQUssQ0FBQyxLQUFLQyxHQUFHLElBQUk7UUFDM0NILGFBQWFEO0lBQ2YsT0FBTztRQUNMQyxhQUFhOUgsU0FBUzZILGFBQWE7SUFDckM7SUFFQSxNQUFNSyxhQUF1QnhJLFNBQVMsR0FBR29JLFdBQVcsRUFBRSxDQUFDO0lBQ3ZELE9BQU9JLFdBQVdDLE1BQU0sQ0FBQyxDQUFDQyxNQUEwQkM7UUFDbEQsSUFBSTtZQUNGLE1BQU1DLFFBQVFsSixVQUFVaUo7WUFFeEIsSUFBR0MsTUFBTTFDLFdBQVcsSUFBSTtnQkFDdEIsTUFBTTJDLFdBQStCWixjQUFjVTtnQkFDbkRELEtBQUtJLElBQUksSUFBSUQ7WUFDZixPQUFPLElBQUdELE1BQU1HLGNBQWMsSUFBSTtnQkFDaEMsTUFBTUMsY0FBd0IsQUFBQztvQkFBQ1g7b0JBQVFqSSxhQUFhdUk7aUJBQVcsQ0FBRU0sTUFBTSxDQUFDLENBQUNDLE9BQWlCLENBQUNqSixRQUFRaUo7Z0JBQ3BHUixLQUFLSSxJQUFJLENBQUM7b0JBQUMzSCxNQUFNLEdBQUc2SCxZQUFZM0ksSUFBSSxDQUFDLE1BQU07b0JBQUU4SSxNQUFNUjtnQkFBUztZQUM5RDtZQUVBLE9BQU9EO1FBQ1QsRUFBRSxPQUFLO1lBQ0wsbURBQW1EO1lBQ25ELE9BQU9BO1FBQ1Q7SUFDRixHQUFHLEVBQUU7QUFDUCxFQUFFO0FBRUYsT0FBTyxNQUFNVSxxQkFBcUI7SUFDaEMsTUFBTUMsU0FBU3BCO0lBRWYsSUFBR29CLE9BQU94RSxNQUFNLEVBQUU7UUFDaEIsTUFBTXlFLFlBQW9CRCxPQUFPeEUsTUFBTSxHQUFHLElBQUksWUFBWTtRQUMxRCxNQUFNMEUsWUFBb0JGLE9BQU9aLE1BQU0sQ0FDckMsQ0FBQ2UsS0FBYUMsZUFDWixHQUFHRCxJQUFJLEtBQUssRUFBRUMsYUFBYXRJLElBQUksRUFBRSxFQUNuQyxDQUFDLE9BQU8sRUFBRW1JLFVBQVUsQ0FBQyxDQUFDO1FBRXhCMUksSUFBSXRCLE1BQU1pSyxXQUFXO1lBQUNHLFdBQVc7WUFBTUMsU0FBUztRQUFDLElBQUk7SUFDdkQ7QUFDRixFQUFFO0FBRUYsT0FBTyxNQUFNQyxxQkFBcUIsQ0FBQ2hDLFVBQWtCaUMsU0FBaUJDO0lBQ3BFLElBQUlDLE9BQWVsSyxhQUFhK0gsVUFBVTtJQUMxQ21DLE9BQU9BLEtBQUtGLE9BQU8sQ0FBQyxXQUFXQTtJQUMvQkUsT0FBT0EsS0FBS0YsT0FBTyxDQUFDLFdBQVdDO0lBQy9CaEssY0FBYzhILFVBQVVtQyxNQUFNO0FBQ2hDLEVBQUUifQ==
|
|
302
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hcHAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cblxuaW1wb3J0IGJveGVuIGZyb20gJ2JveGVuJztcbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQge2NvcHlGaWxlLCBleGlzdHNTeW5jLCBsc3RhdFN5bmMsIG1rZGlyU3luYywgcmVhZGRpclN5bmMsIHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luY30gZnJvbSAnZnMnO1xuaW1wb3J0IHtzeW5jIGFzIGdsb2JTeW5jfSBmcm9tICdnbG9iJztcbmltcG9ydCBpc0VtcHR5IGZyb20gJ2xvZGFzaC9pc0VtcHR5LmpzJztcbmltcG9ydCBvcmEgZnJvbSAnb3JhJztcbmltcG9ydCB7YmFzZW5hbWUgYXMgcGF0aEJhc2VuYW1lLCBqb2luIGFzIHBhdGhKb2luLCByZWxhdGl2ZSBhcyBwYXRoUmVsYXRpdmUsIHJlc29sdmUgYXMgcGF0aFJlc29sdmV9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtyaW1yYWZTeW5jfSBmcm9tICdyaW1yYWYnO1xuXG5cbmltcG9ydCB7bG9nfSBmcm9tICcuL2xvZy5qcyc7XG5cbmltcG9ydCB0eXBlIHtMZXhDb25maWdUeXBlfSBmcm9tICcuLi9MZXhDb25maWcuanMnO1xuXG5cbmV4cG9ydCBjb25zdCBjd2Q6IHN0cmluZyA9IHByb2Nlc3MuY3dkKCk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0RmlsZW5hbWVzUHJvcHMge1xuICByZWFkb25seSBjYWxsYmFjaz86IChzdGF0dXM6IG51bWJlcik9PiB2b2lkO1xuICByZWFkb25seSBjbGlOYW1lPzogc3RyaW5nO1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuICByZWFkb25seSBxdWlldD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHR5cGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHVzZVR5cGVzY3JpcHQ/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgRmlsZW5hbWVzUmVzdWx0IHtcbiAgbmFtZUNhcHM6IHN0cmluZztcbiAgdGVtcGxhdGVFeHQ6IHN0cmluZztcbiAgdGVtcGxhdGVQYXRoOiBzdHJpbmc7XG4gIHRlbXBsYXRlUmVhY3Q6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGdldEZpbGVuYW1lcyA9IChwcm9wczogR2V0RmlsZW5hbWVzUHJvcHMpOiBGaWxlbmFtZXNSZXN1bHQgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCB7Y2FsbGJhY2ssIGNsaU5hbWUsIG5hbWUsIHF1aWV0LCB0eXBlLCB1c2VUeXBlc2NyaXB0fSA9IHByb3BzO1xuXG4gIGxldCBuYW1lQ2Fwczogc3RyaW5nO1xuICBjb25zdCBpdGVtVHlwZXM6IHN0cmluZ1tdID0gWydzdG9yZXMnLCAndmlld3MnXTtcblxuICBpZighbmFtZSkge1xuICAgIGlmKGl0ZW1UeXBlcy5pbmNsdWRlcyh0eXBlKSkge1xuICAgICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiAke3R5cGV9IG5hbWUgaXMgcmVxdWlyZWQuIFBsZWFzZSB1c2UgJ2xleCAtaCcgZm9yIG9wdGlvbnMuYCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgY2FsbGJhY2s/LigxKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG5hbWVDYXBzID0gYCR7bmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke25hbWUuc3Vic3RyKDEpfWA7XG4gIH1cblxuICBsb2coYCR7Y2xpTmFtZX0gYWRkaW5nICR7bmFtZX0gJHt0eXBlfS4uLmAsICdpbmZvJywgcXVpZXQpO1xuXG4gIGxldCB0ZW1wbGF0ZVBhdGg6IHN0cmluZztcbiAgbGV0IHRlbXBsYXRlRXh0OiBzdHJpbmc7XG4gIGxldCB0ZW1wbGF0ZVJlYWN0OiBzdHJpbmc7XG5cbiAgaWYodXNlVHlwZXNjcmlwdCkge1xuICAgIHRlbXBsYXRlUGF0aCA9ICcuLi8uLi90ZW1wbGF0ZXMvdHlwZXNjcmlwdCc7XG4gICAgdGVtcGxhdGVFeHQgPSAnLnRzJztcbiAgICB0ZW1wbGF0ZVJlYWN0ID0gJy50c3gnO1xuICB9IGVsc2Uge1xuICAgIHRlbXBsYXRlUGF0aCA9ICcuLi8uLi90ZW1wbGF0ZXMvZmxvdyc7XG4gICAgdGVtcGxhdGVFeHQgPSAnLmpzJztcbiAgICB0ZW1wbGF0ZVJlYWN0ID0gJy5qcyc7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG5hbWVDYXBzLFxuICAgIHRlbXBsYXRlRXh0LFxuICAgIHRlbXBsYXRlUGF0aCxcbiAgICB0ZW1wbGF0ZVJlYWN0XG4gIH07XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNwaW5uZXIge1xuICBmYWlsOiAodGV4dD86IHN0cmluZyk9PiB2b2lkO1xuICBzdGFydDogKHRleHQ/OiBzdHJpbmcpPT4gdm9pZDtcbiAgc3VjY2VlZDogKHRleHQ/OiBzdHJpbmcpPT4gdm9pZDtcbiAgdGV4dD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVNwaW5uZXIgPSAocXVpZXQgPSBmYWxzZSk6IFNwaW5uZXIgPT4ge1xuICBpZihxdWlldCkge1xuICAgIHJldHVybiB7XG4gICAgICBmYWlsOiAoKSA9PiB7fSxcbiAgICAgIHN0YXJ0OiAoKSA9PiB7fSxcbiAgICAgIHN1Y2NlZWQ6ICgpID0+IHt9XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBvcmEoe2NvbG9yOiAneWVsbG93J30pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVByb2dyZXNzQmFyID0gKHBlcmNlbnRhZ2U6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHdpZHRoID0gMjA7XG4gIGNvbnN0IGZpbGxlZCA9IE1hdGgucm91bmQoKHBlcmNlbnRhZ2UgLyAxMDApICogd2lkdGgpO1xuICBjb25zdCBlbXB0eSA9IHdpZHRoIC0gZmlsbGVkO1xuXG4gIGNvbnN0IGZpbGxlZEJhciA9IGNoYWxrLmN5YW4oJ+KWiCcpLnJlcGVhdChmaWxsZWQpO1xuICBjb25zdCBlbXB0eUJhciA9IGNoYWxrLmdyYXkoJ+KWkScpLnJlcGVhdChlbXB0eSk7XG5cbiAgcmV0dXJuIGZpbGxlZEJhciArIGVtcHR5QmFyO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZVdlYnBhY2tQcm9ncmVzcyA9IChcbiAgb3V0cHV0OiBzdHJpbmcsXG4gIHNwaW5uZXI6IFNwaW5uZXIsXG4gIHF1aWV0OiBib29sZWFuLFxuICBlbW9qaTogc3RyaW5nLFxuICBhY3Rpb246IHN0cmluZ1xuKTogdm9pZCA9PiB7XG4gIGlmKHF1aWV0KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcHJvZ3Jlc3NNYXRjaCA9IG91dHB1dC5tYXRjaCgvXFxbd2VicGFja1xcLlByb2dyZXNzXFxdIChcXGQrKSUvKTtcbiAgaWYocHJvZ3Jlc3NNYXRjaCkge1xuICAgIGNvbnN0IHByb2dyZXNzID0gcGFyc2VJbnQocHJvZ3Jlc3NNYXRjaFsxXSk7XG4gICAgY29uc3QgcHJvZ3Jlc3NCYXIgPSBjcmVhdGVQcm9ncmVzc0Jhcihwcm9ncmVzcyk7XG4gICAgc3Bpbm5lci50ZXh0ID0gYCR7ZW1vaml9ICR7YWN0aW9ufTogJHtwcm9ncmVzc0Jhcn0gJHtwcm9ncmVzc30lYDtcbiAgfSBlbHNlIGlmKG91dHB1dC5pbmNsdWRlcygnW3dlYnBhY2suUHJvZ3Jlc3NdJykpIHtcbiAgICBjb25zdCBnZW5lcmFsUHJvZ3Jlc3NNYXRjaCA9IG91dHB1dC5tYXRjaCgvKFxcZCspJS8pO1xuICAgIGlmKGdlbmVyYWxQcm9ncmVzc01hdGNoKSB7XG4gICAgICBjb25zdCBwcm9ncmVzcyA9IHBhcnNlSW50KGdlbmVyYWxQcm9ncmVzc01hdGNoWzFdKTtcbiAgICAgIGNvbnN0IHByb2dyZXNzQmFyID0gY3JlYXRlUHJvZ3Jlc3NCYXIocHJvZ3Jlc3MpO1xuICAgICAgc3Bpbm5lci50ZXh0ID0gYCR7ZW1vaml9ICR7YWN0aW9ufTogJHtwcm9ncmVzc0Jhcn0gJHtwcm9ncmVzc30lYDtcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBjb3B5RmlsZXMgPSBhc3luYyAoZmlsZXM6IHN0cmluZ1tdLCB0eXBlTmFtZTogc3RyaW5nLCBzcGlubmVyLCBjb25maWc6IExleENvbmZpZ1R5cGUpID0+IHtcbiAgY29uc3Qge291dHB1dEZ1bGxQYXRoLCBzb3VyY2VGdWxsUGF0aH0gPSBjb25maWc7XG4gIGNvbnN0IGl0ZW1zID0gZmlsZXMubWFwKChmaWxlTmFtZTogc3RyaW5nKSA9PiAoe1xuICAgIGZyb206IGZpbGVOYW1lLFxuICAgIHRvOiBwYXRoUmVzb2x2ZShvdXRwdXRGdWxsUGF0aCwgcGF0aFJlbGF0aXZlKHNvdXJjZUZ1bGxQYXRoLCBmaWxlTmFtZSkpXG4gIH0pKTtcblxuICB0cnkge1xuICAgIHNwaW5uZXIuc3RhcnQoYENvcHlpbmcgJHt0eXBlTmFtZX0gZmlsZXMuLi5gKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChpdGVtcy5tYXAoKHtmcm9tLCB0b30pID0+IG5ldyBQcm9taXNlKFxuICAgICAgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBta2RpclN5bmMocGF0aFJlc29sdmUodG8sICcuLicpLCB7cmVjdXJzaXZlOiB0cnVlfSk7XG4gICAgICAgIHJldHVybiBjb3B5RmlsZShmcm9tLCB0bywgKGNvcHlFcnJvcikgPT4ge1xuICAgICAgICAgIGlmKGNvcHlFcnJvcikge1xuICAgICAgICAgICAgcmVqZWN0KCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICApKSk7XG4gICAgc3Bpbm5lci5zdWNjZWVkKGBTdWNjZXNzZnVsbHkgY29waWVkICR7ZmlsZXMubGVuZ3RofSAke3R5cGVOYW1lfSBmaWxlcyFgKTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHNwaW5uZXIuZmFpbChgQ29weWluZyBvZiAke3R5cGVOYW1lfSBmaWxlcyBmYWlsZWQuYCk7XG4gICAgbG9nKGBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicpO1xuICAgIGxvZyhlcnJvciwgJ2Vycm9yJyk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBjb3B5Q29uZmlndXJlZEZpbGVzID0gYXN5bmMgKHNwaW5uZXIsIGNvbmZpZzogTGV4Q29uZmlnVHlwZSwgcXVpZXQ6IGJvb2xlYW4pID0+IHtcbiAgY29uc3Qge2NvcHlGaWxlczogY29weUZpbGVzQ29uZmlnLCBvdXRwdXRGdWxsUGF0aCwgc291cmNlRnVsbFBhdGgsIHNvdXJjZVBhdGh9ID0gY29uZmlnO1xuICBpZighY29weUZpbGVzQ29uZmlnIHx8IGNvcHlGaWxlc0NvbmZpZy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB0cnkge1xuICAgIHNwaW5uZXIuc3RhcnQoJ0NvcHlpbmcgY29uZmlndXJlZCBmaWxlcy4uLicpO1xuICAgIGxldCB0b3RhbENvcGllZCA9IDA7XG5cbiAgICBjb25zdCBiYXNlRGlyID0gc291cmNlRnVsbFBhdGggfHwgKHNvdXJjZVBhdGggPyBwYXRoUmVzb2x2ZShjd2QsIHNvdXJjZVBhdGgpIDogY3dkKTtcbiAgICBjb25zdCBhbGxDb3B5UHJvbWlzZXM6IFByb21pc2U8dW5rbm93bj5bXSA9IFtdO1xuXG4gICAgZm9yKGNvbnN0IHBhdHRlcm4gb2YgY29weUZpbGVzQ29uZmlnKSB7XG4gICAgICBjb25zdCByZXNvbHZlZFBhdHRlcm4gPSBwYXRoUmVzb2x2ZShiYXNlRGlyLCBwYXR0ZXJuKTtcbiAgICAgIGNvbnN0IG1hdGNoaW5nRmlsZXMgPSBnbG9iU3luYyhyZXNvbHZlZFBhdHRlcm4sIHtcbiAgICAgICAgYWJzb2x1dGU6IHRydWUsXG4gICAgICAgIG5vZGlyOiB0cnVlXG4gICAgICB9KTtcblxuICAgICAgaWYobWF0Y2hpbmdGaWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgaWYoIXF1aWV0KSB7XG4gICAgICAgICAgbG9nKGBXYXJuaW5nOiBObyBmaWxlcyBmb3VuZCBtYXRjaGluZyBwYXR0ZXJuOiAke3BhdHRlcm59YCwgJ3dhcm4nLCBxdWlldCk7XG4gICAgICAgIH1cbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvcHlQcm9taXNlcyA9IG1hdGNoaW5nRmlsZXMubWFwKChzb3VyY2VGaWxlKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHBhdGhSZWxhdGl2ZShiYXNlRGlyLCBzb3VyY2VGaWxlKTtcbiAgICAgICAgY29uc3QgZGVzdFBhdGggPSBwYXRoUmVzb2x2ZShvdXRwdXRGdWxsUGF0aCwgcmVsYXRpdmVQYXRoKTtcbiAgICAgICAgY29uc3QgZGVzdERpciA9IHBhdGhSZXNvbHZlKGRlc3RQYXRoLCAnLi4nKTtcbiAgICAgICAgbWtkaXJTeW5jKGRlc3REaXIsIHtyZWN1cnNpdmU6IHRydWV9KTtcblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgIGNvcHlGaWxlKHNvdXJjZUZpbGUsIGRlc3RQYXRoLCAoY29weUVycm9yKSA9PiB7XG4gICAgICAgICAgICBpZihjb3B5RXJyb3IpIHtcbiAgICAgICAgICAgICAgcmVqZWN0KGNvcHlFcnJvcik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBhbGxDb3B5UHJvbWlzZXMucHVzaCguLi5jb3B5UHJvbWlzZXMpO1xuICAgICAgdG90YWxDb3BpZWQgKz0gbWF0Y2hpbmdGaWxlcy5sZW5ndGg7XG4gICAgfVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoYWxsQ29weVByb21pc2VzKTtcblxuICAgIGlmKHRvdGFsQ29waWVkID4gMCkge1xuICAgICAgc3Bpbm5lci5zdWNjZWVkKGBTdWNjZXNzZnVsbHkgY29waWVkICR7dG90YWxDb3BpZWR9IGNvbmZpZ3VyZWQgZmlsZXMhYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNwaW5uZXIuc3VjY2VlZCgnTm8gY29uZmlndXJlZCBmaWxlcyB0byBjb3B5Jyk7XG4gICAgfVxuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgc3Bpbm5lci5mYWlsKCdGYWlsZWQgdG8gY29weSBjb25maWd1cmVkIGZpbGVzJyk7XG4gICAgbG9nKGBFcnJvciBjb3B5aW5nIGNvbmZpZ3VyZWQgZmlsZXM6ICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBjb3B5RmlsZVN5bmMgPSAoc291cmNlOiBzdHJpbmcsIHRhcmdldDogc3RyaW5nKSA9PiB7XG4gIGxldCB0YXJnZXRGaWxlOiBzdHJpbmcgPSB0YXJnZXQ7XG5cbiAgaWYoZXhpc3RzU3luYyh0YXJnZXQpKSB7XG4gICAgaWYobHN0YXRTeW5jKHRhcmdldCkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgdGFyZ2V0RmlsZSA9IHBhdGhKb2luKHRhcmdldCwgcGF0aEJhc2VuYW1lKHNvdXJjZSkpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlRmlsZVN5bmModGFyZ2V0RmlsZSwgcmVhZEZpbGVTeW5jKHNvdXJjZSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvcHlGb2xkZXJSZWN1cnNpdmVTeW5jID0gKHNvdXJjZTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZyk6IHZvaWQgPT4ge1xuICBsZXQgZmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3QgdGFyZ2V0Rm9sZGVyOiBzdHJpbmcgPSBwYXRoSm9pbih0YXJnZXQsIHBhdGhCYXNlbmFtZShzb3VyY2UpKTtcblxuICBpZighZXhpc3RzU3luYyh0YXJnZXRGb2xkZXIpKSB7XG4gICAgbWtkaXJTeW5jKHRhcmdldEZvbGRlcik7XG4gIH1cblxuICBpZihsc3RhdFN5bmMoc291cmNlKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgZmlsZXMgPSByZWFkZGlyU3luYyhzb3VyY2UpO1xuICAgIGZpbGVzLmZvckVhY2goKGZpbGU6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgY3VyU291cmNlOiBzdHJpbmcgPSBwYXRoSm9pbihzb3VyY2UsIGZpbGUpO1xuXG4gICAgICBpZihsc3RhdFN5bmMoY3VyU291cmNlKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgIGNvcHlGb2xkZXJSZWN1cnNpdmVTeW5jKGN1clNvdXJjZSwgdGFyZ2V0Rm9sZGVyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvcHlGaWxlU3luYyhjdXJTb3VyY2UsIHRhcmdldEZvbGRlcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRQYWNrYWdlSnNvbiA9IChwYWNrYWdlUGF0aD86IHN0cmluZykgPT4ge1xuICBjb25zdCBmb3JtYXRQYXRoOiBzdHJpbmcgPSBwYWNrYWdlUGF0aCB8fCBgJHtwcm9jZXNzLmN3ZCgpfS9wYWNrYWdlLmpzb25gO1xuICBjb25zdCBwYWNrYWdlRGF0YTogc3RyaW5nID0gcmVhZEZpbGVTeW5jKGZvcm1hdFBhdGgpLnRvU3RyaW5nKCk7XG5cbiAgcmV0dXJuIEpTT04ucGFyc2UocGFja2FnZURhdGEpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZpbGVzQnlFeHQgPSAoZXh0OiBzdHJpbmcsIGNvbmZpZzogTGV4Q29uZmlnVHlwZSk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3Qge3NvdXJjZUZ1bGxQYXRofSA9IGNvbmZpZztcbiAgcmV0dXJuIGdsb2JTeW5jKGAqKi8qKiR7ZXh0fWAsIHtcbiAgICBhYnNvbHV0ZTogdHJ1ZSxcbiAgICBjd2Q6IHNvdXJjZUZ1bGxQYXRoLFxuICAgIG5vZGlyOiB0cnVlXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUNvbmZsaWN0TW9kdWxlcyA9IChtb2R1bGVMaXN0OiBvYmplY3QpID0+IHtcbiAgY29uc3QgdXBkYXRlZExpc3Q6IG9iamVjdCA9IHsuLi5tb2R1bGVMaXN0fTtcblxuICBPYmplY3Qua2V5cyh1cGRhdGVkTGlzdCkuZm9yRWFjaCgobW9kdWxlTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcmVnZXg6IFJlZ0V4cCA9IG5ldyBSZWdFeHAoJ14oPyFAdHlwZXMvKS4qPyhqZXN0fHdlYnBhY2spLiokJywgJ2dpJyk7XG4gICAgaWYocmVnZXgudGVzdChtb2R1bGVOYW1lKSkge1xuICAgICAgZGVsZXRlIHVwZGF0ZWRMaXN0W21vZHVsZU5hbWVdO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHVwZGF0ZWRMaXN0O1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUZpbGVzID0gKGZpbGVOYW1lOiBzdHJpbmcsIGlzUmVsYXRpdmU6IGJvb2xlYW4gPSBmYWxzZSkgPT4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICBjb25zdCBmaWxlUGF0aDogc3RyaW5nID0gaXNSZWxhdGl2ZSA/IHBhdGhSZXNvbHZlKGN3ZCwgZmlsZU5hbWUpIDogZmlsZU5hbWU7XG5cbiAgdHJ5IHtcbiAgICByaW1yYWZTeW5jKGZpbGVQYXRoKTtcbiAgICByZXR1cm4gcmVzb2x2ZShudWxsKTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICB9XG59KTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZU1vZHVsZXMgPSAoKSA9PiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgcmVtb3ZlRmlsZXMoJy4vbm9kZV9tb2R1bGVzJywgdHJ1ZSk7XG4gICAgYXdhaXQgcmVtb3ZlRmlsZXMoJy4veWFybi5sb2NrJywgdHJ1ZSk7XG4gICAgYXdhaXQgcmVtb3ZlRmlsZXMoJy4vcGFja2FnZS1sb2NrLmpzb24nLCB0cnVlKTtcblxuICAgIHJlc29sdmUobnVsbCk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICByZWplY3QoZXJyb3IpO1xuICB9XG59KTtcblxuZXhwb3J0IGNvbnN0IHNldFBhY2thZ2VKc29uID0gKGpzb24sIHBhY2thZ2VQYXRoPzogc3RyaW5nKSA9PiB7XG4gIGlmKCFqc29uKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZm9ybWF0UGF0aDogc3RyaW5nID0gcGFja2FnZVBhdGggfHwgYCR7cHJvY2Vzcy5jd2QoKX0vcGFja2FnZS5qc29uYDtcblxuICB3cml0ZUZpbGVTeW5jKGZvcm1hdFBhdGgsIEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIDIpKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlua2VkTW9kdWxlVHlwZSB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgbGlua2VkTW9kdWxlcyA9IChzdGFydFBhdGg/OiBzdHJpbmcpOiBMaW5rZWRNb2R1bGVUeXBlW10gPT4ge1xuICBjb25zdCB3b3JraW5nUGF0aDogc3RyaW5nID0gc3RhcnRQYXRoIHx8IHByb2Nlc3MuY3dkKCk7XG4gIGxldCBtb2R1bGVQYXRoOiBzdHJpbmc7XG4gIGxldCBwcmVmaXg6IHN0cmluZztcblxuICBpZih3b3JraW5nUGF0aC5pbmNsdWRlcygnQCcpKSB7XG4gICAgcHJlZml4ID0gYEAke3dvcmtpbmdQYXRoLnNwbGl0KCdAJykucG9wKCl9YDtcbiAgICBtb2R1bGVQYXRoID0gd29ya2luZ1BhdGg7XG4gIH0gZWxzZSB7XG4gICAgbW9kdWxlUGF0aCA9IHBhdGhKb2luKHdvcmtpbmdQYXRoLCAnbm9kZV9tb2R1bGVzJyk7XG4gIH1cblxuICBjb25zdCBmb3VuZFBhdGhzOiBzdHJpbmdbXSA9IGdsb2JTeW5jKCcqJywge1xuICAgIGFic29sdXRlOiB0cnVlLFxuICAgIGN3ZDogbW9kdWxlUGF0aCxcbiAgICBub2RpcjogZmFsc2VcbiAgfSk7XG5cbiAgcmV0dXJuIGZvdW5kUGF0aHMucmVkdWNlKChsaXN0OiBMaW5rZWRNb2R1bGVUeXBlW10sIGZvdW5kUGF0aDogc3RyaW5nKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0YXRzID0gbHN0YXRTeW5jKGZvdW5kUGF0aCk7XG5cbiAgICAgIGlmKHN0YXRzLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgY29uc3QgZGVlcExpc3Q6IExpbmtlZE1vZHVsZVR5cGVbXSA9IGxpbmtlZE1vZHVsZXMoZm91bmRQYXRoKTtcbiAgICAgICAgbGlzdC5wdXNoKC4uLmRlZXBMaXN0KTtcbiAgICAgIH0gZWxzZSBpZihzdGF0cy5pc1N5bWJvbGljTGluaygpKSB7XG4gICAgICAgIGNvbnN0IG1vZHVsZU5hbWVzOiBzdHJpbmdbXSA9IChbcHJlZml4LCBwYXRoQmFzZW5hbWUoZm91bmRQYXRoKV0pLmZpbHRlcigoaXRlbTogc3RyaW5nKSA9PiAhaXNFbXB0eShpdGVtKSk7XG4gICAgICAgIGxpc3QucHVzaCh7bmFtZTogYCR7bW9kdWxlTmFtZXMuam9pbignLycpfWAsIHBhdGg6IGZvdW5kUGF0aH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbGlzdDtcbiAgICB9IGNhdGNoe1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfVxuICB9LCBbXSk7XG59O1xuXG5leHBvcnQgY29uc3QgY2hlY2tMaW5rZWRNb2R1bGVzID0gKCkgPT4ge1xuICBjb25zdCBsaW5rZWQgPSBsaW5rZWRNb2R1bGVzKCk7XG5cbiAgaWYobGlua2VkLmxlbmd0aCkge1xuICAgIGNvbnN0IG1zZ01vZHVsZTogc3RyaW5nID0gbGlua2VkLmxlbmd0aCA+IDEgPyAnTW9kdWxlcycgOiAnTW9kdWxlJztcbiAgICBjb25zdCBsaW5rZWRNc2c6IHN0cmluZyA9IGxpbmtlZC5yZWR1Y2UoXG4gICAgICAobXNnOiBzdHJpbmcsIGxpbmtlZE1vZHVsZTogTGlua2VkTW9kdWxlVHlwZSkgPT5cbiAgICAgICAgYCR7bXNnfVxcbiAqICR7bGlua2VkTW9kdWxlLm5hbWV9YCxcbiAgICAgIGBMaW5rZWQgJHttc2dNb2R1bGV9OmBcbiAgICApO1xuXG4gICAgbG9nKGJveGVuKGxpbmtlZE1zZywge2RpbUJvcmRlcjogdHJ1ZSwgcGFkZGluZzogMX0pLCAnd2FybicpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlVGVtcGxhdGVOYW1lID0gKGZpbGVQYXRoOiBzdHJpbmcsIHJlcGxhY2U6IHN0cmluZywgcmVwbGFjZUNhcHM6IHN0cmluZykgPT4ge1xuICBsZXQgZGF0YTogc3RyaW5nID0gcmVhZEZpbGVTeW5jKGZpbGVQYXRoLCAndXRmOCcpO1xuICBkYXRhID0gZGF0YS5yZXBsYWNlKC9zYW1wbGUvZywgcmVwbGFjZSk7XG4gIGRhdGEgPSBkYXRhLnJlcGxhY2UoL1NhbXBsZS9nLCByZXBsYWNlQ2Fwcyk7XG4gIHdyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIGRhdGEsICd1dGY4Jyk7XG59OyJdLCJuYW1lcyI6WyJib3hlbiIsImNoYWxrIiwiY29weUZpbGUiLCJleGlzdHNTeW5jIiwibHN0YXRTeW5jIiwibWtkaXJTeW5jIiwicmVhZGRpclN5bmMiLCJyZWFkRmlsZVN5bmMiLCJ3cml0ZUZpbGVTeW5jIiwic3luYyIsImdsb2JTeW5jIiwiaXNFbXB0eSIsIm9yYSIsImJhc2VuYW1lIiwicGF0aEJhc2VuYW1lIiwiam9pbiIsInBhdGhKb2luIiwicmVsYXRpdmUiLCJwYXRoUmVsYXRpdmUiLCJyZXNvbHZlIiwicGF0aFJlc29sdmUiLCJyaW1yYWZTeW5jIiwibG9nIiwiY3dkIiwicHJvY2VzcyIsImdldEZpbGVuYW1lcyIsInByb3BzIiwiY2FsbGJhY2siLCJjbGlOYW1lIiwibmFtZSIsInF1aWV0IiwidHlwZSIsInVzZVR5cGVzY3JpcHQiLCJuYW1lQ2FwcyIsIml0ZW1UeXBlcyIsImluY2x1ZGVzIiwidW5kZWZpbmVkIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzdWJzdHIiLCJ0ZW1wbGF0ZVBhdGgiLCJ0ZW1wbGF0ZUV4dCIsInRlbXBsYXRlUmVhY3QiLCJjcmVhdGVTcGlubmVyIiwiZmFpbCIsInN0YXJ0Iiwic3VjY2VlZCIsImNvbG9yIiwiY3JlYXRlUHJvZ3Jlc3NCYXIiLCJwZXJjZW50YWdlIiwid2lkdGgiLCJmaWxsZWQiLCJNYXRoIiwicm91bmQiLCJlbXB0eSIsImZpbGxlZEJhciIsImN5YW4iLCJyZXBlYXQiLCJlbXB0eUJhciIsImdyYXkiLCJoYW5kbGVXZWJwYWNrUHJvZ3Jlc3MiLCJvdXRwdXQiLCJzcGlubmVyIiwiZW1vamkiLCJhY3Rpb24iLCJwcm9ncmVzc01hdGNoIiwibWF0Y2giLCJwcm9ncmVzcyIsInBhcnNlSW50IiwicHJvZ3Jlc3NCYXIiLCJ0ZXh0IiwiZ2VuZXJhbFByb2dyZXNzTWF0Y2giLCJjb3B5RmlsZXMiLCJmaWxlcyIsInR5cGVOYW1lIiwiY29uZmlnIiwib3V0cHV0RnVsbFBhdGgiLCJzb3VyY2VGdWxsUGF0aCIsIml0ZW1zIiwibWFwIiwiZmlsZU5hbWUiLCJmcm9tIiwidG8iLCJQcm9taXNlIiwiYWxsIiwicmVqZWN0IiwicmVjdXJzaXZlIiwiY29weUVycm9yIiwibGVuZ3RoIiwiZXJyb3IiLCJtZXNzYWdlIiwiY29weUNvbmZpZ3VyZWRGaWxlcyIsImNvcHlGaWxlc0NvbmZpZyIsInNvdXJjZVBhdGgiLCJ0b3RhbENvcGllZCIsImJhc2VEaXIiLCJhbGxDb3B5UHJvbWlzZXMiLCJwYXR0ZXJuIiwicmVzb2x2ZWRQYXR0ZXJuIiwibWF0Y2hpbmdGaWxlcyIsImFic29sdXRlIiwibm9kaXIiLCJjb3B5UHJvbWlzZXMiLCJzb3VyY2VGaWxlIiwicmVsYXRpdmVQYXRoIiwiZGVzdFBhdGgiLCJkZXN0RGlyIiwicHVzaCIsImNvcHlGaWxlU3luYyIsInNvdXJjZSIsInRhcmdldCIsInRhcmdldEZpbGUiLCJpc0RpcmVjdG9yeSIsImNvcHlGb2xkZXJSZWN1cnNpdmVTeW5jIiwidGFyZ2V0Rm9sZGVyIiwiZm9yRWFjaCIsImZpbGUiLCJjdXJTb3VyY2UiLCJnZXRQYWNrYWdlSnNvbiIsInBhY2thZ2VQYXRoIiwiZm9ybWF0UGF0aCIsInBhY2thZ2VEYXRhIiwidG9TdHJpbmciLCJKU09OIiwicGFyc2UiLCJnZXRGaWxlc0J5RXh0IiwiZXh0IiwicmVtb3ZlQ29uZmxpY3RNb2R1bGVzIiwibW9kdWxlTGlzdCIsInVwZGF0ZWRMaXN0IiwiT2JqZWN0Iiwia2V5cyIsIm1vZHVsZU5hbWUiLCJyZWdleCIsIlJlZ0V4cCIsInRlc3QiLCJyZW1vdmVGaWxlcyIsImlzUmVsYXRpdmUiLCJmaWxlUGF0aCIsInJlbW92ZU1vZHVsZXMiLCJzZXRQYWNrYWdlSnNvbiIsImpzb24iLCJzdHJpbmdpZnkiLCJsaW5rZWRNb2R1bGVzIiwic3RhcnRQYXRoIiwid29ya2luZ1BhdGgiLCJtb2R1bGVQYXRoIiwicHJlZml4Iiwic3BsaXQiLCJwb3AiLCJmb3VuZFBhdGhzIiwicmVkdWNlIiwibGlzdCIsImZvdW5kUGF0aCIsInN0YXRzIiwiZGVlcExpc3QiLCJpc1N5bWJvbGljTGluayIsIm1vZHVsZU5hbWVzIiwiZmlsdGVyIiwiaXRlbSIsInBhdGgiLCJjaGVja0xpbmtlZE1vZHVsZXMiLCJsaW5rZWQiLCJtc2dNb2R1bGUiLCJsaW5rZWRNc2ciLCJtc2ciLCJsaW5rZWRNb2R1bGUiLCJkaW1Cb3JkZXIiLCJwYWRkaW5nIiwidXBkYXRlVGVtcGxhdGVOYW1lIiwicmVwbGFjZSIsInJlcGxhY2VDYXBzIiwiZGF0YSJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBRUQsT0FBT0EsV0FBVyxRQUFRO0FBQzFCLE9BQU9DLFdBQVcsUUFBUTtBQUMxQixTQUFRQyxRQUFRLEVBQUVDLFVBQVUsRUFBRUMsU0FBUyxFQUFFQyxTQUFTLEVBQUVDLFdBQVcsRUFBRUMsWUFBWSxFQUFFQyxhQUFhLFFBQU8sS0FBSztBQUN4RyxTQUFRQyxRQUFRQyxRQUFRLFFBQU8sT0FBTztBQUN0QyxPQUFPQyxhQUFhLG9CQUFvQjtBQUN4QyxPQUFPQyxTQUFTLE1BQU07QUFDdEIsU0FBUUMs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
|
|
@@ -11,7 +11,7 @@ const postcssFor = (opts = {})=>{
|
|
|
11
11
|
};
|
|
12
12
|
const iterStack = [];
|
|
13
13
|
const parentsHaveIterator = (rule, param)=>{
|
|
14
|
-
if (rule.parent
|
|
14
|
+
if (rule.parent === null) {
|
|
15
15
|
return false;
|
|
16
16
|
}
|
|
17
17
|
if (rule.parent.type === 'root') {
|
|
@@ -51,9 +51,8 @@ const postcssFor = (opts = {})=>{
|
|
|
51
51
|
iterStack.push(currentIterVar);
|
|
52
52
|
}
|
|
53
53
|
};
|
|
54
|
-
const checkNumber = (rule)=>{
|
|
55
|
-
|
|
56
|
-
if (isNaN(parseInt(param, 10)) || !param.match(/^-?\d+\.?\d*$/)) {
|
|
54
|
+
const checkNumber = (rule)=>(param)=>{
|
|
55
|
+
if (isNaN(Number(param)) || !param.match(/^-?\d+\.?\d*$/)) {
|
|
57
56
|
if (param.indexOf('$') !== -1) {
|
|
58
57
|
if (!parentsHaveIterator(rule, param)) {
|
|
59
58
|
throw rule.error('External variable (not from a parent for loop) cannot be used as a range parameter', {
|
|
@@ -67,7 +66,6 @@ const postcssFor = (opts = {})=>{
|
|
|
67
66
|
}
|
|
68
67
|
}
|
|
69
68
|
};
|
|
70
|
-
};
|
|
71
69
|
const checkParams = (rule, params)=>{
|
|
72
70
|
if (!params[0]?.startsWith('$') || params[1] !== 'from' || params[3] !== 'to' || params[5] && params[5] !== 'by') {
|
|
73
71
|
throw rule.error('Wrong loop syntax', {
|
|
@@ -132,13 +130,13 @@ const postcssFor = (opts = {})=>{
|
|
|
132
130
|
});
|
|
133
131
|
};
|
|
134
132
|
return {
|
|
135
|
-
postcssPlugin: 'postcss-for',
|
|
136
133
|
Once (root) {
|
|
137
134
|
processOriginalLoops(root);
|
|
138
|
-
}
|
|
135
|
+
},
|
|
136
|
+
postcssPlugin: 'postcss-for'
|
|
139
137
|
};
|
|
140
138
|
};
|
|
141
139
|
postcssFor.postcss = true;
|
|
142
140
|
export default postcssFor;
|
|
143
141
|
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9wb3N0Y3NzL3Bvc3Rjc3MtZm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICpcbiAqIFBvc3RDU1MgOC1jb21wYXRpYmxlIHZlcnNpb24gb2YgcG9zdGNzcy1mb3IgcGx1Z2luXG4gKiBPcmlnaW5hbDogaHR0cHM6Ly9naXRodWIuY29tL2FudHlha3VzaGV2L3Bvc3Rjc3MtZm9yXG4gKi9cbmltcG9ydCBwb3N0Y3NzIGZyb20gJ3Bvc3Rjc3MnO1xuaW1wb3J0IHBvc3Rjc3NTaW1wbGVWYXJzIGZyb20gJ3Bvc3Rjc3Mtc2ltcGxlLXZhcnMnO1xuXG5pbnRlcmZhY2UgUG9zdGNzc0Zvck9wdGlvbnMge1xuICBuZXN0ZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBwb3N0Y3NzRm9yID0gKG9wdHM6IFBvc3Rjc3NGb3JPcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICBuZXN0ZWQ6IG9wdHMubmVzdGVkICE9PSBmYWxzZVxuICB9O1xuXG4gIGNvbnN0IGl0ZXJTdGFjazogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdCBwYXJlbnRzSGF2ZUl0ZXJhdG9yID0gKHJ1bGU6IHBvc3Rjc3MuQXRSdWxlLCBwYXJhbTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgaWYgKHJ1bGUucGFyZW50ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHJ1bGUucGFyZW50LnR5cGUgPT09ICdyb290Jykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAocnVsZS5wYXJlbnQudHlwZSAhPT0gJ2F0cnVsZScgfHwgIXJ1bGUucGFyZW50LnBhcmFtcykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmVudEl0ZXJWYXIgPSBydWxlLnBhcmVudC5wYXJhbXMuc3BsaXQoL1xccysvKVswXTtcbiAgICBpZiAoIXBhcmVudEl0ZXJWYXIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHBhcmVudEl0ZXJWYXIgPT09IHBhcmFtKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGl0ZXJTdGFjay5pbmRleE9mKHBhcmFtKSAhPT0gLTEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gcGFyZW50c0hhdmVJdGVyYXRvcihydWxlLnBhcmVudCBhcyBwb3N0Y3NzLkF0UnVsZSwgcGFyYW0pO1xuICB9O1xuXG4gIGNvbnN0IG1hbmFnZUl0ZXJTdGFjayA9IChydWxlOiBwb3N0Y3NzLkF0UnVsZSkgPT4ge1xuICAgIGlmIChydWxlLnBhcmVudCAmJiBydWxlLnBhcmVudC50eXBlICE9PSAncm9vdCcpIHtcbiAgICAgIGNvbnN0IHBhcmVudEl0ZXJWYXIgPSBydWxlLnBhcmVudC50eXBlID09PSAnYXRydWxlJyAmJiBydWxlLnBhcmVudC5wYXJhbXNcbiAgICAgICAgPyBydWxlLnBhcmVudC5wYXJhbXMuc3BsaXQoL1xccysvKVswXVxuICAgICAgICA6IG51bGw7XG4gICAgICBpZiAocGFyZW50SXRlclZhciAmJiBpdGVyU3RhY2suaW5kZXhPZihwYXJlbnRJdGVyVmFyKSA9PT0gLTEpIHtcbiAgICAgICAgaXRlclN0YWNrLnNwbGljZSgwLCBpdGVyU3RhY2subGVuZ3RoKTtcbiAgICAgIH0gZWxzZSBpZiAocGFyZW50SXRlclZhcikge1xuICAgICAgICBjb25zdCBwYXJlbnRJbmRleCA9IGl0ZXJTdGFjay5pbmRleE9mKHBhcmVudEl0ZXJWYXIpO1xuICAgICAgICBpZiAocGFyZW50SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgaXRlclN0YWNrLnNwbGljZShwYXJlbnRJbmRleCArIDEsIGl0ZXJTdGFjay5sZW5ndGggLSBwYXJlbnRJbmRleCAtIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGl0ZXJTdGFjay5zcGxpY2UoMCwgaXRlclN0YWNrLmxlbmd0aCk7XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRJdGVyVmFyID0gcnVsZS5wYXJhbXMuc3BsaXQoL1xccysvKVswXTtcbiAgICBpZiAoY3VycmVudEl0ZXJWYXIpIHtcbiAgICAgIGl0ZXJTdGFjay5wdXNoKGN1cnJlbnRJdGVyVmFyKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgY2hlY2tOdW1iZXIgPSAocnVsZTogcG9zdGNzcy5BdFJ1bGUpID0+IHtcbiAgICByZXR1cm4gKHBhcmFtOiBzdHJpbmcpID0+IHtcbiAgICAgIGlmIChpc05hTihwYXJzZUludChwYXJhbSwgMTApKSB8fCAhcGFyYW0ubWF0Y2goL14tP1xcZCtcXC4/XFxkKiQvKSkge1xuICAgICAgICBpZiAocGFyYW0uaW5kZXhPZignJCcpICE9PSAtMSkge1xuICAgICAgICAgIGlmICghcGFyZW50c0hhdmVJdGVyYXRvcihydWxlLCBwYXJhbSkpIHtcbiAgICAgICAgICAgIHRocm93IHJ1bGUuZXJyb3IoJ0V4dGVybmFsIHZhcmlhYmxlIChub3QgZnJvbSBhIHBhcmVudCBmb3IgbG9vcCkgY2Fubm90IGJlIHVzZWQgYXMgYSByYW5nZSBwYXJhbWV0ZXInLCB7XG4gICAgICAgICAgICAgIHBsdWdpbjogJ3Bvc3Rjc3MtZm9yJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IHJ1bGUuZXJyb3IoJ1JhbmdlIHBhcmFtZXRlciBzaG91bGQgYmUgYSBudW1iZXInLCB7XG4gICAgICAgICAgICBwbHVnaW46ICdwb3N0Y3NzLWZvcidcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH07XG5cbiAgY29uc3QgY2hlY2tQYXJhbXMgPSAocnVsZTogcG9zdGNzcy5BdFJ1bGUsIHBhcmFtczogc3RyaW5nW10pID0+IHtcbiAgICBpZiAoXG4gICAgICAhcGFyYW1zWzBdPy5zdGFydHNXaXRoKCckJykgfHxcbiAgICAgIHBhcmFtc1sxXSAhPT0gJ2Zyb20nIHx8XG4gICAgICBwYXJhbXNbM10gIT09ICd0bycgfHxcbiAgICAgIChwYXJhbXNbNV0gJiYgcGFyYW1zWzVdICE9PSAnYnknKVxuICAgICkge1xuICAgICAgdGhyb3cgcnVsZS5lcnJvcignV3JvbmcgbG9vcCBzeW50YXgnLCB7XG4gICAgICAgIHBsdWdpbjogJ3Bvc3Rjc3MtZm9yJ1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgW3BhcmFtc1syXSwgcGFyYW1zWzRdLCBwYXJhbXNbNl0gfHwgJzAnXS5mb3JFYWNoKGNoZWNrTnVtYmVyKHJ1bGUpKTtcbiAgfTtcblxuICBjb25zdCB1bnJvbGxMb29wID0gKHJ1bGU6IHBvc3Rjc3MuQXRSdWxlKSA9PiB7XG4gICAgY29uc3QgcGFyYW1zID0gcnVsZS5wYXJhbXMuc3BsaXQoL1xccysvKTtcblxuICAgIGNoZWNrUGFyYW1zKHJ1bGUsIHBhcmFtcyk7XG5cbiAgICBjb25zdCBpdGVyYXRvciA9IHBhcmFtc1swXS5zbGljZSgxKTtcbiAgICBjb25zdCBpbmRleCA9ICtwYXJhbXNbMl07XG4gICAgY29uc3QgdG9wID0gK3BhcmFtc1s0XTtcbiAgICBjb25zdCBkaXIgPSB0b3AgPCBpbmRleCA/IC0xIDogMTtcbiAgICBjb25zdCBieSA9ICgrKHBhcmFtc1s2XSB8fCAxKSkgKiBkaXI7XG5cbiAgICBjb25zdCB2YWx1ZTogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHt9O1xuICAgIGZvciAobGV0IGkgPSBpbmRleDsgaSAqIGRpciA8PSB0b3AgKiBkaXI7IGkgPSBpICsgYnkpIHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBydWxlLmNsb25lKCk7XG4gICAgICB2YWx1ZVtpdGVyYXRvcl0gPSBpO1xuICAgICAgY29uc3Qgc2ltcGxlVmFyc1BsdWdpbiA9IHBvc3Rjc3NTaW1wbGVWYXJzKHtvbmx5OiB2YWx1ZX0pO1xuICAgICAgaWYgKHNpbXBsZVZhcnNQbHVnaW4ucHJlcGFyZSkge1xuICAgICAgICBjb25zdCBwcmVwYXJlZCA9IHNpbXBsZVZhcnNQbHVnaW4ucHJlcGFyZSh7fSBhcyBhbnkpO1xuICAgICAgICBpZiAocHJlcGFyZWQuT25jZSkge1xuICAgICAgICAgIHByZXBhcmVkLk9uY2UoY29udGVudCwge30gYXMgYW55KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc2ltcGxlVmFyc1BsdWdpbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBzaW1wbGVWYXJzUGx1Z2luKGNvbnRlbnQpO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMubmVzdGVkKSB7XG4gICAgICAgIHByb2Nlc3NMb29wcyhjb250ZW50KTtcbiAgICAgIH1cbiAgICAgIGlmIChydWxlLnBhcmVudCkge1xuICAgICAgICBydWxlLnBhcmVudC5pbnNlcnRCZWZvcmUocnVsZSwgY29udGVudC5ub2Rlcyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChydWxlLnBhcmVudCkge1xuICAgICAgcnVsZS5yZW1vdmUoKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcHJvY2Vzc0xvb3BzID0gKGNzczogcG9zdGNzcy5Db250YWluZXIpID0+IHtcbiAgICBjc3Mud2Fsa0F0UnVsZXMoKHJ1bGUpID0+IHtcbiAgICAgIGlmIChydWxlLm5hbWUgPT09ICdmb3InKSB7XG4gICAgICAgIHVucm9sbExvb3AocnVsZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgcHJvY2Vzc09yaWdpbmFsTG9vcHMgPSAoY3NzOiBwb3N0Y3NzLlJvb3QpID0+IHtcbiAgICBjc3Mud2Fsa0F0UnVsZXMoKHJ1bGUpID0+IHtcbiAgICAgIGlmIChydWxlLm5hbWUgPT09ICdmb3InKSB7XG4gICAgICAgIGlmIChydWxlLnBhcmVudCkge1xuICAgICAgICAgIG1hbmFnZUl0ZXJTdGFjayhydWxlKTtcbiAgICAgICAgfVxuICAgICAgICB1bnJvbGxMb29wKHJ1bGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgcG9zdGNzc1BsdWdpbjogJ3Bvc3Rjc3MtZm9yJyxcbiAgICBPbmNlKHJvb3QpIHtcbiAgICAgIHByb2Nlc3NPcmlnaW5hbExvb3BzKHJvb3QpO1xuICAgIH1cbiAgfTtcbn07XG5cbnBvc3Rjc3NGb3IucG9zdGNzcyA9IHRydWU7XG5cbmV4cG9ydCBkZWZhdWx0IHBvc3Rjc3NGb3I7XG5cbiJdLCJuYW1lcyI6WyJwb3N0Y3NzU2ltcGxlVmFycyIsInBvc3Rjc3NGb3IiLCJvcHRzIiwib3B0aW9ucyIsIm5lc3RlZCIsIml0ZXJTdGFjayIsInBhcmVudHNIYXZlSXRlcmF0b3IiLCJydWxlIiwicGFyYW0iLCJwYXJlbnQiLCJ0eXBlIiwicGFyYW1zIiwicGFyZW50SXRlclZhciIsInNwbGl0IiwiaW5kZXhPZiIsIm1hbmFnZUl0ZXJTdGFjayIsInNwbGljZSIsImxlbmd0aCIsInBhcmVudEluZGV4IiwiY3VycmVudEl0ZXJWYXIiLCJwdXNoIiwiY2hlY2tOdW1iZXIiLCJpc05hTiIsInBhcnNlSW50IiwibWF0Y2giLCJlcnJvciIsInBsdWdpbiIsImNoZWNrUGFyYW1zIiwic3RhcnRzV2l0aCIsImZvckVhY2giLCJ1bnJvbGxMb29wIiwiaXRlcmF0b3IiLCJzbGljZSIsImluZGV4IiwidG9wIiwiZGlyIiwiYnkiLCJ2YWx1ZSIsImkiLCJjb250ZW50IiwiY2xvbmUiLCJzaW1wbGVWYXJzUGx1Z2luIiwib25seSIsInByZXBhcmUiLCJwcmVwYXJlZCIsIk9uY2UiLCJwcm9jZXNzTG9vcHMiLCJpbnNlcnRCZWZvcmUiLCJub2RlcyIsInJlbW92ZSIsImNzcyIsIndhbGtBdFJ1bGVzIiwibmFtZSIsInByb2Nlc3NPcmlnaW5hbExvb3Bz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
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9wb3N0Y3NzL3Bvc3Rjc3MtZm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICpcbiAqIFBvc3RDU1MgOC1jb21wYXRpYmxlIHZlcnNpb24gb2YgcG9zdGNzcy1mb3IgcGx1Z2luXG4gKiBPcmlnaW5hbDogaHR0cHM6Ly9naXRodWIuY29tL2FudHlha3VzaGV2L3Bvc3Rjc3MtZm9yXG4gKi9cbmltcG9ydCBwb3N0Y3NzIGZyb20gJ3Bvc3Rjc3MnO1xuaW1wb3J0IHBvc3Rjc3NTaW1wbGVWYXJzIGZyb20gJ3Bvc3Rjc3Mtc2ltcGxlLXZhcnMnO1xuXG5pbnRlcmZhY2UgUG9zdGNzc0Zvck9wdGlvbnMge1xuICBuZXN0ZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBwb3N0Y3NzRm9yID0gKG9wdHM6IFBvc3Rjc3NGb3JPcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICBuZXN0ZWQ6IG9wdHMubmVzdGVkICE9PSBmYWxzZVxuICB9O1xuXG4gIGNvbnN0IGl0ZXJTdGFjazogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdCBwYXJlbnRzSGF2ZUl0ZXJhdG9yID0gKHJ1bGU6IHBvc3Rjc3MuQXRSdWxlLCBwYXJhbTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgaWYocnVsZS5wYXJlbnQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYocnVsZS5wYXJlbnQudHlwZSA9PT0gJ3Jvb3QnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmKHJ1bGUucGFyZW50LnR5cGUgIT09ICdhdHJ1bGUnIHx8ICFydWxlLnBhcmVudC5wYXJhbXMpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJlbnRJdGVyVmFyID0gcnVsZS5wYXJlbnQucGFyYW1zLnNwbGl0KC9cXHMrLylbMF07XG4gICAgaWYoIXBhcmVudEl0ZXJWYXIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYocGFyZW50SXRlclZhciA9PT0gcGFyYW0pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZihpdGVyU3RhY2suaW5kZXhPZihwYXJhbSkgIT09IC0xKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcmVudHNIYXZlSXRlcmF0b3IocnVsZS5wYXJlbnQgYXMgcG9zdGNzcy5BdFJ1bGUsIHBhcmFtKTtcbiAgfTtcblxuICBjb25zdCBtYW5hZ2VJdGVyU3RhY2sgPSAocnVsZTogcG9zdGNzcy5BdFJ1bGUpID0+IHtcbiAgICBpZihydWxlLnBhcmVudCAmJiBydWxlLnBhcmVudC50eXBlICE9PSAncm9vdCcpIHtcbiAgICAgIGNvbnN0IHBhcmVudEl0ZXJWYXIgPSBydWxlLnBhcmVudC50eXBlID09PSAnYXRydWxlJyAmJiBydWxlLnBhcmVudC5wYXJhbXNcbiAgICAgICAgPyBydWxlLnBhcmVudC5wYXJhbXMuc3BsaXQoL1xccysvKVswXVxuICAgICAgICA6IG51bGw7XG4gICAgICBpZihwYXJlbnRJdGVyVmFyICYmIGl0ZXJTdGFjay5pbmRleE9mKHBhcmVudEl0ZXJWYXIpID09PSAtMSkge1xuICAgICAgICBpdGVyU3RhY2suc3BsaWNlKDAsIGl0ZXJTdGFjay5sZW5ndGgpO1xuICAgICAgfSBlbHNlIGlmKHBhcmVudEl0ZXJWYXIpIHtcbiAgICAgICAgY29uc3QgcGFyZW50SW5kZXggPSBpdGVyU3RhY2suaW5kZXhPZihwYXJlbnRJdGVyVmFyKTtcbiAgICAgICAgaWYocGFyZW50SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgaXRlclN0YWNrLnNwbGljZShwYXJlbnRJbmRleCArIDEsIGl0ZXJTdGFjay5sZW5ndGggLSBwYXJlbnRJbmRleCAtIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGl0ZXJTdGFjay5zcGxpY2UoMCwgaXRlclN0YWNrLmxlbmd0aCk7XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRJdGVyVmFyID0gcnVsZS5wYXJhbXMuc3BsaXQoL1xccysvKVswXTtcbiAgICBpZihjdXJyZW50SXRlclZhcikge1xuICAgICAgaXRlclN0YWNrLnB1c2goY3VycmVudEl0ZXJWYXIpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBjaGVja051bWJlciA9IChydWxlOiBwb3N0Y3NzLkF0UnVsZSkgPT4gKHBhcmFtOiBzdHJpbmcpID0+IHtcbiAgICBpZihpc05hTihOdW1iZXIocGFyYW0pKSB8fCAhcGFyYW0ubWF0Y2goL14tP1xcZCtcXC4/XFxkKiQvKSkge1xuICAgICAgaWYocGFyYW0uaW5kZXhPZignJCcpICE9PSAtMSkge1xuICAgICAgICBpZighcGFyZW50c0hhdmVJdGVyYXRvcihydWxlLCBwYXJhbSkpIHtcbiAgICAgICAgICB0aHJvdyBydWxlLmVycm9yKCdFeHRlcm5hbCB2YXJpYWJsZSAobm90IGZyb20gYSBwYXJlbnQgZm9yIGxvb3ApIGNhbm5vdCBiZSB1c2VkIGFzIGEgcmFuZ2UgcGFyYW1ldGVyJywge1xuICAgICAgICAgICAgcGx1Z2luOiAncG9zdGNzcy1mb3InXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IHJ1bGUuZXJyb3IoJ1JhbmdlIHBhcmFtZXRlciBzaG91bGQgYmUgYSBudW1iZXInLCB7XG4gICAgICAgICAgcGx1Z2luOiAncG9zdGNzcy1mb3InXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCBjaGVja1BhcmFtcyA9IChydWxlOiBwb3N0Y3NzLkF0UnVsZSwgcGFyYW1zOiBzdHJpbmdbXSkgPT4ge1xuICAgIGlmKFxuICAgICAgIXBhcmFtc1swXT8uc3RhcnRzV2l0aCgnJCcpIHx8XG4gICAgICBwYXJhbXNbMV0gIT09ICdmcm9tJyB8fFxuICAgICAgcGFyYW1zWzNdICE9PSAndG8nIHx8XG4gICAgICAocGFyYW1zWzVdICYmIHBhcmFtc1s1XSAhPT0gJ2J5JylcbiAgICApIHtcbiAgICAgIHRocm93IHJ1bGUuZXJyb3IoJ1dyb25nIGxvb3Agc3ludGF4Jywge1xuICAgICAgICBwbHVnaW46ICdwb3N0Y3NzLWZvcidcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIFtwYXJhbXNbMl0sIHBhcmFtc1s0XSwgcGFyYW1zWzZdIHx8ICcwJ10uZm9yRWFjaChjaGVja051bWJlcihydWxlKSk7XG4gIH07XG5cbiAgY29uc3QgdW5yb2xsTG9vcCA9IChydWxlOiBwb3N0Y3NzLkF0UnVsZSkgPT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IHJ1bGUucGFyYW1zLnNwbGl0KC9cXHMrLyk7XG5cbiAgICBjaGVja1BhcmFtcyhydWxlLCBwYXJhbXMpO1xuXG4gICAgY29uc3QgaXRlcmF0b3IgPSBwYXJhbXNbMF0uc2xpY2UoMSk7XG4gICAgY29uc3QgaW5kZXggPSArcGFyYW1zWzJdO1xuICAgIGNvbnN0IHRvcCA9ICtwYXJhbXNbNF07XG4gICAgY29uc3QgZGlyID0gdG9wIDwgaW5kZXggPyAtMSA6IDE7XG4gICAgY29uc3QgYnkgPSAoKyhwYXJhbXNbNl0gfHwgMSkpICogZGlyO1xuXG4gICAgY29uc3QgdmFsdWU6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7fTtcbiAgICBmb3IobGV0IGkgPSBpbmRleDsgaSAqIGRpciA8PSB0b3AgKiBkaXI7IGkgPSBpICsgYnkpIHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBydWxlLmNsb25lKCk7XG4gICAgICB2YWx1ZVtpdGVyYXRvcl0gPSBpO1xuICAgICAgY29uc3Qgc2ltcGxlVmFyc1BsdWdpbiA9IHBvc3Rjc3NTaW1wbGVWYXJzKHtvbmx5OiB2YWx1ZX0pO1xuICAgICAgaWYoc2ltcGxlVmFyc1BsdWdpbi5wcmVwYXJlKSB7XG4gICAgICAgIGNvbnN0IHByZXBhcmVkID0gc2ltcGxlVmFyc1BsdWdpbi5wcmVwYXJlKHt9IGFzIGFueSk7XG4gICAgICAgIGlmKHByZXBhcmVkLk9uY2UpIHtcbiAgICAgICAgICBwcmVwYXJlZC5PbmNlKGNvbnRlbnQsIHt9IGFzIGFueSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZih0eXBlb2Ygc2ltcGxlVmFyc1BsdWdpbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBzaW1wbGVWYXJzUGx1Z2luKGNvbnRlbnQpO1xuICAgICAgfVxuICAgICAgaWYob3B0aW9ucy5uZXN0ZWQpIHtcbiAgICAgICAgcHJvY2Vzc0xvb3BzKGNvbnRlbnQpO1xuICAgICAgfVxuICAgICAgaWYocnVsZS5wYXJlbnQpIHtcbiAgICAgICAgcnVsZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKHJ1bGUsIGNvbnRlbnQubm9kZXMpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZihydWxlLnBhcmVudCkge1xuICAgICAgcnVsZS5yZW1vdmUoKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcHJvY2Vzc0xvb3BzID0gKGNzczogcG9zdGNzcy5Db250YWluZXIpID0+IHtcbiAgICBjc3Mud2Fsa0F0UnVsZXMoKHJ1bGUpID0+IHtcbiAgICAgIGlmKHJ1bGUubmFtZSA9PT0gJ2ZvcicpIHtcbiAgICAgICAgdW5yb2xsTG9vcChydWxlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBwcm9jZXNzT3JpZ2luYWxMb29wcyA9IChjc3M6IHBvc3Rjc3MuUm9vdCkgPT4ge1xuICAgIGNzcy53YWxrQXRSdWxlcygocnVsZSkgPT4ge1xuICAgICAgaWYocnVsZS5uYW1lID09PSAnZm9yJykge1xuICAgICAgICBpZihydWxlLnBhcmVudCkge1xuICAgICAgICAgIG1hbmFnZUl0ZXJTdGFjayhydWxlKTtcbiAgICAgICAgfVxuICAgICAgICB1bnJvbGxMb29wKHJ1bGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgT25jZShyb290KSB7XG4gICAgICBwcm9jZXNzT3JpZ2luYWxMb29wcyhyb290KTtcbiAgICB9LFxuICAgIHBvc3Rjc3NQbHVnaW46ICdwb3N0Y3NzLWZvcidcbiAgfTtcbn07XG5cbnBvc3Rjc3NGb3IucG9zdGNzcyA9IHRydWU7XG5cbmV4cG9ydCBkZWZhdWx0IHBvc3Rjc3NGb3I7XG5cbiJdLCJuYW1lcyI6WyJwb3N0Y3NzU2ltcGxlVmFycyIsInBvc3Rjc3NGb3IiLCJvcHRzIiwib3B0aW9ucyIsIm5lc3RlZCIsIml0ZXJTdGFjayIsInBhcmVudHNIYXZlSXRlcmF0b3IiLCJydWxlIiwicGFyYW0iLCJwYXJlbnQiLCJ0eXBlIiwicGFyYW1zIiwicGFyZW50SXRlclZhciIsInNwbGl0IiwiaW5kZXhPZiIsIm1hbmFnZUl0ZXJTdGFjayIsInNwbGljZSIsImxlbmd0aCIsInBhcmVudEluZGV4IiwiY3VycmVudEl0ZXJWYXIiLCJwdXNoIiwiY2hlY2tOdW1iZXIiLCJpc05hTiIsIk51bWJlciIsIm1hdGNoIiwiZXJyb3IiLCJwbHVnaW4iLCJjaGVja1BhcmFtcyIsInN0YXJ0c1dpdGgiLCJmb3JFYWNoIiwidW5yb2xsTG9vcCIsIml0ZXJhdG9yIiwic2xpY2UiLCJpbmRleCIsInRvcCIsImRpciIsImJ5IiwidmFsdWUiLCJpIiwiY29udGVudCIsImNsb25lIiwic2ltcGxlVmFyc1BsdWdpbiIsIm9ubHkiLCJwcmVwYXJlIiwicHJlcGFyZWQiLCJPbmNlIiwicHJvY2Vzc0xvb3BzIiwiaW5zZXJ0QmVmb3JlIiwibm9kZXMiLCJyZW1vdmUiLCJjc3MiLCJ3YWxrQXRSdWxlcyIsIm5hbWUiLCJwcm9jZXNzT3JpZ2luYWxMb29wcyIsInJvb3QiLCJwb3N0Y3NzUGx1Z2luIiwicG9zdGNzcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztDQU1DLEdBRUQsT0FBT0EsdUJBQXVC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
|
|
@@ -5,10 +5,10 @@ interface PostcssPercentageOptions {
|
|
|
5
5
|
}
|
|
6
6
|
declare const postcssPercentage: {
|
|
7
7
|
(opts?: PostcssPercentageOptions): {
|
|
8
|
-
postcssPlugin: string;
|
|
9
8
|
Once(root: any, { result }: {
|
|
10
9
|
result: any;
|
|
11
10
|
}): void;
|
|
11
|
+
postcssPlugin: string;
|
|
12
12
|
};
|
|
13
13
|
postcss: boolean;
|
|
14
14
|
};
|
|
@@ -4,17 +4,16 @@
|
|
|
4
4
|
*
|
|
5
5
|
* PostCSS 8-compatible version of postcss-percentage plugin
|
|
6
6
|
* Original: https://github.com/antyakushev/postcss-percentage
|
|
7
|
-
*/ import
|
|
8
|
-
import { createRequire } from 'module';
|
|
7
|
+
*/ import Mexp from 'math-expression-evaluator';
|
|
9
8
|
import parser from 'postcss-value-parser';
|
|
10
|
-
const require = createRequire(fileURLToPath(import.meta.url));
|
|
11
|
-
const evaluator = require('math-expression-evaluator');
|
|
12
9
|
const transformPercentage = (value, precision, floor, trimTrailingZero)=>{
|
|
10
|
+
// @ts-expect-error - Mexp default export type issue
|
|
11
|
+
const evaluator = new Mexp();
|
|
13
12
|
return parser(value).walk((node)=>{
|
|
14
13
|
if (node.type !== 'function' || node.value !== 'percentage') {
|
|
15
14
|
return;
|
|
16
15
|
}
|
|
17
|
-
|
|
16
|
+
const result = evaluator.eval(parser.stringify(node.nodes)) * 100;
|
|
18
17
|
let resultStr;
|
|
19
18
|
if (result === 0) {
|
|
20
19
|
resultStr = '0';
|
|
@@ -29,6 +28,7 @@ const transformPercentage = (value, precision, floor, trimTrailingZero)=>{
|
|
|
29
28
|
resultStr = resultStr.replace(/\.0+$/, '').replace(/(\.\d*[1-9])0+$/, '$1');
|
|
30
29
|
}
|
|
31
30
|
resultStr += '%';
|
|
31
|
+
// eslint-disable-next-line no-restricted-properties
|
|
32
32
|
Object.assign(node, {
|
|
33
33
|
type: 'word',
|
|
34
34
|
value: resultStr
|
|
@@ -37,12 +37,12 @@ const transformPercentage = (value, precision, floor, trimTrailingZero)=>{
|
|
|
37
37
|
};
|
|
38
38
|
const postcssPercentage = (opts = {})=>{
|
|
39
39
|
const options = {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
floor: opts.floor,
|
|
41
|
+
precision: opts.precision === null || opts.precision === undefined || opts.precision > 20 || opts.precision < 0 ? 6 : opts.precision,
|
|
42
|
+
trimTrailingZero: opts.trimTrailingZero === null || opts.trimTrailingZero === undefined ? true : opts.trimTrailingZero
|
|
43
43
|
};
|
|
44
44
|
return {
|
|
45
|
-
|
|
45
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
46
46
|
Once (root, { result }) {
|
|
47
47
|
root.walkDecls((decl)=>{
|
|
48
48
|
if (!decl.value || !/percentage\s*\(/.test(decl.value)) {
|
|
@@ -53,15 +53,16 @@ const postcssPercentage = (opts = {})=>{
|
|
|
53
53
|
} catch (e) {
|
|
54
54
|
const error = e;
|
|
55
55
|
decl.warn(result, error.message, {
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
index: decl.index,
|
|
57
|
+
word: decl.value
|
|
58
58
|
});
|
|
59
59
|
}
|
|
60
60
|
});
|
|
61
|
-
}
|
|
61
|
+
},
|
|
62
|
+
postcssPlugin: 'postcss-percentage'
|
|
62
63
|
};
|
|
63
64
|
};
|
|
64
65
|
postcssPercentage.postcss = true;
|
|
65
66
|
export default postcssPercentage;
|
|
66
67
|
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9wb3N0Y3NzL3Bvc3Rjc3MtcGVyY2VudGFnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqXG4gKiBQb3N0Q1NTIDgtY29tcGF0aWJsZSB2ZXJzaW9uIG9mIHBvc3Rjc3MtcGVyY2VudGFnZSBwbHVnaW5cbiAqIE9yaWdpbmFsOiBodHRwczovL2dpdGh1Yi5jb20vYW50eWFrdXNoZXYvcG9zdGNzcy1wZXJjZW50YWdlXG4gKi9cbmltcG9ydCBNZXhwIGZyb20gJ21hdGgtZXhwcmVzc2lvbi1ldmFsdWF0b3InO1xuaW1wb3J0IHBhcnNlciBmcm9tICdwb3N0Y3NzLXZhbHVlLXBhcnNlcic7XG5cbmludGVyZmFjZSBQb3N0Y3NzUGVyY2VudGFnZU9wdGlvbnMge1xuICBmbG9vcj86IGJvb2xlYW47XG4gIHByZWNpc2lvbj86IG51bWJlcjtcbiAgdHJpbVRyYWlsaW5nWmVybz86IGJvb2xlYW47XG59XG5cbmNvbnN0IHRyYW5zZm9ybVBlcmNlbnRhZ2UgPSAoXG4gIHZhbHVlOiBzdHJpbmcsXG4gIHByZWNpc2lvbjogbnVtYmVyLFxuICBmbG9vcjogYm9vbGVhbiB8IHVuZGVmaW5lZCxcbiAgdHJpbVRyYWlsaW5nWmVybzogYm9vbGVhbiB8IHVuZGVmaW5lZFxuKTogc3RyaW5nID0+IHtcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIE1leHAgZGVmYXVsdCBleHBvcnQgdHlwZSBpc3N1ZVxuICBjb25zdCBldmFsdWF0b3IgPSBuZXcgTWV4cCgpO1xuICByZXR1cm4gcGFyc2VyKHZhbHVlKS53YWxrKChub2RlKSA9PiB7XG4gICAgaWYobm9kZS50eXBlICE9PSAnZnVuY3Rpb24nIHx8IG5vZGUudmFsdWUgIT09ICdwZXJjZW50YWdlJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGV2YWx1YXRvci5ldmFsKHBhcnNlci5zdHJpbmdpZnkobm9kZS5ub2RlcykpICogMTAwO1xuICAgIGxldCByZXN1bHRTdHI6IHN0cmluZztcbiAgICBpZihyZXN1bHQgPT09IDApIHtcbiAgICAgIHJlc3VsdFN0ciA9ICcwJztcbiAgICB9IGVsc2UgaWYoZmxvb3IpIHtcbiAgICAgIGNvbnN0IHJlc3VsdFN0cmluZyA9IHJlc3VsdC50b1N0cmluZygpO1xuICAgICAgY29uc3QgaW5kZXggPSByZXN1bHRTdHJpbmcuaW5kZXhPZignLicpO1xuICAgICAgcmVzdWx0U3RyID0gaW5kZXggPT09IC0xXG4gICAgICAgID8gcmVzdWx0U3RyaW5nXG4gICAgICAgIDogcmVzdWx0U3RyaW5nLnN1YnN0cmluZygwLCBpbmRleCArIDEgKyBwcmVjaXNpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRTdHIgPSByZXN1bHQudG9GaXhlZChwcmVjaXNpb24pO1xuICAgIH1cbiAgICBpZih0cmltVHJhaWxpbmdaZXJvKSB7XG4gICAgICByZXN1bHRTdHIgPSByZXN1bHRTdHJcbiAgICAgICAgLnJlcGxhY2UoL1xcLjArJC8sICcnKVxuICAgICAgICAucmVwbGFjZSgvKFxcLlxcZCpbMS05XSkwKyQvLCAnJDEnKTtcbiAgICB9XG4gICAgcmVzdWx0U3RyICs9ICclJztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1wcm9wZXJ0aWVzXG4gICAgT2JqZWN0LmFzc2lnbihub2RlLCB7XG4gICAgICB0eXBlOiAnd29yZCcgYXMgY29uc3QsXG4gICAgICB2YWx1ZTogcmVzdWx0U3RyXG4gICAgfSk7XG4gIH0pLnRvU3RyaW5nKCk7XG59O1xuXG5jb25zdCBwb3N0Y3NzUGVyY2VudGFnZSA9IChvcHRzOiBQb3N0Y3NzUGVyY2VudGFnZU9wdGlvbnMgPSB7fSkgPT4ge1xuICBjb25zdCBvcHRpb25zID0ge1xuICAgIGZsb29yOiBvcHRzLmZsb29yLFxuICAgIHByZWNpc2lvbjogb3B0cy5wcmVjaXNpb24gPT09IG51bGwgfHwgb3B0cy5wcmVjaXNpb24gPT09IHVuZGVmaW5lZCB8fCBvcHRzLnByZWNpc2lvbiA+IDIwIHx8IG9wdHMucHJlY2lzaW9uIDwgMFxuICAgICAgPyA2XG4gICAgICA6IG9wdHMucHJlY2lzaW9uLFxuICAgIHRyaW1UcmFpbGluZ1plcm86IG9wdHMudHJpbVRyYWlsaW5nWmVybyA9PT0gbnVsbCB8fCBvcHRzLnRyaW1UcmFpbGluZ1plcm8gPT09IHVuZGVmaW5lZFxuICAgICAgPyB0cnVlXG4gICAgICA6IG9wdHMudHJpbVRyYWlsaW5nWmVyb1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgIE9uY2Uocm9vdCwge3Jlc3VsdH0pIHtcbiAgICAgIHJvb3Qud2Fsa0RlY2xzKChkZWNsKSA9PiB7XG4gICAgICAgIGlmKCFkZWNsLnZhbHVlIHx8ICEvcGVyY2VudGFnZVxccypcXCgvLnRlc3QoZGVjbC52YWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGRlY2wudmFsdWUgPSB0cmFuc2Zvcm1QZXJjZW50YWdlKFxuICAgICAgICAgICAgZGVjbC52YWx1ZSxcbiAgICAgICAgICAgIG9wdGlvbnMucHJlY2lzaW9uLFxuICAgICAgICAgICAgb3B0aW9ucy5mbG9vcixcbiAgICAgICAgICAgIG9wdGlvbnMudHJpbVRyYWlsaW5nWmVyb1xuICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICAgIGNvbnN0IGVycm9yID0gZSBhcyBFcnJvcjtcbiAgICAgICAgICBkZWNsLndhcm4ocmVzdWx0LCBlcnJvci5tZXNzYWdlLCB7XG4gICAgICAgICAgICBpbmRleDogZGVjbC5pbmRleCxcbiAgICAgICAgICAgIHdvcmQ6IGRlY2wudmFsdWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSxcbiAgICBwb3N0Y3NzUGx1Z2luOiAncG9zdGNzcy1wZXJjZW50YWdlJ1xuICB9O1xufTtcblxucG9zdGNzc1BlcmNlbnRhZ2UucG9zdGNzcyA9IHRydWU7XG5cbmV4cG9ydCBkZWZhdWx0IHBvc3Rjc3NQZXJjZW50YWdlO1xuXG4iXSwibmFtZXMiOlsiTWV4cCIsInBhcnNlciIsInRyYW5zZm9ybVBlcmNlbnRhZ2UiLCJ2YWx1ZSIsInByZWNpc2lvbiIsImZsb29yIiwidHJpbVRyYWlsaW5nWmVybyIsImV2YWx1YXRvciIsIndhbGsiLCJub2RlIiwidHlwZSIsInJlc3VsdCIsImV2YWwiLCJzdHJpbmdpZnkiLCJub2RlcyIsInJlc3VsdFN0ciIsInJlc3VsdFN0cmluZyIsInRvU3RyaW5nIiwiaW5kZXgiLCJpbmRleE9mIiwic3Vic3RyaW5nIiwidG9GaXhlZCIsInJlcGxhY2UiLCJPYmplY3QiLCJhc3NpZ24iLCJwb3N0Y3NzUGVyY2VudGFnZSIsIm9wdHMiLCJvcHRpb25zIiwidW5kZWZpbmVkIiwiT25jZSIsInJvb3QiLCJ3YWxrRGVjbHMiLCJkZWNsIiwidGVzdCIsImUiLCJlcnJvciIsIndhcm4iLCJtZXNzYWdlIiwid29yZCIsInBvc3Rjc3NQbHVnaW4iLCJwb3N0Y3NzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0NBTUMsR0FDRCxPQUFPQSxVQUFVLDRCQUE0QjtBQUM3QyxPQUFPQyxZQUFZLHVCQUF1QjtBQVExQyxNQUFNQyxzQkFBc0IsQ0FDMUJDLE9BQ0FDLFdBQ0FDLE9BQ0FDO0lBRUEsb0RBQW9EO0lBQ3BELE1BQU1DLFlBQVksSUFBSVA7SUFDdEIsT0FBT0MsT0FBT0UsT0FBT0ssSUFBSSxDQUFDLENBQUNDO1FBQ3pCLElBQUdBLEtBQUtDLElBQUksS0FBSyxjQUFjRCxLQUFLTixLQUFLLEtBQUssY0FBYztZQUMxRDtRQUNGO1FBRUEsTUFBTVEsU0FBU0osVUFBVUssSUFBSSxDQUFDWCxPQUFPWSxTQUFTLENBQUNKLEtBQUtLLEtBQUssS0FBSztRQUM5RCxJQUFJQztRQUNKLElBQUdKLFdBQVcsR0FBRztZQUNmSSxZQUFZO1FBQ2QsT0FBTyxJQUFHVixPQUFPO1lBQ2YsTUFBTVcsZUFBZUwsT0FBT00sUUFBUTtZQUNwQyxNQUFNQyxRQUFRRixhQUFhRyxPQUFPLENBQUM7WUFDbkNKLFlBQVlHLFVBQVUsQ0FBQyxJQUNuQkYsZUFDQUEsYUFBYUksU0FBUyxDQUFDLEdBQUdGLFFBQVEsSUFBSWQ7UUFDNUMsT0FBTztZQUNMVyxZQUFZSixPQUFPVSxPQUFPLENBQUNqQjtRQUM3QjtRQUNBLElBQUdFLGtCQUFrQjtZQUNuQlMsWUFBWUEsVUFDVE8sT0FBTyxDQUFDLFNBQVMsSUFDakJBLE9BQU8sQ0FBQyxtQkFBbUI7UUFDaEM7UUFDQVAsYUFBYTtRQUNiLG9EQUFvRDtRQUNwRFEsT0FBT0MsTUFBTSxDQUFDZixNQUFNO1lBQ2xCQyxNQUFNO1lBQ05QLE9BQU9ZO1FBQ1Q7SUFDRixHQUFHRSxRQUFRO0FBQ2I7QUFFQSxNQUFNUSxvQkFBb0IsQ0FBQ0MsT0FBaUMsQ0FBQyxDQUFDO0lBQzVELE1BQU1DLFVBQVU7UUFDZHRCLE9BQU9xQixLQUFLckIsS0FBSztRQUNqQkQsV0FBV3NCLEtBQUt0QixTQUFTLEtBQUssUUFBUXNCLEtBQUt0QixTQUFTLEtBQUt3QixhQUFhRixLQUFLdEIsU0FBUyxHQUFHLE1BQU1zQixLQUFLdEIsU0FBUyxHQUFHLElBQzFHLElBQ0FzQixLQUFLdEIsU0FBUztRQUNsQkUsa0JBQWtCb0IsS0FBS3BCLGdCQUFnQixLQUFLLFFBQVFvQixLQUFLcEIsZ0JBQWdCLEtBQUtzQixZQUMxRSxPQUNBRixLQUFLcEIsZ0JBQWdCO0lBQzNCO0lBRUEsT0FBTztRQUNMLGdFQUFnRTtRQUNoRXVCLE1BQUtDLElBQUksRUFBRSxFQUFDbkIsTUFBTSxFQUFDO1lBQ2pCbUIsS0FBS0MsU0FBUyxDQUFDLENBQUNDO2dCQUNkLElBQUcsQ0FBQ0EsS0FBSzdCLEtBQUssSUFBSSxDQUFDLGtCQUFrQjhCLElBQUksQ0FBQ0QsS0FBSzdCLEtBQUssR0FBRztvQkFDckQ7Z0JBQ0Y7Z0JBRUEsSUFBSTtvQkFDRjZCLEtBQUs3QixLQUFLLEdBQUdELG9CQUNYOEIsS0FBSzdCLEtBQUssRUFDVndCLFFBQVF2QixTQUFTLEVBQ2pCdUIsUUFBUXRCLEtBQUssRUFDYnNCLFFBQVFyQixnQkFBZ0I7Z0JBRTVCLEVBQUUsT0FBTTRCLEdBQUc7b0JBQ1QsTUFBTUMsUUFBUUQ7b0JBQ2RGLEtBQUtJLElBQUksQ0FBQ3pCLFFBQVF3QixNQUFNRSxPQUFPLEVBQUU7d0JBQy9CbkIsT0FBT2MsS0FBS2QsS0FBSzt3QkFDakJvQixNQUFNTixLQUFLN0IsS0FBSztvQkFDbEI7Z0JBQ0Y7WUFDRjtRQUNGO1FBQ0FvQyxlQUFlO0lBQ2pCO0FBQ0Y7QUFFQWQsa0JBQWtCZSxPQUFPLEdBQUc7QUFFNUIsZUFBZWYsa0JBQWtCIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nlabs/lex",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.52.0",
|
|
4
4
|
"description": "Lex",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
"dotenv-webpack": "^8.1.1",
|
|
132
132
|
"download-npm-package": "^3.1.12",
|
|
133
133
|
"eslint": "^9.39.1",
|
|
134
|
-
"eslint-config-styleguidejs": "^4.1.
|
|
134
|
+
"eslint-config-styleguidejs": "^4.1.12",
|
|
135
135
|
"execa": "9.6.1",
|
|
136
136
|
"expect": "^30.2.0",
|
|
137
137
|
"exports-loader": "^5.0.0",
|
|
@@ -176,9 +176,12 @@
|
|
|
176
176
|
"postcss-nesting": "^13.0.2",
|
|
177
177
|
"postcss-percentage": "^0.0.0",
|
|
178
178
|
"postcss-preset-env": "^10.5.0",
|
|
179
|
+
"postcss-value-parser": "^4.2.0",
|
|
180
|
+
"math-expression-evaluator": "^2.0.7",
|
|
179
181
|
"postcss-simple-vars": "^7.0.1",
|
|
180
182
|
"postcss-svgo": "7.1.0",
|
|
181
183
|
"postcss-url": "10.1.3",
|
|
184
|
+
"postcss": "^8.5.6",
|
|
182
185
|
"process": "^0.11.10",
|
|
183
186
|
"randombytes": "^2.1.0",
|
|
184
187
|
"react": "^19.2.1",
|
|
@@ -194,7 +197,7 @@
|
|
|
194
197
|
"stream-browserify": "^3.0.0",
|
|
195
198
|
"stream-http": "^3.2.0",
|
|
196
199
|
"style-loader": "^4.0.0",
|
|
197
|
-
"svg-spritemap-webpack-plugin": "^5.0
|
|
200
|
+
"svg-spritemap-webpack-plugin": "^5.1.0",
|
|
198
201
|
"svgo": "4.0.0",
|
|
199
202
|
"swc-loader": "^0.2.6",
|
|
200
203
|
"tailwindcss": "^4.1.17",
|
|
@@ -230,10 +233,14 @@
|
|
|
230
233
|
"css-loader": "7.1.2"
|
|
231
234
|
},
|
|
232
235
|
"overrides": {
|
|
236
|
+
"cheerio": "^1.0.0-rc.13",
|
|
233
237
|
"cross-spawn": "^7.0.6",
|
|
238
|
+
"css-select": "^5.1.0",
|
|
234
239
|
"got": "^14.6.5",
|
|
235
240
|
"http-cache-semantics": "^4.2.0",
|
|
236
241
|
"http-proxy-middleware": "^3.0.5",
|
|
242
|
+
"lodash.pick": "^4.4.0",
|
|
243
|
+
"nth-check": "^2.1.1",
|
|
237
244
|
"postcss": "^8.5.6",
|
|
238
245
|
"semver-regex": "^4.0.5",
|
|
239
246
|
"tmp": "^0.2.5"
|
package/webpack.config.js
CHANGED
|
@@ -315,6 +315,8 @@ const alias = aliasKeys.reduce((aliases, key) => {
|
|
|
315
315
|
|
|
316
316
|
export default (webpackEnv, webpackOptions) => {
|
|
317
317
|
const {bundleAnalyzer, watch, entry: cliEntry, mode: cliMode, port} = webpackOptions;
|
|
318
|
+
const envPort = process.env.WEBPACK_DEV_PORT ? parseInt(process.env.WEBPACK_DEV_PORT, 10) : null;
|
|
319
|
+
const finalPort = port || envPort || 3000;
|
|
318
320
|
const entryValue = Array.isArray(cliEntry) ? cliEntry[0] : cliEntry;
|
|
319
321
|
|
|
320
322
|
// Debug printout for environment and mode
|
|
@@ -763,7 +765,7 @@ export default (webpackEnv, webpackOptions) => {
|
|
|
763
765
|
});
|
|
764
766
|
},
|
|
765
767
|
open: process.env.WEBPACK_DEV_OPEN === 'true',
|
|
766
|
-
port:
|
|
768
|
+
port: finalPort,
|
|
767
769
|
progress: 'minimal',
|
|
768
770
|
static: existsSync(outputFullPath) ? [outputFullPath] : [],
|
|
769
771
|
status: true
|