{"version":3,"file":"tagLines.cjs","names":["_iterateJsdoc","_interopRequireDefault","require","e","__esModule","default","_default","exports","iterateJsdoc","context","jsdoc","utils","alwaysNever","count","endLines","startLines","applyToEndTag","tags","options","some","tg","tagIdx","lastTag","lastEmpty","reportIndex","emptyLinesCount","idx","tokens","tag","name","type","description","end","source","entries","_tags$lastTag$slice","_tags$lastTag$slice2","includes","slice","lines","empty","length","lineDiff","fixer","removeTag","tagSourceOffset","reportJSDoc","line","number","addLines","currentTag","tagSourceIdx","splice","push","currentTg","tagCount","defaultAlways","overrideAlways","fixCount","_lines2","_lines","_description$match","lastDescriptionLine","getDescription","test","trailingLines","match","trailingDiff","setBlockDescription","info","seedTokens","descLines","map","desc","postDelimiter","trim","Array","from","iterateAllJsdocs","meta","docs","url","fixable","schema","enum","additionalProperties","properties","anyOf","patternProperties","module"],"sources":["../../src/rules/tagLines.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc.js';\n\nexport default iterateJsdoc(({\n  context,\n  jsdoc,\n  utils,\n}) => {\n  const [\n    alwaysNever = 'never',\n    {\n      count = 1,\n      endLines = 0,\n      startLines = 0,\n      applyToEndTag = true,\n      tags = {},\n    } = {},\n  ] = context.options;\n\n  // eslint-disable-next-line complexity -- Temporary\n  jsdoc.tags.some((tg, tagIdx) => {\n    let lastTag;\n\n    /**\n     * @type {null|import('../iterateJsdoc.js').Integer}\n     */\n    let lastEmpty = null;\n\n    /**\n     * @type {null|import('../iterateJsdoc.js').Integer}\n     */\n    let reportIndex = null;\n    let emptyLinesCount = 0;\n    for (const [\n      idx,\n      {\n        tokens: {\n          tag,\n          name,\n          type,\n          description,\n          end,\n        },\n      },\n    ] of tg.source.entries()) {\n      // May be text after a line break within a tag description\n      if (description) {\n        reportIndex = null;\n      }\n\n      if (lastTag && [\n        'any', 'always',\n      ].includes(tags[lastTag.slice(1)]?.lines)) {\n        continue;\n      }\n\n      const empty = !tag && !name && !type && !description;\n      if (\n        empty && !end &&\n        (alwaysNever === 'never' ||\n          lastTag && tags[lastTag.slice(1)]?.lines === 'never'\n        )\n      ) {\n        reportIndex = idx;\n\n        continue;\n      }\n\n      if (!end) {\n        if (empty) {\n          emptyLinesCount++;\n        } else {\n          emptyLinesCount = 0;\n        }\n\n        lastEmpty = empty ? idx : null;\n      }\n\n      lastTag = tag;\n    }\n\n    if (\n      typeof endLines === 'number' &&\n      lastEmpty !== null && tagIdx === jsdoc.tags.length - 1\n    ) {\n      const lineDiff = endLines - emptyLinesCount;\n\n      if (lineDiff < 0) {\n        const fixer = () => {\n          utils.removeTag(tagIdx, {\n            tagSourceOffset: /** @type {import('../iterateJsdoc.js').Integer} */ (\n              lastEmpty\n            ) + lineDiff + 1,\n          });\n        };\n\n        utils.reportJSDoc(\n          `Expected ${endLines} trailing lines`,\n          {\n            line: tg.source[lastEmpty].number + lineDiff + 1,\n          },\n          fixer,\n        );\n      } else if (lineDiff > 0) {\n        const fixer = () => {\n          utils.addLines(\n            tagIdx,\n            /** @type {import('../iterateJsdoc.js').Integer} */ (lastEmpty),\n            endLines - emptyLinesCount,\n          );\n        };\n\n        utils.reportJSDoc(\n          `Expected ${endLines} trailing lines`,\n          {\n            line: tg.source[lastEmpty].number,\n          },\n          fixer,\n        );\n      }\n\n      return true;\n    }\n\n    if (reportIndex !== null) {\n      const fixer = () => {\n        utils.removeTag(tagIdx, {\n          tagSourceOffset: /** @type {import('../iterateJsdoc.js').Integer} */ (\n            reportIndex\n          ),\n        });\n      };\n\n      utils.reportJSDoc(\n        'Expected no lines between tags',\n        {\n          line: tg.source[0].number + 1,\n        },\n        fixer,\n      );\n\n      return true;\n    }\n\n    return false;\n  });\n\n  (applyToEndTag ? jsdoc.tags : jsdoc.tags.slice(0, -1)).some((tg, tagIdx) => {\n    /**\n     * @type {{\n     *   idx: import('../iterateJsdoc.js').Integer,\n     *   number: import('../iterateJsdoc.js').Integer\n     * }[]}\n     */\n    const lines = [];\n\n    let currentTag;\n    let tagSourceIdx = 0;\n    for (const [\n      idx,\n      {\n        number,\n        tokens: {\n          tag,\n          name,\n          type,\n          description,\n          end,\n        },\n      },\n    ] of tg.source.entries()) {\n      if (description) {\n        lines.splice(0, lines.length);\n        tagSourceIdx = idx;\n      }\n\n      if (tag) {\n        currentTag = tag;\n      }\n\n      if (!tag && !name && !type && !description && !end) {\n        lines.push({\n          idx,\n          number,\n        });\n      }\n    }\n\n    const currentTg = currentTag && tags[currentTag.slice(1)];\n    const tagCount = currentTg?.count;\n\n    const defaultAlways = alwaysNever === 'always' && currentTg?.lines !== 'never' &&\n      currentTg?.lines !== 'any' && lines.length < count;\n\n    let overrideAlways;\n    let fixCount = count;\n    if (!defaultAlways) {\n      fixCount = typeof tagCount === 'number' ? tagCount : count;\n      overrideAlways = currentTg?.lines === 'always' &&\n        lines.length < fixCount;\n    }\n\n    if (defaultAlways || overrideAlways) {\n      const fixer = () => {\n        utils.addLines(tagIdx, lines[lines.length - 1]?.idx || tagSourceIdx + 1, fixCount - lines.length);\n      };\n\n      const line = lines[lines.length - 1]?.number || tg.source[tagSourceIdx].number;\n      utils.reportJSDoc(\n        `Expected ${fixCount} line${fixCount === 1 ? '' : 's'} between tags but found ${lines.length}`,\n        {\n          line,\n        },\n        fixer,\n      );\n\n      return true;\n    }\n\n    return false;\n  });\n\n  if (typeof startLines === 'number') {\n    if (!jsdoc.tags.length) {\n      return;\n    }\n\n    const {\n      description,\n      lastDescriptionLine,\n    } = utils.getDescription();\n    if (!(/\\S/u).test(description)) {\n      return;\n    }\n\n    const trailingLines = description.match(/\\n+$/u)?.[0]?.length;\n    const trailingDiff = (trailingLines ?? 0) - startLines;\n    if (trailingDiff > 0) {\n      utils.reportJSDoc(\n        `Expected only ${startLines} line after block description`,\n        {\n          line: lastDescriptionLine - trailingDiff,\n        },\n        () => {\n          utils.setBlockDescription((info, seedTokens, descLines) => {\n            return descLines.slice(0, -trailingDiff).map((desc) => {\n              return {\n                number: 0,\n                source: '',\n                tokens: seedTokens({\n                  ...info,\n                  description: desc,\n                  postDelimiter: desc.trim() ? info.postDelimiter : '',\n                }),\n              };\n            });\n          });\n        },\n      );\n    } else if (trailingDiff < 0) {\n      utils.reportJSDoc(\n        `Expected ${startLines} lines after block description`,\n        {\n          line: lastDescriptionLine,\n        },\n        () => {\n          utils.setBlockDescription((info, seedTokens, descLines) => {\n            return [\n              ...descLines,\n              ...Array.from({\n                length: -trailingDiff,\n              }, () => {\n                return '';\n              }),\n            ].map((desc) => {\n              return {\n                number: 0,\n                source: '',\n                tokens: seedTokens({\n                  ...info,\n                  description: desc,\n                  postDelimiter: desc.trim() ? info.postDelimiter : '',\n                }),\n              };\n            });\n          });\n        },\n      );\n    }\n  }\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    docs: {\n      description: 'Enforces lines (or no lines) between tags.',\n      url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/tag-lines.md#repos-sticky-header',\n    },\n    fixable: 'code',\n    schema: [\n      {\n        enum: [\n          'always', 'any', 'never',\n        ],\n        type: 'string',\n      },\n      {\n        additionalProperties: false,\n        properties: {\n          applyToEndTag: {\n            type: 'boolean',\n          },\n          count: {\n            type: 'integer',\n          },\n          endLines: {\n            anyOf: [\n              {\n                type: 'integer',\n              },\n              {\n                type: 'null',\n              },\n            ],\n          },\n          startLines: {\n            anyOf: [\n              {\n                type: 'integer',\n              },\n              {\n                type: 'null',\n              },\n            ],\n          },\n          tags: {\n            patternProperties: {\n              '.*': {\n                additionalProperties: false,\n                properties: {\n                  count: {\n                    type: 'integer',\n                  },\n                  lines: {\n                    enum: [\n                      'always', 'never', 'any',\n                    ],\n                    type: 'string',\n                  },\n                },\n              },\n            },\n            type: 'object',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"mappings":"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","ignoreList":[]}