{"version":3,"file":"plugin.mjs","sources":["../../../src/stylelint/plugin.ts"],"sourcesContent":["// eslint-disable-next-line import-x/no-extraneous-dependencies\nimport stylelint from \"stylelint\";\n\nimport { rewriteToExpectedAST } from \"../rules/css/grouped-declarations/fixer.rewrite-to-expected-ast\";\nimport { astToKeySegments } from \"../rules/css/grouped-declarations/util.ast-to-key-segments\";\nimport { extractDeclarationScope } from \"../rules/css/grouped-declarations/util.extract-declaration-scopes\";\n\nconst ruleName = \"grouped-css-declarations/css\";\nconst messages = stylelint.utils.ruleMessages(ruleName, {\n  expected:\n    \"Issues have been identified with the current CSS structuring, please use the accompanying fix to automatically re-format\",\n});\n\nconst meta = {\n  url: \"https://github.com/foo-org/stylelint-foo/blob/main/src/rules/foo-bar/README.md\",\n};\n\nconst ruleFunction: stylelint.Rule = (primary, secondary, context) => {\n  return (postcssRoot, postcssResult) => {\n    const firstNode = postcssRoot.first;\n\n    if (!firstNode) {\n      return;\n    }\n\n    const orginalKey = astToKeySegments(postcssRoot).join(\"\");\n\n    const declarationRootScope = extractDeclarationScope(postcssRoot);\n\n    const fixedAst = rewriteToExpectedAST(postcssRoot, declarationRootScope);\n\n    // @ts-expect-error Stylelint wierdly computes that a newline exists before\n    // the first node, even though this isn't true.\n    fixedAst.nodes[0].raws.before = \"\";\n    const fixedKey = astToKeySegments(fixedAst).join(\"\");\n\n    if (orginalKey !== fixedKey) {\n      if (context.fix) {\n        // eslint-disable-next-line no-useless-assignment\n        postcssRoot = fixedAst;\n      } else {\n        stylelint.utils.report({\n          ruleName,\n          result: postcssResult,\n          message: messages.expected,\n          node: postcssRoot,\n        });\n      }\n    }\n  };\n};\n\nruleFunction.ruleName = ruleName;\nruleFunction.messages = messages;\nruleFunction.meta = meta;\n\nexport default stylelint.createPlugin(ruleName, ruleFunction);\n"],"names":[],"mappings":";;;;;AAOA,MAAM,QAAA,GAAW,8BAAA;AACjB,MAAM,QAAA,GAAW,SAAA,CAAU,KAAA,CAAM,YAAA,CAAa,QAAA,EAAU;AAAA,EACtD,QAAA,EACE;AACJ,CAAC,CAAA;AAED,MAAM,IAAA,GAAO;AAAA,EACX,GAAA,EAAK;AACP,CAAA;AAEA,MAAM,YAAA,GAA+B,CAAC,OAAA,EAAS,SAAA,EAAW,OAAA,KAAY;AACpE,EAAA,OAAO,CAAC,aAAa,aAAA,KAAkB;AACrC,IAAA,MAAM,YAAY,WAAA,CAAY,KAAA;AAE9B,IAAA,IAAI,CAAC,SAAA,EAAW;AACd,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,UAAA,GAAa,gBAAA,CAAiB,WAAW,CAAA,CAAE,KAAK,EAAE,CAAA;AAExD,IAAA,MAAM,oBAAA,GAAuB,wBAAwB,WAAW,CAAA;AAEhE,IAAA,MAAM,QAAA,GAAW,oBAAA,CAAqB,WAAA,EAAa,oBAAoB,CAAA;AAIvE,IAAA,QAAA,CAAS,KAAA,CAAM,CAAC,CAAA,CAAE,IAAA,CAAK,MAAA,GAAS,EAAA;AAChC,IAAA,MAAM,QAAA,GAAW,gBAAA,CAAiB,QAAQ,CAAA,CAAE,KAAK,EAAE,CAAA;AAEnD,IAAA,IAAI,eAAe,QAAA,EAAU;AAC3B,MAAA,IAAI,QAAQ,GAAA,EAAK;AAEf,QAAA,WAAA,GAAc,QAAA;AAAA,MAChB,CAAA,MAAO;AACL,QAAA,SAAA,CAAU,MAAM,MAAA,CAAO;AAAA,UACrB,QAAA;AAAA,UACA,MAAA,EAAQ,aAAA;AAAA,UACR,SAAS,QAAA,CAAS,QAAA;AAAA,UAClB,IAAA,EAAM;AAAA,SACP,CAAA;AAAA,MACH;AAAA,IACF;AAAA,EACF,CAAA;AACF,CAAA;AAEA,YAAA,CAAa,QAAA,GAAW,QAAA;AACxB,YAAA,CAAa,QAAA,GAAW,QAAA;AACxB,YAAA,CAAa,IAAA,GAAO,IAAA;AAEpB,aAAe,SAAA,CAAU,YAAA,CAAa,QAAA,EAAU,YAAY,CAAA;;;;"}