feat (v1.0.0): initial refactor and redesign

This commit is contained in:
Aidan 2025-10-09 04:12:05 -04:00
parent 3058aa1ab4
commit fe9b50b30e
134 changed files with 17792 additions and 3670 deletions

225
lib/docs/types.ts Normal file
View file

@ -0,0 +1,225 @@
/**
* Type definitions for documentation system
*/
export interface TypeDocReflection {
id: number
name: string
kind: number
kindString?: string
flags?: {
isExported?: boolean
isExternal?: boolean
isOptional?: boolean
isRest?: boolean
isPrivate?: boolean
isProtected?: boolean
isPublic?: boolean
isStatic?: boolean
isReadonly?: boolean
isAbstract?: boolean
}
comment?: {
summary?: Array<{ kind: string; text: string }>
blockTags?: Array<{
tag: string
content: Array<{ kind: string; text: string }>
}>
}
children?: TypeDocReflection[]
groups?: Array<{
title: string
children: number[]
}>
sources?: Array<{
fileName: string
line: number
character: number
}>
signatures?: TypeDocSignature[]
type?: TypeDocType
defaultValue?: string
parameters?: TypeDocParameter[]
}
export interface TypeDocSignature {
id: number
name: string
kind: number
kindString?: string
comment?: {
summary?: Array<{ kind: string; text: string }>
blockTags?: Array<{
tag: string
content: Array<{ kind: string; text: string }>
}>
}
parameters?: TypeDocParameter[]
type?: TypeDocType
}
export interface TypeDocParameter {
id: number
name: string
kind: number
kindString?: string
flags?: {
isOptional?: boolean
isRest?: boolean
}
comment?: {
summary?: Array<{ kind: string; text: string }>
}
type?: TypeDocType
defaultValue?: string
}
export interface TypeDocType {
type: string
name?: string
value?: string | number | boolean | null
types?: TypeDocType[]
typeArguments?: TypeDocType[]
elementType?: TypeDocType
declaration?: TypeDocReflection
target?: number
package?: string
qualifiedName?: string
}
export interface TypeDocRoot {
id: number
name: string
kind: number
kindString?: string
children?: TypeDocReflection[]
groups?: Array<{
title: string
children: number[]
}>
packageName?: string
packageVersion?: string
}
/**
* Processed documentation structure
*/
export interface DocItem {
id: string
name: string
kind: DocKind
category: DocCategory
description: string
remarks?: string
signature?: string
parameters?: DocParameter[]
returns?: {
type: string
description: string
}
examples?: Array<{
code: string
language: string
}>
throws?: string[]
see?: string[]
source?: {
file: string
line: number
}
tags?: string[]
deprecated?: boolean
}
export type DocKind =
| 'function'
| 'method'
| 'class'
| 'interface'
| 'type'
| 'variable'
| 'property'
| 'enum'
export type DocCategory = 'Services' | 'Utils' | 'Types' | 'Theme' | 'Devices' | 'Domains' | 'Docs' | 'API' | 'Other'
export interface DocParameter {
name: string
type: string
description: string
optional: boolean
defaultValue?: string
}
export interface DocSection {
title: string
items: DocItem[]
category: DocCategory
}
export interface DocNavigation {
sections: Array<{
title: string
category: DocCategory
items: Array<{
id: string
name: string
kind: DocKind
}>
}>
}
/**
* API endpoint documentation
*/
export interface APIEndpoint {
id: string
method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'
path: string
description: string
category: string
auth?: {
required: boolean
type?: string
description?: string
}
parameters?: {
query?: DocParameter[]
body?: DocParameter[]
headers?: DocParameter[]
}
responses: Array<{
status: number
description: string
schema?: Record<string, unknown>
example?: Record<string, unknown>
}>
examples?: Array<{
title: string
request: string | Record<string, unknown>
response: string | Record<string, unknown>
}>
}
/**
* Search result
*/
export interface SearchResult {
item: DocItem | APIEndpoint
matches: Array<{
key: string
value: string
indices: Array<[number, number]>
}>
score: number
}
/**
* Documentation filters
*/
export interface DocFilters {
category?: DocCategory
kind?: DocKind
search?: string
tags?: string[]
}