@gallop.software/canon 2.30.1 → 2.31.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/dist/cli/commands/generate.js +8 -5
- package/dist/cli/index.js +3 -3
- package/dist/eslint/rules/block-naming-convention.js +16 -6
- package/dist/eslint/rules/no-client-blocks.js +5 -3
- package/dist/eslint/rules/no-component-in-blocks.js +3 -2
- package/dist/eslint/rules/no-cross-zone-imports.js +8 -3
- package/dist/eslint/rules/require-canon-setup.js +3 -3
- package/package.json +1 -1
- package/patterns/006-block-naming.md +66 -42
|
@@ -238,7 +238,9 @@ function generateFileAuthority() {
|
|
|
238
238
|
lines.push('```');
|
|
239
239
|
lines.push('src/');
|
|
240
240
|
lines.push('├── app/ # Routes, layouts, metadata (Next.js App Router)');
|
|
241
|
-
lines.push('
|
|
241
|
+
lines.push('│ └── {route}/');
|
|
242
|
+
lines.push('│ ├── page.tsx');
|
|
243
|
+
lines.push('│ └── _blocks/ # Co-located page-specific blocks');
|
|
242
244
|
lines.push('├── blog/ # Blog content (archive content type)');
|
|
243
245
|
lines.push('├── components/ # Reusable UI primitives');
|
|
244
246
|
lines.push('├── hooks/ # Custom React hooks');
|
|
@@ -272,9 +274,10 @@ function generateFileAuthority() {
|
|
|
272
274
|
lines.push('### File Structure Rules');
|
|
273
275
|
lines.push('');
|
|
274
276
|
lines.push('**Blocks:**');
|
|
275
|
-
lines.push('-
|
|
276
|
-
lines.push('-
|
|
277
|
-
lines.push('-
|
|
277
|
+
lines.push('- Co-located in `_blocks/` subdirectories alongside each page route');
|
|
278
|
+
lines.push('- Singleton naming: `hero.tsx` (one per page), numbered when multiple: `content-2.tsx`, `content-3.tsx`');
|
|
279
|
+
lines.push('- Import with relative paths: `import Hero from \'./_blocks/hero\'`');
|
|
280
|
+
lines.push('- Example: `src/app/(default)/furniture/_blocks/hero.tsx`');
|
|
278
281
|
lines.push('');
|
|
279
282
|
lines.push('**Components:**');
|
|
280
283
|
lines.push('- Simple components: Single file in `src/components/`');
|
|
@@ -506,4 +509,4 @@ export async function generate(options) {
|
|
|
506
509
|
}
|
|
507
510
|
}
|
|
508
511
|
}
|
|
509
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NvbW1hbmRzL2dlbmVyYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBQ3hCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBQzVCLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFVekM7O0dBRUc7QUFDSCxTQUFTLFlBQVksQ0FBQyxRQUFnQjtJQUNwQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQ2xELElBQUksSUFBSSxLQUFLLFdBQVc7UUFBRSxPQUFPLFFBQVEsQ0FBQTtJQUN6QyxJQUFJLElBQUksS0FBSyx5QkFBeUI7UUFBRSxPQUFPLFNBQVMsQ0FBQTtJQUN4RCxPQUFPLGFBQWEsQ0FBQTtBQUN0QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLGFBQWE7SUFDcEIsT0FBTztRQUNMLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFO1FBQ2pELEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFO1FBQ3pDLEVBQUUsTUFBTSxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUU7S0FDakUsQ0FBQTtBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsZUFBZSxDQUFDLFdBQW1CO0lBQzFDLE1BQU0sYUFBYSxHQUFHO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLHFDQUFxQyxFQUFFLFdBQVcsQ0FBQztRQUM1RSwyQkFBMkI7UUFDM0IsSUFB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TSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQ3ZELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUM5RCxXQUFXLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxPQUFPLENBQUMsTUFBTSxnQkFBZ0IsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUNuRSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxDQUFDLE1BQU0sY0FBYyxVQUFVLENBQUMsTUFBTSxhQUFhLENBQUMsQ0FBQTtRQUM3RSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7UUFDbEQsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgeyB2ZXJzaW9uLCBwYXR0ZXJucywgZ3VhcmFudGVlcyB9IGZyb20gJy4uLy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgbG9hZENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy5qcydcbmltcG9ydCB0eXBlIHsgQ2Fub25UZW1wbGF0ZUNvbmZpZyB9IGZyb20gJy4uLy4uL3R5cGVzL2NvbmZpZy5qcydcblxudHlwZSBPdXRwdXRGb3JtYXQgPSAnY3Vyc29ycnVsZXMnIHwgJ2NsYXVkZScgfCAnY29waWxvdCdcblxuaW50ZXJmYWNlIEdlbmVyYXRlT3B0aW9ucyB7XG4gIG91dHB1dDogc3RyaW5nXG4gIGZvcm1hdDogT3V0cHV0Rm9ybWF0XG59XG5cbi8qKlxuICogRGV0ZWN0IG91dHB1dCBmb3JtYXQgZnJvbSBmaWxlbmFtZVxuICovXG5mdW5jdGlvbiBkZXRlY3RGb3JtYXQoZmlsZW5hbWU6IHN0cmluZyk6IE91dHB1dEZvcm1hdCB7XG4gIGNvbnN0IGJhc2UgPSBwYXRoLmJhc2VuYW1lKGZpbGVuYW1lKS50b0xvd2VyQ2FzZSgpXG4gIGlmIChiYXNlID09PSAnY2xhdWRlLm1kJykgcmV0dXJuICdjbGF1ZGUnXG4gIGlmIChiYXNlID09PSAnY29waWxvdC1pbnN0cnVjdGlvbnMubWQnKSByZXR1cm4gJ2NvcGlsb3QnXG4gIHJldHVybiAnY3Vyc29ycnVsZXMnXG59XG5cbi8qKlxuICogR2V0IGFsbCBvdXRwdXQgdGFyZ2V0cyB3aGVuIGdlbmVyYXRpbmcgYWxsIGZpbGVzXG4gKi9cbmZ1bmN0aW9uIGdldEFsbFRhcmdldHMoKTogR2VuZXJhdGVPcHRpb25zW10ge1xuICByZXR1cm4gW1xuICAgIHsgb3V0cHV0OiAnLmN1cnNvcnJ1bGVzJywgZm9ybWF0OiAnY3Vyc29ycnVsZXMnIH0sXG4gICAgeyBvdXRwdXQ6ICdDTEFVREUubWQnLCBmb3JtYXQ6ICdjbGF1ZGUnIH0sXG4gICAgeyBvdXRwdXQ6ICcuZ2l0aHViL2NvcGlsb3QtaW5zdHJ1Y3Rpb25zLm1kJywgZm9ybWF0OiAnY29waWxvdCcgfSxcbiAgXVxufVxuXG4vKipcbiAqIFJlYWQgYSBwYXR0ZXJuIG1hcmtkb3duIGZpbGUgYW5kIGV4dHJhY3Qgc2VjdGlvbnNcbiAqL1xuZnVuY3Rpb24gcmVhZFBhdHRlcm5GaWxlKHBhdHRlcm5GaWxlOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgcG9zc2libGVQYXRocyA9IFtcbiAgICBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgJ25vZGVfbW9kdWxlcy9AZ2FsbG9wLnNvZnR3YXJlL2Nhbm9uJywgcGF0dGVybkZpbGUpLFxuICAgIC8vIEZhbGxiYWNrIGZvciBkZXZlbG9wbWVudFxuICAgIHBhdGguam9pbihpbXBvcnQubWV0YS5kaXJuYW1lLCAnLi4vLi4vLi4vJywgcGF0dGVybkZpbGUpLFxuICBdXG5cbiAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBwb3NzaWJsZVBhdGhzKSB7XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoZmlsZVBhdGgpKSB7XG4gICAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoLCAndXRmLTgnKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG5cbi8qKlxuICogRXh0cmFjdCBleGFtcGxlcyBmcm9tIHBhdHRlcm4gbWFya2Rvd25cbiAqL1xuZnVuY3Rpb24gZXh0cmFjdEV4YW1wbGVzKGNvbnRlbnQ6IHN0cmluZyk6IHsgZ29vZDogc3RyaW5nW107IGJhZDogc3RyaW5nW10gfSB7XG4gIGNvbnN0IGdvb2Q6IHN0cmluZ1tdID0gW11cbiAgY29uc3QgYmFkOiBzdHJpbmdbXSA9IFtdXG5cbiAgY29uc3QgZ29vZE1hdGNoID0gY29udGVudC5tYXRjaCgvIyMjIEdvb2RcXHMqXFxuYGBgW1xcc1xcU10qP2BgYC9nKVxuICBjb25zdCBiYWRNYXRjaCA9IGNvbnRlbnQubWF0Y2goLyMjIyBCYWRcXHMqXFxuYGBgW1xcc1xcU10qP2BgYC9nKVxuXG4gIGlmIChnb29kTWF0Y2gpIHtcbiAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIGdvb2RNYXRjaCkge1xuICAgICAgY29uc3QgY29kZSA9IG1hdGNoLnJlcGxhY2UoLyMjIyBHb29kXFxzKlxcbi8sICcnKS50cmltKClcbiAgICAgIGdvb2QucHVzaChjb2RlKVxuICAgIH1cbiAgfVxuXG4gIGlmIChiYWRNYXRjaCkge1xuICAgIGZvciAoY29uc3QgbWF0Y2ggb2YgYmFkTWF0Y2gpIHtcbiAgICAgIGNvbnN0IGNvZGUgPSBtYXRjaC5yZXBsYWNlKC8jIyMgQmFkXFxzKlxcbi8sICcnKS50cmltKClcbiAgICAgIGJhZC5wdXNoKGNvZGUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgZ29vZCwgYmFkIH1cbn1cblxuLy8g4pSA4pSA4pSAIFNoYXJlZCBzZWN0aW9uIGdlbmVyYXRvcnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmZ1bmN0aW9uIGdlbmVyYXRlSGVhZGVyKGZvcm1hdDogT3V0cHV0Rm9ybWF0KTogc3RyaW5nW10ge1xuICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXVxuXG4gIGlmIChmb3JtYXQgPT09ICdjbGF1ZGUnKSB7XG4gICAgbGluZXMucHVzaChgIyBDTEFVREUubWQg4oCUIFByb2plY3QtU3BlY2lmaWMgSW50ZWxsaWdlbmNlYClcbiAgICBsaW5lcy5wdXNoKCcnKVxuICAgIGxpbmVzLnB1c2goYD4gQXV0by1nZW5lcmF0ZWQgZnJvbSBHYWxsb3AgQ2Fub24gdiR7dmVyc2lvbn0uIERvIG5vdCBlZGl0IG1hbnVhbGx5LmApXG4gICAgbGluZXMucHVzaChgPiBSZWdlbmVyYXRlIHdpdGg6IG5wbSBydW4gZ2VuZXJhdGU6YWktcnVsZXNgKVxuICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gJ2NvcGlsb3QnKSB7XG4gICAgbGluZXMucHVzaChgIyBHYWxsb3AgQ2Fub24gdiR7dmVyc2lvbn0gLSBDb3BpbG90IEluc3RydWN0aW9uc2ApXG4gICAgbGluZXMucHVzaCgnJylcbiAgICBsaW5lcy5wdXNoKCdUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgZnJvbSBAZ2FsbG9wLnNvZnR3YXJlL2Nhbm9uLiBEbyBub3QgZWRpdCBtYW51YWxseS4nKVxuICAgIGxpbmVzLnB1c2goJ1JlZ2VuZXJhdGUgd2l0aDogbnBtIHJ1biBnZW5lcmF0ZTphaS1ydWxlcycpXG4gIH0gZWxzZSB7XG4gICAgbGluZXMucHVzaChgIyBHYWxsb3AgQ2Fub24gdiR7dmVyc2lvbn0gLSBBSSBSdWxlc2ApXG4gICAgbGluZXMucHVzaCgnJylcbiAgICBsaW5lcy5wdXNoKCdUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgZnJvbSBAZ2FsbG9wLnNvZnR3YXJlL2Nhbm9uLiBEbyBub3QgZWRpdCBtYW51YWxseS4nKVxuICAgIGxpbmVzLnB1c2goJ1JlZ2VuZXJhdGUgd2l0aDogbnBtIHJ1biBnZW5lcmF0ZTphaS1ydWxlcycpXG4gIH1cblxuICBsaW5lcy5wdXNoKCcnKVxuICByZXR1cm4gbGluZXNcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVUZWNoU3RhY2soKTogc3RyaW5nW10ge1xuICByZXR1cm4gW1xuICAgICcjIyBUZWNoIFN0YWNrJyxcbiAgICAnJyxcbiAgICAnLSBOZXh0LmpzIDE2IHdpdGggQXBwIFJvdXRlcicsXG4gICAgJy0gUmVhY3QgMTknLFxuICAgICctIFR5cGVTY3JpcHQnLFxuICAgICctIFRhaWx3aW5kIENTUyB2NCcsXG4gICAgJy0gY2xzeCBmb3IgY29uZGl0aW9uYWwgY2xhc3MgbmFtZXMnLFxuICAgICcnLFxuICBdXG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlRW5mb3JjZWRQYXR0ZXJucyhmb3JtYXQ6IE91dHB1dEZvcm1hdCk6IHN0cmluZ1tdIHtcbiAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW11cbiAgY29uc3QgZW5mb3JjZWRQYXR0ZXJucyA9IHBhdHRlcm5zLmZpbHRlcihwID0+IHAuZW5mb3JjZW1lbnQgPT09ICdlc2xpbnQnICYmIHAucnVsZSlcblxuICBsaW5lcy5wdXNoKCcjIyBFbmZvcmNlZCBQYXR0ZXJucyAoRVNMaW50KScpXG4gIGxpbmVzLnB1c2goJycpXG4gIGxpbmVzLnB1c2goJ1RoZXNlIHBhdHRlcm5zIGFyZSBlbmZvcmNlZCBieSBgQGdhbGxvcC5zb2Z0d2FyZS9jYW5vbi9lc2xpbnRgLiBWaW9sYXRpb25zIHdpbGwgYmUgZmxhZ2dlZC4nKVxuICBsaW5lcy5wdXNoKCcnKVxuXG4gIGlmIChmb3JtYXQgPT09ICdjbGF1ZGUnKSB7XG4gICAgLy8gQ2xhdWRlIGNhbiBydW4gbGludCDigJQgYnJpZWYgbGlzdCB3aXRoIHJ1bGUgbmFtZXNcbiAgICBmb3IgKGNvbnN0IHBhdHRlcm4gb2YgZW5mb3JjZWRQYXR0ZXJucykge1xuICAgICAgbGluZXMucHVzaChgLSAqKiR7cGF0dGVybi5pZH06ICR7cGF0dGVybi50aXRsZX0qKiDigJQgXFxgJHtwYXR0ZXJuLnJ1bGV9XFxgIOKAlCAke3BhdHRlcm4uc3VtbWFyeX1gKVxuICAgIH1cbiAgICBsaW5lcy5wdXNoKCcnKVxuICB9IGVsc2Uge1xuICAgIC8vIEN1cnNvcnJ1bGVzIGFuZCBDb3BpbG90OiBmdWxsIGV4YW1wbGVzXG4gICAgZm9yIChjb25zdCBwYXR0ZXJuIG9mIGVuZm9yY2VkUGF0dGVybnMpIHtcbiAgICAgIGxpbmVzLnB1c2goYCMjIyAke3BhdHRlcm4uaWR9OiAke3BhdHRlcm4udGl0bGV9YClcbiAgICAgIGxpbmVzLnB1c2goJycpXG4gICAgICBsaW5lcy5wdXNoKHBhdHRlcm4uc3VtbWFyeSlcbiAgICAgIGxpbmVzLnB1c2goJycpXG4gICAgICBsaW5lcy5wdXNoKGAtICoqRVNMaW50IFJ1bGU6KiogXFxgJHtwYXR0ZXJuLnJ1bGV9XFxgYClcbiAgICAgIGxpbmVzLnB1c2goYC0gKipDYXRlZ29yeToqKiAke3BhdHRlcm4uY2F0ZWdvcnl9YClcbiAgICAgIGxpbmVzLnB1c2goJycpXG5cbiAgICAgIGlmIChmb3JtYXQgPT09ICdjdXJzb3JydWxlcycpIHtcbiAgICAgICAgY29uc3QgY29udGVudCA9IHJlYWRQYXR0ZXJuRmlsZShwYXR0ZXJuLmZpbGUpXG4gICAgICAgIGlmIChjb250ZW50KSB7XG4gICAgICAgICAgY29uc3QgeyBnb29kLCBiYWQgfSA9IGV4dHJhY3RFeGFtcGxlcyhjb250ZW50KVxuICAgICAgICAgIGlmIChiYWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGluZXMucHVzaCgnKipCYWQ6KionKVxuICAgICAgICAgICAgbGluZXMucHVzaCgnJylcbiAgICAgICAgICAgIGxpbmVzLnB1c2goYmFkWzBdKVxuICAgICAgICAgICAgbGluZXMucHVzaCgnJylcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGdvb2QubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGluZXMucHVzaCgnKipHb29kOioqJylcbiAgICAgICAgICAgIGxpbmVzLnB1c2goJycpXG4gICAgICAgICAgICBsaW5lcy5wdXNoKGdvb2RbMF0pXG4gICAgICAgICAgICBsaW5lcy5wdXNoKCcnKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBsaW5lc1xufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZURvY1BhdHRlcm5zKCk6IHN0cmluZ1tdIHtcbiAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW11cbiAgY29uc3QgZG9jUGF0dGVybnMgPSBwYXR0ZXJucy5maWx0ZXIocCA9PiBwLmVuZm9yY2VtZW50ID09PSAnZG9jdW1lbnRhdGlvbicpXG5cbiAgbGluZXMucHVzaCgnIyMgRG9jdW1lbnRhdGlvbiBQYXR0ZXJucycpXG4gIGxpbmVzLnB1c2goJycpXG4gIGxpbmVzLnB1c2goJ1RoZXNlIHBhdHRlcm5zIGFyZSBub3QgZW5mb3JjZWQgYnkgRVNMaW50IGJ1dCBzaG91bGQgYmUgZm9sbG93ZWQuJylcbiAgbGluZXMucHVzaCgnJylcblxuICBmb3IgKGNvbnN0IHBhdHRlcm4gb2YgZG9jUGF0dGVybnMpIHtcbiAgICBsaW5lcy5wdXNoKGAjIyMgJHtwYXR0ZXJuLmlkfTogJHtwYXR0ZXJuLnRpdGxlfWApXG4gICAgbGluZXMucHVzaCgnJylcbiAgICBsaW5lcy5wdXNoKHBhdHRlcm4uc3VtbWFyeSlcbiAgICBsaW5lcy5wdXNoKCcnKVxuICB9XG5cbiAgcmV0dXJuIGxpbmVzXG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlR3VhcmFudGVlcygpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdXG5cbiAgbGluZXMucHVzaCgnIyMgQ2Fub24gR3VhcmFudGVlcycpXG4gIGxpbmVzLnB1c2goJycpXG4gIGxpbmVzLnB1c2goJ0ZvbGxvd2luZyB0aGVzZSBwYXR0ZXJucyBwcm92aWRlcyB0aGVzZSBndWFyYW50ZWVzOicpXG4gIGxpbmVzLnB1c2goJycpXG5cbiAgZm9yIChjb25zdCBndWFyYW50ZWUgb2YgZ3VhcmFudGVlcykge1xuICAgIGxpbmVzLnB1c2goYC0gKioke2d1YXJhbnRlZS5uYW1lfSoqICgke2d1YXJhbnRlZS5pZH0pOiBQYXR0ZXJucyAke2d1YXJhbnRlZS5wYXR0ZXJucy5qb2luKCcsICcpfWApXG4gIH1cbiAgbGluZXMucHVzaCgnJylcblxuICByZXR1cm4gbGluZXNcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVDb21wb25lbnRSZWZlcmVuY2UoY29uZmlnOiBDYW5vblRlbXBsYXRlQ29uZmlnIHwgbnVsbCk6IHN0cmluZ1tdIHtcbiAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW11cblxuICBsaW5lcy5wdXNoKCcjIyBDb21wb25lbnQgUXVpY2sgUmVmZXJlbmNlJylcbiAgbGluZXMucHVzaCgnJylcblxuICBpZiAoY29uZmlnPy5jb21wb25lbnRzPy5sZW5ndGgpIHtcbiAgICBmb3IgKGNvbnN0IGNvbXAgb2YgY29uZmlnLmNvbXBvbmVudHMpIHtcbiAgICAgIGNvbnN0IHByb3BzU3RyID0gY29tcC5wcm9wcz8ubGVuZ3RoID8gYCAtIHByb3BzOiAke2NvbXAucHJvcHMubWFwKHAgPT4gYFxcYCR7cH1cXGBgKS5qb2luKCcsICcpfWAgOiAnJ1xuICAgICAgY29uc3Qgbm90ZVN0ciA9IGNvbXAubm90ZXMgPyBgICgke2NvbXAubm90ZXN9KWAgOiAnJ1xuICAgICAgbGluZXMucHVzaChgLSBcXGAke2NvbXAubmFtZX1cXGAke3Byb3BzU3RyfSR7bm90ZVN0cn1gKVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBGYWxsYmFjazogaGFyZGNvZGVkIGNvbXBvbmVudCBsaXN0XG4gICAgbGluZXMucHVzaCgnIyMjIFR5cG9ncmFwaHknKVxuICAgIGxpbmVzLnB1c2goJy0gYEhlYWRpbmdgIC0gcHJvcHM6IGBhc2AsIGBjb2xvcmAsIGBtYXJnaW5gLCBgZm9udFNpemVgLCBgZm9udFdlaWdodGAsIGB0ZXh0QWxpZ25gJylcbiAgICBsaW5lcy5wdXNoKCctIGBQYXJhZ3JhcGhgIC0gcHJvcHM6IGBjb2xvcmAsIGBtYXJnaW5gLCBgZm9udFNpemVgLCBgbGluZUhlaWdodGAsIGB0ZXh0QWxpZ25gJylcbiAgICBsaW5lcy5wdXNoKCctIGBTcGFuYCAtIHByb3BzOiBgY29sb3JgLCBgbWFyZ2luYCwgYGZvbnRTaXplYCAoaW5saW5lIHRleHQsIG1iLTAgZGVmYXVsdCknKVxuICAgIGxpbmVzLnB1c2goJy0gYExhYmVsYCAtIHByb3BzOiBgY29sb3JgLCBgbWFyZ2luYCwgYGZvbnRTaXplYCwgYGZvbnRXZWlnaHRgLCBgdGV4dEFsaWduYCcpXG4gICAgbGluZXMucHVzaCgnLSBgUXVvdGVgIC0gcHJvcHM6IGB2YXJpYW50YCwgYGNvbG9yYCwgYG1hcmdpbmAsIGBmb250U2l6ZWAsIGBmb250V2VpZ2h0YCwgYHRleHRBbGlnbmAnKVxuICAgIGxpbmVzLnB1c2goJycpXG4gICAgbGluZXMucHVzaCgnIyMjIExheW91dCcpXG4gICAgbGluZXMucHVzaCgnLSBgU2VjdGlvbmAgLSBzZW1hbnRpYyBzZWN0aW9uIHdyYXBwZXInKVxuICAgIGxpbmVzLnB1c2goJy0gYENvbHVtbnNgIC0gZ3JpZCBsYXlvdXQsIHByb3BzOiBgY29sc2AsIGBnYXBgLCBgYWxpZ25gJylcbiAgICBsaW5lcy5wdXNoKCctIGBDb2x1bW5gIC0gY29sdW1uIGNoaWxkJylcbiAgICBsaW5lcy5wdXNoKCcnKVxuICAgIGxpbmVzLnB1c2goJyMjIyBJbnRlcmFjdGl2ZScpXG4gICAgbGluZXMucHVzaCgnLSBgQnV0dG9uYCAtIHByb3BzOiBgaHJlZmAsIGB2YXJpYW50YCwgYGljb25gLCBgaWNvblBsYWNlbWVudGAsIGBtYXJnaW5gJylcbiAgICBsaW5lcy5wdXNoKCctIGBJY29uYCAtIEljb25pZnkgaWNvbiB3cmFwcGVyJylcbiAgfVxuXG4gIGxpbmVzLnB1c2goJycpXG4gIHJldHVybiBsaW5lc1xufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZURvTm90U2VjdGlvbihjb25maWc6IENhbm9uVGVtcGxhdGVDb25maWcgfCBudWxsKTogc3RyaW5nW10ge1xuICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXVxuXG4gIGxpbmVzLnB1c2goJyMjIERvIE5PVCcpXG4gIGxpbmVzLnB1c2goJycpXG5cbiAgLy8gRGVmYXVsdCBydWxlcyBhbHdheXMgcHJlc2VudFxuICBsaW5lcy5wdXNoKFwiLSBVc2UgYCd1c2UgY2xpZW50J2AgaW4gYmxvY2tzIC0gZXh0cmFjdCB0byBjb21wb25lbnRzXCIpXG4gIGxpbmVzLnB1c2goJy0gVXNlIHJhdyBgPHA+YCwgYDxzcGFuPmAsIG9yIGA8aDE+YOKAk2A8aDY+YCAtIHVzZSBQYXJhZ3JhcGgvU3Bhbi9IZWFkaW5nIGNvbXBvbmVudHMnKVxuICBsaW5lcy5wdXNoKCctIFVzZSBjbGFzc05hbWUgZm9yIG1hcmdpbi9jb2xvci9mb250U2l6ZSB3aGVuIGNvbXBvbmVudCBoYXMgcHJvcHMnKVxuICBsaW5lcy5wdXNoKCctIFVzZSBDb250YWluZXIgaW5zaWRlIFNlY3Rpb24gLSBTZWN0aW9uIGFscmVhZHkgcHJvdmlkZXMgY29udGFpbm1lbnQnKVxuICBsaW5lcy5wdXNoKCctIFVzZSBgY2xhc3NuYW1lc2AgcGFja2FnZSAtIHVzZSBgY2xzeGAgaW5zdGVhZCcpXG4gIGxpbmVzLnB1c2goJy0gVXNlIGlubGluZSBzdHlsZXMgZm9yIGhvdmVyIHN0YXRlcyAtIHVzZSBUYWlsd2luZCBjbGFzc2VzJylcbiAgbGluZXMucHVzaCgnLSBVc2UgbmF0aXZlIGBJbnRlcnNlY3Rpb25PYnNlcnZlcmAgLSB1c2UgYHJlYWN0LWludGVyc2VjdGlvbi1vYnNlcnZlcmAgcGFja2FnZScpXG4gIGxpbmVzLnB1c2goJy0gVXNlIGlubGluZSBgPHN2Zz5gIGluIGJsb2NrcyAtIHVzZSB0aGUgSWNvbiBjb21wb25lbnQgd2l0aCBJY29uaWZ5IGljb25zJylcbiAgbGluZXMucHVzaCgnLSBVc2UgZGVlcCByZWxhdGl2ZSBpbXBvcnRzIChgLi4vLi4vYCkgLSB1c2UgYEAvYCBhbGlhcyBpbXBvcnRzJylcblxuICAvLyBUZW1wbGF0ZS1zcGVjaWZpYyBydWxlc1xuICBpZiAoY29uZmlnPy5ydWxlcykge1xuICAgIGZvciAoY29uc3QgcnVsZSBvZiBjb25maWcucnVsZXMpIHtcbiAgICAgIGlmIChydWxlLnR5cGUgPT09ICdkb05vdCcpIHtcbiAgICAgICAgbGluZXMucHVzaChgLSAke3J1bGUucnVsZX1gKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxpbmVzLnB1c2goJycpXG4gIHJldHVybiBsaW5lc1xufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZUZpbGVBdXRob3JpdHkoKTogc3RyaW5nW10ge1xuICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXVxuXG4gIGxpbmVzLnB1c2goJyMjIEZpbGUgJiBGb2xkZXIgQXV0aG9yaXR5JylcbiAgbGluZXMucHVzaCgnJylcbiAgbGluZXMucHVzaCgnVGhlc2UgcnVsZXMgZ292ZXJuIHdoYXQgQUkgaXMgYWxsb3dlZCBhbmQgZm9yYmlkZGVuIHRvIGRvIHdoZW4gY3JlYXRpbmcsIG1vdmluZywgb3IgbW9kaWZ5aW5nIGZpbGVzIGFuZCBmb2xkZXJzLicpXG4gIGxpbmVzLnB1c2goJycpXG5cbiAgbGluZXMucHVzaCgnIyMjIERlZmluZWQgYC9zcmNgIFN0cnVjdHVyZScpXG4gIGxpbmVzLnB1c2goJycpXG4gIGxpbmVzLnB1c2goJ2BgYCcpXG4gIGxpbmVzLnB1c2goJ3NyYy8nKVxuICBsaW5lcy5wdXNoKCfilJzilIDilIAgYXBwLyAgICAgICAgICAjIFJvdXRlcywgbGF5b3V0cywgbWV0YWRhdGEgKE5leHQuanMgQXBwIFJvdXRlciknKVxuICBsaW5lcy5wdXNoKCfilJzilIDilIAgYmxvY2tzLyAgICAgICAjIFBhZ2UtbGV2ZWwgY29udGVudCBzZWN0aW9ucycpXG4gIGxpbmVzLnB1c2goJ+KUnOKUgOKUgCBibG9nLyAgICAgICAgICMgQmxvZyBjb250ZW50IChhcmNoaXZlIGNvbnRlbnQgdHlwZSknKVxuICBsaW5lcy5wdXNoKCfilJzilIDilIAgY29tcG9uZW50cy8gICAjIFJldXNhYmxlIFVJIHByaW1pdGl2ZXMnKVxuICBsaW5lcy5wdXNoKCfilJzilIDilIAgaG9va3MvICAgICAgICAjIEN1c3RvbSBSZWFjdCBob29rcycpXG4gIGxpbmVzLnB1c2goJ+KUnOKUgOKUgCBzdHlsZXMvICAgICAgICMgQ1NTLCBUYWlsd2luZCwgZm9udHMnKVxuICBsaW5lcy5wdXNoKCfilJzilIDilIAgdGVtcGxhdGUvICAgICAjIFRlbXBsYXRlLWxldmVsIGNvbXBvbmVudHMnKVxuICBsaW5lcy5wdXNoKCfilJzilIDilIAgdG9vbHMvICAgICAgICAjIFV0aWxpdHkgdG9vbHMnKVxuICBsaW5lcy5wdXNoKCfilJzilIDilIAgdHlwZXMvICAgICAgICAjIFR5cGVTY3JpcHQgdHlwZXMnKVxuICBsaW5lcy5wdXNoKCfilJzilIDilIAgdXRpbHMvICAgICAgICAjIFV0aWxpdHkgZnVuY3Rpb25zJylcbiAgbGluZXMucHVzaCgn4pSU4pSA4pSAIHN0YXRlLnRzICAgICAgIyBHbG9iYWwgc3RhdGUnKVxuICBsaW5lcy5wdXNoKCdgYGAnKVxuICBsaW5lcy5wdXNoKCcnKVxuXG4gIGxpbmVzLnB1c2goJyMjIyBBcHAgUm91dGVyIFN0cnVjdHVyZScpXG4gIGxpbmVzLnB1c2goJycpXG4gIGxpbmVzLnB1c2goJ1JvdXRlcyBtdXN0IHVzZSBOZXh0LmpzIHJvdXRlIGdyb3Vwcy4gQXQgbWluaW11bSwgYChkZWZhdWx0KWAgbXVzdCBleGlzdDonKVxuICBsaW5lcy5wdXNoKCcnKVxuICBsaW5lcy5wdXNoKCdgYGAnKVxuICBsaW5lcy5wdXNoKCdzcmMvYXBwLycpXG4gIGxpbmVzLnB1c2goJ+KUnOKUgOKUgCAoZGVmYXVsdCkvICAgICAgICAjIFJlcXVpcmVkIC0gZGVmYXVsdCBsYXlvdXQgZ3JvdXAnKVxuICBsaW5lcy5wdXNoKCfilIIgICDilJzilIDilIAgbGF5b3V0LnRzeCcpXG4gIGxpbmVzLnB1c2goJ+KUgiAgIOKUlOKUgOKUgCB7cm91dGVzfS8nKVxuICBsaW5lcy5wdXNoKCfilJzilIDilIAgKGhlcm8pLyAgICAgICAgICAgIyBPcHRpb25hbCAtIGhlcm8gbGF5b3V0IHZhcmlhbnQnKVxuICBsaW5lcy5wdXNoKCfilJzilIDilIAgYXBpLyAgICAgICAgICAgICAgIyBBUEkgcm91dGVzIChleGNlcHRpb24gLSBubyBncm91cGluZyknKVxuICBsaW5lcy5wdXNoKCfilJzilIDilIAgbGF5b3V0LnRzeCAgICAgICAgIyBSb290IGxheW91dCcpXG4gIGxpbmVzLnB1c2goJ+KUlOKUgOKUgCBtZXRhZGF0YS50c3ggICAgICAjIFNoYXJlZCBtZXRhZGF0YScpXG4gIGxpbmVzLnB1c2goJ2BgYCcpXG4gIGxpbmVzLnB1c2goJycpXG4gIGxpbmVzLnB1c2goJy0gQWxsIHBhZ2Ugcm91dGVzIG11c3QgYmUgaW5zaWRlIGEgcm91dGUgZ3JvdXAgKHBhcmVudGhlc2VzIGZvbGRlciknKVxuICBsaW5lcy5wdXNoKCctIE5ldmVyIGNyZWF0ZSByb3V0ZXMgZGlyZWN0bHkgdW5kZXIgYHNyYy9hcHAvYCAoZXhjZXB0IGBhcGkvYCwgcm9vdCBmaWxlcyknKVxuICBsaW5lcy5wdXNoKCctIE5ldyByb3V0ZSBncm91cHMgYXJlIGFsbG93ZWQgZnJlZWx5IHdoZW4gYSBuZXcgbGF5b3V0IHZhcmlhbnQgaXMgbmVlZGVkJylcbiAgbGluZXMucHVzaCgnJylcblxuICBsaW5lcy5wdXNoKCcjIyMgRmlsZSBTdHJ1Y3R1cmUgUnVsZXMnKVxuICBsaW5lcy5wdXNoKCcnKVxuICBsaW5lcy5wdXNoKCcqKkJsb2NrczoqKicpXG4gIGxpbmVzLnB1c2goJy0gQWx3YXlzIHNpbmdsZSBmaWxlcyBkaXJlY3RseSBpbiBgc3JjL2Jsb2Nrcy9gJylcbiAgbGluZXMucHVzaCgnLSBOZXZlciBjcmVhdGUgZm9sZGVycyBpbnNpZGUgYHNyYy9ibG9ja3MvYCcpXG4gIGxpbmVzLnB1c2goJy0gRXhhbXBsZTogYHNyYy9ibG9ja3MvaGVyby0xLnRzeGAsIGBzcmMvYmxvY2tzL3Rlc3RpbW9uaWFsLTMudHN4YCcpXG4gIGxpbmVzLnB1c2goJycpXG4gIGxpbmVzLnB1c2goJyoqQ29tcG9uZW50czoqKicpXG4gIGxpbmVzLnB1c2goJy0gU2ltcGxlIGNvbXBvbmVudHM6IFNpbmdsZSBmaWxlIGluIGBzcmMvY29tcG9uZW50cy9gJylcbiAgbGluZXMucHVzaCgnLSBDb21wbGV4IGNvbXBvbmVudHM6IEZvbGRlciB3aXRoIGBpbmRleC50c3hgJylcbiAgbGluZXMucHVzaCgnLSBVc2UgZm9sZGVycyB3aGVuIGNvbXBvbmVudCBoYXMgbXVsdGlwbGUgc3ViLWZpbGVzJylcbiAgbGluZXMucHVzaCgnJylcblxuICBsaW5lcy5wdXNoKCcjIyMgRE8gLSBXaGF0IEFJIElTIEFsbG93ZWQgVG8gRG8nKVxuICBsaW5lcy5wdXNoKCcnKVxuICBsaW5lcy5wdXNoKCctIENyZWF0ZSBmaWxlcyBvbmx5IGluc2lkZSBleGlzdGluZyBDYW5vbi1kZWZpbmVkIHpvbmVzJylcbiAgbGluZXMucHVzaCgnLSBQbGFjZSBuZXcgZmlsZXMgaW4gdGhlIHpvbmUgdGhhdCBtYXRjaGVzIHRoZWlyIGFyY2hpdGVjdHVyYWwgcm9sZScpXG4gIGxpbmVzLnB1c2goJy0gRm9sbG93IGV4aXN0aW5nIGZvbGRlciBjb252ZW50aW9ucyB3aXRoaW4gYSB6b25lJylcbiAgbGluZXMucHVzaCgnLSBSZXVzZSBleGlzdGluZyBmb2xkZXJzIHdoZW4gcG9zc2libGUnKVxuICBsaW5lcy5wdXNoKCctIENyZWF0ZSBuZXcgcm91dGUgZ3JvdXBzIGluIGBzcmMvYXBwL2Agd2hlbiBuZXcgbGF5b3V0cyBhcmUgbmVlZGVkJylcbiAgbGluZXMucHVzaCgnLSBDcmVhdGUgbmV3IGFyY2hpdmUgY29udGVudCBmb2xkZXJzIChsaWtlIGBibG9nL2AsIGBwb3J0Zm9saW8vYCkgaW4gYC9zcmNgJylcbiAgbGluZXMucHVzaCgnLSBDcmVhdGUgZG90ZmlsZXMvZGlyZWN0b3JpZXMgYXQgcHJvamVjdCByb290IChgLmdpdGh1Yi9gLCBgLmN1cnNvci9gLCBldGMuKScpXG4gIGxpbmVzLnB1c2goJy0gQXNrIGZvciBjb25maXJtYXRpb24gaWYgdGhlIGNvcnJlY3Qgem9uZSBpcyBhbWJpZ3VvdXMnKVxuICBsaW5lcy5wdXNoKCcnKVxuXG4gIGxpbmVzLnB1c2goJyMjIyBETyBOT1QgLSBXaGF0IEFJIElzIEZvcmJpZGRlbiBUbyBEbycpXG4gIGxpbmVzLnB1c2goJycpXG4gIGxpbmVzLnB1c2goJy0gQ3JlYXRlIG5ldyB0b3AtbGV2ZWwgZGlyZWN0b3JpZXMgKGV4Y2VwdCBkb3RmaWxlcyknKVxuICBsaW5lcy5wdXNoKCctIENyZWF0ZSBuZXcgZm9sZGVycyBpbiBgL3NyY2AgKGV4Y2VwdCBhcmNoaXZlIGNvbnRlbnQgb3Igcm91dGUgZ3JvdXBzKScpXG4gIGxpbmVzLnB1c2goJy0gUGxhY2UgZmlsZXMgb3V0c2lkZSBDYW5vbi1kZWZpbmVkIHpvbmVzJylcbiAgbGluZXMucHVzaCgnLSBNaXggcmVzcG9uc2liaWxpdGllcyBhY3Jvc3Mgem9uZXMgKGNvbXBvbmVudHMgaW1wb3J0aW5nIGJsb2NrcywgZXRjLiknKVxuICBsaW5lcy5wdXNoKCctIFJlb3JnYW5pemUgb3IgbW92ZSBmb2xkZXJzIHdpdGhvdXQgZXhwbGljaXQgaW5zdHJ1Y3Rpb24nKVxuICBsaW5lcy5wdXNoKCctIEludmVudCBuZXcgb3JnYW5pemF0aW9uYWwgY29udmVudGlvbnMnKVxuICBsaW5lcy5wdXNoKCctIENyZWF0ZSBwbGFjZWhvbGRlciBvciBzcGVjdWxhdGl2ZSBmaWxlcycpXG4gIGxpbmVzLnB1c2goJy0gSW1wb3J0IGZyb20gYF9zY3JpcHRzL2Agb3IgYF9kYXRhL2AgaW4gcnVudGltZSBjb2RlJylcbiAgbGluZXMucHVzaCgnLSBNYW51YWxseSBlZGl0IGZpbGVzIGluIGBfZGF0YS9gIChnZW5lcmF0ZWQgb25seSknKVxuICBsaW5lcy5wdXNoKCcnKVxuXG4gIHJldHVybiBsaW5lc1xufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZVZlcmlmaWNhdGlvbihjb25maWc6IENhbm9uVGVtcGxhdGVDb25maWcgfCBudWxsKTogc3RyaW5nW10ge1xuICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXVxuXG4gIGxpbmVzLnB1c2goJyMjIFBvc3QtRWRpdCBWZXJpZmljYXRpb24nKVxuICBsaW5lcy5wdXNoKCcnKVxuICBsaW5lcy5wdXNoKCdBZnRlciBlZGl0aW5nIGZpbGVzOicpXG5cbiAgaWYgKGNvbmZpZz8udmVyaWZpY2F0aW9uPy5sZW5ndGgpIHtcbiAgICBsZXQgc3RlcCA9IDFcbiAgICBmb3IgKGNvbnN0IGNtZCBvZiBjb25maWcudmVyaWZpY2F0aW9uKSB7XG4gICAgICBsaW5lcy5wdXNoKGAke3N0ZXB9LiBSdW4gXFxgJHtjbWR9XFxgYClcbiAgICAgIHN0ZXArK1xuICAgIH1cbiAgICBsaW5lcy5wdXNoKGAke3N0ZXB9LiBGaXggYW55IHZpb2xhdGlvbnMgYmVmb3JlIGNvbW1pdHRpbmdgKVxuICB9IGVsc2Uge1xuICAgIGxpbmVzLnB1c2goJzEuIFJ1biBgbnBtIHJ1biBsaW50YCB0byBjaGVjayBmb3IgZXJyb3JzJylcbiAgICBsaW5lcy5wdXNoKCcyLiBGaXggYW55IHZpb2xhdGlvbnMgYmVmb3JlIGNvbW1pdHRpbmcnKVxuICB9XG5cbiAgbGluZXMucHVzaCgnJylcbiAgbGluZXMucHVzaCgnTm90ZTogT25seSBsaW50IGZpbGVzIHlvdSBlZGl0ZWQsIG5vdCB0aGUgZW50aXJlIGNvZGViYXNlLicpXG4gIGxpbmVzLnB1c2goJycpXG5cbiAgcmV0dXJuIGxpbmVzXG59XG5cbi8vIOKUgOKUgOKUgCBDbGF1ZGUtc3BlY2lmaWMgc2VjdGlvbnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmZ1bmN0aW9uIGdlbmVyYXRlQXV0b0dlbkZpbGVzKGNvbmZpZzogQ2Fub25UZW1wbGF0ZUNvbmZpZyB8IG51bGwpOiBzdHJpbmdbXSB7XG4gIGlmICghY29uZmlnPy5nZW5lcmF0ZWRGaWxlcz8ubGVuZ3RoKSByZXR1cm4gW11cblxuICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXVxuXG4gIGxpbmVzLnB1c2goJyMjIEF1dG8tR2VuZXJhdGVkIEZpbGVzIOKAlCBOZXZlciBFZGl0IE1hbnVhbGx5JylcbiAgbGluZXMucHVzaCgnJylcbiAgbGluZXMucHVzaCgnfCBGaWxlIHwgUmVnZW5lcmF0ZSBXaXRoIHwgVHJpZ2dlcmVkIEJ5IHwnKVxuICBsaW5lcy5wdXNoKCd8LS0tfC0tLXwtLS18JylcblxuICBmb3IgKGNvbnN0IGZpbGUgb2YgY29uZmlnLmdlbmVyYXRlZEZpbGVzKSB7XG4gICAgbGluZXMucHVzaChgfCBcXGAke2ZpbGUucGF0aH1cXGAgfCBcXGAke2ZpbGUuY29tbWFuZH1cXGAgfCAke2ZpbGUudHJpZ2dlcn0gfGApXG4gIH1cblxuICBsaW5lcy5wdXNoKCcnKVxuICByZXR1cm4gbGluZXNcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVCdWlsZENvbW1hbmRzKGNvbmZpZzogQ2Fub25UZW1wbGF0ZUNvbmZpZyB8IG51bGwpOiBzdHJpbmdbXSB7XG4gIGlmICghY29uZmlnPy5idWlsZENvbW1hbmRzPy5sZW5ndGgpIHJldHVybiBbXVxuXG4gIGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdXG5cbiAgbGluZXMucHVzaCgnIyMgQnVpbGQgQ29tbWFuZHMnKVxuICBsaW5lcy5wdXNoKCcnKVxuICBsaW5lcy5wdXNoKCd8IENvbW1hbmQgfCBQdXJwb3NlIHwnKVxuICBsaW5lcy5wdXNoKCd8LS0tfC0tLXwnKVxuXG4gIGZvciAoY29uc3QgY21kIG9mIGNvbmZpZy5idWlsZENvbW1hbmRzKSB7XG4gICAgbGluZXMucHVzaChgfCBcXGAke2NtZC5zY3JpcHR9XFxgIHwgJHtjbWQuZGVzY3JpcHRpb259IHxgKVxuICB9XG5cbiAgbGluZXMucHVzaCgnJylcbiAgcmV0dXJuIGxpbmVzXG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlQ29sb3JUb2tlbnMoY29uZmlnOiBDYW5vblRlbXBsYXRlQ29uZmlnIHwgbnVsbCk6IHN0cmluZ1tdIHtcbiAgaWYgKCFjb25maWc/LmNvbG9yVG9rZW5zKSByZXR1cm4gW11cblxuICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXVxuICBjb25zdCBjdCA9IGNvbmZpZy5jb2xvclRva2Vuc1xuXG4gIGxpbmVzLnB1c2goJyMjIENvbG9yIFRva2VuIFN5c3RlbScpXG4gIGxpbmVzLnB1c2goJycpXG4gIGxpbmVzLnB1c2goJ0FsbCBjb2xvcnMgdXNlIHNlbWFudGljIHRva2VucyBkZWZpbmVkIGluIGBzcmMvc3R5bGVzL3RhaWx3aW5kLmNzc2AgYEB0aGVtZWA6JylcbiAgbGluZXMucHVzaCgnJylcblxuICBpZiAoY3Quc3VyZmFjZT8ubGVuZ3RoKSB7XG4gICAgbGluZXMucHVzaChgLSAqKlN1cmZhY2UqKjogJHtjdC5zdXJmYWNlLm1hcChzID0+IGBcXGAke3N9XFxgYCkuam9pbignLCAnKX1gKVxuICB9XG4gIGlmIChjdC50ZXh0Py5sZW5ndGgpIHtcbiAgICBsaW5lcy5wdXNoKGAtICoqVGV4dCoqOiAke2N0LnRleHQubWFwKHMgPT4gYFxcYCR7c31cXGBgKS5qb2luKCcsICcpfWApXG4gIH1cbiAgaWYgKGN0Lm92ZXJsYXk/Lmxlbmd0aCkge1xuICAgIGxpbmVzLnB1c2goYC0gKipPdmVybGF5KiogKGZpeGVkIOKAlCBkb24ndCBmbGlwIGluIGRhcmsgbW9kZSk6ICR7Y3Qub3ZlcmxheS5tYXAocyA9PiBgXFxgJHtzfVxcYGApLmpvaW4oJywgJyl9YClcbiAgfVxuICBpZiAoY3QuYWNjZW50cz8ubGVuZ3RoKSB7XG4gICAgbGluZXMucHVzaChgLSAqKkFjY2VudHMqKjogJHtjdC5hY2NlbnRzLm1hcChzID0+IGBcXGAke3N9XFxgYCkuam9pbignLCAnKX1gKVxuICB9XG5cbiAgbGluZXMucHVzaCgnJylcblxuICBsaW5lcy5wdXNoKCcqKk5ldmVyIHVzZSoqOiBgZ3JheS0qYCwgYHdoaXRlYCwgYGJsYWNrYCwgYHNsYXRlLSpgIOKAlCBhbHdheXMgbWFwIHRvIGEgc2VtYW50aWMgdG9rZW4uJylcbiAgbGluZXMucHVzaCgnJylcblxuICByZXR1cm4gbGluZXNcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVTdGF0ZU1hbmFnZW1lbnQoY29uZmlnOiBDYW5vblRlbXBsYXRlQ29uZmlnIHwgbnVsbCk6IHN0cmluZ1tdIHtcbiAgaWYgKCFjb25maWc/LnN0YXRlKSByZXR1cm4gW11cblxuICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXVxuICBjb25zdCBzdCA9IGNvbmZpZy5zdGF0ZVxuXG4gIGxpbmVzLnB1c2goJyMjIFN0YXRlIE1hbmFnZW1lbnQnKVxuICBsaW5lcy5wdXNoKCcnKVxuICBsaW5lcy5wdXNoKGAke3N0LmxpYnJhcnl9IHN0b3JlIGF0IFxcYCR7c3QuZmlsZX1cXGAuIFJlYWQgd2l0aCBcXGAke3N0LnJlYWRQYXR0ZXJufVxcYCwgd3JpdGUgd2l0aCBcXGAke3N0LndyaXRlUGF0dGVybn1cXGAuYClcbiAgbGluZXMucHVzaCgnJylcblxuICBpZiAoc3QucHJvcGVydGllcz8ubGVuZ3RoKSB7XG4gICAgbGluZXMucHVzaChgQXZhaWxhYmxlIHN0YXRlOiAke3N0LnByb3BlcnRpZXMubWFwKHAgPT4gYFxcYCR7cH1cXGBgKS5qb2luKCcsICcpfS5gKVxuICAgIGxpbmVzLnB1c2goJycpXG4gIH1cblxuICByZXR1cm4gbGluZXNcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVUZW1wbGF0ZVJ1bGVzKGNvbmZpZzogQ2Fub25UZW1wbGF0ZUNvbmZpZyB8IG51bGwpOiBzdHJpbmdbXSB7XG4gIGlmICghY29uZmlnPy5ydWxlcz8ubGVuZ3RoKSByZXR1cm4gW11cblxuICBjb25zdCBkb1J1bGVzID0gY29uZmlnLnJ1bGVzLmZpbHRlcihyID0+IHIudHlwZSA9PT0gJ2RvJylcbiAgaWYgKCFkb1J1bGVzLmxlbmd0aCkgcmV0dXJuIFtdXG5cbiAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW11cblxuICBsaW5lcy5wdXNoKCcjIyBUZW1wbGF0ZS1TcGVjaWZpYyBSdWxlcycpXG4gIGxpbmVzLnB1c2goJycpXG5cbiAgZm9yIChjb25zdCBydWxlIG9mIGRvUnVsZXMpIHtcbiAgICBsaW5lcy5wdXNoKGAtICR7cnVsZS5ydWxlfWApXG4gIH1cblxuICBsaW5lcy5wdXNoKCcnKVxuICByZXR1cm4gbGluZXNcbn1cblxuLy8g4pSA4pSA4pSAIEZvcm1hdCBnZW5lcmF0b3JzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5mdW5jdGlvbiBnZW5lcmF0ZUN1cnNvcnJ1bGVzKGNvbmZpZzogQ2Fub25UZW1wbGF0ZUNvbmZpZyB8IG51bGwpOiBzdHJpbmcge1xuICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXG4gICAgLi4uZ2VuZXJhdGVIZWFkZXIoJ2N1cnNvcnJ1bGVzJyksXG4gICAgLi4uZ2VuZXJhdGVUZWNoU3RhY2soKSxcbiAgICAuLi5nZW5lcmF0ZUVuZm9yY2VkUGF0dGVybnMoJ2N1cnNvcnJ1bGVzJyksXG4gICAgLi4uZ2VuZXJhdGVEb2NQYXR0ZXJucygpLFxuICAgIC4uLmdlbmVyYXRlR3VhcmFudGVlcygpLFxuICAgIC4uLmdlbmVyYXRlQ29tcG9uZW50UmVmZXJlbmNlKGNvbmZpZyksXG4gICAgLi4uZ2VuZXJhdGVEb05vdFNlY3Rpb24oY29uZmlnKSxcbiAgICAuLi5nZW5lcmF0ZUZpbGVBdXRob3JpdHkoKSxcbiAgICAuLi5nZW5lcmF0ZVZlcmlmaWNhdGlvbihjb25maWcpLFxuICBdXG5cbiAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xcbicpXG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlQ2xhdWRlTWQoY29uZmlnOiBDYW5vblRlbXBsYXRlQ29uZmlnIHwgbnVsbCk6IHN0cmluZyB7XG4gIGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtcbiAgICAuLi5nZW5lcmF0ZUhlYWRlcignY2xhdWRlJyksXG4gICAgLi4uZ2VuZXJhdGVBdXRvR2VuRmlsZXMoY29uZmlnKSxcbiAgICAuLi5nZW5lcmF0ZUJ1aWxkQ29tbWFuZHMoY29uZmlnKSxcbiAgICAuLi5nZW5lcmF0ZUVuZm9yY2VkUGF0dGVybnMoJ2NsYXVkZScpLFxuICAgIC4uLmdlbmVyYXRlRG9jUGF0dGVybnMoKSxcbiAgICAuLi5nZW5lcmF0ZUNvbG9yVG9rZW5zKGNvbmZpZyksXG4gICAgLi4uZ2VuZXJhdGVDb21wb25lbnRSZWZlcmVuY2UoY29uZmlnKSxcbiAgICAuLi5nZW5lcmF0ZVN0YXRlTWFuYWdlbWVudChjb25maWcpLFxuICAgIC4uLmdlbmVyYXRlVGVtcGxhdGVSdWxlcyhjb25maWcpLFxuICAgIC4uLmdlbmVyYXRlRG9Ob3RTZWN0aW9uKGNvbmZpZyksXG4gICAgLi4uZ2VuZXJhdGVWZXJpZmljYXRpb24oY29uZmlnKSxcbiAgXVxuXG4gIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKVxufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZUNvcGlsb3RJbnN0cnVjdGlvbnMoY29uZmlnOiBDYW5vblRlbXBsYXRlQ29uZmlnIHwgbnVsbCk6IHN0cmluZyB7XG4gIGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtcbiAgICAuLi5nZW5lcmF0ZUhlYWRlcignY29waWxvdCcpLFxuICAgIC4uLmdlbmVyYXRlVGVjaFN0YWNrKCksXG4gICAgLi4uZ2VuZXJhdGVFbmZvcmNlZFBhdHRlcm5zKCdjb3BpbG90JyksXG4gICAgLi4uZ2VuZXJhdGVEb2NQYXR0ZXJucygpLFxuICAgIC4uLmdlbmVyYXRlQ29tcG9uZW50UmVmZXJlbmNlKGNvbmZpZyksXG4gICAgLi4uZ2VuZXJhdGVEb05vdFNlY3Rpb24oY29uZmlnKSxcbiAgICAuLi5nZW5lcmF0ZVZlcmlmaWNhdGlvbihjb25maWcpLFxuICBdXG5cbiAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xcbicpXG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlQ29udGVudChmb3JtYXQ6IE91dHB1dEZvcm1hdCwgY29uZmlnOiBDYW5vblRlbXBsYXRlQ29uZmlnIHwgbnVsbCk6IHN0cmluZyB7XG4gIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgY2FzZSAnY2xhdWRlJzpcbiAgICAgIHJldHVybiBnZW5lcmF0ZUNsYXVkZU1kKGNvbmZpZylcbiAgICBjYXNlICdjb3BpbG90JzpcbiAgICAgIHJldHVybiBnZW5lcmF0ZUNvcGlsb3RJbnN0cnVjdGlvbnMoY29uZmlnKVxuICAgIGNhc2UgJ2N1cnNvcnJ1bGVzJzpcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGdlbmVyYXRlQ3Vyc29ycnVsZXMoY29uZmlnKVxuICB9XG59XG5cbmZ1bmN0aW9uIHdyaXRlT3V0cHV0KGNvbnRlbnQ6IHN0cmluZywgb3V0cHV0UGF0aDogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IGRpciA9IHBhdGguZGlybmFtZShvdXRwdXRQYXRoKVxuICBpZiAoIWZzLmV4aXN0c1N5bmMoZGlyKSkge1xuICAgIGZzLm1rZGlyU3luYyhkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pXG4gIH1cbiAgZnMud3JpdGVGaWxlU3luYyhvdXRwdXRQYXRoLCBjb250ZW50LCAndXRmLTgnKVxufVxuXG4vLyDilIDilIDilIAgUHVibGljIEFQSSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlKG9wdGlvbnM6IEdlbmVyYXRlT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBjb25maWcgPSBsb2FkQ29uZmlnKClcblxuICBpZiAob3B0aW9ucy5vdXRwdXQgPT09ICdhbGwnKSB7XG4gICAgLy8gR2VuZXJhdGUgYWxsIHRhcmdldHNcbiAgICBjb25zdCB0YXJnZXRzID0gZ2V0QWxsVGFyZ2V0cygpXG4gICAgZm9yIChjb25zdCB0YXJnZXQgb2YgdGFyZ2V0cykge1xuICAgICAgY29uc3QgY29udGVudCA9IGdlbmVyYXRlQ29udGVudCh0YXJnZXQuZm9ybWF0LCBjb25maWcpXG4gICAgICBjb25zdCBvdXRwdXRQYXRoID0gcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIHRhcmdldC5vdXRwdXQpXG4gICAgICB3cml0ZU91dHB1dChjb250ZW50LCBvdXRwdXRQYXRoKVxuICAgICAgY29uc29sZS5sb2coYOKckyBHZW5lcmF0ZWQgJHt0YXJnZXQub3V0cHV0fWApXG4gICAgfVxuICAgIGNvbnNvbGUubG9nKGAgIENhbm9uIHYke3ZlcnNpb259IOKAlCAke3BhdHRlcm5zLmxlbmd0aH0gcGF0dGVybnMsICR7Z3VhcmFudGVlcy5sZW5ndGh9IGd1YXJhbnRlZXNgKVxuICAgIGlmIChjb25maWcpIHtcbiAgICAgIGNvbnNvbGUubG9nKGAgIFRlbXBsYXRlIGNvbmZpZzogJHtjb25maWcubmFtZX1gKVxuICAgIH1cbiAgfSBlbHNlIGlmIChvcHRpb25zLm91dHB1dCA9PT0gJy0nKSB7XG4gICAgY29uc3QgY29udGVudCA9IGdlbmVyYXRlQ29udGVudChvcHRpb25zLmZvcm1hdCwgY29uZmlnKVxuICAgIGNvbnNvbGUubG9nKGNvbnRlbnQpXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgY29udGVudCA9IGdlbmVyYXRlQ29udGVudChvcHRpb25zLmZvcm1hdCwgY29uZmlnKVxuICAgIGNvbnN0IG91dHB1dFBhdGggPSBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgb3B0aW9ucy5vdXRwdXQpXG4gICAgd3JpdGVPdXRwdXQoY29udGVudCwgb3V0cHV0UGF0aClcbiAgICBjb25zb2xlLmxvZyhg4pyTIEdlbmVyYXRlZCAke29wdGlvbnMub3V0cHV0fSBmcm9tIENhbm9uIHYke3ZlcnNpb259YClcbiAgICBjb25zb2xlLmxvZyhgICAke3BhdHRlcm5zLmxlbmd0aH0gcGF0dGVybnMsICR7Z3VhcmFudGVlcy5sZW5ndGh9IGd1YXJhbnRlZXNgKVxuICAgIGlmIChjb25maWcpIHtcbiAgICAgIGNvbnNvbGUubG9nKGAgIFRlbXBsYXRlIGNvbmZpZzogJHtjb25maWcubmFtZX1gKVxuICAgIH1cbiAgfVxufVxuIl19
|
|
512
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NvbW1hbmRzL2dlbmVyYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBQ3hCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBQzVCLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFVekM7O0dBRUc7QUFDSCxTQUFTLFlBQVksQ0FBQyxRQUFnQjtJQUNwQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQ2xELElBQUksSUFBSSxLQUFLLFdBQVc7UUFBRSxPQUFPLFFBQVEsQ0FBQTtJQUN6QyxJQUFJLElBQUksS0FBSyx5QkFBeUI7UUFBRSxPQUFPLFNBQVMsQ0FBQTtJQUN4RCxPQUFPLGFBQWEsQ0FBQTtBQUN0QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLGFBQWE7SUFDcEIsT0FBTztRQUNMLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFO1FBQ2pELEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFO1FBQ3pDLEVBQUUsTUFBTSxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUU7S0FDakUsQ0FBQTtBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsZUFBZSxDQUFDLFdBQW1CO0lBQzFDLE1BQU0sYUFBYSxHQUFHO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLHFDQUFxQyxFQUFFLFdBQVcsQ0FBQztRQUM1RSwyQkFBMkI7UUFDM0IsSUFB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QUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDdkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN0QixDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQ3ZELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUM5RCxXQUFXLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxPQUFPLENBQUMsTUFBTSxnQkFBZ0IsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUNuRSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxDQUFDLE1BQU0sY0FBYyxVQUFVLENBQUMsTUFBTSxhQUFhLENBQUMsQ0FBQTtRQUM3RSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7UUFDbEQsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgeyB2ZXJzaW9uLCBwYXR0ZXJucywgZ3VhcmFudGVlcyB9IGZyb20gJy4uLy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgbG9hZENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy5qcydcbmltcG9ydCB0eXBlIHsgQ2Fub25UZW1wbGF0ZUNvbmZpZyB9IGZyb20gJy4uLy4uL3R5cGVzL2NvbmZpZy5qcydcblxudHlwZSBPdXRwdXRGb3JtYXQgPSAnY3Vyc29ycnVsZXMnIHwgJ2NsYXVkZScgfCAnY29waWxvdCdcblxuaW50ZXJmYWNlIEdlbmVyYXRlT3B0aW9ucyB7XG4gIG91dHB1dDogc3RyaW5nXG4gIGZvcm1hdDogT3V0cHV0Rm9ybWF0XG59XG5cbi8qKlxuICogRGV0ZWN0IG91dHB1dCBmb3JtYXQgZnJvbSBmaWxlbmFtZVxuICovXG5mdW5jdGlvbiBkZXRlY3RGb3JtYXQoZmlsZW5hbWU6IHN0cmluZyk6IE91dHB1dEZvcm1hdCB7XG4gIGNvbnN0IGJhc2UgPSBwYXRoLmJhc2VuYW1lKGZpbGVuYW1lKS50b0xvd2VyQ2FzZSgpXG4gIGlmIChiYXNlID09PSAnY2xhdWRlLm1kJykgcmV0dXJuICdjbGF1ZGUnXG4gIGlmIChiYXNlID09PSAnY29waWxvdC1pbnN0cnVjdGlvbnMubWQnKSByZXR1cm4gJ2NvcGlsb3QnXG4gIHJldHVybiAnY3Vyc29ycnVsZXMnXG59XG5cbi8qKlxuICogR2V0IGFsbCBvdXRwdXQgdGFyZ2V0cyB3aGVuIGdlbmVyYXRpbmcgYWxsIGZpbGVzXG4gKi9cbmZ1bmN0aW9uIGdldEFsbFRhcmdldHMoKTogR2VuZXJhdGVPcHRpb25zW10ge1xuICByZXR1cm4gW1xuICAgIHsgb3V0cHV0OiAnLmN1cnNvcnJ1bGVzJywgZm9ybWF0OiAnY3Vyc29ycnVsZXMnIH0sXG4gICAgeyBvdXRwdXQ6ICdDTEFVREUubWQnLCBmb3JtYXQ6ICdjbGF1ZGUnIH0sXG4gICAgeyBvdXRwdXQ6ICcuZ2l0aHViL2NvcGlsb3QtaW5zdHJ1Y3Rpb25zLm1kJywgZm9ybWF0OiAnY29waWxvdCcgfSxcbiAgXVxufVxuXG4vKipcbiAqIFJlYWQgYSBwYXR0ZXJuIG1hcmtkb3duIGZpbGUgYW5kIGV4dHJhY3Qgc2VjdGlvbnNcbiAqL1xuZnVuY3Rpb24gcmVhZFBhdHRlcm5GaWxlKHBhdHRlcm5GaWxlOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgcG9zc2libGVQYXRocyA9IFtcbiAgICBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgJ25vZGVfbW9kdWxlcy9AZ2FsbG9wLnNvZnR3YXJlL2Nhbm9uJywgcGF0dGVybkZpbGUpLFxuICAgIC8vIEZhbGxiYWNrIGZvciBkZXZlbG9wbWVudFxuICAgIHBhdGguam9pbihpbXBvcnQubWV0YS5kaXJuYW1lLCAnLi4vLi4vLi4vJywgcGF0dGVybkZpbGUpLFxuICBdXG5cbiAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBwb3NzaWJsZVBhdGhzKSB7XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoZmlsZVBhdGgpKSB7XG4gICAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoLCAndXRmLTgnKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG5cbi8qKlxuICogRXh0cmFjdCBleGFtcGxlcyBmcm9tIHBhdHRlcm4gbWFya2Rvd25cbiAqL1xuZnVuY3Rpb24gZXh0cmFjdEV4YW1wbGVzKGNvbnRlbnQ6IHN0cmluZyk6IHsgZ29vZDogc3RyaW5nW107IGJhZDogc3RyaW5nW10gfSB7XG4gIGNvbnN0IGdvb2Q6IHN0cmluZ1tdID0gW11cbiAgY29uc3QgYmFkOiBzdHJpbmdbXSA9IFtdXG5cbiAgY29uc3QgZ29vZE1hdGNoID0gY29udGVudC5tYXRjaCgvIyMjIEdvb2RcXHMqXFxuYGBgW1xcc1xcU10qP2BgYC9nKVxuICBjb25zdCBiYWRNYXRjaCA9IGNvbnRlbnQubWF0Y2goLyMjIyBCYWRcXHMqXFxuYGBgW1xcc1xcU10qP2BgYC9nKVxuXG4gIGlmIChnb29kTWF0Y2gpIHtcbiAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIGdvb2RNYXRjaCkge1xuICAgICAgY29uc3QgY29kZSA9IG1hdGNoLnJlcGxhY2UoLyMjIyBHb29kXFxzKlxcbi8sICcnKS50cmltKClcbiAgICAgIGdvb2QucHVzaChjb2RlKVxuICAgIH1cbiAgfVxuXG4gIGlmIChiYWRNYXRjaCkge1xuICAgIGZvciAoY29uc3QgbWF0Y2ggb2YgYmFkTWF0Y2gpIHtcbiAgICAgIGNvbnN0IGNvZGUgPSBtYXRjaC5yZXBsYWNlKC8jIyMgQmFkXFxzKlxcbi8sICcnKS50cmltKClcbiAgICAgIGJhZC5wdXNoKGNvZGUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgZ29vZCwgYmFkIH1cbn1cblxuLy8g4pSA4pSA4pSAIFNoYXJlZCBzZWN0aW9uIGdlbmVyYXRvcnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmZ1bmN0aW9uIGdlbmVyYXRlSGVhZGVyKGZvcm1hdDogT3V0cHV0Rm9ybWF0KTogc3RyaW5nW10ge1xuICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXVxuXG4gIGlmIChmb3JtYXQgPT09ICdjbGF1ZGUnKSB7XG4gICAgbGluZXMucHVzaChgIyBDTEFVREUubWQg4oCUIFByb2plY3QtU3BlY2lmaWMgSW50ZWxsaWdlbmNlYClcbiAgICBsaW5lcy5wdXNoKCcnKVxuICAgIGxpbmVzLnB1c2goYD4gQXV0by1nZW5lcmF0ZWQgZnJvbSBHYWxsb3AgQ2Fub24gdiR7dmVyc2lvbn0uIERvIG5vdCBlZGl0IG1hbnVhbGx5LmApXG4gICAgbGluZXMucHVzaChgPiBSZWdlbmVyYXRlIHdpdGg6IG5wbSBydW4gZ2VuZXJhdGU6YWktcnVsZXNgKVxuICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gJ2NvcGlsb3QnKSB7XG4gICAgbGluZXMucHVzaChgIyBHYWxsb3AgQ2Fub24gdiR7dmVyc2lvbn0gLSBDb3BpbG90IEluc3RydWN0aW9uc2ApXG4gICAgbGluZXMucHVzaCgnJylcbiAgICBsaW5lcy5wdXNoKCdUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgZnJvbSBAZ2FsbG9wLnNvZnR3YXJlL2Nhbm9uLiBEbyBub3QgZWRpdCBtYW51YWxseS4nKVxuICAgIGxpbmVzLnB1c2goJ1JlZ2VuZXJhdGUgd2l0aDogbnBtIHJ1biBnZW5lcmF0ZTphaS1ydWxlcycpXG4gIH0gZWxzZSB7XG4gICAgbGluZXMucHVzaChgIyBHYWxsb3AgQ2Fub24gdiR7dmVyc2lvbn0gLSBBSSBSdWxlc2ApXG4gICAgbGluZXMucHVzaCgnJylcbiAgICBsaW5lcy5wdXNoKCdUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgZnJvbSBAZ2FsbG9wLnNvZnR3YXJlL2Nhbm9uLiBEbyBub3QgZWRpdCBtYW51YWxseS4nKVxuICAgIGxpbmVzLnB1c2goJ1JlZ2VuZXJhdGUgd2l0aDogbnBtIHJ1biBnZW5lcmF0ZTphaS1ydWxlcycpXG4gIH1cblxuICBsaW5lcy5wdXNoKCcnKVxuICByZXR1cm4gbGluZXNcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVUZWNoU3RhY2soKTogc3RyaW5nW10ge1xuICByZXR1cm4gW1xuICAgICcjIyBUZWNoIFN0YWNrJyxcbiAgICAnJyxcbiAgICAnLSBOZXh0LmpzIDE2IHdpdGggQXBwIFJvdXRlcicsXG4gICAgJy0gUmVhY3QgMTknLFxuICAgICctIFR5cGVTY3JpcHQnLFxuICAgICctIFRhaWx3aW5kIENTUyB2NCcsXG4gICAgJy0gY2xzeCBmb3IgY29uZGl0aW9uYWwgY2xhc3MgbmFtZXMnLFxuICAgICcnLFxuICBdXG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlRW5mb3JjZWRQYXR0ZXJucyhmb3JtYXQ6IE91dHB1dEZvcm1hdCk6IHN0cmluZ1tdIHtcbiAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW11cbiAgY29uc3QgZW5mb3JjZWRQYXR0ZXJucyA9IHBhdHRlcm5zLmZpbHRlcihwID0+IHAuZW5mb3JjZW1lbnQgPT09ICdlc2xpbnQnICYmIHAucnVsZSlcblxuICBsaW5lcy5wdXNoKCcjIyBFbmZvcmNlZCBQYXR0ZXJucyAoRVNMaW50KScpXG4gIGxpbmVzLnB1c2goJycpXG4gIGxpbmVzLnB1c2goJ1RoZXNlIHBhdHRlcm5zIGFyZSBlbmZvcmNlZCBieSBgQGdhbGxvcC5zb2Z0d2FyZS9jYW5vbi9lc2xpbnRgLiBWaW9sYXRpb25zIHdpbGwgYmUgZmxhZ2dlZC4nKVxuICBsaW5lcy5wdXNoKCcnKVxuXG4gIGlmIChmb3JtYXQgPT09ICdjbGF1ZGUnKSB7XG4gICAgLy8gQ2xhdWRlIGNhbiBydW4gbGludCDigJQgYnJpZWYgbGlzdCB3aXRoIHJ1bGUgbmFtZXNcbiAgICBmb3IgKGNvbnN0IHBhdHRlcm4gb2YgZW5mb3JjZWRQYXR0ZXJucykge1xuICAgICAgbGluZXMucHVzaChgLSAqKiR7cGF0dGVybi5pZH06ICR7cGF0dGVybi50aXRsZX0qKiDigJQgXFxgJHtwYXR0ZXJuLnJ1bGV9XFxgIOKAlCAke3BhdHRlcm4uc3VtbWFyeX1gKVxuICAgIH1cbiAgICBsaW5lcy5wdXNoKCcnKVxuICB9IGVsc2Uge1xuICAgIC8vIEN1cnNvcnJ1bGVzIGFuZCBDb3BpbG90OiBmdWxsIGV4YW1wbGVzXG4gICAgZm9yIChjb25zdCBwYXR0ZXJuIG9mIGVuZm9yY2VkUGF0dGVybnMpIHtcbiAgICAgIGxpbmVzLnB1c2goYCMjIyAke3BhdHRlcm4uaWR9OiAke3BhdHRlcm4udGl0bGV9YClcbiAgICAgIGxpbmVzLnB1c2goJycpXG4gICAgICBsaW5lcy5wdXNoKHBhdHRlcm4uc3VtbWFyeSlcbiAgICAgIGxpbmVzLnB1c2goJycpXG4gICAgICBsaW5lcy5wdXNoKGAtICoqRVNMaW50IFJ1bGU6KiogXFxgJHtwYXR0ZXJuLnJ1bGV9XFxgYClcbiAgICAgIGxpbmVzLnB1c2goYC0gKipDYXRlZ29yeToqKiAke3BhdHRlcm4uY2F0ZWdvcnl9YClcbiAgICAgIGxpbmVzLnB1c2goJycpXG5cbiAgICAgIGlmIChmb3JtYXQgPT09ICdjdXJzb3JydWxlcycpIHtcbiAgICAgICAgY29uc3QgY29udGVudCA9IHJlYWRQYXR0ZXJuRmlsZShwYXR0ZXJuLmZpbGUpXG4gICAgICAgIGlmIChjb250ZW50KSB7XG4gICAgICAgICAgY29uc3QgeyBnb29kLCBiYWQgfSA9IGV4dHJhY3RFeGFtcGxlcyhjb250ZW50KVxuICAgICAgICAgIGlmIChiYWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGluZXMucHVzaCgnKipCYWQ6KionKVxuICAgICAgICAgICAgbGluZXMucHVzaCgnJylcbiAgICAgICAgICAgIGxpbmVzLnB1c2goYmFkWzBdKVxuICAgICAgICAgICAgbGluZXMucHVzaCgnJylcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGdvb2QubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGluZXMucHVzaCgnKipHb29kOioqJylcbiAgICAgICAgICAgIGxpbmVzLnB1c2goJycpXG4gICAgICAgICAgICBsaW5lcy5wdXNoKGdvb2RbMF0pXG4gICAgICAgICAgICBsaW5lcy5wdXNoKCcnKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBsaW5lc1xufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZURvY1BhdHRlcm5zKCk6IHN0cmluZ1tdIHtcbiAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW11cbiAgY29uc3QgZG9jUGF0dGVybnMgPSBwYXR0ZXJucy5maWx0ZXIocCA9PiBwLmVuZm9yY2VtZW50ID09PSAnZG9jdW1lbnRhdGlvbicpXG5cbiAgbGluZXMucHVzaCgnIyMgRG9jdW1lbnRhdGlvbiBQYXR0ZXJucycpXG4gIGxpbmVzLnB1c2goJycpXG4gIGxpbmVzLnB1c2goJ1RoZXNlIHBhdHRlcm5zIGFyZSBub3QgZW5mb3JjZWQgYnkgRVNMaW50IGJ1dCBzaG91bGQgYmUgZm9sbG93ZWQuJylcbiAgbGluZXMucHVzaCgnJylcblxuICBmb3IgKGNvbnN0IHBhdHRlcm4gb2YgZG9jUGF0dGVybnMpIHtcbiAgICBsaW5lcy5wdXNoKGAjIyMgJHtwYXR0ZXJuLmlkfTogJHtwYXR0ZXJuLnRpdGxlfWApXG4gICAgbGluZXMucHVzaCgnJylcbiAgICBsaW5lcy5wdXNoKHBhdHRlcm4uc3VtbWFyeSlcbiAgICBsaW5lcy5wdXNoKCcnKVxuICB9XG5cbiAgcmV0dXJuIGxpbmVzXG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlR3VhcmFudGVlcygpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdXG5cbiAgbGluZXMucHVzaCgnIyMgQ2Fub24gR3VhcmFudGVlcycpXG4gIGxpbmVzLnB1c2goJycpXG4gIGxpbmVzLnB1c2goJ0ZvbGxvd2luZyB0aGVzZSBwYXR0ZXJucyBwcm92aWRlcyB0aGVzZSBndWFyYW50ZWVzOicpXG4gIGxpbmVzLnB1c2goJycpXG5cbiAgZm9yIChjb25zdCBndWFyYW50ZWUgb2YgZ3VhcmFudGVlcykge1xuICAgIGxpbmVzLnB1c2goYC0gKioke2d1YXJhbnRlZS5uYW1lfSoqICgke2d1YXJhbnRlZS5pZH0pOiBQYXR0ZXJucyAke2d1YXJhbnRlZS5wYXR0ZXJucy5qb2luKCcsICcpfWApXG4gIH1cbiAgbGluZXMucHVzaCgnJylcblxuICByZXR1cm4gbGluZXNcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVDb21wb25lbnRSZWZlcmVuY2UoY29uZmlnOiBDYW5vblRlbXBsYXRlQ29uZmlnIHwgbnVsbCk6IHN0cmluZ1tdIHtcbiAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW11cblxuICBsaW5lcy5wdXNoKCcjIyBDb21wb25lbnQgUXVpY2sgUmVmZXJlbmNlJylcbiAgbGluZXMucHVzaCgnJylcblxuICBpZiAoY29uZmlnPy5jb21wb25lbnRzPy5sZW5ndGgpIHtcbiAgICBmb3IgKGNvbnN0IGNvbXAgb2YgY29uZmlnLmNvbXBvbmVudHMpIHtcbiAgICAgIGNvbnN0IHByb3BzU3RyID0gY29tcC5wcm9wcz8ubGVuZ3RoID8gYCAtIHByb3BzOiAke2NvbXAucHJvcHMubWFwKHAgPT4gYFxcYCR7cH1cXGBgKS5qb2luKCcsICcpfWAgOiAnJ1xuICAgICAgY29uc3Qgbm90ZVN0ciA9IGNvbXAubm90ZXMgPyBgICgke2NvbXAubm90ZXN9KWAgOiAnJ1xuICAgICAgbGluZXMucHVzaChgLSBcXGAke2NvbXAubmFtZX1cXGAke3Byb3BzU3RyfSR7bm90ZVN0cn1gKVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBGYWxsYmFjazogaGFyZGNvZGVkIGNvbXBvbmVudCBsaXN0XG4gICAgbGluZXMucHVzaCgnIyMjIFR5cG9ncmFwaHknKVxuICAgIGxpbmVzLnB1c2goJy0gYEhlYWRpbmdgIC0gcHJvcHM6IGBhc2AsIGBjb2xvcmAsIGBtYXJnaW5gLCBgZm9udFNpemVgLCBgZm9udFdlaWdodGAsIGB0ZXh0QWxpZ25gJylcbiAgICBsaW5lcy5wdXNoKCctIGBQYXJhZ3JhcGhgIC0gcHJvcHM6IGBjb2xvcmAsIGBtYXJnaW5gLCBgZm9udFNpemVgLCBgbGluZUhlaWdodGAsIGB0ZXh0QWxpZ25gJylcbiAgICBsaW5lcy5wdXNoKCctIGBTcGFuYCAtIHByb3BzOiBgY29sb3JgLCBgbWFyZ2luYCwgYGZvbnRTaXplYCAoaW5saW5lIHRleHQsIG1iLTAgZGVmYXVsdCknKVxuICAgIGxpbmVzLnB1c2goJy0gYExhYmVsYCAtIHByb3BzOiBgY29sb3JgLCBgbWFyZ2luYCwgYGZvbnRTaXplYCwgYGZvbnRXZWlnaHRgLCBgdGV4dEFsaWduYCcpXG4gICAgbGluZXMucHVzaCgnLSBgUXVvdGVgIC0gcHJvcHM6IGB2YXJpYW50YCwgYGNvbG9yYCwgYG1hcmdpbmAsIGBmb250U2l6ZWAsIGBmb250V2VpZ2h0YCwgYHRleHRBbGlnbmAnKVxuICAgIGxpbmVzLnB1c2goJycpXG4gICAgbGluZXMucHVzaCgnIyMjIExheW91dCcpXG4gICAgbGluZXMucHVzaCgnLSBgU2VjdGlvbmAgLSBzZW1hbnRpYyBzZWN0aW9uIHdyYXBwZXInKVxuICAgIGxpbmVzLnB1c2goJy0gYENvbHVtbnNgIC0gZ3JpZCBsYXlvdXQsIHByb3BzOiBgY29sc2AsIGBnYXBgLCBgYWxpZ25gJylcbiAgICBsaW5lcy5wdXNoKCctIGBDb2x1bW5gIC0gY29sdW1uIGNoaWxkJylcbiAgICBsaW5lcy5wdXNoKCcnKVxuICAgIGxpbmVzLnB1c2goJyMjIyBJbnRlcmFjdGl2ZScpXG4gICAgbGluZXMucHVzaCgnLSBgQnV0dG9uYCAtIHByb3BzOiBgaHJlZmAsIGB2YXJpYW50YCwgYGljb25gLCBgaWNvblBsYWNlbWVudGAsIGBtYXJnaW5gJylcbiAgICBsaW5lcy5wdXNoKCctIGBJY29uYCAtIEljb25pZnkgaWNvbiB3cmFwcGVyJylcbiAgfVxuXG4gIGxpbmVzLnB1c2goJycpXG4gIHJldHVybiBsaW5lc1xufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZURvTm90U2VjdGlvbihjb25maWc6IENhbm9uVGVtcGxhdGVDb25maWcgfCBudWxsKTogc3RyaW5nW10ge1xuICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXVxuXG4gIGxpbmVzLnB1c2goJyMjIERvIE5PVCcpXG4gIGxpbmVzLnB1c2goJycpXG5cbiAgLy8gRGVmYXVsdCBydWxlcyBhbHdheXMgcHJlc2VudFxuICBsaW5lcy5wdXNoKFwiLSBVc2UgYCd1c2UgY2xpZW50J2AgaW4gYmxvY2tzIC0gZXh0cmFjdCB0byBjb21wb25lbnRzXCIpXG4gIGxpbmVzLnB1c2goJy0gVXNlIHJhdyBgPHA+YCwgYDxzcGFuPmAsIG9yIGA8aDE+YOKAk2A8aDY+YCAtIHVzZSBQYXJhZ3JhcGgvU3Bhbi9IZWFkaW5nIGNvbXBvbmVudHMnKVxuICBsaW5lcy5wdXNoKCctIFVzZSBjbGFzc05hbWUgZm9yIG1hcmdpbi9jb2xvci9mb250U2l6ZSB3aGVuIGNvbXBvbmVudCBoYXMgcHJvcHMnKVxuICBsaW5lcy5wdXNoKCctIFVzZSBDb250YWluZXIgaW5zaWRlIFNlY3Rpb24gLSBTZWN0aW9uIGFscmVhZHkgcHJvdmlkZXMgY29udGFpbm1lbnQnKVxuICBsaW5lcy5wdXNoKCctIFVzZSBgY2xhc3NuYW1lc2AgcGFja2FnZSAtIHVzZSBgY2xzeGAgaW5zdGVhZCcpXG4gIGxpbmVzLnB1c2goJy0gVXNlIGlubGluZSBzdHlsZXMgZm9yIGhvdmVyIHN0YXRlcyAtIHVzZSBUYWlsd2luZCBjbGFzc2VzJylcbiAgbGluZXMucHVzaCgnLSBVc2UgbmF0aXZlIGBJbnRlcnNlY3Rpb25PYnNlcnZlcmAgLSB1c2UgYHJlYWN0LWludGVyc2VjdGlvbi1vYnNlcnZlcmAgcGFja2FnZScpXG4gIGxpbmVzLnB1c2goJy0gVXNlIGlubGluZSBgPHN2Zz5gIGluIGJsb2NrcyAtIHVzZSB0aGUgSWNvbiBjb21wb25lbnQgd2l0aCBJY29uaWZ5IGljb25zJylcbiAgbGluZXMucHVzaCgnLSBVc2UgZGVlcCByZWxhdGl2ZSBpbXBvcnRzIChgLi4vLi4vYCkgLSB1c2UgYEAvYCBhbGlhcyBpbXBvcnRzJylcblxuICAvLyBUZW1wbGF0ZS1zcGVjaWZpYyBydWxlc1xuICBpZiAoY29uZmlnPy5ydWxlcykge1xuICAgIGZvciAoY29uc3QgcnVsZSBvZiBjb25maWcucnVsZXMpIHtcbiAgICAgIGlmIChydWxlLnR5cGUgPT09ICdkb05vdCcpIHtcbiAgICAgICAgbGluZXMucHVzaChgLSAke3J1bGUucnVsZX1gKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxpbmVzLnB1c2goJycpXG4gIHJldHVybiBsaW5lc1xufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZUZpbGVBdXRob3JpdHkoKTogc3RyaW5nW10ge1xuICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXVxuXG4gIGxpbmVzLnB1c2goJyMjIEZpbGUgJiBGb2xkZXIgQXV0aG9yaXR5JylcbiAgbGluZXMucHVzaCgnJylcbiAgbGluZXMucHVzaCgnVGhlc2UgcnVsZXMgZ292ZXJuIHdoYXQgQUkgaXMgYWxsb3dlZCBhbmQgZm9yYmlkZGVuIHRvIGRvIHdoZW4gY3JlYXRpbmcsIG1vdmluZywgb3IgbW9kaWZ5aW5nIGZpbGVzIGFuZCBmb2xkZXJzLicpXG4gIGxpbmVzLnB1c2goJycpXG5cbiAgbGluZXMucHVzaCgnIyMjIERlZmluZWQgYC9zcmNgIFN0cnVjdHVyZScpXG4gIGxpbmVzLnB1c2goJycpXG4gIGxpbmVzLnB1c2goJ2BgYCcpXG4gIGxpbmVzLnB1c2goJ3NyYy8nKVxuICBsaW5lcy5wdXNoKCfilJzilIDilIAgYXBwLyAgICAgICAgICAjIFJvdXRlcywgbGF5b3V0cywgbWV0YWRhdGEgKE5leHQuanMgQXBwIFJvdXRlciknKVxuICBsaW5lcy5wdXNoKCfilIIgICDilJTilIDilIAge3JvdXRlfS8nKVxuICBsaW5lcy5wdXNoKCfilIIgICAgICAg4pSc4pSA4pSAIHBhZ2UudHN4JylcbiAgbGluZXMucHVzaCgn4pSCICAgICAgIOKUlOKUgOKUgCBfYmxvY2tzLyAgIyBDby1sb2NhdGVkIHBhZ2Utc3BlY2lmaWMgYmxvY2tzJylcbiAgbGluZXMucHVzaCgn4pSc4pSA4pSAIGJsb2cvICAgICAgICAgIyBCbG9nIGNvbnRlbnQgKGFyY2hpdmUgY29udGVudCB0eXBlKScpXG4gIGxpbmVzLnB1c2goJ+KUnOKUgOKUgCBjb21wb25lbnRzLyAgICMgUmV1c2FibGUgVUkgcHJpbWl0aXZlcycpXG4gIGxpbmVzLnB1c2goJ+KUnOKUgOKUgCBob29rcy8gICAgICAgICMgQ3VzdG9tIFJlYWN0IGhvb2tzJylcbiAgbGluZXMucHVzaCgn4pSc4pSA4pSAIHN0eWxlcy8gICAgICAgIyBDU1MsIFRhaWx3aW5kLCBmb250cycpXG4gIGxpbmVzLnB1c2goJ+KUnOKUgOKUgCB0ZW1wbGF0ZS8gICAgICMgVGVtcGxhdGUtbGV2ZWwgY29tcG9uZW50cycpXG4gIGxpbmVzLnB1c2goJ+KUnOKUgOKUgCB0b29scy8gICAgICAgICMgVXRpbGl0eSB0b29scycpXG4gIGxpbmVzLnB1c2goJ+KUnOKUgOKUgCB0eXBlcy8gICAgICAgICMgVHlwZVNjcmlwdCB0eXBlcycpXG4gIGxpbmVzLnB1c2goJ+KUnOKUgOKUgCB1dGlscy8gICAgICAgICMgVXRpbGl0eSBmdW5jdGlvbnMnKVxuICBsaW5lcy5wdXNoKCfilJTilIDilIAgc3RhdGUudHMgICAgICAjIEdsb2JhbCBzdGF0ZScpXG4gIGxpbmVzLnB1c2goJ2BgYCcpXG4gIGxpbmVzLnB1c2goJycpXG5cbiAgbGluZXMucHVzaCgnIyMjIEFwcCBSb3V0ZXIgU3RydWN0dXJlJylcbiAgbGluZXMucHVzaCgnJylcbiAgbGluZXMucHVzaCgnUm91dGVzIG11c3QgdXNlIE5leHQuanMgcm91dGUgZ3JvdXBzLiBBdCBtaW5pbXVtLCBgKGRlZmF1bHQpYCBtdXN0IGV4aXN0OicpXG4gIGxpbmVzLnB1c2goJycpXG4gIGxpbmVzLnB1c2goJ2BgYCcpXG4gIGxpbmVzLnB1c2goJ3NyYy9hcHAvJylcbiAgbGluZXMucHVzaCgn4pSc4pSA4pSAIChkZWZhdWx0KS8gICAgICAgICMgUmVxdWlyZWQgLSBkZWZhdWx0IGxheW91dCBncm91cCcpXG4gIGxpbmVzLnB1c2goJ+KUgiAgIOKUnOKUgOKUgCBsYXlvdXQudHN4JylcbiAgbGluZXMucHVzaCgn4pSCICAg4pSU4pSA4pSAIHtyb3V0ZXN9LycpXG4gIGxpbmVzLnB1c2goJ+KUnOKUgOKUgCAoaGVybykvICAgICAgICAgICAjIE9wdGlvbmFsIC0gaGVybyBsYXlvdXQgdmFyaWFudCcpXG4gIGxpbmVzLnB1c2goJ+KUnOKUgOKUgCBhcGkvICAgICAgICAgICAgICAjIEFQSSByb3V0ZXMgKGV4Y2VwdGlvbiAtIG5vIGdyb3VwaW5nKScpXG4gIGxpbmVzLnB1c2goJ+KUnOKUgOKUgCBsYXlvdXQudHN4ICAgICAgICAjIFJvb3QgbGF5b3V0JylcbiAgbGluZXMucHVzaCgn4pSU4pSA4pSAIG1ldGFkYXRhLnRzeCAgICAgICMgU2hhcmVkIG1ldGFkYXRhJylcbiAgbGluZXMucHVzaCgnYGBgJylcbiAgbGluZXMucHVzaCgnJylcbiAgbGluZXMucHVzaCgnLSBBbGwgcGFnZSByb3V0ZXMgbXVzdCBiZSBpbnNpZGUgYSByb3V0ZSBncm91cCAocGFyZW50aGVzZXMgZm9sZGVyKScpXG4gIGxpbmVzLnB1c2goJy0gTmV2ZXIgY3JlYXRlIHJvdXRlcyBkaXJlY3RseSB1bmRlciBgc3JjL2FwcC9gIChleGNlcHQgYGFwaS9gLCByb290IGZpbGVzKScpXG4gIGxpbmVzLnB1c2goJy0gTmV3IHJvdXRlIGdyb3VwcyBhcmUgYWxsb3dlZCBmcmVlbHkgd2hlbiBhIG5ldyBsYXlvdXQgdmFyaWFudCBpcyBuZWVkZWQnKVxuICBsaW5lcy5wdXNoKCcnKVxuXG4gIGxpbmVzLnB1c2goJyMjIyBGaWxlIFN0cnVjdHVyZSBSdWxlcycpXG4gIGxpbmVzLnB1c2goJycpXG4gIGxpbmVzLnB1c2goJyoqQmxvY2tzOioqJylcbiAgbGluZXMucHVzaCgnLSBDby1sb2NhdGVkIGluIGBfYmxvY2tzL2Agc3ViZGlyZWN0b3JpZXMgYWxvbmdzaWRlIGVhY2ggcGFnZSByb3V0ZScpXG4gIGxpbmVzLnB1c2goJy0gU2luZ2xldG9uIG5hbWluZzogYGhlcm8udHN4YCAob25lIHBlciBwYWdlKSwgbnVtYmVyZWQgd2hlbiBtdWx0aXBsZTogYGNvbnRlbnQtMi50c3hgLCBgY29udGVudC0zLnRzeGAnKVxuICBsaW5lcy5wdXNoKCctIEltcG9ydCB3aXRoIHJlbGF0aXZlIHBhdGhzOiBgaW1wb3J0IEhlcm8gZnJvbSBcXCcuL19ibG9ja3MvaGVyb1xcJ2AnKVxuICBsaW5lcy5wdXNoKCctIEV4YW1wbGU6IGBzcmMvYXBwLyhkZWZhdWx0KS9mdXJuaXR1cmUvX2Jsb2Nrcy9oZXJvLnRzeGAnKVxuICBsaW5lcy5wdXNoKCcnKVxuICBsaW5lcy5wdXNoKCcqKkNvbXBvbmVudHM6KionKVxuICBsaW5lcy5wdXNoKCctIFNpbXBsZSBjb21wb25lbnRzOiBTaW5nbGUgZmlsZSBpbiBgc3JjL2NvbXBvbmVudHMvYCcpXG4gIGxpbmVzLnB1c2goJy0gQ29tcGxleCBjb21wb25lbnRzOiBGb2xkZXIgd2l0aCBgaW5kZXgudHN4YCcpXG4gIGxpbmVzLnB1c2goJy0gVXNlIGZvbGRlcnMgd2hlbiBjb21wb25lbnQgaGFzIG11bHRpcGxlIHN1Yi1maWxlcycpXG4gIGxpbmVzLnB1c2goJycpXG5cbiAgbGluZXMucHVzaCgnIyMjIERPIC0gV2hhdCBBSSBJUyBBbGxvd2VkIFRvIERvJylcbiAgbGluZXMucHVzaCgnJylcbiAgbGluZXMucHVzaCgnLSBDcmVhdGUgZmlsZXMgb25seSBpbnNpZGUgZXhpc3RpbmcgQ2Fub24tZGVmaW5lZCB6b25lcycpXG4gIGxpbmVzLnB1c2goJy0gUGxhY2UgbmV3IGZpbGVzIGluIHRoZSB6b25lIHRoYXQgbWF0Y2hlcyB0aGVpciBhcmNoaXRlY3R1cmFsIHJvbGUnKVxuICBsaW5lcy5wdXNoKCctIEZvbGxvdyBleGlzdGluZyBmb2xkZXIgY29udmVudGlvbnMgd2l0aGluIGEgem9uZScpXG4gIGxpbmVzLnB1c2goJy0gUmV1c2UgZXhpc3RpbmcgZm9sZGVycyB3aGVuIHBvc3NpYmxlJylcbiAgbGluZXMucHVzaCgnLSBDcmVhdGUgbmV3IHJvdXRlIGdyb3VwcyBpbiBgc3JjL2FwcC9gIHdoZW4gbmV3IGxheW91dHMgYXJlIG5lZWRlZCcpXG4gIGxpbmVzLnB1c2goJy0gQ3JlYXRlIG5ldyBhcmNoaXZlIGNvbnRlbnQgZm9sZGVycyAobGlrZSBgYmxvZy9gLCBgcG9ydGZvbGlvL2ApIGluIGAvc3JjYCcpXG4gIGxpbmVzLnB1c2goJy0gQ3JlYXRlIGRvdGZpbGVzL2RpcmVjdG9yaWVzIGF0IHByb2plY3Qgcm9vdCAoYC5naXRodWIvYCwgYC5jdXJzb3IvYCwgZXRjLiknKVxuICBsaW5lcy5wdXNoKCctIEFzayBmb3IgY29uZmlybWF0aW9uIGlmIHRoZSBjb3JyZWN0IHpvbmUgaXMgYW1iaWd1b3VzJylcbiAgbGluZXMucHVzaCgnJylcblxuICBsaW5lcy5wdXNoKCcjIyMgRE8gTk9UIC0gV2hhdCBBSSBJcyBGb3JiaWRkZW4gVG8gRG8nKVxuICBsaW5lcy5wdXNoKCcnKVxuICBsaW5lcy5wdXNoKCctIENyZWF0ZSBuZXcgdG9wLWxldmVsIGRpcmVjdG9yaWVzIChleGNlcHQgZG90ZmlsZXMpJylcbiAgbGluZXMucHVzaCgnLSBDcmVhdGUgbmV3IGZvbGRlcnMgaW4gYC9zcmNgIChleGNlcHQgYXJjaGl2ZSBjb250ZW50IG9yIHJvdXRlIGdyb3VwcyknKVxuICBsaW5lcy5wdXNoKCctIFBsYWNlIGZpbGVzIG91dHNpZGUgQ2Fub24tZGVmaW5lZCB6b25lcycpXG4gIGxpbmVzLnB1c2goJy0gTWl4IHJlc3BvbnNpYmlsaXRpZXMgYWNyb3NzIHpvbmVzIChjb21wb25lbnRzIGltcG9ydGluZyBibG9ja3MsIGV0Yy4pJylcbiAgbGluZXMucHVzaCgnLSBSZW9yZ2FuaXplIG9yIG1vdmUgZm9sZGVycyB3aXRob3V0IGV4cGxpY2l0IGluc3RydWN0aW9uJylcbiAgbGluZXMucHVzaCgnLSBJbnZlbnQgbmV3IG9yZ2FuaXphdGlvbmFsIGNvbnZlbnRpb25zJylcbiAgbGluZXMucHVzaCgnLSBDcmVhdGUgcGxhY2Vob2xkZXIgb3Igc3BlY3VsYXRpdmUgZmlsZXMnKVxuICBsaW5lcy5wdXNoKCctIEltcG9ydCBmcm9tIGBfc2NyaXB0cy9gIG9yIGBfZGF0YS9gIGluIHJ1bnRpbWUgY29kZScpXG4gIGxpbmVzLnB1c2goJy0gTWFudWFsbHkgZWRpdCBmaWxlcyBpbiBgX2RhdGEvYCAoZ2VuZXJhdGVkIG9ubHkpJylcbiAgbGluZXMucHVzaCgnJylcblxuICByZXR1cm4gbGluZXNcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVWZXJpZmljYXRpb24oY29uZmlnOiBDYW5vblRlbXBsYXRlQ29uZmlnIHwgbnVsbCk6IHN0cmluZ1tdIHtcbiAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW11cblxuICBsaW5lcy5wdXNoKCcjIyBQb3N0LUVkaXQgVmVyaWZpY2F0aW9uJylcbiAgbGluZXMucHVzaCgnJylcbiAgbGluZXMucHVzaCgnQWZ0ZXIgZWRpdGluZyBmaWxlczonKVxuXG4gIGlmIChjb25maWc/LnZlcmlmaWNhdGlvbj8ubGVuZ3RoKSB7XG4gICAgbGV0IHN0ZXAgPSAxXG4gICAgZm9yIChjb25zdCBjbWQgb2YgY29uZmlnLnZlcmlmaWNhdGlvbikge1xuICAgICAgbGluZXMucHVzaChgJHtzdGVwfS4gUnVuIFxcYCR7Y21kfVxcYGApXG4gICAgICBzdGVwKytcbiAgICB9XG4gICAgbGluZXMucHVzaChgJHtzdGVwfS4gRml4IGFueSB2aW9sYXRpb25zIGJlZm9yZSBjb21taXR0aW5nYClcbiAgfSBlbHNlIHtcbiAgICBsaW5lcy5wdXNoKCcxLiBSdW4gYG5wbSBydW4gbGludGAgdG8gY2hlY2sgZm9yIGVycm9ycycpXG4gICAgbGluZXMucHVzaCgnMi4gRml4IGFueSB2aW9sYXRpb25zIGJlZm9yZSBjb21taXR0aW5nJylcbiAgfVxuXG4gIGxpbmVzLnB1c2goJycpXG4gIGxpbmVzLnB1c2goJ05vdGU6IE9ubHkgbGludCBmaWxlcyB5b3UgZWRpdGVkLCBub3QgdGhlIGVudGlyZSBjb2RlYmFzZS4nKVxuICBsaW5lcy5wdXNoKCcnKVxuXG4gIHJldHVybiBsaW5lc1xufVxuXG4vLyDilIDilIDilIAgQ2xhdWRlLXNwZWNpZmljIHNlY3Rpb25zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5mdW5jdGlvbiBnZW5lcmF0ZUF1dG9HZW5GaWxlcyhjb25maWc6IENhbm9uVGVtcGxhdGVDb25maWcgfCBudWxsKTogc3RyaW5nW10ge1xuICBpZiAoIWNvbmZpZz8uZ2VuZXJhdGVkRmlsZXM/Lmxlbmd0aCkgcmV0dXJuIFtdXG5cbiAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW11cblxuICBsaW5lcy5wdXNoKCcjIyBBdXRvLUdlbmVyYXRlZCBGaWxlcyDigJQgTmV2ZXIgRWRpdCBNYW51YWxseScpXG4gIGxpbmVzLnB1c2goJycpXG4gIGxpbmVzLnB1c2goJ3wgRmlsZSB8IFJlZ2VuZXJhdGUgV2l0aCB8IFRyaWdnZXJlZCBCeSB8JylcbiAgbGluZXMucHVzaCgnfC0tLXwtLS18LS0tfCcpXG5cbiAgZm9yIChjb25zdCBmaWxlIG9mIGNvbmZpZy5nZW5lcmF0ZWRGaWxlcykge1xuICAgIGxpbmVzLnB1c2goYHwgXFxgJHtmaWxlLnBhdGh9XFxgIHwgXFxgJHtmaWxlLmNvbW1hbmR9XFxgIHwgJHtmaWxlLnRyaWdnZXJ9IHxgKVxuICB9XG5cbiAgbGluZXMucHVzaCgnJylcbiAgcmV0dXJuIGxpbmVzXG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlQnVpbGRDb21tYW5kcyhjb25maWc6IENhbm9uVGVtcGxhdGVDb25maWcgfCBudWxsKTogc3RyaW5nW10ge1xuICBpZiAoIWNvbmZpZz8uYnVpbGRDb21tYW5kcz8ubGVuZ3RoKSByZXR1cm4gW11cblxuICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXVxuXG4gIGxpbmVzLnB1c2goJyMjIEJ1aWxkIENvbW1hbmRzJylcbiAgbGluZXMucHVzaCgnJylcbiAgbGluZXMucHVzaCgnfCBDb21tYW5kIHwgUHVycG9zZSB8JylcbiAgbGluZXMucHVzaCgnfC0tLXwtLS18JylcblxuICBmb3IgKGNvbnN0IGNtZCBvZiBjb25maWcuYnVpbGRDb21tYW5kcykge1xuICAgIGxpbmVzLnB1c2goYHwgXFxgJHtjbWQuc2NyaXB0fVxcYCB8ICR7Y21kLmRlc2NyaXB0aW9ufSB8YClcbiAgfVxuXG4gIGxpbmVzLnB1c2goJycpXG4gIHJldHVybiBsaW5lc1xufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZUNvbG9yVG9rZW5zKGNvbmZpZzogQ2Fub25UZW1wbGF0ZUNvbmZpZyB8IG51bGwpOiBzdHJpbmdbXSB7XG4gIGlmICghY29uZmlnPy5jb2xvclRva2VucykgcmV0dXJuIFtdXG5cbiAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW11cbiAgY29uc3QgY3QgPSBjb25maWcuY29sb3JUb2tlbnNcblxuICBsaW5lcy5wdXNoKCcjIyBDb2xvciBUb2tlbiBTeXN0ZW0nKVxuICBsaW5lcy5wdXNoKCcnKVxuICBsaW5lcy5wdXNoKCdBbGwgY29sb3JzIHVzZSBzZW1hbnRpYyB0b2tlbnMgZGVmaW5lZCBpbiBgc3JjL3N0eWxlcy90YWlsd2luZC5jc3NgIGBAdGhlbWVgOicpXG4gIGxpbmVzLnB1c2goJycpXG5cbiAgaWYgKGN0LnN1cmZhY2U/Lmxlbmd0aCkge1xuICAgIGxpbmVzLnB1c2goYC0gKipTdXJmYWNlKio6ICR7Y3Quc3VyZmFjZS5tYXAocyA9PiBgXFxgJHtzfVxcYGApLmpvaW4oJywgJyl9YClcbiAgfVxuICBpZiAoY3QudGV4dD8ubGVuZ3RoKSB7XG4gICAgbGluZXMucHVzaChgLSAqKlRleHQqKjogJHtjdC50ZXh0Lm1hcChzID0+IGBcXGAke3N9XFxgYCkuam9pbignLCAnKX1gKVxuICB9XG4gIGlmIChjdC5vdmVybGF5Py5sZW5ndGgpIHtcbiAgICBsaW5lcy5wdXNoKGAtICoqT3ZlcmxheSoqIChmaXhlZCDigJQgZG9uJ3QgZmxpcCBpbiBkYXJrIG1vZGUpOiAke2N0Lm92ZXJsYXkubWFwKHMgPT4gYFxcYCR7c31cXGBgKS5qb2luKCcsICcpfWApXG4gIH1cbiAgaWYgKGN0LmFjY2VudHM/Lmxlbmd0aCkge1xuICAgIGxpbmVzLnB1c2goYC0gKipBY2NlbnRzKio6ICR7Y3QuYWNjZW50cy5tYXAocyA9PiBgXFxgJHtzfVxcYGApLmpvaW4oJywgJyl9YClcbiAgfVxuXG4gIGxpbmVzLnB1c2goJycpXG5cbiAgbGluZXMucHVzaCgnKipOZXZlciB1c2UqKjogYGdyYXktKmAsIGB3aGl0ZWAsIGBibGFja2AsIGBzbGF0ZS0qYCDigJQgYWx3YXlzIG1hcCB0byBhIHNlbWFudGljIHRva2VuLicpXG4gIGxpbmVzLnB1c2goJycpXG5cbiAgcmV0dXJuIGxpbmVzXG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlU3RhdGVNYW5hZ2VtZW50KGNvbmZpZzogQ2Fub25UZW1wbGF0ZUNvbmZpZyB8IG51bGwpOiBzdHJpbmdbXSB7XG4gIGlmICghY29uZmlnPy5zdGF0ZSkgcmV0dXJuIFtdXG5cbiAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW11cbiAgY29uc3Qgc3QgPSBjb25maWcuc3RhdGVcblxuICBsaW5lcy5wdXNoKCcjIyBTdGF0ZSBNYW5hZ2VtZW50JylcbiAgbGluZXMucHVzaCgnJylcbiAgbGluZXMucHVzaChgJHtzdC5saWJyYXJ5fSBzdG9yZSBhdCBcXGAke3N0LmZpbGV9XFxgLiBSZWFkIHdpdGggXFxgJHtzdC5yZWFkUGF0dGVybn1cXGAsIHdyaXRlIHdpdGggXFxgJHtzdC53cml0ZVBhdHRlcm59XFxgLmApXG4gIGxpbmVzLnB1c2goJycpXG5cbiAgaWYgKHN0LnByb3BlcnRpZXM/Lmxlbmd0aCkge1xuICAgIGxpbmVzLnB1c2goYEF2YWlsYWJsZSBzdGF0ZTogJHtzdC5wcm9wZXJ0aWVzLm1hcChwID0+IGBcXGAke3B9XFxgYCkuam9pbignLCAnKX0uYClcbiAgICBsaW5lcy5wdXNoKCcnKVxuICB9XG5cbiAgcmV0dXJuIGxpbmVzXG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlVGVtcGxhdGVSdWxlcyhjb25maWc6IENhbm9uVGVtcGxhdGVDb25maWcgfCBudWxsKTogc3RyaW5nW10ge1xuICBpZiAoIWNvbmZpZz8ucnVsZXM/Lmxlbmd0aCkgcmV0dXJuIFtdXG5cbiAgY29uc3QgZG9SdWxlcyA9IGNvbmZpZy5ydWxlcy5maWx0ZXIociA9PiByLnR5cGUgPT09ICdkbycpXG4gIGlmICghZG9SdWxlcy5sZW5ndGgpIHJldHVybiBbXVxuXG4gIGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdXG5cbiAgbGluZXMucHVzaCgnIyMgVGVtcGxhdGUtU3BlY2lmaWMgUnVsZXMnKVxuICBsaW5lcy5wdXNoKCcnKVxuXG4gIGZvciAoY29uc3QgcnVsZSBvZiBkb1J1bGVzKSB7XG4gICAgbGluZXMucHVzaChgLSAke3J1bGUucnVsZX1gKVxuICB9XG5cbiAgbGluZXMucHVzaCgnJylcbiAgcmV0dXJuIGxpbmVzXG59XG5cbi8vIOKUgOKUgOKUgCBGb3JtYXQgZ2VuZXJhdG9ycyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZnVuY3Rpb24gZ2VuZXJhdGVDdXJzb3JydWxlcyhjb25maWc6IENhbm9uVGVtcGxhdGVDb25maWcgfCBudWxsKTogc3RyaW5nIHtcbiAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW1xuICAgIC4uLmdlbmVyYXRlSGVhZGVyKCdjdXJzb3JydWxlcycpLFxuICAgIC4uLmdlbmVyYXRlVGVjaFN0YWNrKCksXG4gICAgLi4uZ2VuZXJhdGVFbmZvcmNlZFBhdHRlcm5zKCdjdXJzb3JydWxlcycpLFxuICAgIC4uLmdlbmVyYXRlRG9jUGF0dGVybnMoKSxcbiAgICAuLi5nZW5lcmF0ZUd1YXJhbnRlZXMoKSxcbiAgICAuLi5nZW5lcmF0ZUNvbXBvbmVudFJlZmVyZW5jZShjb25maWcpLFxuICAgIC4uLmdlbmVyYXRlRG9Ob3RTZWN0aW9uKGNvbmZpZyksXG4gICAgLi4uZ2VuZXJhdGVGaWxlQXV0aG9yaXR5KCksXG4gICAgLi4uZ2VuZXJhdGVWZXJpZmljYXRpb24oY29uZmlnKSxcbiAgXVxuXG4gIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKVxufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZUNsYXVkZU1kKGNvbmZpZzogQ2Fub25UZW1wbGF0ZUNvbmZpZyB8IG51bGwpOiBzdHJpbmcge1xuICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXG4gICAgLi4uZ2VuZXJhdGVIZWFkZXIoJ2NsYXVkZScpLFxuICAgIC4uLmdlbmVyYXRlQXV0b0dlbkZpbGVzKGNvbmZpZyksXG4gICAgLi4uZ2VuZXJhdGVCdWlsZENvbW1hbmRzKGNvbmZpZyksXG4gICAgLi4uZ2VuZXJhdGVFbmZvcmNlZFBhdHRlcm5zKCdjbGF1ZGUnKSxcbiAgICAuLi5nZW5lcmF0ZURvY1BhdHRlcm5zKCksXG4gICAgLi4uZ2VuZXJhdGVDb2xvclRva2Vucyhjb25maWcpLFxuICAgIC4uLmdlbmVyYXRlQ29tcG9uZW50UmVmZXJlbmNlKGNvbmZpZyksXG4gICAgLi4uZ2VuZXJhdGVTdGF0ZU1hbmFnZW1lbnQoY29uZmlnKSxcbiAgICAuLi5nZW5lcmF0ZVRlbXBsYXRlUnVsZXMoY29uZmlnKSxcbiAgICAuLi5nZW5lcmF0ZURvTm90U2VjdGlvbihjb25maWcpLFxuICAgIC4uLmdlbmVyYXRlVmVyaWZpY2F0aW9uKGNvbmZpZyksXG4gIF1cblxuICByZXR1cm4gbGluZXMuam9pbignXFxuJylcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVDb3BpbG90SW5zdHJ1Y3Rpb25zKGNvbmZpZzogQ2Fub25UZW1wbGF0ZUNvbmZpZyB8IG51bGwpOiBzdHJpbmcge1xuICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXG4gICAgLi4uZ2VuZXJhdGVIZWFkZXIoJ2NvcGlsb3QnKSxcbiAgICAuLi5nZW5lcmF0ZVRlY2hTdGFjaygpLFxuICAgIC4uLmdlbmVyYXRlRW5mb3JjZWRQYXR0ZXJucygnY29waWxvdCcpLFxuICAgIC4uLmdlbmVyYXRlRG9jUGF0dGVybnMoKSxcbiAgICAuLi5nZW5lcmF0ZUNvbXBvbmVudFJlZmVyZW5jZShjb25maWcpLFxuICAgIC4uLmdlbmVyYXRlRG9Ob3RTZWN0aW9uKGNvbmZpZyksXG4gICAgLi4uZ2VuZXJhdGVWZXJpZmljYXRpb24oY29uZmlnKSxcbiAgXVxuXG4gIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKVxufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZUNvbnRlbnQoZm9ybWF0OiBPdXRwdXRGb3JtYXQsIGNvbmZpZzogQ2Fub25UZW1wbGF0ZUNvbmZpZyB8IG51bGwpOiBzdHJpbmcge1xuICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgIGNhc2UgJ2NsYXVkZSc6XG4gICAgICByZXR1cm4gZ2VuZXJhdGVDbGF1ZGVNZChjb25maWcpXG4gICAgY2FzZSAnY29waWxvdCc6XG4gICAgICByZXR1cm4gZ2VuZXJhdGVDb3BpbG90SW5zdHJ1Y3Rpb25zKGNvbmZpZylcbiAgICBjYXNlICdjdXJzb3JydWxlcyc6XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBnZW5lcmF0ZUN1cnNvcnJ1bGVzKGNvbmZpZylcbiAgfVxufVxuXG5mdW5jdGlvbiB3cml0ZU91dHB1dChjb250ZW50OiBzdHJpbmcsIG91dHB1dFBhdGg6IHN0cmluZyk6IHZvaWQge1xuICBjb25zdCBkaXIgPSBwYXRoLmRpcm5hbWUob3V0cHV0UGF0aClcbiAgaWYgKCFmcy5leGlzdHNTeW5jKGRpcikpIHtcbiAgICBmcy5ta2RpclN5bmMoZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KVxuICB9XG4gIGZzLndyaXRlRmlsZVN5bmMob3V0cHV0UGF0aCwgY29udGVudCwgJ3V0Zi04Jylcbn1cblxuLy8g4pSA4pSA4pSAIFB1YmxpYyBBUEkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZShvcHRpb25zOiBHZW5lcmF0ZU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgY29uZmlnID0gbG9hZENvbmZpZygpXG5cbiAgaWYgKG9wdGlvbnMub3V0cHV0ID09PSAnYWxsJykge1xuICAgIC8vIEdlbmVyYXRlIGFsbCB0YXJnZXRzXG4gICAgY29uc3QgdGFyZ2V0cyA9IGdldEFsbFRhcmdldHMoKVxuICAgIGZvciAoY29uc3QgdGFyZ2V0IG9mIHRhcmdldHMpIHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBnZW5lcmF0ZUNvbnRlbnQodGFyZ2V0LmZvcm1hdCwgY29uZmlnKVxuICAgICAgY29uc3Qgb3V0cHV0UGF0aCA9IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCB0YXJnZXQub3V0cHV0KVxuICAgICAgd3JpdGVPdXRwdXQoY29udGVudCwgb3V0cHV0UGF0aClcbiAgICAgIGNvbnNvbGUubG9nKGDinJMgR2VuZXJhdGVkICR7dGFyZ2V0Lm91dHB1dH1gKVxuICAgIH1cbiAgICBjb25zb2xlLmxvZyhgICBDYW5vbiB2JHt2ZXJzaW9ufSDigJQgJHtwYXR0ZXJucy5sZW5ndGh9IHBhdHRlcm5zLCAke2d1YXJhbnRlZXMubGVuZ3RofSBndWFyYW50ZWVzYClcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICBjb25zb2xlLmxvZyhgICBUZW1wbGF0ZSBjb25maWc6ICR7Y29uZmlnLm5hbWV9YClcbiAgICB9XG4gIH0gZWxzZSBpZiAob3B0aW9ucy5vdXRwdXQgPT09ICctJykge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBnZW5lcmF0ZUNvbnRlbnQob3B0aW9ucy5mb3JtYXQsIGNvbmZpZylcbiAgICBjb25zb2xlLmxvZyhjb250ZW50KVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBnZW5lcmF0ZUNvbnRlbnQob3B0aW9ucy5mb3JtYXQsIGNvbmZpZylcbiAgICBjb25zdCBvdXRwdXRQYXRoID0gcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIG9wdGlvbnMub3V0cHV0KVxuICAgIHdyaXRlT3V0cHV0KGNvbnRlbnQsIG91dHB1dFBhdGgpXG4gICAgY29uc29sZS5sb2coYOKckyBHZW5lcmF0ZWQgJHtvcHRpb25zLm91dHB1dH0gZnJvbSBDYW5vbiB2JHt2ZXJzaW9ufWApXG4gICAgY29uc29sZS5sb2coYCAgJHtwYXR0ZXJucy5sZW5ndGh9IHBhdHRlcm5zLCAke2d1YXJhbnRlZXMubGVuZ3RofSBndWFyYW50ZWVzYClcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICBjb25zb2xlLmxvZyhgICBUZW1wbGF0ZSBjb25maWc6ICR7Y29uZmlnLm5hbWV9YClcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/dist/cli/index.js
CHANGED
|
@@ -25,7 +25,7 @@ ${colors.bold}Usage:${colors.reset}
|
|
|
25
25
|
gallop <command> [options]
|
|
26
26
|
|
|
27
27
|
${colors.bold}Commands:${colors.reset}
|
|
28
|
-
audit [path] Check Canon compliance (default: src/
|
|
28
|
+
audit [path] Check Canon compliance (default: src/)
|
|
29
29
|
generate [output] Generate AI rules from Canon
|
|
30
30
|
version Show version information
|
|
31
31
|
help Show this help message
|
|
@@ -68,7 +68,7 @@ function detectFormat(filename) {
|
|
|
68
68
|
async function main() {
|
|
69
69
|
switch (command) {
|
|
70
70
|
case 'audit':
|
|
71
|
-
const auditPath = args[1] && !args[1].startsWith('--') ? args[1] : 'src/
|
|
71
|
+
const auditPath = args[1] && !args[1].startsWith('--') ? args[1] : 'src/';
|
|
72
72
|
const auditOptions = {
|
|
73
73
|
strict: args.includes('--strict'),
|
|
74
74
|
json: args.includes('--json'),
|
|
@@ -127,4 +127,4 @@ main().catch((error) => {
|
|
|
127
127
|
console.error('Error:', error.message);
|
|
128
128
|
process.exit(1);
|
|
129
129
|
});
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFckMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBRXZCLDZCQUE2QjtBQUM3QixNQUFNLE1BQU0sR0FBRztJQUNiLEtBQUssRUFBRSxTQUFTO0lBQ2hCLElBQUksRUFBRSxTQUFTO0lBQ2YsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsVUFBVTtJQUNmLEtBQUssRUFBRSxVQUFVO0lBQ2pCLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLElBQUksRUFBRSxVQUFVO0lBQ2hCLE9BQU8sRUFBRSxVQUFVO0lBQ25CLElBQUksRUFBRSxVQUFVO0NBQ2pCLENBQUE7QUFFRCxTQUFTLFFBQVE7SUFDZixPQUFPLENBQUMsR0FBRyxDQUFDO0VBQ1osTUFBTSxDQUFDLElBQUksYUFBYSxNQUFNLENBQUMsS0FBSztFQUNwQyxNQUFNLENBQUMsR0FBRyxrQkFBa0IsT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLOztFQUVsRCxNQUFNLENBQUMsSUFBSSxTQUFTLE1BQU0sQ0FBQyxLQUFLOzs7RUFHaEMsTUFBTSxDQUFDLElBQUksWUFBWSxNQUFNLENBQUMsS0FBSzs7Ozs7O0VBTW5DLE1BQU0sQ0FBQyxJQUFJLGlCQUFpQixNQUFNLENBQUMsS0FBSzs7OztFQUl4QyxNQUFNLENBQUMsSUFBSSxvQkFBb0IsTUFBTSxDQUFDLEtBQUs7Ozs7Ozs7RUFPM0Ms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LENBQUM7UUFDZixLQUFLLElBQUksQ0FBQztRQUNWLEtBQUssV0FBVztZQUNkLFdBQVcsRUFBRSxDQUFBO1lBQ2IsTUFBSztRQUVQLEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxJQUFJLENBQUM7UUFDVixLQUFLLFFBQVEsQ0FBQztRQUNkLEtBQUssU0FBUztZQUNaLFFBQVEsRUFBRSxDQUFBO1lBQ1YsTUFBSztRQUVQO1lBQ0UsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsT0FBTyxFQUFFLENBQUMsQ0FBQTtZQUM1QyxPQUFPLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUE7WUFDekQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNuQixDQUFDO0FBQ0gsQ0FBQztBQUVELElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQ3JCLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN0QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ2pCLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuXG5pbXBvcnQgeyBhdWRpdCB9IGZyb20gJy4vY29tbWFuZHMvYXVkaXQuanMnXG5pbXBvcnQgeyBnZW5lcmF0ZSB9IGZyb20gJy4vY29tbWFuZHMvZ2VuZXJhdGUuanMnXG5pbXBvcnQgeyB2ZXJzaW9uIH0gZnJvbSAnLi4vaW5kZXguanMnXG5cbmNvbnN0IGFyZ3MgPSBwcm9jZXNzLmFyZ3Yuc2xpY2UoMilcbmNvbnN0IGNvbW1hbmQgPSBhcmdzWzBdXG5cbi8vIENvbG9ycyBmb3IgdGVybWluYWwgb3V0cHV0XG5jb25zdCBjb2xvcnMgPSB7XG4gIHJlc2V0OiAnXFx4MWJbMG0nLFxuICBib2xkOiAnXFx4MWJbMW0nLFxuICBkaW06ICdcXHgxYlsybScsXG4gIHJlZDogJ1xceDFiWzMxbScsXG4gIGdyZWVuOiAnXFx4MWJbMzJtJyxcbiAgeWVsbG93OiAnXFx4MWJbMzNtJyxcbiAgYmx1ZTogJ1xceDFiWzM0bScsXG4gIG1hZ2VudGE6ICdcXHgxYlszNW0nLFxuICBjeWFuOiAnXFx4MWJbMzZtJyxcbn1cblxuZnVuY3Rpb24gc2hvd0hlbHAoKSB7XG4gIGNvbnNvbGUubG9nKGBcbiR7Y29sb3JzLmJvbGR9R2FsbG9wIENMSSR7Y29sb3JzLnJlc2V0fSAtIENhbm9uIENvbXBsaWFuY2UgVG9vbGluZ1xuJHtjb2xvcnMuZGltfUNhbm9uIFZlcnNpb246ICR7dmVyc2lvbn0ke2NvbG9ycy5yZXNldH1cblxuJHtjb2xvcnMuYm9sZH1Vc2FnZToke2NvbG9ycy5yZXNldH1cbiAgZ2FsbG9wIDxjb21tYW5kPiBbb3B0aW9uc11cblxuJHtjb2xvcnMuYm9sZH1Db21tYW5kczoke2NvbG9ycy5yZXNldH1cbiAgYXVkaXQgW3BhdGhdICAgICAgIENoZWNrIENhbm9uIGNvbXBsaWFuY2UgKGRlZmF1bHQ6IHNyYy8pXG4gIGdlbmVyYXRlIFtvdXRwdXRdICBHZW5lcmF0ZSBBSSBydWxlcyBmcm9tIENhbm9uXG4gIHZlcnNpb24gICAgICAgICAgICBTaG93IHZlcnNpb24gaW5mb3JtYXRpb25cbiAgaGVscCAgICAgICAgICAgICAgIFNob3cgdGhpcyBoZWxwIG1lc3NhZ2VcblxuJHtjb2xvcnMuYm9sZH1BdWRpdCBPcHRpb25zOiR7Y29sb3JzLnJlc2V0fVxuICAtLXN0cmljdCAgICAgICAgICAgRXhpdCB3aXRoIGVycm9yIGNvZGUgb24gdmlvbGF0aW9uc1xuICAtLWpzb24gICAgICAgICAgICAgT3V0cHV0IGFzIEpTT05cblxuJHtjb2xvcnMuYm9sZH1HZW5lcmF0ZSBPcHRpb25zOiR7Y29sb3JzLnJlc2V0fVxuICBnYWxsb3AgZ2VuZXJhdGUgICAgICAgICAgICAgICAgICBHZW5lcmF0ZSBhbGwgZmlsZXMgKC5jdXJzb3JydWxlcywgQ0xBVURFLm1kLCBjb3BpbG90LWluc3RydWN0aW9ucy5tZClcbiAgZ2FsbG9wIGdlbmVyYXRlIC5jdXJzb3JydWxlcyAgICAgR2VuZXJhdGUgLmN1cnNvcnJ1bGVzIG9ubHlcbiAgZ2FsbG9wIGdlbmVyYXRlIENMQVVERS5tZCAgICAgICAgR2VuZXJhdGUgQ0xBVURFLm1kIG9ubHlcbiAgZ2FsbG9wIGdlbmVyYXRlIC5naXRodWIvY29waWxvdC1pbnN0cnVjdGlvbnMubWRcbiAgLS1vdXRwdXQsIC1vICAgICAgIE91dHB1dCBmaWxlIHBhdGhcblxuJHtjb2xvcnMuYm9sZH1FeGFtcGxlczoke2NvbG9ycy5yZXNldH1cbiAgZ2FsbG9wIGF1ZGl0XG4gIGdhbGxvcCBhdWRpdCBzcmMvYmxvY2tzLyAtLXN0cmljdFxuICBnYWxsb3AgZ2VuZXJhdGVcbiAgZ2FsbG9wIGdlbmVyYXRlIC5jdXJzb3JydWxlc1xuICBnYWxsb3AgZ2VuZXJhdGUgQ0xBVURFLm1kXG4gIGdhbGxvcCBnZW5lcmF0ZSAtLW91dHB1dCAuZ2l0aHViL2NvcGlsb3QtaW5zdHJ1Y3Rpb25zLm1kXG5gKVxufVxuXG5mdW5jdGlvbiBzaG93VmVyc2lvbigpIHtcbiAgY29uc29sZS5sb2coYEdhbGxvcCBDTEkgdjEuMC4wYClcbiAgY29uc29sZS5sb2coYENhbm9uIHYke3ZlcnNpb259YClcbn1cblxuLyoqXG4gKiBEZXRlY3Qgb3V0cHV0IGZvcm1hdCBmcm9tIGZpbGVuYW1lXG4gKi9cbmZ1bmN0aW9uIGRldGVjdEZvcm1hdChmaWxlbmFtZTogc3RyaW5nKTogJ2N1cnNvcnJ1bGVzJyB8ICdjbGF1ZGUnIHwgJ2NvcGlsb3QnIHtcbiAgY29uc3QgbG93ZXIgPSBmaWxlbmFtZS50b0xvd2VyQ2FzZSgpXG4gIGlmIChsb3dlci5lbmRzV2l0aCgnY2xhdWRlLm1kJykpIHJldHVybiAnY2xhdWRlJ1xuICBpZiAobG93ZXIuZW5kc1dpdGgoJ2NvcGlsb3QtaW5zdHJ1Y3Rpb25zLm1kJykpIHJldHVybiAnY29waWxvdCdcbiAgcmV0dXJuICdjdXJzb3JydWxlcydcbn1cblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgc3dpdGNoIChjb21tYW5kKSB7XG4gICAgY2FzZSAnYXVkaXQnOlxuICAgICAgY29uc3QgYXVkaXRQYXRoID1cbiAgICAgICAgYXJnc1sxXSAmJiAhYXJnc1sxXS5zdGFydHNXaXRoKCctLScpID8gYXJnc1sxXSA6ICdzcmMvJ1xuICAgICAgY29uc3QgYXVkaXRPcHRpb25zID0ge1xuICAgICAgICBzdHJpY3Q6IGFyZ3MuaW5jbHVkZXMoJy0tc3RyaWN0JyksXG4gICAgICAgIGpzb246IGFyZ3MuaW5jbHVkZXMoJy0tanNvbicpLFxuICAgICAgICBmaXg6IGFyZ3MuaW5jbHVkZXMoJy0tZml4JyksXG4gICAgICB9XG4gICAgICBhd2FpdCBhdWRpdChhdWRpdFBhdGgsIGF1ZGl0T3B0aW9ucylcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlICdnZW5lcmF0ZSc6IHtcbiAgICAgIC8vIEZpbmQgb3V0cHV0IHBhdGggZnJvbSBhcmdzXG4gICAgICBjb25zdCBvdXRwdXRJbmRleCA9IGFyZ3MuaW5kZXhPZignLS1vdXRwdXQnKVxuICAgICAgY29uc3Qgb3V0cHV0SW5kZXhTaG9ydCA9IGFyZ3MuaW5kZXhPZignLW8nKVxuICAgICAgbGV0IG91dHB1dFBhdGg6IHN0cmluZyB8IG51bGwgPSBudWxsXG5cbiAgICAgIGlmIChvdXRwdXRJbmRleCAhPT0gLTEgJiYgYXJnc1tvdXRwdXRJbmRleCArIDFdKSB7XG4gICAgICAgIG91dHB1dFBhdGggPSBhcmdzW291dHB1dEluZGV4ICsgMV1cbiAgICAgIH0gZWxzZSBpZiAob3V0cHV0SW5kZXhTaG9ydCAhPT0gLTEgJiYgYXJnc1tvdXRwdXRJbmRleFNob3J0ICsgMV0pIHtcbiAgICAgICAgb3V0cHV0UGF0aCA9IGFyZ3Nbb3V0cHV0SW5kZXhTaG9ydCArIDFdXG4gICAgICB9IGVsc2UgaWYgKGFyZ3NbMV0gJiYgIWFyZ3NbMV0uc3RhcnRzV2l0aCgnLS0nKSkge1xuICAgICAgICBvdXRwdXRQYXRoID0gYXJnc1sxXVxuICAgICAgfVxuXG4gICAgICBpZiAob3V0cHV0UGF0aCkge1xuICAgICAgICAvLyBTaW5nbGUtZmlsZSBnZW5lcmF0aW9uXG4gICAgICAgIGF3YWl0IGdlbmVyYXRlKHtcbiAgICAgICAgICBvdXRwdXQ6IG91dHB1dFBhdGgsXG4gICAgICAgICAgZm9ybWF0OiBkZXRlY3RGb3JtYXQob3V0cHV0UGF0aCksXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBObyBhcmdzIOKGkiBnZW5lcmF0ZSBhbGwgZmlsZXNcbiAgICAgICAgYXdhaXQgZ2VuZXJhdGUoe1xuICAgICAgICAgIG91dHB1dDogJ2FsbCcsXG4gICAgICAgICAgZm9ybWF0OiAnY3Vyc29ycnVsZXMnLCAvLyB1bnVzZWQgd2hlbiBvdXRwdXQgaXMgJ2FsbCdcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAndmVyc2lvbic6XG4gICAgY2FzZSAnLXYnOlxuICAgIGNhc2UgJy0tdmVyc2lvbic6XG4gICAgICBzaG93VmVyc2lvbigpXG4gICAgICBicmVha1xuXG4gICAgY2FzZSAnaGVscCc6XG4gICAgY2FzZSAnLWgnOlxuICAgIGNhc2UgJy0taGVscCc6XG4gICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICBzaG93SGVscCgpXG4gICAgICBicmVha1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFVua25vd24gY29tbWFuZDogJHtjb21tYW5kfWApXG4gICAgICBjb25zb2xlLmVycm9yKGBSdW4gJ2dhbGxvcCBoZWxwJyBmb3IgdXNhZ2UgaW5mb3JtYXRpb24uYClcbiAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9XG59XG5cbm1haW4oKS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyb3IubWVzc2FnZSlcbiAgcHJvY2Vzcy5leGl0KDEpXG59KVxuIl19
|
|
@@ -3,6 +3,13 @@ import { getCanonUrl, getCanonPattern } from '../utils/canon.js';
|
|
|
3
3
|
const RULE_NAME = 'block-naming-convention';
|
|
4
4
|
const pattern = getCanonPattern(RULE_NAME);
|
|
5
5
|
const createRule = ESLintUtils.RuleCreator(() => getCanonUrl(RULE_NAME));
|
|
6
|
+
/**
|
|
7
|
+
* Check if file is in a co-located _blocks/ directory (new structure)
|
|
8
|
+
* In _blocks/, files like hero.tsx (no number) are valid
|
|
9
|
+
*/
|
|
10
|
+
function isColocatedBlock(filename) {
|
|
11
|
+
return filename.includes('/_blocks/') || filename.includes('\\_blocks\\');
|
|
12
|
+
}
|
|
6
13
|
/**
|
|
7
14
|
* Converts a block filename to its expected PascalCase export name
|
|
8
15
|
* e.g., "hero-5" -> "Hero5", "section-10" -> "Section10", "content-39" -> "Content39"
|
|
@@ -53,8 +60,10 @@ export default createRule({
|
|
|
53
60
|
defaultOptions: [],
|
|
54
61
|
create(context) {
|
|
55
62
|
const filename = context.filename || context.getFilename();
|
|
56
|
-
// Only check files in src/blocks/
|
|
57
|
-
|
|
63
|
+
// Only check files in src/blocks/ or _blocks/
|
|
64
|
+
const isBlockFile = filename.includes('/blocks/') || filename.includes('/_blocks/') ||
|
|
65
|
+
filename.includes('\\blocks\\') || filename.includes('\\_blocks\\');
|
|
66
|
+
if (!isBlockFile) {
|
|
58
67
|
return {};
|
|
59
68
|
}
|
|
60
69
|
// Extract just the filename (e.g., "hero-5.tsx")
|
|
@@ -70,8 +79,9 @@ export default createRule({
|
|
|
70
79
|
if (node.declaration.type === 'FunctionDeclaration' && node.declaration.id) {
|
|
71
80
|
const actualName = node.declaration.id.name;
|
|
72
81
|
if (actualName !== expectedName) {
|
|
73
|
-
//
|
|
74
|
-
|
|
82
|
+
// In co-located _blocks/, names without numbers are valid
|
|
83
|
+
// Only flag missing numbers in the legacy src/blocks/ directory
|
|
84
|
+
if (!hasTrailingNumber(actualName) && !isColocatedBlock(filename)) {
|
|
75
85
|
// No number - suggest adding one
|
|
76
86
|
const suggestedFilename = pascalCaseToFilename(actualName);
|
|
77
87
|
context.report({
|
|
@@ -84,7 +94,7 @@ export default createRule({
|
|
|
84
94
|
},
|
|
85
95
|
});
|
|
86
96
|
}
|
|
87
|
-
else {
|
|
97
|
+
else if (actualName !== expectedName) {
|
|
88
98
|
// Has number but doesn't match filename
|
|
89
99
|
const suggestedFilename = pascalCaseToFilename(actualName);
|
|
90
100
|
context.report({
|
|
@@ -104,4 +114,4 @@ export default createRule({
|
|
|
104
114
|
};
|
|
105
115
|
},
|
|
106
116
|
});
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stbmFtaW5nLWNvbnZlbnRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXNsaW50L3J1bGVzL2Jsb2NrLW5hbWluZy1jb252ZW50aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRWhFLE1BQU0sU0FBUyxHQUFHLHlCQUF5QixDQUFBO0FBQzNDLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUUxQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO0FBSXhFOzs7R0FHRztBQUNILFNBQVMsb0JBQW9CLENBQUMsUUFBZ0I7SUFDNUMsd0NBQXdDO0lBQ3hDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRWhELHlDQUF5QztJQUN6QyxPQUFPLFFBQVE7U0FDWixLQUFLLENBQUMsR0FBRyxDQUFDO1NBQ1YsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDWix1Q0FBdUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDckQsQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQ2IsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsb0JBQW9CLENBQUMsSUFBWTtJQUN4QyxPQUFPLElBQUk7UUFDVCw0REFBNEQ7U0FDM0QsT0FBTyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQztRQUNwQywr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dEIsUUFBUSxFQUFFLGFBQWE7b0NBQ3ZCLGlCQUFpQjtpQ0FDbEI7NkJBQ0YsQ0FBQyxDQUFBO3dCQUNKLENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUE7SUFDSCxDQUFDO0NBQ0YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRVNMaW50VXRpbHMgfSBmcm9tICdAdHlwZXNjcmlwdC1lc2xpbnQvdXRpbHMnXG5pbXBvcnQgeyBnZXRDYW5vblVybCwgZ2V0Q2Fub25QYXR0ZXJuIH0gZnJvbSAnLi4vdXRpbHMvY2Fub24uanMnXG5cbmNvbnN0IFJVTEVfTkFNRSA9ICdibG9jay1uYW1pbmctY29udmVudGlvbidcbmNvbnN0IHBhdHRlcm4gPSBnZXRDYW5vblBhdHRlcm4oUlVMRV9OQU1FKVxuXG5jb25zdCBjcmVhdGVSdWxlID0gRVNMaW50VXRpbHMuUnVsZUNyZWF0b3IoKCkgPT4gZ2V0Q2Fub25VcmwoUlVMRV9OQU1FKSlcblxudHlwZSBNZXNzYWdlSWRzID0gJ2Jsb2NrTmFtaW5nTWlzbWF0Y2gnIHwgJ2Jsb2NrTmFtaW5nTm9OdW1iZXInXG5cbi8qKlxuICogQ29udmVydHMgYSBibG9jayBmaWxlbmFtZSB0byBpdHMgZXhwZWN0ZWQgUGFzY2FsQ2FzZSBleHBvcnQgbmFtZVxuICogZS5nLiwgXCJoZXJvLTVcIiAtPiBcIkhlcm81XCIsIFwic2VjdGlvbi0xMFwiIC0+IFwiU2VjdGlvbjEwXCIsIFwiY29udGVudC0zOVwiIC0+IFwiQ29udGVudDM5XCJcbiAqL1xuZnVuY3Rpb24gZmlsZW5hbWVUb1Bhc2NhbENhc2UoZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIFJlbW92ZSBleHRlbnNpb24gYW5kIHNwbGl0IGJ5IGh5cGhlbnNcbiAgY29uc3QgYmFzZU5hbWUgPSBmaWxlbmFtZS5yZXBsYWNlKC9cXC50c3g/JC8sICcnKVxuICBcbiAgLy8gU3BsaXQgYnkgaHlwaGVucyBhbmQgY29udmVydCBlYWNoIHBhcnRcbiAgcmV0dXJuIGJhc2VOYW1lXG4gICAgLnNwbGl0KCctJylcbiAgICAubWFwKChwYXJ0KSA9PiB7XG4gICAgICAvLyBDYXBpdGFsaXplIGZpcnN0IGxldHRlciBvZiBlYWNoIHBhcnRcbiAgICAgIHJldHVybiBwYXJ0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcGFydC5zbGljZSgxKVxuICAgIH0pXG4gICAgLmpvaW4oJycpXG59XG5cbi8qKlxuICogQ29udmVydHMgYSBQYXNjYWxDYXNlIGV4cG9ydCBuYW1lIHRvIGtlYmFiLWNhc2UgZmlsZW5hbWVcbiAqIGUuZy4sIFwiQ29udGVudFwiIC0+IFwiY29udGVudFwiLCBcIkhlcm81XCIgLT4gXCJoZXJvLTVcIiwgXCJDYWxsVG9BY3Rpb24xXCIgLT4gXCJjYWxsLXRvLWFjdGlvbi0xXCJcbiAqL1xuZnVuY3Rpb24gcGFzY2FsQ2FzZVRvRmlsZW5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5hbWVcbiAgICAvLyBJbnNlcnQgaHlwaGVuIGJlZm9yZSB1cHBlcmNhc2UgbGV0dGVycyAoYnV0IG5vdCBhdCBzdGFydClcbiAgICAucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywgJyQxLSQyJylcbiAgICAvLyBJbnNlcnQgaHlwaGVuIGJlZm9yZSBudW1iZXJzXG4gICAgLnJlcGxhY2UoLyhbYS16QS1aXSkoXFxkKS9nLCAnJDEtJDInKVxuICAgIC50b0xvd2VyQ2FzZSgpXG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBuYW1lIGVuZHMgd2l0aCBhIG51bWJlclxuICovXG5mdW5jdGlvbiBoYXNUcmFpbGluZ051bWJlcihuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIC9cXGQrJC8udGVzdChuYW1lKVxufVxuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVSdWxlPFtdLCBNZXNzYWdlSWRzPih7XG4gIG5hbWU6IFJVTEVfTkFNRSxcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjogcGF0dGVybj8uc3VtbWFyeSB8fCAnQmxvY2sgZXhwb3J0IG5hbWVzIG11c3QgbWF0Y2ggZmlsZW5hbWUgcGF0dGVybicsXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgYmxvY2tOYW1pbmdNaXNtYXRjaDogYFtDYW5vbiAke3BhdHRlcm4/LmlkIHx8ICcwMDYnfV0gQmxvY2sgZXhwb3J0IFwie3thY3R1YWx9fVwiIHNob3VsZCBiZSBcInt7ZXhwZWN0ZWR9fVwiIHRvIG1hdGNoIHRoZSBmaWxlbmFtZSBcInt7ZmlsZW5hbWV9fVwiLiBPciByZW5hbWUgdGhlIGZpbGUgdG8gXCJ7e3N1Z2dlc3RlZEZpbGVuYW1lfX0udHN4XCIuIFNlZTogJHtwYXR0ZXJuPy50aXRsZSB8fCAnQmxvY2sgTmFtaW5nJ30gcGF0dGVybi5gLFxuICAgICAgYmxvY2tOYW1pbmdOb051bWJlcjogYFtDYW5vbiAke3BhdHRlcm4/LmlkIHx8ICcwMDYnfV0gQmxvY2sgZXhwb3J0IFwie3thY3R1YWx9fVwiIG11c3QgZW5kIHdpdGggYSBudW1iZXIgKGUuZy4sIFwie3thY3R1YWx9fTFcIikuIFJlbmFtZSB0byBcInt7c3VnZ2VzdGVkfX1cIiBvciByZW5hbWUgZmlsZSB0byBcInt7c3VnZ2VzdGVkRmlsZW5hbWV9fS17bn0udHN4XCIuIFNlZTogJHtwYXR0ZXJuPy50aXRsZSB8fCAnQmxvY2sgTmFtaW5nJ30gcGF0dGVybi5gLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcbiAgZGVmYXVsdE9wdGlvbnM6IFtdLFxuICBjcmVhdGUoY29udGV4dCkge1xuICAgIGNvbnN0IGZpbGVuYW1lID0gY29udGV4dC5maWxlbmFtZSB8fCBjb250ZXh0LmdldEZpbGVuYW1lKClcblxuICAgIC8vIE9ubHkgY2hlY2sgZmlsZXMgaW4gc3JjL2Jsb2Nrcy9cbiAgICBpZiAoIWZpbGVuYW1lLmluY2x1ZGVzKCcvYmxvY2tzLycpICYmICFmaWxlbmFtZS5pbmNsdWRlcygnXFxcXGJsb2Nrc1xcXFwnKSkge1xuICAgICAgcmV0dXJuIHt9XG4gICAgfVxuXG4gICAgLy8gRXh0cmFjdCBqdXN0IHRoZSBmaWxlbmFtZSAoZS5nLiwgXCJoZXJvLTUudHN4XCIpXG4gICAgY29uc3QgbWF0Y2ggPSBmaWxlbmFtZS5tYXRjaCgvKFteL1xcXFxdK1xcLnRzeD8pJC8pXG4gICAgaWYgKCFtYXRjaCkge1xuICAgICAgcmV0dXJuIHt9XG4gICAgfVxuXG4gICAgY29uc3QgYmxvY2tGaWxlbmFtZSA9IG1hdGNoWzFdXG4gICAgY29uc3QgZXhwZWN0ZWROYW1lID0gZmlsZW5hbWVUb1Bhc2NhbENhc2UoYmxvY2tGaWxlbmFtZSlcblxuICAgIHJldHVybiB7XG4gICAgICAvLyBDaGVjayBleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkZWNsYXJhdGlvbnNcbiAgICAgIEV4cG9ydERlZmF1bHREZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uLnR5cGUgPT09ICdGdW5jdGlvbkRlY2xhcmF0aW9uJyAmJiBub2RlLmRlY2xhcmF0aW9uLmlkKSB7XG4gICAgICAgICAgY29uc3QgYWN0dWFsTmFtZSA9IG5vZGUuZGVjbGFyYXRpb24uaWQubmFtZVxuICAgICAgICAgIFxuICAgICAgICAgIGlmIChhY3R1YWxOYW1lICE9PSBleHBlY3RlZE5hbWUpIHtcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBleHBvcnQgbmFtZSBoYXMgYSB0cmFpbGluZyBudW1iZXJcbiAgICAgICAgICAgIGlmICghaGFzVHJhaWxpbmdOdW1iZXIoYWN0dWFsTmFtZSkpIHtcbiAgICAgICAgICAgICAgLy8gTm8gbnVtYmVyIC0gc3VnZ2VzdCBhZGRpbmcgb25lXG4gICAgICAgICAgICAgIGNvbnN0IHN1Z2dlc3RlZEZpbGVuYW1lID0gcGFzY2FsQ2FzZVRvRmlsZW5hbWUoYWN0dWFsTmFtZSlcbiAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgIG5vZGU6IG5vZGUuZGVjbGFyYXRpb24uaWQsXG4gICAgICAgICAgICAgICAgbWVzc2FnZUlkOiAnYmxvY2tOYW1pbmdOb051bWJlcicsXG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgYWN0dWFsOiBhY3R1YWxOYW1lLFxuICAgICAgICAgICAgICAgICAgc3VnZ2VzdGVkOiBgJHthY3R1YWxOYW1lfTFgLFxuICAgICAgICAgICAgICAgICAgc3VnZ2VzdGVkRmlsZW5hbWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIEhhcyBudW1iZXIgYnV0IGRvZXNuJ3QgbWF0Y2ggZmlsZW5hbWVcbiAgICAgICAgICAgICAgY29uc3Qgc3VnZ2VzdGVkRmlsZW5hbWUgPSBwYXNjYWxDYXNlVG9GaWxlbmFtZShhY3R1YWxOYW1lKVxuICAgICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgICAgbm9kZTogbm9kZS5kZWNsYXJhdGlvbi5pZCxcbiAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdibG9ja05hbWluZ01pc21hdGNoJyxcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICBhY3R1YWw6IGFjdHVhbE5hbWUsXG4gICAgICAgICAgICAgICAgICBleHBlY3RlZDogZXhwZWN0ZWROYW1lLFxuICAgICAgICAgICAgICAgICAgZmlsZW5hbWU6IGJsb2NrRmlsZW5hbWUsXG4gICAgICAgICAgICAgICAgICBzdWdnZXN0ZWRGaWxlbmFtZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59KVxuIl19
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stbmFtaW5nLWNvbnZlbnRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXNsaW50L3J1bGVzL2Jsb2NrLW5hbWluZy1jb252ZW50aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRWhFLE1BQU0sU0FBUyxHQUFHLHlCQUF5QixDQUFBO0FBQzNDLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUUxQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO0FBSXhFOzs7R0FHRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsUUFBZ0I7SUFDeEMsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDM0UsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsb0JBQW9CLENBQUMsUUFBZ0I7SUFDNUMsd0NBQXdDO0lBQ3hDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRWhELHlDQUF5QztJQUN6QyxPQUFPLFFBQVE7U0FDWixLQUFLLENBQUMsR0FBRyxDQUFDO1NBQ1YsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDWix1Q0FBdUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDckQsQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUFDLEVBQUUs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M0IsaUJBQWlCO2lDQUNsQjs2QkFDRixDQUFDLENBQUE7d0JBQ0osQ0FBQzs2QkFBTSxJQUFJLFVBQVUsS0FBSyxZQUFZLEVBQUUsQ0FBQzs0QkFDdkMsd0NBQXdDOzRCQUN4QyxNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFBOzRCQUMxRCxPQUFPLENBQUMsTUFBTSxDQUFDO2dDQUNiLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0NBQ3pCLFNBQVMsRUFBRSxxQkFBcUI7Z0NBQ2hDLElBQUksRUFBRTtvQ0FDSixNQUFNLEVBQUUsVUFBVTtvQ0FDbEIsUUFBUSxFQUFFLFlBQVk7b0NBQ3RCLFFBQVEsRUFBRSxhQUFhO29DQUN2QixpQkFBaUI7aUNBQ2xCOzZCQUNGLENBQUMsQ0FBQTt3QkFDSixDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7U0FDRixDQUFBO0lBQ0gsQ0FBQztDQUNGLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVTTGludFV0aWxzIH0gZnJvbSAnQHR5cGVzY3JpcHQtZXNsaW50L3V0aWxzJ1xuaW1wb3J0IHsgZ2V0Q2Fub25VcmwsIGdldENhbm9uUGF0dGVybiB9IGZyb20gJy4uL3V0aWxzL2Nhbm9uLmpzJ1xuXG5jb25zdCBSVUxFX05BTUUgPSAnYmxvY2stbmFtaW5nLWNvbnZlbnRpb24nXG5jb25zdCBwYXR0ZXJuID0gZ2V0Q2Fub25QYXR0ZXJuKFJVTEVfTkFNRSlcblxuY29uc3QgY3JlYXRlUnVsZSA9IEVTTGludFV0aWxzLlJ1bGVDcmVhdG9yKCgpID0+IGdldENhbm9uVXJsKFJVTEVfTkFNRSkpXG5cbnR5cGUgTWVzc2FnZUlkcyA9ICdibG9ja05hbWluZ01pc21hdGNoJyB8ICdibG9ja05hbWluZ05vTnVtYmVyJ1xuXG4vKipcbiAqIENoZWNrIGlmIGZpbGUgaXMgaW4gYSBjby1sb2NhdGVkIF9ibG9ja3MvIGRpcmVjdG9yeSAobmV3IHN0cnVjdHVyZSlcbiAqIEluIF9ibG9ja3MvLCBmaWxlcyBsaWtlIGhlcm8udHN4IChubyBudW1iZXIpIGFyZSB2YWxpZFxuICovXG5mdW5jdGlvbiBpc0NvbG9jYXRlZEJsb2NrKGZpbGVuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGZpbGVuYW1lLmluY2x1ZGVzKCcvX2Jsb2Nrcy8nKSB8fCBmaWxlbmFtZS5pbmNsdWRlcygnXFxcXF9ibG9ja3NcXFxcJylcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGJsb2NrIGZpbGVuYW1lIHRvIGl0cyBleHBlY3RlZCBQYXNjYWxDYXNlIGV4cG9ydCBuYW1lXG4gKiBlLmcuLCBcImhlcm8tNVwiIC0+IFwiSGVybzVcIiwgXCJzZWN0aW9uLTEwXCIgLT4gXCJTZWN0aW9uMTBcIiwgXCJjb250ZW50LTM5XCIgLT4gXCJDb250ZW50MzlcIlxuICovXG5mdW5jdGlvbiBmaWxlbmFtZVRvUGFzY2FsQ2FzZShmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gUmVtb3ZlIGV4dGVuc2lvbiBhbmQgc3BsaXQgYnkgaHlwaGVuc1xuICBjb25zdCBiYXNlTmFtZSA9IGZpbGVuYW1lLnJlcGxhY2UoL1xcLnRzeD8kLywgJycpXG4gIFxuICAvLyBTcGxpdCBieSBoeXBoZW5zIGFuZCBjb252ZXJ0IGVhY2ggcGFydFxuICByZXR1cm4gYmFzZU5hbWVcbiAgICAuc3BsaXQoJy0nKVxuICAgIC5tYXAoKHBhcnQpID0+IHtcbiAgICAgIC8vIENhcGl0YWxpemUgZmlyc3QgbGV0dGVyIG9mIGVhY2ggcGFydFxuICAgICAgcmV0dXJuIHBhcnQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBwYXJ0LnNsaWNlKDEpXG4gICAgfSlcbiAgICAuam9pbignJylcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIFBhc2NhbENhc2UgZXhwb3J0IG5hbWUgdG8ga2ViYWItY2FzZSBmaWxlbmFtZVxuICogZS5nLiwgXCJDb250ZW50XCIgLT4gXCJjb250ZW50XCIsIFwiSGVybzVcIiAtPiBcImhlcm8tNVwiLCBcIkNhbGxUb0FjdGlvbjFcIiAtPiBcImNhbGwtdG8tYWN0aW9uLTFcIlxuICovXG5mdW5jdGlvbiBwYXNjYWxDYXNlVG9GaWxlbmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbmFtZVxuICAgIC8vIEluc2VydCBoeXBoZW4gYmVmb3JlIHVwcGVyY2FzZSBsZXR0ZXJzIChidXQgbm90IGF0IHN0YXJ0KVxuICAgIC5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCAnJDEtJDInKVxuICAgIC8vIEluc2VydCBoeXBoZW4gYmVmb3JlIG51bWJlcnNcbiAgICAucmVwbGFjZSgvKFthLXpBLVpdKShcXGQpL2csICckMS0kMicpXG4gICAgLnRvTG93ZXJDYXNlKClcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIG5hbWUgZW5kcyB3aXRoIGEgbnVtYmVyXG4gKi9cbmZ1bmN0aW9uIGhhc1RyYWlsaW5nTnVtYmVyKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gL1xcZCskLy50ZXN0KG5hbWUpXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZVJ1bGU8W10sIE1lc3NhZ2VJZHM+KHtcbiAgbmFtZTogUlVMRV9OQU1FLFxuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiBwYXR0ZXJuPy5zdW1tYXJ5IHx8ICdCbG9jayBleHBvcnQgbmFtZXMgbXVzdCBtYXRjaCBmaWxlbmFtZSBwYXR0ZXJuJyxcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBibG9ja05hbWluZ01pc21hdGNoOiBgW0Nhbm9uICR7cGF0dGVybj8uaWQgfHwgJzAwNid9XSBCbG9jayBleHBvcnQgXCJ7e2FjdHVhbH19XCIgc2hvdWxkIGJlIFwie3tleHBlY3RlZH19XCIgdG8gbWF0Y2ggdGhlIGZpbGVuYW1lIFwie3tmaWxlbmFtZX19XCIuIE9yIHJlbmFtZSB0aGUgZmlsZSB0byBcInt7c3VnZ2VzdGVkRmlsZW5hbWV9fS50c3hcIi4gU2VlOiAke3BhdHRlcm4/LnRpdGxlIHx8ICdCbG9jayBOYW1pbmcnfSBwYXR0ZXJuLmAsXG4gICAgICBibG9ja05hbWluZ05vTnVtYmVyOiBgW0Nhbm9uICR7cGF0dGVybj8uaWQgfHwgJzAwNid9XSBCbG9jayBleHBvcnQgXCJ7e2FjdHVhbH19XCIgbXVzdCBlbmQgd2l0aCBhIG51bWJlciAoZS5nLiwgXCJ7e2FjdHVhbH19MVwiKS4gUmVuYW1lIHRvIFwie3tzdWdnZXN0ZWR9fVwiIG9yIHJlbmFtZSBmaWxlIHRvIFwie3tzdWdnZXN0ZWRGaWxlbmFtZX19LXtufS50c3hcIi4gU2VlOiAke3BhdHRlcm4/LnRpdGxlIHx8ICdCbG9jayBOYW1pbmcnfSBwYXR0ZXJuLmAsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuICBkZWZhdWx0T3B0aW9uczogW10sXG4gIGNyZWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3QgZmlsZW5hbWUgPSBjb250ZXh0LmZpbGVuYW1lIHx8IGNvbnRleHQuZ2V0RmlsZW5hbWUoKVxuXG4gICAgLy8gT25seSBjaGVjayBmaWxlcyBpbiBzcmMvYmxvY2tzLyBvciBfYmxvY2tzL1xuICAgIGNvbnN0IGlzQmxvY2tGaWxlID0gZmlsZW5hbWUuaW5jbHVkZXMoJy9ibG9ja3MvJykgfHwgZmlsZW5hbWUuaW5jbHVkZXMoJy9fYmxvY2tzLycpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZS5pbmNsdWRlcygnXFxcXGJsb2Nrc1xcXFwnKSB8fCBmaWxlbmFtZS5pbmNsdWRlcygnXFxcXF9ibG9ja3NcXFxcJylcbiAgICBpZiAoIWlzQmxvY2tGaWxlKSB7XG4gICAgICByZXR1cm4ge31cbiAgICB9XG5cbiAgICAvLyBFeHRyYWN0IGp1c3QgdGhlIGZpbGVuYW1lIChlLmcuLCBcImhlcm8tNS50c3hcIilcbiAgICBjb25zdCBtYXRjaCA9IGZpbGVuYW1lLm1hdGNoKC8oW14vXFxcXF0rXFwudHN4PykkLylcbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICByZXR1cm4ge31cbiAgICB9XG5cbiAgICBjb25zdCBibG9ja0ZpbGVuYW1lID0gbWF0Y2hbMV1cbiAgICBjb25zdCBleHBlY3RlZE5hbWUgPSBmaWxlbmFtZVRvUGFzY2FsQ2FzZShibG9ja0ZpbGVuYW1lKVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC8vIENoZWNrIGV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRlY2xhcmF0aW9uc1xuICAgICAgRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUuZGVjbGFyYXRpb24udHlwZSA9PT0gJ0Z1bmN0aW9uRGVjbGFyYXRpb24nICYmIG5vZGUuZGVjbGFyYXRpb24uaWQpIHtcbiAgICAgICAgICBjb25zdCBhY3R1YWxOYW1lID0gbm9kZS5kZWNsYXJhdGlvbi5pZC5uYW1lXG4gICAgICAgICAgXG4gICAgICAgICAgaWYgKGFjdHVhbE5hbWUgIT09IGV4cGVjdGVkTmFtZSkge1xuICAgICAgICAgICAgLy8gSW4gY28tbG9jYXRlZCBfYmxvY2tzLywgbmFtZXMgd2l0aG91dCBudW1iZXJzIGFyZSB2YWxpZFxuICAgICAgICAgICAgLy8gT25seSBmbGFnIG1pc3NpbmcgbnVtYmVycyBpbiB0aGUgbGVnYWN5IHNyYy9ibG9ja3MvIGRpcmVjdG9yeVxuICAgICAgICAgICAgaWYgKCFoYXNUcmFpbGluZ051bWJlcihhY3R1YWxOYW1lKSAmJiAhaXNDb2xvY2F0ZWRCbG9jayhmaWxlbmFtZSkpIHtcbiAgICAgICAgICAgICAgLy8gTm8gbnVtYmVyIC0gc3VnZ2VzdCBhZGRpbmcgb25lXG4gICAgICAgICAgICAgIGNvbnN0IHN1Z2dlc3RlZEZpbGVuYW1lID0gcGFzY2FsQ2FzZVRvRmlsZW5hbWUoYWN0dWFsTmFtZSlcbiAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgIG5vZGU6IG5vZGUuZGVjbGFyYXRpb24uaWQsXG4gICAgICAgICAgICAgICAgbWVzc2FnZUlkOiAnYmxvY2tOYW1pbmdOb051bWJlcicsXG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgYWN0dWFsOiBhY3R1YWxOYW1lLFxuICAgICAgICAgICAgICAgICAgc3VnZ2VzdGVkOiBgJHthY3R1YWxOYW1lfTFgLFxuICAgICAgICAgICAgICAgICAgc3VnZ2VzdGVkRmlsZW5hbWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYWN0dWFsTmFtZSAhPT0gZXhwZWN0ZWROYW1lKSB7XG4gICAgICAgICAgICAgIC8vIEhhcyBudW1iZXIgYnV0IGRvZXNuJ3QgbWF0Y2ggZmlsZW5hbWVcbiAgICAgICAgICAgICAgY29uc3Qgc3VnZ2VzdGVkRmlsZW5hbWUgPSBwYXNjYWxDYXNlVG9GaWxlbmFtZShhY3R1YWxOYW1lKVxuICAgICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgICAgbm9kZTogbm9kZS5kZWNsYXJhdGlvbi5pZCxcbiAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdibG9ja05hbWluZ01pc21hdGNoJyxcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICBhY3R1YWw6IGFjdHVhbE5hbWUsXG4gICAgICAgICAgICAgICAgICBleHBlY3RlZDogZXhwZWN0ZWROYW1lLFxuICAgICAgICAgICAgICAgICAgZmlsZW5hbWU6IGJsb2NrRmlsZW5hbWUsXG4gICAgICAgICAgICAgICAgICBzdWdnZXN0ZWRGaWxlbmFtZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59KVxuIl19
|
|
@@ -18,8 +18,10 @@ export default createRule({
|
|
|
18
18
|
defaultOptions: [],
|
|
19
19
|
create(context) {
|
|
20
20
|
const filename = context.filename || context.getFilename();
|
|
21
|
-
// Only check files in src/blocks/
|
|
22
|
-
|
|
21
|
+
// Only check files in src/blocks/ or _blocks/
|
|
22
|
+
const isBlockFile = filename.includes('/blocks/') || filename.includes('/_blocks/') ||
|
|
23
|
+
filename.includes('\\blocks\\') || filename.includes('\\_blocks\\');
|
|
24
|
+
if (!isBlockFile) {
|
|
23
25
|
return {};
|
|
24
26
|
}
|
|
25
27
|
return {
|
|
@@ -42,4 +44,4 @@ export default createRule({
|
|
|
42
44
|
};
|
|
43
45
|
},
|
|
44
46
|
});
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tY2xpZW50LWJsb2Nrcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lc2xpbnQvcnVsZXMvbm8tY2xpZW50LWJsb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUVoRSxNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQTtBQUNwQyxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUE7QUFFMUMsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtBQUl4RSxlQUFlLFVBQVUsQ0FBaUI7SUFDeEMsSUFBSSxFQUFFLFNBQVM7SUFDZixJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsWUFBWTtRQUNsQixJQUFJLEVBQUU7WUFDSixXQUFXLEVBQUUsT0FBTyxFQUFFLE9BQU8sSUFBSSxrQ0FBa0M7U0FDcEU7UUFDRCxRQUFRLEVBQUU7WUFDUixjQUFjLEVBQUUsVUFBVSxPQUFPLEVBQUUsRUFBRSxJQUFJLEtBQUssaUpBQWlKLE9BQU8sRUFBRSxLQUFLLElBQUkscUJBQXFCLFdBQVc7U0FDbFA7UUFDRCxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsY0FBYyxFQUFFLEVBQUU7SUFDbEIsTUFBTSxDQUFDLE9BQU87UUFDWixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUUxRCw4Q0FBOEM7UUFDOUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztZQUMvRCxRQUFRLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDdkYsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sRUFBRSxDQUFBO1FBQ1gsQ0FBQztRQUVELE9BQU87WUFDTCwwREFBMEQ7WUFDMUQsbUJBQW1CLENBQUMsSUFBSTtnQkFDdEIsSUFDRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxTQUFTO29CQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBSyxZQUFZLEVBQ3RDLENBQUM7b0JBQ0QsbUNBQW1DO29CQUNuQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUE7b0JBQ2hELE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7b0JBRTlDLE9BQU8sQ0FBQyxNQUFNLENBQUM7d0JBQ2IsSUFBSTt3QkFDSixTQUFTLEVBQUUsZ0JBQWdCO3dCQUMzQixJQUFJLEVBQUU7NEJBQ0osU0FBUzt5QkFDVjtxQkFDRixDQUFDLENBQUE7Z0JBQ0osQ0FBQztZQUNILENBQUM7U0FDRixDQUFBO0lBQ0gsQ0FBQztDQUNGLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVTTGludFV0aWxzIH0gZnJvbSAnQHR5cGVzY3JpcHQtZXNsaW50L3V0aWxzJ1xuaW1wb3J0IHsgZ2V0Q2Fub25VcmwsIGdldENhbm9uUGF0dGVybiB9IGZyb20gJy4uL3V0aWxzL2Nhbm9uLmpzJ1xuXG5jb25zdCBSVUxFX05BTUUgPSAnbm8tY2xpZW50LWJsb2NrcydcbmNvbnN0IHBhdHRlcm4gPSBnZXRDYW5vblBhdHRlcm4oUlVMRV9OQU1FKVxuXG5jb25zdCBjcmVhdGVSdWxlID0gRVNMaW50VXRpbHMuUnVsZUNyZWF0b3IoKCkgPT4gZ2V0Q2Fub25VcmwoUlVMRV9OQU1FKSlcblxudHlwZSBNZXNzYWdlSWRzID0gJ25vQ2xpZW50QmxvY2tzJ1xuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVSdWxlPFtdLCBNZXNzYWdlSWRzPih7XG4gIG5hbWU6IFJVTEVfTkFNRSxcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjogcGF0dGVybj8uc3VtbWFyeSB8fCAnQmxvY2tzIG11c3QgYmUgc2VydmVyIGNvbXBvbmVudHMnLFxuICAgIH0sXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIG5vQ2xpZW50QmxvY2tzOiBgW0Nhbm9uICR7cGF0dGVybj8uaWQgfHwgJzAwMSd9XSBCbG9jayBcInt7YmxvY2tOYW1lfX1cIiB1c2VzICd1c2UgY2xpZW50Jy4gRXh0cmFjdCBob29rcyBhbmQgY2xpZW50LXNpZGUgbG9naWMgaW50byBhIGNvbXBvbmVudCBpbiBzcmMvY29tcG9uZW50cy8sIHRoZW4gaW1wb3J0IGl0IGhlcmUuIFNlZTogJHtwYXR0ZXJuPy50aXRsZSB8fCAnU2VydmVyLUZpcnN0IEJsb2Nrcyd9IHBhdHRlcm4uYCxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG4gIGRlZmF1bHRPcHRpb25zOiBbXSxcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCBmaWxlbmFtZSA9IGNvbnRleHQuZmlsZW5hbWUgfHwgY29udGV4dC5nZXRGaWxlbmFtZSgpXG5cbiAgICAvLyBPbmx5IGNoZWNrIGZpbGVzIGluIHNyYy9ibG9ja3MvIG9yIF9ibG9ja3MvXG4gICAgY29uc3QgaXNCbG9ja0ZpbGUgPSBmaWxlbmFtZS5pbmNsdWRlcygnL2Jsb2Nrcy8nKSB8fCBmaWxlbmFtZS5pbmNsdWRlcygnL19ibG9ja3MvJykgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLmluY2x1ZGVzKCdcXFxcYmxvY2tzXFxcXCcpIHx8IGZpbGVuYW1lLmluY2x1ZGVzKCdcXFxcX2Jsb2Nrc1xcXFwnKVxuICAgIGlmICghaXNCbG9ja0ZpbGUpIHtcbiAgICAgIHJldHVybiB7fVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAvLyBDaGVjayBmb3IgJ3VzZSBjbGllbnQnIGRpcmVjdGl2ZSBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlXG4gICAgICBFeHByZXNzaW9uU3RhdGVtZW50KG5vZGUpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIG5vZGUuZXhwcmVzc2lvbi50eXBlID09PSAnTGl0ZXJhbCcgJiZcbiAgICAgICAgICBub2RlLmV4cHJlc3Npb24udmFsdWUgPT09ICd1c2UgY2xpZW50J1xuICAgICAgICApIHtcbiAgICAgICAgICAvLyBFeHRyYWN0IGJsb2NrIG5hbWUgZnJvbSBmaWxlbmFtZVxuICAgICAgICAgIGNvbnN0IG1hdGNoID0gZmlsZW5hbWUubWF0Y2goLyhbXi9cXFxcXSspXFwudHN4PyQvKVxuICAgICAgICAgIGNvbnN0IGJsb2NrTmFtZSA9IG1hdGNoID8gbWF0Y2hbMV0gOiAndW5rbm93bidcblxuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlSWQ6ICdub0NsaWVudEJsb2NrcycsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIGJsb2NrTmFtZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59KVxuIl19
|
|
@@ -14,7 +14,8 @@ const rule = {
|
|
|
14
14
|
create(context) {
|
|
15
15
|
const filename = context.filename || context.getFilename();
|
|
16
16
|
// Only check block files
|
|
17
|
-
const isBlock = filename.includes('/blocks/') || filename.includes('
|
|
17
|
+
const isBlock = filename.includes('/blocks/') || filename.includes('/_blocks/') ||
|
|
18
|
+
filename.includes('\\blocks\\') || filename.includes('\\_blocks\\');
|
|
18
19
|
if (!isBlock) {
|
|
19
20
|
return {};
|
|
20
21
|
}
|
|
@@ -109,4 +110,4 @@ const rule = {
|
|
|
109
110
|
},
|
|
110
111
|
};
|
|
111
112
|
export default rule;
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tY29tcG9uZW50LWluLWJsb2Nrcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lc2xpbnQvcnVsZXMvbm8tY29tcG9uZW50LWluLWJsb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLElBQUksR0FBb0I7SUFDNUIsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLFlBQVk7UUFDbEIsSUFBSSxFQUFFO1lBQ0osV0FBVyxFQUNULGlIQUFpSDtZQUNuSCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFdBQVcsRUFBRSxJQUFJO1NBQ2xCO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsbUJBQW1CLEVBQ2pCLG1MQUFtTDtTQUN0TDtRQUNELE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxNQUFNLENBQUMsT0FBeUI7UUFDOUIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUE7UUFFMUQseUJBQXlCO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUNoRixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixPQUFPLEVBQUUsQ0FBQTtRQUNYLENBQUM7UUFFRCw0Q0FBNEM7UUFDNUMsSUFBSSxpQkFBaUIsR0FBa0IsSUFBSSxDQUFBO1FBQzNDLHNCQUFzQjtRQUN0QixNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO1FBRXRDLE9BQU87WUFDTCwyQkFBMkI7WUFDM0Isd0JBQXdCLENBQUMsSUFBSTtnQkFDM0IsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxxQkFBcUIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUMzRSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUs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Qjs0QkFBRSxPQUFNO3dCQUV0Qyw0Q0FBNEM7d0JBQzVDLDhDQUE4Qzt3QkFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDOzRCQUFFLE9BQU07d0JBRW5DLGdEQUFnRDt3QkFDaEQsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7NEJBQ3hCLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0NBQ2IsSUFBSSxFQUFFLFVBQVU7Z0NBQ2hCLFNBQVMsRUFBRSxxQkFBcUI7NkJBQ2pDLENBQUMsQ0FBQTt3QkFDSixDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7U0FDRixDQUFBO0lBQ0gsQ0FBQztDQUNGLENBQUE7QUFFRCxlQUFlLElBQUksQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJ1bGUgfSBmcm9tICdlc2xpbnQnXG5cbmNvbnN0IHJ1bGU6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ1ByZXZlbnQgZXhwb3J0aW5nIGNvbXBvbmVudCBmdW5jdGlvbnMgZnJvbSBibG9jayBmaWxlcyAtIHJldXNhYmxlIGNvbXBvbmVudHMgc2hvdWxkIGJlIGluIHRoZSBjb21wb25lbnRzIGZvbGRlcicsXG4gICAgICBjYXRlZ29yeTogJ0Jlc3QgUHJhY3RpY2VzJyxcbiAgICAgIHJlY29tbWVuZGVkOiB0cnVlLFxuICAgIH0sXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIG5vQ29tcG9uZW50SW5CbG9ja3M6XG4gICAgICAgICdbQ2Fub24gMDI1XSBFeHBvcnRlZCBjb21wb25lbnQgZnVuY3Rpb25zIHNob3VsZCBub3QgYmUgZGVmaW5lZCBpbiBibG9jayBmaWxlcy4gTW92ZSB0aGlzIGNvbXBvbmVudCB0byBzcmMvY29tcG9uZW50cy8gYW5kIGltcG9ydCBpdC4gTm9uLWV4cG9ydGVkIGNvbnRlbnQgY29tcG9uZW50cyBhcmUgYWxsb3dlZC4nLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcbiAgY3JlYXRlKGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpIHtcbiAgICBjb25zdCBmaWxlbmFtZSA9IGNvbnRleHQuZmlsZW5hbWUgfHwgY29udGV4dC5nZXRGaWxlbmFtZSgpXG5cbiAgICAvLyBPbmx5IGNoZWNrIGJsb2NrIGZpbGVzXG4gICAgY29uc3QgaXNCbG9jayA9IGZpbGVuYW1lLmluY2x1ZGVzKCcvYmxvY2tzLycpIHx8IGZpbGVuYW1lLmluY2x1ZGVzKCdcXFxcYmxvY2tzXFxcXCcpXG4gICAgaWYgKCFpc0Jsb2NrKSB7XG4gICAgICByZXR1cm4ge31cbiAgICB9XG5cbiAgICAvLyBUcmFjayB0aGUgZGVmYXVsdCBleHBvcnQgbmFtZSB0byBhbGxvdyBpdFxuICAgIGxldCBkZWZhdWx0RXhwb3J0TmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGxcbiAgICAvLyBUcmFjayBuYW1lZCBleHBvcnRzXG4gICAgY29uc3QgbmFtZWRFeHBvcnRzID0gbmV3IFNldDxzdHJpbmc+KClcblxuICAgIHJldHVybiB7XG4gICAgICAvLyBUcmFjayB0aGUgZGVmYXVsdCBleHBvcnRcbiAgICAgIEV4cG9ydERlZmF1bHREZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uLnR5cGUgPT09ICdGdW5jdGlvbkRlY2xhcmF0aW9uJyAmJiBub2RlLmRlY2xhcmF0aW9uLmlkKSB7XG4gICAgICAgICAgZGVmYXVsdEV4cG9ydE5hbWUgPSBub2RlLmRlY2xhcmF0aW9uLmlkLm5hbWVcbiAgICAgICAgfSBlbHNlIGlmIChub2RlLmRlY2xhcmF0aW9uLnR5cGUgPT09ICdJZGVudGlmaWVyJykge1xuICAgICAgICAgIGRlZmF1bHRFeHBvcnROYW1lID0gbm9kZS5kZWNsYXJhdGlvbi5uYW1lXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIC8vIFRyYWNrIG5hbWVkIGV4cG9ydHM6IGV4cG9ydCBmdW5jdGlvbiBGb28oKSB7fSBvciBleHBvcnQgY29uc3QgRm9vID0gKCkgPT4ge31cbiAgICAgIEV4cG9ydE5hbWVkRGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgICBpZiAobm9kZS5kZWNsYXJhdGlvbikge1xuICAgICAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uLnR5cGUgPT09ICdGdW5jdGlvbkRlY2xhcmF0aW9uJyAmJiBub2RlLmRlY2xhcmF0aW9uLmlkKSB7XG4gICAgICAgICAgICBuYW1lZEV4cG9ydHMuYWRkKG5vZGUuZGVjbGFyYXRpb24uaWQubmFtZSlcbiAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUuZGVjbGFyYXRpb24udHlwZSA9PT0gJ1ZhcmlhYmxlRGVjbGFyYXRpb24nKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRlY2xhcmF0b3Igb2Ygbm9kZS5kZWNsYXJhdGlvbi5kZWNsYXJhdGlvbnMpIHtcbiAgICAgICAgICAgICAgaWYgKGRlY2xhcmF0b3IuaWQudHlwZSA9PT0gJ0lkZW50aWZpZXInKSB7XG4gICAgICAgICAgICAgICAgbmFtZWRFeHBvcnRzLmFkZChkZWNsYXJhdG9yLmlkLm5hbWUpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gSGFuZGxlOiBleHBvcnQgeyBGb28sIEJhciB9XG4gICAgICAgIGlmIChub2RlLnNwZWNpZmllcnMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHNwZWNpZmllciBvZiBub2RlLnNwZWNpZmllcnMpIHtcbiAgICAgICAgICAgIGlmIChzcGVjaWZpZXIuZXhwb3J0ZWQudHlwZSA9PT0gJ0lkZW50aWZpZXInKSB7XG4gICAgICAgICAgICAgIG5hbWVkRXhwb3J0cy5hZGQoc3BlY2lmaWVyLmV4cG9ydGVkLm5hbWUpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICAvLyBDaGVjayBmb3IgZXhwb3J0ZWQgZnVuY3Rpb24gZGVjbGFyYXRpb25zIHRoYXQgbG9vayBsaWtlIGNvbXBvbmVudHMgKFBhc2NhbENhc2UpXG4gICAgICAnUHJvZ3JhbTpleGl0JygpIHtcbiAgICAgICAgLy8gTm93IGNoZWNrIGFsbCBuYW1lZCBleHBvcnRzIHRoYXQgYXJlIFBhc2NhbENhc2VcbiAgICAgICAgLy8gVGhlIGFjdHVhbCBmbGFnZ2luZyBoYXBwZW5zIGluIHRoZSBFeHBvcnROYW1lZERlY2xhcmF0aW9uIGhhbmRsZXJcbiAgICAgIH0sXG5cbiAgICAgIC8vIENoZWNrIGZvciBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgdGhhdCBsb29rIGxpa2UgY29tcG9uZW50cyAoUGFzY2FsQ2FzZSlcbiAgICAgIEZ1bmN0aW9uRGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgICBpZiAoIW5vZGUuaWQpIHJldHVyblxuXG4gICAgICAgIGNvbnN0IG5hbWUgPSBub2RlLmlkLm5hbWVcblxuICAgICAgICAvLyBTa2lwIHRoZSBkZWZhdWx0IGV4cG9ydCAodGhlIGJsb2NrIGl0c2VsZilcbiAgICAgICAgaWYgKG5hbWUgPT09IGRlZmF1bHRFeHBvcnROYW1lKSByZXR1cm5cblxuICAgICAgICAvLyBPbmx5IGZsYWcgaWYgaXQncyBleHBvcnRlZCAobmFtZWQgZXhwb3J0KVxuICAgICAgICAvLyBOb24tZXhwb3J0ZWQgY29udGVudCBjb21wb25lbnRzIGFyZSBhbGxvd2VkXG4gICAgICAgIGlmICghbmFtZWRFeHBvcnRzLmhhcyhuYW1lKSkgcmV0dXJuXG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgaXQncyBQYXNjYWxDYXNlIChsaWtlbHkgYSBjb21wb25lbnQpXG4gICAgICAgIGlmICgvXltBLVpdLy50ZXN0KG5hbWUpKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIG1lc3NhZ2VJZDogJ25vQ29tcG9uZW50SW5CbG9ja3MnLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIC8vIENoZWNrIGZvciBhcnJvdyBmdW5jdGlvbiBjb21wb25lbnRzOiBjb25zdCBNeUNvbXBvbmVudCA9ICgpID0+IHt9XG4gICAgICBWYXJpYWJsZURlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgICAgZm9yIChjb25zdCBkZWNsYXJhdG9yIG9mIG5vZGUuZGVjbGFyYXRpb25zKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZGVjbGFyYXRvci5pZC50eXBlID09PSAnSWRlbnRpZmllcicgJiZcbiAgICAgICAgICAgIGRlY2xhcmF0b3IuaW5pdCAmJlxuICAgICAgICAgICAgKGRlY2xhcmF0b3IuaW5pdC50eXBlID09PSAnQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24nIHx8XG4gICAgICAgICAgICAgIGRlY2xhcmF0b3IuaW5pdC50eXBlID09PSAnRnVuY3Rpb25FeHByZXNzaW9uJylcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBkZWNsYXJhdG9yLmlkLm5hbWVcblxuICAgICAgICAgICAgLy8gU2tpcCB0aGUgZGVmYXVsdCBleHBvcnRcbiAgICAgICAgICAgIGlmIChuYW1lID09PSBkZWZhdWx0RXhwb3J0TmFtZSkgcmV0dXJuXG5cbiAgICAgICAgICAgIC8vIE9ubHkgZmxhZyBpZiBpdCdzIGV4cG9ydGVkIChuYW1lZCBleHBvcnQpXG4gICAgICAgICAgICAvLyBOb24tZXhwb3J0ZWQgY29udGVudCBjb21wb25lbnRzIGFyZSBhbGxvd2VkXG4gICAgICAgICAgICBpZiAoIW5hbWVkRXhwb3J0cy5oYXMobmFtZSkpIHJldHVyblxuXG4gICAgICAgICAgICAvLyBDaGVjayBpZiBpdCdzIFBhc2NhbENhc2UgKGxpa2VseSBhIGNvbXBvbmVudClcbiAgICAgICAgICAgIGlmICgvXltBLVpdLy50ZXN0KG5hbWUpKSB7XG4gICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgICBub2RlOiBkZWNsYXJhdG9yLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ25vQ29tcG9uZW50SW5CbG9ja3MnLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG5cbmV4cG9ydCBkZWZhdWx0IHJ1bGVcbiJdfQ==
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tY29tcG9uZW50LWluLWJsb2Nrcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lc2xpbnQvcnVsZXMvbm8tY29tcG9uZW50LWluLWJsb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLElBQUksR0FBb0I7SUFDNUIsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLFlBQVk7UUFDbEIsSUFBSSxFQUFFO1lBQ0osV0FBVyxFQUNULGlIQUFpSDtZQUNuSCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFdBQVcsRUFBRSxJQUFJO1NBQ2xCO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsbUJBQW1CLEVBQ2pCLG1MQUFtTDtTQUN0TDtRQUNELE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxNQUFNLENBQUMsT0FBeUI7UUFDOUIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUE7UUFFMUQseUJBQXlCO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7WUFDL0QsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ25GLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sRUFBRSxDQUFBO1FBQ1gsQ0FBQztRQUVELDRDQUE0QztRQUM1QyxJQUFJLGlCQUFpQixHQUFrQixJQUFJLENBQUE7UUFDM0Msc0JBQXNCO1FBQ3RCLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUE7UUFFdEMsT0FBTztZQUNMLDJCQUEyQjtZQUMzQix3QkFBd0IsQ0FBQyxJQUFJO2dCQUMzQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLHFCQUFxQixJQUFJLElBQUksQ0FB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VUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUE7d0JBRS9CLDBCQUEwQjt3QkFDMUIsSUFBSSxJQUFJLEtBQUssaUJBQWlCOzRCQUFFLE9BQU07d0JBRXRDLDRDQUE0Qzt3QkFDNUMsOENBQThDO3dCQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7NEJBQUUsT0FBTTt3QkFFbkMsZ0RBQWdEO3dCQUNoRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQzs0QkFDeEIsT0FBTyxDQUFDLE1BQU0sQ0FBQztnQ0FDYixJQUFJLEVBQUUsVUFBVTtnQ0FDaEIsU0FBUyxFQUFFLHFCQUFxQjs2QkFDakMsQ0FBQyxDQUFBO3dCQUNKLENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUE7SUFDSCxDQUFDO0NBQ0YsQ0FBQTtBQUVELGVBQWUsSUFBSSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUnVsZSB9IGZyb20gJ2VzbGludCdcblxuY29uc3QgcnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnUHJldmVudCBleHBvcnRpbmcgY29tcG9uZW50IGZ1bmN0aW9ucyBmcm9tIGJsb2NrIGZpbGVzIC0gcmV1c2FibGUgY29tcG9uZW50cyBzaG91bGQgYmUgaW4gdGhlIGNvbXBvbmVudHMgZm9sZGVyJyxcbiAgICAgIGNhdGVnb3J5OiAnQmVzdCBQcmFjdGljZXMnLFxuICAgICAgcmVjb21tZW5kZWQ6IHRydWUsXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgbm9Db21wb25lbnRJbkJsb2NrczpcbiAgICAgICAgJ1tDYW5vbiAwMjVdIEV4cG9ydGVkIGNvbXBvbmVudCBmdW5jdGlvbnMgc2hvdWxkIG5vdCBiZSBkZWZpbmVkIGluIGJsb2NrIGZpbGVzLiBNb3ZlIHRoaXMgY29tcG9uZW50IHRvIHNyYy9jb21wb25lbnRzLyBhbmQgaW1wb3J0IGl0LiBOb24tZXhwb3J0ZWQgY29udGVudCBjb21wb25lbnRzIGFyZSBhbGxvd2VkLicsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuICBjcmVhdGUoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCkge1xuICAgIGNvbnN0IGZpbGVuYW1lID0gY29udGV4dC5maWxlbmFtZSB8fCBjb250ZXh0LmdldEZpbGVuYW1lKClcblxuICAgIC8vIE9ubHkgY2hlY2sgYmxvY2sgZmlsZXNcbiAgICBjb25zdCBpc0Jsb2NrID0gZmlsZW5hbWUuaW5jbHVkZXMoJy9ibG9ja3MvJykgfHwgZmlsZW5hbWUuaW5jbHVkZXMoJy9fYmxvY2tzLycpIHx8XG4gICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLmluY2x1ZGVzKCdcXFxcYmxvY2tzXFxcXCcpIHx8IGZpbGVuYW1lLmluY2x1ZGVzKCdcXFxcX2Jsb2Nrc1xcXFwnKVxuICAgIGlmICghaXNCbG9jaykge1xuICAgICAgcmV0dXJuIHt9XG4gICAgfVxuXG4gICAgLy8gVHJhY2sgdGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgdG8gYWxsb3cgaXRcbiAgICBsZXQgZGVmYXVsdEV4cG9ydE5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsXG4gICAgLy8gVHJhY2sgbmFtZWQgZXhwb3J0c1xuICAgIGNvbnN0IG5hbWVkRXhwb3J0cyA9IG5ldyBTZXQ8c3RyaW5nPigpXG5cbiAgICByZXR1cm4ge1xuICAgICAgLy8gVHJhY2sgdGhlIGRlZmF1bHQgZXhwb3J0XG4gICAgICBFeHBvcnREZWZhdWx0RGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgICBpZiAobm9kZS5kZWNsYXJhdGlvbi50eXBlID09PSAnRnVuY3Rpb25EZWNsYXJhdGlvbicgJiYgbm9kZS5kZWNsYXJhdGlvbi5pZCkge1xuICAgICAgICAgIGRlZmF1bHRFeHBvcnROYW1lID0gbm9kZS5kZWNsYXJhdGlvbi5pZC5uYW1lXG4gICAgICAgIH0gZWxzZSBpZiAobm9kZS5kZWNsYXJhdGlvbi50eXBlID09PSAnSWRlbnRpZmllcicpIHtcbiAgICAgICAgICBkZWZhdWx0RXhwb3J0TmFtZSA9IG5vZGUuZGVjbGFyYXRpb24ubmFtZVxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICAvLyBUcmFjayBuYW1lZCBleHBvcnRzOiBleHBvcnQgZnVuY3Rpb24gRm9vKCkge30gb3IgZXhwb3J0IGNvbnN0IEZvbyA9ICgpID0+IHt9XG4gICAgICBFeHBvcnROYW1lZERlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUuZGVjbGFyYXRpb24pIHtcbiAgICAgICAgICBpZiAobm9kZS5kZWNsYXJhdGlvbi50eXBlID09PSAnRnVuY3Rpb25EZWNsYXJhdGlvbicgJiYgbm9kZS5kZWNsYXJhdGlvbi5pZCkge1xuICAgICAgICAgICAgbmFtZWRFeHBvcnRzLmFkZChub2RlLmRlY2xhcmF0aW9uLmlkLm5hbWUpXG4gICAgICAgICAgfSBlbHNlIGlmIChub2RlLmRlY2xhcmF0aW9uLnR5cGUgPT09ICdWYXJpYWJsZURlY2xhcmF0aW9uJykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBkZWNsYXJhdG9yIG9mIG5vZGUuZGVjbGFyYXRpb24uZGVjbGFyYXRpb25zKSB7XG4gICAgICAgICAgICAgIGlmIChkZWNsYXJhdG9yLmlkLnR5cGUgPT09ICdJZGVudGlmaWVyJykge1xuICAgICAgICAgICAgICAgIG5hbWVkRXhwb3J0cy5hZGQoZGVjbGFyYXRvci5pZC5uYW1lKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIEhhbmRsZTogZXhwb3J0IHsgRm9vLCBCYXIgfVxuICAgICAgICBpZiAobm9kZS5zcGVjaWZpZXJzKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBzcGVjaWZpZXIgb2Ygbm9kZS5zcGVjaWZpZXJzKSB7XG4gICAgICAgICAgICBpZiAoc3BlY2lmaWVyLmV4cG9ydGVkLnR5cGUgPT09ICdJZGVudGlmaWVyJykge1xuICAgICAgICAgICAgICBuYW1lZEV4cG9ydHMuYWRkKHNwZWNpZmllci5leHBvcnRlZC5uYW1lKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgLy8gQ2hlY2sgZm9yIGV4cG9ydGVkIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyB0aGF0IGxvb2sgbGlrZSBjb21wb25lbnRzIChQYXNjYWxDYXNlKVxuICAgICAgJ1Byb2dyYW06ZXhpdCcoKSB7XG4gICAgICAgIC8vIE5vdyBjaGVjayBhbGwgbmFtZWQgZXhwb3J0cyB0aGF0IGFyZSBQYXNjYWxDYXNlXG4gICAgICAgIC8vIFRoZSBhY3R1YWwgZmxhZ2dpbmcgaGFwcGVucyBpbiB0aGUgRXhwb3J0TmFtZWREZWNsYXJhdGlvbiBoYW5kbGVyXG4gICAgICB9LFxuXG4gICAgICAvLyBDaGVjayBmb3IgZnVuY3Rpb24gZGVjbGFyYXRpb25zIHRoYXQgbG9vayBsaWtlIGNvbXBvbmVudHMgKFBhc2NhbENhc2UpXG4gICAgICBGdW5jdGlvbkRlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgICAgaWYgKCFub2RlLmlkKSByZXR1cm5cblxuICAgICAgICBjb25zdCBuYW1lID0gbm9kZS5pZC5uYW1lXG5cbiAgICAgICAgLy8gU2tpcCB0aGUgZGVmYXVsdCBleHBvcnQgKHRoZSBibG9jayBpdHNlbGYpXG4gICAgICAgIGlmIChuYW1lID09PSBkZWZhdWx0RXhwb3J0TmFtZSkgcmV0dXJuXG5cbiAgICAgICAgLy8gT25seSBmbGFnIGlmIGl0J3MgZXhwb3J0ZWQgKG5hbWVkIGV4cG9ydClcbiAgICAgICAgLy8gTm9uLWV4cG9ydGVkIGNvbnRlbnQgY29tcG9uZW50cyBhcmUgYWxsb3dlZFxuICAgICAgICBpZiAoIW5hbWVkRXhwb3J0cy5oYXMobmFtZSkpIHJldHVyblxuXG4gICAgICAgIC8vIENoZWNrIGlmIGl0J3MgUGFzY2FsQ2FzZSAobGlrZWx5IGEgY29tcG9uZW50KVxuICAgICAgICBpZiAoL15bQS1aXS8udGVzdChuYW1lKSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlSWQ6ICdub0NvbXBvbmVudEluQmxvY2tzJyxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICAvLyBDaGVjayBmb3IgYXJyb3cgZnVuY3Rpb24gY29tcG9uZW50czogY29uc3QgTXlDb21wb25lbnQgPSAoKSA9PiB7fVxuICAgICAgVmFyaWFibGVEZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIGZvciAoY29uc3QgZGVjbGFyYXRvciBvZiBub2RlLmRlY2xhcmF0aW9ucykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGRlY2xhcmF0b3IuaWQudHlwZSA9PT0gJ0lkZW50aWZpZXInICYmXG4gICAgICAgICAgICBkZWNsYXJhdG9yLmluaXQgJiZcbiAgICAgICAgICAgIChkZWNsYXJhdG9yLmluaXQudHlwZSA9PT0gJ0Fycm93RnVuY3Rpb25FeHByZXNzaW9uJyB8fFxuICAgICAgICAgICAgICBkZWNsYXJhdG9yLmluaXQudHlwZSA9PT0gJ0Z1bmN0aW9uRXhwcmVzc2lvbicpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gZGVjbGFyYXRvci5pZC5uYW1lXG5cbiAgICAgICAgICAgIC8vIFNraXAgdGhlIGRlZmF1bHQgZXhwb3J0XG4gICAgICAgICAgICBpZiAobmFtZSA9PT0gZGVmYXVsdEV4cG9ydE5hbWUpIHJldHVyblxuXG4gICAgICAgICAgICAvLyBPbmx5IGZsYWcgaWYgaXQncyBleHBvcnRlZCAobmFtZWQgZXhwb3J0KVxuICAgICAgICAgICAgLy8gTm9uLWV4cG9ydGVkIGNvbnRlbnQgY29tcG9uZW50cyBhcmUgYWxsb3dlZFxuICAgICAgICAgICAgaWYgKCFuYW1lZEV4cG9ydHMuaGFzKG5hbWUpKSByZXR1cm5cblxuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgaXQncyBQYXNjYWxDYXNlIChsaWtlbHkgYSBjb21wb25lbnQpXG4gICAgICAgICAgICBpZiAoL15bQS1aXS8udGVzdChuYW1lKSkge1xuICAgICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgICAgbm9kZTogZGVjbGFyYXRvcixcbiAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdub0NvbXBvbmVudEluQmxvY2tzJyxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuXG5leHBvcnQgZGVmYXVsdCBydWxlXG4iXX0=
|
|
@@ -7,7 +7,8 @@ const createRule = ESLintUtils.RuleCreator(() => getCanonUrl(RULE_NAME));
|
|
|
7
7
|
* Determine which zone a file is in based on its path
|
|
8
8
|
*/
|
|
9
9
|
function getZone(filename) {
|
|
10
|
-
if (filename.includes('/blocks/') || filename.includes('
|
|
10
|
+
if (filename.includes('/blocks/') || filename.includes('/_blocks/') ||
|
|
11
|
+
filename.includes('\\blocks\\') || filename.includes('\\_blocks\\')) {
|
|
11
12
|
return 'blocks';
|
|
12
13
|
}
|
|
13
14
|
if (filename.includes('/components/') || filename.includes('\\components\\')) {
|
|
@@ -35,7 +36,11 @@ function importsZone(importPath, zone) {
|
|
|
35
36
|
if (importPath.startsWith('@/')) {
|
|
36
37
|
return importPath.startsWith(`@/${zone}/`);
|
|
37
38
|
}
|
|
38
|
-
// Handle relative imports
|
|
39
|
+
// Handle relative imports (including _blocks/ as blocks zone)
|
|
40
|
+
if (zone === 'blocks') {
|
|
41
|
+
return importPath.includes(`/${zone}/`) || importPath.includes(`/_blocks/`) ||
|
|
42
|
+
importPath.includes(`\\${zone}\\`) || importPath.includes(`\\_blocks\\`);
|
|
43
|
+
}
|
|
39
44
|
return importPath.includes(`/${zone}/`) || importPath.includes(`\\${zone}\\`);
|
|
40
45
|
}
|
|
41
46
|
/**
|
|
@@ -96,4 +101,4 @@ export default createRule({
|
|
|
96
101
|
};
|
|
97
102
|
},
|
|
98
103
|
});
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tY3Jvc3Mtem9uZS1pbXBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VzbGludC9ydWxlcy9uby1jcm9zcy16b25lLWltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFaEUsTUFBTSxTQUFTLEdBQUcsdUJBQXVCLENBQUE7QUFDekMsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBRTFDLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUE7QUFJeEU7O0dBRUc7QUFDSCxTQUFTLE9BQU8sQ0FBQyxRQUFnQjtJQUMvQixJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDL0QsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7UUFDeEUsT0FBTyxRQUFRLENBQUE7SUFDakIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUM3RSxPQUFPLFlBQVksQ0FBQTtJQUNyQixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUMvRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLENB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Q2xFLE9BQU8sQ0FBQyxNQUFNLENBQUM7d0JBQ2IsSUFBSTt3QkFDSixTQUFTLEVBQUUsb0JBQW9CO3FCQUNoQyxDQUFDLENBQUE7Z0JBQ0osQ0FBQztnQkFFRCwrQ0FBK0M7Z0JBQy9DLElBQUksV0FBVyxLQUFLLFlBQVksSUFBSSxXQUFXLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQ3RFLE9BQU8sQ0FBQyxNQUFNLENBQUM7d0JBQ2IsSUFBSTt3QkFDSixTQUFTLEVBQUUsd0JBQXdCO3FCQUNwQyxDQUFDLENBQUE7Z0JBQ0osQ0FBQztnQkFFRCxtREFBbUQ7Z0JBQ25ELElBQUksY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7b0JBQy9CLE9BQU8sQ0FBQyxNQUFNLENBQUM7d0JBQ2IsSUFBSTt3QkFDSixTQUFTLEVBQUUsc0JBQXNCO3FCQUNsQyxDQUFDLENBQUE7Z0JBQ0osQ0FBQztZQUNILENBQUM7U0FDRixDQUFBO0lBQ0gsQ0FBQztDQUNGLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVTTGludFV0aWxzIH0gZnJvbSAnQHR5cGVzY3JpcHQtZXNsaW50L3V0aWxzJ1xuaW1wb3J0IHsgZ2V0Q2Fub25VcmwsIGdldENhbm9uUGF0dGVybiB9IGZyb20gJy4uL3V0aWxzL2Nhbm9uLmpzJ1xuXG5jb25zdCBSVUxFX05BTUUgPSAnbm8tY3Jvc3Mtem9uZS1pbXBvcnRzJ1xuY29uc3QgcGF0dGVybiA9IGdldENhbm9uUGF0dGVybihSVUxFX05BTUUpXG5cbmNvbnN0IGNyZWF0ZVJ1bGUgPSBFU0xpbnRVdGlscy5SdWxlQ3JlYXRvcigoKSA9PiBnZXRDYW5vblVybChSVUxFX05BTUUpKVxuXG50eXBlIE1lc3NhZ2VJZHMgPSAnYmxvY2tzSW1wb3J0QmxvY2tzJyB8ICdjb21wb25lbnRzSW1wb3J0QmxvY2tzJyB8ICdydW50aW1lSW1wb3J0U2NyaXB0cydcblxuLyoqXG4gKiBEZXRlcm1pbmUgd2hpY2ggem9uZSBhIGZpbGUgaXMgaW4gYmFzZWQgb24gaXRzIHBhdGhcbiAqL1xuZnVuY3Rpb24gZ2V0Wm9uZShmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmIChmaWxlbmFtZS5pbmNsdWRlcygnL2Jsb2Nrcy8nKSB8fCBmaWxlbmFtZS5pbmNsdWRlcygnL19ibG9ja3MvJykgfHxcbiAgICAgIGZpbGVuYW1lLmluY2x1ZGVzKCdcXFxcYmxvY2tzXFxcXCcpIHx8IGZpbGVuYW1lLmluY2x1ZGVzKCdcXFxcX2Jsb2Nrc1xcXFwnKSkge1xuICAgIHJldHVybiAnYmxvY2tzJ1xuICB9XG4gIGlmIChmaWxlbmFtZS5pbmNsdWRlcygnL2NvbXBvbmVudHMvJykgfHwgZmlsZW5hbWUuaW5jbHVkZXMoJ1xcXFxjb21wb25lbnRzXFxcXCcpKSB7XG4gICAgcmV0dXJuICdjb21wb25lbnRzJ1xuICB9XG4gIGlmIChmaWxlbmFtZS5pbmNsdWRlcygnL2FwcC8nKSB8fCBmaWxlbmFtZS5pbmNsdWRlcygnXFxcXGFwcFxcXFwnKSkge1xuICAgIHJldHVybiAnYXBwJ1xuICB9XG4gIGlmIChmaWxlbmFtZS5pbmNsdWRlcygnL2hvb2tzLycpIHx8IGZpbGVuYW1lLmluY2x1ZGVzKCdcXFxcaG9va3NcXFxcJykpIHtcbiAgICByZXR1cm4gJ2hvb2tzJ1xuICB9XG4gIGlmIChmaWxlbmFtZS5pbmNsdWRlcygnL3V0aWxzLycpIHx8IGZpbGVuYW1lLmluY2x1ZGVzKCdcXFxcdXRpbHNcXFxcJykpIHtcbiAgICByZXR1cm4gJ3V0aWxzJ1xuICB9XG4gIGlmIChmaWxlbmFtZS5pbmNsdWRlcygnL3Rvb2xzLycpIHx8IGZpbGVuYW1lLmluY2x1ZGVzKCdcXFxcdG9vbHNcXFxcJykpIHtcbiAgICByZXR1cm4gJ3Rvb2xzJ1xuICB9XG4gIHJldHVybiBudWxsXG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYW4gaW1wb3J0IHBhdGggdGFyZ2V0cyBhIHNwZWNpZmljIHpvbmVcbiAqL1xuZnVuY3Rpb24gaW1wb3J0c1pvbmUoaW1wb3J0UGF0aDogc3RyaW5nLCB6b25lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgLy8gSGFuZGxlIGFsaWFzIGltcG9ydHMgbGlrZSBAL2Jsb2Nrcy8uLi4gb3IgQC9jb21wb25lbnRzLy4uLlxuICBpZiAoaW1wb3J0UGF0aC5zdGFydHNXaXRoKCdALycpKSB7XG4gICAgcmV0dXJuIGltcG9ydFBhdGguc3RhcnRzV2l0aChgQC8ke3pvbmV9L2ApXG4gIH1cbiAgLy8gSGFuZGxlIHJlbGF0aXZlIGltcG9ydHMgKGluY2x1ZGluZyBfYmxvY2tzLyBhcyBibG9ja3Mgem9uZSlcbiAgaWYgKHpvbmUgPT09ICdibG9ja3MnKSB7XG4gICAgcmV0dXJuIGltcG9ydFBhdGguaW5jbHVkZXMoYC8ke3pvbmV9L2ApIHx8IGltcG9ydFBhdGguaW5jbHVkZXMoYC9fYmxvY2tzL2ApIHx8XG4gICAgICAgICAgIGltcG9ydFBhdGguaW5jbHVkZXMoYFxcXFwke3pvbmV9XFxcXGApIHx8IGltcG9ydFBhdGguaW5jbHVkZXMoYFxcXFxfYmxvY2tzXFxcXGApXG4gIH1cbiAgcmV0dXJuIGltcG9ydFBhdGguaW5jbHVkZXMoYC8ke3pvbmV9L2ApIHx8IGltcG9ydFBhdGguaW5jbHVkZXMoYFxcXFwke3pvbmV9XFxcXGApXG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYW4gaW1wb3J0IHRhcmdldHMgX3NjcmlwdHNcbiAqL1xuZnVuY3Rpb24gaW1wb3J0c1NjcmlwdHMoaW1wb3J0UGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgaW1wb3J0UGF0aC5pbmNsdWRlcygnX3NjcmlwdHMvJykgfHxcbiAgICBpbXBvcnRQYXRoLmluY2x1ZGVzKCdfc2NyaXB0c1xcXFwnKSB8fFxuICAgIGltcG9ydFBhdGguc3RhcnRzV2l0aCgnQC9fc2NyaXB0cy8nKVxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZVJ1bGU8W10sIE1lc3NhZ2VJZHM+KHtcbiAgbmFtZTogUlVMRV9OQU1FLFxuICBtZXRhOiB7XG4gICAgdHlwZTogJ3Byb2JsZW0nLFxuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBwYXR0ZXJuPy5zdW1tYXJ5IHx8ICdFbmZvcmNlIGltcG9ydCBib3VuZGFyaWVzIGJldHdlZW4gQ2Fub24gem9uZXMnLFxuICAgIH0sXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIGJsb2Nrc0ltcG9ydEJsb2NrczogYFtDYW5vbiAke3BhdHRlcm4/LmlkIHx8ICcwMjEnfV0gQmxvY2tzIGNhbm5vdCBpbXBvcnQgZnJvbSBvdGhlciBibG9ja3MuIEVhY2ggYmxvY2sgc2hvdWxkIGJlIHNlbGYtY29udGFpbmVkIG9yIGltcG9ydCBmcm9tIGNvbXBvbmVudHMuYCxcbiAgICAgIGNvbXBvbmVudHNJbXBvcnRCbG9ja3M6IGBbQ2Fub24gJHtwYXR0ZXJuPy5pZCB8fCAnMDIxJ31dIENvbXBvbmVudHMgY2Fubm90IGltcG9ydCBmcm9tIGJsb2Nrcy4gQmxvY2tzIGNvbXBvc2UgY29tcG9uZW50cywgbm90IHRoZSBvdGhlciB3YXkgYXJvdW5kLmAsXG4gICAgICBydW50aW1lSW1wb3J0U2NyaXB0czogYFtDYW5vbiAke3BhdHRlcm4/LmlkIHx8ICcwMjEnfV0gUnVudGltZSBjb2RlIGNhbm5vdCBpbXBvcnQgZnJvbSBfc2NyaXB0cy8uIFNjcmlwdHMgYXJlIGZvciBidWlsZC10aW1lIG9ubHkuYCxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG4gIGRlZmF1bHRPcHRpb25zOiBbXSxcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCBmaWxlbmFtZSA9IGNvbnRleHQuZmlsZW5hbWUgfHwgY29udGV4dC5nZXRGaWxlbmFtZSgpXG4gICAgY29uc3QgY3VycmVudFpvbmUgPSBnZXRab25lKGZpbGVuYW1lKVxuXG4gICAgLy8gU2tpcCBmaWxlcyBub3QgaW4gYSBrbm93biB6b25lXG4gICAgaWYgKCFjdXJyZW50Wm9uZSkge1xuICAgICAgcmV0dXJuIHt9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIEltcG9ydERlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgICAgY29uc3QgaW1wb3J0UGF0aCA9IG5vZGUuc291cmNlLnZhbHVlIGFzIHN0cmluZ1xuXG4gICAgICAgIC8vIFJ1bGUgMTogQmxvY2tzIGNhbm5vdCBpbXBvcnQgZnJvbSBvdGhlciBibG9ja3NcbiAgICAgICAgaWYgKGN1cnJlbnRab25lID09PSAnYmxvY2tzJyAmJiBpbXBvcnRzWm9uZShpbXBvcnRQYXRoLCAnYmxvY2tzJykpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZUlkOiAnYmxvY2tzSW1wb3J0QmxvY2tzJyxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUnVsZSAyOiBDb21wb25lbnRzIGNhbm5vdCBpbXBvcnQgZnJvbSBibG9ja3NcbiAgICAgICAgaWYgKGN1cnJlbnRab25lID09PSAnY29tcG9uZW50cycgJiYgaW1wb3J0c1pvbmUoaW1wb3J0UGF0aCwgJ2Jsb2NrcycpKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIG1lc3NhZ2VJZDogJ2NvbXBvbmVudHNJbXBvcnRCbG9ja3MnLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICAvLyBSdWxlIDM6IE5vIHJ1bnRpbWUgY29kZSBjYW4gaW1wb3J0IGZyb20gX3NjcmlwdHNcbiAgICAgICAgaWYgKGltcG9ydHNTY3JpcHRzKGltcG9ydFBhdGgpKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIG1lc3NhZ2VJZDogJ3J1bnRpbWVJbXBvcnRTY3JpcHRzJyxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH1cbiAgfSxcbn0pXG4iXX0=
|
|
@@ -22,8 +22,8 @@ const REQUIRED_SCRIPTS = {
|
|
|
22
22
|
definition: '"lint": "eslint src/"',
|
|
23
23
|
},
|
|
24
24
|
'lint:gallop': {
|
|
25
|
-
contains: 'eslint
|
|
26
|
-
definition: `"lint:gallop": "eslint src/
|
|
25
|
+
contains: 'eslint',
|
|
26
|
+
definition: `"lint:gallop": "eslint 'src/app/**/_blocks/' --rule 'gallop/no-client-blocks: warn' --rule 'gallop/no-container-in-section: warn' --rule 'gallop/prefer-component-props: warn'"`,
|
|
27
27
|
},
|
|
28
28
|
ts: {
|
|
29
29
|
contains: 'tsc',
|
|
@@ -137,4 +137,4 @@ export function resetReported() {
|
|
|
137
137
|
hasReported = false;
|
|
138
138
|
}
|
|
139
139
|
export default rule;
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZS1jYW5vbi1zZXR1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lc2xpbnQvcnVsZXMvcmVxdWlyZS1jYW5vbi1zZXR1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQTtBQUN4QixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUM1QixPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRWhFLE1BQU0sU0FBUyxHQUFHLHFCQUFxQixDQUFBO0FBQ3ZDLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUUxQyxvREFBb0Q7QUFDcEQsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFBO0FBRXZCLDRCQUE0QjtBQUM1QixNQUFNLHFCQUFxQixHQUFHLENBQUMsTUFBTSxFQUFFLHdCQUF3QixDQUFDLENBQUE7QUFFaEUsdUhBQXVIO0FBQ3ZILE1BQU0sZ0JBQWdCLEdBQTZEO0lBQ2pGLE1BQU0sRUFBRTtRQUNOLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLFVBQVUsRUFBRSxrQkFBa0I7S0FDL0I7SUFDRCxLQUFLLEVBQUU7UUFDTCxRQUFRLEVBQUUsU0FBUztRQUNuQixVQUFVLEVBQUUseURBQXlEO0tBQ3RFO0lBQ0QsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLFFBQVE7UUFDbEIsVUFBVSxFQUFFLHVCQUF1QjtLQUNwQztJQUNELGFBQWEsRUFBRTtRQUNiLFFBQVEsRUFBRSxvQkFBb0I7UUFDOUIsVUFBVSxFQUFFLHVLQUF1SztLQUNwTDtJQUNELEVBQUUsRUFBRTtRQUNGLFFBQVEsRUFBRSxLQUFLO1FBQ2YsVUFBVSxFQUFFLHNCQUFzQjtLQUNuQztJQUNELEtBQUssRUFBRTtRQUNMLFFBQVEsRUFBRSxjQUFjO1FBQ3hCLFVBQVUsRUFBRSx5QkFBeUI7S0FDdEM7SUFDRCxjQUFjLEVBQUU7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QUM7b0JBQ0gsQ0FBQztvQkFFRCxnQkFBZ0I7b0JBQ2hCLEtBQUssTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO3dCQUN0RixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7NEJBQ3pCLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0NBQ2IsSUFBSTtnQ0FDSixTQUFTLEVBQUUsZUFBZTtnQ0FDMUIsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7NkJBQ3pDLENBQUMsQ0FBQTt3QkFDSixDQUFDOzZCQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7NEJBQ25ELE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0NBQ2IsSUFBSTtnQ0FDSixTQUFTLEVBQUUsZUFBZTtnQ0FDMUIsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRTs2QkFDN0QsQ0FBQyxDQUFBO3dCQUNKLENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO2dCQUFDLE1BQU0sQ0FBQztvQkFDUCxzQkFBc0I7Z0JBQ3hCLENBQUM7WUFDSCxDQUFDO1NBQ0YsQ0FBQTtJQUNILENBQUM7Q0FDRixDQUFBO0FBRUQsOERBQThEO0FBQzlELE1BQU0sVUFBVSxhQUFhO0lBQzNCLFdBQVcsR0FBRyxLQUFLLENBQUE7QUFDckIsQ0FBQztBQUVELGVBQWUsSUFBSSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSAnZXNsaW50J1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgeyBnZXRDYW5vblVybCwgZ2V0Q2Fub25QYXR0ZXJuIH0gZnJvbSAnLi4vdXRpbHMvY2Fub24uanMnXG5cbmNvbnN0IFJVTEVfTkFNRSA9ICdyZXF1aXJlLWNhbm9uLXNldHVwJ1xuY29uc3QgcGF0dGVybiA9IGdldENhbm9uUGF0dGVybihSVUxFX05BTUUpXG5cbi8vIFRyYWNrIGlmIHdlJ3ZlIGFscmVhZHkgcmVwb3J0ZWQgZm9yIHRoaXMgbGludCBydW5cbmxldCBoYXNSZXBvcnRlZCA9IGZhbHNlXG5cbi8vIFJlcXVpcmVkIGRldiBkZXBlbmRlbmNpZXNcbmNvbnN0IFJFUVVJUkVEX0RFUEVOREVOQ0lFUyA9IFsna25pcCcsICdAZ2FsbG9wLnNvZnR3YXJlL2Nhbm9uJ11cblxuLy8gUmVxdWlyZWQgbnBtIHNjcmlwdHMgKGtleSA9IHNjcmlwdCBuYW1lLCB2YWx1ZSA9IHsgY29udGFpbnM6IHN0cmluZyB0byBjaGVjayBmb3IsIGRlZmluaXRpb246IGV4YWN0IHNjcmlwdCB0byBhZGQgfSlcbmNvbnN0IFJFUVVJUkVEX1NDUklQVFM6IFJlY29yZDxzdHJpbmcsIHsgY29udGFpbnM6IHN0cmluZzsgZGVmaW5pdGlvbjogc3RyaW5nIH0+ID0ge1xuICB1bnVzZWQ6IHtcbiAgICBjb250YWluczogJ2tuaXAnLFxuICAgIGRlZmluaXRpb246ICdcInVudXNlZFwiOiBcImtuaXBcIicsXG4gIH0sXG4gIGNoZWNrOiB7XG4gICAgY29udGFpbnM6ICducG0gcnVuJyxcbiAgICBkZWZpbml0aW9uOiAnXCJjaGVja1wiOiBcIm5wbSBydW4gbGludCAmJiBucG0gcnVuIHRzICYmIG5wbSBydW4gdW51c2VkXCInLFxuICB9LFxuICBsaW50OiB7XG4gICAgY29udGFpbnM6ICdlc2xpbnQnLFxuICAgIGRlZmluaXRpb246ICdcImxpbnRcIjogXCJlc2xpbnQgc3JjL1wiJyxcbiAgfSxcbiAgJ2xpbnQ6Z2FsbG9wJzoge1xuICAgIGNvbnRhaW5zOiAnZXNsaW50IHNyYy9ibG9ja3MvJyxcbiAgICBkZWZpbml0aW9uOiBgXCJsaW50OmdhbGxvcFwiOiBcImVzbGludCBzcmMvYmxvY2tzLyAtLXJ1bGUgJ2dhbGxvcC9uby1jbGllbnQtYmxvY2tzOiB3YXJuJyAtLXJ1bGUgJ2dhbGxvcC9uby1jb250YWluZXItaW4tc2VjdGlvbjogd2FybicgLS1ydWxlICdnYWxsb3AvcHJlZmVyLWNvbXBvbmVudC1wcm9wczogd2FybidcImAsXG4gIH0sXG4gIHRzOiB7XG4gICAgY29udGFpbnM6ICd0c2MnLFxuICAgIGRlZmluaXRpb246ICdcInRzXCI6IFwidHNjIC0tbm9FbWl0XCInLFxuICB9LFxuICBhdWRpdDoge1xuICAgIGNvbnRhaW5zOiAnZ2FsbG9wIGF1ZGl0JyxcbiAgICBkZWZpbml0aW9uOiAnXCJhdWRpdFwiOiBcImdhbGxvcCBhdWRpdFwiJyxcbiAgfSxcbiAgJ2F1ZGl0OnN0cmljdCc6IHtcbiAgICBjb250YWluczogJ2dhbGxvcCBhdWRpdCcsXG4gICAgZGVmaW5pdGlvbjogJ1wiYXVkaXQ6c3RyaWN0XCI6IFwiZ2FsbG9wIGF1ZGl0IC0tc3RyaWN0XCInLFxuICB9LFxuICAnYXVkaXQ6anNvbic6IHtcbiAgICBjb250YWluczogJ2dhbGxvcCBhdWRpdCcsXG4gICAgZGVmaW5pdGlvbjogJ1wiYXVkaXQ6anNvblwiOiBcImdhbGxvcCBhdWRpdCAtLWpzb25cIicsXG4gIH0sXG4gICdnZW5lcmF0ZTphaS1ydWxlcyc6IHtcbiAgICBjb250YWluczogJ2dhbGxvcCBnZW5lcmF0ZScsXG4gICAgZGVmaW5pdGlvbjogJ1wiZ2VuZXJhdGU6YWktcnVsZXNcIjogXCJnYWxsb3AgZ2VuZXJhdGUgLmN1cnNvcnJ1bGVzICYmIGdhbGxvcCBnZW5lcmF0ZSAuZ2l0aHViL2NvcGlsb3QtaW5zdHJ1Y3Rpb25zLm1kXCInLFxuICB9LFxuICAndXBkYXRlOmNhbm9uJzoge1xuICAgIGNvbnRhaW5zOiAnQGdhbGxvcC5zb2Z0d2FyZS9jYW5vbicsXG4gICAgZGVmaW5pdGlvbjogJ1widXBkYXRlOmNhbm9uXCI6IFwibnBtIHVwZGF0ZSBAZ2FsbG9wLnNvZnR3YXJlL2Nhbm9uXCInLFxuICB9LFxufVxuXG5jb25zdCBydWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246IHBhdHRlcm4/LnN1bW1hcnkgfHwgJ1JlcXVpcmUgQ2Fub24gc2V0dXAgaW4gcGFja2FnZS5qc29uJyxcbiAgICAgIHJlY29tbWVuZGVkOiB0cnVlLFxuICAgICAgdXJsOiBnZXRDYW5vblVybChSVUxFX05BTUUpLFxuICAgIH0sXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIG1pc3NpbmdEZXBlbmRlbmN5OiBgW0Nhbm9uXSBNaXNzaW5nIHJlcXVpcmVkIGRlcGVuZGVuY3k6IFwie3tkZXB9fVwiLiBSdW46IG5wbSBpbnN0YWxsIC1EIHt7ZGVwfX1gLFxuICAgICAgbWlzc2luZ1NjcmlwdDogYFtDYW5vbl0gTWlzc2luZyByZXF1aXJlZCBucG0gc2NyaXB0IFwie3tzY3JpcHR9fVwiLiBBZGQgdG8gcGFja2FnZS5qc29uIHNjcmlwdHM6IHt7ZGVmaW5pdGlvbn19YCxcbiAgICAgIGludmFsaWRTY3JpcHQ6IGBbQ2Fub25dIFNjcmlwdCBcInt7c2NyaXB0fX1cIiBzaG91bGQgY29udGFpbiBcInt7ZXhwZWN0ZWR9fVwiLiBFeHBlY3RlZDoge3tkZWZpbml0aW9ufX1gLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGUoY29udGV4dCkge1xuICAgIC8vIE9ubHkgY2hlY2sgb25jZSBwZXIgbGludCBydW4sIG9uIHRoZSBmaXJzdCBmaWxlXG4gICAgaWYgKGhhc1JlcG9ydGVkKSB7XG4gICAgICByZXR1cm4ge31cbiAgICB9XG5cbiAgICAvLyBGaW5kIHRoZSBwcm9qZWN0IHJvb3QgKHdoZXJlIHBhY2thZ2UuanNvbiBpcylcbiAgICBjb25zdCBmaWxlbmFtZSA9IGNvbnRleHQuZmlsZW5hbWUgfHwgY29udGV4dC5nZXRGaWxlbmFtZSgpXG4gICAgbGV0IGRpciA9IHBhdGguZGlybmFtZShmaWxlbmFtZSlcbiAgICBsZXQgcGFja2FnZUpzb25QYXRoID0gJydcbiAgICBcbiAgICAvLyBXYWxrIHVwIHRvIGZpbmQgcGFja2FnZS5qc29uXG4gICAgd2hpbGUgKGRpciAhPT0gcGF0aC5kaXJuYW1lKGRpcikpIHtcbiAgICAgIGNvbnN0IGNhbmRpZGF0ZSA9IHBhdGguam9pbihkaXIsICdwYWNrYWdlLmpzb24nKVxuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoY2FuZGlkYXRlKSkge1xuICAgICAgICBwYWNrYWdlSnNvblBhdGggPSBjYW5kaWRhdGVcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGRpciA9IHBhdGguZGlybmFtZShkaXIpXG4gICAgfVxuXG4gICAgaWYgKCFwYWNrYWdlSnNvblBhdGgpIHtcbiAgICAgIHJldHVybiB7fVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBQcm9ncmFtKG5vZGUpIHtcbiAgICAgICAgaWYgKGhhc1JlcG9ydGVkKSByZXR1cm5cbiAgICAgICAgaGFzUmVwb3J0ZWQgPSB0cnVlXG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBwYWNrYWdlSnNvbiA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHBhY2thZ2VKc29uUGF0aCwgJ3V0ZjgnKSlcbiAgICAgICAgICBjb25zdCBkZXZEZXBzID0gcGFja2FnZUpzb24uZGV2RGVwZW5kZW5jaWVzIHx8IHt9XG4gICAgICAgICAgY29uc3QgZGVwcyA9IHBhY2thZ2VKc29uLmRlcGVuZGVuY2llcyB8fCB7fVxuICAgICAgICAgIGNvbnN0IGFsbERlcHMgPSB7IC4uLmRlcHMsIC4uLmRldkRlcHMgfVxuICAgICAgICAgIGNvbnN0IHNjcmlwdHMgPSBwYWNrYWdlSnNvbi5zY3JpcHRzIHx8IHt9XG5cbiAgICAgICAgICAvLyBDaGVjayBkZXBlbmRlbmNpZXNcbiAgICAgICAgICBmb3IgKGNvbnN0IGRlcCBvZiBSRVFVSVJFRF9ERVBFTkRFTkNJRVMpIHtcbiAgICAgICAgICAgIGlmICghYWxsRGVwc1tkZXBdKSB7XG4gICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ21pc3NpbmdEZXBlbmRlbmN5JyxcbiAgICAgICAgICAgICAgICBkYXRhOiB7IGRlcCB9LFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIENoZWNrIHNjcmlwdHNcbiAgICAgICAgICBmb3IgKGNvbnN0IFtzY3JpcHROYW1lLCB7IGNvbnRhaW5zLCBkZWZpbml0aW9uIH1dIG9mIE9iamVjdC5lbnRyaWVzKFJFUVVJUkVEX1NDUklQVFMpKSB7XG4gICAgICAgICAgICBpZiAoIXNjcmlwdHNbc2NyaXB0TmFtZV0pIHtcbiAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgbWVzc2FnZUlkOiAnbWlzc2luZ1NjcmlwdCcsXG4gICAgICAgICAgICAgICAgZGF0YTogeyBzY3JpcHQ6IHNjcmlwdE5hbWUsIGRlZmluaXRpb24gfSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXNjcmlwdHNbc2NyaXB0TmFtZV0uaW5jbHVkZXMoY29udGFpbnMpKSB7XG4gICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ2ludmFsaWRTY3JpcHQnLFxuICAgICAgICAgICAgICAgIGRhdGE6IHsgc2NyaXB0OiBzY3JpcHROYW1lLCBleHBlY3RlZDogY29udGFpbnMsIGRlZmluaXRpb24gfSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIElnbm9yZSBwYXJzZSBlcnJvcnNcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG5cbi8vIFJlc2V0IHRoZSBmbGFnIHdoZW4gdGhlIG1vZHVsZSBpcyByZWxvYWRlZCAoZm9yIHdhdGNoIG1vZGUpXG5leHBvcnQgZnVuY3Rpb24gcmVzZXRSZXBvcnRlZCgpIHtcbiAgaGFzUmVwb3J0ZWQgPSBmYWxzZVxufVxuXG5leHBvcnQgZGVmYXVsdCBydWxlXG4iXX0=
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZS1jYW5vbi1zZXR1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lc2xpbnQvcnVsZXMvcmVxdWlyZS1jYW5vbi1zZXR1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQTtBQUN4QixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUM1QixPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRWhFLE1BQU0sU0FBUyxHQUFHLHFCQUFxQixDQUFBO0FBQ3ZDLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUUxQyxvREFBb0Q7QUFDcEQsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFBO0FBRXZCLDRCQUE0QjtBQUM1QixNQUFNLHFCQUFxQixHQUFHLENBQUMsTUFBTSxFQUFFLHdCQUF3QixDQUFDLENBQUE7QUFFaEUsdUhBQXVIO0FBQ3ZILE1BQU0sZ0JBQWdCLEdBQTZEO0lBQ2pGLE1BQU0sRUFBRTtRQUNOLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLFVBQVUsRUFBRSxrQkFBa0I7S0FDL0I7SUFDRCxLQUFLLEVBQUU7UUFDTCxRQUFRLEVBQUUsU0FBUztRQUNuQixVQUFVLEVBQUUseURBQXlEO0tBQ3RFO0lBQ0QsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLFFBQVE7UUFDbEIsVUFBVSxFQUFFLHVCQUF1QjtLQUNwQztJQUNELGFBQWEsRUFBRTtRQUNiLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLFVBQVUsRUFBRSxpTEFBaUw7S0FDOUw7SUFDRCxFQUFFLEVBQUU7UUFDRixRQUFRLEVBQUUsS0FBSztRQUNmLFVBQVUsRUFBRSxzQkFBc0I7S0FDbkM7SUFDRCxLQUFLLEVBQUU7UUFDTCxRQUFRLEVBQUUsY0FBYztRQUN4QixVQUFVLEVBQUUseUJBQXlCO0tBQ3RDO0lBQ0QsY0FBYyxFQUFFO1FB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O29CQUNILENBQUM7b0JBRUQsZ0JBQWdCO29CQUNoQixLQUFLLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQzt3QkFDdEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDOzRCQUN6QixPQUFPLENBQUMsTUFBTSxDQUFDO2dDQUNiLElBQUk7Z0NBQ0osU0FBUyxFQUFFLGVBQWU7Z0NBQzFCLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFOzZCQUN6QyxDQUFDLENBQUE7d0JBQ0osQ0FBQzs2QkFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDOzRCQUNuRCxPQUFPLENBQUMsTUFBTSxDQUFDO2dDQUNiLElBQUk7Z0NBQ0osU0FBUyxFQUFFLGVBQWU7Z0NBQzFCLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7NkJBQzdELENBQUMsQ0FBQTt3QkFDSixDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztnQkFBQyxNQUFNLENBQUM7b0JBQ1Asc0JBQXNCO2dCQUN4QixDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUE7SUFDSCxDQUFDO0NBQ0YsQ0FBQTtBQUVELDhEQUE4RDtBQUM5RCxNQUFNLFVBQVUsYUFBYTtJQUMzQixXQUFXLEdBQUcsS0FBSyxDQUFBO0FBQ3JCLENBQUM7QUFFRCxlQUFlLElBQUksQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gJ2VzbGludCdcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJ1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IHsgZ2V0Q2Fub25VcmwsIGdldENhbm9uUGF0dGVybiB9IGZyb20gJy4uL3V0aWxzL2Nhbm9uLmpzJ1xuXG5jb25zdCBSVUxFX05BTUUgPSAncmVxdWlyZS1jYW5vbi1zZXR1cCdcbmNvbnN0IHBhdHRlcm4gPSBnZXRDYW5vblBhdHRlcm4oUlVMRV9OQU1FKVxuXG4vLyBUcmFjayBpZiB3ZSd2ZSBhbHJlYWR5IHJlcG9ydGVkIGZvciB0aGlzIGxpbnQgcnVuXG5sZXQgaGFzUmVwb3J0ZWQgPSBmYWxzZVxuXG4vLyBSZXF1aXJlZCBkZXYgZGVwZW5kZW5jaWVzXG5jb25zdCBSRVFVSVJFRF9ERVBFTkRFTkNJRVMgPSBbJ2tuaXAnLCAnQGdhbGxvcC5zb2Z0d2FyZS9jYW5vbiddXG5cbi8vIFJlcXVpcmVkIG5wbSBzY3JpcHRzIChrZXkgPSBzY3JpcHQgbmFtZSwgdmFsdWUgPSB7IGNvbnRhaW5zOiBzdHJpbmcgdG8gY2hlY2sgZm9yLCBkZWZpbml0aW9uOiBleGFjdCBzY3JpcHQgdG8gYWRkIH0pXG5jb25zdCBSRVFVSVJFRF9TQ1JJUFRTOiBSZWNvcmQ8c3RyaW5nLCB7IGNvbnRhaW5zOiBzdHJpbmc7IGRlZmluaXRpb246IHN0cmluZyB9PiA9IHtcbiAgdW51c2VkOiB7XG4gICAgY29udGFpbnM6ICdrbmlwJyxcbiAgICBkZWZpbml0aW9uOiAnXCJ1bnVzZWRcIjogXCJrbmlwXCInLFxuICB9LFxuICBjaGVjazoge1xuICAgIGNvbnRhaW5zOiAnbnBtIHJ1bicsXG4gICAgZGVmaW5pdGlvbjogJ1wiY2hlY2tcIjogXCJucG0gcnVuIGxpbnQgJiYgbnBtIHJ1biB0cyAmJiBucG0gcnVuIHVudXNlZFwiJyxcbiAgfSxcbiAgbGludDoge1xuICAgIGNvbnRhaW5zOiAnZXNsaW50JyxcbiAgICBkZWZpbml0aW9uOiAnXCJsaW50XCI6IFwiZXNsaW50IHNyYy9cIicsXG4gIH0sXG4gICdsaW50OmdhbGxvcCc6IHtcbiAgICBjb250YWluczogJ2VzbGludCcsXG4gICAgZGVmaW5pdGlvbjogYFwibGludDpnYWxsb3BcIjogXCJlc2xpbnQgJ3NyYy9hcHAvKiovX2Jsb2Nrcy8nIC0tcnVsZSAnZ2FsbG9wL25vLWNsaWVudC1ibG9ja3M6IHdhcm4nIC0tcnVsZSAnZ2FsbG9wL25vLWNvbnRhaW5lci1pbi1zZWN0aW9uOiB3YXJuJyAtLXJ1bGUgJ2dhbGxvcC9wcmVmZXItY29tcG9uZW50LXByb3BzOiB3YXJuJ1wiYCxcbiAgfSxcbiAgdHM6IHtcbiAgICBjb250YWluczogJ3RzYycsXG4gICAgZGVmaW5pdGlvbjogJ1widHNcIjogXCJ0c2MgLS1ub0VtaXRcIicsXG4gIH0sXG4gIGF1ZGl0OiB7XG4gICAgY29udGFpbnM6ICdnYWxsb3AgYXVkaXQnLFxuICAgIGRlZmluaXRpb246ICdcImF1ZGl0XCI6IFwiZ2FsbG9wIGF1ZGl0XCInLFxuICB9LFxuICAnYXVkaXQ6c3RyaWN0Jzoge1xuICAgIGNvbnRhaW5zOiAnZ2FsbG9wIGF1ZGl0JyxcbiAgICBkZWZpbml0aW9uOiAnXCJhdWRpdDpzdHJpY3RcIjogXCJnYWxsb3AgYXVkaXQgLS1zdHJpY3RcIicsXG4gIH0sXG4gICdhdWRpdDpqc29uJzoge1xuICAgIGNvbnRhaW5zOiAnZ2FsbG9wIGF1ZGl0JyxcbiAgICBkZWZpbml0aW9uOiAnXCJhdWRpdDpqc29uXCI6IFwiZ2FsbG9wIGF1ZGl0IC0tanNvblwiJyxcbiAgfSxcbiAgJ2dlbmVyYXRlOmFpLXJ1bGVzJzoge1xuICAgIGNvbnRhaW5zOiAnZ2FsbG9wIGdlbmVyYXRlJyxcbiAgICBkZWZpbml0aW9uOiAnXCJnZW5lcmF0ZTphaS1ydWxlc1wiOiBcImdhbGxvcCBnZW5lcmF0ZSAuY3Vyc29ycnVsZXMgJiYgZ2FsbG9wIGdlbmVyYXRlIC5naXRodWIvY29waWxvdC1pbnN0cnVjdGlvbnMubWRcIicsXG4gIH0sXG4gICd1cGRhdGU6Y2Fub24nOiB7XG4gICAgY29udGFpbnM6ICdAZ2FsbG9wLnNvZnR3YXJlL2Nhbm9uJyxcbiAgICBkZWZpbml0aW9uOiAnXCJ1cGRhdGU6Y2Fub25cIjogXCJucG0gdXBkYXRlIEBnYWxsb3Auc29mdHdhcmUvY2Fub25cIicsXG4gIH0sXG59XG5cbmNvbnN0IHJ1bGU6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjogcGF0dGVybj8uc3VtbWFyeSB8fCAnUmVxdWlyZSBDYW5vbiBzZXR1cCBpbiBwYWNrYWdlLmpzb24nLFxuICAgICAgcmVjb21tZW5kZWQ6IHRydWUsXG4gICAgICB1cmw6IGdldENhbm9uVXJsKFJVTEVfTkFNRSksXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgbWlzc2luZ0RlcGVuZGVuY3k6IGBbQ2Fub25dIE1pc3NpbmcgcmVxdWlyZWQgZGVwZW5kZW5jeTogXCJ7e2RlcH19XCIuIFJ1bjogbnBtIGluc3RhbGwgLUQge3tkZXB9fWAsXG4gICAgICBtaXNzaW5nU2NyaXB0OiBgW0Nhbm9uXSBNaXNzaW5nIHJlcXVpcmVkIG5wbSBzY3JpcHQgXCJ7e3NjcmlwdH19XCIuIEFkZCB0byBwYWNrYWdlLmpzb24gc2NyaXB0czoge3tkZWZpbml0aW9ufX1gLFxuICAgICAgaW52YWxpZFNjcmlwdDogYFtDYW5vbl0gU2NyaXB0IFwie3tzY3JpcHR9fVwiIHNob3VsZCBjb250YWluIFwie3tleHBlY3RlZH19XCIuIEV4cGVjdGVkOiB7e2RlZmluaXRpb259fWAsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZShjb250ZXh0KSB7XG4gICAgLy8gT25seSBjaGVjayBvbmNlIHBlciBsaW50IHJ1biwgb24gdGhlIGZpcnN0IGZpbGVcbiAgICBpZiAoaGFzUmVwb3J0ZWQpIHtcbiAgICAgIHJldHVybiB7fVxuICAgIH1cblxuICAgIC8vIEZpbmQgdGhlIHByb2plY3Qgcm9vdCAod2hlcmUgcGFja2FnZS5qc29uIGlzKVxuICAgIGNvbnN0IGZpbGVuYW1lID0gY29udGV4dC5maWxlbmFtZSB8fCBjb250ZXh0LmdldEZpbGVuYW1lKClcbiAgICBsZXQgZGlyID0gcGF0aC5kaXJuYW1lKGZpbGVuYW1lKVxuICAgIGxldCBwYWNrYWdlSnNvblBhdGggPSAnJ1xuICAgIFxuICAgIC8vIFdhbGsgdXAgdG8gZmluZCBwYWNrYWdlLmpzb25cbiAgICB3aGlsZSAoZGlyICE9PSBwYXRoLmRpcm5hbWUoZGlyKSkge1xuICAgICAgY29uc3QgY2FuZGlkYXRlID0gcGF0aC5qb2luKGRpciwgJ3BhY2thZ2UuanNvbicpXG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhjYW5kaWRhdGUpKSB7XG4gICAgICAgIHBhY2thZ2VKc29uUGF0aCA9IGNhbmRpZGF0ZVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgZGlyID0gcGF0aC5kaXJuYW1lKGRpcilcbiAgICB9XG5cbiAgICBpZiAoIXBhY2thZ2VKc29uUGF0aCkge1xuICAgICAgcmV0dXJuIHt9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIFByb2dyYW0obm9kZSkge1xuICAgICAgICBpZiAoaGFzUmVwb3J0ZWQpIHJldHVyblxuICAgICAgICBoYXNSZXBvcnRlZCA9IHRydWVcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHBhY2thZ2VKc29uID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocGFja2FnZUpzb25QYXRoLCAndXRmOCcpKVxuICAgICAgICAgIGNvbnN0IGRldkRlcHMgPSBwYWNrYWdlSnNvbi5kZXZEZXBlbmRlbmNpZXMgfHwge31cbiAgICAgICAgICBjb25zdCBkZXBzID0gcGFja2FnZUpzb24uZGVwZW5kZW5jaWVzIHx8IHt9XG4gICAgICAgICAgY29uc3QgYWxsRGVwcyA9IHsgLi4uZGVwcywgLi4uZGV2RGVwcyB9XG4gICAgICAgICAgY29uc3Qgc2NyaXB0cyA9IHBhY2thZ2VKc29uLnNjcmlwdHMgfHwge31cblxuICAgICAgICAgIC8vIENoZWNrIGRlcGVuZGVuY2llc1xuICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIFJFUVVJUkVEX0RFUEVOREVOQ0lFUykge1xuICAgICAgICAgICAgaWYgKCFhbGxEZXBzW2RlcF0pIHtcbiAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgbWVzc2FnZUlkOiAnbWlzc2luZ0RlcGVuZGVuY3knLFxuICAgICAgICAgICAgICAgIGRhdGE6IHsgZGVwIH0sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQ2hlY2sgc2NyaXB0c1xuICAgICAgICAgIGZvciAoY29uc3QgW3NjcmlwdE5hbWUsIHsgY29udGFpbnMsIGRlZmluaXRpb24gfV0gb2YgT2JqZWN0LmVudHJpZXMoUkVRVUlSRURfU0NSSVBUUykpIHtcbiAgICAgICAgICAgIGlmICghc2NyaXB0c1tzY3JpcHROYW1lXSkge1xuICAgICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdtaXNzaW5nU2NyaXB0JyxcbiAgICAgICAgICAgICAgICBkYXRhOiB7IHNjcmlwdDogc2NyaXB0TmFtZSwgZGVmaW5pdGlvbiB9LFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSBlbHNlIGlmICghc2NyaXB0c1tzY3JpcHROYW1lXS5pbmNsdWRlcyhjb250YWlucykpIHtcbiAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgbWVzc2FnZUlkOiAnaW52YWxpZFNjcmlwdCcsXG4gICAgICAgICAgICAgICAgZGF0YTogeyBzY3JpcHQ6IHNjcmlwdE5hbWUsIGV4cGVjdGVkOiBjb250YWlucywgZGVmaW5pdGlvbiB9LFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gSWdub3JlIHBhcnNlIGVycm9yc1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH1cbiAgfSxcbn1cblxuLy8gUmVzZXQgdGhlIGZsYWcgd2hlbiB0aGUgbW9kdWxlIGlzIHJlbG9hZGVkIChmb3Igd2F0Y2ggbW9kZSlcbmV4cG9ydCBmdW5jdGlvbiByZXNldFJlcG9ydGVkKCkge1xuICBoYXNSZXBvcnRlZCA9IGZhbHNlXG59XG5cbmV4cG9ydCBkZWZhdWx0IHJ1bGVcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,87 +1,111 @@
|
|
|
1
1
|
# Pattern 006: Block Naming
|
|
2
2
|
|
|
3
|
-
**Canon Version:** 1.0
|
|
4
|
-
**Status:** Stable
|
|
5
|
-
**Category:** Structure
|
|
3
|
+
**Canon Version:** 1.0
|
|
4
|
+
**Status:** Stable
|
|
5
|
+
**Category:** Structure
|
|
6
6
|
**Enforcement:** Documentation
|
|
7
7
|
|
|
8
8
|
## Decision
|
|
9
9
|
|
|
10
|
-
Block files use `{type}-{n}.tsx`
|
|
10
|
+
Block files are co-located in `_blocks/` subdirectories alongside page routes. Files use `{type}.tsx` naming for singletons and `{type}-{n}.tsx` (starting at `-2`) when a page has multiple blocks of the same type. Function exports use PascalCase.
|
|
11
11
|
|
|
12
12
|
## Rationale
|
|
13
13
|
|
|
14
|
-
1. **
|
|
15
|
-
2. **
|
|
16
|
-
3. **
|
|
17
|
-
4. **
|
|
14
|
+
1. **Co-location** — Blocks live next to the page that uses them, making ownership explicit
|
|
15
|
+
2. **Page-local naming** — No global numbering; names are scoped to the page
|
|
16
|
+
3. **Consistent exports** — PascalCase matches React conventions
|
|
17
|
+
4. **Private folders** — `_blocks/` uses Next.js private folder convention, excluded from routing
|
|
18
18
|
|
|
19
19
|
## Naming Rules
|
|
20
20
|
|
|
21
21
|
### File Names
|
|
22
22
|
|
|
23
|
-
- Lowercase with hyphens: `hero
|
|
24
|
-
-
|
|
25
|
-
-
|
|
23
|
+
- Lowercase with hyphens: `hero.tsx`, `content-2.tsx`
|
|
24
|
+
- Singleton: `{type}.tsx` when page has one block of that type
|
|
25
|
+
- Multiple: first is `{type}.tsx`, subsequent are `{type}-2.tsx`, `{type}-3.tsx`, etc.
|
|
26
|
+
- Numbering based on JSX render order in the page
|
|
26
27
|
|
|
27
28
|
### Function Exports
|
|
28
29
|
|
|
29
30
|
- PascalCase matching file name
|
|
30
|
-
- `hero
|
|
31
|
-
- `
|
|
31
|
+
- `hero.tsx` → `function Hero()`
|
|
32
|
+
- `content-2.tsx` → `function Content2()`
|
|
33
|
+
- `call-to-action.tsx` → `function CallToAction()`
|
|
34
|
+
|
|
35
|
+
### Imports
|
|
36
|
+
|
|
37
|
+
- Use relative paths from page.tsx: `import Hero from './_blocks/hero'`
|
|
32
38
|
|
|
33
39
|
## Block Types
|
|
34
40
|
|
|
35
41
|
| Type | Description |
|
|
36
42
|
|------|-------------|
|
|
37
|
-
| `hero
|
|
38
|
-
| `section
|
|
39
|
-
| `content
|
|
40
|
-
| `showcase
|
|
41
|
-
| `cover
|
|
42
|
-
| `contact
|
|
43
|
-
| `testimonial
|
|
44
|
-
| `blog
|
|
45
|
-
| `pricing
|
|
46
|
-
| `process
|
|
47
|
-
| `about
|
|
48
|
-
| `services
|
|
49
|
-
| `call-to-action
|
|
50
|
-
| `partners
|
|
51
|
-
| `accordion
|
|
52
|
-
| `archive
|
|
53
|
-
| `application
|
|
54
|
-
| `business-info
|
|
55
|
-
| `sidebar
|
|
56
|
-
| `portfolio
|
|
43
|
+
| `hero` | Hero/banner sections |
|
|
44
|
+
| `section` | General content sections |
|
|
45
|
+
| `content` | Content/feature sections |
|
|
46
|
+
| `showcase` | Portfolio/gallery showcases |
|
|
47
|
+
| `cover` | Full-width image/video covers |
|
|
48
|
+
| `contact` | Contact forms and info |
|
|
49
|
+
| `testimonial` | Testimonials |
|
|
50
|
+
| `blog` | Blog-related sections |
|
|
51
|
+
| `pricing` | Pricing tables |
|
|
52
|
+
| `process` | Process/steps sections |
|
|
53
|
+
| `about` | About sections |
|
|
54
|
+
| `services` | Services sections |
|
|
55
|
+
| `call-to-action` | CTA sections |
|
|
56
|
+
| `partners` | Partner/logo clouds |
|
|
57
|
+
| `accordion` | FAQ/accordion sections |
|
|
58
|
+
| `archive` | Archive/listing sections |
|
|
59
|
+
| `application` | Job application forms |
|
|
60
|
+
| `business-info` | Business information |
|
|
61
|
+
| `sidebar` | Sidebar panels |
|
|
62
|
+
| `portfolio` | Portfolio grids |
|
|
63
|
+
| `form` | Form sections |
|
|
64
|
+
| `shopping` | Shopping/e-commerce sections |
|
|
57
65
|
|
|
58
66
|
## Examples
|
|
59
67
|
|
|
60
68
|
### Good
|
|
61
69
|
|
|
62
70
|
```
|
|
63
|
-
src/
|
|
64
|
-
├──
|
|
65
|
-
|
|
66
|
-
├──
|
|
67
|
-
├──
|
|
71
|
+
src/app/(default)/furniture/
|
|
72
|
+
├── page.tsx
|
|
73
|
+
└── _blocks/
|
|
74
|
+
├── hero.tsx → export default function Hero()
|
|
75
|
+
├── content.tsx → export default function Content()
|
|
76
|
+
├── call-to-action.tsx → export default function CallToAction()
|
|
77
|
+
├── cover.tsx → export default function Cover()
|
|
78
|
+
└── testimonial.tsx → export default function Testimonial()
|
|
79
|
+
|
|
80
|
+
src/app/(default)/residential/
|
|
81
|
+
├── page.tsx
|
|
82
|
+
└── _blocks/
|
|
83
|
+
├── hero.tsx → export default function Hero()
|
|
84
|
+
├── content.tsx → export default function Content()
|
|
85
|
+
├── content-2.tsx → export default function Content2()
|
|
86
|
+
├── content-3.tsx → export default function Content3()
|
|
87
|
+
├── cover.tsx → export default function Cover()
|
|
88
|
+
└── testimonial.tsx → export default function Testimonial()
|
|
68
89
|
```
|
|
69
90
|
|
|
70
91
|
### Bad
|
|
71
92
|
|
|
72
93
|
```
|
|
73
94
|
src/blocks/
|
|
74
|
-
├── Hero.tsx ❌
|
|
95
|
+
├── Hero.tsx ❌ Centralized, not co-located
|
|
75
96
|
├── hero_1.tsx ❌ Underscore instead of hyphen
|
|
76
97
|
├── HeroSection.tsx ❌ Wrong naming pattern
|
|
98
|
+
|
|
99
|
+
src/app/(default)/furniture/_blocks/
|
|
100
|
+
├── hero-1.tsx ❌ Unnecessary number for singleton
|
|
77
101
|
├── cta-1.tsx ❌ Abbreviation not in type list
|
|
78
102
|
```
|
|
79
103
|
|
|
80
104
|
## Enforcement
|
|
81
105
|
|
|
82
|
-
- **Method:** Code review /
|
|
83
|
-
-
|
|
106
|
+
- **Method:** Code review / ESLint (`gallop/block-naming-convention`)
|
|
107
|
+
- ESLint rule validates export name matches filename
|
|
84
108
|
|
|
85
109
|
## References
|
|
86
110
|
|
|
87
|
-
- `src/
|
|
111
|
+
- `src/app/**/_blocks/` — All block files follow this pattern
|