{"version":3,"file":"documentation.mjs","sources":["../src/documentation.ts"],"sourcesContent":["import { dirname, join, relative } from 'node:path';\nimport type { DeclarationReflection } from 'typedoc';\nimport type { ChildTypes, Class, Config, CustomDocs, RootTypes } from './interfaces/index.js';\nimport { DocumentedClass } from './types/class.js';\nimport { DocumentedConstructor } from './types/constructor.js';\nimport { DocumentedEvent } from './types/event.js';\nimport { DocumentedExternal } from './types/external.js';\nimport { DocumentedInterface } from './types/interface.js';\nimport { DocumentedMember } from './types/member.js';\nimport { DocumentedMethod } from './types/method.js';\nimport { DocumentedTypeDef } from './types/typedef.js';\nimport packageFile from '../package.json';\n\nexport class Documentation {\n\tpublic readonly classes = new Map<string, DocumentedClass>();\n\n\tpublic readonly functions = new Map<string, DocumentedMethod>();\n\n\tpublic readonly interfaces = new Map<string, DocumentedInterface>();\n\n\tpublic readonly typedefs = new Map<string, DocumentedTypeDef>();\n\n\tpublic readonly externals = new Map<string, DocumentedExternal>();\n\n\tpublic constructor(\n\t\tdata: RootTypes[] | DeclarationReflection[],\n\t\tprivate readonly config: Config,\n\t\tprivate readonly custom?: Record<string, CustomDocs>,\n\t) {\n\t\tif (config.typescript) {\n\t\t\tconst items = data as DeclarationReflection[];\n\n\t\t\tfor (const item of items) {\n\t\t\t\tswitch (item.kindString) {\n\t\t\t\t\tcase 'Class': {\n\t\t\t\t\t\tthis.classes.set(item.name, new DocumentedClass(item, config));\n\t\t\t\t\t\tif (item.children) {\n\t\t\t\t\t\t\tthis.parse(item.children, item);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase 'Function': {\n\t\t\t\t\t\tthis.functions.set(item.name, new DocumentedMethod(item, config));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase 'Interface':\n\t\t\t\t\tcase 'Type alias':\n\t\t\t\t\tcase 'Enumeration':\n\t\t\t\t\t\tthis.typedefs.set(item.name, new DocumentedTypeDef(item, config));\n\t\t\t\t\t\tif (item.children) {\n\t\t\t\t\t\t\tthis.parse(item.children, item);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tlet items = data as RootTypes[];\n\t\t\titems = items.filter((i) => !i.ignore);\n\n\t\t\tfor (const item of items) {\n\t\t\t\tswitch (item.kind) {\n\t\t\t\t\tcase 'class': {\n\t\t\t\t\t\tthis.classes.set(item.name, new DocumentedClass(item, config));\n\t\t\t\t\t\titems = items.filter((i) => i.longname !== item.longname || i.kind !== item.kind);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'function': {\n\t\t\t\t\t\tif (item.scope === 'global' || !item.memberof) {\n\t\t\t\t\t\t\tthis.functions.set(item.name, new DocumentedMethod(item, config));\n\t\t\t\t\t\t\titems = items.filter((i) => i.longname !== item.longname);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'interface': {\n\t\t\t\t\t\tthis.interfaces.set(item.name, new DocumentedInterface(item as unknown as Class, config));\n\t\t\t\t\t\titems = items.filter((i) => i.longname !== item.longname);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'typedef': {\n\t\t\t\t\t\tthis.typedefs.set(item.name, new DocumentedTypeDef(item, config));\n\t\t\t\t\t\titems = items.filter((i) => i.longname !== item.longname);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'external': {\n\t\t\t\t\t\tthis.externals.set(item.name, new DocumentedExternal(item, config));\n\t\t\t\t\t\titems = items.filter((i) => i.longname !== item.longname);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.parse(items as ChildTypes[]);\n\t\t}\n\t}\n\n\tpublic parse(items: ChildTypes[] | DeclarationReflection[], p?: DeclarationReflection) {\n\t\tif (this.config.typescript) {\n\t\t\tconst it = items as DeclarationReflection[];\n\n\t\t\tfor (const member of it) {\n\t\t\t\tlet item: DocumentedMethod | DocumentedConstructor | DocumentedMember | DocumentedEvent | null = null;\n\n\t\t\t\tswitch (member.kindString) {\n\t\t\t\t\tcase 'Constructor': {\n\t\t\t\t\t\titem = new DocumentedConstructor(member, this.config);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'Method': {\n\t\t\t\t\t\tconst event = p?.groups?.find((group) => group.title === 'Events');\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\t\t\t\t\t\tif ((event?.children as unknown as number[])?.includes(member.id)) {\n\t\t\t\t\t\t\titem = new DocumentedEvent(member, this.config);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\titem = new DocumentedMethod(member, this.config);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'Property': {\n\t\t\t\t\t\titem = new DocumentedMember(member, this.config);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t\t\tconsole.warn(`- Unknown documentation kind \"${member.kindString}\" - \\n${JSON.stringify(member)}\\n`);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst parent = this.classes.get(p!.name) ?? this.interfaces.get(p!.name);\n\t\t\t\tif (parent) {\n\t\t\t\t\tif (item) {\n\t\t\t\t\t\tparent.add(item);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t`- Documentation item could not be constructed for \"${member.name}\" - \\n${JSON.stringify(member)}\\n`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst info = [];\n\t\t\t\tconst name = (member.name || item?.data.name) ?? 'UNKNOWN';\n\t\t\t\tconst meta =\n\t\t\t\t\tmember.kindString === 'constructor'\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tfile: member.sources?.[0]?.fileName,\n\t\t\t\t\t\t\t\tline: member.sources?.[0]?.line,\n\t\t\t\t\t\t\t\tpath: dirname(member.sources?.[0]?.fileName ?? ''),\n\t\t\t\t\t\t  };\n\n\t\t\t\tif (p!.name) {\n\t\t\t\t\tinfo.push(`member of \"${p!.name}\"`);\n\t\t\t\t}\n\t\t\t\tif (meta) {\n\t\t\t\t\tinfo.push(\n\t\t\t\t\t\t`${relative(this.config.root, join(meta.path, meta.file ?? ''))}${meta.line ? `:${meta.line}` : ''}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconsole.warn(`- \"${name}\"${info.length ? ` (${info.join(', ')})` : ''} has no accessible parent.`);\n\t\t\t\tif (!name && !info.length) {\n\t\t\t\t\tconsole.warn('Raw object:', member);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconst it = items as ChildTypes[];\n\n\t\t\tfor (const member of it) {\n\t\t\t\tlet item: DocumentedMethod | DocumentedConstructor | DocumentedMember | DocumentedEvent | null = null;\n\n\t\t\t\tswitch (member.kind) {\n\t\t\t\t\tcase 'constructor': {\n\t\t\t\t\t\titem = new DocumentedConstructor(member, this.config);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'function': {\n\t\t\t\t\t\titem = new DocumentedMethod(member, this.config);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'member': {\n\t\t\t\t\t\titem = new DocumentedMember(member, this.config);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'event': {\n\t\t\t\t\t\titem = new DocumentedEvent(member, this.config);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t\t\tconsole.warn(`- Unknown documentation kind \"${member.kind}\" - \\n${JSON.stringify(member)}\\n`);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst parent = this.classes.get(member.memberof ?? '') ?? this.interfaces.get(member.memberof ?? '');\n\t\t\t\tif (parent) {\n\t\t\t\t\tif (item) {\n\t\t\t\t\t\tparent.add(item);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t`- Documentation item could not be constructed for \"${member.name}\" - \\n${JSON.stringify(member)}\\n`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst info = [];\n\t\t\t\tconst name = (member.name || item?.data.name) ?? 'UNKNOWN';\n\t\t\t\t// @ts-expect-error\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unnecessary-condition\n\t\t\t\tconst memberof = member.memberof ?? item?.data?.memberof;\n\t\t\t\tconst meta =\n\t\t\t\t\tmember.kind === 'constructor'\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: { file: member.meta.filename, line: member.meta.lineno, path: member.meta.path };\n\n\t\t\t\tif (memberof) {\n\t\t\t\t\tinfo.push(`member of \"${memberof as string}\"`);\n\t\t\t\t}\n\t\t\t\tif (meta) {\n\t\t\t\t\tinfo.push(`${relative(this.config.root, join(meta.path, meta.file))}${meta.line ? `:${meta.line}` : ''}`);\n\t\t\t\t}\n\n\t\t\t\tconsole.warn(`- \"${name}\"${info.length ? ` (${info.join(', ')})` : ''} has no accessible parent.`);\n\t\t\t\tif (!name && !info.length) {\n\t\t\t\t\tconsole.warn('Raw object:', member);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic serialize() {\n\t\treturn {\n\t\t\tmeta: {\n\t\t\t\tgenerator: packageFile.version,\n\t\t\t\tformat: Documentation.FORMAT_VERSION,\n\t\t\t\tdate: Date.now(),\n\t\t\t},\n\t\t\tclasses: [...this.classes.values()].map((c) => c.serialize()),\n\t\t\tfunctions: [...this.functions.values()].map((f) => f.serialize()),\n\t\t\tinterfaces: [...this.interfaces.values()].map((i) => i.serialize()),\n\t\t\ttypedefs: [...this.typedefs.values()].map((t) => t.serialize()),\n\t\t\texternals: [...this.externals.values()].map((e) => e.serialize()),\n\t\t\tcustom: this.custom,\n\t\t};\n\t}\n\n\tpublic static get FORMAT_VERSION() {\n\t\treturn 30;\n\t}\n}\n"],"names":["d","m","g","y","D","p","h","b","k","u","f","$"],"mappings":"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"}