{"version":3,"file":"typeFormatting.cjs","names":["iterateJsdoc","tryParseType","parseType","rewireByParsedType","traverse","stringify"],"sources":["../../src/rules/typeFormatting.js"],"sourcesContent":["import iterateJsdoc from '../iterateJsdoc.js';\nimport {\n  rewireByParsedType,\n} from '../jsdocUtils.js';\nimport {\n  parse as parseType,\n  stringify,\n  traverse,\n  tryParse as tryParseType,\n} from '@es-joy/jsdoccomment';\n\nconst digitRegex = (/^(\\d+(\\.\\d*)?|\\.\\d+)([eE][\\-+]?\\d+)?$/v);\n\nexport default iterateJsdoc(({\n  context,\n  indent,\n  jsdoc,\n  settings,\n  utils,\n// eslint-disable-next-line complexity -- Todo\n}) => {\n  const {\n    arrayBrackets = 'square',\n    arrowFunctionPostReturnMarkerSpacing = ' ',\n    arrowFunctionPreReturnMarkerSpacing = ' ',\n    enableFixer = true,\n    functionOrClassParameterSpacing = ' ',\n    functionOrClassPostGenericSpacing = '',\n    functionOrClassPostReturnMarkerSpacing = ' ',\n    functionOrClassPreReturnMarkerSpacing = '',\n    functionOrClassTypeParameterSpacing = ' ',\n    genericAndTupleElementSpacing = ' ',\n    genericDot = false,\n    keyValuePostColonSpacing = ' ',\n    keyValuePostKeySpacing = '',\n    keyValuePostOptionalSpacing = '',\n    keyValuePostVariadicSpacing = '',\n    methodQuotes = 'double',\n    objectFieldIndent = '',\n    objectFieldQuote = null,\n    objectFieldSeparator = 'comma',\n    objectFieldSeparatorOptionalLinebreak = true,\n    objectFieldSeparatorTrailingPunctuation = false,\n    objectTypeBracketSpacing = '',\n    parameterDefaultValueSpacing = ' ',\n    postMethodNameSpacing = '',\n    postNewSpacing = ' ',\n    // propertyQuotes = null,\n    separatorForSingleObjectField = false,\n    stringQuotes = 'double',\n    trailingPunctuationMultilineOnly = false,\n    typeBracketSpacing = '',\n    unionSpacing = ' ',\n  } = context.options[0] || {};\n\n  const {\n    mode,\n  } = settings;\n\n  /**\n   * @param {import('@es-joy/jsdoccomment').JsdocTagWithInline} tag\n   */\n  const checkTypeFormats = (tag) => {\n    const potentialType = tag.type;\n    let parsedType;\n    try {\n      parsedType = mode === 'permissive' ?\n        tryParseType(/** @type {string} */ (potentialType)) :\n        parseType(/** @type {string} */ (potentialType), mode);\n    } catch {\n      return;\n    }\n\n    const fix = () => {\n      rewireByParsedType(jsdoc, tag, parsedType, indent, typeBracketSpacing);\n    };\n\n    /** @type {string[]} */\n    const errorMessages = [];\n\n    if (typeBracketSpacing && (!tag.type.startsWith(typeBracketSpacing) || !tag.type.endsWith(typeBracketSpacing))) {\n      errorMessages.push(`Must have initial and final \"${typeBracketSpacing}\" spacing`);\n    } else if (!typeBracketSpacing && ((/^\\s/v).test(tag.type) || (/\\s$/v).test(tag.type))) {\n      errorMessages.push('Must have no initial spacing');\n    }\n\n    // eslint-disable-next-line complexity -- Todo\n    traverse(parsedType, (nde) => {\n      let errorMessage = '';\n\n      /**\n       * @param {Partial<import('jsdoc-type-pratt-parser').FunctionResult['meta']> & {\n       *   postNewSpacing?: string,\n       *   postMethodNameSpacing?: string\n       * }} meta\n       * @returns {Required<import('jsdoc-type-pratt-parser').FunctionResult['meta']> & {\n       *   postNewSpacing?: string,\n       *   postMethodNameSpacing?: string\n       * }}\n       */\n      const conditionalAdds = (meta) => {\n        const typNode =\n        /**\n         * @type {import('jsdoc-type-pratt-parser').FunctionResult|\n         *   import('jsdoc-type-pratt-parser').CallSignatureResult|\n         *   import('jsdoc-type-pratt-parser').ComputedMethodResult|\n         *   import('jsdoc-type-pratt-parser').ConstructorSignatureResult|\n         *   import('jsdoc-type-pratt-parser').MethodSignatureResult\n         * }\n         */ (nde);\n\n        /**\n         * @type {Required<import('jsdoc-type-pratt-parser').FunctionResult['meta']> & {\n         *   postNewSpacing?: string,\n         *   postMethodNameSpacing?: string\n         * }}\n         */\n        const newMeta = {\n          parameterSpacing: meta.parameterSpacing ?? typNode.meta?.parameterSpacing ?? ' ',\n          postGenericSpacing: meta.postGenericSpacing ?? typNode.meta?.postGenericSpacing ?? '',\n          postReturnMarkerSpacing: meta.postReturnMarkerSpacing ?? typNode.meta?.postReturnMarkerSpacing ?? ' ',\n          preReturnMarkerSpacing: meta.preReturnMarkerSpacing ?? typNode.meta?.preReturnMarkerSpacing ?? '',\n          typeParameterSpacing: meta.typeParameterSpacing ?? typNode.meta?.typeParameterSpacing ?? ' ',\n        };\n\n        if (typNode.type === 'JsdocTypeConstructorSignature') {\n          newMeta.postNewSpacing = meta.postNewSpacing;\n        }\n\n        if (typNode.type === 'JsdocTypeMethodSignature') {\n          newMeta.postMethodNameSpacing = meta.postMethodNameSpacing ?? typNode.meta?.postMethodNameSpacing ?? '';\n        }\n\n        return newMeta;\n      };\n\n      switch (nde.type) {\n        case 'JsdocTypeConstructorSignature': {\n          const typeNode = /** @type {import('jsdoc-type-pratt-parser').ConstructorSignatureResult} */ (nde);\n          /* c8 ignore next -- Guard */\n          if ((typeNode.meta?.postNewSpacing ?? ' ') !== postNewSpacing) {\n            typeNode.meta =\n              /**\n               * @type {Required<import('jsdoc-type-pratt-parser').FunctionResult['meta']> & {\n               *   postNewSpacing: string,\n               * }}\n               */ (conditionalAdds({\n                postNewSpacing,\n              }));\n            errorMessage = `Post-\\`new\\` spacing should be \"${postNewSpacing}\"`;\n            break;\n          }\n        }\n\n        case 'JsdocTypeFunction': {\n          const typeNode =\n            /**\n             * @type {import('jsdoc-type-pratt-parser').FunctionResult}\n             */ nde;\n          if ('arrow' in typeNode && typeNode.arrow) {\n            /* c8 ignore next -- Guard */\n            if ((typeNode.meta?.postReturnMarkerSpacing ?? ' ') !== arrowFunctionPostReturnMarkerSpacing) {\n              typeNode.meta =\n              /**\n               * @type {Required<import('jsdoc-type-pratt-parser').FunctionResult['meta']> & {\n               *   postNewSpacing: string,\n               * }}\n               */ (conditionalAdds({\n                  postReturnMarkerSpacing: arrowFunctionPostReturnMarkerSpacing,\n                  /* c8 ignore next -- Guard */\n                  preReturnMarkerSpacing: typeNode.meta?.preReturnMarkerSpacing ?? ' ',\n                }));\n              errorMessage = `Post-return-marker spacing should be \"${arrowFunctionPostReturnMarkerSpacing}\"`;\n              break;\n            /* c8 ignore next -- Guard */\n            } else if ((typeNode.meta?.preReturnMarkerSpacing ?? ' ') !== arrowFunctionPreReturnMarkerSpacing) {\n              typeNode.meta =\n              /**\n               * @type {Required<import('jsdoc-type-pratt-parser').FunctionResult['meta']> & {\n               *   postNewSpacing: string,\n               * }}\n               */ (conditionalAdds({\n                  /* c8 ignore next -- Guard */\n                  postReturnMarkerSpacing: typeNode.meta?.postReturnMarkerSpacing ?? ' ',\n                  preReturnMarkerSpacing: arrowFunctionPreReturnMarkerSpacing,\n                }));\n              errorMessage = `Pre-return-marker spacing should be \"${arrowFunctionPreReturnMarkerSpacing}\"`;\n              break;\n            }\n\n            break;\n          }\n        }\n\n        case 'JsdocTypeCallSignature':\n        case 'JsdocTypeComputedMethod':\n        case 'JsdocTypeMethodSignature': {\n          const typeNode =\n            /**\n             * @type {import('jsdoc-type-pratt-parser').FunctionResult|\n             *   import('jsdoc-type-pratt-parser').CallSignatureResult|\n             *   import('jsdoc-type-pratt-parser').ComputedMethodResult|\n             *   import('jsdoc-type-pratt-parser').ConstructorSignatureResult|\n             *   import('jsdoc-type-pratt-parser').MethodSignatureResult\n             * }\n             */ (nde);\n          if (typeNode.type === 'JsdocTypeMethodSignature' &&\n            (typeNode.meta?.postMethodNameSpacing ?? '') !== postMethodNameSpacing\n          ) {\n            typeNode.meta = {\n              quote: typeNode.meta.quote,\n              ...conditionalAdds({\n                postMethodNameSpacing,\n              }),\n            };\n            errorMessage = `Post-method-name spacing should be \"${postMethodNameSpacing}\"`;\n            break;\n          } else if (typeNode.type === 'JsdocTypeMethodSignature' &&\n            typeNode.meta.quote !== undefined &&\n            typeNode.meta.quote !== methodQuotes\n          ) {\n            typeNode.meta = {\n              ...conditionalAdds({\n                postMethodNameSpacing: typeNode.meta.postMethodNameSpacing ?? '',\n              }),\n              quote: methodQuotes,\n            };\n            errorMessage = `Method quoting style should be \"${methodQuotes}\"`;\n            break;\n          }\n\n          if ((typeNode.meta?.parameterSpacing ?? ' ') !== functionOrClassParameterSpacing) {\n            typeNode.meta = conditionalAdds({\n              parameterSpacing: functionOrClassParameterSpacing,\n            });\n            errorMessage = `Parameter spacing should be \"${functionOrClassParameterSpacing}\"`;\n          } else if ((typeNode.meta?.postGenericSpacing ?? '') !== functionOrClassPostGenericSpacing) {\n            typeNode.meta = conditionalAdds({\n              postGenericSpacing: functionOrClassPostGenericSpacing,\n            });\n            errorMessage = `Post-generic spacing should be \"${functionOrClassPostGenericSpacing}\"`;\n          } else if ((typeNode.meta?.postReturnMarkerSpacing ?? ' ') !== functionOrClassPostReturnMarkerSpacing) {\n            typeNode.meta = conditionalAdds({\n              postReturnMarkerSpacing: functionOrClassPostReturnMarkerSpacing,\n            });\n            errorMessage = `Post-return-marker spacing should be \"${functionOrClassPostReturnMarkerSpacing}\"`;\n          } else if ((typeNode.meta?.preReturnMarkerSpacing ?? '') !== functionOrClassPreReturnMarkerSpacing) {\n            typeNode.meta = conditionalAdds({\n              preReturnMarkerSpacing: functionOrClassPreReturnMarkerSpacing,\n            });\n            errorMessage = `Pre-return-marker spacing should be \"${functionOrClassPreReturnMarkerSpacing}\"`;\n          } else if ((typeNode.meta?.typeParameterSpacing ?? ' ') !== functionOrClassTypeParameterSpacing) {\n            typeNode.meta = conditionalAdds({\n              typeParameterSpacing: functionOrClassTypeParameterSpacing,\n            });\n            errorMessage = `Type parameter spacing should be \"${functionOrClassTypeParameterSpacing}\"`;\n          }\n\n          break;\n        }\n\n        case 'JsdocTypeGeneric': {\n          const typeNode = /** @type {import('jsdoc-type-pratt-parser').GenericResult} */ (nde);\n          if ('value' in typeNode.left && typeNode.left.value === 'Array') {\n            if (typeNode.meta.brackets !== arrayBrackets) {\n              typeNode.meta.brackets = arrayBrackets;\n              errorMessage = `Array bracket style should be ${arrayBrackets}`;\n            }\n          } else if (typeNode.meta.dot !== genericDot) {\n            typeNode.meta.dot = genericDot;\n            errorMessage = `Dot usage should be ${genericDot}`;\n          } else if ((typeNode.meta.elementSpacing ?? ' ') !== genericAndTupleElementSpacing) {\n            typeNode.meta.elementSpacing = genericAndTupleElementSpacing;\n            errorMessage = `Element spacing should be \"${genericAndTupleElementSpacing}\"`;\n          }\n\n          break;\n        }\n\n        case 'JsdocTypeKeyValue': {\n          const typeNode = /** @type {import('jsdoc-type-pratt-parser').KeyValueResult} */ (nde);\n          /* c8 ignore next -- Guard */\n          if ((typeNode.meta?.postKeySpacing ?? '') !== keyValuePostKeySpacing) {\n            typeNode.meta = {\n              /* c8 ignore next -- Guard */\n              postColonSpacing: typeNode.meta?.postColonSpacing ?? ' ',\n              postKeySpacing: keyValuePostKeySpacing,\n              /* c8 ignore next 2 -- Guard */\n              postOptionalSpacing: typeNode.meta?.postOptionalSpacing ?? '',\n              postVariadicSpacing: typeNode.meta?.postVariadicSpacing ?? '',\n            };\n            errorMessage = `Post key spacing should be \"${keyValuePostKeySpacing}\"`;\n          /* c8 ignore next -- Guard */\n          } else if ((typeNode.meta?.postColonSpacing ?? ' ') !== keyValuePostColonSpacing) {\n            typeNode.meta = {\n              postColonSpacing: keyValuePostColonSpacing,\n              /* c8 ignore next 3 -- Guard */\n              postKeySpacing: typeNode.meta?.postKeySpacing ?? '',\n              postOptionalSpacing: typeNode.meta?.postOptionalSpacing ?? '',\n              postVariadicSpacing: typeNode.meta?.postVariadicSpacing ?? '',\n            };\n            errorMessage = `Post colon spacing should be \"${keyValuePostColonSpacing}\"`;\n          /* c8 ignore next -- Guard */\n          } else if ((typeNode.meta?.postOptionalSpacing ?? '') !== keyValuePostOptionalSpacing) {\n            typeNode.meta = {\n              /* c8 ignore next 2 -- Guard */\n              postColonSpacing: typeNode.meta?.postColonSpacing ?? ' ',\n              postKeySpacing: typeNode.meta?.postKeySpacing ?? '',\n              postOptionalSpacing: keyValuePostOptionalSpacing,\n              /* c8 ignore next -- Guard */\n              postVariadicSpacing: typeNode.meta?.postVariadicSpacing ?? '',\n            };\n            errorMessage = `Post optional (\\`?\\`) spacing should be \"${keyValuePostOptionalSpacing}\"`;\n          /* c8 ignore next -- Guard */\n          } else if (typeNode.variadic && (typeNode.meta?.postVariadicSpacing ?? '') !== keyValuePostVariadicSpacing) {\n            typeNode.meta = {\n              /* c8 ignore next 3 -- Guard */\n              postColonSpacing: typeNode.meta?.postColonSpacing ?? ' ',\n              postKeySpacing: typeNode.meta?.postKeySpacing ?? '',\n              postOptionalSpacing: typeNode.meta?.postOptionalSpacing ?? '',\n              postVariadicSpacing: keyValuePostVariadicSpacing,\n            };\n            errorMessage = `Post variadic (\\`...\\`) spacing should be \"${keyValuePostVariadicSpacing}\"`;\n          }\n\n          break;\n        }\n\n        case 'JsdocTypeObject': {\n          const typeNode = /** @type {import('jsdoc-type-pratt-parser').ObjectResult} */ (nde);\n          /* c8 ignore next -- Guard */\n          const separator = typeNode.meta.separator ?? 'comma';\n\n          if (\n            (separator !== objectFieldSeparator &&\n              (!objectFieldSeparatorOptionalLinebreak ||\n                !(objectFieldSeparator.endsWith('-linebreak') &&\n                  objectFieldSeparator.startsWith(separator)))) ||\n            (typeNode.meta.separatorForSingleObjectField ?? false) !== separatorForSingleObjectField ||\n            ((typeNode.meta.propertyIndent ?? '') !== objectFieldIndent &&\n              separator.endsWith('-linebreak')) ||\n            /* c8 ignore next 5 -- jsdoc-type-pratt-parser doesn't encode as should */\n            ((typeNode.meta.trailingPunctuation ?? false) !== objectFieldSeparatorTrailingPunctuation &&\n              ((typeNode.meta.trailingPunctuation && (!trailingPunctuationMultilineOnly ||\n                !stringify(typeNode).includes('\\n'))) ||\n              (!typeNode.meta.trailingPunctuation && (!trailingPunctuationMultilineOnly ||\n                stringify(typeNode).includes('\\n')))))\n          ) {\n            typeNode.meta.separator = objectFieldSeparatorOptionalLinebreak && !separator.endsWith('and-linebreak') ?\n              objectFieldSeparator.replace(/-and-linebreak$/v, '') :\n              objectFieldSeparator;\n            typeNode.meta.separatorForSingleObjectField = separatorForSingleObjectField;\n            typeNode.meta.propertyIndent = objectFieldIndent;\n            typeNode.meta.trailingPunctuation = objectFieldSeparatorTrailingPunctuation;\n            errorMessage = `Inconsistent ${objectFieldSeparator} separator usage`;\n          } else if ((typeNode.meta.bracketSpacing ?? '') !== objectTypeBracketSpacing) {\n            typeNode.meta.bracketSpacing = objectTypeBracketSpacing;\n            // This might not be the cause\n            // errorMessage = `Object type bracket spacing should be \"${objectTypeBracketSpacing}\"`;\n          }\n\n          break;\n        }\n\n        case 'JsdocTypeObjectField': {\n          const typeNode = /** @type {import('jsdoc-type-pratt-parser').ObjectFieldResult} */ (nde);\n          if ((objectFieldQuote ||\n            (typeof typeNode.key === 'string' &&\n              (\n                (/^[\\p{ID_Start}$_][\\p{ID_Continue}$\\u200C\\u200D]*$/v).test(typeNode.key) ||\n                digitRegex.test(typeNode.key)\n              )\n            )) &&\n            typeNode.meta.quote !== (objectFieldQuote ?? undefined) &&\n            (typeof typeNode.key !== 'string' ||\n                !digitRegex.test(typeNode.key))\n          ) {\n            typeNode.meta.quote = objectFieldQuote ?? undefined;\n            errorMessage = `Inconsistent object field quotes ${objectFieldQuote}`;\n          } else if ((typeNode.meta?.postKeySpacing ?? '') !== keyValuePostKeySpacing) {\n            typeNode.meta.postKeySpacing = keyValuePostKeySpacing;\n            errorMessage = `Post key spacing should be \"${keyValuePostKeySpacing}\"`;\n          } else if ((typeNode.meta?.postColonSpacing ?? ' ') !== keyValuePostColonSpacing) {\n            typeNode.meta.postColonSpacing = keyValuePostColonSpacing;\n            errorMessage = `Post colon spacing should be \"${keyValuePostColonSpacing}\"`;\n          } else if ((typeNode.meta?.postOptionalSpacing ?? '') !== keyValuePostOptionalSpacing) {\n            typeNode.meta.postOptionalSpacing = keyValuePostOptionalSpacing;\n            errorMessage = `Post optional (\\`?\\`) spacing should be \"${keyValuePostOptionalSpacing}\"`;\n          }\n\n          break;\n        }\n\n        case 'JsdocTypeStringValue': {\n          const typeNode = /** @type {import('jsdoc-type-pratt-parser').StringValueResult} */ (nde);\n          if (typeNode.meta.quote !== stringQuotes) {\n            typeNode.meta.quote = stringQuotes;\n            errorMessage = `Inconsistent ${stringQuotes} string quotes usage`;\n          }\n\n          break;\n        }\n\n        // Only suitable for namepaths (and would need changes); see https://github.com/gajus/eslint-plugin-jsdoc/issues/1524\n        // case 'JsdocTypeProperty': {\n        //   const typeNode = /** @type {import('jsdoc-type-pratt-parser').PropertyResult} */ (nde);\n\n        //   if ((propertyQuotes ||\n        //     (typeof typeNode.value === 'string' && !(/\\s/v).test(typeNode.value))) &&\n        //     typeNode.meta.quote !== (propertyQuotes ?? undefined)\n        //   ) {\n        //     typeNode.meta.quote = propertyQuotes ?? undefined;\n        //     errorMessage = `Inconsistent ${propertyQuotes} property quotes usage`;\n        //   }\n\n        //   break;\n        // }\n\n        case 'JsdocTypeTuple': {\n          const typeNode = /** @type {import('jsdoc-type-pratt-parser').TupleResult} */ (nde);\n          /* c8 ignore next -- Guard */\n          if ((typeNode.meta?.elementSpacing ?? ' ') !== genericAndTupleElementSpacing) {\n            typeNode.meta = {\n              elementSpacing: genericAndTupleElementSpacing,\n            };\n            errorMessage = `Element spacing should be \"${genericAndTupleElementSpacing}\"`;\n          }\n\n          break;\n        }\n\n        case 'JsdocTypeTypeParameter': {\n          const typeNode = /** @type {import('jsdoc-type-pratt-parser').TypeParameterResult} */ (nde);\n          /* c8 ignore next -- Guard */\n          if (typeNode.defaultValue && (typeNode.meta?.defaultValueSpacing ?? ' ') !== parameterDefaultValueSpacing) {\n            typeNode.meta = {\n              defaultValueSpacing: parameterDefaultValueSpacing,\n            };\n            errorMessage = `Default value spacing should be \"${parameterDefaultValueSpacing}\"`;\n          }\n\n          break;\n        }\n\n        case 'JsdocTypeUnion': {\n          const typeNode = /** @type {import('jsdoc-type-pratt-parser').UnionResult} */ (nde);\n          /* c8 ignore next -- Guard */\n          if ((typeNode.meta?.spacing ?? ' ') !== unionSpacing) {\n            typeNode.meta = {\n              spacing: unionSpacing,\n            };\n            errorMessage = `Inconsistent \"${unionSpacing}\" union spacing usage`;\n          }\n\n          break;\n        }\n\n        default:\n          break;\n      }\n\n      if (errorMessage) {\n        errorMessages.push(errorMessage);\n      }\n    });\n\n    const differentResult = tag.type !==\n      typeBracketSpacing + stringify(parsedType) + typeBracketSpacing;\n\n    if (errorMessages.length && differentResult) {\n      for (const errorMessage of errorMessages) {\n        utils.reportJSDoc(\n          errorMessage, tag, enableFixer ? fix : null,\n        );\n      }\n    // Stringification may have been equal previously (and thus no error reported)\n    //   because the stringification doesn't preserve everything\n    } else if (differentResult) {\n      utils.reportJSDoc(\n        'There was an error with type formatting', tag, enableFixer ? fix : null,\n      );\n    }\n  };\n\n  const tags = utils.getPresentTags([\n    'param',\n    'property',\n    'returns',\n    'this',\n    'throws',\n    'type',\n    'typedef',\n    'yields',\n  ]);\n  for (const tag of tags) {\n    if (tag.type) {\n      checkTypeFormats(tag);\n    }\n  }\n}, {\n  iterateAllJsdocs: true,\n  meta: {\n    docs: {\n      description: 'Formats JSDoc type values.',\n      url: 'https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/type-formatting.md#repos-sticky-header',\n    },\n    fixable: 'code',\n    schema: [\n      {\n        additionalProperties: false,\n        properties: {\n          arrayBrackets: {\n            description: 'Determines how array generics are represented. Set to `angle` for the style `Array<type>` or `square` for the style `type[]`. Defaults to \"square\".',\n            enum: [\n              'angle',\n              'square',\n            ],\n            type: 'string',\n          },\n          arrowFunctionPostReturnMarkerSpacing: {\n            description: 'The space character (if any) to use after return markers (`=>`). Defaults to \" \".',\n            type: 'string',\n          },\n          arrowFunctionPreReturnMarkerSpacing: {\n            description: 'The space character (if any) to use before return markers (`=>`). Defaults to \" \".',\n            type: 'string',\n          },\n          enableFixer: {\n            description: 'Whether to enable the fixer. Defaults to `true`.',\n            type: 'boolean',\n          },\n          functionOrClassParameterSpacing: {\n            description: 'The space character (if any) to use between function or class parameters. Defaults to \" \".',\n            type: 'string',\n          },\n          functionOrClassPostGenericSpacing: {\n            description: 'The space character (if any) to use after a generic expression in a function or class. Defaults to \"\".',\n            type: 'string',\n          },\n          functionOrClassPostReturnMarkerSpacing: {\n            description: 'The space character (if any) to use after return markers (`:`). Defaults to \"\".',\n            type: 'string',\n          },\n          functionOrClassPreReturnMarkerSpacing: {\n            description: 'The space character (if any) to use before return markers (`:`). Defaults to \"\".',\n            type: 'string',\n          },\n          functionOrClassTypeParameterSpacing: {\n            description: 'The space character (if any) to use between type parameters in a function or class. Defaults to \" \".',\n            type: 'string',\n          },\n          genericAndTupleElementSpacing: {\n            description: 'The space character (if any) to use between elements in generics and tuples. Defaults to \" \".',\n            type: 'string',\n          },\n          genericDot: {\n            description: 'Boolean value of whether to use a dot before the angled brackets of a generic (e.g., `SomeType.<AnotherType>`). Defaults to `false`.',\n            type: 'boolean',\n          },\n          keyValuePostColonSpacing: {\n            description: 'The amount of spacing (if any) after the colon of a key-value or object-field pair. Defaults to \" \".',\n            type: 'string',\n          },\n          keyValuePostKeySpacing: {\n            description: 'The amount of spacing (if any) immediately after keys in a key-value or object-field pair. Defaults to \"\".',\n            type: 'string',\n          },\n          keyValuePostOptionalSpacing: {\n            description: 'The amount of spacing (if any) after the optional operator (`?`) in a key-value or object-field pair. Defaults to \"\".',\n            type: 'string',\n          },\n          keyValuePostVariadicSpacing: {\n            description: 'The amount of spacing (if any) after a variadic operator (`...`) in a key-value pair. Defaults to \"\".',\n            type: 'string',\n          },\n          methodQuotes: {\n            description: 'The style of quotation mark for surrounding method names when quoted. Defaults to `double`',\n            enum: [\n              'double',\n              'single',\n            ],\n            type: 'string',\n          },\n          objectFieldIndent: {\n            description: `A string indicating the whitespace to be added on each line preceding an\nobject property-value field. Defaults to the empty string.`,\n            type: 'string',\n          },\n          objectFieldQuote: {\n            description: `Whether and how object field properties should be quoted (e.g., \\`{\"a\": string}\\`).\nSet to \\`single\\`, \\`double\\`, or \\`null\\`. Defaults to \\`null\\` (no quotes unless\nrequired due to special characters within the field). Digits will be kept as is,\nregardless of setting (they can either represent a digit or a string digit).`,\n            enum: [\n              'double',\n              'single',\n              null,\n            ],\n          },\n          objectFieldSeparator: {\n            description: `For object properties, specify whether a \"semicolon\", \"comma\", \"linebreak\",\n\"semicolon-and-linebreak\", or \"comma-and-linebreak\" should be used after\neach object property-value pair.\n\nDefaults to \\`\"comma\"\\`.`,\n            enum: [\n              'comma',\n              'comma-and-linebreak',\n              'linebreak',\n              'semicolon',\n              'semicolon-and-linebreak',\n            ],\n            type: 'string',\n          },\n          objectFieldSeparatorOptionalLinebreak: {\n            description: `Whether \\`objectFieldSeparator\\` set to \\`\"semicolon-and-linebreak\"\\` or\n\\`\"comma-and-linebreak\"\\` should be allowed to optionally drop the linebreak.\n\nDefaults to \\`true\\`.`,\n            type: 'boolean',\n          },\n          objectFieldSeparatorTrailingPunctuation: {\n            description: `If \\`separatorForSingleObjectField\\` is not in effect (i.e., if it is \\`false\\`\nor there are multiple property-value object fields present), this property\nwill determine whether to add punctuation corresponding to the\n\\`objectFieldSeparator\\` (e.g., a semicolon) to the final object field.\nDefaults to \\`false\\`.`,\n            type: 'boolean',\n          },\n          objectTypeBracketSpacing: {\n            description: 'The space character (if any) to add after an object\\'s initial curly bracket and before its ending curly bracket',\n            type: 'string',\n          },\n          parameterDefaultValueSpacing: {\n            description: 'The space character (if any) to use between the equal signs of a default value. Defaults to \" \".',\n            type: 'string',\n          },\n          postMethodNameSpacing: {\n            description: 'The space character (if any) to add after a method name. Defaults to \"\".',\n            type: 'string',\n          },\n          postNewSpacing: {\n            description: 'The space character (if any) to add after \"new\" in a constructor. Defaults to \" \".',\n            type: 'string',\n          },\n          //           propertyQuotes: {\n          //             description: `Whether and how namepath properties should be quoted (e.g., \\`ab.\"cd\".\"ef\"\\`).\n          // Set to \\`single\\`, \\`double\\`, or \\`null\\`. Defaults to \\`null\\` (no quotes unless\n          // required due to whitespace within the property).`,\n          //             enum: [\n          //               'double',\n          //               'single',\n          //               null,\n          //             ],\n          //           },\n          separatorForSingleObjectField: {\n            description: `Whether to apply the \\`objectFieldSeparator\\` (e.g., a semicolon) when there\nis only one property-value object field present. Defaults to \\`false\\`.`,\n            type: 'boolean',\n          },\n          stringQuotes: {\n            description: `How string literals should be quoted (e.g., \\`\"abc\"\\`). Set to \\`single\\`\nor \\`double\\`. Defaults to 'double'.`,\n            enum: [\n              'double',\n              'single',\n            ],\n            type: 'string',\n          },\n          trailingPunctuationMultilineOnly: {\n            description: 'If `objectFieldSeparatorTrailingPunctuation` is set, this will determine whether the trailing puncutation is only added when the type is multiline',\n            type: 'boolean',\n          },\n          typeBracketSpacing: {\n            description: `A string of spaces that will be added immediately after the type's initial\ncurly bracket and immediately before its ending curly bracket. Defaults\nto the empty string.`,\n            type: 'string',\n          },\n          unionSpacing: {\n            description: 'Determines the spacing to add to unions (`|`). Defaults to a single space (`\" \"`).',\n            type: 'string',\n          },\n        },\n        type: 'object',\n      },\n    ],\n    type: 'suggestion',\n  },\n});\n"],"mappings":"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","ignoreList":[]}