@gallop.software/canon 2.13.0 → 2.15.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/eslint/index.d.ts +2 -0
- package/dist/eslint/index.js +4 -1
- package/dist/eslint/rules/no-native-date.d.ts +3 -0
- package/dist/eslint/rules/no-native-date.js +62 -0
- package/dist/eslint/rules/prefer-component-props.js +5 -1
- package/package.json +1 -1
- package/patterns/027-luxon-dates.md +4 -3
- package/schema.json +2 -2
package/dist/eslint/index.d.ts
CHANGED
|
@@ -31,6 +31,7 @@ declare const plugin: {
|
|
|
31
31
|
'no-native-intersection-observer': import("eslint").Rule.RuleModule;
|
|
32
32
|
'no-component-in-blocks': import("eslint").Rule.RuleModule;
|
|
33
33
|
'prefer-list-components': import("eslint").Rule.RuleModule;
|
|
34
|
+
'no-native-date': import("eslint").Rule.RuleModule;
|
|
34
35
|
};
|
|
35
36
|
/**
|
|
36
37
|
* Recommended rule configurations - spread into your ESLint config
|
|
@@ -50,6 +51,7 @@ declare const plugin: {
|
|
|
50
51
|
readonly 'gallop/no-native-intersection-observer': "warn";
|
|
51
52
|
readonly 'gallop/no-component-in-blocks': "warn";
|
|
52
53
|
readonly 'gallop/prefer-list-components': "warn";
|
|
54
|
+
readonly 'gallop/no-native-date': "warn";
|
|
53
55
|
};
|
|
54
56
|
};
|
|
55
57
|
export default plugin;
|
package/dist/eslint/index.js
CHANGED
|
@@ -11,6 +11,7 @@ import noDataImports from './rules/no-data-imports.js';
|
|
|
11
11
|
import noNativeIntersectionObserver from './rules/no-native-intersection-observer.js';
|
|
12
12
|
import noComponentInBlocks from './rules/no-component-in-blocks.js';
|
|
13
13
|
import preferListComponents from './rules/prefer-list-components.js';
|
|
14
|
+
import noNativeDate from './rules/no-native-date.js';
|
|
14
15
|
/**
|
|
15
16
|
* All Canon ESLint rules with recommended severity levels
|
|
16
17
|
*/
|
|
@@ -28,6 +29,7 @@ const recommended = {
|
|
|
28
29
|
'gallop/no-native-intersection-observer': 'warn',
|
|
29
30
|
'gallop/no-component-in-blocks': 'warn',
|
|
30
31
|
'gallop/prefer-list-components': 'warn',
|
|
32
|
+
'gallop/no-native-date': 'warn',
|
|
31
33
|
};
|
|
32
34
|
const plugin = {
|
|
33
35
|
meta: {
|
|
@@ -48,6 +50,7 @@ const plugin = {
|
|
|
48
50
|
'no-native-intersection-observer': noNativeIntersectionObserver,
|
|
49
51
|
'no-component-in-blocks': noComponentInBlocks,
|
|
50
52
|
'prefer-list-components': preferListComponents,
|
|
53
|
+
'no-native-date': noNativeDate,
|
|
51
54
|
},
|
|
52
55
|
/**
|
|
53
56
|
* Recommended rule configurations - spread into your ESLint config
|
|
@@ -56,4 +59,4 @@ const plugin = {
|
|
|
56
59
|
recommended,
|
|
57
60
|
};
|
|
58
61
|
export default plugin;
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXNsaW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sY0FBYyxNQUFNLDZCQUE2QixDQUFBO0FBQ3hELE9BQU8sb0JBQW9CLE1BQU0sb0NBQW9DLENBQUE7QUFDckUsT0FBTyxvQkFBb0IsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNwRSxPQUFPLDBCQUEwQixNQUFNLHlDQUF5QyxDQUFBO0FBQ2hGLE9BQU8sc0JBQXNCLE1BQU0scUNBQXFDLENBQUE7QUFDeEUsT0FBTyxzQkFBc0IsTUFBTSxxQ0FBcUMsQ0FBQTtBQUN4RSxPQUFPLGNBQWMsTUFBTSw2QkFBNkIsQ0FBQTtBQUN4RCxPQUFPLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFBO0FBQzlELE9BQU8sa0JBQWtCLE1BQU0sa0NBQWtDLENBQUE7QUFDakUsT0FBTyxhQUFhLE1BQU0sNEJBQTRCLENBQUE7QUFDdEQsT0FBTyw0QkFBNEIsTUFBTSw0Q0FBNEMsQ0FBQTtBQUNyRixPQUFPLG1CQUFtQixNQUFNLG1DQUFtQyxDQUFBO0FBQ25FLE9BQU8sb0JBQW9CLE1BQU0sbUNBQW1DLENBQUE7QUFDcEUsT0FBTyxZQUFZLE1BQU0sMkJBQTJCLENBQUE7QUFFcEQ7O0dBRUc7QUFDSCxNQUFNLFdBQVcsR0FBRztJQUNsQix5QkFBeUIsRUFBRSxNQUFNO0lBQ2pDLGdDQUFnQyxFQUFFLE1BQU07SUFDeEMsK0JBQStCLEVBQUUsTUFBTTtJQUN2QyxxQ0FBcUMsRUFBRSxNQUFNO0lBQzdDLGlDQUFpQyxFQUFFLE1BQU07SUFDekMsaUNBQWlDLEVBQUUsTUFBTTtJQUN6Qyx5QkFBeUIsRUFBRSxNQUFNO0lBQ2pDLDRCQUE0QixFQUFFLE1BQU07SUFDcEMsOEJBQThCLEVBQUUsTUFBTTtJQUN0Qyx3QkFBd0IsRUFBRSxNQUFNO0lBQ2hDLHdDQUF3QyxFQUFFLE1BQU07SUFDaEQsK0JBQStCLEVBQUUsTUFBTTtJQUN2QywrQkFBK0IsRUFBRSxNQUFNO0lBQ3ZDLHVCQUF1QixFQUFFLE1BQU07Q0FDdkIsQ0FBQTtBQUVWLE1BQU0sTUFBTSxHQUFHO0lBQ2IsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLHNCQUFzQjtRQUM1QixPQUFPLEVBQUUsUUFBUTtLQUNsQjtJQUNELEtBQUssRUFBRTtRQUNMLGtCQUFrQixFQUFFLGNBQWM7UUFDbEMseUJBQXlCLEVBQUUsb0JBQW9CO1FBQy9DLHdCQUF3QixFQUFFLG9CQUFvQjtRQUM5Qyw4QkFBOEIsRUFBRSwwQkFBMEI7UUFDMUQsMEJBQTBCLEVBQUUsc0JBQXNCO1FBQ2xELDBCQUEwQixFQUFFLHNCQUFzQjtRQUNsRCxrQkFBa0IsRUFBRSxjQUFjO1FBQ2xDLHFCQUFxQixFQUFFLGlCQUFpQjtRQUN4Qyx1QkFBdUIsRUFBRSxrQkFBa0I7UUFDM0MsaUJBQWlCLEVBQUUsYUFBYTtRQUNoQyxpQ0FBaUMsRUFBRSw0QkFBNEI7UUFDL0Qsd0JBQXdCLEVBQUUsbUJBQW1CO1FBQzdDLHdCQUF3QixFQUFFLG9CQUFvQjtRQUM5QyxnQkFBZ0IsRUFBRSxZQUFZO0tBQy9CO0lBQ0Q7OztPQUdHO0lBQ0gsV0FBVztDQUNaLENBQUE7QUFFRCxlQUFlLE1BQU0sQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBub0NsaWVudEJsb2NrcyBmcm9tICcuL3J1bGVzL25vLWNsaWVudC1ibG9ja3MuanMnXG5pbXBvcnQgbm9Db250YWluZXJJblNlY3Rpb24gZnJvbSAnLi9ydWxlcy9uby1jb250YWluZXItaW4tc2VjdGlvbi5qcydcbmltcG9ydCBwcmVmZXJDb21wb25lbnRQcm9wcyBmcm9tICcuL3J1bGVzL3ByZWZlci1jb21wb25lbnQtcHJvcHMuanMnXG5pbXBvcnQgcHJlZmVyVHlwb2dyYXBoeUNvbXBvbmVudHMgZnJvbSAnLi9ydWxlcy9wcmVmZXItdHlwb2dyYXBoeS1jb21wb25lbnRzLmpzJ1xuaW1wb3J0IHByZWZlckxheW91dENvbXBvbmVudHMgZnJvbSAnLi9ydWxlcy9wcmVmZXItbGF5b3V0LWNvbXBvbmVudHMuanMnXG5pbXBvcnQgYmFja2dyb3VuZEltYWdlUm91bmRlZCBmcm9tICcuL3J1bGVzL2JhY2tncm91bmQtaW1hZ2Utcm91bmRlZC5qcydcbmltcG9ydCBub0lubGluZVN0eWxlcyBmcm9tICcuL3J1bGVzL25vLWlubGluZS1zdHlsZXMuanMnXG5pbXBvcnQgbm9BcmJpdHJhcnlDb2xvcnMgZnJvbSAnLi9ydWxlcy9uby1hcmJpdHJhcnktY29sb3JzLmpzJ1xuaW1wb3J0IG5vQ3Jvc3Nab25lSW1wb3J0cyBmcm9tICcuL3J1bGVzL25vLWNyb3NzLXpvbmUtaW1wb3J0cy5qcydcbmltcG9ydCBub0RhdGFJbXBvcnRzIGZyb20gJy4vcnVsZXMvbm8tZGF0YS1pbXBvcnRzLmpzJ1xuaW1wb3J0IG5vTmF0aXZlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgZnJvbSAnLi9ydWxlcy9uby1uYXRpdmUtaW50ZXJzZWN0aW9uLW9ic2VydmVyLmpzJ1xuaW1wb3J0IG5vQ29tcG9uZW50SW5CbG9ja3MgZnJvbSAnLi9ydWxlcy9uby1jb21wb25lbnQtaW4tYmxvY2tzLmpzJ1xuaW1wb3J0IHByZWZlckxpc3RDb21wb25lbnRzIGZyb20gJy4vcnVsZXMvcHJlZmVyLWxpc3QtY29tcG9uZW50cy5qcydcbmltcG9ydCBub05hdGl2ZURhdGUgZnJvbSAnLi9ydWxlcy9uby1uYXRpdmUtZGF0ZS5qcydcblxuLyoqXG4gKiBBbGwgQ2Fub24gRVNMaW50IHJ1bGVzIHdpdGggcmVjb21tZW5kZWQgc2V2ZXJpdHkgbGV2ZWxzXG4gKi9cbmNvbnN0IHJlY29tbWVuZGVkID0ge1xuICAnZ2FsbG9wL25vLWNsaWVudC1ibG9ja3MnOiAnd2FybicsXG4gICdnYWxsb3Avbm8tY29udGFpbmVyLWluLXNlY3Rpb24nOiAnd2FybicsXG4gICdnYWxsb3AvcHJlZmVyLWNvbXBvbmVudC1wcm9wcyc6ICd3YXJuJyxcbiAgJ2dhbGxvcC9wcmVmZXItdHlwb2dyYXBoeS1jb21wb25lbnRzJzogJ3dhcm4nLFxuICAnZ2FsbG9wL3ByZWZlci1sYXlvdXQtY29tcG9uZW50cyc6ICd3YXJuJyxcbiAgJ2dhbGxvcC9iYWNrZ3JvdW5kLWltYWdlLXJvdW5kZWQnOiAnd2FybicsXG4gICdnYWxsb3Avbm8taW5saW5lLXN0eWxlcyc6ICd3YXJuJyxcbiAgJ2dhbGxvcC9uby1hcmJpdHJhcnktY29sb3JzJzogJ3dhcm4nLFxuICAnZ2FsbG9wL25vLWNyb3NzLXpvbmUtaW1wb3J0cyc6ICd3YXJuJyxcbiAgJ2dhbGxvcC9uby1kYXRhLWltcG9ydHMnOiAnd2FybicsXG4gICdnYWxsb3Avbm8tbmF0aXZlLWludGVyc2VjdGlvbi1vYnNlcnZlcic6ICd3YXJuJyxcbiAgJ2dhbGxvcC9uby1jb21wb25lbnQtaW4tYmxvY2tzJzogJ3dhcm4nLFxuICAnZ2FsbG9wL3ByZWZlci1saXN0LWNvbXBvbmVudHMnOiAnd2FybicsXG4gICdnYWxsb3Avbm8tbmF0aXZlLWRhdGUnOiAnd2FybicsXG59IGFzIGNvbnN0XG5cbmNvbnN0IHBsdWdpbiA9IHtcbiAgbWV0YToge1xuICAgIG5hbWU6ICdlc2xpbnQtcGx1Z2luLWdhbGxvcCcsXG4gICAgdmVyc2lvbjogJzIuMTIuMCcsXG4gIH0sXG4gIHJ1bGVzOiB7XG4gICAgJ25vLWNsaWVudC1ibG9ja3MnOiBub0NsaWVudEJsb2NrcyxcbiAgICAnbm8tY29udGFpbmVyLWluLXNlY3Rpb24nOiBub0NvbnRhaW5lckluU2VjdGlvbixcbiAgICAncHJlZmVyLWNvbXBvbmVudC1wcm9wcyc6IHByZWZlckNvbXBvbmVudFByb3BzLFxuICAgICdwcmVmZXItdHlwb2dyYXBoeS1jb21wb25lbnRzJzogcHJlZmVyVHlwb2dyYXBoeUNvbXBvbmVudHMsXG4gICAgJ3ByZWZlci1sYXlvdXQtY29tcG9uZW50cyc6IHByZWZlckxheW91dENvbXBvbmVudHMsXG4gICAgJ2JhY2tncm91bmQtaW1hZ2Utcm91bmRlZCc6IGJhY2tncm91bmRJbWFnZVJvdW5kZWQsXG4gICAgJ25vLWlubGluZS1zdHlsZXMnOiBub0lubGluZVN0eWxlcyxcbiAgICAnbm8tYXJiaXRyYXJ5LWNvbG9ycyc6IG5vQXJiaXRyYXJ5Q29sb3JzLFxuICAgICduby1jcm9zcy16b25lLWltcG9ydHMnOiBub0Nyb3NzWm9uZUltcG9ydHMsXG4gICAgJ25vLWRhdGEtaW1wb3J0cyc6IG5vRGF0YUltcG9ydHMsXG4gICAgJ25vLW5hdGl2ZS1pbnRlcnNlY3Rpb24tb2JzZXJ2ZXInOiBub05hdGl2ZUludGVyc2VjdGlvbk9ic2VydmVyLFxuICAgICduby1jb21wb25lbnQtaW4tYmxvY2tzJzogbm9Db21wb25lbnRJbkJsb2NrcyxcbiAgICAncHJlZmVyLWxpc3QtY29tcG9uZW50cyc6IHByZWZlckxpc3RDb21wb25lbnRzLFxuICAgICduby1uYXRpdmUtZGF0ZSc6IG5vTmF0aXZlRGF0ZSxcbiAgfSxcbiAgLyoqXG4gICAqIFJlY29tbWVuZGVkIHJ1bGUgY29uZmlndXJhdGlvbnMgLSBzcHJlYWQgaW50byB5b3VyIEVTTGludCBjb25maWdcbiAgICogQGV4YW1wbGUgcnVsZXM6IHsgLi4uZ2FsbG9wLnJlY29tbWVuZGVkIH1cbiAgICovXG4gIHJlY29tbWVuZGVkLFxufVxuXG5leHBvcnQgZGVmYXVsdCBwbHVnaW5cbiJdfQ==
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { getCanonUrl, getCanonPattern } from '../utils/canon.js';
|
|
2
|
+
const RULE_NAME = 'no-native-date';
|
|
3
|
+
const pattern = getCanonPattern(RULE_NAME);
|
|
4
|
+
const rule = {
|
|
5
|
+
meta: {
|
|
6
|
+
type: 'suggestion',
|
|
7
|
+
docs: {
|
|
8
|
+
description: pattern?.summary || 'Use Luxon DateTime, not native JavaScript Date',
|
|
9
|
+
recommended: true,
|
|
10
|
+
url: getCanonUrl(RULE_NAME),
|
|
11
|
+
},
|
|
12
|
+
messages: {
|
|
13
|
+
noNewDate: `[Canon ${pattern?.id || '027'}] Use Luxon's DateTime instead of new Date(). Native Date operates in the user's local timezone, causing inconsistencies. Import: import { DateTime } from 'luxon'`,
|
|
14
|
+
noDateNow: `[Canon ${pattern?.id || '027'}] Use Luxon's DateTime.now() instead of Date.now(). Import: import { DateTime } from 'luxon'`,
|
|
15
|
+
noDateParse: `[Canon ${pattern?.id || '027'}] Use Luxon's DateTime.fromISO() or DateTime.fromFormat() instead of Date.parse(). Import: import { DateTime } from 'luxon'`,
|
|
16
|
+
},
|
|
17
|
+
schema: [],
|
|
18
|
+
},
|
|
19
|
+
create(context) {
|
|
20
|
+
const filename = context.filename || context.getFilename();
|
|
21
|
+
// Only check files in src/ (blocks, components, hooks, etc.)
|
|
22
|
+
if (!filename.includes('/src/')) {
|
|
23
|
+
return {};
|
|
24
|
+
}
|
|
25
|
+
// Skip _scripts and _data folders
|
|
26
|
+
if (filename.includes('/_scripts/') || filename.includes('/_data/')) {
|
|
27
|
+
return {};
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
// Catch: new Date()
|
|
31
|
+
NewExpression(node) {
|
|
32
|
+
if (node.callee?.name === 'Date') {
|
|
33
|
+
context.report({
|
|
34
|
+
node,
|
|
35
|
+
messageId: 'noNewDate',
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
// Catch: Date.now() and Date.parse()
|
|
40
|
+
CallExpression(node) {
|
|
41
|
+
if (node.callee?.type === 'MemberExpression' &&
|
|
42
|
+
node.callee?.object?.name === 'Date') {
|
|
43
|
+
const methodName = node.callee?.property?.name;
|
|
44
|
+
if (methodName === 'now') {
|
|
45
|
+
context.report({
|
|
46
|
+
node,
|
|
47
|
+
messageId: 'noDateNow',
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
else if (methodName === 'parse') {
|
|
51
|
+
context.report({
|
|
52
|
+
node,
|
|
53
|
+
messageId: 'noDateParse',
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
export default rule;
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tbmF0aXZlLWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXNsaW50L3J1bGVzL25vLW5hdGl2ZS1kYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFaEUsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUE7QUFDbEMsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBRTFDLE1BQU0sSUFBSSxHQUFvQjtJQUM1QixJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsWUFBWTtRQUNsQixJQUFJLEVBQUU7WUFDSixXQUFXLEVBQ1QsT0FBTyxFQUFFLE9BQU8sSUFBSSxnREFBZ0Q7WUFDdEUsV0FBVyxFQUFFLElBQUk7WUFDakIsR0FBRyxFQUFFLFdBQVcsQ0FBQyxTQUFTLENBQUM7U0FDNUI7UUFDRCxRQUFRLEVBQUU7WUFDUixTQUFTLEVBQUUsVUFBVSxPQUFPLEVBQUUsRUFBRSxJQUFJLEtBQUssb0tBQW9LO1lBQzdNLFNBQVMsRUFBRSxVQUFVLE9BQU8sRUFBRSxFQUFFLElBQUksS0FBSyw4RkFBOEY7WUFDdkksV0FBVyxFQUFFLFVBQVUsT0FBTyxFQUFFLEVBQUUsSUFBSSxLQUFLLDZIQUE2SDtTQUN6SztRQUNELE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFFRCxNQUFNLENBQUMsT0FBTztRQUNaLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBRTFELDZEQUE2RDtRQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sRUFBRSxDQUFBO1FBQ1gsQ0FBQztRQUVELGtDQUFrQztRQUNsQyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3BFLE9BQU8sRUFBRSxDQUFBO1FBQ1gsQ0FBQztRQUVELE9BQU87WUFDTCxvQkFBb0I7WUFDcEIsYUFBYSxDQUFDLElBQVM7Z0JBQ3JCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7b0JBQ2pDLE9BQU8sQ0FBQyxNQUFNLENBQUM7d0JBQ2IsSUFBSTt3QkFDSixTQUFTLEVBQUUsV0FBVztxQkFDdkIsQ0FBQyxDQUFBO2dCQUNKLENBQUM7WUFDSCxDQUFDO1lBRUQscUNBQXFDO1lBQ3JDLGNBQWMsQ0FBQyxJQUFTO2dCQUN0QixJQUNFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxLQUFLLGtCQUFrQjtvQkFDeEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxLQUFLLE1BQU0sRUFDcEMsQ0FBQztvQkFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUE7b0JBRTlDLElBQUksVUFBVSxLQUFLLEtBQUssRUFBRSxDQUFDO3dCQUN6QixPQUFPLENBQUMsTUFBTSxDQUFDOzRCQUNiLElBQUk7NEJBQ0osU0FBUyxFQUFFLFdBQVc7eUJBQ3ZCLENBQUMsQ0FBQTtvQkFDSixDQUFDO3lCQUFNLElBQUksVUFBVSxLQUFLLE9BQU8sRUFBRSxDQUFDO3dCQUNsQyxPQUFPLENBQUMsTUFBTSxDQUFDOzRCQUNiLElBQUk7NEJBQ0osU0FBUyxFQUFFLGFBQWE7eUJBQ3pCLENBQUMsQ0FBQTtvQkFDSixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1NBQ0YsQ0FBQTtJQUNILENBQUM7Q0FDRixDQUFBO0FBRUQsZUFBZSxJQUFJLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tICdlc2xpbnQnXG5pbXBvcnQgeyBnZXRDYW5vblVybCwgZ2V0Q2Fub25QYXR0ZXJuIH0gZnJvbSAnLi4vdXRpbHMvY2Fub24uanMnXG5cbmNvbnN0IFJVTEVfTkFNRSA9ICduby1uYXRpdmUtZGF0ZSdcbmNvbnN0IHBhdHRlcm4gPSBnZXRDYW5vblBhdHRlcm4oUlVMRV9OQU1FKVxuXG5jb25zdCBydWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIHBhdHRlcm4/LnN1bW1hcnkgfHwgJ1VzZSBMdXhvbiBEYXRlVGltZSwgbm90IG5hdGl2ZSBKYXZhU2NyaXB0IERhdGUnLFxuICAgICAgcmVjb21tZW5kZWQ6IHRydWUsXG4gICAgICB1cmw6IGdldENhbm9uVXJsKFJVTEVfTkFNRSksXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgbm9OZXdEYXRlOiBgW0Nhbm9uICR7cGF0dGVybj8uaWQgfHwgJzAyNyd9XSBVc2UgTHV4b24ncyBEYXRlVGltZSBpbnN0ZWFkIG9mIG5ldyBEYXRlKCkuIE5hdGl2ZSBEYXRlIG9wZXJhdGVzIGluIHRoZSB1c2VyJ3MgbG9jYWwgdGltZXpvbmUsIGNhdXNpbmcgaW5jb25zaXN0ZW5jaWVzLiBJbXBvcnQ6IGltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nYCxcbiAgICAgIG5vRGF0ZU5vdzogYFtDYW5vbiAke3BhdHRlcm4/LmlkIHx8ICcwMjcnfV0gVXNlIEx1eG9uJ3MgRGF0ZVRpbWUubm93KCkgaW5zdGVhZCBvZiBEYXRlLm5vdygpLiBJbXBvcnQ6IGltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nYCxcbiAgICAgIG5vRGF0ZVBhcnNlOiBgW0Nhbm9uICR7cGF0dGVybj8uaWQgfHwgJzAyNyd9XSBVc2UgTHV4b24ncyBEYXRlVGltZS5mcm9tSVNPKCkgb3IgRGF0ZVRpbWUuZnJvbUZvcm1hdCgpIGluc3RlYWQgb2YgRGF0ZS5wYXJzZSgpLiBJbXBvcnQ6IGltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nYCxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCBmaWxlbmFtZSA9IGNvbnRleHQuZmlsZW5hbWUgfHwgY29udGV4dC5nZXRGaWxlbmFtZSgpXG5cbiAgICAvLyBPbmx5IGNoZWNrIGZpbGVzIGluIHNyYy8gKGJsb2NrcywgY29tcG9uZW50cywgaG9va3MsIGV0Yy4pXG4gICAgaWYgKCFmaWxlbmFtZS5pbmNsdWRlcygnL3NyYy8nKSkge1xuICAgICAgcmV0dXJuIHt9XG4gICAgfVxuXG4gICAgLy8gU2tpcCBfc2NyaXB0cyBhbmQgX2RhdGEgZm9sZGVyc1xuICAgIGlmIChmaWxlbmFtZS5pbmNsdWRlcygnL19zY3JpcHRzLycpIHx8IGZpbGVuYW1lLmluY2x1ZGVzKCcvX2RhdGEvJykpIHtcbiAgICAgIHJldHVybiB7fVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAvLyBDYXRjaDogbmV3IERhdGUoKVxuICAgICAgTmV3RXhwcmVzc2lvbihub2RlOiBhbnkpIHtcbiAgICAgICAgaWYgKG5vZGUuY2FsbGVlPy5uYW1lID09PSAnRGF0ZScpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZUlkOiAnbm9OZXdEYXRlJyxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICAvLyBDYXRjaDogRGF0ZS5ub3coKSBhbmQgRGF0ZS5wYXJzZSgpXG4gICAgICBDYWxsRXhwcmVzc2lvbihub2RlOiBhbnkpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIG5vZGUuY2FsbGVlPy50eXBlID09PSAnTWVtYmVyRXhwcmVzc2lvbicgJiZcbiAgICAgICAgICBub2RlLmNhbGxlZT8ub2JqZWN0Py5uYW1lID09PSAnRGF0ZSdcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgbWV0aG9kTmFtZSA9IG5vZGUuY2FsbGVlPy5wcm9wZXJ0eT8ubmFtZVxuXG4gICAgICAgICAgaWYgKG1ldGhvZE5hbWUgPT09ICdub3cnKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ25vRGF0ZU5vdycsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gZWxzZSBpZiAobWV0aG9kTmFtZSA9PT0gJ3BhcnNlJykge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdub0RhdGVQYXJzZScsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG5cbmV4cG9ydCBkZWZhdWx0IHJ1bGVcbiJdfQ==
|
|
@@ -41,6 +41,10 @@ const componentPropMappings = {
|
|
|
41
41
|
fontWeight: /^font-(thin|extralight|light|normal|medium|semibold|bold|extrabold|black)$/,
|
|
42
42
|
textAlign: /^text-(left|center|right|justify)$/,
|
|
43
43
|
},
|
|
44
|
+
Image: {
|
|
45
|
+
rounded: /^rounded(-none|-sm|-md|-lg|-xl|-2xl|-3xl|-full)?$/,
|
|
46
|
+
aspect: /^aspect-/,
|
|
47
|
+
},
|
|
44
48
|
};
|
|
45
49
|
export default createRule({
|
|
46
50
|
name: RULE_NAME,
|
|
@@ -104,4 +108,4 @@ export default createRule({
|
|
|
104
108
|
};
|
|
105
109
|
},
|
|
106
110
|
});
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyLWNvbXBvbmVudC1wcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lc2xpbnQvcnVsZXMvcHJlZmVyLWNvbXBvbmVudC1wcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFZLE1BQU0sMEJBQTBCLENBQUE7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUVoRSxNQUFNLFNBQVMsR0FBRyx3QkFBd0IsQ0FBQTtBQUMxQyxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUE7QUFFMUMsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtBQUl4RSxrRkFBa0Y7QUFDbEYsTUFBTSxxQkFBcUIsR0FBMkM7SUFDcEUsU0FBUyxFQUFFO1FBQ1QsTUFBTSxFQUFFLFlBQVksRUFBRSxrRUFBa0U7UUFDeEYsS0FBSyxFQUFFLDBDQUEwQztRQUNqRCxRQUFRLEVBQUUsMkRBQTJEO1FBQ3JFLFVBQVUsRUFBRSxXQUFXO1FBQ3ZCLFNBQVMsRUFBRSxvQ0FBb0M7UUFDL0MsVUFBVSxFQUFFLDRFQUE0RTtLQUN6RjtJQUNELE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxZQUFZLEVBQUUsa0VBQWtFO1FBQ3hGLEtBQUssRUFBRSwwQ0FBMEM7UUFDakQsUUFBUSxFQUFFLDJEQUEyRDtRQUNyRSxVQUFVLEVBQUUsV0FBVztRQUN2QixTQUFTLEVBQUUsb0NBQW9DO1FBQy9DLFVBQVUsRUFBRSw0RUFBNEU7S0FDekY7SUFDRCxNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUUsWUFBWSxFQUFFLGtFQUFrRTtRQUN4RixLQUFLLEVBQUUsMENBQTBDO1FBQ2pELElBQUksRUFBRSwyREFBMkQ7UUFDakUsU0FBUyxFQUFFLG9DQUFvQztLQUNoRDtJQUNELE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxZQUFZLEVBQUUsa0VBQWtFO0tBQ3pGO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsTUFBTSxFQUFFLFlBQVksRUFBRSxrRUFBa0U7UUFDeEYsS0FBSyxFQUFFLDBDQUEwQztLQUNsRDtJQUNELEtBQUssRUFBRTtRQUNMLE1BQU0sRUFBRSxZQUFZLEVBQUUsa0VBQWtFO1FBQ3hGLEtBQUssRUFBRSwwQ0FBMEM7UUFDakQsUUFBUSxFQUFFLDJEQUEyRDtRQUNyRSxVQUFVLEVBQUUsNEVBQTRFO1FBQ3hGLFNBQVMsRUFBRSxvQ0FBb0M7S0FDaEQ7Q0FDRixDQUFBO0FBRUQsZUFBZSxVQUFVLENBQWlCO0lBQ3hDLElBQUksRUFBRSxTQUFTO0lBQ2YsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLFlBQVk7UUFDbEIsSUFBSSxFQUFFO1lBQ0osV0FBVyxFQUFFLE9BQU8sRUFBRSxPQUFPLElBQUksK0NBQStDO1NBQ2pGO1FBQ0QsUUFBUSxFQUFFO1lBQ1Isb0JBQW9CLEVBQUUsVUFBVSxPQUFPLEVBQUUsRUFBRSxJQUFJLEtBQUssaUpBQWlKO1NBQ3RNO1FBQ0QsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELGNBQWMsRUFBRSxFQUFFO0lBQ2xCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3BCLHlCQUF5QjtnQkFDekIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxlQUFlO29CQUFFLE9BQU07Z0JBQzlDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFBO2dCQUVwQyw0Q0FBNEM7Z0JBQzVDLE1BQU0sWUFBWSxHQUFHLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFBO2dCQUN6RCxJQUFJLENBQUMsWUFBWTtvQkFBRSxPQUFNO2dCQUV6QiwrQkFBK0I7Z0JBQy9CLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUN4QyxDQUFDLElBQUksRUFBaUMsRUFBRSxDQUN0QyxJQUFJLENBQUMsSUFBSSxLQUFLLGNBQWM7b0JBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLGVBQWU7b0JBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FDakMsQ0FBQTtnQkFFRCxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUs7b0JBQUUsT0FBTTtnQkFFbEQsNkJBQTZCO2dCQUM3QixJQUFJLFVBQVUsR0FBa0IsSUFBSSxDQUFBO2dCQUVwQyxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUMzQyxVQUFVLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQ2hELENBQUM7cUJBQU0sSUFDTCxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyx3QkFBd0I7b0JBQ3JELGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQ2pELENBQUM7b0JBQ0QsVUFBVSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFDM0QsQ0FBQztnQkFFRCxJQUFJLENBQUMsVUFBVTtvQkFBRSxPQUFNO2dCQUV2QiwrQ0FBK0M7Z0JBQy9DLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFBO2dCQUV2RCxLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO29CQUMxQixLQUFLLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO3dCQUMvRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQzs0QkFDdEIsT0FBTyxDQUFDLE1BQU0sQ0FBQztnQ0FDYixJQUFJLEVBQUUsYUFBYTtnQ0FDbkIsU0FBUyxFQUFFLHNCQUFzQjtnQ0FDakMsSUFBSSxFQUFFO29DQUNKLFNBQVMsRUFBRSxHQUFHO29DQUNkLFFBQVE7aUNBQ1Q7NkJBQ0YsQ0FBQyxDQUFBOzRCQUNGLE1BQUssQ0FBQyw2QkFBNkI7d0JBQ3JDLENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUE7SUFDSCxDQUFDO0NBQ0YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRVNMaW50VXRpbHMsIFRTRVNUcmVlIH0gZnJvbSAnQHR5cGVzY3JpcHQtZXNsaW50L3V0aWxzJ1xuaW1wb3J0IHsgZ2V0Q2Fub25VcmwsIGdldENhbm9uUGF0dGVybiB9IGZyb20gJy4uL3V0aWxzL2Nhbm9uLmpzJ1xuXG5jb25zdCBSVUxFX05BTUUgPSAncHJlZmVyLWNvbXBvbmVudC1wcm9wcydcbmNvbnN0IHBhdHRlcm4gPSBnZXRDYW5vblBhdHRlcm4oUlVMRV9OQU1FKVxuXG5jb25zdCBjcmVhdGVSdWxlID0gRVNMaW50VXRpbHMuUnVsZUNyZWF0b3IoKCkgPT4gZ2V0Q2Fub25VcmwoUlVMRV9OQU1FKSlcblxudHlwZSBNZXNzYWdlSWRzID0gJ3ByZWZlckNvbXBvbmVudFByb3BzJ1xuXG4vLyBNYXAgb2YgY29tcG9uZW50IG5hbWVzIHRvIHRoZWlyIHN0eWxlIHByb3BzIGFuZCBjb3JyZXNwb25kaW5nIFRhaWx3aW5kIHBhdHRlcm5zXG5jb25zdCBjb21wb25lbnRQcm9wTWFwcGluZ3M6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIFJlZ0V4cD4+ID0ge1xuICBQYXJhZ3JhcGg6IHtcbiAgICBtYXJnaW46IC9ebShbYnldKT8tLywgLy8gbS0gKGFsbCksIG1iLSAoYm90dG9tKSwgbXktICh5LWF4aXMpIC0gYWxsIGFmZmVjdCBib3R0b20gbWFyZ2luXG4gICAgY29sb3I6IC9edGV4dC0oYm9keXxjb250cmFzdHxhY2NlbnR8d2hpdGV8YmxhY2spLyxcbiAgICBmb250U2l6ZTogL150ZXh0LSh4c3xzbXxiYXNlfGxnfHhsfDJ4bHwzeGx8NHhsfDV4bHw2eGx8N3hsfDh4bHw5eGwpJC8sXG4gICAgbGluZUhlaWdodDogL15sZWFkaW5nLS8sXG4gICAgdGV4dEFsaWduOiAvXnRleHQtKGxlZnR8Y2VudGVyfHJpZ2h0fGp1c3RpZnkpJC8sXG4gICAgZm9udFdlaWdodDogL15mb250LSh0aGlufGV4dHJhbGlnaHR8bGlnaHR8bm9ybWFsfG1lZGl1bXxzZW1pYm9sZHxib2xkfGV4dHJhYm9sZHxibGFjaykkLyxcbiAgfSxcbiAgSGVhZGluZzoge1xuICAgIG1hcmdpbjogL15tKFtieV0pPy0vLCAvLyBtLSAoYWxsKSwgbWItIChib3R0b20pLCBteS0gKHktYXhpcykgLSBhbGwgYWZmZWN0IGJvdHRvbSBtYXJnaW5cbiAgICBjb2xvcjogL150ZXh0LShib2R5fGNvbnRyYXN0fGFjY2VudHx3aGl0ZXxibGFjaykvLFxuICAgIGZvbnRTaXplOiAvXnRleHQtKHhzfHNtfGJhc2V8bGd8eGx8MnhsfDN4bHw0eGx8NXhsfDZ4bHw3eGx8OHhsfDl4bCkkLyxcbiAgICBsaW5lSGVpZ2h0OiAvXmxlYWRpbmctLyxcbiAgICB0ZXh0QWxpZ246IC9edGV4dC0obGVmdHxjZW50ZXJ8cmlnaHR8anVzdGlmeSkkLyxcbiAgICBmb250V2VpZ2h0OiAvXmZvbnQtKHRoaW58ZXh0cmFsaWdodHxsaWdodHxub3JtYWx8bWVkaXVtfHNlbWlib2xkfGJvbGR8ZXh0cmFib2xkfGJsYWNrKSQvLFxuICB9LFxuICBBY2NlbnQ6IHtcbiAgICBtYXJnaW46IC9ebShbYnldKT8tLywgLy8gbS0gKGFsbCksIG1iLSAoYm90dG9tKSwgbXktICh5LWF4aXMpIC0gYWxsIGFmZmVjdCBib3R0b20gbWFyZ2luXG4gICAgY29sb3I6IC9edGV4dC0oYm9keXxjb250cmFzdHxhY2NlbnR8d2hpdGV8YmxhY2spLyxcbiAgICBzaXplOiAvXnRleHQtKHhzfHNtfGJhc2V8bGd8eGx8MnhsfDN4bHw0eGx8NXhsfDZ4bHw3eGx8OHhsfDl4bCkkLyxcbiAgICB0ZXh0QWxpZ246IC9edGV4dC0obGVmdHxjZW50ZXJ8cmlnaHR8anVzdGlmeSkkLyxcbiAgfSxcbiAgQnV0dG9uOiB7XG4gICAgbWFyZ2luOiAvXm0oW2J5XSk/LS8sIC8vIG0tIChhbGwpLCBtYi0gKGJvdHRvbSksIG15LSAoeS1heGlzKSAtIGFsbCBhZmZlY3QgYm90dG9tIG1hcmdpblxuICB9LFxuICBMYWJlbDoge1xuICAgIG1hcmdpbjogL15tKFtieV0pPy0vLCAvLyBtLSAoYWxsKSwgbWItIChib3R0b20pLCBteS0gKHktYXhpcykgLSBhbGwgYWZmZWN0IGJvdHRvbSBtYXJnaW5cbiAgICBjb2xvcjogL150ZXh0LShib2R5fGNvbnRyYXN0fGFjY2VudHx3aGl0ZXxibGFjaykvLFxuICB9LFxuICBRdW90ZToge1xuICAgIG1hcmdpbjogL15tKFtieV0pPy0vLCAvLyBtLSAoYWxsKSwgbWItIChib3R0b20pLCBteS0gKHktYXhpcykgLSBhbGwgYWZmZWN0IGJvdHRvbSBtYXJnaW5cbiAgICBjb2xvcjogL150ZXh0LShib2R5fGNvbnRyYXN0fGFjY2VudHx3aGl0ZXxibGFjaykvLFxuICAgIGZvbnRTaXplOiAvXnRleHQtKHhzfHNtfGJhc2V8bGd8eGx8MnhsfDN4bHw0eGx8NXhsfDZ4bHw3eGx8OHhsfDl4bCkkLyxcbiAgICBmb250V2VpZ2h0OiAvXmZvbnQtKHRoaW58ZXh0cmFsaWdodHxsaWdodHxub3JtYWx8bWVkaXVtfHNlbWlib2xkfGJvbGR8ZXh0cmFib2xkfGJsYWNrKSQvLFxuICAgIHRleHRBbGlnbjogL150ZXh0LShsZWZ0fGNlbnRlcnxyaWdodHxqdXN0aWZ5KSQvLFxuICB9LFxufVxuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVSdWxlPFtdLCBNZXNzYWdlSWRzPih7XG4gIG5hbWU6IFJVTEVfTkFNRSxcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjogcGF0dGVybj8uc3VtbWFyeSB8fCAnVXNlIHByb3BzIG92ZXIgY2xhc3NOYW1lIGZvciBzdXBwb3J0ZWQgc3R5bGVzJyxcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBwcmVmZXJDb21wb25lbnRQcm9wczogYFtDYW5vbiAke3BhdHRlcm4/LmlkIHx8ICcwMDQnfV0gXCJ7e2NsYXNzTmFtZX19XCIgaW4gY2xhc3NOYW1lIHNob3VsZCB1c2UgdGhlIFwie3twcm9wTmFtZX19XCIgcHJvcCBpbnN0ZWFkLiBSZXBsYWNlIGNsYXNzTmFtZT1cInt7Y2xhc3NOYW1lfX1cIiB3aXRoIHt7cHJvcE5hbWV9fT1cInt7Y2xhc3NOYW1lfX1cIi5gLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcbiAgZGVmYXVsdE9wdGlvbnM6IFtdLFxuICBjcmVhdGUoY29udGV4dCkge1xuICAgIHJldHVybiB7XG4gICAgICBKU1hPcGVuaW5nRWxlbWVudChub2RlKSB7XG4gICAgICAgIC8vIEdldCB0aGUgY29tcG9uZW50IG5hbWVcbiAgICAgICAgaWYgKG5vZGUubmFtZS50eXBlICE9PSAnSlNYSWRlbnRpZmllcicpIHJldHVyblxuICAgICAgICBjb25zdCBjb21wb25lbnROYW1lID0gbm9kZS5uYW1lLm5hbWVcblxuICAgICAgICAvLyBDaGVjayBpZiB0aGlzIGNvbXBvbmVudCBoYXMgcHJvcCBtYXBwaW5nc1xuICAgICAgICBjb25zdCBwcm9wTWFwcGluZ3MgPSBjb21wb25lbnRQcm9wTWFwcGluZ3NbY29tcG9uZW50TmFtZV1cbiAgICAgICAgaWYgKCFwcm9wTWFwcGluZ3MpIHJldHVyblxuXG4gICAgICAgIC8vIEZpbmQgdGhlIGNsYXNzTmFtZSBhdHRyaWJ1dGVcbiAgICAgICAgY29uc3QgY2xhc3NOYW1lQXR0ciA9IG5vZGUuYXR0cmlidXRlcy5maW5kKFxuICAgICAgICAgIChhdHRyKTogYXR0ciBpcyBUU0VTVHJlZS5KU1hBdHRyaWJ1dGUgPT5cbiAgICAgICAgICAgIGF0dHIudHlwZSA9PT0gJ0pTWEF0dHJpYnV0ZScgJiZcbiAgICAgICAgICAgIGF0dHIubmFtZS50eXBlID09PSAnSlNYSWRlbnRpZmllcicgJiZcbiAgICAgICAgICAgIGF0dHIubmFtZS5uYW1lID09PSAnY2xhc3NOYW1lJ1xuICAgICAgICApXG5cbiAgICAgICAgaWYgKCFjbGFzc05hbWVBdHRyIHx8ICFjbGFzc05hbWVBdHRyLnZhbHVlKSByZXR1cm5cblxuICAgICAgICAvLyBFeHRyYWN0IGNsYXNzIHN0cmluZyB2YWx1ZVxuICAgICAgICBsZXQgY2xhc3NWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGxcblxuICAgICAgICBpZiAoY2xhc3NOYW1lQXR0ci52YWx1ZS50eXBlID09PSAnTGl0ZXJhbCcpIHtcbiAgICAgICAgICBjbGFzc1ZhbHVlID0gU3RyaW5nKGNsYXNzTmFtZUF0dHIudmFsdWUudmFsdWUpXG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgY2xhc3NOYW1lQXR0ci52YWx1ZS50eXBlID09PSAnSlNYRXhwcmVzc2lvbkNvbnRhaW5lcicgJiZcbiAgICAgICAgICBjbGFzc05hbWVBdHRyLnZhbHVlLmV4cHJlc3Npb24udHlwZSA9PT0gJ0xpdGVyYWwnXG4gICAgICAgICkge1xuICAgICAgICAgIGNsYXNzVmFsdWUgPSBTdHJpbmcoY2xhc3NOYW1lQXR0ci52YWx1ZS5leHByZXNzaW9uLnZhbHVlKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjbGFzc1ZhbHVlKSByZXR1cm5cblxuICAgICAgICAvLyBTcGxpdCBpbnRvIGluZGl2aWR1YWwgY2xhc3NlcyBhbmQgY2hlY2sgZWFjaFxuICAgICAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NWYWx1ZS5zcGxpdCgvXFxzKy8pLmZpbHRlcihCb29sZWFuKVxuXG4gICAgICAgIGZvciAoY29uc3QgY2xzIG9mIGNsYXNzZXMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IFtwcm9wTmFtZSwgcGF0dGVybl0gb2YgT2JqZWN0LmVudHJpZXMocHJvcE1hcHBpbmdzKSkge1xuICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChjbHMpKSB7XG4gICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgICBub2RlOiBjbGFzc05hbWVBdHRyLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ3ByZWZlckNvbXBvbmVudFByb3BzJyxcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGNscyxcbiAgICAgICAgICAgICAgICAgIHByb3BOYW1lLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIGJyZWFrIC8vIE9ubHkgcmVwb3J0IG9uY2UgcGVyIGNsYXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH1cbiAgfSxcbn0pXG4iXX0=
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyLWNvbXBvbmVudC1wcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lc2xpbnQvcnVsZXMvcHJlZmVyLWNvbXBvbmVudC1wcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFZLE1BQU0sMEJBQTBCLENBQUE7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUVoRSxNQUFNLFNBQVMsR0FBRyx3QkFBd0IsQ0FBQTtBQUMxQyxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUE7QUFFMUMsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtBQUl4RSxrRkFBa0Y7QUFDbEYsTUFBTSxxQkFBcUIsR0FBMkM7SUFDcEUsU0FBUyxFQUFFO1FBQ1QsTUFBTSxFQUFFLFlBQVksRUFBRSxrRUFBa0U7UUFDeEYsS0FBSyxFQUFFLDBDQUEwQztRQUNqRCxRQUFRLEVBQUUsMkRBQTJEO1FBQ3JFLFVBQVUsRUFBRSxXQUFXO1FBQ3ZCLFNBQVMsRUFBRSxvQ0FBb0M7UUFDL0MsVUFBVSxFQUFFLDRFQUE0RTtLQUN6RjtJQUNELE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxZQUFZLEVBQUUsa0VBQWtFO1FBQ3hGLEtBQUssRUFBRSwwQ0FBMEM7UUFDakQsUUFBUSxFQUFFLDJEQUEyRDtRQUNyRSxVQUFVLEVBQUUsV0FBVztRQUN2QixTQUFTLEVBQUUsb0NBQW9DO1FBQy9DLFVBQVUsRUFBRSw0RUFBNEU7S0FDekY7SUFDRCxNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUUsWUFBWSxFQUFFLGtFQUFrRTtRQUN4RixLQUFLLEVBQUUsMENBQTBDO1FBQ2pELElBQUksRUFBRSwyREFBMkQ7UUFDakUsU0FBUyxFQUFFLG9DQUFvQztL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QUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7NEJBQ3RCLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0NBQ2IsSUFBSSxFQUFFLGFBQWE7Z0NBQ25CLFNBQVMsRUFBRSxzQkFBc0I7Z0NBQ2pDLElBQUksRUFBRTtvQ0FDSixTQUFTLEVBQUUsR0FBRztvQ0FDZCxRQUFRO2lDQUNUOzZCQUNGLENBQUMsQ0FBQTs0QkFDRixNQUFLLENBQUMsNkJBQTZCO3dCQUNyQyxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7U0FDRixDQUFBO0lBQ0gsQ0FBQztDQUNGLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVTTGludFV0aWxzLCBUU0VTVHJlZSB9IGZyb20gJ0B0eXBlc2NyaXB0LWVzbGludC91dGlscydcbmltcG9ydCB7IGdldENhbm9uVXJsLCBnZXRDYW5vblBhdHRlcm4gfSBmcm9tICcuLi91dGlscy9jYW5vbi5qcydcblxuY29uc3QgUlVMRV9OQU1FID0gJ3ByZWZlci1jb21wb25lbnQtcHJvcHMnXG5jb25zdCBwYXR0ZXJuID0gZ2V0Q2Fub25QYXR0ZXJuKFJVTEVfTkFNRSlcblxuY29uc3QgY3JlYXRlUnVsZSA9IEVTTGludFV0aWxzLlJ1bGVDcmVhdG9yKCgpID0+IGdldENhbm9uVXJsKFJVTEVfTkFNRSkpXG5cbnR5cGUgTWVzc2FnZUlkcyA9ICdwcmVmZXJDb21wb25lbnRQcm9wcydcblxuLy8gTWFwIG9mIGNvbXBvbmVudCBuYW1lcyB0byB0aGVpciBzdHlsZSBwcm9wcyBhbmQgY29ycmVzcG9uZGluZyBUYWlsd2luZCBwYXR0ZXJuc1xuY29uc3QgY29tcG9uZW50UHJvcE1hcHBpbmdzOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBSZWdFeHA+PiA9IHtcbiAgUGFyYWdyYXBoOiB7XG4gICAgbWFyZ2luOiAvXm0oW2J5XSk/LS8sIC8vIG0tIChhbGwpLCBtYi0gKGJvdHRvbSksIG15LSAoeS1heGlzKSAtIGFsbCBhZmZlY3QgYm90dG9tIG1hcmdpblxuICAgIGNvbG9yOiAvXnRleHQtKGJvZHl8Y29udHJhc3R8YWNjZW50fHdoaXRlfGJsYWNrKS8sXG4gICAgZm9udFNpemU6IC9edGV4dC0oeHN8c218YmFzZXxsZ3x4bHwyeGx8M3hsfDR4bHw1eGx8NnhsfDd4bHw4eGx8OXhsKSQvLFxuICAgIGxpbmVIZWlnaHQ6IC9ebGVhZGluZy0vLFxuICAgIHRleHRBbGlnbjogL150ZXh0LShsZWZ0fGNlbnRlcnxyaWdodHxqdXN0aWZ5KSQvLFxuICAgIGZvbnRXZWlnaHQ6IC9eZm9udC0odGhpbnxleHRyYWxpZ2h0fGxpZ2h0fG5vcm1hbHxtZWRpdW18c2VtaWJvbGR8Ym9sZHxleHRyYWJvbGR8YmxhY2spJC8sXG4gIH0sXG4gIEhlYWRpbmc6IHtcbiAgICBtYXJnaW46IC9ebShbYnldKT8tLywgLy8gbS0gKGFsbCksIG1iLSAoYm90dG9tKSwgbXktICh5LWF4aXMpIC0gYWxsIGFmZmVjdCBib3R0b20gbWFyZ2luXG4gICAgY29sb3I6IC9edGV4dC0oYm9keXxjb250cmFzdHxhY2NlbnR8d2hpdGV8YmxhY2spLyxcbiAgICBmb250U2l6ZTogL150ZXh0LSh4c3xzbXxiYXNlfGxnfHhsfDJ4bHwzeGx8NHhsfDV4bHw2eGx8N3hsfDh4bHw5eGwpJC8sXG4gICAgbGluZUhlaWdodDogL15sZWFkaW5nLS8sXG4gICAgdGV4dEFsaWduOiAvXnRleHQtKGxlZnR8Y2VudGVyfHJpZ2h0fGp1c3RpZnkpJC8sXG4gICAgZm9udFdlaWdodDogL15mb250LSh0aGlufGV4dHJhbGlnaHR8bGlnaHR8bm9ybWFsfG1lZGl1bXxzZW1pYm9sZHxib2xkfGV4dHJhYm9sZHxibGFjaykkLyxcbiAgfSxcbiAgQWNjZW50OiB7XG4gICAgbWFyZ2luOiAvXm0oW2J5XSk/LS8sIC8vIG0tIChhbGwpLCBtYi0gKGJvdHRvbSksIG15LSAoeS1heGlzKSAtIGFsbCBhZmZlY3QgYm90dG9tIG1hcmdpblxuICAgIGNvbG9yOiAvXnRleHQtKGJvZHl8Y29udHJhc3R8YWNjZW50fHdoaXRlfGJsYWNrKS8sXG4gICAgc2l6ZTogL150ZXh0LSh4c3xzbXxiYXNlfGxnfHhsfDJ4bHwzeGx8NHhsfDV4bHw2eGx8N3hsfDh4bHw5eGwpJC8sXG4gICAgdGV4dEFsaWduOiAvXnRleHQtKGxlZnR8Y2VudGVyfHJpZ2h0fGp1c3RpZnkpJC8sXG4gIH0sXG4gIEJ1dHRvbjoge1xuICAgIG1hcmdpbjogL15tKFtieV0pPy0vLCAvLyBtLSAoYWxsKSwgbWItIChib3R0b20pLCBteS0gKHktYXhpcykgLSBhbGwgYWZmZWN0IGJvdHRvbSBtYXJnaW5cbiAgfSxcbiAgTGFiZWw6IHtcbiAgICBtYXJnaW46IC9ebShbYnldKT8tLywgLy8gbS0gKGFsbCksIG1iLSAoYm90dG9tKSwgbXktICh5LWF4aXMpIC0gYWxsIGFmZmVjdCBib3R0b20gbWFyZ2luXG4gICAgY29sb3I6IC9edGV4dC0oYm9keXxjb250cmFzdHxhY2NlbnR8d2hpdGV8YmxhY2spLyxcbiAgfSxcbiAgUXVvdGU6IHtcbiAgICBtYXJnaW46IC9ebShbYnldKT8tLywgLy8gbS0gKGFsbCksIG1iLSAoYm90dG9tKSwgbXktICh5LWF4aXMpIC0gYWxsIGFmZmVjdCBib3R0b20gbWFyZ2luXG4gICAgY29sb3I6IC9edGV4dC0oYm9keXxjb250cmFzdHxhY2NlbnR8d2hpdGV8YmxhY2spLyxcbiAgICBmb250U2l6ZTogL150ZXh0LSh4c3xzbXxiYXNlfGxnfHhsfDJ4bHwzeGx8NHhsfDV4bHw2eGx8N3hsfDh4bHw5eGwpJC8sXG4gICAgZm9udFdlaWdodDogL15mb250LSh0aGlufGV4dHJhbGlnaHR8bGlnaHR8bm9ybWFsfG1lZGl1bXxzZW1pYm9sZHxib2xkfGV4dHJhYm9sZHxibGFjaykkLyxcbiAgICB0ZXh0QWxpZ246IC9edGV4dC0obGVmdHxjZW50ZXJ8cmlnaHR8anVzdGlmeSkkLyxcbiAgfSxcbiAgSW1hZ2U6IHtcbiAgICByb3VuZGVkOiAvXnJvdW5kZWQoLW5vbmV8LXNtfC1tZHwtbGd8LXhsfC0yeGx8LTN4bHwtZnVsbCk/JC8sXG4gICAgYXNwZWN0OiAvXmFzcGVjdC0vLFxuICB9LFxufVxuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVSdWxlPFtdLCBNZXNzYWdlSWRzPih7XG4gIG5hbWU6IFJVTEVfTkFNRSxcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjogcGF0dGVybj8uc3VtbWFyeSB8fCAnVXNlIHByb3BzIG92ZXIgY2xhc3NOYW1lIGZvciBzdXBwb3J0ZWQgc3R5bGVzJyxcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBwcmVmZXJDb21wb25lbnRQcm9wczogYFtDYW5vbiAke3BhdHRlcm4/LmlkIHx8ICcwMDQnfV0gXCJ7e2NsYXNzTmFtZX19XCIgaW4gY2xhc3NOYW1lIHNob3VsZCB1c2UgdGhlIFwie3twcm9wTmFtZX19XCIgcHJvcCBpbnN0ZWFkLiBSZXBsYWNlIGNsYXNzTmFtZT1cInt7Y2xhc3NOYW1lfX1cIiB3aXRoIHt7cHJvcE5hbWV9fT1cInt7Y2xhc3NOYW1lfX1cIi5gLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcbiAgZGVmYXVsdE9wdGlvbnM6IFtdLFxuICBjcmVhdGUoY29udGV4dCkge1xuICAgIHJldHVybiB7XG4gICAgICBKU1hPcGVuaW5nRWxlbWVudChub2RlKSB7XG4gICAgICAgIC8vIEdldCB0aGUgY29tcG9uZW50IG5hbWVcbiAgICAgICAgaWYgKG5vZGUubmFtZS50eXBlICE9PSAnSlNYSWRlbnRpZmllcicpIHJldHVyblxuICAgICAgICBjb25zdCBjb21wb25lbnROYW1lID0gbm9kZS5uYW1lLm5hbWVcblxuICAgICAgICAvLyBDaGVjayBpZiB0aGlzIGNvbXBvbmVudCBoYXMgcHJvcCBtYXBwaW5nc1xuICAgICAgICBjb25zdCBwcm9wTWFwcGluZ3MgPSBjb21wb25lbnRQcm9wTWFwcGluZ3NbY29tcG9uZW50TmFtZV1cbiAgICAgICAgaWYgKCFwcm9wTWFwcGluZ3MpIHJldHVyblxuXG4gICAgICAgIC8vIEZpbmQgdGhlIGNsYXNzTmFtZSBhdHRyaWJ1dGVcbiAgICAgICAgY29uc3QgY2xhc3NOYW1lQXR0ciA9IG5vZGUuYXR0cmlidXRlcy5maW5kKFxuICAgICAgICAgIChhdHRyKTogYXR0ciBpcyBUU0VTVHJlZS5KU1hBdHRyaWJ1dGUgPT5cbiAgICAgICAgICAgIGF0dHIudHlwZSA9PT0gJ0pTWEF0dHJpYnV0ZScgJiZcbiAgICAgICAgICAgIGF0dHIubmFtZS50eXBlID09PSAnSlNYSWRlbnRpZmllcicgJiZcbiAgICAgICAgICAgIGF0dHIubmFtZS5uYW1lID09PSAnY2xhc3NOYW1lJ1xuICAgICAgICApXG5cbiAgICAgICAgaWYgKCFjbGFzc05hbWVBdHRyIHx8ICFjbGFzc05hbWVBdHRyLnZhbHVlKSByZXR1cm5cblxuICAgICAgICAvLyBFeHRyYWN0IGNsYXNzIHN0cmluZyB2YWx1ZVxuICAgICAgICBsZXQgY2xhc3NWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGxcblxuICAgICAgICBpZiAoY2xhc3NOYW1lQXR0ci52YWx1ZS50eXBlID09PSAnTGl0ZXJhbCcpIHtcbiAgICAgICAgICBjbGFzc1ZhbHVlID0gU3RyaW5nKGNsYXNzTmFtZUF0dHIudmFsdWUudmFsdWUpXG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgY2xhc3NOYW1lQXR0ci52YWx1ZS50eXBlID09PSAnSlNYRXhwcmVzc2lvbkNvbnRhaW5lcicgJiZcbiAgICAgICAgICBjbGFzc05hbWVBdHRyLnZhbHVlLmV4cHJlc3Npb24udHlwZSA9PT0gJ0xpdGVyYWwnXG4gICAgICAgICkge1xuICAgICAgICAgIGNsYXNzVmFsdWUgPSBTdHJpbmcoY2xhc3NOYW1lQXR0ci52YWx1ZS5leHByZXNzaW9uLnZhbHVlKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjbGFzc1ZhbHVlKSByZXR1cm5cblxuICAgICAgICAvLyBTcGxpdCBpbnRvIGluZGl2aWR1YWwgY2xhc3NlcyBhbmQgY2hlY2sgZWFjaFxuICAgICAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NWYWx1ZS5zcGxpdCgvXFxzKy8pLmZpbHRlcihCb29sZWFuKVxuXG4gICAgICAgIGZvciAoY29uc3QgY2xzIG9mIGNsYXNzZXMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IFtwcm9wTmFtZSwgcGF0dGVybl0gb2YgT2JqZWN0LmVudHJpZXMocHJvcE1hcHBpbmdzKSkge1xuICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChjbHMpKSB7XG4gICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgICBub2RlOiBjbGFzc05hbWVBdHRyLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ3ByZWZlckNvbXBvbmVudFByb3BzJyxcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGNscyxcbiAgICAgICAgICAgICAgICAgIHByb3BOYW1lLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIGJyZWFrIC8vIE9ubHkgcmVwb3J0IG9uY2UgcGVyIGNsYXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH1cbiAgfSxcbn0pXG4iXX0=
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
**Canon Version:** 1.0
|
|
4
4
|
**Status:** Stable
|
|
5
5
|
**Category:** Components
|
|
6
|
-
**Enforcement:**
|
|
6
|
+
**Enforcement:** ESLint (`gallop/no-native-date`)
|
|
7
7
|
|
|
8
8
|
## Decision
|
|
9
9
|
|
|
@@ -122,8 +122,9 @@ if (selectedDate < today) {
|
|
|
122
122
|
|
|
123
123
|
## Enforcement
|
|
124
124
|
|
|
125
|
-
- **Method:**
|
|
126
|
-
- **
|
|
125
|
+
- **Method:** ESLint rule `gallop/no-native-date`
|
|
126
|
+
- **Detects:** `new Date()`, `Date.now()`, `Date.parse()`
|
|
127
|
+
- **Suggests:** Use Luxon's `DateTime.now()`, `DateTime.fromISO()`, or `DateTime.fromFormat()`
|
|
127
128
|
|
|
128
129
|
## References
|
|
129
130
|
|
package/schema.json
CHANGED
|
@@ -307,8 +307,8 @@
|
|
|
307
307
|
"file": "patterns/027-luxon-dates.md",
|
|
308
308
|
"category": "components",
|
|
309
309
|
"status": "stable",
|
|
310
|
-
"enforcement": "
|
|
311
|
-
"rule":
|
|
310
|
+
"enforcement": "eslint",
|
|
311
|
+
"rule": "gallop/no-native-date",
|
|
312
312
|
"summary": "Use Luxon DateTime, not native JavaScript Date"
|
|
313
313
|
}
|
|
314
314
|
],
|