{"version":3,"file":"getDefaultTagStructureForMode.cjs","names":["getDefaultTagStructureForMode","mode","isJsdoc","isClosure","isTypescript","isPermissive","isJsdocOrPermissive","isJsdocOrTypescript","isTypescriptOrClosure","isClosureOrPermissive","isJsdocTypescriptOrPermissive","Map","_default","exports","default","module"],"sources":["../src/getDefaultTagStructureForMode.js"],"sourcesContent":["/**\n * @typedef {Map<string, Map<string, (string|boolean)>>} TagStructure\n */\n/**\n * @param {import('./jsdocUtils.js').ParserMode} mode\n * @returns {TagStructure}\n */\nconst getDefaultTagStructureForMode = (mode) => {\n  const isJsdoc = mode === 'jsdoc';\n  const isClosure = mode === 'closure';\n  const isTypescript = mode === 'typescript';\n  const isPermissive = mode === 'permissive';\n\n  const isJsdocOrPermissive = isJsdoc || isPermissive;\n  const isJsdocOrTypescript = isJsdoc || isTypescript;\n  const isTypescriptOrClosure = isTypescript || isClosure;\n  const isClosureOrPermissive = isClosure || isPermissive;\n  const isJsdocTypescriptOrPermissive = isJsdocOrTypescript || isPermissive;\n\n  // Properties:\n  // `namepathRole` - 'namepath-referencing'|'name-defining'|'namepath-defining'|'namepath-or-url-referencing'|'text'|false\n  // `typeAllowed` - boolean\n  // `nameRequired` - boolean\n  // `typeRequired` - boolean\n  // `typeOrNameRequired` - boolean\n\n  // All of `typeAllowed` have a signature with \"type\" except for\n  //  `augments`/`extends` (\"namepath\")\n  //  `param`/`arg`/`argument` (no signature)\n  //  `property`/`prop` (no signature)\n  //  `modifies` (undocumented)\n\n  // None of the `namepathRole: 'namepath-defining'` show as having curly\n  //  brackets for their name/namepath\n\n  // Among `namepath-defining` and `namepath-referencing`, these do not seem\n  //  to allow curly brackets in their doc signature or examples (`modifies`\n  //  references namepaths within its type brackets)\n\n  // Todo: Should support a `tutorialID` type (for `@tutorial` block and\n  //  inline)\n\n  /**\n   * @type {TagStructure}\n   */\n  return new Map([\n    [\n      'alias', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Signature seems to require a \"namepath\" (and no counter-examples)\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        // \"namepath\"\n        [\n          'typeOrNameRequired', true,\n        ],\n      ])),\n    ],\n\n    [\n      'arg', new Map(/** @type {[string, string|boolean][]} */ ([\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        // See `param`\n        [\n          'nameRequired', true,\n        ],\n\n        // Has no formal signature in the docs but shows curly brackets\n        //   in the examples\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n\n    [\n      'argument', new Map(/** @type {[string, string|boolean][]} */ ([\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        // See `param`\n        [\n          'nameRequired', true,\n        ],\n\n        // Has no formal signature in the docs but shows curly brackets\n        //   in the examples\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n\n    [\n      'augments', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Signature seems to require a \"namepath\" (and no counter-examples)\n        [\n          'namepathRole', 'namepath-referencing',\n        ],\n\n        // Does not show curly brackets in either the signature or examples\n        [\n          'typeAllowed', true,\n        ],\n\n        // \"namepath\"\n        [\n          'typeOrNameRequired', true,\n        ],\n      ])),\n    ],\n\n    [\n      'borrows', new Map(/** @type {[string, string|boolean][]} */ ([\n        // `borrows` has a different format, however, so needs special parsing;\n        //   seems to require both, and as \"namepath\"'s\n        [\n          'namepathRole', 'namepath-referencing',\n        ],\n\n        // \"namepath\"\n        [\n          'typeOrNameRequired', true,\n        ],\n      ])),\n    ],\n\n    [\n      'callback', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Seems to require a \"namepath\" in the signature (with no\n        //   counter-examples); TypeScript does not enforce but seems\n        //   problematic as not attached so presumably not useable without it\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        // \"namepath\"\n        [\n          'nameRequired', true,\n        ],\n      ])),\n    ],\n\n    [\n      'class', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Not in use, but should be this value if using to power `empty-tags`\n        [\n          'nameAllowed', true,\n        ],\n\n        // Allows for \"name\"'s in signature, but indicated as optional\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n\n    [\n      'const', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Allows for \"name\"'s in signature, but indicated as optional\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n    [\n      'constant', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Allows for \"name\"'s in signature, but indicated as optional\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n    [\n      'constructor', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Allows for \"name\"'s in signature, but indicated as optional\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n\n    [\n      'constructs', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Allows for \"name\"'s in signature, but indicated as optional\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        [\n          'nameRequired', false,\n        ],\n\n        [\n          'typeAllowed', false,\n        ],\n      ])),\n    ],\n\n    [\n      'define', new Map(/** @type {[string, string|boolean][]} */ ([\n        [\n          'typeRequired', isClosure,\n        ],\n      ])),\n    ],\n\n    [\n      'emits', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Signature seems to require a \"name\" (of an event) and no counter-examples\n        [\n          'namepathRole', 'namepath-referencing',\n        ],\n\n        [\n          'nameRequired', true,\n        ],\n\n        [\n          'typeAllowed', false,\n        ],\n      ])),\n    ],\n\n    [\n      'enum', new Map(/** @type {[string, string|boolean][]} */ ([\n        [\n          'namepathRole', 'name-defining',\n        ],\n        // Has example showing curly brackets but not in doc signature\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n\n    [\n      'event', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Appears to require a \"name\" in its signature, albeit somewhat\n        //  different from other \"name\"'s (including as described\n        //  at https://jsdoc.app/about-namepaths.html )\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        // The doc signature of `event` seems to require a \"name\"\n        [\n          'nameRequired', true,\n        ],\n      ])),\n    ],\n\n    [\n      'exception', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Shows curly brackets in the signature and in the examples\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n\n    // Closure\n    [\n      'export', new Map(/** @type {[string, string|boolean][]} */ ([\n        [\n          'typeAllowed', isClosureOrPermissive,\n        ],\n      ])),\n    ],\n\n    [\n      'exports', new Map(/** @type {[string, string|boolean][]} */ ([\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        [\n          'nameRequired', isJsdoc,\n        ],\n\n        [\n          'typeAllowed', isClosureOrPermissive,\n        ],\n      ])),\n    ],\n\n    [\n      'extends', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Signature seems to require a \"namepath\" (and no counter-examples)\n        [\n          'namepathRole', 'namepath-referencing',\n        ],\n\n        [\n          'nameRequired', isJsdoc,\n        ],\n\n        // Does not show curly brackets in either the signature or examples\n        [\n          'typeAllowed', isTypescriptOrClosure || isPermissive,\n        ],\n\n        // \"namepath\"\n        [\n          'typeOrNameRequired', isTypescriptOrClosure || isPermissive,\n        ],\n      ])),\n    ],\n\n    [\n      'external', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Appears to require a \"name\" in its signature, albeit somewhat\n        //  different from other \"name\"'s (including as described\n        //  at https://jsdoc.app/about-namepaths.html )\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        // \"name\" (and a special syntax for the `external` name)\n        [\n          'nameRequired', true,\n        ],\n\n        [\n          'typeAllowed', false,\n        ],\n      ])),\n    ],\n\n    [\n      'fires', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Signature seems to require a \"name\" (of an event) and no\n        //  counter-examples\n        [\n          'namepathRole', 'namepath-referencing',\n        ],\n\n        [\n          'nameRequired', true,\n        ],\n\n        [\n          'typeAllowed', false,\n        ],\n      ])),\n    ],\n\n    [\n      'func', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Allows for \"name\"'s in signature, but indicated as optional\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n      ])),\n    ],\n    [\n      'function', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Allows for \"name\"'s in signature, but indicated as optional\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        [\n          'nameRequired', false,\n        ],\n\n        [\n          'typeAllowed', false,\n        ],\n      ])),\n    ],\n\n    [\n      'host', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Appears to require a \"name\" in its signature, albeit somewhat\n        //  different from other \"name\"'s (including as described\n        //  at https://jsdoc.app/about-namepaths.html )\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        // See `external`\n        [\n          'nameRequired', true,\n        ],\n\n        [\n          'typeAllowed', false,\n        ],\n      ])),\n    ],\n\n    [\n      'implements', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Shows curly brackets in the doc signature and examples\n        // \"typeExpression\"\n        [\n          'typeRequired', true,\n        ],\n      ])),\n    ],\n\n    [\n      'interface', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Not in use, but should be this value if using to power `empty-tags`\n        [\n          'nameAllowed', isClosure,\n        ],\n\n        // Allows for \"name\" in signature, but indicates as optional\n        [\n          'namepathRole',\n          isJsdocTypescriptOrPermissive ? 'namepath-defining' : false,\n        ],\n\n        [\n          'typeAllowed', false,\n        ],\n      ])),\n    ],\n\n    [\n      'internal', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Not in use, but should be this value if using to power `empty-tags`\n        [\n          'nameAllowed', false,\n        ],\n        // https://www.typescriptlang.org/tsconfig/#stripInternal\n        [\n          'namepathRole', false,\n        ],\n      ])),\n    ],\n\n    [\n      'lends', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Signature seems to require a \"namepath\" (and no counter-examples)\n        [\n          'namepathRole', 'namepath-referencing',\n        ],\n\n        // \"namepath\"\n        [\n          'typeOrNameRequired', true,\n        ],\n      ])),\n    ],\n\n    [\n      'link', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Signature seems to require a namepath OR URL and might be checked as such.\n        [\n          'namepathRole', 'namepath-or-url-referencing',\n        ],\n\n      ])),\n    ],\n\n    [\n      'linkcode', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Synonym for \"link\"\n        // Signature seems to require a namepath OR URL and might be checked as such.\n        [\n          'namepathRole', 'namepath-or-url-referencing',\n        ],\n      ])),\n    ],\n\n    [\n      'linkplain', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Synonym for \"link\"\n        // Signature seems to require a namepath OR URL and might be checked as such.\n        [\n          'namepathRole', 'namepath-or-url-referencing',\n        ],\n      ])),\n    ],\n\n    [\n      'listens', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Signature seems to require a \"name\" (of an event) and no\n        //  counter-examples\n        [\n          'namepathRole', 'namepath-referencing',\n        ],\n\n        [\n          'nameRequired', true,\n        ],\n\n        [\n          'typeAllowed', false,\n        ],\n      ])),\n    ],\n\n    [\n      'member', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Allows for \"name\"'s in signature, but indicated as optional\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        // Has example showing curly brackets but not in doc signature\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n\n    [\n      'memberof!', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Signature seems to require a \"namepath\" (and no counter-examples),\n        //  though it allows an incomplete namepath ending with connecting symbol\n        [\n          'namepathRole', 'namepath-referencing',\n        ],\n\n        // \"namepath\"\n        [\n          'typeOrNameRequired', true,\n        ],\n      ])),\n    ],\n    [\n      'memberof', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Signature seems to require a \"namepath\" (and no counter-examples),\n        //  though it allows an incomplete namepath ending with connecting symbol\n        [\n          'namepathRole', 'namepath-referencing',\n        ],\n\n        // \"namepath\"\n        [\n          'typeOrNameRequired', true,\n        ],\n      ])),\n    ],\n\n    [\n      'method', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Allows for \"name\"'s in signature, but indicated as optional\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n      ])),\n    ],\n    [\n      'mixes', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Signature seems to require a \"OtherObjectPath\" with no\n        //   counter-examples\n        [\n          'namepathRole', 'namepath-referencing',\n        ],\n\n        // \"OtherObjectPath\"\n        [\n          'typeOrNameRequired', true,\n        ],\n      ])),\n    ],\n\n    [\n      'mixin', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Allows for \"name\"'s in signature, but indicated as optional\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        [\n          'nameRequired', false,\n        ],\n\n        [\n          'typeAllowed', false,\n        ],\n      ])),\n    ],\n\n    [\n      'modifies', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Has no documentation, but test example has curly brackets, and\n        //  \"name\" would be suggested rather than \"namepath\" based on example;\n        //  not sure if name is required\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n\n    [\n      'module', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Optional \"name\" and no curly brackets\n        //  this block impacts `no-undefined-types` and `valid-types` (search for\n        //  \"isNameOrNamepathDefiningTag|tagMightHaveNameOrNamepath|tagMightHaveEitherTypeOrNamePosition\")\n        [\n          'namepathRole', isJsdoc ? 'namepath-defining' : 'text',\n        ],\n\n        // Shows the signature with curly brackets but not in the example\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n\n    [\n      'name', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Seems to require a \"namepath\" in the signature (with no\n        //   counter-examples)\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        // \"namepath\"\n        [\n          'nameRequired', true,\n        ],\n\n        // \"namepath\"\n        [\n          'typeOrNameRequired', true,\n        ],\n      ])),\n    ],\n\n    [\n      'namespace', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Allows for \"name\"'s in signature, but indicated as optional\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        // Shows the signature with curly brackets but not in the example\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n    [\n      'package', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Shows the signature with curly brackets but not in the example\n        // \"typeExpression\"\n        [\n          'typeAllowed', isClosureOrPermissive,\n        ],\n      ])),\n    ],\n\n    [\n      'param', new Map(/** @type {[string, string|boolean][]} */ ([\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        // Though no signature provided requiring, per\n        //  https://jsdoc.app/tags-param.html:\n        // \"The @param tag requires you to specify the name of the parameter you\n        //  are documenting.\"\n        [\n          'nameRequired', true,\n        ],\n\n        // Has no formal signature in the docs but shows curly brackets\n        //   in the examples\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n\n    [\n      'private', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Shows the signature with curly brackets but not in the example\n        // \"typeExpression\"\n        [\n          'typeAllowed', isClosureOrPermissive,\n        ],\n      ])),\n    ],\n\n    [\n      'prop', new Map(/** @type {[string, string|boolean][]} */ ([\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        // See `property`\n        [\n          'nameRequired', true,\n        ],\n\n        // Has no formal signature in the docs but shows curly brackets\n        //   in the examples\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n\n    [\n      'property', new Map(/** @type {[string, string|boolean][]} */ ([\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        // No docs indicate required, but since parallel to `param`, we treat as\n        //   such:\n        [\n          'nameRequired', true,\n        ],\n\n        // Has no formal signature in the docs but shows curly brackets\n        //   in the examples\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n\n    [\n      'protected', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Shows the signature with curly brackets but not in the example\n        // \"typeExpression\"\n        [\n          'typeAllowed', isClosureOrPermissive,\n        ],\n      ])),\n    ],\n\n    [\n      'public', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Does not show a signature nor show curly brackets in the example\n        [\n          'typeAllowed', isClosureOrPermissive,\n        ],\n      ])),\n    ],\n\n    [\n      'requires', new Map(/** @type {[string, string|boolean][]} */ ([\n        // <someModuleName>\n        [\n          'namepathRole', 'namepath-referencing',\n        ],\n\n        [\n          'nameRequired', true,\n        ],\n\n        [\n          'typeAllowed', false,\n        ],\n      ])),\n    ],\n\n    [\n      'return', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Shows curly brackets in the signature and in the examples\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n    [\n      'returns', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Shows curly brackets in the signature and in the examples\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n\n    [\n      'satisfies', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Shows curly brackets in the doc signature and examples\n        [\n          'typeRequired', true,\n        ],\n      ])),\n    ],\n\n    [\n      'see', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Signature allows for \"namepath\" or text, so user must configure to\n        //  'namepath-referencing' to enforce checks\n        [\n          'namepathRole', 'text',\n        ],\n      ])),\n    ],\n\n    [\n      'static', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Does not show a signature nor show curly brackets in the example\n        [\n          'typeAllowed', isClosureOrPermissive,\n        ],\n      ])),\n    ],\n\n    [\n      'suppress', new Map(/** @type {[string, string|boolean][]} */ ([\n        [\n          'namepathRole', !isClosure,\n        ],\n        [\n          'typeRequired', isClosure,\n        ],\n      ])),\n    ],\n\n    [\n      'template', new Map(/** @type {[string, string|boolean][]} */ ([\n        [\n          'namepathRole', isJsdoc ? 'text' : 'namepath-referencing',\n        ],\n\n        [\n          'nameRequired', !isJsdoc,\n        ],\n\n        // Though defines `namepathRole: 'namepath-defining'` in a sense, it is\n        //   not parseable in the same way for template (e.g., allowing commas),\n        //   so not adding\n        [\n          'typeAllowed', isTypescriptOrClosure || isPermissive,\n        ],\n      ])),\n    ],\n\n    [\n      'this', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Signature seems to require a \"namepath\" (and no counter-examples)\n        // Not used with namepath in Closure/TypeScript, however\n        [\n          'namepathRole', isJsdoc ? 'namepath-referencing' : false,\n        ],\n\n        // namepath\n        [\n          'typeOrNameRequired', isJsdoc,\n        ],\n\n        [\n          'typeRequired', isTypescriptOrClosure,\n        ],\n      ])),\n    ],\n\n    [\n      'throws', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Shows curly brackets in the signature and in the examples\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n\n    [\n      'tutorial', new Map(/** @type {[string, string|boolean][]} */ ([\n        // (a tutorial ID)\n        [\n          'nameRequired', true,\n        ],\n\n        [\n          'typeAllowed', false,\n        ],\n      ])),\n    ],\n\n    [\n      'type', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Shows curly brackets in the doc signature and examples\n        // \"typeName\"\n        [\n          'typeRequired', true,\n        ],\n      ])),\n    ],\n\n    [\n      'typedef', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Seems to require a \"namepath\" in the signature (with no\n        //  counter-examples)\n        [\n          'namepathRole', 'name-defining',\n        ],\n\n        // TypeScript may allow it to be dropped if followed by @property or @member;\n        //   also shown as missing in Closure\n        // \"namepath\"\n        [\n          'nameRequired', isJsdocOrPermissive,\n        ],\n\n        // Is not `typeRequired` for TypeScript because it gives an error:\n        // JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags.\n\n        // Has example showing curly brackets but not in doc signature\n        [\n          'typeAllowed', true,\n        ],\n\n        // TypeScript may allow it to be dropped if followed by @property or @member\n        // \"namepath\"\n        [\n          'typeOrNameRequired', !isTypescript,\n        ],\n      ])),\n    ],\n\n    [\n      'var', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Allows for \"name\"'s in signature, but indicated as optional\n        [\n          'namepathRole', 'namepath-defining',\n        ],\n\n        // Has example showing curly brackets but not in doc signature\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n\n    [\n      'yield', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Shows curly brackets in the signature and in the examples\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n    [\n      'yields', new Map(/** @type {[string, string|boolean][]} */ ([\n        // Shows curly brackets in the signature and in the examples\n        [\n          'typeAllowed', true,\n        ],\n      ])),\n    ],\n  ]);\n};\n\nexport default getDefaultTagStructureForMode;\n"],"mappings":"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","ignoreList":[]}