{"version":3,"file":"requireProperty.cjs","names":["_iterateJsdoc","_interopRequireDefault","require","e","__esModule","default","_default","exports","iterateJsdoc","context","utils","propertyAssociatedTags","filterTags","tag","includes","length","targetTagName","getPreferredTagName","tagName","report","loc","end","column","line","start","message","hasATag","propertyAssociatedTag","type","reportJSDoc","addTag","iterateAllJsdocs","meta","docs","description","url","fixable","module"],"sources":["../../src/rules/requireProperty.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc.js';\n\nexport default iterateJsdoc(({\n  context,\n  utils,\n}) => {\n  const propertyAssociatedTags = utils.filterTags(({\n    tag,\n  }) => {\n    return [\n      'namespace', 'typedef',\n    ].includes(tag);\n  });\n  if (!propertyAssociatedTags.length) {\n    return;\n  }\n\n  const targetTagName = /** @type {string} */ (utils.getPreferredTagName({\n    tagName: 'property',\n  }));\n\n  if (!targetTagName) {\n    context.report({\n      loc: {\n        end: {\n          column: 1,\n          line: 1,\n        },\n        start: {\n          column: 1,\n          line: 1,\n        },\n      },\n      message: 'Cannot prohibit `@property` in the `tagNamePreference` setting while using the `require-property` rule.',\n    });\n    return;\n  }\n\n  if (utils.hasATag([\n    targetTagName,\n  ])) {\n    return;\n  }\n\n  for (const propertyAssociatedTag of propertyAssociatedTags) {\n    if (![\n      'object', 'Object', 'PlainObject',\n    ].includes(propertyAssociatedTag.type)) {\n      continue;\n    }\n\n    utils.reportJSDoc(`Missing JSDoc @${targetTagName}.`, null, () => {\n      utils.addTag(targetTagName);\n    });\n  }\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    docs: {\n      description: 'Requires that all `@typedef` and `@namespace` tags have `@property` when their type is a plain `object`, `Object`, or `PlainObject`.',\n      url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property.md#repos-sticky-header',\n    },\n    fixable: 'code',\n    type: 'suggestion',\n  },\n});\n"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA8C,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAE/B,IAAAG,qBAAY,EAAC,CAAC;EAC3BC,OAAO;EACPC;AACF,CAAC,KAAK;EACJ,MAAMC,sBAAsB,GAAGD,KAAK,CAACE,UAAU,CAAC,CAAC;IAC/CC;EACF,CAAC,KAAK;IACJ,OAAO,CACL,WAAW,EAAE,SAAS,CACvB,CAACC,QAAQ,CAACD,GAAG,CAAC;EACjB,CAAC,CAAC;EACF,IAAI,CAACF,sBAAsB,CAACI,MAAM,EAAE;IAClC;EACF;EAEA,MAAMC,aAAa,GAAG,qBAAuBN,KAAK,CAACO,mBAAmB,CAAC;IACrEC,OAAO,EAAE;EACX,CAAC,CAAE;EAEH,IAAI,CAACF,aAAa,EAAE;IAClBP,OAAO,CAACU,MAAM,CAAC;MACbC,GAAG,EAAE;QACHC,GAAG,EAAE;UACHC,MAAM,EAAE,CAAC;UACTC,IAAI,EAAE;QACR,CAAC;QACDC,KAAK,EAAE;UACLF,MAAM,EAAE,CAAC;UACTC,IAAI,EAAE;QACR;MACF,CAAC;MACDE,OAAO,EAAE;IACX,CAAC,CAAC;IACF;EACF;EAEA,IAAIf,KAAK,CAACgB,OAAO,CAAC,CAChBV,aAAa,CACd,CAAC,EAAE;IACF;EACF;EAEA,KAAK,MAAMW,qBAAqB,IAAIhB,sBAAsB,EAAE;IAC1D,IAAI,CAAC,CACH,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAClC,CAACG,QAAQ,CAACa,qBAAqB,CAACC,IAAI,CAAC,EAAE;MACtC;IACF;IAEAlB,KAAK,CAACmB,WAAW,CAAC,kBAAkBb,aAAa,GAAG,EAAE,IAAI,EAAE,MAAM;MAChEN,KAAK,CAACoB,MAAM,CAACd,aAAa,CAAC;IAC7B,CAAC,CAAC;EACJ;AACF,CAAC,EAAE;EACDe,gBAAgB,EAAE,IAAI;EACtBC,IAAI,EAAE;IACJC,IAAI,EAAE;MACJC,WAAW,EAAE,sIAAsI;MACnJC,GAAG,EAAE;IACP,CAAC;IACDC,OAAO,EAAE,MAAM;IACfR,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAAAS,MAAA,CAAA9B,OAAA,GAAAA,OAAA,CAAAF,OAAA","ignoreList":[]}