{"version":3,"file":"checkAlignment.cjs","names":["iterateJsdoc"],"sources":["../../src/rules/checkAlignment.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc.js';\n\nexport default iterateJsdoc(({\n  context,\n  indent,\n  jsdocNode,\n  report,\n  sourceCode,\n}) => {\n  const {\n    innerIndent = 1,\n  } = context.options[0] || {};\n\n  // `indent` is whitespace from line 1 (`/**`), so slice and account for \"/\".\n  const indentLevel = indent.length + innerIndent;\n  const sourceLines = sourceCode.getText(jsdocNode).split('\\n')\n    .slice(1)\n    .map((line, number) => {\n      return {\n        line: line.split('*')[0],\n        number,\n      };\n    })\n    .filter(({\n      line,\n    }) => {\n      return !line.trimStart().length;\n    });\n\n  /** @type {import('eslint').Rule.ReportFixer} */\n  const fix = (fixer) => {\n    const replacement = sourceCode.getText(jsdocNode).split('\\n')\n      .map((line, index) => {\n        // Ignore the first line and all lines not starting with `*`\n        const ignored = !index || line.split('*')[0].trimStart().length;\n\n        return ignored ? line : `${indent}${''.padStart(innerIndent, ' ')}${line.trimStart()}`;\n      })\n      .join('\\n');\n\n    return fixer.replaceText(jsdocNode, replacement);\n  };\n\n  sourceLines.some(({\n    line,\n    number,\n  }) => {\n    if (line.length !== indentLevel) {\n      report('Expected JSDoc block to be aligned.', fix, {\n        line: number + 1,\n      });\n\n      return true;\n    }\n\n    return false;\n  });\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    docs: {\n      description: 'Reports invalid alignment of JSDoc block asterisks.',\n      url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-alignment.md#repos-sticky-header',\n    },\n    fixable: 'code',\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          innerIndent: {\n            default: 1,\n            description: `Set to 0 if you wish to avoid the normal requirement for an inner indentation of\none space. Defaults to 1 (one space of normal inner indentation).`,\n            type: 'integer',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'layout',\n  },\n});\n"],"mappings":";;;;;;AAAA;AAA8C;AAAA,iCAE/B,IAAAA,qBAAY,EAAC,CAAC;EAC3B,OAAO;EACP,MAAM;EACN,SAAS;EACT,MAAM;EACN;AACF,CAAC,KAAK;EACJ,MAAM;IACJ,WAAW,GAAG;EAChB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;;EAE5B;EACA,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,GAAG,WAAW;EAC/C,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAC1D,KAAK,CAAC,CAAC,CAAC,CACR,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK;IACrB,OAAO;MACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;MACxB;IACF,CAAC;EACH,CAAC,CAAC,CACD,MAAM,CAAC,CAAC;IACP;EACF,CAAC,KAAK;IACJ,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;EACjC,CAAC,CAAC;;EAEJ;EACA,MAAM,GAAG,GAAI,KAAK,IAAK;IACrB,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAC1D,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK;MACpB;MACA,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;MAE/D,OAAO,OAAO,GAAG,IAAI,GAAG,GAAG,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE;IACxF,CAAC,CAAC,CACD,IAAI,CAAC,IAAI,CAAC;IAEb,OAAO,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC;EAClD,CAAC;EAED,WAAW,CAAC,IAAI,CAAC,CAAC;IAChB,IAAI;IACJ;EACF,CAAC,KAAK;IACJ,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE;MAC/B,MAAM,CAAC,qCAAqC,EAAE,GAAG,EAAE;QACjD,IAAI,EAAE,MAAM,GAAG;MACjB,CAAC,CAAC;MAEF,OAAO,IAAI;IACb;IAEA,OAAO,KAAK;EACd,CAAC,CAAC;AACJ,CAAC,EAAE;EACD,gBAAgB,EAAE,IAAI;EACtB,IAAI,EAAE;IACJ,IAAI,EAAE;MACJ,WAAW,EAAE,qDAAqD;MAClE,GAAG,EAAE;IACP,CAAC;IACD,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,CACN;MACE,oBAAoB,EAAE,KAAK;MAC3B,UAAU,EAAE;QACV,WAAW,EAAE;UACX,OAAO,EAAE,CAAC;UACV,WAAW,EAAE;AACzB,kEAAkE;UACtD,IAAI,EAAE;QACR;MACF,CAAC;MACD,IAAI,EAAE;IACR,CAAC,CACF;IACD,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAAA","ignoreList":[]}