@dhzh/eslint-plugin-better-tailwindcss 0.0.0-stage → 4.9.0-patch
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/LICENSE +21 -0
- package/README.md +247 -2
- package/lib/api/defaults.d.ts +103 -0
- package/lib/api/defaults.d.ts.map +1 -0
- package/lib/api/defaults.js +34 -0
- package/lib/api/defaults.js.map +1 -0
- package/lib/api/types.d.ts +9 -0
- package/lib/api/types.d.ts.map +1 -0
- package/lib/api/types.js +5 -0
- package/lib/api/types.js.map +1 -0
- package/lib/async-utils/cache.d.ts +30 -0
- package/lib/async-utils/cache.d.ts.map +1 -0
- package/lib/async-utils/cache.js +116 -0
- package/lib/async-utils/cache.js.map +1 -0
- package/lib/async-utils/escape.d.ts +2 -0
- package/lib/async-utils/escape.d.ts.map +1 -0
- package/lib/async-utils/escape.js +5 -0
- package/lib/async-utils/escape.js.map +1 -0
- package/lib/async-utils/fs.d.ts +3 -0
- package/lib/async-utils/fs.d.ts.map +1 -0
- package/lib/async-utils/fs.js +28 -0
- package/lib/async-utils/fs.js.map +1 -0
- package/lib/async-utils/module.d.ts +3 -0
- package/lib/async-utils/module.d.ts.map +1 -0
- package/lib/async-utils/module.js +7 -0
- package/lib/async-utils/module.js.map +1 -0
- package/lib/async-utils/operations.d.ts +23 -0
- package/lib/async-utils/operations.d.ts.map +1 -0
- package/lib/async-utils/operations.js +2 -0
- package/lib/async-utils/operations.js.map +1 -0
- package/lib/async-utils/order.d.ts +4 -0
- package/lib/async-utils/order.d.ts.map +1 -0
- package/lib/async-utils/order.js +5 -0
- package/lib/async-utils/order.js.map +1 -0
- package/lib/async-utils/path.d.ts +2 -0
- package/lib/async-utils/path.d.ts.map +1 -0
- package/lib/async-utils/path.js +7 -0
- package/lib/async-utils/path.js.map +1 -0
- package/lib/async-utils/platform.d.ts +2 -0
- package/lib/async-utils/platform.d.ts.map +1 -0
- package/lib/async-utils/platform.js +4 -0
- package/lib/async-utils/platform.js.map +1 -0
- package/lib/async-utils/regex.d.ts +3 -0
- package/lib/async-utils/regex.d.ts.map +1 -0
- package/lib/async-utils/regex.js +32 -0
- package/lib/async-utils/regex.js.map +1 -0
- package/lib/async-utils/resolvers.d.ts +7 -0
- package/lib/async-utils/resolvers.d.ts.map +1 -0
- package/lib/async-utils/resolvers.js +64 -0
- package/lib/async-utils/resolvers.js.map +1 -0
- package/lib/async-utils/segment.d.ts +2 -0
- package/lib/async-utils/segment.d.ts.map +1 -0
- package/lib/async-utils/segment.js +82 -0
- package/lib/async-utils/segment.js.map +1 -0
- package/lib/async-utils/worker.d.ts +3 -0
- package/lib/async-utils/worker.d.ts.map +1 -0
- package/lib/async-utils/worker.js +17 -0
- package/lib/async-utils/worker.js.map +1 -0
- package/lib/configs/config.d.ts +3521 -0
- package/lib/configs/config.d.ts.map +1 -0
- package/lib/configs/config.js +98 -0
- package/lib/configs/config.js.map +1 -0
- package/lib/options/callees/cc.d.ts +30 -0
- package/lib/options/callees/cc.d.ts.map +1 -0
- package/lib/options/callees/cc.js +25 -0
- package/lib/options/callees/cc.js.map +1 -0
- package/lib/options/callees/clb.d.ts +35 -0
- package/lib/options/callees/clb.d.ts.map +1 -0
- package/lib/options/callees/clb.js +39 -0
- package/lib/options/callees/clb.js.map +1 -0
- package/lib/options/callees/clsx.d.ts +30 -0
- package/lib/options/callees/clsx.d.ts.map +1 -0
- package/lib/options/callees/clsx.js +25 -0
- package/lib/options/callees/clsx.js.map +1 -0
- package/lib/options/callees/cn.d.ts +30 -0
- package/lib/options/callees/cn.d.ts.map +1 -0
- package/lib/options/callees/cn.js +25 -0
- package/lib/options/callees/cn.js.map +1 -0
- package/lib/options/callees/cnb.d.ts +30 -0
- package/lib/options/callees/cnb.d.ts.map +1 -0
- package/lib/options/callees/cnb.js +25 -0
- package/lib/options/callees/cnb.js.map +1 -0
- package/lib/options/callees/ctl.d.ts +17 -0
- package/lib/options/callees/ctl.d.ts.map +1 -0
- package/lib/options/callees/ctl.js +15 -0
- package/lib/options/callees/ctl.js.map +1 -0
- package/lib/options/callees/cva.d.ts +40 -0
- package/lib/options/callees/cva.d.ts.map +1 -0
- package/lib/options/callees/cva.js +37 -0
- package/lib/options/callees/cva.js.map +1 -0
- package/lib/options/callees/cx.d.ts +30 -0
- package/lib/options/callees/cx.d.ts.map +1 -0
- package/lib/options/callees/cx.js +25 -0
- package/lib/options/callees/cx.js.map +1 -0
- package/lib/options/callees/dcnb.d.ts +30 -0
- package/lib/options/callees/dcnb.d.ts.map +1 -0
- package/lib/options/callees/dcnb.js +25 -0
- package/lib/options/callees/dcnb.js.map +1 -0
- package/lib/options/callees/objstr.d.ts +24 -0
- package/lib/options/callees/objstr.d.ts.map +1 -0
- package/lib/options/callees/objstr.js +24 -0
- package/lib/options/callees/objstr.js.map +1 -0
- package/lib/options/callees/tv.d.ts +64 -0
- package/lib/options/callees/tv.d.ts.map +1 -0
- package/lib/options/callees/tv.js +70 -0
- package/lib/options/callees/tv.js.map +1 -0
- package/lib/options/callees/twJoin.d.ts +17 -0
- package/lib/options/callees/twJoin.d.ts.map +1 -0
- package/lib/options/callees/twJoin.js +15 -0
- package/lib/options/callees/twJoin.js.map +1 -0
- package/lib/options/callees/twMerge.d.ts +17 -0
- package/lib/options/callees/twMerge.d.ts.map +1 -0
- package/lib/options/callees/twMerge.js +15 -0
- package/lib/options/callees/twMerge.js.map +1 -0
- package/lib/options/default-options.d.ts +114 -0
- package/lib/options/default-options.d.ts.map +1 -0
- package/lib/options/default-options.js +176 -0
- package/lib/options/default-options.js.map +1 -0
- package/lib/options/descriptions.d.ts +657 -0
- package/lib/options/descriptions.d.ts.map +1 -0
- package/lib/options/descriptions.js +22 -0
- package/lib/options/descriptions.js.map +1 -0
- package/lib/options/migrate.d.ts +16 -0
- package/lib/options/migrate.d.ts.map +1 -0
- package/lib/options/migrate.js +132 -0
- package/lib/options/migrate.js.map +1 -0
- package/lib/options/schemas/attributes.d.ts +100 -0
- package/lib/options/schemas/attributes.d.ts.map +1 -0
- package/lib/options/schemas/attributes.js +19 -0
- package/lib/options/schemas/attributes.js.map +1 -0
- package/lib/options/schemas/callees.d.ts +101 -0
- package/lib/options/schemas/callees.d.ts.map +1 -0
- package/lib/options/schemas/callees.js +19 -0
- package/lib/options/schemas/callees.js.map +1 -0
- package/lib/options/schemas/common.d.ts +30 -0
- package/lib/options/schemas/common.d.ts.map +1 -0
- package/lib/options/schemas/common.js +30 -0
- package/lib/options/schemas/common.js.map +1 -0
- package/lib/options/schemas/matchers.d.ts +13 -0
- package/lib/options/schemas/matchers.d.ts.map +1 -0
- package/lib/options/schemas/matchers.js +14 -0
- package/lib/options/schemas/matchers.js.map +1 -0
- package/lib/options/schemas/selectors.d.ts +1289 -0
- package/lib/options/schemas/selectors.d.ts.map +1 -0
- package/lib/options/schemas/selectors.js +100 -0
- package/lib/options/schemas/selectors.js.map +1 -0
- package/lib/options/schemas/tags.d.ts +101 -0
- package/lib/options/schemas/tags.d.ts.map +1 -0
- package/lib/options/schemas/tags.js +19 -0
- package/lib/options/schemas/tags.js.map +1 -0
- package/lib/options/schemas/variables.d.ts +100 -0
- package/lib/options/schemas/variables.d.ts.map +1 -0
- package/lib/options/schemas/variables.js +19 -0
- package/lib/options/schemas/variables.js.map +1 -0
- package/lib/options/tags/twc.d.ts +36 -0
- package/lib/options/tags/twc.d.ts.map +1 -0
- package/lib/options/tags/twc.js +26 -0
- package/lib/options/tags/twc.js.map +1 -0
- package/lib/options/tags/twx.d.ts +36 -0
- package/lib/options/tags/twx.d.ts.map +1 -0
- package/lib/options/tags/twx.js +26 -0
- package/lib/options/tags/twx.js.map +1 -0
- package/lib/parsers/angular.d.ts +11 -0
- package/lib/parsers/angular.d.ts.map +1 -0
- package/lib/parsers/angular.js +736 -0
- package/lib/parsers/angular.js.map +1 -0
- package/lib/parsers/css.d.ts +5 -0
- package/lib/parsers/css.d.ts.map +1 -0
- package/lib/parsers/css.js +100 -0
- package/lib/parsers/css.js.map +1 -0
- package/lib/parsers/es.d.ts +49 -0
- package/lib/parsers/es.d.ts.map +1 -0
- package/lib/parsers/es.js +924 -0
- package/lib/parsers/es.js.map +1 -0
- package/lib/parsers/html.d.ts +8 -0
- package/lib/parsers/html.d.ts.map +1 -0
- package/lib/parsers/html.js +51 -0
- package/lib/parsers/html.js.map +1 -0
- package/lib/parsers/jsx.d.ts +9 -0
- package/lib/parsers/jsx.d.ts.map +1 -0
- package/lib/parsers/jsx.js +118 -0
- package/lib/parsers/jsx.js.map +1 -0
- package/lib/parsers/svelte.d.ts +11 -0
- package/lib/parsers/svelte.d.ts.map +1 -0
- package/lib/parsers/svelte.js +204 -0
- package/lib/parsers/svelte.js.map +1 -0
- package/lib/parsers/vue.d.ts +9 -0
- package/lib/parsers/vue.d.ts.map +1 -0
- package/lib/parsers/vue.js +155 -0
- package/lib/parsers/vue.js.map +1 -0
- package/lib/rules/enforce-canonical-classes.d.ts +229 -0
- package/lib/rules/enforce-canonical-classes.d.ts.map +1 -0
- package/lib/rules/enforce-canonical-classes.js +84 -0
- package/lib/rules/enforce-canonical-classes.js.map +1 -0
- package/lib/rules/enforce-consistent-class-order.d.ts +229 -0
- package/lib/rules/enforce-consistent-class-order.d.ts.map +1 -0
- package/lib/rules/enforce-consistent-class-order.js +250 -0
- package/lib/rules/enforce-consistent-class-order.js.map +1 -0
- package/lib/rules/enforce-consistent-important-position.d.ts +225 -0
- package/lib/rules/enforce-consistent-important-position.d.ts.map +1 -0
- package/lib/rules/enforce-consistent-important-position.js +68 -0
- package/lib/rules/enforce-consistent-important-position.js.map +1 -0
- package/lib/rules/enforce-consistent-line-wrapping.d.ts +235 -0
- package/lib/rules/enforce-consistent-line-wrapping.d.ts.map +1 -0
- package/lib/rules/enforce-consistent-line-wrapping.js +537 -0
- package/lib/rules/enforce-consistent-line-wrapping.js.map +1 -0
- package/lib/rules/enforce-consistent-variable-syntax.d.ts +225 -0
- package/lib/rules/enforce-consistent-variable-syntax.d.ts.map +1 -0
- package/lib/rules/enforce-consistent-variable-syntax.js +164 -0
- package/lib/rules/enforce-consistent-variable-syntax.js.map +1 -0
- package/lib/rules/enforce-consistent-variant-order.d.ts +225 -0
- package/lib/rules/enforce-consistent-variant-order.d.ts.map +1 -0
- package/lib/rules/enforce-consistent-variant-order.js +77 -0
- package/lib/rules/enforce-consistent-variant-order.js.map +1 -0
- package/lib/rules/enforce-logical-properties.d.ts +227 -0
- package/lib/rules/enforce-logical-properties.d.ts.map +1 -0
- package/lib/rules/enforce-logical-properties.js +142 -0
- package/lib/rules/enforce-logical-properties.js.map +1 -0
- package/lib/rules/enforce-shorthand-classes.d.ts +229 -0
- package/lib/rules/enforce-shorthand-classes.d.ts.map +1 -0
- package/lib/rules/enforce-shorthand-classes.js +217 -0
- package/lib/rules/enforce-shorthand-classes.js.map +1 -0
- package/lib/rules/no-concatenated-classes.d.ts +225 -0
- package/lib/rules/no-concatenated-classes.d.ts.map +1 -0
- package/lib/rules/no-concatenated-classes.js +31 -0
- package/lib/rules/no-concatenated-classes.js.map +1 -0
- package/lib/rules/no-conflicting-classes.d.ts +225 -0
- package/lib/rules/no-conflicting-classes.d.ts.map +1 -0
- package/lib/rules/no-conflicting-classes.js +60 -0
- package/lib/rules/no-conflicting-classes.js.map +1 -0
- package/lib/rules/no-deprecated-classes.d.ts +227 -0
- package/lib/rules/no-deprecated-classes.d.ts.map +1 -0
- package/lib/rules/no-deprecated-classes.js +103 -0
- package/lib/rules/no-deprecated-classes.js.map +1 -0
- package/lib/rules/no-duplicate-classes.d.ts +225 -0
- package/lib/rules/no-duplicate-classes.d.ts.map +1 -0
- package/lib/rules/no-duplicate-classes.js +52 -0
- package/lib/rules/no-duplicate-classes.js.map +1 -0
- package/lib/rules/no-restricted-classes.d.ts +225 -0
- package/lib/rules/no-restricted-classes.d.ts.map +1 -0
- package/lib/rules/no-restricted-classes.js +57 -0
- package/lib/rules/no-restricted-classes.js.map +1 -0
- package/lib/rules/no-unknown-classes.d.ts +225 -0
- package/lib/rules/no-unknown-classes.d.ts.map +1 -0
- package/lib/rules/no-unknown-classes.js +82 -0
- package/lib/rules/no-unknown-classes.js.map +1 -0
- package/lib/rules/no-unnecessary-whitespace.d.ts +225 -0
- package/lib/rules/no-unnecessary-whitespace.d.ts.map +1 -0
- package/lib/rules/no-unnecessary-whitespace.js +141 -0
- package/lib/rules/no-unnecessary-whitespace.js.map +1 -0
- package/lib/tailwindcss/canonical-classes.async.v4.d.ts +3 -0
- package/lib/tailwindcss/canonical-classes.async.v4.d.ts.map +1 -0
- package/lib/tailwindcss/canonical-classes.async.v4.js +54 -0
- package/lib/tailwindcss/canonical-classes.async.v4.js.map +1 -0
- package/lib/tailwindcss/canonical-classes.d.ts +21 -0
- package/lib/tailwindcss/canonical-classes.d.ts.map +1 -0
- package/lib/tailwindcss/canonical-classes.js +16 -0
- package/lib/tailwindcss/canonical-classes.js.map +1 -0
- package/lib/tailwindcss/class-order.async.v3.d.ts +3 -0
- package/lib/tailwindcss/class-order.async.v3.d.ts.map +1 -0
- package/lib/tailwindcss/class-order.async.v3.js +4 -0
- package/lib/tailwindcss/class-order.async.v3.js.map +1 -0
- package/lib/tailwindcss/class-order.async.v4.d.ts +3 -0
- package/lib/tailwindcss/class-order.async.v4.d.ts.map +1 -0
- package/lib/tailwindcss/class-order.async.v4.js +4 -0
- package/lib/tailwindcss/class-order.async.v4.js.map +1 -0
- package/lib/tailwindcss/class-order.d.ts +11 -0
- package/lib/tailwindcss/class-order.d.ts.map +1 -0
- package/lib/tailwindcss/class-order.js +16 -0
- package/lib/tailwindcss/class-order.js.map +1 -0
- package/lib/tailwindcss/conflicting-classes.async.v4.d.ts +35 -0
- package/lib/tailwindcss/conflicting-classes.async.v4.d.ts.map +1 -0
- package/lib/tailwindcss/conflicting-classes.async.v4.js +82 -0
- package/lib/tailwindcss/conflicting-classes.async.v4.js.map +1 -0
- package/lib/tailwindcss/conflicting-classes.d.ts +19 -0
- package/lib/tailwindcss/conflicting-classes.d.ts.map +1 -0
- package/lib/tailwindcss/conflicting-classes.js +17 -0
- package/lib/tailwindcss/conflicting-classes.js.map +1 -0
- package/lib/tailwindcss/context.async.v3.d.ts +3 -0
- package/lib/tailwindcss/context.async.v3.d.ts.map +1 -0
- package/lib/tailwindcss/context.async.v3.js +13 -0
- package/lib/tailwindcss/context.async.v3.js.map +1 -0
- package/lib/tailwindcss/context.async.v4.d.ts +3 -0
- package/lib/tailwindcss/context.async.v4.d.ts.map +1 -0
- package/lib/tailwindcss/context.async.v4.js +82 -0
- package/lib/tailwindcss/context.async.v4.js.map +1 -0
- package/lib/tailwindcss/custom-component-classes.async.v3.d.ts +4 -0
- package/lib/tailwindcss/custom-component-classes.async.v3.d.ts.map +1 -0
- package/lib/tailwindcss/custom-component-classes.async.v3.js +4 -0
- package/lib/tailwindcss/custom-component-classes.async.v3.js.map +1 -0
- package/lib/tailwindcss/custom-component-classes.async.v4.d.ts +4 -0
- package/lib/tailwindcss/custom-component-classes.async.v4.d.ts.map +1 -0
- package/lib/tailwindcss/custom-component-classes.async.v4.js +101 -0
- package/lib/tailwindcss/custom-component-classes.async.v4.js.map +1 -0
- package/lib/tailwindcss/custom-component-classes.d.ts +11 -0
- package/lib/tailwindcss/custom-component-classes.d.ts.map +1 -0
- package/lib/tailwindcss/custom-component-classes.js +16 -0
- package/lib/tailwindcss/custom-component-classes.js.map +1 -0
- package/lib/tailwindcss/dissect-classes.async.v3.d.ts +4 -0
- package/lib/tailwindcss/dissect-classes.async.v3.d.ts.map +1 -0
- package/lib/tailwindcss/dissect-classes.async.v3.js +32 -0
- package/lib/tailwindcss/dissect-classes.async.v3.js.map +1 -0
- package/lib/tailwindcss/dissect-classes.async.v4.d.ts +3 -0
- package/lib/tailwindcss/dissect-classes.async.v4.d.ts.map +1 -0
- package/lib/tailwindcss/dissect-classes.async.v4.js +39 -0
- package/lib/tailwindcss/dissect-classes.async.v4.js.map +1 -0
- package/lib/tailwindcss/dissect-classes.d.ts +23 -0
- package/lib/tailwindcss/dissect-classes.d.ts.map +1 -0
- package/lib/tailwindcss/dissect-classes.js +16 -0
- package/lib/tailwindcss/dissect-classes.js.map +1 -0
- package/lib/tailwindcss/prefix.async.v3.d.ts +4 -0
- package/lib/tailwindcss/prefix.async.v3.d.ts.map +1 -0
- package/lib/tailwindcss/prefix.async.v3.js +7 -0
- package/lib/tailwindcss/prefix.async.v3.js.map +1 -0
- package/lib/tailwindcss/prefix.async.v4.d.ts +4 -0
- package/lib/tailwindcss/prefix.async.v4.d.ts.map +1 -0
- package/lib/tailwindcss/prefix.async.v4.js +7 -0
- package/lib/tailwindcss/prefix.async.v4.js.map +1 -0
- package/lib/tailwindcss/prefix.d.ts +13 -0
- package/lib/tailwindcss/prefix.d.ts.map +1 -0
- package/lib/tailwindcss/prefix.js +15 -0
- package/lib/tailwindcss/prefix.js.map +1 -0
- package/lib/tailwindcss/tailwind.async.worker.v3.d.ts +2 -0
- package/lib/tailwindcss/tailwind.async.worker.v3.d.ts.map +1 -0
- package/lib/tailwindcss/tailwind.async.worker.v3.js +57 -0
- package/lib/tailwindcss/tailwind.async.worker.v3.js.map +1 -0
- package/lib/tailwindcss/tailwind.async.worker.v4.d.ts +2 -0
- package/lib/tailwindcss/tailwind.async.worker.v4.d.ts.map +1 -0
- package/lib/tailwindcss/tailwind.async.worker.v4.js +56 -0
- package/lib/tailwindcss/tailwind.async.worker.v4.js.map +1 -0
- package/lib/tailwindcss/unknown-classes.async.v3.d.ts +4 -0
- package/lib/tailwindcss/unknown-classes.async.v3.d.ts.map +1 -0
- package/lib/tailwindcss/unknown-classes.async.v3.js +10 -0
- package/lib/tailwindcss/unknown-classes.async.v3.js.map +1 -0
- package/lib/tailwindcss/unknown-classes.async.v4.d.ts +3 -0
- package/lib/tailwindcss/unknown-classes.async.v4.d.ts.map +1 -0
- package/lib/tailwindcss/unknown-classes.async.v4.js +5 -0
- package/lib/tailwindcss/unknown-classes.async.v4.js.map +1 -0
- package/lib/tailwindcss/unknown-classes.d.ts +11 -0
- package/lib/tailwindcss/unknown-classes.d.ts.map +1 -0
- package/lib/tailwindcss/unknown-classes.js +21 -0
- package/lib/tailwindcss/unknown-classes.js.map +1 -0
- package/lib/tailwindcss/variant-order.async.v3.d.ts +3 -0
- package/lib/tailwindcss/variant-order.async.v3.d.ts.map +1 -0
- package/lib/tailwindcss/variant-order.async.v3.js +4 -0
- package/lib/tailwindcss/variant-order.async.v3.js.map +1 -0
- package/lib/tailwindcss/variant-order.async.v4.d.ts +3 -0
- package/lib/tailwindcss/variant-order.async.v4.d.ts.map +1 -0
- package/lib/tailwindcss/variant-order.async.v4.js +34 -0
- package/lib/tailwindcss/variant-order.async.v4.js.map +1 -0
- package/lib/tailwindcss/variant-order.d.ts +11 -0
- package/lib/tailwindcss/variant-order.d.ts.map +1 -0
- package/lib/tailwindcss/variant-order.js +16 -0
- package/lib/tailwindcss/variant-order.js.map +1 -0
- package/lib/types/ast.d.ts +79 -0
- package/lib/types/ast.d.ts.map +1 -0
- package/lib/types/ast.js +2 -0
- package/lib/types/ast.js.map +1 -0
- package/lib/types/async.d.ts +7 -0
- package/lib/types/async.d.ts.map +1 -0
- package/lib/types/async.js +2 -0
- package/lib/types/async.js.map +1 -0
- package/lib/types/estree.d.ts +7 -0
- package/lib/types/estree.d.ts.map +1 -0
- package/lib/types/estree.js +2 -0
- package/lib/types/estree.js.map +1 -0
- package/lib/types/rule.d.ts +163 -0
- package/lib/types/rule.d.ts.map +1 -0
- package/lib/types/rule.js +24 -0
- package/lib/types/rule.js.map +1 -0
- package/lib/utils/ast.d.ts +4 -0
- package/lib/utils/ast.d.ts.map +1 -0
- package/lib/utils/ast.js +9 -0
- package/lib/utils/ast.js.map +1 -0
- package/lib/utils/class.d.ts +12 -0
- package/lib/utils/class.d.ts.map +1 -0
- package/lib/utils/class.js +19 -0
- package/lib/utils/class.js.map +1 -0
- package/lib/utils/context.d.ts +20 -0
- package/lib/utils/context.d.ts.map +1 -0
- package/lib/utils/context.js +91 -0
- package/lib/utils/context.js.map +1 -0
- package/lib/utils/lint.d.ts +17 -0
- package/lib/utils/lint.d.ts.map +1 -0
- package/lib/utils/lint.js +40 -0
- package/lib/utils/lint.js.map +1 -0
- package/lib/utils/matchers.d.ts +24 -0
- package/lib/utils/matchers.d.ts.map +1 -0
- package/lib/utils/matchers.js +154 -0
- package/lib/utils/matchers.js.map +1 -0
- package/lib/utils/quotes.d.ts +3 -0
- package/lib/utils/quotes.d.ts.map +1 -0
- package/lib/utils/quotes.js +9 -0
- package/lib/utils/quotes.js.map +1 -0
- package/lib/utils/rule.d.ts +31 -0
- package/lib/utils/rule.d.ts.map +1 -0
- package/lib/utils/rule.js +349 -0
- package/lib/utils/rule.js.map +1 -0
- package/lib/utils/selectors.d.ts +3 -0
- package/lib/utils/selectors.d.ts.map +1 -0
- package/lib/utils/selectors.js +4 -0
- package/lib/utils/selectors.js.map +1 -0
- package/lib/utils/utils.d.ts +49 -0
- package/lib/utils/utils.d.ts.map +1 -0
- package/lib/utils/utils.js +203 -0
- package/lib/utils/utils.js.map +1 -0
- package/lib/utils/valibot.d.ts +4 -0
- package/lib/utils/valibot.d.ts.map +1 -0
- package/lib/utils/valibot.js +12 -0
- package/lib/utils/valibot.js.map +1 -0
- package/lib/utils/version.d.ts +7 -0
- package/lib/utils/version.d.ts.map +1 -0
- package/lib/utils/version.js +6 -0
- package/lib/utils/version.js.map +1 -0
- package/lib/utils/visitedNodes.d.ts +4 -0
- package/lib/utils/visitedNodes.d.ts.map +1 -0
- package/lib/utils/visitedNodes.js +11 -0
- package/lib/utils/visitedNodes.js.map +1 -0
- package/lib/utils/warn.d.ts +2 -0
- package/lib/utils/warn.d.ts.map +1 -0
- package/lib/utils/warn.js +8 -0
- package/lib/utils/warn.js.map +1 -0
- package/package.json +163 -4
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import type { JSRuleDefinition } from "eslint";
|
|
2
|
+
import type { BaseIssue, BaseSchema, Default, InferOutput, OptionalSchema, StrictObjectSchema } from "valibot";
|
|
3
|
+
import type { CommonOptions } from "../options/descriptions.js";
|
|
4
|
+
import type { Literal } from "./ast.js";
|
|
5
|
+
import type { Warning } from "./async.js";
|
|
6
|
+
export declare enum MatcherType {
|
|
7
|
+
/** Matches return values of anonymous functions via nested matchers. */
|
|
8
|
+
AnonymousFunctionReturn = "anonymousFunctionReturn",
|
|
9
|
+
/** Matches all object keys that are strings. */
|
|
10
|
+
ObjectKey = "objectKeys",
|
|
11
|
+
/** Matches all object values that are strings. */
|
|
12
|
+
ObjectValue = "objectValues",
|
|
13
|
+
/** Matches all strings that are not matched by another matcher. */
|
|
14
|
+
String = "strings"
|
|
15
|
+
}
|
|
16
|
+
export declare enum SelectorKind {
|
|
17
|
+
Attribute = "attribute",
|
|
18
|
+
Callee = "callee",
|
|
19
|
+
Tag = "tag",
|
|
20
|
+
Variable = "variable"
|
|
21
|
+
}
|
|
22
|
+
export type Regex = string;
|
|
23
|
+
export type StringMatcher = {
|
|
24
|
+
match: MatcherType.String;
|
|
25
|
+
};
|
|
26
|
+
export type ObjectKeyMatcher = {
|
|
27
|
+
match: MatcherType.ObjectKey;
|
|
28
|
+
pathPattern?: Regex | undefined;
|
|
29
|
+
};
|
|
30
|
+
export type ObjectValueMatcher = {
|
|
31
|
+
match: MatcherType.ObjectValue;
|
|
32
|
+
pathPattern?: Regex | undefined;
|
|
33
|
+
};
|
|
34
|
+
export declare const MATCHER_RESULT: {
|
|
35
|
+
readonly MATCH: true;
|
|
36
|
+
readonly NO_MATCH: false;
|
|
37
|
+
readonly UNCROSSABLE_BOUNDARY: "UNCROSSABLE_BOUNDARY";
|
|
38
|
+
};
|
|
39
|
+
type MatcherFunctionResult = typeof MATCHER_RESULT[keyof typeof MATCHER_RESULT];
|
|
40
|
+
export type MatcherFunction = (node: unknown) => MatcherFunctionResult | MatcherFunctions;
|
|
41
|
+
export type MatcherFunctions = MatcherFunction[];
|
|
42
|
+
export type Matcher = ObjectKeyMatcher | ObjectValueMatcher | StringMatcher;
|
|
43
|
+
export type SelectorStringMatcher = {
|
|
44
|
+
type: MatcherType.String;
|
|
45
|
+
};
|
|
46
|
+
export type SelectorAnonymousFunctionReturnMatcher = {
|
|
47
|
+
match: (SelectorObjectKeyMatcher | SelectorObjectValueMatcher | SelectorStringMatcher)[];
|
|
48
|
+
type: MatcherType.AnonymousFunctionReturn;
|
|
49
|
+
};
|
|
50
|
+
export type SelectorObjectKeyMatcher = {
|
|
51
|
+
type: MatcherType.ObjectKey;
|
|
52
|
+
path?: Regex | undefined;
|
|
53
|
+
};
|
|
54
|
+
export type SelectorObjectValueMatcher = {
|
|
55
|
+
type: MatcherType.ObjectValue;
|
|
56
|
+
path?: Regex | undefined;
|
|
57
|
+
};
|
|
58
|
+
export type SelectorMatcher = SelectorAnonymousFunctionReturnMatcher | SelectorObjectKeyMatcher | SelectorObjectValueMatcher | SelectorStringMatcher;
|
|
59
|
+
type BaseSelector<Kind extends SelectorKind> = {
|
|
60
|
+
kind: Kind;
|
|
61
|
+
name: Regex;
|
|
62
|
+
match?: SelectorMatcher[] | undefined;
|
|
63
|
+
};
|
|
64
|
+
export type Target = "all" | "first" | "last" | number;
|
|
65
|
+
export type CallTarget = Target;
|
|
66
|
+
export type ArgumentTarget = Target;
|
|
67
|
+
export type AttributeSelector = BaseSelector<SelectorKind.Attribute>;
|
|
68
|
+
export type CalleeSelector = {
|
|
69
|
+
kind: SelectorKind.Callee;
|
|
70
|
+
/** @deprecated Use targetCall instead. */
|
|
71
|
+
callTarget?: CallTarget | undefined;
|
|
72
|
+
match?: SelectorMatcher[] | undefined;
|
|
73
|
+
name?: Regex | undefined;
|
|
74
|
+
path?: Regex | undefined;
|
|
75
|
+
targetArgument?: ArgumentTarget | undefined;
|
|
76
|
+
targetCall?: CallTarget | undefined;
|
|
77
|
+
};
|
|
78
|
+
export type TagSelector = {
|
|
79
|
+
kind: SelectorKind.Tag;
|
|
80
|
+
match?: SelectorMatcher[] | undefined;
|
|
81
|
+
name?: Regex | undefined;
|
|
82
|
+
path?: Regex | undefined;
|
|
83
|
+
};
|
|
84
|
+
export type VariableSelector = BaseSelector<SelectorKind.Variable>;
|
|
85
|
+
export type Selector = AttributeSelector | CalleeSelector | TagSelector | VariableSelector;
|
|
86
|
+
export type Selectors = Selector[];
|
|
87
|
+
export type SelectorByKind<Kind extends SelectorKind> = Extract<Selector, {
|
|
88
|
+
kind: Kind;
|
|
89
|
+
}>;
|
|
90
|
+
export type Version = {
|
|
91
|
+
major: number;
|
|
92
|
+
minor: number;
|
|
93
|
+
patch: number;
|
|
94
|
+
};
|
|
95
|
+
export type TailwindConfig = {
|
|
96
|
+
entryPoint?: string;
|
|
97
|
+
tailwindConfig?: string;
|
|
98
|
+
};
|
|
99
|
+
export type TSConfig = {
|
|
100
|
+
tsconfig?: string;
|
|
101
|
+
};
|
|
102
|
+
export type Schema = StrictObjectSchema<Record<string, OptionalSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, Default<BaseSchema<unknown, unknown, BaseIssue<unknown>>, undefined>>>, undefined>;
|
|
103
|
+
export type JsonSchema<RawSchema extends Schema> = InferOutput<RawSchema>;
|
|
104
|
+
export type RuleCategory = "correctness" | "stylistic";
|
|
105
|
+
export interface CreateRuleOptions<Name extends string, Messages extends Record<string, string>, OptionsSchema extends Schema = Schema, Options extends Record<string, any> = CommonOptions & JsonSchema<OptionsSchema>, Category extends RuleCategory = RuleCategory, Recommended extends boolean = boolean> {
|
|
106
|
+
/** Whether the rule should automatically fix problems. */
|
|
107
|
+
autofix: boolean;
|
|
108
|
+
/** The category of the rule. */
|
|
109
|
+
category: Category;
|
|
110
|
+
/** A brief description of the rule. */
|
|
111
|
+
description: string;
|
|
112
|
+
/** The URL to the rule documentation. */
|
|
113
|
+
docs: string;
|
|
114
|
+
/** The name of the rule. */
|
|
115
|
+
name: Name;
|
|
116
|
+
/** Whether the rule is enabled in the recommended configs. */
|
|
117
|
+
recommended: Recommended;
|
|
118
|
+
/** Lint the literals in the given context. */
|
|
119
|
+
lintLiterals: (ctx: RuleContext<Messages, Options>, literals: Literal[]) => void;
|
|
120
|
+
/** The messages for the rule. */
|
|
121
|
+
messages?: Messages;
|
|
122
|
+
/** The schema for the rule options. */
|
|
123
|
+
schema?: OptionsSchema;
|
|
124
|
+
initialize?: (ctx: RuleContext<Messages, Options>) => void;
|
|
125
|
+
}
|
|
126
|
+
export interface ESLintRule<Name extends string = string, Messages extends Record<string, string> = Record<string, string>, Options extends Record<string, any> = Record<string, any>, Category extends RuleCategory = RuleCategory, Recommended extends boolean = boolean> {
|
|
127
|
+
category: Category;
|
|
128
|
+
messages: Messages | undefined;
|
|
129
|
+
name: Name;
|
|
130
|
+
recommended: Recommended;
|
|
131
|
+
rule: JSRuleDefinition<{
|
|
132
|
+
MessageIds: keyof Messages & string;
|
|
133
|
+
RuleOptions: [Required<Options>];
|
|
134
|
+
}>;
|
|
135
|
+
get options(): Options;
|
|
136
|
+
}
|
|
137
|
+
export interface RuleContext<Messages extends Record<string, string> | undefined, Options extends Record<string, any>> {
|
|
138
|
+
cwd: string;
|
|
139
|
+
docs: string;
|
|
140
|
+
/** The installation path of Tailwind CSS. */
|
|
141
|
+
installation: string;
|
|
142
|
+
options: Options;
|
|
143
|
+
/** The Tailwind CSS Version. */
|
|
144
|
+
version: Version;
|
|
145
|
+
report: <const MsgId extends MessageId<Messages>>(info: ((MsgId extends string ? Messages extends Record<string, string> ? MsgId extends keyof Messages ? {
|
|
146
|
+
data: Record<ExtractVariables<Messages[MsgId]>, string> extends infer Data ? keyof Data extends never ? never : Data : never;
|
|
147
|
+
id: MsgId;
|
|
148
|
+
fix?: string;
|
|
149
|
+
warnings?: (Warning | undefined)[] | undefined;
|
|
150
|
+
} : never : never : never) | {
|
|
151
|
+
fix?: string;
|
|
152
|
+
message?: string;
|
|
153
|
+
warnings?: (Warning<Options> | undefined)[] | undefined;
|
|
154
|
+
}) & {
|
|
155
|
+
range: [number, number];
|
|
156
|
+
}) => void;
|
|
157
|
+
}
|
|
158
|
+
export type Context<Rule extends ESLintRule = ESLintRule> = RuleContext<Rule["messages"], Rule["options"]>;
|
|
159
|
+
export type MessageId<Messages extends Record<string, any> | undefined> = Messages extends Record<string, any> ? keyof Messages : never;
|
|
160
|
+
type Trim<Content extends string> = Content extends ` ${infer Rest}` ? Trim<Rest> : Content extends `${infer Rest} ` ? Trim<Rest> : Content;
|
|
161
|
+
export type ExtractVariables<Template extends string> = Template extends `${string}{{${infer RawVariable}}}${infer Rest}` ? ExtractVariables<Rest> | Trim<RawVariable> : never;
|
|
162
|
+
export {};
|
|
163
|
+
//# sourceMappingURL=rule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../src/types/rule.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export var MatcherType;
|
|
2
|
+
(function (MatcherType) {
|
|
3
|
+
/** Matches return values of anonymous functions via nested matchers. */
|
|
4
|
+
MatcherType["AnonymousFunctionReturn"] = "anonymousFunctionReturn";
|
|
5
|
+
/** Matches all object keys that are strings. */
|
|
6
|
+
MatcherType["ObjectKey"] = "objectKeys";
|
|
7
|
+
/** Matches all object values that are strings. */
|
|
8
|
+
MatcherType["ObjectValue"] = "objectValues";
|
|
9
|
+
/** Matches all strings that are not matched by another matcher. */
|
|
10
|
+
MatcherType["String"] = "strings";
|
|
11
|
+
})(MatcherType || (MatcherType = {}));
|
|
12
|
+
export var SelectorKind;
|
|
13
|
+
(function (SelectorKind) {
|
|
14
|
+
SelectorKind["Attribute"] = "attribute";
|
|
15
|
+
SelectorKind["Callee"] = "callee";
|
|
16
|
+
SelectorKind["Tag"] = "tag";
|
|
17
|
+
SelectorKind["Variable"] = "variable";
|
|
18
|
+
})(SelectorKind || (SelectorKind = {}));
|
|
19
|
+
export const MATCHER_RESULT = {
|
|
20
|
+
MATCH: true,
|
|
21
|
+
NO_MATCH: false,
|
|
22
|
+
UNCROSSABLE_BOUNDARY: "UNCROSSABLE_BOUNDARY"
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=rule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule.js","sourceRoot":"","sources":["../../src/types/rule.ts"],"names":[],"mappings":"AAQA,MAAM,CAAN,IAAY,WASX;AATD,WAAY,WAAW;IACrB,wEAAwE;IACxE,kEAAmD,CAAA;IACnD,gDAAgD;IAChD,uCAAwB,CAAA;IACxB,kDAAkD;IAClD,2CAA4B,CAAA;IAC5B,oEAAoE;IACpE,iCAAkB,CAAA;AACpB,CAAC,EATW,WAAW,KAAX,WAAW,QAStB;AAED,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,uCAAuB,CAAA;IACvB,iCAAiB,CAAA;IACjB,2BAAW,CAAA;IACX,qCAAqB,CAAA;AACvB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAoBD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,KAAK;IACf,oBAAoB,EAAE,sBAAsB;CACpC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/utils/ast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAG7C,wBAAgB,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,cAAc,CAS5F"}
|
package/lib/utils/ast.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/utils/ast.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,aAAa,CAAC,GAAqB,EAAE,KAAuB;IAC1E,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;IAErC,MAAM,GAAG,GAAmB;QAC1B,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC;QAC7C,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC;KAClD,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Context } from "../types/rule.js";
|
|
2
|
+
interface ClassParts {
|
|
3
|
+
base: string;
|
|
4
|
+
important: [boolean, boolean];
|
|
5
|
+
negative: boolean;
|
|
6
|
+
prefix: string;
|
|
7
|
+
separator: string;
|
|
8
|
+
variants: string[] | undefined;
|
|
9
|
+
}
|
|
10
|
+
export declare function buildClass(ctx: Context, { base, important, negative, prefix, separator, variants }: ClassParts): string;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"class.d.ts","sourceRoot":"","sources":["../../src/utils/class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAGhE,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAChC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,UAAU,GAAG,MAAM,CAkBvH"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function buildClass(ctx, { base, important, negative, prefix, separator, variants }) {
|
|
2
|
+
const importantAtStart = important[0] && "!";
|
|
3
|
+
const importantAtEnd = important[1] && "!";
|
|
4
|
+
const negativePrefix = negative && "-";
|
|
5
|
+
if (ctx.version.major >= 4) {
|
|
6
|
+
return [
|
|
7
|
+
prefix,
|
|
8
|
+
...variants ?? [],
|
|
9
|
+
[importantAtStart, negativePrefix, base, importantAtEnd].filter(Boolean).join("")
|
|
10
|
+
].filter(Boolean).join(separator);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
return [
|
|
14
|
+
...variants ?? [],
|
|
15
|
+
[importantAtStart, prefix, negativePrefix, base, importantAtEnd].filter(Boolean).join("")
|
|
16
|
+
].filter(Boolean).join(separator);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"class.js","sourceRoot":"","sources":["../../src/utils/class.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,UAAU,CAAC,GAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAc;IAE7G,MAAM,gBAAgB,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IAC7C,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IAC3C,MAAM,cAAc,GAAG,QAAQ,IAAI,GAAG,CAAC;IAEvC,IAAG,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,EAAC,CAAC;QACzB,OAAO;YACL,MAAM;YACN,GAAG,QAAQ,IAAI,EAAE;YACjB,CAAC,gBAAgB,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SAClF,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,OAAO;YACL,GAAG,QAAQ,IAAI,EAAE;YACjB,CAAC,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SAC1F,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Warning } from "../types/async.js";
|
|
2
|
+
import type { Context, Version } from "../types/rule.js";
|
|
3
|
+
export interface AsyncContext {
|
|
4
|
+
cwd: string;
|
|
5
|
+
installation: string;
|
|
6
|
+
tailwindConfigPath: string;
|
|
7
|
+
tsconfigPath: string | undefined;
|
|
8
|
+
version: Version;
|
|
9
|
+
warnings: (Warning | undefined)[];
|
|
10
|
+
}
|
|
11
|
+
export declare function async(ctx: Context): AsyncContext;
|
|
12
|
+
export declare function getTailwindConfigPath({ configPath, cwd, version }: {
|
|
13
|
+
configPath: string | undefined;
|
|
14
|
+
cwd: string;
|
|
15
|
+
version: Version;
|
|
16
|
+
}): {
|
|
17
|
+
path: string;
|
|
18
|
+
warnings: (Warning<Record<string, any>> | undefined)[];
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/utils/context.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAGzE,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC;CACnC;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAYhD;AAuBD,wBAAgB,qBAAqB,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;IAClE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;CAClB;;;EA+CA"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { resolve } from "node:path";
|
|
2
|
+
import { withCache } from "../async-utils/cache.js";
|
|
3
|
+
import { findPathRecursive } from "../async-utils/fs.js";
|
|
4
|
+
import { resolveCss } from "../async-utils/resolvers.js";
|
|
5
|
+
export function async(ctx) {
|
|
6
|
+
const { path: resolvedTailwindPath, warnings: tailwindConfigWarnings } = getTailwindConfigPath({ configPath: ctx.options.entryPoint ?? ctx.options.tailwindConfig, cwd: ctx.cwd, version: ctx.version });
|
|
7
|
+
const { path: resolvedTSConfigPath, warnings: tsconfigWarnings } = getTSConfigPath({ configPath: ctx.options.tsconfig, cwd: ctx.cwd });
|
|
8
|
+
return {
|
|
9
|
+
cwd: ctx.cwd,
|
|
10
|
+
installation: ctx.installation,
|
|
11
|
+
tailwindConfigPath: resolvedTailwindPath,
|
|
12
|
+
tsconfigPath: resolvedTSConfigPath,
|
|
13
|
+
version: ctx.version,
|
|
14
|
+
warnings: [...tailwindConfigWarnings, ...tsconfigWarnings]
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function getTSConfigPath({ configPath, cwd }) {
|
|
18
|
+
return withCache(`tsconfig-path-${cwd}`, configPath, () => {
|
|
19
|
+
const potentialPaths = [
|
|
20
|
+
...configPath ? [configPath] : [],
|
|
21
|
+
"tsconfig.json",
|
|
22
|
+
"jsconfig.json"
|
|
23
|
+
];
|
|
24
|
+
const foundConfigPath = findPathRecursive(cwd, cwd, potentialPaths);
|
|
25
|
+
const warning = getConfigPathWarning(configPath, foundConfigPath);
|
|
26
|
+
return {
|
|
27
|
+
path: foundConfigPath,
|
|
28
|
+
warnings: [warning]
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
export function getTailwindConfigPath({ configPath, cwd, version }) {
|
|
33
|
+
return withCache(`config-path-${cwd}`, configPath, () => {
|
|
34
|
+
if (version.major >= 4) {
|
|
35
|
+
const foundConfigPath = configPath && findPathRecursive(cwd, cwd, [configPath]);
|
|
36
|
+
const warning = getEntryPointWarning(configPath, foundConfigPath);
|
|
37
|
+
if (foundConfigPath) {
|
|
38
|
+
return {
|
|
39
|
+
path: foundConfigPath,
|
|
40
|
+
warnings: [warning]
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
const defaultConfigPath = resolveCss("tailwindcss/theme.css", cwd);
|
|
44
|
+
if (!defaultConfigPath) {
|
|
45
|
+
throw new Error("No default tailwind config found. Please ensure you have Tailwind CSS installed.");
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
path: defaultConfigPath,
|
|
49
|
+
warnings: [warning]
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
if (version.major <= 3) {
|
|
53
|
+
const defaultPaths = [
|
|
54
|
+
"tailwind.config.js",
|
|
55
|
+
"tailwind.config.cjs",
|
|
56
|
+
"tailwind.config.mjs",
|
|
57
|
+
"tailwind.config.ts"
|
|
58
|
+
];
|
|
59
|
+
const foundConfigPath = configPath && findPathRecursive(cwd, cwd, [configPath]);
|
|
60
|
+
const foundDefaultPath = findPathRecursive(cwd, cwd, defaultPaths);
|
|
61
|
+
const warning = getConfigPathWarning(configPath, foundConfigPath);
|
|
62
|
+
return {
|
|
63
|
+
path: foundConfigPath ?? foundDefaultPath ?? "default",
|
|
64
|
+
warnings: [warning]
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
throw new Error(`Unsupported Tailwind CSS version: ${version.major}. Please use a version between 3 and 4.`);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function getEntryPointWarning(entryPoint, foundEntryPoint) {
|
|
71
|
+
if (!!entryPoint && !!foundEntryPoint) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
option: "entryPoint",
|
|
76
|
+
title: `No tailwind css entry point found at \`${entryPoint}\``
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
function getConfigPathWarning(configPath, foundConfigPath) {
|
|
80
|
+
if (!configPath) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (foundConfigPath && resolve(configPath) === resolve(foundConfigPath)) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
option: "tsconfig",
|
|
88
|
+
title: `No tsconfig found at \`${configPath}\``
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/utils/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Literal } from "../types/ast.js";
|
|
2
|
+
import type { Warning } from "../types/async.js";
|
|
3
|
+
import type { Context } from "../types/rule.js";
|
|
4
|
+
export declare function lintClasses<const Ctx extends Context>(ctx: Ctx, literal: Literal, report: (className: string, index: number, classes: string[], fixedClasses: string[]) => ((Parameters<Ctx["report"]>[0] extends infer DataAndId ? (DataAndId extends Record<"data" | "id", any> ? {
|
|
5
|
+
data: DataAndId["data"];
|
|
6
|
+
id: DataAndId["id"];
|
|
7
|
+
fix?: string;
|
|
8
|
+
message?: undefined;
|
|
9
|
+
warnings?: (Warning | undefined)[];
|
|
10
|
+
} : never) : never) extends infer Result extends Record<string, any> ? {
|
|
11
|
+
[Key in keyof Result as Result[Key] extends never ? never : Key]: Result[Key];
|
|
12
|
+
} : never) | false | undefined | {
|
|
13
|
+
message: string;
|
|
14
|
+
fix?: string;
|
|
15
|
+
warnings?: (Warning | undefined)[];
|
|
16
|
+
}): void;
|
|
17
|
+
//# sourceMappingURL=lint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/utils/lint.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAOhE,wBAAgB,WAAW,CACzB,KAAK,CAAC,GAAG,SAAS,OAAO,EAEzB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,KAC9E,CAAC,CACD,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,SAAS,GAChD,CACA,SAAS,SAAS,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,GAAG,CAAC,GACxC;IACA,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC;CACpC,GACC,KAAK,CACV,GACC,KAAK,CACV,SAAS,MAAM,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9C;KACC,GAAG,IAAI,MAAM,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;CAC9E,GACC,KAAK,CACR,GACC,KAAK,GACL,SAAS,GACT;IACA,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC;CACpC,GACJ,IAAI,CAqDN"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { splitClasses, splitWhitespaces } from "./utils.js";
|
|
2
|
+
export function lintClasses(ctx, literal, report) {
|
|
3
|
+
const classChunks = splitClasses(literal.content);
|
|
4
|
+
const whitespaceChunks = splitWhitespaces(literal.content);
|
|
5
|
+
const startsWithWhitespace = whitespaceChunks.length > 0 && whitespaceChunks[0] !== "";
|
|
6
|
+
const fixedClasses = [...classChunks];
|
|
7
|
+
for (let classIndex = 0, stringIndex = 0; classIndex < classChunks.length; classIndex++) {
|
|
8
|
+
const className = classChunks[classIndex];
|
|
9
|
+
if (startsWithWhitespace) {
|
|
10
|
+
stringIndex += whitespaceChunks[classIndex].length;
|
|
11
|
+
}
|
|
12
|
+
const startIndex = stringIndex;
|
|
13
|
+
const endIndex = stringIndex + className.length;
|
|
14
|
+
stringIndex = endIndex;
|
|
15
|
+
if (!startsWithWhitespace) {
|
|
16
|
+
stringIndex += whitespaceChunks[classIndex + 1].length;
|
|
17
|
+
}
|
|
18
|
+
const result = report(className, classIndex, classChunks, fixedClasses);
|
|
19
|
+
if (result === undefined || result === false) {
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
const [literalStart] = literal.range;
|
|
23
|
+
if (typeof result === "object" && result.fix !== undefined) {
|
|
24
|
+
fixedClasses[classIndex] = result.fix;
|
|
25
|
+
}
|
|
26
|
+
ctx.report({
|
|
27
|
+
message: `Expected ${className} to be ${result.fix ?? ""}.`,
|
|
28
|
+
range: [
|
|
29
|
+
literalStart + startIndex + (literal.openingQuote?.length ?? 0) + (literal.closingBraces?.length ?? 0),
|
|
30
|
+
literalStart + endIndex + (literal.openingQuote?.length ?? 0) + (literal.closingBraces?.length ?? 0)
|
|
31
|
+
],
|
|
32
|
+
..."warnings" in result && { warnings: result.warnings },
|
|
33
|
+
..."data" in result && { data: result.data },
|
|
34
|
+
..."message" in result && { id: undefined, message: result.message },
|
|
35
|
+
..."id" in result && { id: result.id, message: undefined },
|
|
36
|
+
...typeof result === "object" && result.fix !== undefined && { fix: result.fix }
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=lint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/utils/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAWnF,MAAM,UAAU,WAAW,CAGzB,GAAQ,EACR,OAAgB,EAChB,MA2BK;IAGL,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvF,MAAM,YAAY,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IAEtC,KAAI,IAAI,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,EAAC,CAAC;QAEtF,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAG,oBAAoB,EAAC,CAAC;YACvB,WAAW,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QACrD,CAAC;QAED,MAAM,UAAU,GAAG,WAAW,CAAC;QAC/B,MAAM,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC;QAEhD,WAAW,GAAG,QAAQ,CAAC;QAEvB,IAAG,CAAC,oBAAoB,EAAC,CAAC;YACxB,WAAW,IAAI,gBAAgB,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACzD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QAExE,IAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,EAAC,CAAC;YAC3C,SAAS;QACX,CAAC;QAED,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAErC,IAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAC,CAAC;YACzD,YAAY,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;QACxC,CAAC;QAED,GAAG,CAAC,MAAM,CAAC;YACT,OAAO,EAAE,YAAY,SAAS,UAAU,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG;YAC3D,KAAK,EAAE;gBACL,YAAY,GAAG,UAAU,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC;gBACtG,YAAY,GAAG,QAAQ,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC;aACrG;YACD,GAAG,UAAU,IAAI,MAAM,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;YACxD,GAAG,MAAM,IAAI,MAAM,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;YAC5C,GAAG,SAAS,IAAI,MAAM,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;YACpE,GAAG,IAAI,IAAI,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;YAC1D,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;SACjF,CAAC,CAAC;IAEL,CAAC;AAEH,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Rule } from "eslint";
|
|
2
|
+
import type { Node as ESNode } from "estree";
|
|
3
|
+
import type { AttributeMatchers, AttributeName, Attributes } from "../options/schemas/attributes.js";
|
|
4
|
+
import type { CalleeMatchers, CalleeName, Callees } from "../options/schemas/callees.js";
|
|
5
|
+
import type { TagMatchers, TagName, Tags } from "../options/schemas/tags.js";
|
|
6
|
+
import type { VariableMatchers, VariableName, Variables } from "../options/schemas/variables.js";
|
|
7
|
+
import type { WithParent } from "../types/estree.js";
|
|
8
|
+
import type { MatcherFunctions } from "../types/rule.js";
|
|
9
|
+
export declare function getLiteralNodesByMatchers<Node>(ctx: Rule.RuleContext, node: unknown, matcherFunctions: MatcherFunctions): Node[];
|
|
10
|
+
export declare function matchesPathPattern(path: string, pattern: string): boolean;
|
|
11
|
+
export declare function isCalleeName(callee: Callees[number]): callee is CalleeName;
|
|
12
|
+
export declare function isCalleeMatchers(callee: Callees[number]): callee is CalleeMatchers;
|
|
13
|
+
export declare function isVariableName(variable: Variables[number]): variable is VariableName;
|
|
14
|
+
export declare function isVariableMatchers(variable: Variables[number]): variable is VariableMatchers;
|
|
15
|
+
export declare function isTagName(tag: Tags[number]): tag is TagName;
|
|
16
|
+
export declare function isTagMatchers(tag: Tags[number]): tag is TagMatchers;
|
|
17
|
+
export declare function isAttributesName(attributes: Attributes[number]): attributes is AttributeName;
|
|
18
|
+
export declare function isAttributesMatchers(attributes: Attributes[number]): attributes is AttributeMatchers;
|
|
19
|
+
export declare function isInsideConditionalExpressionTest(node: WithParent<ESNode>): boolean;
|
|
20
|
+
export declare function isInsideDisallowedBinaryExpression(node: WithParent<ESNode>): boolean;
|
|
21
|
+
export declare function isInsideLogicalExpressionLeft(node: WithParent<ESNode>): boolean;
|
|
22
|
+
export declare function isInsideMemberExpression(node: WithParent<ESNode>): boolean;
|
|
23
|
+
export declare function isIndexedAccessLiteral(node: WithParent<ESNode>): boolean;
|
|
24
|
+
//# sourceMappingURL=matchers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../../src/utils/matchers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kDAAkD,CAAC;AACrH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,+CAA+C,CAAC;AACzG,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,4CAA4C,CAAC;AAC7F,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iDAAiD,CAAC;AACjH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAIzE,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,EAAE,CAkChI;AA8DD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,UAAU,CAE1E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,cAAc,CAElF;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,QAAQ,IAAI,YAAY,CAEpF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,QAAQ,IAAI,gBAAgB,CAE5F;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,OAAO,CAE3D;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,WAAW,CAEnE;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,IAAI,aAAa,CAE5F;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,IAAI,iBAAiB,CAEpG;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,OAAO,CAInF;AAED,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,OAAO,CAOpF;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,OAAO,CAI/E;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,OAAO,CAK1E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,OAAO,CAIxE"}
|