@2digits/eslint-config 4.12.3 → 4.12.5

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/index.d.mts CHANGED
@@ -330,6 +330,11 @@ interface RuleOptions {
330
330
  * @see https://github.com/eslint/css/blob/main/docs/rules/no-invalid-properties.md
331
331
  */
332
332
  'css/no-invalid-properties'?: Linter.RuleEntry<CssNoInvalidProperties>;
333
+ /**
334
+ * Disallow unmatchable selectors
335
+ * @see https://github.com/eslint/css/blob/main/docs/rules/no-unmatchable-selectors.md
336
+ */
337
+ 'css/no-unmatchable-selectors'?: Linter.RuleEntry<[]>;
333
338
  /**
334
339
  * Enforce the use of logical properties
335
340
  * @see https://github.com/eslint/css/blob/main/docs/rules/prefer-logical-properties.md
@@ -8020,8 +8025,8 @@ type CssNoInvalidProperties = [] | [{
8020
8025
  }];
8021
8026
  // ----- css/prefer-logical-properties -----
8022
8027
  type CssPreferLogicalProperties = [] | [{
8023
- allowProperties?: string[];
8024
- allowUnits?: string[];
8028
+ allowProperties?: ("bottom" | "border-bottom" | "border-bottom-color" | "border-bottom-left-radius" | "border-bottom-right-radius" | "border-bottom-style" | "border-bottom-width" | "border-left" | "border-left-color" | "border-left-style" | "border-left-width" | "border-right" | "border-right-color" | "border-right-style" | "border-right-width" | "border-top" | "border-top-color" | "border-top-left-radius" | "border-top-right-radius" | "border-top-style" | "border-top-width" | "contain-intrinsic-height" | "contain-intrinsic-width" | "height" | "left" | "margin-bottom" | "margin-left" | "margin-right" | "margin-top" | "max-height" | "max-width" | "min-height" | "min-width" | "overflow-x" | "overflow-y" | "overscroll-behavior-x" | "overscroll-behavior-y" | "padding-bottom" | "padding-left" | "padding-right" | "padding-top" | "right" | "scroll-margin-bottom" | "scroll-margin-left" | "scroll-margin-right" | "scroll-margin-top" | "scroll-padding-bottom" | "scroll-padding-left" | "scroll-padding-right" | "scroll-padding-top" | "top" | "width")[];
8029
+ allowUnits?: ("cqh" | "cqw" | "dvh" | "dvw" | "lvh" | "lvw" | "svh" | "svw" | "vh" | "vw")[];
8025
8030
  }];
8026
8031
  // ----- css/relative-font-units -----
8027
8032
  type CssRelativeFontUnits = [] | [{
@@ -8042,14 +8047,315 @@ type CssSelectorComplexity = [] | [{
8042
8047
  disallowPseudoElements?: string[];
8043
8048
  disallowAttributes?: string[];
8044
8049
  disallowAttributeMatchers?: string[];
8045
- [k: string]: unknown | undefined;
8046
8050
  }];
8047
8051
  // ----- css/use-baseline -----
8048
8052
  type CssUseBaseline = [] | [{
8049
8053
  available?: (("widely" | "newly") | number);
8050
- allowAtRules?: string[];
8051
- allowProperties?: string[];
8052
- allowSelectors?: string[];
8054
+ allowAtRules?: ("position-try" | "keyframes" | "layer" | "charset" | "container" | "counter-style" | "view-transition" | "font-face" | "font-palette-values" | "font-feature-values" | "function" | "import" | "media" | "namespace" | "page" | "property" | "scope" | "starting-style" | "supports")[];
8055
+ allowFunctions?: ("abs" | "sign" | "anchor" | "anchor-size" | "color" | "attr" | "calc" | "calc-size" | "rect" | "color-mix" | "conic-gradient" | "repeating-conic-gradient" | "round" | "counter" | "counters" | "cross-fade" | "cubic-bezier" | "var" | "element" | "exp" | "hypot" | "log" | "pow" | "sqrt" | "blur" | "brightness" | "contrast" | "drop-shadow" | "grayscale" | "hue-rotate" | "invert" | "opacity" | "saturate" | "sepia" | "linear-gradient" | "radial-gradient" | "repeating-linear-gradient" | "repeating-radial-gradient" | "image" | "hsl" | "hwb" | "image-set" | "lab" | "lch" | "light-dark" | "clamp" | "max" | "min" | "ray" | "oklab" | "oklch" | "paint" | "path" | "rem" | "rgb" | "mod" | "env" | "circle" | "ellipse" | "inset" | "polygon" | "xywh" | "steps" | "matrix" | "rotate" | "scale" | "scaleX" | "scaleY" | "skew" | "skewX" | "skewY" | "translate" | "translateX" | "translateY" | "matrix3d" | "perspective" | "rotate3d" | "rotateX" | "rotateY" | "rotateZ" | "scale3d" | "scaleZ" | "translate3d" | "translateZ" | "acos" | "asin" | "atan" | "atan2" | "cos" | "sin" | "tan")[];
8056
+ allowMediaConditions?: ("color-gamut" | "device-posture" | "device-aspect-ratio" | "device-height" | "device-width" | "display-mode" | "dynamic-range" | "forced-colors" | "any-hover" | "any-pointer" | "hover" | "pointer" | "inverted-colors" | "aspect-ratio" | "calc" | "color" | "color-index" | "grid" | "height" | "monochrome" | "nested-queries" | "orientation" | "width" | "overflow-block" | "overflow-inline" | "prefers-color-scheme" | "prefers-contrast" | "prefers-reduced-data" | "prefers-reduced-motion" | "prefers-reduced-transparency" | "resolution" | "-webkit-device-pixel-ratio" | "-webkit-max-device-pixel-ratio" | "-webkit-min-device-pixel-ratio" | "scripting" | "-webkit-transform-3d" | "update" | "video-dynamic-range" | "horizontal-viewport-segments" | "vertical-viewport-segments")[];
8057
+ allowProperties?: ("accent-color" | "alignment-baseline" | "all" | "anchor-name" | "anchor-scope" | "position-anchor" | "position-area" | "position-try" | "position-try-fallbacks" | "position-try-order" | "position-visibility" | "animation-composition" | "animation" | "animation-delay" | "animation-direction" | "animation-duration" | "animation-fill-mode" | "animation-iteration-count" | "animation-name" | "animation-play-state" | "animation-timing-function" | "appearance" | "aspect-ratio" | "backdrop-filter" | "background" | "background-attachment" | "background-blend-mode" | "background-clip" | "background-color" | "background-image" | "background-origin" | "background-position" | "background-position-x" | "background-position-y" | "background-repeat" | "background-size" | "baseline-shift" | "baseline-source" | "border-image" | "border-image-outset" | "border-image-repeat" | "border-image-slice" | "border-image-source" | "border-image-width" | "border-bottom-left-radius" | "border-bottom-right-radius" | "border-radius" | "border-top-left-radius" | "border-top-right-radius" | "border" | "border-bottom" | "border-bottom-color" | "border-bottom-style" | "border-bottom-width" | "border-color" | "border-left" | "border-left-color" | "border-left-style" | "border-left-width" | "border-right" | "border-right-color" | "border-right-style" | "border-right-width" | "border-style" | "border-top" | "border-top-color" | "border-top-style" | "border-top-width" | "border-width" | "box-decoration-break" | "box-shadow" | "box-sizing" | "caret-color" | "caret-shape" | "clip" | "clip-path" | "color" | "color-adjust" | "color-scheme" | "column-fill" | "column-span" | "contain" | "contain-intrinsic-block-size" | "contain-intrinsic-height" | "contain-intrinsic-inline-size" | "contain-intrinsic-size" | "contain-intrinsic-width" | "container" | "container-name" | "container-type" | "content" | "content-visibility" | "corner-block-end-shape" | "corner-block-start-shape" | "corner-bottom-left-shape" | "corner-bottom-right-shape" | "corner-bottom-shape" | "corner-end-end-shape" | "corner-end-start-shape" | "corner-inline-end-shape" | "corner-inline-start-shape" | "corner-left-shape" | "corner-right-shape" | "corner-shape" | "corner-start-end-shape" | "corner-start-start-shape" | "corner-top-left-shape" | "corner-top-right-shape" | "corner-top-shape" | "counter-set" | "counter-increment" | "counter-reset" | "custom-property" | "display" | "dominant-baseline" | "field-sizing" | "filter" | "align-content" | "align-items" | "align-self" | "flex" | "flex-basis" | "flex-direction" | "flex-flow" | "flex-grow" | "flex-shrink" | "flex-wrap" | "justify-content" | "justify-items" | "order" | "place-content" | "place-items" | "place-self" | "clear" | "float" | "font-family" | "font-feature-settings" | "font-kerning" | "font-language-override" | "font-optical-sizing" | "font-palette" | "font" | "font-size" | "font-size-adjust" | "font-stretch" | "font-style" | "font-synthesis" | "font-synthesis-position" | "font-synthesis-small-caps" | "font-synthesis-style" | "font-synthesis-weight" | "font-variant" | "font-variant-alternates" | "font-variant-caps" | "font-variant-east-asian" | "font-variant-emoji" | "font-variant-ligatures" | "font-variant-numeric" | "font-variant-position" | "font-variation-settings" | "font-weight" | "font-width" | "forced-color-adjust" | "glyph-orientation-vertical" | "gap" | "grid" | "grid-area" | "grid-auto-columns" | "grid-auto-flow" | "grid-auto-rows" | "grid-column" | "grid-column-end" | "grid-column-start" | "grid-row" | "grid-row-end" | "grid-row-start" | "grid-template" | "grid-template-areas" | "grid-template-columns" | "grid-template-rows" | "justify-self" | "row-gap" | "hanging-punctuation" | "hyphenate-character" | "hyphenate-limit-chars" | "hyphens" | "image-orientation" | "image-rendering" | "ime-mode" | "rotate" | "scale" | "translate" | "initial-letter" | "interactivity" | "interpolate-size" | "isolation" | "direction" | "unicode-bidi" | "letter-spacing" | "line-break" | "line-clamp" | "line-height" | "list-style" | "list-style-image" | "list-style-position" | "list-style-type" | "block-size" | "border-block" | "border-block-color" | "border-block-end" | "border-block-end-color" | "border-block-end-style" | "border-block-end-width" | "border-block-start" | "border-block-start-color" | "border-block-start-style" | "border-block-start-width" | "border-block-style" | "border-block-width" | "border-end-end-radius" | "border-end-start-radius" | "border-inline" | "border-inline-color" | "border-inline-end" | "border-inline-end-color" | "border-inline-end-style" | "border-inline-end-width" | "border-inline-start" | "border-inline-start-color" | "border-inline-start-style" | "border-inline-start-width" | "border-inline-style" | "border-inline-width" | "border-start-end-radius" | "border-start-start-radius" | "inline-size" | "inset" | "inset-block" | "inset-block-end" | "inset-block-start" | "inset-inline" | "inset-inline-end" | "inset-inline-start" | "margin-block" | "margin-block-end" | "margin-block-start" | "margin-inline" | "margin-inline-end" | "margin-inline-start" | "max-block-size" | "max-inline-size" | "min-block-size" | "min-inline-size" | "overflow-block" | "overflow-inline" | "padding-block" | "padding-block-end" | "padding-block-start" | "padding-inline" | "padding-inline-end" | "padding-inline-start" | "margin" | "margin-bottom" | "margin-left" | "margin-right" | "margin-top" | "margin-trim" | "mask-border" | "mask-border-outset" | "mask-border-repeat" | "mask-border-slice" | "mask-border-source" | "mask-border-width" | "mask-type" | "mask" | "mask-clip" | "mask-composite" | "mask-image" | "mask-mode" | "mask-origin" | "mask-position" | "mask-repeat" | "mask-size" | "math-depth" | "math-shift" | "math-style" | "max-height" | "max-width" | "min-height" | "min-width" | "mix-blend-mode" | "offset" | "offset-anchor" | "offset-distance" | "offset-path" | "offset-position" | "offset-rotate" | "column-count" | "column-gap" | "column-rule" | "column-rule-color" | "column-rule-style" | "column-rule-width" | "column-width" | "columns" | "object-fit" | "object-position" | "object-view-box" | "opacity" | "fill-opacity" | "stroke-opacity" | "outline" | "outline-color" | "outline-offset" | "outline-style" | "outline-width" | "overflow-anchor" | "overflow-clip-margin" | "overflow" | "overflow-x" | "overflow-y" | "overflow-wrap" | "overlay" | "overscroll-behavior" | "overscroll-behavior-block" | "overscroll-behavior-inline" | "overscroll-behavior-x" | "overscroll-behavior-y" | "padding" | "padding-bottom" | "padding-left" | "padding-right" | "padding-top" | "page-break-after" | "page-break-before" | "page-break-inside" | "break-after" | "break-before" | "break-inside" | "page" | "paint-order" | "bottom" | "left" | "right" | "top" | "pointer-events" | "position" | "print-color-adjust" | "quotes" | "reading-flow" | "reading-order" | "resize" | "ruby-align" | "ruby-overhang" | "ruby-position" | "scroll-behavior" | "animation-range" | "animation-range-end" | "animation-range-start" | "animation-timeline" | "scroll-timeline" | "scroll-timeline-axis" | "scroll-timeline-name" | "timeline-scope" | "view-timeline" | "view-timeline-axis" | "view-timeline-inset" | "view-timeline-name" | "scroll-initial-target" | "scroll-marker-group" | "scroll-margin" | "scroll-margin-block" | "scroll-margin-block-end" | "scroll-margin-block-start" | "scroll-margin-bottom" | "scroll-margin-inline" | "scroll-margin-inline-end" | "scroll-margin-inline-start" | "scroll-margin-left" | "scroll-margin-right" | "scroll-margin-top" | "scroll-padding" | "scroll-padding-block" | "scroll-padding-block-end" | "scroll-padding-block-start" | "scroll-padding-bottom" | "scroll-padding-inline" | "scroll-padding-inline-end" | "scroll-padding-inline-start" | "scroll-padding-left" | "scroll-padding-right" | "scroll-padding-top" | "scroll-snap-align" | "scroll-snap-stop" | "scroll-snap-type" | "scrollbar-color" | "scrollbar-gutter" | "scrollbar-width" | "shape-image-threshold" | "shape-margin" | "shape-outside" | "speak" | "speak-as" | "clip-rule" | "color-interpolation" | "cx" | "cy" | "d" | "fill" | "fill-rule" | "marker" | "marker-end" | "marker-mid" | "marker-start" | "r" | "rx" | "ry" | "shape-rendering" | "stop-color" | "stop-opacity" | "stroke" | "stroke-color" | "stroke-dasharray" | "stroke-dashoffset" | "stroke-linecap" | "stroke-linejoin" | "stroke-miterlimit" | "stroke-width" | "text-anchor" | "text-rendering" | "vector-effect" | "x" | "y" | "color-interpolation-filters" | "flood-color" | "flood-opacity" | "lighting-color" | "tab-size" | "border-collapse" | "border-spacing" | "caption-side" | "empty-cells" | "table-layout" | "text-align" | "text-align-last" | "text-autospace" | "text-box" | "text-box-edge" | "text-box-trim" | "text-combine-upright" | "text-decoration" | "text-decoration-color" | "text-decoration-line" | "text-decoration-skip" | "text-decoration-skip-ink" | "text-decoration-style" | "text-decoration-thickness" | "text-emphasis" | "text-emphasis-color" | "text-emphasis-position" | "text-emphasis-style" | "text-indent" | "text-justify" | "text-orientation" | "text-overflow" | "text-shadow" | "text-size-adjust" | "text-spacing-trim" | "-webkit-text-fill-color" | "-webkit-text-stroke" | "-webkit-text-stroke-color" | "-webkit-text-stroke-width" | "text-transform" | "text-underline-offset" | "text-underline-position" | "text-wrap" | "text-wrap-mode" | "text-wrap-style" | "touch-action" | "transform-box" | "transform" | "transform-origin" | "backface-visibility" | "perspective" | "perspective-origin" | "transform-style" | "transition-behavior" | "transition" | "transition-delay" | "transition-duration" | "transition-property" | "transition-timing-function" | "user-select" | "vertical-align" | "view-transition-class" | "view-transition-name" | "visibility" | "white-space" | "white-space-collapse" | "orphans" | "widows" | "height" | "width" | "will-change" | "word-break" | "word-spacing" | "writing-mode" | "z-index" | "zoom")[];
8058
+ allowPropertyValues?: {
8059
+ position?: ("absolute" | "fixed" | "relative" | "static" | "sticky")[];
8060
+ "accent-color"?: ("auto")[];
8061
+ "alignment-baseline"?: ("alphabetic" | "baseline" | "central" | "ideographic" | "mathematical" | "middle" | "text-after-edge" | "text-before-edge")[];
8062
+ "align-items"?: ("anchor-center")[];
8063
+ "align-self"?: ("anchor-center" | "auto" | "normal" | "stretch")[];
8064
+ "anchor-name"?: ("none")[];
8065
+ "anchor-scope"?: ("all" | "none")[];
8066
+ "block-size"?: ("anchor-size" | "fit-content" | "max-content" | "min-content")[];
8067
+ bottom?: ("anchor" | "anchor-size" | "auto")[];
8068
+ height?: ("anchor-size" | "fit-content" | "max-content" | "min-content" | "stretch" | "auto")[];
8069
+ "inline-size"?: ("anchor-size" | "fit-content" | "max-content" | "min-content")[];
8070
+ "inset-block-end"?: ("anchor" | "anchor-size" | "auto")[];
8071
+ "inset-block-start"?: ("anchor" | "anchor-size" | "auto")[];
8072
+ "inset-block"?: ("anchor" | "anchor-size" | "auto")[];
8073
+ "inset-inline-end"?: ("anchor" | "anchor-size" | "auto")[];
8074
+ "inset-inline-start"?: ("anchor" | "anchor-size" | "auto")[];
8075
+ "inset-inline"?: ("anchor" | "anchor-size" | "auto")[];
8076
+ inset?: ("anchor" | "anchor-size" | "auto")[];
8077
+ "justify-items"?: ("anchor-center" | "left" | "legacy" | "right")[];
8078
+ "justify-self"?: ("anchor-center" | "auto" | "left" | "normal" | "right" | "stretch")[];
8079
+ left?: ("anchor" | "anchor-size" | "auto")[];
8080
+ "margin-block-end"?: ("anchor-size")[];
8081
+ "margin-block-start"?: ("anchor-size")[];
8082
+ "margin-block"?: ("anchor-size")[];
8083
+ "margin-bottom"?: ("anchor-size" | "auto")[];
8084
+ "margin-inline-end"?: ("anchor-size")[];
8085
+ "margin-inline-start"?: ("anchor-size")[];
8086
+ "margin-inline"?: ("anchor-size")[];
8087
+ "margin-left"?: ("anchor-size" | "auto")[];
8088
+ "margin-right"?: ("anchor-size" | "auto")[];
8089
+ "margin-top"?: ("anchor-size" | "auto")[];
8090
+ margin?: ("anchor-size" | "auto")[];
8091
+ "max-block-size"?: ("anchor-size" | "fit-content" | "max-content" | "min-content")[];
8092
+ "max-height"?: ("anchor-size" | "fit-content" | "max-content" | "min-content" | "none" | "stretch")[];
8093
+ "max-inline-size"?: ("anchor-size" | "fit-content" | "max-content" | "min-content")[];
8094
+ "max-width"?: ("anchor-size" | "fit-content" | "max-content" | "min-content" | "none" | "stretch")[];
8095
+ "min-block-size"?: ("anchor-size" | "fit-content" | "max-content" | "min-content")[];
8096
+ "min-height"?: ("anchor-size" | "fit-content" | "max-content" | "min-content" | "auto" | "stretch")[];
8097
+ "min-inline-size"?: ("anchor-size" | "fit-content" | "max-content" | "min-content")[];
8098
+ "min-width"?: ("anchor-size" | "fit-content" | "max-content" | "min-content" | "auto" | "stretch")[];
8099
+ "place-items"?: ("anchor-center")[];
8100
+ "place-self"?: ("anchor-center")[];
8101
+ "position-anchor"?: ("auto")[];
8102
+ "position-area"?: ("block-end" | "block-start" | "bottom" | "center" | "end" | "inline-end" | "inline-start" | "left" | "none" | "right" | "self-block-end" | "self-block-start" | "self-end" | "self-inline-end" | "self-inline-start" | "self-start" | "span-all" | "span-block-end" | "span-block-start" | "span-bottom" | "span-end" | "span-inline-end" | "span-inline-start" | "span-self-block-end" | "span-self-block-start" | "span-self-end" | "span-self-inline-end" | "span-self-inline-start" | "span-self-start" | "span-start" | "span-top" | "span-x-end" | "span-x-self-end" | "span-x-self-start" | "span-x-start" | "span-y-end" | "span-y-self-end" | "span-y-self-start" | "span-y-start" | "start" | "top" | "x-end" | "x-self-end" | "x-self-start" | "x-start" | "y-end" | "y-self-end" | "y-self-start" | "y-start")[];
8103
+ "position-try-fallbacks"?: ("flip-block" | "flip-inline" | "flip-start" | "none" | "position-area")[];
8104
+ "position-try-order"?: ("most-block-size" | "most-height" | "most-inline-size" | "most-width" | "normal")[];
8105
+ "position-visibility"?: ("always" | "anchors-visible" | "no-overflow")[];
8106
+ right?: ("anchor" | "anchor-size" | "auto")[];
8107
+ top?: ("anchor" | "anchor-size" | "auto")[];
8108
+ width?: ("anchor-size" | "fit-content" | "max-content" | "min-content" | "stretch" | "auto")[];
8109
+ "animation-direction"?: ("alternate" | "alternate-reverse" | "normal" | "reverse")[];
8110
+ "animation-duration"?: ("auto")[];
8111
+ "animation-fill-mode"?: ("backwards" | "both" | "forwards" | "none")[];
8112
+ "animation-iteration-count"?: ("infinite")[];
8113
+ "animation-name"?: ("none")[];
8114
+ "animation-play-state"?: ("paused" | "running")[];
8115
+ "animation-timing-function"?: ("jump")[];
8116
+ appearance?: ("auto" | "button" | "checkbox" | "listbox" | "menulist" | "menulist-button" | "meter" | "none" | "progress-bar" | "radio" | "searchfield" | "textarea" | "textfield" | "base-select")[];
8117
+ "aspect-ratio"?: ("auto")[];
8118
+ "background-attachment"?: ("fixed" | "local" | "scroll")[];
8119
+ "background-clip"?: ("border-box" | "content-box" | "padding-box" | "border-area" | "text")[];
8120
+ background?: ("background-clip" | "background-origin" | "background-size")[];
8121
+ "background-image"?: ("none" | "element" | "gradients" | "image-set")[];
8122
+ "background-origin"?: ("border-box" | "content-box" | "padding-box")[];
8123
+ "background-position"?: ("bottom" | "center" | "left" | "right" | "top")[];
8124
+ "background-repeat"?: ("2-value" | "no-repeat" | "repeat" | "repeat-x" | "repeat-y" | "round" | "space")[];
8125
+ "background-size"?: ("auto" | "contain" | "cover")[];
8126
+ "baseline-shift"?: ("baseline" | "sub" | "super")[];
8127
+ "baseline-source"?: ("auto" | "first" | "last")[];
8128
+ "border-image-repeat"?: ("repeat" | "round" | "space" | "stretch")[];
8129
+ "border-image-width"?: ("auto")[];
8130
+ "border-image"?: ("fill" | "gradient")[];
8131
+ "border-bottom-left-radius"?: ("percentages")[];
8132
+ "border-bottom-right-radius"?: ("percentages")[];
8133
+ "border-radius"?: ("percentages")[];
8134
+ "border-top-left-radius"?: ("percentages")[];
8135
+ "border-top-right-radius"?: ("percentages")[];
8136
+ "border-style"?: ("dashed" | "dotted" | "double" | "groove" | "hidden" | "inset" | "none" | "outset" | "ridge" | "solid")[];
8137
+ "box-decoration-break"?: ("clone" | "slice")[];
8138
+ "box-shadow"?: ("inset")[];
8139
+ "box-sizing"?: ("border-box" | "content-box")[];
8140
+ "caret-shape"?: ("auto" | "bar" | "block" | "underscore")[];
8141
+ clip?: ("auto")[];
8142
+ "clip-path"?: ("path" | "fill-box" | "stroke-box" | "view-box")[];
8143
+ "color-scheme"?: ("dark" | "light" | "normal" | "only")[];
8144
+ "break-after"?: ("avoid-column" | "column" | "always" | "auto" | "avoid" | "avoid-page" | "left" | "page" | "recto" | "right" | "verso")[];
8145
+ "break-before"?: ("avoid-column" | "column" | "always" | "auto" | "avoid" | "avoid-page" | "left" | "page" | "recto" | "right" | "verso")[];
8146
+ "break-inside"?: ("avoid-column" | "auto" | "avoid" | "avoid-page")[];
8147
+ "column-fill"?: ("auto" | "balance")[];
8148
+ "column-span"?: ("all" | "none")[];
8149
+ contain?: ("content" | "none" | "strict" | "inline-size" | "layout" | "paint" | "size" | "style")[];
8150
+ "contain-intrinsic-block-size"?: ("none")[];
8151
+ "contain-intrinsic-height"?: ("none")[];
8152
+ "contain-intrinsic-inline-size"?: ("none")[];
8153
+ "contain-intrinsic-size"?: ("none")[];
8154
+ "contain-intrinsic-width"?: ("none")[];
8155
+ "container-name"?: ("none")[];
8156
+ "container-type"?: ("inline-size" | "normal" | "size" | "scroll-state")[];
8157
+ content?: ("gradient" | "none" | "normal" | "url" | "image-set")[];
8158
+ "content-visibility"?: ("auto" | "hidden" | "visible")[];
8159
+ "counter-reset"?: ("reversed" | "list-item" | "none")[];
8160
+ "counter-set"?: ("list-item" | "none")[];
8161
+ "counter-increment"?: ("list-item" | "none")[];
8162
+ "image-rendering"?: ("crisp-edges" | "auto" | "pixelated" | "smooth")[];
8163
+ "text-overflow"?: ("string" | "clip" | "ellipsis")[];
8164
+ display?: ("block" | "inline" | "inline-block" | "none" | "contents" | "flow-root" | "list-item" | "ruby" | "ruby-base" | "ruby-base-container" | "ruby-text" | "ruby-text-container" | "inline-table" | "table" | "table-caption" | "table-cell" | "table-column" | "table-column-group" | "table-footer-group" | "table-header-group" | "table-row" | "table-row-group" | "flex" | "inline-flex" | "grid" | "inline-grid" | "math")[];
8165
+ "ruby-position"?: ("alternate" | "inter-character" | "over" | "under")[];
8166
+ "dominant-baseline"?: ("alphabetic" | "auto" | "central" | "hanging" | "ideographic" | "mathematical" | "middle")[];
8167
+ "field-sizing"?: ("content" | "fixed")[];
8168
+ filter?: ("blur" | "brightness" | "contrast" | "drop-shadow" | "grayscale" | "hue-rotate" | "invert" | "opacity" | "saturate" | "sepia")[];
8169
+ "align-content"?: ("normal")[];
8170
+ "flex-basis"?: ("auto" | "content" | "fit-content" | "max-content" | "min-content")[];
8171
+ "flex-direction"?: ("column" | "column-reverse" | "row" | "row-reverse")[];
8172
+ "flex-wrap"?: ("nowrap" | "wrap" | "wrap-reverse")[];
8173
+ flex?: ("none")[];
8174
+ "justify-content"?: ("left" | "normal" | "right")[];
8175
+ clear?: ("both" | "left" | "right" | "inline-end" | "inline-start")[];
8176
+ float?: ("left" | "none" | "right" | "inline-end" | "inline-start")[];
8177
+ "font-family"?: ("math" | "system-ui" | "ui-monospace" | "ui-rounded" | "ui-sans-serif" | "ui-serif")[];
8178
+ "font-feature-settings"?: ("normal")[];
8179
+ "font-kerning"?: ("auto" | "none" | "normal")[];
8180
+ "font-optical-sizing"?: ("auto" | "none")[];
8181
+ "font-palette"?: ("dark" | "light" | "normal")[];
8182
+ font?: ("caption" | "icon" | "menu" | "message-box" | "small-caption" | "status-bar")[];
8183
+ "font-size"?: ("xxx-large" | "math")[];
8184
+ "font-size-adjust"?: ("from-font" | "none" | "two-values")[];
8185
+ "font-stretch"?: ("percentage")[];
8186
+ "font-style"?: ("italic" | "normal" | "oblique-angle")[];
8187
+ "font-synthesis"?: ("position" | "small-caps" | "style" | "weight")[];
8188
+ "font-synthesis-position"?: ("auto" | "none")[];
8189
+ "font-synthesis-small-caps"?: ("auto" | "none")[];
8190
+ "font-synthesis-style"?: ("auto" | "none")[];
8191
+ "font-synthesis-weight"?: ("auto" | "none")[];
8192
+ "font-variant"?: ("historical-forms" | "none" | "normal" | "sub" | "super")[];
8193
+ "font-variant-alternates"?: ("annotation" | "historical-forms" | "normal" | "ornaments" | "styleset" | "stylistic" | "swash")[];
8194
+ "font-variant-caps"?: ("all-petite-caps" | "all-small-caps" | "normal" | "petite-caps" | "small-caps" | "titling-caps" | "unicase")[];
8195
+ "font-variant-east-asian"?: ("full-width" | "jis04" | "jis78" | "jis83" | "jis90" | "normal" | "proportional-width" | "ruby" | "simplified" | "traditional")[];
8196
+ "font-variant-emoji"?: ("emoji" | "normal" | "text" | "unicode")[];
8197
+ "font-variant-ligatures"?: ("common-ligatures" | "contextual" | "discretionary-ligatures" | "historical-ligatures" | "no-common-ligatures" | "no-contextual" | "no-discretionary-ligatures" | "no-historical-ligatures" | "none" | "normal")[];
8198
+ "font-variant-numeric"?: ("diagonal-fractions" | "lining-nums" | "normal" | "oldstyle-nums" | "ordinal" | "proportional-nums" | "slashed-zero" | "stacked-fractions" | "tabular-nums")[];
8199
+ "font-variant-position"?: ("normal" | "sub" | "super")[];
8200
+ "font-weight"?: ("bold" | "bolder" | "lighter" | "normal" | "number")[];
8201
+ "font-width"?: ("condensed" | "expanded" | "extra-condensed" | "extra-expanded" | "normal" | "semi-condensed" | "semi-expanded" | "ultra-condensed" | "ultra-expanded")[];
8202
+ "forced-color-adjust"?: ("auto" | "none" | "preserve-parent-color")[];
8203
+ gap?: ("normal")[];
8204
+ "grid-auto-flow"?: ("column" | "dense" | "row")[];
8205
+ "grid-template-areas"?: ("none")[];
8206
+ "grid-template-columns"?: ("auto" | "fit-content" | "max-content" | "min-content" | "minmax" | "none" | "repeat" | "animation" | "masonry" | "subgrid")[];
8207
+ "grid-template-rows"?: ("auto" | "fit-content" | "max-content" | "min-content" | "minmax" | "none" | "repeat" | "animation" | "masonry" | "subgrid")[];
8208
+ "grid-template"?: ("none")[];
8209
+ "row-gap"?: ("normal")[];
8210
+ "hanging-punctuation"?: ("allow-end" | "first" | "last" | "none")[];
8211
+ "hyphenate-character"?: ("auto")[];
8212
+ "hyphenate-limit-chars"?: ("auto")[];
8213
+ hyphens?: ("auto")[];
8214
+ "image-orientation"?: ("from-image" | "none")[];
8215
+ rotate?: ("none")[];
8216
+ scale?: ("none")[];
8217
+ translate?: ("none")[];
8218
+ "initial-letter"?: ("normal")[];
8219
+ interactivity?: ("auto" | "inert")[];
8220
+ "interpolate-size"?: ("allow-keywords" | "numeric-only")[];
8221
+ direction?: ("ltr" | "rtl")[];
8222
+ "unicode-bidi"?: ("bidi-override" | "embed" | "isolate" | "isolate-override" | "normal" | "plaintext")[];
8223
+ "letter-spacing"?: ("normal")[];
8224
+ "line-break"?: ("anywhere" | "auto" | "loose" | "normal" | "strict")[];
8225
+ "line-clamp"?: ("none")[];
8226
+ "line-height"?: ("normal")[];
8227
+ "list-style-image"?: ("none")[];
8228
+ "list-style-position"?: ("inside" | "outside")[];
8229
+ "list-style-type"?: ("arabic-indic" | "armenian" | "bengali" | "cambodian" | "circle" | "cjk-decimal" | "cjk-earthly-branch" | "cjk-heavenly-stem" | "cjk-ideographic" | "decimal" | "decimal-leading-zero" | "devanagari" | "disc" | "disclosure-closed" | "disclosure-open" | "ethiopic-numeric" | "georgian" | "gujarati" | "gurmukhi" | "hebrew" | "hiragana" | "hiragana-iroha" | "japanese-formal" | "japanese-informal" | "kannada" | "katakana" | "katakana-iroha" | "khmer" | "korean-hangul-formal" | "korean-hanja-formal" | "korean-hanja-informal" | "lao" | "lower-alpha" | "lower-armenian" | "lower-greek" | "lower-latin" | "lower-roman" | "malayalam" | "mongolian" | "myanmar" | "none" | "oriya" | "persian" | "simp-chinese-formal" | "simp-chinese-informal" | "square" | "string" | "symbols" | "tamil" | "telugu" | "thai" | "tibetan" | "trad-chinese-formal" | "trad-chinese-informal" | "upper-alpha" | "upper-armenian" | "upper-latin" | "upper-roman")[];
8230
+ "list-style"?: ("symbols")[];
8231
+ "overflow-block"?: ("overlay")[];
8232
+ "overflow-inline"?: ("overlay")[];
8233
+ "margin-trim"?: ("block" | "block-end" | "block-start" | "inline" | "inline-end" | "inline-start" | "none")[];
8234
+ "mask-type"?: ("alpha" | "luminance")[];
8235
+ "mask-clip"?: ("border" | "content" | "padding" | "text")[];
8236
+ "mask-composite"?: ("add" | "exclude" | "intersect" | "subtract")[];
8237
+ "mask-mode"?: ("alpha" | "luminance" | "match-source")[];
8238
+ "mask-origin"?: ("border" | "content" | "fill-box" | "padding" | "stroke-box" | "view-box")[];
8239
+ "text-transform"?: ("math-auto" | "capitalize" | "full-size-kana" | "full-width" | "lowercase" | "none" | "uppercase")[];
8240
+ "mix-blend-mode"?: ("plus-darker" | "plus-lighter")[];
8241
+ "offset-anchor"?: ("auto" | "bottom" | "center" | "left" | "right" | "top")[];
8242
+ "offset-path"?: ("border-box" | "content-box" | "fill-box" | "margin-box" | "none" | "padding-box" | "path" | "ray" | "stroke-box" | "url" | "view-box")[];
8243
+ "offset-position"?: ("auto" | "bottom" | "center" | "left" | "normal" | "right" | "top")[];
8244
+ "offset-rotate"?: ("auto" | "reverse")[];
8245
+ "column-count"?: ("auto")[];
8246
+ "column-gap"?: ("normal")[];
8247
+ "column-width"?: ("auto")[];
8248
+ "object-fit"?: ("contain" | "cover" | "fill" | "none" | "scale-down")[];
8249
+ "object-view-box"?: ("none")[];
8250
+ opacity?: ("percentages")[];
8251
+ "outline-style"?: ("auto" | "dashed" | "dotted" | "double" | "groove" | "inset" | "none" | "outset" | "ridge" | "solid")[];
8252
+ "overflow-anchor"?: ("auto" | "none")[];
8253
+ "overflow-x"?: ("clip" | "auto" | "hidden" | "scroll" | "visible")[];
8254
+ "overflow-y"?: ("clip" | "auto" | "hidden" | "scroll" | "visible")[];
8255
+ overflow?: ("clip" | "auto" | "hidden" | "scroll" | "visible")[];
8256
+ "overflow-clip-margin"?: ("border-box" | "content-box" | "padding-box")[];
8257
+ "overflow-wrap"?: ("anywhere" | "break-word" | "normal")[];
8258
+ overlay?: ("auto" | "none")[];
8259
+ "overscroll-behavior-block"?: ("auto" | "contain" | "none")[];
8260
+ "overscroll-behavior-inline"?: ("auto" | "contain" | "none")[];
8261
+ "overscroll-behavior-x"?: ("auto" | "contain" | "none")[];
8262
+ "overscroll-behavior-y"?: ("auto" | "contain" | "none")[];
8263
+ "overscroll-behavior"?: ("auto" | "contain" | "none")[];
8264
+ "page-break-after"?: ("always" | "auto" | "avoid" | "left" | "right")[];
8265
+ "page-break-before"?: ("always" | "auto" | "avoid" | "left" | "right")[];
8266
+ "page-break-inside"?: ("auto" | "avoid")[];
8267
+ "print-color-adjust"?: ("economy" | "exact")[];
8268
+ quotes?: ("auto" | "none")[];
8269
+ "reading-flow"?: ("flex-flow" | "flex-visual" | "grid-columns" | "grid-order" | "grid-rows" | "normal" | "source-order")[];
8270
+ resize?: ("block" | "inline")[];
8271
+ "ruby-align"?: ("center" | "space-around" | "space-between" | "start")[];
8272
+ "ruby-overhang"?: ("auto" | "none")[];
8273
+ "scroll-behavior"?: ("auto" | "smooth")[];
8274
+ "animation-range-end"?: ("normal")[];
8275
+ "animation-range-start"?: ("normal")[];
8276
+ "animation-timeline"?: ("scroll" | "view")[];
8277
+ "scroll-timeline-axis"?: ("block" | "inline" | "x" | "y")[];
8278
+ "timeline-scope"?: ("all" | "none")[];
8279
+ "view-timeline-axis"?: ("block" | "inline" | "x" | "y")[];
8280
+ "view-timeline-inset"?: ("auto")[];
8281
+ "scroll-initial-target"?: ("nearest" | "none")[];
8282
+ "scroll-marker-group"?: ("after" | "before" | "none")[];
8283
+ "scroll-padding-block-end"?: ("auto")[];
8284
+ "scroll-padding-block-start"?: ("auto")[];
8285
+ "scroll-padding-block"?: ("auto")[];
8286
+ "scroll-padding-inline-end"?: ("auto")[];
8287
+ "scroll-padding-inline-start"?: ("auto")[];
8288
+ "scroll-padding-inline"?: ("auto")[];
8289
+ "scroll-padding"?: ("auto")[];
8290
+ "scroll-snap-align"?: ("center" | "end" | "none" | "start")[];
8291
+ "scroll-snap-stop"?: ("always" | "normal")[];
8292
+ "scroll-snap-type"?: ("block" | "both" | "inline" | "none" | "x" | "y")[];
8293
+ "scrollbar-color"?: ("auto")[];
8294
+ "scrollbar-gutter"?: ("auto" | "stable")[];
8295
+ "scrollbar-width"?: ("auto" | "none" | "thin")[];
8296
+ "shape-image-threshold"?: ("percentages")[];
8297
+ "shape-outside"?: ("circle" | "gradient" | "image" | "inset" | "none" | "path" | "polygon")[];
8298
+ "speak-as"?: ("digits" | "literal-punctuation" | "no-punctuation" | "normal" | "spell-out")[];
8299
+ "clip-rule"?: ("evenodd" | "nonzero")[];
8300
+ "color-interpolation"?: ("linearGradient" | "sRGB")[];
8301
+ "fill-rule"?: ("evenodd" | "nonzero")[];
8302
+ "stroke-dasharray"?: ("none")[];
8303
+ "stroke-linecap"?: ("butt" | "round" | "square")[];
8304
+ "stroke-linejoin"?: ("bevel" | "miter" | "round")[];
8305
+ "text-rendering"?: ("auto" | "geometricPrecision")[];
8306
+ "color-interpolation-filters"?: ("auto" | "linearRGB" | "sRGB")[];
8307
+ "tab-size"?: ("length")[];
8308
+ "border-collapse"?: ("collapse" | "separate")[];
8309
+ "caption-side"?: ("bottom" | "bottom-outside" | "top" | "top-outside")[];
8310
+ "empty-cells"?: ("hide" | "show")[];
8311
+ "table-layout"?: ("auto" | "fixed")[];
8312
+ "text-align"?: ("center" | "end" | "justify" | "left" | "match-parent" | "right" | "start")[];
8313
+ "text-align-last"?: ("auto")[];
8314
+ "text-autospace"?: ("auto" | "ideograph-alpha" | "ideograph-numeric" | "insert" | "no-autospace" | "normal" | "punctuation" | "replace")[];
8315
+ "text-box-edge"?: ("auto")[];
8316
+ "text-box-trim"?: ("none" | "trim-both" | "trim-end" | "trim-start")[];
8317
+ "text-box"?: ("normal")[];
8318
+ "text-combine-upright"?: ("all" | "none")[];
8319
+ "text-decoration-line"?: ("grammar-error" | "line-through" | "none" | "overline" | "spelling-error" | "underline" | "blink")[];
8320
+ "text-decoration-skip-ink"?: ("all" | "auto" | "none")[];
8321
+ "text-decoration-skip"?: ("auto" | "none")[];
8322
+ "text-decoration-style"?: ("wavy")[];
8323
+ "text-decoration-thickness"?: ("auto" | "from-font" | "percentage")[];
8324
+ "text-emphasis-position"?: ("auto" | "left" | "over" | "right" | "under")[];
8325
+ "text-emphasis-style"?: ("circle" | "dot" | "double-circle" | "filled" | "none" | "sesame" | "triangle")[];
8326
+ "text-indent"?: ("each-line" | "hanging")[];
8327
+ "text-justify"?: ("auto" | "inter-character" | "inter-word" | "none")[];
8328
+ "text-orientation"?: ("mixed" | "sideways" | "upright")[];
8329
+ "text-size-adjust"?: ("auto" | "none" | "percentages")[];
8330
+ "text-spacing-trim"?: ("normal" | "space-all" | "space-first" | "trim-start")[];
8331
+ "text-underline-offset"?: ("auto" | "percentage")[];
8332
+ "text-underline-position"?: ("auto" | "from-font" | "left" | "right" | "under")[];
8333
+ "text-wrap"?: ("wrap" | "balance" | "nowrap" | "pretty" | "stable")[];
8334
+ "text-wrap-mode"?: ("nowrap" | "wrap")[];
8335
+ "text-wrap-style"?: ("auto" | "balance" | "pretty" | "stable")[];
8336
+ "touch-action"?: ("manipulation" | "none" | "pan-down" | "pan-left" | "pan-right" | "pan-up" | "pan-x" | "pan-y" | "pinch-zoom")[];
8337
+ "transform-box"?: ("border-box" | "content-box" | "fill-box" | "stroke-box" | "view-box")[];
8338
+ "transform-origin"?: ("bottom" | "center" | "left" | "right" | "top")[];
8339
+ "perspective-origin"?: ("bottom" | "center" | "left" | "right" | "top")[];
8340
+ perspective?: ("none")[];
8341
+ transform?: ("3d")[];
8342
+ transition?: ("transition-behavior")[];
8343
+ "transition-property"?: ("all" | "none")[];
8344
+ "transition-timing-function"?: ("jump")[];
8345
+ "user-select"?: ("all" | "auto" | "none" | "text")[];
8346
+ "vertical-align"?: ("baseline" | "bottom" | "middle" | "sub" | "super" | "text-bottom" | "text-top" | "top")[];
8347
+ "view-transition-class"?: ("none")[];
8348
+ "view-transition-name"?: ("match-element" | "none")[];
8349
+ visibility?: ("collapse" | "hidden" | "visible")[];
8350
+ "white-space"?: ("break-spaces" | "normal" | "nowrap" | "pre" | "pre-line" | "pre-wrap")[];
8351
+ "white-space-collapse"?: ("break-spaces" | "collapse" | "preserve" | "preserve-breaks" | "preserve-spaces")[];
8352
+ "will-change"?: ("auto" | "contents" | "scroll-position")[];
8353
+ "word-break"?: ("break-all" | "keep-all" | "normal" | "auto-phrase" | "break-word")[];
8354
+ "word-spacing"?: ("normal")[];
8355
+ "writing-mode"?: ("horizontal-tb" | "sideways-lr" | "sideways-rl" | "vertical-lr" | "vertical-rl" | "lr" | "lr-tb" | "rl" | "rl-tb" | "tb" | "tb-rl")[];
8356
+ "z-index"?: ("auto")[];
8357
+ };
8358
+ allowSelectors?: ("active-view-transition" | "active-view-transition-type" | "autofill" | "defined" | "backdrop" | "after" | "before" | "column" | "checkmark" | "picker" | "picker-icon" | "default" | "details-content" | "dir" | "empty" | "file-selector-button" | "first-letter" | "first-line" | "focus-visible" | "focus-within" | "in-range" | "invalid" | "optional" | "out-of-range" | "required" | "valid" | "fullscreen" | "has" | "has-slotted" | "heading" | "headingfunction" | "highlight" | "host" | "hostfunction" | "host-context" | "indeterminate" | "checked" | "disabled" | "enabled" | "is" | "lang" | "any-link" | "link" | "visited" | "marker" | "buffering" | "muted" | "paused" | "playing" | "seeking" | "stalled" | "volume-locked" | "modal" | "namespace" | "nesting" | "not" | "first-child" | "last-child" | "nth-child" | "nth-last-child" | "only-child" | "first-of-type" | "last-of-type" | "nth-last-of-type" | "nth-of-type" | "only-of-type" | "open" | "first" | "left" | "right" | "picture-in-picture" | "placeholder" | "placeholder-shown" | "popover-open" | "read-only" | "read-write" | "root" | "scope" | "scroll-button" | "scroll-marker" | "scroll-marker-group" | "selection" | "attribute" | "child" | "class" | "descendant" | "id" | "list" | "next-sibling" | "subsequent-sibling" | "type" | "universal" | "part" | "slotted" | "grammar-error" | "spelling-error" | "state" | "target" | "target-text" | "future" | "past" | "active" | "focus" | "hover" | "user-invalid" | "user-valid" | "view-transition" | "view-transition-group" | "view-transition-image-pair" | "view-transition-new" | "view-transition-old" | "cue" | "xr-overlay" | "where")[];
8053
8359
  }];
8054
8360
  // ----- css/use-layers -----
8055
8361
  type CssUseLayers = [] | [{
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{FlatConfigComposer as e,renamePluginsInConfigs as t,renamePluginsInRules as n}from"eslint-flat-config-utils";import{getPackageInfo as r,isPackageExists as i}from"local-pkg";import{findWorkspaceDir as a}from"pkg-types";import o from"eslint-plugin-antfu";import s from"eslint-plugin-de-morgan";import c from"@eslint-community/eslint-plugin-eslint-comments";import l from"@eslint-community/eslint-plugin-eslint-comments/configs";import u from"@eslint/css";import{tailwind3 as d,tailwind4 as f}from"tailwind-csstree";import p from"eslint-plugin-depend";import{fixupPluginRules as m}from"@eslint/compat";import h from"eslint-plugin-github-action";import g from"yaml-eslint-parser";import _ from"eslint-config-flat-gitignore";import ee from"@eslint/js";import te from"@stylistic/eslint-plugin";import v from"globals";import ne from"eslint-plugin-jsdoc";import re,{configs as y}from"eslint-plugin-jsonc";import ie from"jsonc-eslint-parser";import b from"@eslint/markdown";import{mergeProcessors as ae,processorPassThrough as oe}from"eslint-merge-processors";import se from"eslint-plugin-n";import x from"eslint-plugin-regexp";import S from"eslint-plugin-sonarjs";import*as C from"empathic/find";import w from"eslint-plugin-unicorn";import ce from"eslint-plugin-yml";const T=`**/*.?([cm])[jt]s?(x)`,E=`**/*.?([cm])ts`,D=`**/*.?([cm])tsx`,O=`.github/workflows/*.y?(a)ml`,k=`**/*.md`,A=`${k}/${T}`,j=`**/node_modules,**/dist,**/package-lock.json,**/yarn.lock,**/pnpm-lock.yaml,**/bun.lockb,**/bun.lock,**/output,**/coverage,**/temp,**/.temp,**/tmp,**/.tmp,**/.history,**/.vitepress/cache,**/.nuxt,**/.next,**/.vercel,**/.changeset,**/.idea,**/.cache,**/.output,**/.vite-inspect,**/.yarn,**/CHANGELOG*.md,**/*.min.*,**/LICENSE*,**/__snapshots__,**/auto-import?(s).d.ts,**/components.d.ts`.split(`,`);function M(){return[{files:[T],name:`2digits:antfu`,plugins:{antfu:o},rules:{"antfu/if-newline":`error`,"antfu/top-level-function":`error`}}]}function N(){return[{files:[T],name:`2digits:boolean`,plugins:{boolean:s},rules:{...s.configs.recommended.rules}}]}const P={"@next/next":`next`,"@eslint-react/naming-convention":`react-naming-convention`,"@eslint-react/hooks-extra":`react-hooks-extra`,"@eslint-react/dom":`react-dom`,"@eslint-react/web-api":`react-web-api`,"@eslint-react":`react-extra`,"react-hooks":`react-hooks`,"react-compiler":`react-compiler`,"@stylistic/eslint-plugin":`stylistic`,"@typescript-eslint":`ts`,node:`node`,"@eslint-community/eslint-comments":`comments`,storybook:`storybook`,turbo:`turbo`,jsdoc:`jsdoc`,unicorn:`unicorn`,tailwindcss:`tailwindcss`,"@tanstack/query":`tanstack-query`,"@tanstack/router":`tanstack-router`,"@2digits":`@2digits`,"@graphql-eslint":`gql`,sonarjs:`sonar`,drizzle:`drizzle`,"de-morgan":`boolean`,antfu:`antfu`,css:`css`,depend:`depend`,"github-action":`github-action`,jsonc:`jsonc`,markdown:`markdown`,pnpm:`pnpm`,regexp:`regexp`,yml:`yml`,"zod-x":`zod`},F=n(l.recommended.rules,P);function I(){return[{files:[T],name:`2digits:comments`,plugins:{comments:c},rules:{...F,"comments/no-unused-disable":`error`,"comments/disable-enable-pair":[`error`,{allowWholeFile:!0}]}}]}async function L(e){if(e?.customSyntax)return e.customSyntax;if(e?.tailwindMajor===3)return d;if(e?.tailwindMajor===4)return f;try{let e=(await r(`tailwindcss`))?.version??``,t=Number.parseInt(e.split(`.`)[0]||`0`,10);if(Number.isFinite(t)&&t>=4)return f}catch{}return d}async function R(e={}){let t=await L(e);return[{name:`2digits:css`,files:[`**/*.css`],language:`css/css`,plugins:{css:u},languageOptions:{tolerant:!0,customSyntax:t},rules:{...u.configs.recommended.rules,...e.overrides}}]}function z(){return[{files:[T],name:`2digits:depend`,plugins:{depend:p},rules:{"depend/ban-dependencies":`warn`}}]}async function B(e){let t=await e;return t.default||t}async function V(e={}){let{overrides:t={},drizzleObjectName:n=[`drizzle`,`db`]}=e,r=await B(import(`eslint-plugin-drizzle`));return[{files:[T],name:`2digits:drizzle`,plugins:{drizzle:m(r)},rules:{"drizzle/enforce-update-with-where":[`error`,{drizzleObjectName:n}],"drizzle/enforce-delete-with-where":[`error`,{drizzleObjectName:n}],...t}}]}const H=Object.fromEntries(h.configs.recommended.flatMap(({rules:e})=>Object.entries({...e})));function U(){return[{name:`2digits:github-actions/setup`,plugins:{"github-action":h}},{name:`2digits:github-actions/recommended`,files:[O],ignores:[`!**/${O}`],languageOptions:{parser:g},rules:{...H}}]}async function W(e={}){let{overrides:t={},files:r=[`**/*.graphql`,`**/*.gql`]}=e,[i,a]=await Promise.all([B(import(`@graphql-eslint/eslint-plugin`)),import(`graphql-config`).then(({loadConfig:e})=>e({throwOnEmpty:!1,throwOnMissing:!1}).then(e=>e?.getDefault().schema))]),o=i.configs[`flat/operations-recommended`].rules,s={};if(a)s=o;else for(let e of Object.keys(o)){let t=e.replace(`@graphql-eslint/`,``);t in i.rules&&(i.rules[t].meta.docs?.requiresSchema||i.rules[t].meta.docs?.requiresSiblings)||(s[e]=o[e])}let c=n(s,P);return[{name:`2digits:graphql`,plugins:{gql:i},languageOptions:{parser:i.parser},files:r,rules:{...c,"gql/naming-convention":[`error`,{allowLeadingUnderscore:!0}],...t}}]}function G(e={}){let{gitIgnore:t,ignores:n=[]}=e;return[{ignores:[j,n].flat(),name:`2digits:ignores`},_({strict:!1,...t,name:`2digits:gitignore`})]}function le(e={}){let{overrides:t={}}=e;return[{files:[T],name:`2digits:javascript`,plugins:{stylistic:te},languageOptions:{ecmaVersion:2022,globals:{...v.browser,...v.es2021,...v.node,document:`readonly`,navigator:`readonly`,window:`readonly`},parserOptions:{ecmaFeatures:{jsx:!0},ecmaVersion:2022,sourceType:`module`},sourceType:`module`},linterOptions:{reportUnusedDisableDirectives:!0},rules:{...ee.configs.recommended.rules,"accessor-pairs":[`error`,{enforceForClassMembers:!0,setWithoutGet:!0}],"array-callback-return":`error`,"block-scoped-var":`error`,"constructor-super":`error`,"default-case-last":`error`,"dot-notation":[`error`,{allowKeywords:!0}],eqeqeq:[`error`,`smart`],"new-cap":[`error`,{capIsNew:!1,newIsCap:!0,properties:!0}],"no-alert":`error`,"no-array-constructor":`error`,"no-async-promise-executor":`error`,"no-caller":`error`,"no-case-declarations":`error`,"no-class-assign":`error`,"no-compare-neg-zero":`error`,"no-cond-assign":[`error`,`always`],"no-const-assign":`error`,"no-control-regex":`error`,"no-debugger":`error`,"no-delete-var":`error`,"no-dupe-args":`error`,"no-dupe-class-members":`error`,"no-dupe-keys":`error`,"no-duplicate-case":`error`,"no-empty":[`error`,{allowEmptyCatch:!0}],"no-empty-character-class":`error`,"no-empty-pattern":`error`,"no-eval":`error`,"no-ex-assign":`error`,"no-extend-native":`error`,"no-extra-bind":`error`,"no-extra-boolean-cast":`error`,"no-fallthrough":`error`,"no-func-assign":`error`,"no-global-assign":`error`,"no-implied-eval":`error`,"no-import-assign":`error`,"no-invalid-regexp":`error`,"no-irregular-whitespace":`error`,"no-iterator":`error`,"no-labels":[`error`,{allowLoop:!1,allowSwitch:!1}],"no-lone-blocks":`error`,"no-loss-of-precision":`error`,"no-misleading-character-class":`error`,"no-multi-str":`error`,"no-new":`error`,"no-new-func":`error`,"no-new-native-nonconstructor":`error`,"no-new-wrappers":`error`,"no-obj-calls":`error`,"no-octal":`error`,"no-octal-escape":`error`,"no-proto":`error`,"no-prototype-builtins":`error`,"no-redeclare":[`error`,{builtinGlobals:!1}],"no-regex-spaces":`error`,"no-restricted-globals":[`error`,{message:"Use `globalThis` instead.",name:`global`},{message:"Use `globalThis` instead.",name:`self`}],"no-restricted-properties":[`error`,{message:"Use `Object.getPrototypeOf` or `Object.setPrototypeOf` instead.",property:`__proto__`},{message:"Use `Object.defineProperty` instead.",property:`__defineGetter__`},{message:"Use `Object.defineProperty` instead.",property:`__defineSetter__`},{message:"Use `Object.getOwnPropertyDescriptor` instead.",property:`__lookupGetter__`},{message:"Use `Object.getOwnPropertyDescriptor` instead.",property:`__lookupSetter__`}],"no-restricted-syntax":[`error`,`DebuggerStatement`,`LabeledStatement`,`WithStatement`,`TSEnumDeclaration`,`TSExportAssignment`],"no-self-assign":[`error`,{props:!0}],"no-self-compare":`error`,"no-sequences":`error`,"no-shadow-restricted-names":`error`,"no-sparse-arrays":`error`,"no-template-curly-in-string":`error`,"no-this-before-super":`error`,"no-throw-literal":`error`,"no-undef":`error`,"no-undef-init":`error`,"no-unexpected-multiline":`error`,"no-unmodified-loop-condition":`error`,"no-unneeded-ternary":[`error`,{defaultAssignment:!1}],"no-unreachable":`error`,"no-unreachable-loop":`error`,"no-unsafe-finally":`error`,"no-unsafe-negation":`error`,"no-unused-expressions":[`error`,{allowShortCircuit:!0,allowTaggedTemplates:!0,allowTernary:!0}],"no-unused-vars":[`error`,{args:`none`,caughtErrors:`none`,ignoreRestSiblings:!0,vars:`all`}],"no-useless-backreference":`error`,"no-useless-call":`error`,"no-useless-catch":`error`,"no-useless-computed-key":`error`,"no-useless-constructor":`error`,"no-useless-rename":`error`,"no-var":`error`,"no-with":`error`,"object-shorthand":[`error`,`always`,{avoidQuotes:!0,ignoreConstructors:!1}],"one-var":[`error`,{initialized:`never`}],"prefer-arrow-callback":[`error`,{allowNamedFunctions:!0,allowUnboundThis:!0}],"prefer-const":[`error`,{destructuring:`all`,ignoreReadBeforeAssign:!0}],"prefer-exponentiation-operator":`error`,"prefer-promise-reject-errors":`error`,"prefer-regex-literals":[`error`,{disallowRedundantWrapping:!0}],"prefer-rest-params":`error`,"prefer-spread":`error`,"prefer-template":`error`,"symbol-description":`error`,"unicode-bom":[`error`,`never`],"use-isnan":[`error`,{enforceForIndexOf:!0,enforceForSwitchCase:!0}],"valid-typeof":[`error`,{requireStringLiterals:!0}],"vars-on-top":`error`,yoda:[`error`,`never`],"stylistic/padding-line-between-statements":[`error`,{blankLine:`always`,prev:[`const`,`let`],next:`*`},{blankLine:`any`,prev:[`const`,`let`],next:[`const`,`let`]},{blankLine:`always`,prev:`*`,next:`return`}],...t}}]}function ue(){return[{files:[T],name:`2digits:jsdoc`,plugins:{jsdoc:ne},rules:{"jsdoc/check-access":`error`,"jsdoc/check-param-names":`error`,"jsdoc/check-property-names":`error`,"jsdoc/check-types":`error`,"jsdoc/empty-tags":`error`,"jsdoc/implements-on-classes":`error`,"jsdoc/no-defaults":`error`,"jsdoc/no-multi-asterisks":`error`,"jsdoc/require-param-name":`error`,"jsdoc/require-property":`error`,"jsdoc/require-property-description":`error`,"jsdoc/require-property-name":`error`,"jsdoc/require-returns-check":`error`,"jsdoc/require-returns-description":`error`,"jsdoc/require-yields-check":`error`}}]}function de(){return[...y[`flat/base`].map(e=>({...e,name:`2digits:jsonc/base`})),{name:`2digits:jsonc/json`,files:[`**/*.json`],...K,rules:{...q(y[`flat/recommended-with-json`])}},{name:`2digits:jsonc/jsonc`,files:[`**/*.jsonc`],...K,rules:{...q(y[`flat/recommended-with-jsonc`])}},{name:`2digits:jsonc/json5`,files:[`**/*.json5`],...K,rules:{...q(y[`flat/recommended-with-json5`])}},{name:`2digits:jsonc/package.json`,...K,files:[`**/package.json`],rules:{"jsonc/sort-array-values":[`error`,{order:{type:`asc`},pathPattern:`^files$`}],"jsonc/sort-keys":[`error`,{order:`$schema.publisher.name.displayName.version.private.description.funding.homepage.repository.bugs.categories.type.main.module.types.typesVersions.bin.files.exports.icon.unpkg.jsdelivr.sideEffects.activationEvents.contributes.scripts.keywords.author.license.workspaces.dependencies.devDependencies.peerDependencies.peerDependenciesMeta.optionalDependencies.packageManager.engines.pnpm.overrides.resolutions.husky.simple-git-hooks.lint-staged.eslintConfig.prettier`.split(`.`),pathPattern:`^$`},{order:{type:`asc`},pathPattern:`^(?:dev|peer|optional|bundled)?[Dd]ependencies(Meta)?$`},{order:[`types`,`import`,`module`,`require`,`default`],pathPattern:`^exports.*$`}]}},{name:`2digits:jsonc/tsconfig.json`,...K,files:[`**/tsconfig.json`,`**/tsconfig.*.json`,`**/tsconfig-*.json`,`**/jsconfig.json`,`**/jsconfig.*.json`,`**/jsconfig-*.json`],rules:{"jsonc/sort-keys":[`error`,{order:[`$schema`,`extends`,`compilerOptions`,`references`,`files`,`include`,`exclude`],pathPattern:`^$`},{order:`incremental.composite.tsBuildInfoFile.disableSourceOfProjectReferenceRedirect.disableSolutionSearching.disableReferencedProjectLoad.target.lib.jsx.experimentalDecorators.emitDecoratorMetadata.jsxFactory.jsxFragmentFactory.jsxImportSource.reactNamespace.noLib.useDefineForClassFields.moduleDetection.module.rootDir.moduleResolution.baseUrl.paths.rootDirs.typeRoots.types.allowUmdGlobalAccess.moduleSuffixes.allowImportingTsExtensions.resolvePackageJsonExports.resolvePackageJsonImports.customConditions.resolveJsonModule.allowArbitraryExtensions.noResolve.allowJs.checkJs.maxNodeModuleJsDepth.declaration.declarationMap.emitDeclarationOnly.sourceMap.inlineSourceMap.outFile.outDir.removeComments.noEmit.importHelpers.importsNotUsedAsValues.downlevelIteration.sourceRoot.mapRoot.inlineSources.emitBOM.newLine.stripInternal.noEmitHelpers.noEmitOnError.preserveConstEnums.declarationDir.preserveValueImports.isolatedModules.verbatimModuleSyntax.allowSyntheticDefaultImports.esModuleInterop.preserveSymlinks.forceConsistentCasingInFileNames.strict.strictBindCallApply.strictFunctionTypes.strictNullChecks.strictPropertyInitialization.allowUnreachableCode.allowUnusedLabels.alwaysStrict.exactOptionalPropertyTypes.noFallthroughCasesInSwitch.noImplicitAny.noImplicitOverride.noImplicitReturns.noImplicitThis.noPropertyAccessFromIndexSignature.noUncheckedIndexedAccess.noUnusedLocals.noUnusedParameters.useUnknownInCatchVariables.skipDefaultLibCheck.skipLibCheck`.split(`.`),pathPattern:`^compilerOptions$`}]}},...y[`flat/prettier`].map(e=>({...e,name:`2digits:jsonc/prettier`}))]}const K={languageOptions:{parser:ie},plugins:{jsonc:re}};function q(e){return Object.fromEntries(e.flatMap(({rules:e})=>Object.entries(e??{})))}const J=[k];function fe(){return[{name:`2digits:markdown/setup`,plugins:{markdown:b}},{name:`2digits:markdown/processor`,files:J,language:`markdown/gfm`,ignores:[`**/*.md/*.md`],processor:ae([b.processors.markdown,oe])},{name:`2digits:markdown/parser`,files:J,language:`markdown/gfm`,languageOptions:{parser:pe}},{name:`2digits:markdown/rules`,files:J,language:`markdown/gfm`,rules:{"markdown/fenced-code-language":`error`,"markdown/heading-increment":`error`,"markdown/no-empty-links":`error`,"markdown/no-invalid-label-refs":`error`,"markdown/no-missing-label-refs":`error`}},{name:`2digits:markdown/disables`,files:[A],languageOptions:{parserOptions:{ecmaFeatures:{impliedStrict:!0}}},rules:{"no-alert":`off`,"no-console":`off`,"no-labels":`off`,"no-lone-blocks":`off`,"no-restricted-syntax":`off`,"no-undef":`off`,"no-unused-expressions":`off`,"no-unused-labels":`off`,"no-unused-vars":`off`,"node/prefer-global/process":`off`,"ts/consistent-type-imports":`off`,"ts/explicit-function-return-type":`off`,"ts/no-namespace":`off`,"ts/no-redeclare":`off`,"ts/no-require-imports":`off`,"ts/no-unused-expressions":`off`,"ts/no-unused-vars":`off`,"ts/no-use-before-define":`off`,"unicode-bom":`off`}}]}const pe={meta:{name:`parser-plain`},parseForESLint:e=>({ast:{body:[],comments:[],loc:{end:e.length,start:0},range:[0,e.length],tokens:[],type:`Program`},scopeManager:null,services:{isPlain:!0},visitorKeys:{Program:[]}})};async function me(e={}){let{files:t=[E,D],overrides:r={},parserOptions:i}=e,[a,o]=await Promise.all([B(import(`@next/eslint-plugin-next`)),B(import(`@typescript-eslint/parser`))]),s=n({...a.configs.recommended.rules,...a.configs[`core-web-vitals`].rules},P);return[{name:`2digits:next/setup`,plugins:{next:m(a)}},{name:`2digits:next/rules`,files:t,languageOptions:{parser:o,parserOptions:{ecmaFeatures:{jsx:!0},projectService:!0,...i},sourceType:`module`},rules:{...s,"next/no-html-link-for-pages":`off`,...r}}]}function he(){return[{files:[T],name:`2digits:node`,settings:{node:{version:`>= 22.0.0`}},plugins:{node:se},rules:{"node/handle-callback-err":[`error`,`^(err|error)$`],"node/no-deprecated-api":`error`,"node/no-exports-assign":`error`,"node/no-new-require":`error`,"node/no-path-concat":`error`,"node/no-unsupported-features/node-builtins":[`error`,{allowExperimental:!0}],"node/prefer-global/buffer":`error`,"node/prefer-global/process":`error`,"node/prefer-global/text-encoder":`error`,"node/prefer-global/url":`error`,"node/prefer-global/console":`error`,"node/prefer-global/url-search-params":`error`,"node/prefer-global/text-decoder":`error`,"node/process-exit-as-throw":`error`}}]}async function ge(){let e=await B(import(`eslint-plugin-pnpm`));return[{name:`2digits:pnpm/package-json`,files:[`package.json`,`**/package.json`],languageOptions:{parser:await B(import(`jsonc-eslint-parser`))},plugins:{pnpm:e},rules:{"pnpm/json-enforce-catalog":`error`,"pnpm/json-prefer-workspace-settings":`error`,"pnpm/json-valid-catalog":`error`}},{name:`2digits:pnpm/pnpm-workspace-yaml`,files:[`pnpm-workspace.yaml`],languageOptions:{parser:await B(import(`yaml-eslint-parser`))},plugins:{pnpm:e},rules:{"pnpm/yaml-no-duplicate-catalog-item":`error`,"pnpm/yaml-no-unused-catalog-item":`error`,"pnpm/yaml-valid-packages":`error`}}]}async function _e(){let[e,t]=await Promise.all([B(import(`eslint-config-prettier`)),B(import(`@stylistic/eslint-plugin`))]);return[{name:`2digits:prettier`,plugins:{stylistic:t},rules:{...e.rules,"tailwindcss/classnames-order":`off`,"stylistic/jsx-newline":[`error`,{prevent:!1}]}}]}async function ve(e={}){let{files:t=[E,D],overrides:r={},parserOptions:i,tsconfigRootDir:a,reactCompiler:o=!0}=e,[s,c,l,u,d]=await Promise.all([B(import(`@eslint-react/eslint-plugin`)),B(import(`eslint-plugin-react-hooks`)),B(import(`@typescript-eslint/parser`)),o?B(import(`eslint-plugin-react-compiler`)):Promise.resolve(void 0),B(import(`@stylistic/eslint-plugin`))]),f=s.configs.all.plugins,p=n({...s.configs[`disable-conflict-eslint-plugin-react`].rules,...s.configs[`recommended-type-checked`].rules},P);return[{name:`2digits:react/setup`,plugins:{stylistic:d,"react-dom":f[`@eslint-react/dom`],"react-web-api":f[`@eslint-react/web-api`],"react-extra":f[`@eslint-react`],"react-hooks":c,"react-hooks-extra":f[`@eslint-react/hooks-extra`],"react-naming-convention":f[`@eslint-react/naming-convention`],...o?{"react-compiler":u}:{}},settings:{react:{version:`detect`}}},{name:`2digits:react/rules`,files:t,languageOptions:{parser:l,parserOptions:{ecmaFeatures:{jsx:!0},tsconfigRootDir:a,projectService:!0,...i},sourceType:`module`},rules:{...p,...o?{"react-compiler/react-compiler":`error`}:{},"react-extra/no-unnecessary-use-callback":`error`,"react-extra/prefer-use-state-lazy-initialization":`error`,"react-extra/no-unnecessary-use-prefix":`error`,"react-extra/no-unnecessary-use-memo":`error`,"react-hooks-extra/no-direct-set-state-in-use-effect":`error`,"react-extra/no-useless-fragment":`off`,"react-extra/prefer-read-only-props":`off`,"react-extra/jsx-shorthand-boolean":`error`,"react-extra/jsx-shorthand-fragment":`error`,"react-extra/prefer-namespace-import":`error`,"react-naming-convention/use-state":`error`,"stylistic/jsx-curly-newline":`off`,"stylistic/jsx-newline":[`error`,{prevent:!1}],"stylistic/jsx-self-closing-comp":`error`,"react-hooks/rules-of-hooks":`error`,"react-hooks/exhaustive-deps":`warn`,...r}}]}function ye(){return[{files:[T],name:`2digits:regexp`,plugins:{regexp:x},rules:{...x.configs[`flat/recommended`].rules}}]}function be(){return[{files:[T],name:`2digits:sonar`,plugins:{sonar:S},rules:{"sonar/code-eval":`error`,"sonar/cognitive-complexity":`error`,"sonar/comma-or-logical-or-case":`error`,"sonar/concise-regex":`error`,"sonar/confidential-information-logging":`error`,"sonar/constructor-for-side-effects":`error`,"sonar/content-length":`error`,"sonar/content-security-policy":`error`,"sonar/cookie-no-httponly":`error`,"sonar/cors":`error`,"sonar/csrf":`error`,"sonar/max-switch-cases":`error`,"sonar/no-all-duplicated-branches":`error`,"sonar/no-collapsible-if":`error`,"sonar/no-collection-size-mischeck":`error`,"sonar/no-duplicate-string":[`error`,{threshold:5}],"sonar/no-duplicated-branches":`error`,"sonar/no-element-overwrite":`error`,"sonar/no-empty-collection":`error`,"sonar/no-extra-arguments":`error`,"sonar/no-for-in-iterable":`error`,"sonar/no-gratuitous-expressions":`error`,"sonar/no-identical-conditions":`error`,"sonar/no-identical-expressions":`error`,"sonar/no-identical-functions":`error`,"sonar/no-ignored-return":`error`,"sonar/no-inverted-boolean-check":`error`,"sonar/no-nested-switch":`error`,"sonar/no-nested-template-literals":`error`,"sonar/no-redundant-boolean":`error`,"sonar/no-same-line-conditional":`error`,"sonar/no-small-switch":`error`,"sonar/no-unused-collection":`error`,"sonar/no-use-of-empty-return-value":`error`,"sonar/no-useless-catch":`error`,"sonar/non-existent-operator":`error`,"sonar/prefer-immediate-return":`error`,"sonar/prefer-object-literal":`error`,"sonar/prefer-single-boolean-return":`error`,"sonar/prefer-while":`error`,"sonar/elseif-without-else":`off`,"sonar/no-redundant-jump":`off`}}]}async function xe(e={}){let{files:t=[`**/*.stories.tsx`],overrides:n={},parserOptions:r,storybookDirectory:i=`.storybook`}=e,[a,o]=await Promise.all([B(import(`eslint-plugin-storybook`)),B(import(`@typescript-eslint/parser`))]),s={parser:o,parserOptions:{ecmaFeatures:{jsx:!0},projectService:!0,...r},sourceType:`module`};return[{name:`2digits:storybook/setup`,plugins:{storybook:m(a)}},{name:`2digits:storybook/rules`,files:t,languageOptions:s,rules:{"storybook/await-interactions":`error`,"storybook/context-in-play-function":`error`,"storybook/csf-component":`error`,"storybook/default-exports":`error`,"storybook/hierarchy-separator":`error`,"storybook/meta-inline-properties":`error`,"storybook/no-redundant-story-name":`error`,"storybook/no-stories-of":`error`,"storybook/no-title-property-in-meta":`error`,"storybook/no-uninstalled-addons":`error`,"storybook/prefer-pascal-case":`error`,"storybook/story-exports":`error`,"storybook/use-storybook-expect":`error`,"storybook/use-storybook-testing-library":`error`,"storybook/meta-satisfies-type":`error`,...n}},{name:`2digits:storybook/disables`,files:t,rules:{"react-hooks/rules-of-hooks":`off`,"react/display-name":`off`,"sonar/no-duplicate-string":`off`}},{name:`2digits:storybook/config`,files:[`${i}/main.@(js|cjs|mjs|ts)`],languageOptions:s,rules:{"storybook/no-uninstalled-addons":`error`}}]}async function Se(e={}){let{overrides:t={}}=e,[n,{tailwindFunctions:r},i]=await Promise.all([B(import(`eslint-plugin-tailwindcss`)),B(import(`@2digits/constants`)),a().catch(()=>void 0)]),o=C.file(`tailwind.config.ts`,{last:i})??C.file(`tailwind.config.js`,{last:i});return[{files:[T],name:`2digits:tailwind`,plugins:{tailwindcss:n},settings:{tailwindcss:{callees:r,config:o}},rules:{...n.configs.recommended.rules,...t}}]}async function Ce(e={}){let{overrides:t={}}=e,r=await B(import(`@tanstack/eslint-plugin-query`)),i=n(r.configs[`flat/recommended`].at(0)?.rules??{},P);return[{files:[T],name:`2digits:tanstack-query`,plugins:{"tanstack-query":r},rules:{...i,...t}}]}async function we(e={}){let{overrides:t={}}=e,r=await B(import(`@tanstack/eslint-plugin-router`)),i=n(r.configs[`flat/recommended`].at(0)?.rules??{},P);return[{files:[T],name:`2digits:tanstack-router`,plugins:{"tanstack-router":r},rules:{...i,"ts/only-throw-error":[`error`,{allow:[{from:`package`,package:`@tanstack/router-core`,name:`Redirect`}]}],...t}}]}async function Y(e={}){let{overrides:t={}}=e,n=await B(import(`eslint-plugin-turbo`));return[{files:[T],name:`2digits:turbo`,plugins:{turbo:n},rules:{"turbo/no-undeclared-env-vars":`error`,...t}}]}async function Te(e={}){let{overrides:n={},parserOptions:r={}}=e,[{plugin:i,configs:a,parser:o},s]=await Promise.all([B(import(`typescript-eslint`)),B(import(`@2digits/eslint-plugin`))]),c=t(a.strictTypeChecked,P),l=Object.fromEntries(c.flatMap(({rules:e})=>Object.entries(e??{})));return[{name:`2digits:typescript/setup`,plugins:{ts:i,"@2digits":s}},{name:`2digits:typescript/rules`,files:[T],ignores:[A],languageOptions:{parser:o,parserOptions:{tsconfigRootDir:process.cwd(),projectService:!0,warnOnUnsupportedTypeScriptVersion:!1,...r},sourceType:`module`},rules:{...l,"ts/array-type":[`error`,{default:`generic`,readonly:`generic`}],"ts/restrict-template-expressions":[`error`,{allowNumber:!0}],"ts/ban-ts-comment":[`error`,{"ts-ignore":`allow-with-description`}],"ts/consistent-type-exports":[`error`],"ts/consistent-type-imports":[`error`,{prefer:`type-imports`,disallowTypeAnnotations:!1,fixStyle:`inline-type-imports`}],"ts/no-empty-object-type":[`error`,{allowInterfaces:`with-single-extends`,allowObjectTypes:`never`}],"ts/no-explicit-any":[`error`],"ts/no-import-type-side-effects":[`error`],"ts/no-misused-promises":`off`,"ts/no-confusing-void-expression":`off`,"ts/no-unused-vars":[`error`,{ignoreRestSiblings:!0,argsIgnorePattern:`^_`,varsIgnorePattern:`^_`}],"ts/unbound-method":`off`,...s.configs.recommended.rules,...n}},{name:`2digits:typescript/disables/dts`,files:[`**/*.d.ts`],ignores:[A],rules:{"unicorn/no-abusive-eslint-disable":`off`,"no-duplicate-imports":`off`,"no-restricted-syntax":`off`,"ts/no-unused-vars":`off`}},{name:`2digits:typescript/disables/test`,files:[`**/*.{test,spec}.ts?(x)`],ignores:[A],rules:{"no-unused-expressions":`off`}},{name:`2digits:typescript/disables/cjs`,files:[`**/*.js`,`**/*.cjs`,`**/*.cts`],ignores:[A],rules:{"ts/no-require-imports":`off`,"ts/no-var-requires":`off`}}]}function Ee(){return[{files:[T],name:`2digits:unicorn`,plugins:{unicorn:w},rules:{...w.configs.recommended.rules,"unicorn/filename-case":[`off`],"unicorn/prefer-module":[`off`],"unicorn/prevent-abbreviations":[`off`],"unicorn/prefer-ternary":[`error`,`only-single-line`],"unicorn/no-useless-undefined":[`error`,{checkArguments:!1,checkArrowFunctionBody:!1}],"unicorn/prefer-top-level-await":[`off`]}}]}function De(){return[{name:`2digits:yaml/setup`,plugins:{yml:ce}},{name:`2digits:yaml/base`,...X,rules:{"no-irregular-whitespace":`off`,"no-unused-vars":`off`,"spaced-comment":`off`}},{name:`2digits:yaml/recommended`,...X,rules:{"yml/no-empty-document":`error`,"yml/no-empty-key":`error`,"yml/no-empty-mapping-value":`error`,"yml/no-empty-sequence-entry":`error`,"yml/no-irregular-whitespace":`error`,"yml/no-tab-indent":`error`,"yml/vue-custom-block/no-parsing-error":`error`}},{name:`2digits:yaml/standard`,...X,rules:{"yml/block-mapping":`error`,"yml/block-sequence":`error`,"yml/plain-scalar":`error`,"yml/spaced-comment":`error`}},{name:`2digits:yaml/prettier`,...X,rules:{"yml/block-mapping-colon-indicator-newline":`off`,"yml/block-mapping-question-indicator-newline":`off`,"yml/block-sequence-hyphen-indicator-newline":`off`,"yml/flow-mapping-curly-newline":`off`,"yml/flow-mapping-curly-spacing":`off`,"yml/flow-sequence-bracket-newline":`off`,"yml/flow-sequence-bracket-spacing":`off`,"yml/indent":`off`,"yml/key-spacing":`off`,"yml/no-multiple-empty-lines":`off`,"yml/no-trailing-zeros":`off`,"yml/quotes":`off`}}]}const X={files:[`**/*.y?(a)ml`],languageOptions:{parser:g}};async function Oe(e={}){let{overrides:t={}}=e,n=await B(import(`eslint-plugin-zod-x`));return[{files:[T],name:`2digits:zod`,plugins:{zod:n},rules:{"zod/array-style":[`error`,{style:`function`}],"zod/no-any":`error`,"zod/no-empty-custom-schema":`error`,"zod/no-throw-in-refine":`error`,"zod/prefer-meta":`error`,"zod/prefer-meta-last":`error`,"zod/prefer-namespace-import":`error`,"zod/require-schema-suffix":[`warn`,{suffix:`Schema`}],"zod/no-optional-and-default-together":[`warn`,{preferredMethod:`default`}],"zod/no-number-schema-with-int":`error`,...t}}]}function Z(e,t){return typeof e==`boolean`?e:e?.enable??t??!1}function Q(e){if(typeof e==`boolean`||e===void 0)return{};let{enable:t,...n}=e;return n}async function $(t={},...n){let r;t.pnpm===void 0&&(r=a());let o=new e(G(t.ignores),le(t.js),N(),he(),I(),ue(),Ee(),be(),ye(),M(),de(),De(),fe(),U());Z(t.css)&&(o=o.append(R(Q(t.css)))),Z(t.depend,!0)&&(o=o.append(z())),Z(t.turbo,i(`turbo`))&&(o=o.append(Y(Q(t.turbo))));let{overrides:s,...c}=Q(t.ts);return Z(t.ts,i(`typescript`))&&(o=o.append(Te(Q(t.ts)))),Z(t.react,i(`react`))&&(o=o.append(ve({...Q(t.react),...c}))),Z(t.next,i(`next`))&&(o=o.append(me({...Q(t.next),...c}))),Z(t.storybook,i(`storybook`))&&(o=o.append(xe({...Q(t.storybook),...c}))),Z(t.tailwind,i(`tailwindcss`))&&(o=o.append(Se(Q(t.tailwind)))),Z(t.tanstackQuery,i(`react-query`)||i(`@tanstack/react-query`)||i(`@tanstack/react-query-devtools`))&&(o=o.append(Ce(Q(t.tanstackQuery)))),Z(t.tanstackRouter,i(`@tanstack/react-router`))&&(o=o.append(we(Q(t.tanstackRouter)))),Z(t.drizzle,i(`drizzle-kit`)||i(`drizzle-orm`))&&(o=o.append(V(Q(t.drizzle)))),Z(t.zod,i(`zod`))&&(o=o.append(Oe(Q(t.zod)))),Z(t.graphql,i(`graphql`))&&(o=o.append(W(Q(t.graphql)))),Z(t.pnpm,!!await r)&&(o=o.append(ge())),o=o.append(...n),i(`prettier`)&&(o=o.append(_e())),o.renamePlugins(P).toConfigs()}export{$ as default,$ as twoDigits};
1
+ import{FlatConfigComposer as e,renamePluginsInConfigs as t,renamePluginsInRules as n}from"eslint-flat-config-utils";import{getPackageInfo as r,isPackageExists as i}from"local-pkg";import{findWorkspaceDir as a}from"pkg-types";import o from"eslint-plugin-antfu";import s from"eslint-plugin-de-morgan";import c from"@eslint-community/eslint-plugin-eslint-comments";import l from"@eslint-community/eslint-plugin-eslint-comments/configs";import u from"@eslint/css";import{tailwind3 as d,tailwind4 as f}from"tailwind-csstree";import p from"eslint-plugin-depend";import{fixupPluginRules as m}from"@eslint/compat";import h from"eslint-plugin-github-action";import g from"yaml-eslint-parser";import _ from"eslint-config-flat-gitignore";import ee from"@eslint/js";import te from"@stylistic/eslint-plugin";import v from"globals";import ne from"eslint-plugin-jsdoc";import re,{configs as y}from"eslint-plugin-jsonc";import ie from"jsonc-eslint-parser";import b from"@eslint/markdown";import{mergeProcessors as ae,processorPassThrough as oe}from"eslint-merge-processors";import se from"eslint-plugin-n";import x from"eslint-plugin-regexp";import S from"eslint-plugin-sonarjs";import*as C from"empathic/find";import w from"eslint-plugin-unicorn";import ce from"eslint-plugin-yml";const T=`**/*.?([cm])[jt]s?(x)`,E=`**/*.?([cm])ts`,D=`**/*.?([cm])tsx`,O=`.github/workflows/*.y?(a)ml`,k=`**/*.md`,A=`${k}/${T}`,j=`**/node_modules,**/dist,**/package-lock.json,**/yarn.lock,**/pnpm-lock.yaml,**/bun.lockb,**/bun.lock,**/output,**/coverage,**/temp,**/.temp,**/tmp,**/.tmp,**/.history,**/.vitepress/cache,**/.nuxt,**/.next,**/.vercel,**/.changeset,**/.idea,**/.cache,**/.output,**/.vite-inspect,**/.yarn,**/CHANGELOG*.md,**/*.min.*,**/LICENSE*,**/__snapshots__,**/auto-import?(s).d.ts,**/components.d.ts`.split(`,`);function M(){return[{files:[T],name:`2digits:antfu`,plugins:{antfu:o},rules:{"antfu/if-newline":`error`,"antfu/top-level-function":`error`}}]}function N(){return[{files:[T],name:`2digits:boolean`,plugins:{boolean:s},rules:{...s.configs.recommended.rules}}]}const P={"@next/next":`next`,"@eslint-react/naming-convention":`react-naming-convention`,"@eslint-react/hooks-extra":`react-hooks-extra`,"@eslint-react/dom":`react-dom`,"@eslint-react/web-api":`react-web-api`,"@eslint-react":`react-extra`,"react-hooks":`react-hooks`,"react-compiler":`react-compiler`,"@stylistic/eslint-plugin":`stylistic`,"@typescript-eslint":`ts`,node:`node`,"@eslint-community/eslint-comments":`comments`,storybook:`storybook`,turbo:`turbo`,jsdoc:`jsdoc`,unicorn:`unicorn`,tailwindcss:`tailwindcss`,"@tanstack/query":`tanstack-query`,"@tanstack/router":`tanstack-router`,"@2digits":`@2digits`,"@graphql-eslint":`gql`,sonarjs:`sonar`,drizzle:`drizzle`,"de-morgan":`boolean`,antfu:`antfu`,css:`css`,depend:`depend`,"github-action":`github-action`,jsonc:`jsonc`,markdown:`markdown`,pnpm:`pnpm`,regexp:`regexp`,yml:`yml`,"zod-x":`zod`},F=[`storybook`,`@storybook/nextjs`,`@storybook/nextjs-vite`,`@storybook/react-vite`,`@storybook/react-webpack5`,`@storybook/react-native-web-vite`],I=n(l.recommended.rules,P);function L(){return[{files:[T],name:`2digits:comments`,plugins:{comments:c},rules:{...I,"comments/no-unused-disable":`error`,"comments/disable-enable-pair":[`error`,{allowWholeFile:!0}]}}]}async function R(e){if(e?.customSyntax)return e.customSyntax;if(e?.tailwindMajor===3)return d;if(e?.tailwindMajor===4)return f;try{let e=(await r(`tailwindcss`))?.version??``,t=Number.parseInt(e.split(`.`)[0]||`0`,10);if(Number.isFinite(t)&&t>=4)return f}catch{}return d}async function z(e={}){let t=await R(e);return[{name:`2digits:css`,files:[`**/*.css`],language:`css/css`,plugins:{css:u},languageOptions:{tolerant:!0,customSyntax:t},rules:{...u.configs.recommended.rules,...e.overrides}}]}function B(){return[{files:[T],name:`2digits:depend`,plugins:{depend:p},rules:{"depend/ban-dependencies":`warn`}}]}async function V(e){let t=await e;return t.default||t}async function H(e={}){let{overrides:t={},drizzleObjectName:n=[`drizzle`,`db`]}=e,r=await V(import(`eslint-plugin-drizzle`));return[{files:[T],name:`2digits:drizzle`,plugins:{drizzle:m(r)},rules:{"drizzle/enforce-update-with-where":[`error`,{drizzleObjectName:n}],"drizzle/enforce-delete-with-where":[`error`,{drizzleObjectName:n}],...t}}]}const U=Object.fromEntries(h.configs.recommended.flatMap(({rules:e})=>Object.entries({...e})));function W(){return[{name:`2digits:github-actions/setup`,plugins:{"github-action":h}},{name:`2digits:github-actions/recommended`,files:[O],ignores:[`!**/${O}`],languageOptions:{parser:g},rules:{...U}}]}async function G(e={}){let{overrides:t={},files:r=[`**/*.graphql`,`**/*.gql`]}=e,[i,a]=await Promise.all([V(import(`@graphql-eslint/eslint-plugin`)),import(`graphql-config`).then(({loadConfig:e})=>e({throwOnEmpty:!1,throwOnMissing:!1}).then(e=>e?.getDefault().schema))]),o=i.configs[`flat/operations-recommended`].rules,s={};if(a)s=o;else for(let e of Object.keys(o)){let t=e.replace(`@graphql-eslint/`,``);t in i.rules&&(i.rules[t].meta.docs?.requiresSchema||i.rules[t].meta.docs?.requiresSiblings)||(s[e]=o[e])}let c=n(s,P);return[{name:`2digits:graphql`,plugins:{gql:i},languageOptions:{parser:i.parser},files:r,rules:{...c,"gql/naming-convention":[`error`,{allowLeadingUnderscore:!0}],...t}}]}function le(e={}){let{gitIgnore:t,ignores:n=[]}=e;return[{ignores:[j,n].flat(),name:`2digits:ignores`},_({strict:!1,...t,name:`2digits:gitignore`})]}function ue(e={}){let{overrides:t={}}=e;return[{files:[T],name:`2digits:javascript`,plugins:{stylistic:te},languageOptions:{ecmaVersion:2022,globals:{...v.browser,...v.es2021,...v.node,document:`readonly`,navigator:`readonly`,window:`readonly`},parserOptions:{ecmaFeatures:{jsx:!0},ecmaVersion:2022,sourceType:`module`},sourceType:`module`},linterOptions:{reportUnusedDisableDirectives:!0},rules:{...ee.configs.recommended.rules,"accessor-pairs":[`error`,{enforceForClassMembers:!0,setWithoutGet:!0}],"array-callback-return":`error`,"block-scoped-var":`error`,"constructor-super":`error`,"default-case-last":`error`,"dot-notation":[`error`,{allowKeywords:!0}],eqeqeq:[`error`,`smart`],"new-cap":[`error`,{capIsNew:!1,newIsCap:!0,properties:!0}],"no-alert":`error`,"no-array-constructor":`error`,"no-async-promise-executor":`error`,"no-caller":`error`,"no-case-declarations":`error`,"no-class-assign":`error`,"no-compare-neg-zero":`error`,"no-cond-assign":[`error`,`always`],"no-const-assign":`error`,"no-control-regex":`error`,"no-debugger":`error`,"no-delete-var":`error`,"no-dupe-args":`error`,"no-dupe-class-members":`error`,"no-dupe-keys":`error`,"no-duplicate-case":`error`,"no-empty":[`error`,{allowEmptyCatch:!0}],"no-empty-character-class":`error`,"no-empty-pattern":`error`,"no-eval":`error`,"no-ex-assign":`error`,"no-extend-native":`error`,"no-extra-bind":`error`,"no-extra-boolean-cast":`error`,"no-fallthrough":`error`,"no-func-assign":`error`,"no-global-assign":`error`,"no-implied-eval":`error`,"no-import-assign":`error`,"no-invalid-regexp":`error`,"no-irregular-whitespace":`error`,"no-iterator":`error`,"no-labels":[`error`,{allowLoop:!1,allowSwitch:!1}],"no-lone-blocks":`error`,"no-loss-of-precision":`error`,"no-misleading-character-class":`error`,"no-multi-str":`error`,"no-new":`error`,"no-new-func":`error`,"no-new-native-nonconstructor":`error`,"no-new-wrappers":`error`,"no-obj-calls":`error`,"no-octal":`error`,"no-octal-escape":`error`,"no-proto":`error`,"no-prototype-builtins":`error`,"no-redeclare":[`error`,{builtinGlobals:!1}],"no-regex-spaces":`error`,"no-restricted-globals":[`error`,{message:"Use `globalThis` instead.",name:`global`},{message:"Use `globalThis` instead.",name:`self`}],"no-restricted-properties":[`error`,{message:"Use `Object.getPrototypeOf` or `Object.setPrototypeOf` instead.",property:`__proto__`},{message:"Use `Object.defineProperty` instead.",property:`__defineGetter__`},{message:"Use `Object.defineProperty` instead.",property:`__defineSetter__`},{message:"Use `Object.getOwnPropertyDescriptor` instead.",property:`__lookupGetter__`},{message:"Use `Object.getOwnPropertyDescriptor` instead.",property:`__lookupSetter__`}],"no-restricted-syntax":[`error`,`DebuggerStatement`,`LabeledStatement`,`WithStatement`,`TSEnumDeclaration`,`TSExportAssignment`],"no-self-assign":[`error`,{props:!0}],"no-self-compare":`error`,"no-sequences":`error`,"no-shadow-restricted-names":`error`,"no-sparse-arrays":`error`,"no-template-curly-in-string":`error`,"no-this-before-super":`error`,"no-throw-literal":`error`,"no-undef":`error`,"no-undef-init":`error`,"no-unexpected-multiline":`error`,"no-unmodified-loop-condition":`error`,"no-unneeded-ternary":[`error`,{defaultAssignment:!1}],"no-unreachable":`error`,"no-unreachable-loop":`error`,"no-unsafe-finally":`error`,"no-unsafe-negation":`error`,"no-unused-expressions":[`error`,{allowShortCircuit:!0,allowTaggedTemplates:!0,allowTernary:!0}],"no-unused-vars":[`error`,{args:`none`,caughtErrors:`none`,ignoreRestSiblings:!0,vars:`all`}],"no-useless-backreference":`error`,"no-useless-call":`error`,"no-useless-catch":`error`,"no-useless-computed-key":`error`,"no-useless-constructor":`error`,"no-useless-rename":`error`,"no-var":`error`,"no-with":`error`,"object-shorthand":[`error`,`always`,{avoidQuotes:!0,ignoreConstructors:!1}],"one-var":[`error`,{initialized:`never`}],"prefer-arrow-callback":[`error`,{allowNamedFunctions:!0,allowUnboundThis:!0}],"prefer-const":[`error`,{destructuring:`all`,ignoreReadBeforeAssign:!0}],"prefer-exponentiation-operator":`error`,"prefer-promise-reject-errors":`error`,"prefer-regex-literals":[`error`,{disallowRedundantWrapping:!0}],"prefer-rest-params":`error`,"prefer-spread":`error`,"prefer-template":`error`,"symbol-description":`error`,"unicode-bom":[`error`,`never`],"use-isnan":[`error`,{enforceForIndexOf:!0,enforceForSwitchCase:!0}],"valid-typeof":[`error`,{requireStringLiterals:!0}],"vars-on-top":`error`,yoda:[`error`,`never`],"stylistic/padding-line-between-statements":[`error`,{blankLine:`always`,prev:[`const`,`let`],next:`*`},{blankLine:`any`,prev:[`const`,`let`],next:[`const`,`let`]},{blankLine:`always`,prev:`*`,next:`return`}],...t}}]}function de(){return[{files:[T],name:`2digits:jsdoc`,plugins:{jsdoc:ne},rules:{"jsdoc/check-access":`error`,"jsdoc/check-param-names":`error`,"jsdoc/check-property-names":`error`,"jsdoc/check-types":`error`,"jsdoc/empty-tags":`error`,"jsdoc/implements-on-classes":`error`,"jsdoc/no-defaults":`error`,"jsdoc/no-multi-asterisks":`error`,"jsdoc/require-param-name":`error`,"jsdoc/require-property":`error`,"jsdoc/require-property-description":`error`,"jsdoc/require-property-name":`error`,"jsdoc/require-returns-check":`error`,"jsdoc/require-returns-description":`error`,"jsdoc/require-yields-check":`error`}}]}function fe(){return[...y[`flat/base`].map(e=>({...e,name:`2digits:jsonc/base`})),{name:`2digits:jsonc/json`,files:[`**/*.json`],...K,rules:{...q(y[`flat/recommended-with-json`])}},{name:`2digits:jsonc/jsonc`,files:[`**/*.jsonc`],...K,rules:{...q(y[`flat/recommended-with-jsonc`])}},{name:`2digits:jsonc/json5`,files:[`**/*.json5`],...K,rules:{...q(y[`flat/recommended-with-json5`])}},{name:`2digits:jsonc/package.json`,...K,files:[`**/package.json`],rules:{"jsonc/sort-array-values":[`error`,{order:{type:`asc`},pathPattern:`^files$`}],"jsonc/sort-keys":[`error`,{order:`$schema.publisher.name.displayName.version.private.description.funding.homepage.repository.bugs.categories.type.main.module.types.typesVersions.bin.files.exports.icon.unpkg.jsdelivr.sideEffects.activationEvents.contributes.scripts.keywords.author.license.workspaces.dependencies.devDependencies.peerDependencies.peerDependenciesMeta.optionalDependencies.packageManager.engines.pnpm.overrides.resolutions.husky.simple-git-hooks.lint-staged.eslintConfig.prettier`.split(`.`),pathPattern:`^$`},{order:{type:`asc`},pathPattern:`^(?:dev|peer|optional|bundled)?[Dd]ependencies(Meta)?$`},{order:[`types`,`import`,`module`,`require`,`default`],pathPattern:`^exports.*$`}]}},{name:`2digits:jsonc/tsconfig.json`,...K,files:[`**/tsconfig.json`,`**/tsconfig.*.json`,`**/tsconfig-*.json`,`**/jsconfig.json`,`**/jsconfig.*.json`,`**/jsconfig-*.json`],rules:{"jsonc/sort-keys":[`error`,{order:[`$schema`,`extends`,`compilerOptions`,`references`,`files`,`include`,`exclude`],pathPattern:`^$`},{order:`incremental.composite.tsBuildInfoFile.disableSourceOfProjectReferenceRedirect.disableSolutionSearching.disableReferencedProjectLoad.target.lib.jsx.experimentalDecorators.emitDecoratorMetadata.jsxFactory.jsxFragmentFactory.jsxImportSource.reactNamespace.noLib.useDefineForClassFields.moduleDetection.module.rootDir.moduleResolution.baseUrl.paths.rootDirs.typeRoots.types.allowUmdGlobalAccess.moduleSuffixes.allowImportingTsExtensions.resolvePackageJsonExports.resolvePackageJsonImports.customConditions.resolveJsonModule.allowArbitraryExtensions.noResolve.allowJs.checkJs.maxNodeModuleJsDepth.declaration.declarationMap.emitDeclarationOnly.sourceMap.inlineSourceMap.outFile.outDir.removeComments.noEmit.importHelpers.importsNotUsedAsValues.downlevelIteration.sourceRoot.mapRoot.inlineSources.emitBOM.newLine.stripInternal.noEmitHelpers.noEmitOnError.preserveConstEnums.declarationDir.preserveValueImports.isolatedModules.verbatimModuleSyntax.allowSyntheticDefaultImports.esModuleInterop.preserveSymlinks.forceConsistentCasingInFileNames.strict.strictBindCallApply.strictFunctionTypes.strictNullChecks.strictPropertyInitialization.allowUnreachableCode.allowUnusedLabels.alwaysStrict.exactOptionalPropertyTypes.noFallthroughCasesInSwitch.noImplicitAny.noImplicitOverride.noImplicitReturns.noImplicitThis.noPropertyAccessFromIndexSignature.noUncheckedIndexedAccess.noUnusedLocals.noUnusedParameters.useUnknownInCatchVariables.skipDefaultLibCheck.skipLibCheck`.split(`.`),pathPattern:`^compilerOptions$`}]}},...y[`flat/prettier`].map(e=>({...e,name:`2digits:jsonc/prettier`}))]}const K={languageOptions:{parser:ie},plugins:{jsonc:re}};function q(e){return Object.fromEntries(e.flatMap(({rules:e})=>Object.entries(e??{})))}const J=[k];function pe(){return[{name:`2digits:markdown/setup`,plugins:{markdown:b}},{name:`2digits:markdown/processor`,files:J,language:`markdown/gfm`,ignores:[`**/*.md/*.md`],processor:ae([b.processors.markdown,oe])},{name:`2digits:markdown/parser`,files:J,language:`markdown/gfm`,languageOptions:{parser:me}},{name:`2digits:markdown/rules`,files:J,language:`markdown/gfm`,rules:{"markdown/fenced-code-language":`error`,"markdown/heading-increment":`error`,"markdown/no-empty-links":`error`,"markdown/no-invalid-label-refs":`error`,"markdown/no-missing-label-refs":`error`}},{name:`2digits:markdown/disables`,files:[A],languageOptions:{parserOptions:{ecmaFeatures:{impliedStrict:!0}}},rules:{"no-alert":`off`,"no-console":`off`,"no-labels":`off`,"no-lone-blocks":`off`,"no-restricted-syntax":`off`,"no-undef":`off`,"no-unused-expressions":`off`,"no-unused-labels":`off`,"no-unused-vars":`off`,"node/prefer-global/process":`off`,"ts/consistent-type-imports":`off`,"ts/explicit-function-return-type":`off`,"ts/no-namespace":`off`,"ts/no-redeclare":`off`,"ts/no-require-imports":`off`,"ts/no-unused-expressions":`off`,"ts/no-unused-vars":`off`,"ts/no-use-before-define":`off`,"unicode-bom":`off`}}]}const me={meta:{name:`parser-plain`},parseForESLint:e=>({ast:{body:[],comments:[],loc:{end:e.length,start:0},range:[0,e.length],tokens:[],type:`Program`},scopeManager:null,services:{isPlain:!0},visitorKeys:{Program:[]}})};async function he(e={}){let{files:t=[E,D],overrides:r={},parserOptions:i}=e,[a,o]=await Promise.all([V(import(`@next/eslint-plugin-next`)),V(import(`@typescript-eslint/parser`))]),s=n({...a.configs.recommended.rules,...a.configs[`core-web-vitals`].rules},P);return[{name:`2digits:next/setup`,plugins:{next:m(a)}},{name:`2digits:next/rules`,files:t,languageOptions:{parser:o,parserOptions:{ecmaFeatures:{jsx:!0},projectService:!0,...i},sourceType:`module`},rules:{...s,"next/no-html-link-for-pages":`off`,...r}}]}function ge(){return[{files:[T],name:`2digits:node`,settings:{node:{version:`>= 22.0.0`}},plugins:{node:se},rules:{"node/handle-callback-err":[`error`,`^(err|error)$`],"node/no-deprecated-api":`error`,"node/no-exports-assign":`error`,"node/no-new-require":`error`,"node/no-path-concat":`error`,"node/no-unsupported-features/node-builtins":[`error`,{allowExperimental:!0}],"node/prefer-global/buffer":`error`,"node/prefer-global/process":`error`,"node/prefer-global/text-encoder":`error`,"node/prefer-global/url":`error`,"node/prefer-global/console":`error`,"node/prefer-global/url-search-params":`error`,"node/prefer-global/text-decoder":`error`,"node/process-exit-as-throw":`error`}}]}async function _e(){let e=await V(import(`eslint-plugin-pnpm`));return[{name:`2digits:pnpm/package-json`,files:[`package.json`,`**/package.json`],languageOptions:{parser:await V(import(`jsonc-eslint-parser`))},plugins:{pnpm:e},rules:{"pnpm/json-enforce-catalog":`error`,"pnpm/json-prefer-workspace-settings":`error`,"pnpm/json-valid-catalog":`error`}},{name:`2digits:pnpm/pnpm-workspace-yaml`,files:[`pnpm-workspace.yaml`],languageOptions:{parser:await V(import(`yaml-eslint-parser`))},plugins:{pnpm:e},rules:{"pnpm/yaml-no-duplicate-catalog-item":`error`,"pnpm/yaml-no-unused-catalog-item":`error`,"pnpm/yaml-valid-packages":`error`}}]}async function ve(){let[e,t]=await Promise.all([V(import(`eslint-config-prettier`)),V(import(`@stylistic/eslint-plugin`))]);return[{name:`2digits:prettier`,plugins:{stylistic:t},rules:{...e.rules,"tailwindcss/classnames-order":`off`,"stylistic/jsx-newline":[`error`,{prevent:!1}]}}]}async function ye(e={}){let{files:t=[E,D],overrides:r={},parserOptions:i,tsconfigRootDir:a,reactCompiler:o=!0}=e,[s,c,l,u,d]=await Promise.all([V(import(`@eslint-react/eslint-plugin`)),V(import(`eslint-plugin-react-hooks`)),V(import(`@typescript-eslint/parser`)),o?V(import(`eslint-plugin-react-compiler`)):Promise.resolve(void 0),V(import(`@stylistic/eslint-plugin`))]),f=s.configs.all.plugins,p=n({...s.configs[`disable-conflict-eslint-plugin-react`].rules,...s.configs[`recommended-type-checked`].rules},P);return[{name:`2digits:react/setup`,plugins:{stylistic:d,"react-dom":f[`@eslint-react/dom`],"react-web-api":f[`@eslint-react/web-api`],"react-extra":f[`@eslint-react`],"react-hooks":c,"react-hooks-extra":f[`@eslint-react/hooks-extra`],"react-naming-convention":f[`@eslint-react/naming-convention`],...o?{"react-compiler":u}:{}},settings:{react:{version:`detect`}}},{name:`2digits:react/rules`,files:t,languageOptions:{parser:l,parserOptions:{ecmaFeatures:{jsx:!0},tsconfigRootDir:a,projectService:!0,...i},sourceType:`module`},rules:{...p,...o?{"react-compiler/react-compiler":`error`}:{},"react-extra/no-unnecessary-use-callback":`error`,"react-extra/prefer-use-state-lazy-initialization":`error`,"react-extra/no-unnecessary-use-prefix":`error`,"react-extra/no-unnecessary-use-memo":`error`,"react-hooks-extra/no-direct-set-state-in-use-effect":`error`,"react-extra/no-useless-fragment":`off`,"react-extra/prefer-read-only-props":`off`,"react-extra/jsx-shorthand-boolean":`error`,"react-extra/jsx-shorthand-fragment":`error`,"react-extra/prefer-namespace-import":`error`,"react-naming-convention/use-state":`error`,"stylistic/jsx-curly-newline":`off`,"stylistic/jsx-newline":[`error`,{prevent:!1}],"stylistic/jsx-self-closing-comp":`error`,"react-hooks/rules-of-hooks":`error`,"react-hooks/exhaustive-deps":`warn`,...r}}]}function be(){return[{files:[T],name:`2digits:regexp`,plugins:{regexp:x},rules:{...x.configs[`flat/recommended`].rules}}]}function xe(){return[{files:[T],name:`2digits:sonar`,plugins:{sonar:S},rules:{"sonar/code-eval":`error`,"sonar/cognitive-complexity":`error`,"sonar/comma-or-logical-or-case":`error`,"sonar/concise-regex":`error`,"sonar/confidential-information-logging":`error`,"sonar/constructor-for-side-effects":`error`,"sonar/content-length":`error`,"sonar/content-security-policy":`error`,"sonar/cookie-no-httponly":`error`,"sonar/cors":`error`,"sonar/csrf":`error`,"sonar/max-switch-cases":`error`,"sonar/no-all-duplicated-branches":`error`,"sonar/no-collapsible-if":`error`,"sonar/no-collection-size-mischeck":`error`,"sonar/no-duplicate-string":[`error`,{threshold:5}],"sonar/no-duplicated-branches":`error`,"sonar/no-element-overwrite":`error`,"sonar/no-empty-collection":`error`,"sonar/no-extra-arguments":`error`,"sonar/no-for-in-iterable":`error`,"sonar/no-gratuitous-expressions":`error`,"sonar/no-identical-conditions":`error`,"sonar/no-identical-expressions":`error`,"sonar/no-identical-functions":`error`,"sonar/no-ignored-return":`error`,"sonar/no-inverted-boolean-check":`error`,"sonar/no-nested-switch":`error`,"sonar/no-nested-template-literals":`error`,"sonar/no-redundant-boolean":`error`,"sonar/no-same-line-conditional":`error`,"sonar/no-small-switch":`error`,"sonar/no-unused-collection":`error`,"sonar/no-use-of-empty-return-value":`error`,"sonar/no-useless-catch":`error`,"sonar/non-existent-operator":`error`,"sonar/prefer-immediate-return":`error`,"sonar/prefer-object-literal":`error`,"sonar/prefer-single-boolean-return":`error`,"sonar/prefer-while":`error`,"sonar/elseif-without-else":`off`,"sonar/no-redundant-jump":`off`}}]}async function Se(e={}){let{files:t=[`**/*.stories.tsx`],overrides:n={},parserOptions:r,storybookDirectory:i=`.storybook`}=e,[a,o]=await Promise.all([V(import(`eslint-plugin-storybook`)),V(import(`@typescript-eslint/parser`))]),s={parser:o,parserOptions:{ecmaFeatures:{jsx:!0},projectService:!0,...r},sourceType:`module`};return[{name:`2digits:storybook/setup`,plugins:{storybook:a}},{name:`2digits:storybook/rules`,files:t,languageOptions:s,rules:{"storybook/await-interactions":`error`,"storybook/context-in-play-function":`error`,"storybook/csf-component":`error`,"storybook/default-exports":`error`,"storybook/hierarchy-separator":`error`,"storybook/meta-inline-properties":`error`,"storybook/no-redundant-story-name":`error`,"storybook/no-stories-of":`error`,"storybook/no-title-property-in-meta":`error`,"storybook/no-uninstalled-addons":`error`,"storybook/prefer-pascal-case":`error`,"storybook/story-exports":`error`,"storybook/use-storybook-expect":`error`,"storybook/use-storybook-testing-library":`error`,"storybook/meta-satisfies-type":`error`,"storybook/no-renderer-packages":`error`,...n}},{name:`2digits:storybook/disables`,files:t,rules:{"react-hooks/rules-of-hooks":`off`,"react/display-name":`off`,"sonar/no-duplicate-string":`off`}},{name:`2digits:storybook/config`,files:[`${i}/main.@(js|cjs|mjs|ts)`],languageOptions:s,rules:{"storybook/no-uninstalled-addons":`error`}}]}async function Ce(e={}){let{overrides:t={}}=e,[n,{tailwindFunctions:r},i]=await Promise.all([V(import(`eslint-plugin-tailwindcss`)),V(import(`@2digits/constants`)),a().catch(()=>void 0)]),o=C.file(`tailwind.config.ts`,{last:i})??C.file(`tailwind.config.js`,{last:i});return[{files:[T],name:`2digits:tailwind`,plugins:{tailwindcss:n},settings:{tailwindcss:{callees:r,config:o}},rules:{...n.configs.recommended.rules,...t}}]}async function we(e={}){let{overrides:t={}}=e,r=await V(import(`@tanstack/eslint-plugin-query`)),i=n(r.configs[`flat/recommended`].at(0)?.rules??{},P);return[{files:[T],name:`2digits:tanstack-query`,plugins:{"tanstack-query":r},rules:{...i,...t}}]}async function Y(e={}){let{overrides:t={}}=e,r=await V(import(`@tanstack/eslint-plugin-router`)),i=n(r.configs[`flat/recommended`].at(0)?.rules??{},P);return[{files:[T],name:`2digits:tanstack-router`,plugins:{"tanstack-router":r},rules:{...i,"ts/only-throw-error":[`error`,{allow:[{from:`package`,package:`@tanstack/router-core`,name:`Redirect`}]}],...t}}]}async function Te(e={}){let{overrides:t={}}=e,n=await V(import(`eslint-plugin-turbo`));return[{files:[T],name:`2digits:turbo`,plugins:{turbo:n},rules:{"turbo/no-undeclared-env-vars":`error`,...t}}]}async function Ee(e={}){let{overrides:n={},parserOptions:r={}}=e,[{plugin:i,configs:a,parser:o},s]=await Promise.all([V(import(`typescript-eslint`)),V(import(`@2digits/eslint-plugin`))]),c=t(a.strictTypeChecked,P),l=Object.fromEntries(c.flatMap(({rules:e})=>Object.entries(e??{})));return[{name:`2digits:typescript/setup`,plugins:{ts:i,"@2digits":s}},{name:`2digits:typescript/rules`,files:[T],ignores:[A],languageOptions:{parser:o,parserOptions:{tsconfigRootDir:process.cwd(),projectService:!0,warnOnUnsupportedTypeScriptVersion:!1,...r},sourceType:`module`},rules:{...l,"ts/array-type":[`error`,{default:`generic`,readonly:`generic`}],"ts/restrict-template-expressions":[`error`,{allowNumber:!0}],"ts/ban-ts-comment":[`error`,{"ts-ignore":`allow-with-description`}],"ts/consistent-type-exports":[`error`],"ts/consistent-type-imports":[`error`,{prefer:`type-imports`,disallowTypeAnnotations:!1,fixStyle:`inline-type-imports`}],"ts/no-empty-object-type":[`error`,{allowInterfaces:`with-single-extends`,allowObjectTypes:`never`}],"ts/no-explicit-any":[`error`],"ts/no-import-type-side-effects":[`error`],"ts/no-misused-promises":`off`,"ts/no-confusing-void-expression":`off`,"ts/no-unused-vars":[`error`,{ignoreRestSiblings:!0,argsIgnorePattern:`^_`,varsIgnorePattern:`^_`}],"ts/unbound-method":`off`,...s.configs.recommended.rules,...n}},{name:`2digits:typescript/disables/dts`,files:[`**/*.d.ts`],ignores:[A],rules:{"unicorn/no-abusive-eslint-disable":`off`,"no-duplicate-imports":`off`,"no-restricted-syntax":`off`,"ts/no-unused-vars":`off`}},{name:`2digits:typescript/disables/test`,files:[`**/*.{test,spec}.ts?(x)`],ignores:[A],rules:{"no-unused-expressions":`off`}},{name:`2digits:typescript/disables/cjs`,files:[`**/*.js`,`**/*.cjs`,`**/*.cts`],ignores:[A],rules:{"ts/no-require-imports":`off`,"ts/no-var-requires":`off`}}]}function De(){return[{files:[T],name:`2digits:unicorn`,plugins:{unicorn:w},rules:{...w.configs.recommended.rules,"unicorn/filename-case":[`off`],"unicorn/prefer-module":[`off`],"unicorn/prevent-abbreviations":[`off`],"unicorn/prefer-ternary":[`error`,`only-single-line`],"unicorn/no-useless-undefined":[`error`,{checkArguments:!1,checkArrowFunctionBody:!1}],"unicorn/prefer-top-level-await":[`off`]}}]}function Oe(){return[{name:`2digits:yaml/setup`,plugins:{yml:ce}},{name:`2digits:yaml/base`,...X,rules:{"no-irregular-whitespace":`off`,"no-unused-vars":`off`,"spaced-comment":`off`}},{name:`2digits:yaml/recommended`,...X,rules:{"yml/no-empty-document":`error`,"yml/no-empty-key":`error`,"yml/no-empty-mapping-value":`error`,"yml/no-empty-sequence-entry":`error`,"yml/no-irregular-whitespace":`error`,"yml/no-tab-indent":`error`,"yml/vue-custom-block/no-parsing-error":`error`}},{name:`2digits:yaml/standard`,...X,rules:{"yml/block-mapping":`error`,"yml/block-sequence":`error`,"yml/plain-scalar":`error`,"yml/spaced-comment":`error`}},{name:`2digits:yaml/prettier`,...X,rules:{"yml/block-mapping-colon-indicator-newline":`off`,"yml/block-mapping-question-indicator-newline":`off`,"yml/block-sequence-hyphen-indicator-newline":`off`,"yml/flow-mapping-curly-newline":`off`,"yml/flow-mapping-curly-spacing":`off`,"yml/flow-sequence-bracket-newline":`off`,"yml/flow-sequence-bracket-spacing":`off`,"yml/indent":`off`,"yml/key-spacing":`off`,"yml/no-multiple-empty-lines":`off`,"yml/no-trailing-zeros":`off`,"yml/quotes":`off`}}]}const X={files:[`**/*.y?(a)ml`],languageOptions:{parser:g}};async function ke(e={}){let{overrides:t={}}=e,n=await V(import(`eslint-plugin-zod-x`));return[{files:[T],name:`2digits:zod`,plugins:{zod:n},rules:{"zod/array-style":[`error`,{style:`function`}],"zod/no-any":`error`,"zod/no-empty-custom-schema":`error`,"zod/no-throw-in-refine":`error`,"zod/prefer-meta":`error`,"zod/prefer-meta-last":`error`,"zod/prefer-namespace-import":`error`,"zod/require-schema-suffix":[`warn`,{suffix:`Schema`}],"zod/no-optional-and-default-together":[`warn`,{preferredMethod:`default`}],"zod/no-number-schema-with-int":`error`,...t}}]}function Z(e,t){return typeof e==`boolean`?e:e?.enable??t??!1}function Q(e){if(typeof e==`boolean`||e===void 0)return{};let{enable:t,...n}=e;return n}async function $(t={},...n){let r;t.pnpm===void 0&&(r=a());let o=new e(le(t.ignores),ue(t.js),N(),ge(),L(),de(),De(),xe(),be(),M(),fe(),Oe(),pe(),W());Z(t.css)&&(o=o.append(z(Q(t.css)))),Z(t.depend,!0)&&(o=o.append(B())),Z(t.turbo,i(`turbo`))&&(o=o.append(Te(Q(t.turbo))));let{overrides:s,...c}=Q(t.ts);return Z(t.ts,i(`typescript`))&&(o=o.append(Ee(Q(t.ts)))),Z(t.react,i(`react`))&&(o=o.append(ye({...Q(t.react),...c}))),Z(t.next,i(`next`))&&(o=o.append(he({...Q(t.next),...c}))),Z(t.storybook,F.some(e=>i(e)))&&(o=o.append(Se({...Q(t.storybook),...c}))),Z(t.tailwind,i(`tailwindcss`))&&(o=o.append(Ce(Q(t.tailwind)))),Z(t.tanstackQuery,i(`react-query`)||i(`@tanstack/react-query`)||i(`@tanstack/react-query-devtools`))&&(o=o.append(we(Q(t.tanstackQuery)))),Z(t.tanstackRouter,i(`@tanstack/react-router`))&&(o=o.append(Y(Q(t.tanstackRouter)))),Z(t.drizzle,i(`drizzle-kit`)||i(`drizzle-orm`))&&(o=o.append(H(Q(t.drizzle)))),Z(t.zod,i(`zod`))&&(o=o.append(ke(Q(t.zod)))),Z(t.graphql,i(`graphql`))&&(o=o.append(G(Q(t.graphql)))),Z(t.pnpm,!!await r)&&(o=o.append(_e())),o=o.append(...n),i(`prettier`)&&(o=o.append(ve())),o.renamePlugins(P).toConfigs()}export{$ as default,$ as twoDigits};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@2digits/eslint-config",
3
- "version": "4.12.3",
3
+ "version": "4.12.5",
4
4
  "description": "Effortlessly enforce best practices and catch errors with this comprehensive ESLint configuration for TypeScript, featuring popular plugins like @typescript-eslint, eslint-plugin-react, and eslint-plugin-unicorn.",
5
5
  "homepage": "https://2d-configs.vercel.app/",
6
6
  "repository": {
@@ -28,12 +28,12 @@
28
28
  "dependencies": {
29
29
  "@eslint-community/eslint-plugin-eslint-comments": "4.5.0",
30
30
  "@eslint-react/eslint-plugin": "2.2.4",
31
- "@eslint/compat": "1.4.0",
32
- "@eslint/css": "0.13.0",
31
+ "@eslint/compat": "1.4.1",
32
+ "@eslint/css": "0.14.0",
33
33
  "@eslint/js": "9.38.0",
34
34
  "@eslint/markdown": "7.5.0",
35
35
  "@graphql-eslint/eslint-plugin": "4.4.0",
36
- "@next/eslint-plugin-next": "16.0.0",
36
+ "@next/eslint-plugin-next": "16.0.1",
37
37
  "@stylistic/eslint-plugin": "5.5.0",
38
38
  "@tanstack/eslint-plugin-query": "5.91.2",
39
39
  "@tanstack/eslint-plugin-router": "1.133.19",
@@ -49,7 +49,7 @@
49
49
  "eslint-plugin-depend": "1.3.1",
50
50
  "eslint-plugin-drizzle": "0.2.3",
51
51
  "eslint-plugin-github-action": "0.0.16",
52
- "eslint-plugin-jsdoc": "61.1.9",
52
+ "eslint-plugin-jsdoc": "61.1.11",
53
53
  "eslint-plugin-jsonc": "2.21.0",
54
54
  "eslint-plugin-n": "17.23.1",
55
55
  "eslint-plugin-pnpm": "1.3.0",
@@ -57,7 +57,7 @@
57
57
  "eslint-plugin-react-hooks": "7.0.1",
58
58
  "eslint-plugin-regexp": "2.10.0",
59
59
  "eslint-plugin-sonarjs": "3.0.5",
60
- "eslint-plugin-storybook": "9.1.15",
60
+ "eslint-plugin-storybook": "10.0.1",
61
61
  "eslint-plugin-tailwindcss": "3.18.2",
62
62
  "eslint-plugin-turbo": "2.5.8",
63
63
  "eslint-plugin-unicorn": "62.0.0",
@@ -83,9 +83,9 @@
83
83
  "react": "19.2.0",
84
84
  "tinyexec": "1.0.1",
85
85
  "tinyglobby": "0.2.15",
86
- "tsdown": "0.15.10",
86
+ "tsdown": "0.15.11",
87
87
  "typescript": "5.9.3",
88
- "vitest": "4.0.4",
88
+ "vitest": "4.0.5",
89
89
  "@2digits/tsconfig": "0.8.4"
90
90
  },
91
91
  "scripts": {