{
  "version": 3,
  "sources": ["../../src/lib/index.ts", "../../src/lib/parser/jdocs/mapper.ts", "../../src/lib/parser/jdocs/render.ts", "../../src/lib/parser/render.ts", "../../src/lib/parser/markdown.ts"],
  "sourcesContent": ["import {existsSync, readFileSync, writeFileSync} from 'node:fs';\nimport {buildDocumentation} from './docs';\nimport {documentationToMarkdown} from './parser/markdown';\nimport type {\n  BuildOptions,\n  DocEntry,\n  DocEntryConstructor,\n  DocEntryType,\n  MarkdownOptions\n} from './types';\n\nexport {buildDocumentation, documentationToMarkdown};\nexport type {DocEntry, DocEntryConstructor, DocEntryType};\n\n/**\n * Generate documentation and write output to a file.\n * If the file exists, it will try to insert the docs between <!-- TSDOC_START --> and <!-- TSDOC_END --> comments.\n * If these does not exist, the output file will be overwritten.\n *\n * @param {inputFiles: string[]; outputFile: string; markdownOptions?: MarkdownOptions; buildOptions?: BuildOptions;} params\n * @param params.inputFiles The list of files to scan for documentation. Absolute or relative path.\n * @param params.outputFile The file to output the documentation in Markdown.\n * @param params.markdownOptions Optional settings passed to the Markdown parser. See `MarkdownOptions` for details.\n * @param params.buildOptions Options to construct the documentation tree. See `BuildOptions` for details.\n */\nexport const generateDocumentation = ({\n  inputFiles,\n  outputFile,\n  markdownOptions,\n  buildOptions\n}: {\n  inputFiles: string[];\n  outputFile: string;\n  markdownOptions?: MarkdownOptions;\n  buildOptions?: BuildOptions;\n}): void => {\n  const entries: DocEntry[] = buildDocumentation({\n    inputFiles,\n    options: buildOptions\n  });\n\n  const markdown: string = documentationToMarkdown({entries, options: markdownOptions});\n\n  if (existsSync(outputFile)) {\n    const fileContent = readFileSync(outputFile, 'utf-8');\n\n    const regex = /(<!-- TSDOC_START -->)[\\s\\S]*?(<!-- TSDOC_END -->)$/gm;\n\n    if (fileContent.match(regex) === null) {\n      writeFileSync(outputFile, markdown, 'utf-8');\n      return;\n    }\n\n    const replace = `<!-- TSDOC_START -->\\n\\n${markdown}\\n<!-- TSDOC_END -->`;\n\n    writeFileSync(outputFile, fileContent.replace(regex, replace), 'utf-8');\n\n    return;\n  }\n\n  writeFileSync(outputFile, markdown, 'utf-8');\n};\n", "import type {JSDocTagInfo, SymbolDisplayPart} from 'typescript';\nimport type {JsDocsMetadata, Params} from '../types';\n\nconst jsDocsToSymbolDisplayParts = ({\n  jsDocs = [],\n  tagInfoName\n}: {\n  jsDocs?: JSDocTagInfo[];\n  tagInfoName: 'returns' | 'param' | 'see';\n}): SymbolDisplayPart[][] => {\n  const tags = jsDocs.filter(({name}: JSDocTagInfo) => name === tagInfoName);\n  const texts = tags.map(({text}) => text);\n\n  return texts.reduce<SymbolDisplayPart[][]>((acc, values) => {\n    if (values === undefined) {\n      return acc;\n    }\n\n    return [...acc, values];\n  }, []);\n};\n\nconst jsDocsToReturnType = (jsDocs?: JSDocTagInfo[]): string => {\n  const returns = jsDocsToSymbolDisplayParts({jsDocs, tagInfoName: 'returns'});\n  return returns.map((parts) => parts.map(({text}) => text).join('')).join(' ');\n};\n\nconst jsDocsToReferences = (jsDocs?: JSDocTagInfo[]): string[] => {\n  const sees = jsDocsToSymbolDisplayParts({jsDocs, tagInfoName: 'see'});\n\n  return sees\n    .map((texts) =>\n      texts\n        // Filter TypeScript unstripped comment asterix\n        .filter(({text}) => text !== '*')\n        .reduce((acc, {text}) => `${acc}${text}`, '')\n    )\n    .map((value) => value.trim());\n};\n\nexport const jsDocsToParams = (jsDocs?: JSDocTagInfo[]): Params[] => {\n  const params = jsDocsToSymbolDisplayParts({jsDocs, tagInfoName: 'param'});\n\n  const toParam = (parts: SymbolDisplayPart[]): Params | undefined => {\n    if (parts.find(({kind, text}) => kind === 'parameterName' && text !== '') === undefined) {\n      return undefined;\n    }\n\n    const name = parts.find(({kind}) => kind === 'parameterName')?.text ?? '';\n    const documentation = parts.find(({kind}) => kind === 'text')?.text ?? '';\n\n    return {name, documentation};\n  };\n\n  return params.map(toParam).filter((param) => param !== undefined) as Params[];\n};\n\nconst jsDocsToExamples = (jsDocs: JSDocTagInfo[]): string[] => {\n  const examples: JSDocTagInfo[] = jsDocs.filter(({name}: JSDocTagInfo) => name === 'example');\n  const texts = examples\n    .map(({text}) => text)\n    .filter(Boolean)\n    .flat(1) as SymbolDisplayPart[];\n  return texts.map(({text}) => text).filter(Boolean);\n};\n\nexport const jsDocsMetadata = (jsDocs?: JSDocTagInfo[]): JsDocsMetadata => ({\n  returnType: jsDocsToReturnType(jsDocs),\n  references: jsDocsToReferences(jsDocs),\n  examples: [...jsDocsToExamples(jsDocs ?? [])]\n});\n", "// Example of inputs:\n// [\n//   'hello2',\n//   'https://daviddalbusco.com',\n//   '{@link hello } \u2013 Another related function',\n//   '{@link https://github.com/peterpeterparker/tsdoc-markdown Source code}'\n// ]\nexport const inlineReferences = (references: string[]): string[] => {\n  const inlineReference = (reference: string): string => {\n    const linkMatch = /\\{@link\\s+([^\\s}]+)\\s*(?:\\s+([^}]+))?\\}/.exec(reference);\n\n    if (linkMatch !== null) {\n      const [_, target, label] = linkMatch;\n\n      if (target.startsWith('http')) {\n        return `* [${label ?? target}](${target})`;\n      }\n\n      return `* \\`${target.trim()}\\`${label ? ` \u2013 ${label}` : ''}`;\n    }\n\n    if (reference.startsWith('http')) {\n      return `* [${reference}](${reference})`;\n    }\n\n    return `* ${reference}`;\n  };\n\n  return references.map(inlineReference);\n};\n", "import type {DocEntry, MarkdownEmoji, MarkdownOptions} from '../types';\nimport {inlineReferences} from './jdocs/render';\nimport type {JsDocsMetadata} from './types';\n\nexport const emojiTitle = ({\n  emoji,\n  key\n}: {\n  key: keyof MarkdownEmoji;\n} & Pick<MarkdownOptions, 'emoji'>): string =>\n  emoji === undefined || emoji === null ? '' : ` :${emoji[key]}:`;\n\nconst sourceCodeLink = ({\n  url,\n  emoji\n}: Pick<MarkdownOptions, 'emoji'> & Required<Pick<DocEntry, 'url'>>): string =>\n  `[${emojiTitle({emoji, key: 'link'}).trim()}${emoji !== null && emoji !== undefined ? ' ' : ''}Source](${url})\\n`;\n\nexport const metadataToMarkdown = ({\n  returnType,\n  references,\n  examples,\n  url,\n  emoji\n}: JsDocsMetadata &\n  Pick<DocEntry, 'url'> & {emoji: MarkdownEmoji | null | undefined}): string[] => {\n  const markdown: string[] = [];\n\n  if (returnType !== undefined && returnType !== '') {\n    markdown.push(`Returns:\\n`);\n    markdown.push(`${returnType}\\n`);\n  }\n\n  if (references?.length) {\n    markdown.push(`References:\\n`);\n    markdown.push(...inlineReferences(references));\n    markdown.push('\\n');\n  }\n\n  if (examples.length) {\n    markdown.push('Examples:\\n');\n    markdown.push(...examples);\n    markdown.push('\\n');\n  }\n\n  if (url !== undefined) {\n    markdown.push(sourceCodeLink({emoji, url}));\n  }\n\n  return markdown;\n};\n", "import type {JSDocTagInfo} from 'typescript';\nimport type {\n  DocEntry,\n  DocEntryConstructor,\n  MarkdownEmoji,\n  MarkdownHeadingLevel,\n  MarkdownOptions\n} from '../types';\nimport {jsDocsMetadata, jsDocsToParams} from './jdocs/mapper';\nimport {emojiTitle, metadataToMarkdown} from './render';\nimport type {Params, Row} from './types';\n\nconst toParams = (parameters?: DocEntry[]): Params[] =>\n  (parameters ?? []).map(({name, documentation}: DocEntry) => ({\n    name,\n    documentation: documentation ?? ''\n  }));\n\nconst inlineDocParam = (documentation: string | undefined): string =>\n  documentation !== undefined && documentation !== '' ? `: ${documentation}` : '';\n\nconst inlineParams = (params: Params[]): string[] =>\n  params.map(({name, documentation}) => `* \\`${name}\\`${inlineDocParam(documentation)}`);\n\nconst reduceStatic = (values: DocEntry[]): [DocEntry[], DocEntry[]] =>\n  values.reduce<[DocEntry[], DocEntry[]]>(\n    ([i, s], value) => [\n      [...i, ...(value.isStatic !== true ? [value] : [])],\n      [...s, ...(value.isStatic === true ? [value] : [])]\n    ],\n    [[], []]\n  );\n\nconst classesToMarkdown = ({\n  entry,\n  headingLevel,\n  emoji\n}: {\n  entry: DocEntry;\n} & Required<Pick<MarkdownOptions, 'headingLevel'>> &\n  Omit<MarkdownOptions, 'headingLevel'>): string => {\n  const {name, url, documentation, methods, properties, constructors, jsDocs} = entry;\n\n  const markdown: string[] = [`${headingLevel}${emojiTitle({emoji, key: 'classes'})} ${name}\\n`];\n\n  if (documentation !== undefined && documentation !== '') {\n    markdown.push(`${documentation}\\n`);\n  }\n\n  const metadata = metadataToMarkdown({\n    ...jsDocsMetadata(jsDocs),\n    url,\n    emoji\n  });\n\n  markdown.push(...metadata);\n\n  const publicConstructors: DocEntryConstructor[] = (constructors ?? []).filter(\n    ({visibility}) => visibility === 'public'\n  );\n\n  if (publicConstructors.length > 0) {\n    markdown.push(`${headingLevel}# Constructors\\n`);\n\n    markdown.push(\n      ...publicConstructors.map(({parameters, documentation, visibility}) => {\n        const docs: string[] = [`\\`${visibility}\\`${inlineDocParam(documentation)}\\n`];\n\n        if ((parameters?.length ?? 0) > 0) {\n          docs.push(`Parameters:\\n`);\n          docs.push(...inlineParams(toParams(parameters)));\n        }\n\n        return docs.join('\\n');\n      })\n    );\n\n    markdown.push('\\n');\n  }\n\n  const methodsToMarkdown = ({\n    methods,\n    titlePrefix\n  }: {\n    methods: DocEntry[];\n    titlePrefix?: string;\n  }): void => {\n    if ((methods?.length ?? 0) === 0) {\n      return;\n    }\n\n    markdown.push(`${headingLevel}# ${titlePrefix ?? ''}Methods\\n`);\n    markdown.push(`${tableOfContent({entries: methods, emoji})}\\n`);\n\n    // Explicitly do not pass repo to generate the source code link afterwards for the all block\n    markdown.push(\n      toMarkdown({\n        entries: methods ?? [],\n        headingLevel: `${headingLevel}#`,\n        docType: 'Method',\n        emoji\n      })\n    );\n  };\n\n  const [instanceMethods, staticMethods] = reduceStatic(methods ?? []);\n\n  methodsToMarkdown({methods: staticMethods, titlePrefix: 'Static '});\n  methodsToMarkdown({methods: instanceMethods});\n\n  const propertiesToMarkdown = ({\n    properties,\n    titlePrefix\n  }: {\n    properties: DocEntry[];\n    titlePrefix?: string;\n  }): void => {\n    if ((properties?.length ?? 0) === 0) {\n      return;\n    }\n\n    markdown.push(`${headingLevel}# ${titlePrefix ?? ''}Properties\\n`);\n    markdown.push(`${tableOfContent({entries: properties ?? [], emoji})}\\n`);\n\n    // Explicitly do not pass repo to generate the source code link afterwards for the all block\n    markdown.push(\n      toMarkdown({\n        entries: properties ?? [],\n        headingLevel: `${headingLevel}#`,\n        docType: 'Property',\n        emoji\n      })\n    );\n  };\n\n  const [instanceProperties, staticProperties] = reduceStatic(properties ?? []);\n\n  propertiesToMarkdown({properties: staticProperties, titlePrefix: 'Static '});\n  propertiesToMarkdown({properties: instanceProperties});\n\n  return markdown.join('\\n');\n};\n\nconst interfacesToMarkdown = ({\n  entry,\n  headingLevel,\n  emoji\n}: {\n  entry: DocEntry;\n} & Required<Pick<MarkdownOptions, 'headingLevel'>> &\n  Omit<MarkdownOptions, 'headingLevel'> &\n  Pick<MarkdownOptions, 'emoji'>): string => {\n  const {name, documentation, jsDocs, url} = entry;\n\n  const markdown: string[] = [\n    `${headingLevel}# ${emoji === undefined || emoji === null ? '' : ':gear: '}${name}\\n`\n  ];\n\n  if (documentation !== undefined) {\n    markdown.push(`${documentation}\\n`);\n  }\n\n  markdown.push(`| Property | Type | Description |`);\n  markdown.push('| ---------- | ---------- | ---------- |');\n\n  (entry.properties ?? []).forEach(({name, type, documentation, jsDocs}) => {\n    const jsDocsDescription = (jsDocs ?? []).map(\n      ({name, text}: JSDocTagInfo) =>\n        `${name}${text !== undefined ? `: ${text.map(({text}) => text).join('')}` : ''}`\n    );\n\n    markdown.push(\n      `| \\`${name}\\` | \\`${parseType(type ?? '')}\\` | ${documentation !== undefined && documentation !== '' ? parseType(documentation).replace(/\\r?\\n|\\r/g, '') : ''}${jsDocsDescription.length > 0 ? ` ${parseType(jsDocsDescription.join(''))}` : ''} |`\n    );\n  });\n\n  markdown.push('\\n');\n\n  const metadata = metadataToMarkdown({\n    ...jsDocsMetadata(jsDocs),\n    url,\n    emoji\n  });\n\n  markdown.push(...metadata);\n\n  return markdown.join('\\n');\n};\n\n// Avoid issue if the Markdown table gets formatted with Prettier\nconst parseType = (type: string): string =>\n  type\n    .split('\\n')\n    .map((line) => line.trim())\n    .join(' ')\n    .replace(/ \\| /g, ' or ')\n    .replace(/ & /g, ' and ');\n\nconst toMarkdown = ({\n  entries,\n  headingLevel,\n  docType,\n  emoji\n}: {\n  entries: DocEntry[];\n  headingLevel: MarkdownHeadingLevel | '####';\n  docType: 'Constant' | 'Function' | 'Method' | 'Property' | 'Type' | 'Enum';\n} & Pick<MarkdownOptions, 'emoji'>): string => {\n  const rows: Row[] = entries.map(\n    ({name, type, documentation, parameters, jsDocs, url}: DocEntry) => ({\n      name,\n      type: type ?? '',\n      documentation: documentation ?? '',\n      params: [...toParams(parameters), ...jsDocsToParams(jsDocs)],\n      ...jsDocsMetadata(jsDocs),\n      url\n    })\n  );\n\n  const rowToMarkdown = ({\n    name,\n    documentation,\n    type,\n    params,\n    returnType,\n    references,\n    examples,\n    url\n  }: Row): string => {\n    const markdown: string[] = [\n      `${headingLevel}# ${emoji === undefined || emoji === null ? '' : ':gear: '}${name}\\n`\n    ];\n\n    if (documentation.length) {\n      markdown.push(`${documentation}\\n`);\n    }\n\n    markdown.push(`| ${type === 'Type' ? 'Type alias' : docType} | Type |`);\n    markdown.push('| ---------- | ---------- |');\n    markdown.push(\n      `| \\`${name}\\` | ${type !== undefined && type !== '' ? `\\`${parseType(type)}\\`` : ''} |\\n`\n    );\n\n    if (params.length) {\n      markdown.push('Parameters:\\n');\n      markdown.push(...inlineParams(params));\n      markdown.push('\\n');\n    }\n\n    const metadata = metadataToMarkdown({\n      returnType,\n      references,\n      examples,\n      url,\n      emoji\n    });\n\n    markdown.push(...metadata);\n\n    return markdown.join('\\n');\n  };\n\n  return rows.map(rowToMarkdown).join('\\n');\n};\n\nconst tableOfContent = ({\n  entries,\n  emoji\n}: {\n  entries: DocEntry[];\n} & Pick<MarkdownOptions, 'emoji'>): string =>\n  entries\n    .map(\n      ({name}) =>\n        `- [${name}](#${emoji === undefined || emoji === null ? '' : `${emoji.entry}-`}${name\n          .toLowerCase()\n          .replace(/ /g, '-')})`\n    )\n    .join('\\n');\n\nconst DEFAULT_EMOJI: MarkdownEmoji = {\n  classes: 'factory',\n  functions: 'toolbox',\n  constants: 'wrench',\n  enum: 'nut_and_bolt',\n  entry: 'gear',\n  link: 'link',\n  interfaces: 'tropical_drink',\n  types: 'cocktail'\n};\n\n/**\n * Convert the documentation entries to an opinionated Markdown format.\n *\n * @param {entries: DocEntry[]; options: MarkdownOptions;} params\n * @param params.entries The entries of the documentation (functions, constants and classes).\n * @param params.options Optional configuration to render the Markdown content. See `types.ts` for details.\n */\nexport const documentationToMarkdown = ({\n  entries,\n  options\n}: {\n  entries: DocEntry[];\n  options?: MarkdownOptions;\n}): string => {\n  const {headingLevel: userHeadingLevel, emoji: userEmoji} = options ?? {\n    headingLevel: '##',\n    emoji: DEFAULT_EMOJI\n  };\n\n  const headingLevel = userHeadingLevel ?? '##';\n\n  const emoji: MarkdownEmoji | undefined =\n    userEmoji === null ? undefined : (userEmoji ?? DEFAULT_EMOJI);\n\n  const functions: DocEntry[] = entries.filter(({doc_type}: DocEntry) => doc_type === 'function');\n  const classes: DocEntry[] = entries.filter(({doc_type}: DocEntry) => doc_type === 'class');\n  const constants: DocEntry[] = entries.filter(({doc_type}: DocEntry) => doc_type === 'const');\n  const enums: DocEntry[] = entries.filter(({doc_type}: DocEntry) => doc_type === 'enum');\n  const types: DocEntry[] = entries.filter(({doc_type}: DocEntry) => doc_type === 'type');\n  const interfaces: DocEntry[] = entries.filter(({doc_type}: DocEntry) => doc_type === 'interface');\n\n  const markdown: string[] = [];\n\n  if (functions.length) {\n    markdown.push(`${headingLevel}${emojiTitle({emoji, key: 'functions'})} Functions\\n`);\n    markdown.push(`${tableOfContent({entries: functions, emoji})}\\n`);\n    markdown.push(\n      `${toMarkdown({entries: functions, headingLevel, emoji, docType: 'Function'})}\\n`\n    );\n  }\n\n  if (constants.length) {\n    markdown.push(`${headingLevel}${emojiTitle({emoji, key: 'constants'})} Constants\\n`);\n    markdown.push(`${tableOfContent({entries: constants, emoji})}\\n`);\n    markdown.push(\n      `${toMarkdown({entries: constants, headingLevel, emoji, docType: 'Constant'})}\\n`\n    );\n  }\n\n  markdown.push(\n    classes.map((entry: DocEntry) => classesToMarkdown({entry, headingLevel, emoji})).join('\\n')\n  );\n\n  if (enums.length) {\n    markdown.push(`${headingLevel}${emojiTitle({emoji, key: 'enum'})} Enum\\n`);\n    markdown.push(`${tableOfContent({entries: enums, emoji})}\\n`);\n    markdown.push(\n      enums.map((entry: DocEntry) => interfacesToMarkdown({entry, headingLevel, emoji})).join('\\n')\n    );\n  }\n\n  if (interfaces.length) {\n    markdown.push(`${headingLevel}${emojiTitle({emoji, key: 'interfaces'})} Interfaces\\n`);\n    markdown.push(`${tableOfContent({entries: interfaces, emoji})}\\n`);\n\n    markdown.push(\n      interfaces\n        .map((entry: DocEntry) => interfacesToMarkdown({entry, headingLevel, emoji}))\n        .join('\\n')\n    );\n  }\n\n  if (types.length) {\n    markdown.push(`${headingLevel}${emojiTitle({emoji, key: 'types'})} Types\\n`);\n    markdown.push(`${tableOfContent({entries: types, emoji})}\\n`);\n    markdown.push(`${toMarkdown({entries: types, headingLevel, emoji, docType: 'Type'})}\\n`);\n  }\n\n  return markdown.join('\\n');\n};\n"],
  "mappings": "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",
  "names": ["existsSync", "readFileSync", "writeFileSync", "jsDocsToSymbolDisplayParts", "jsDocs", "tagInfoName", "name", "text", "acc", "values", "jsDocsToReturnType", "parts", "jsDocsToReferences", "texts", "value", "jsDocsToParams", "params", "toParam", "_a", "_b", "kind", "documentation", "param", "jsDocsToExamples", "jsDocsMetadata", "inlineReferences", "references", "inlineReference", "reference", "linkMatch", "_", "target", "label", "emojiTitle", "emoji", "key", "sourceCodeLink", "url", "metadataToMarkdown", "returnType", "references", "examples", "markdown", "inlineReferences", "toParams", "parameters", "name", "documentation", "inlineDocParam", "inlineParams", "params", "reduceStatic", "values", "i", "value", "classesToMarkdown", "entry", "headingLevel", "emoji", "url", "methods", "properties", "constructors", "jsDocs", "markdown", "emojiTitle", "metadata", "metadataToMarkdown", "jsDocsMetadata", "publicConstructors", "visibility", "docs", "methodsToMarkdown", "titlePrefix", "tableOfContent", "toMarkdown", "instanceMethods", "staticMethods", "propertiesToMarkdown", "instanceProperties", "staticProperties", "interfacesToMarkdown", "type", "jsDocsDescription", "text", "parseType", "line", "entries", "docType", "rows", "jsDocsToParams", "rowToMarkdown", "returnType", "references", "examples", "DEFAULT_EMOJI", "documentationToMarkdown", "options", "userHeadingLevel", "userEmoji", "functions", "doc_type", "classes", "constants", "enums", "types", "interfaces", "generateDocumentation", "inputFiles", "outputFile", "markdownOptions", "buildOptions", "entries", "buildDocumentation", "markdown", "documentationToMarkdown", "existsSync", "fileContent", "readFileSync", "regex", "writeFileSync", "replace"]
}
