@parallelworks/api-docs 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ApiOperation.d.ts +9 -0
- package/dist/components/ApiOperation.d.ts.map +1 -0
- package/dist/components/ApiOperation.js +12 -0
- package/dist/components/ApiOperation.js.map +1 -0
- package/dist/components/ApiOperationCard.d.ts +9 -0
- package/dist/components/ApiOperationCard.d.ts.map +1 -0
- package/dist/components/ApiOperationCard.js +14 -0
- package/dist/components/ApiOperationCard.js.map +1 -0
- package/dist/components/ApiParameters.d.ts +8 -0
- package/dist/components/ApiParameters.d.ts.map +1 -0
- package/dist/components/ApiParameters.js +39 -0
- package/dist/components/ApiParameters.js.map +1 -0
- package/dist/components/ApiRequestBody.d.ts +10 -0
- package/dist/components/ApiRequestBody.d.ts.map +1 -0
- package/dist/components/ApiRequestBody.js +17 -0
- package/dist/components/ApiRequestBody.js.map +1 -0
- package/dist/components/ApiResponse.d.ts +11 -0
- package/dist/components/ApiResponse.d.ts.map +1 -0
- package/dist/components/ApiResponse.js +64 -0
- package/dist/components/ApiResponse.js.map +1 -0
- package/dist/components/ApiSidebar.d.ts +13 -0
- package/dist/components/ApiSidebar.d.ts.map +1 -0
- package/dist/components/ApiSidebar.js +34 -0
- package/dist/components/ApiSidebar.js.map +1 -0
- package/dist/components/Badge.d.ts +9 -0
- package/dist/components/Badge.d.ts.map +1 -0
- package/dist/components/Badge.js +12 -0
- package/dist/components/Badge.js.map +1 -0
- package/dist/components/ChevronIcon.d.ts +6 -0
- package/dist/components/ChevronIcon.d.ts.map +1 -0
- package/dist/components/ChevronIcon.js +6 -0
- package/dist/components/ChevronIcon.js.map +1 -0
- package/dist/components/MethodBadge.d.ts +7 -0
- package/dist/components/MethodBadge.d.ts.map +1 -0
- package/dist/components/MethodBadge.js +8 -0
- package/dist/components/MethodBadge.js.map +1 -0
- package/dist/components/SchemaViewer.d.ts +18 -0
- package/dist/components/SchemaViewer.d.ts.map +1 -0
- package/dist/components/SchemaViewer.js +148 -0
- package/dist/components/SchemaViewer.js.map +1 -0
- package/dist/components/index.d.ts +10 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +10 -0
- package/dist/components/index.js.map +1 -0
- package/dist/cx.d.ts +3 -0
- package/dist/cx.d.ts.map +1 -0
- package/dist/cx.js +3 -0
- package/dist/cx.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/markdown.d.ts +2 -0
- package/dist/markdown.d.ts.map +1 -0
- package/dist/markdown.js +100 -0
- package/dist/markdown.js.map +1 -0
- package/dist/openapi.d.ts +15 -0
- package/dist/openapi.d.ts.map +1 -0
- package/dist/openapi.js +259 -0
- package/dist/openapi.js.map +1 -0
- package/dist/types.d.ts +150 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { getRefName, resolveRef } from '../openapi';
|
|
3
|
+
import { cx } from '../cx';
|
|
4
|
+
import { Badge } from './Badge';
|
|
5
|
+
import { ChevronIcon } from './ChevronIcon';
|
|
6
|
+
import * as React from 'react';
|
|
7
|
+
const SchemaResolverContext = React.createContext(null);
|
|
8
|
+
export function SchemaViewer({ schema, spec, name, required, depth = 0, className, visitedRefs = new Set(), }) {
|
|
9
|
+
const contextSpec = React.useContext(SchemaResolverContext);
|
|
10
|
+
const resolverSpec = spec || contextSpec;
|
|
11
|
+
const [expanded, setExpanded] = React.useState(depth < 3);
|
|
12
|
+
// Handle $ref
|
|
13
|
+
if (schema.$ref) {
|
|
14
|
+
const refName = getRefName(schema.$ref);
|
|
15
|
+
if (visitedRefs.has(schema.$ref)) {
|
|
16
|
+
return (_jsx(PropertyRow, { name: name, type: `${refName} (circular)`, required: required, depth: depth }));
|
|
17
|
+
}
|
|
18
|
+
if (resolverSpec) {
|
|
19
|
+
const resolvedSchema = resolveRef(schema.$ref, resolverSpec);
|
|
20
|
+
if (resolvedSchema) {
|
|
21
|
+
const newVisitedRefs = new Set(visitedRefs);
|
|
22
|
+
newVisitedRefs.add(schema.$ref);
|
|
23
|
+
return (_jsxs("div", { className: cx('space-y-1', className), children: [name && (_jsxs("button", { type: 'button', onClick: () => setExpanded(!expanded), className: 'flex items-center gap-1 group w-full text-left', children: [_jsx(ChevronIcon, { className: cx('text-muted-foreground transition-transform', expanded && 'rotate-90') }), _jsx(PropertyRow, { name: name, type: refName, description: resolvedSchema.description || schema.description, required: required, depth: depth, className: 'flex-1' })] })), !name && (_jsx(PropertyRow, { type: refName, description: resolvedSchema.description, depth: depth })), expanded && (_jsx("div", { className: cx('space-y-1', name && 'ml-4 border-l border-border pl-4'), children: _jsx(SchemaViewer, { schema: resolvedSchema, spec: resolverSpec, depth: depth + 1, visitedRefs: newVisitedRefs }) }))] }));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return (_jsx(PropertyRow, { name: name, type: refName, required: required, depth: depth }));
|
|
27
|
+
}
|
|
28
|
+
// Handle oneOf, anyOf
|
|
29
|
+
const variants = schema.oneOf || schema.anyOf;
|
|
30
|
+
if (variants) {
|
|
31
|
+
const combinator = schema.oneOf ? 'oneOf' : 'anyOf';
|
|
32
|
+
return (_jsxs("div", { className: cx('space-y-2', className), children: [name && (_jsx(PropertyRow, { name: name, type: combinator, description: schema.description, required: required, depth: depth })), _jsx(SchemaVariants, { variants: variants, combinator: combinator, discriminator: schema.discriminator, spec: resolverSpec ?? undefined, visitedRefs: visitedRefs, className: name ? 'ml-4' : undefined })] }));
|
|
33
|
+
}
|
|
34
|
+
// Handle allOf
|
|
35
|
+
if (schema.allOf) {
|
|
36
|
+
return (_jsxs("div", { className: cx('space-y-2', className), children: [name && (_jsx(PropertyRow, { name: name, type: 'allOf', description: schema.description, required: required, depth: depth })), _jsx("div", { className: 'ml-4 border-l border-border pl-4 space-y-2', children: schema.allOf.map((s, i) => (_jsx(SchemaViewer, { schema: s, spec: resolverSpec ?? undefined, depth: depth + 1, visitedRefs: visitedRefs }, i))) })] }));
|
|
37
|
+
}
|
|
38
|
+
// Handle object type
|
|
39
|
+
if (schema.type === 'object' || schema.properties) {
|
|
40
|
+
const properties = schema.properties || {};
|
|
41
|
+
const requiredProps = schema.required || [];
|
|
42
|
+
const hasProperties = Object.keys(properties).length > 0;
|
|
43
|
+
const additionalPropsSchema = typeof schema.additionalProperties === 'object' &&
|
|
44
|
+
schema.additionalProperties !== null
|
|
45
|
+
? schema.additionalProperties
|
|
46
|
+
: null;
|
|
47
|
+
const allowsExtraProps = schema.additionalProperties === true;
|
|
48
|
+
const isMap = !hasProperties && additionalPropsSchema !== null;
|
|
49
|
+
const valueTypeName = additionalPropsSchema
|
|
50
|
+
? getSchemaType(additionalPropsSchema)
|
|
51
|
+
: 'any';
|
|
52
|
+
const objectDisplayType = isMap
|
|
53
|
+
? `object (map of ${valueTypeName})`
|
|
54
|
+
: 'object';
|
|
55
|
+
return (_jsxs("div", { className: cx('space-y-1', className), children: [name && (_jsxs("button", { type: 'button', onClick: () => setExpanded(!expanded), className: 'flex items-center gap-1 group w-full text-left', children: [_jsx(ChevronIcon, { className: cx('text-muted-foreground transition-transform', expanded && 'rotate-90') }), _jsx(PropertyRow, { name: name, type: objectDisplayType, description: schema.description, required: required, depth: depth, className: 'flex-1' })] })), !name && isMap && (_jsx(PropertyRow, { type: objectDisplayType, depth: depth })), (expanded || !name) &&
|
|
56
|
+
(hasProperties || additionalPropsSchema || allowsExtraProps) && (_jsxs("div", { className: cx('space-y-1', name && 'ml-4 border-l border-border pl-4'), children: [Object.entries(properties).map(([propName, propSchema]) => (_jsx(SchemaViewer, { schema: propSchema, spec: resolverSpec ?? undefined, name: propName, required: requiredProps.includes(propName), depth: depth + 1, visitedRefs: visitedRefs }, propName))), additionalPropsSchema && (_jsx(SchemaViewer, { schema: additionalPropsSchema, spec: resolverSpec ?? undefined, name: '<key>', depth: depth + 1, visitedRefs: visitedRefs })), allowsExtraProps && (_jsx("div", { className: 'text-xs text-muted-foreground italic', children: "Additional properties allowed" }))] }))] }));
|
|
57
|
+
}
|
|
58
|
+
// Handle array type
|
|
59
|
+
if (schema.type === 'array' ||
|
|
60
|
+
(Array.isArray(schema.type) && schema.type.includes('array'))) {
|
|
61
|
+
const itemSchema = schema.items;
|
|
62
|
+
const isNullable = Array.isArray(schema.type) && schema.type.includes('null');
|
|
63
|
+
const itemTypeName = itemSchema ? getSchemaType(itemSchema) : 'any';
|
|
64
|
+
const displayType = `array of ${itemTypeName}${isNullable ? ' | null' : ''}`;
|
|
65
|
+
const hasComplexItems = itemSchema &&
|
|
66
|
+
(itemSchema.properties ||
|
|
67
|
+
itemSchema.$ref ||
|
|
68
|
+
itemSchema.allOf ||
|
|
69
|
+
itemSchema.oneOf ||
|
|
70
|
+
itemSchema.anyOf);
|
|
71
|
+
return (_jsxs("div", { className: cx('space-y-1', className), children: [name ? (_jsxs("button", { type: 'button', onClick: () => hasComplexItems && setExpanded(!expanded), className: cx('flex items-center gap-1 group w-full text-left', !hasComplexItems && 'cursor-default'), children: [hasComplexItems && (_jsx(ChevronIcon, { className: cx('text-muted-foreground transition-transform', expanded && 'rotate-90') })), _jsx(PropertyRow, { name: name, type: displayType, description: schema.description, required: required, depth: depth, className: 'flex-1' })] })) : (_jsxs("div", { className: 'flex items-center gap-1', children: [hasComplexItems && (_jsx("button", { type: 'button', onClick: () => setExpanded(!expanded), className: 'flex items-center', children: _jsx(ChevronIcon, { className: cx('text-muted-foreground transition-transform', expanded && 'rotate-90') }) })), _jsx(PropertyRow, { type: displayType, description: schema.description, depth: depth })] })), expanded && hasComplexItems && itemSchema && (_jsx("div", { className: 'space-y-1 ml-4 border-l border-border pl-4', children: _jsx(SchemaViewer, { schema: itemSchema, spec: resolverSpec ?? undefined, depth: depth + 1, visitedRefs: visitedRefs }) }))] }));
|
|
72
|
+
}
|
|
73
|
+
// Handle nullable non-array types
|
|
74
|
+
if (Array.isArray(schema.type)) {
|
|
75
|
+
const nonNullTypes = schema.type.filter(t => t !== 'null');
|
|
76
|
+
const isNullable = schema.type.includes('null');
|
|
77
|
+
const displayType = nonNullTypes.length > 0
|
|
78
|
+
? `${nonNullTypes.join(' | ')}${isNullable ? ' | null' : ''}`
|
|
79
|
+
: 'null';
|
|
80
|
+
return (_jsx(PropertyRow, { name: name, type: displayType, description: schema.description, required: required, enumValues: schema.enum, defaultValue: schema.default, example: schema.example, examples: schema.examples, format: schema.format, readOnly: schema.readOnly, deprecated: schema.deprecated, minimum: schema.minimum, maximum: schema.maximum, minLength: schema.minLength, maxLength: schema.maxLength, pattern: schema.pattern, depth: depth, className: className }));
|
|
81
|
+
}
|
|
82
|
+
// Handle primitive types
|
|
83
|
+
return (_jsx(PropertyRow, { name: name, type: getSchemaType(schema), description: schema.description, required: required, enumValues: schema.enum, defaultValue: schema.default, example: schema.example, examples: schema.examples, format: schema.format, readOnly: schema.readOnly, deprecated: schema.deprecated, minimum: schema.minimum, maximum: schema.maximum, minLength: schema.minLength, maxLength: schema.maxLength, pattern: schema.pattern, depth: depth, className: className }));
|
|
84
|
+
}
|
|
85
|
+
function SchemaVariants({ variants, combinator, discriminator, spec, visitedRefs, className, }) {
|
|
86
|
+
const [selected, setSelected] = React.useState(0);
|
|
87
|
+
const activeVariant = variants[Math.min(selected, variants.length - 1)];
|
|
88
|
+
return (_jsxs("div", { className: cx('rounded-lg border border-border overflow-hidden', className), children: [_jsxs("div", { className: 'px-3 py-2 border-b border-border bg-muted/50 space-y-1.5', children: [_jsxs("p", { className: 'text-xs text-muted-foreground', children: [_jsx("span", { className: 'font-semibold uppercase tracking-wide', children: combinator === 'oneOf' ? 'One of' : 'Any of' }), ' ', "\u2014 ", combinator === 'oneOf' ? 'exactly one' : 'one or more', " of the following ", variants.length, " variants", discriminator && (_jsxs(_Fragment, { children: [", selected by", ' ', _jsx("code", { className: 'font-mono text-foreground bg-muted px-1 py-0.5 rounded', children: discriminator.propertyName })] }))] }), _jsx("div", { className: 'flex flex-wrap gap-1', children: variants.map((variant, i) => (_jsx("button", { type: 'button', onClick: () => setSelected(i), className: cx('px-2.5 py-1 text-xs font-mono font-medium rounded-md transition-colors border', i === selected
|
|
89
|
+
? 'bg-primary text-primary-foreground border-primary'
|
|
90
|
+
: 'bg-muted/50 text-muted-foreground border-border hover:bg-muted'), children: getVariantLabel(variant, discriminator, i) }, i))) })] }), activeVariant && (_jsx("div", { className: 'px-3 py-2', children: _jsx(SchemaViewer, { schema: activeVariant, spec: spec, depth: 1, visitedRefs: visitedRefs }, selected) }))] }));
|
|
91
|
+
}
|
|
92
|
+
function getVariantLabel(schema, discriminator, index) {
|
|
93
|
+
if (schema.$ref && discriminator?.mapping) {
|
|
94
|
+
for (const [value, ref] of Object.entries(discriminator.mapping)) {
|
|
95
|
+
if (ref === schema.$ref) {
|
|
96
|
+
return value;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
if (schema.title) {
|
|
101
|
+
return schema.title;
|
|
102
|
+
}
|
|
103
|
+
if (schema.$ref) {
|
|
104
|
+
return getRefName(schema.$ref);
|
|
105
|
+
}
|
|
106
|
+
const type = getSchemaType(schema);
|
|
107
|
+
return type === 'any' ? `Option ${index + 1}` : type;
|
|
108
|
+
}
|
|
109
|
+
export function SchemaViewerProvider({ spec, children, }) {
|
|
110
|
+
return (_jsx(SchemaResolverContext.Provider, { value: spec, children: children }));
|
|
111
|
+
}
|
|
112
|
+
function PropertyRow({ name, type, description, required, enumValues, defaultValue, example, examples, format, readOnly, deprecated, minimum, maximum, minLength, maxLength, pattern, className, }) {
|
|
113
|
+
const displayExample = example ?? (examples && examples.length > 0 ? examples[0] : undefined);
|
|
114
|
+
const hasValidation = minimum !== undefined ||
|
|
115
|
+
maximum !== undefined ||
|
|
116
|
+
minLength !== undefined ||
|
|
117
|
+
maxLength !== undefined ||
|
|
118
|
+
pattern !== undefined;
|
|
119
|
+
const hasMetadata = enumValues ||
|
|
120
|
+
defaultValue !== undefined ||
|
|
121
|
+
displayExample !== undefined ||
|
|
122
|
+
hasValidation;
|
|
123
|
+
return (_jsxs("div", { className: cx('py-2', className), children: [_jsxs("div", { className: 'flex flex-wrap items-center gap-2', children: [name && (_jsx("code", { className: cx('font-mono text-[13px] font-semibold', deprecated
|
|
124
|
+
? 'text-muted-foreground line-through'
|
|
125
|
+
: 'text-foreground'), children: name })), required && (_jsx(Badge, { variant: 'destructive', className: 'text-[10px] px-1.5 py-0', children: "required" })), readOnly && (_jsx(Badge, { variant: 'secondary', className: 'text-[10px] px-1.5 py-0', children: "read-only" })), _jsxs("span", { className: 'text-xs', children: [_jsx("span", { className: 'text-emerald-600 dark:text-emerald-400 font-mono font-medium', children: type }), format && (_jsxs("span", { className: 'text-muted-foreground ml-1', children: ["(", format, ")"] }))] })] }), description && (_jsx("p", { className: 'text-sm text-muted-foreground mt-0.5 leading-relaxed', children: description })), hasMetadata && (_jsxs("div", { className: 'mt-1.5 text-xs space-y-1', children: [hasValidation && (_jsxs("div", { className: 'flex flex-wrap gap-3 text-muted-foreground', children: [minLength !== undefined && (_jsxs("span", { children: ['>=', minLength, " characters"] })), maxLength !== undefined && (_jsxs("span", { children: ['<=', maxLength, " characters"] })), minimum !== undefined && (_jsxs("span", { children: ['>=', minimum] })), maximum !== undefined && (_jsxs("span", { children: ['<=', maximum] })), pattern && (_jsxs("span", { children: ["Pattern:", ' ', _jsx("code", { className: 'text-foreground bg-muted px-1 py-0.5 rounded', children: pattern })] }))] })), _jsxs("div", { className: 'flex flex-wrap gap-3', children: [enumValues && enumValues.length > 0 && enumValues.length <= 10 && (_jsxs("div", { className: 'text-muted-foreground', children: ["Enum:", ' ', _jsx("code", { className: 'text-foreground bg-muted px-1 py-0.5 rounded', children: enumValues.map(String).join(' | ') })] })), defaultValue !== undefined && (_jsxs("div", { className: 'text-muted-foreground', children: ["Default:", ' ', _jsx("code", { className: 'text-foreground bg-muted px-1 py-0.5 rounded', children: JSON.stringify(defaultValue) })] })), displayExample !== undefined && (_jsxs("div", { className: 'text-muted-foreground', children: ["Example:", ' ', _jsx("code", { className: 'text-foreground bg-muted px-1 py-0.5 rounded', children: JSON.stringify(displayExample) })] }))] })] }))] }));
|
|
126
|
+
}
|
|
127
|
+
function getSchemaType(schema) {
|
|
128
|
+
if (schema.$ref) {
|
|
129
|
+
return getRefName(schema.$ref);
|
|
130
|
+
}
|
|
131
|
+
if (Array.isArray(schema.type)) {
|
|
132
|
+
return schema.type.join(' | ');
|
|
133
|
+
}
|
|
134
|
+
if (schema.type === 'array' && schema.items) {
|
|
135
|
+
return `${getSchemaType(schema.items)}[]`;
|
|
136
|
+
}
|
|
137
|
+
if (schema.allOf) {
|
|
138
|
+
return 'allOf';
|
|
139
|
+
}
|
|
140
|
+
if (schema.oneOf) {
|
|
141
|
+
return 'oneOf';
|
|
142
|
+
}
|
|
143
|
+
if (schema.anyOf) {
|
|
144
|
+
return 'anyOf';
|
|
145
|
+
}
|
|
146
|
+
return schema.type || 'any';
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=SchemaViewer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaViewer.js","sourceRoot":"","sources":["../../src/components/SchemaViewer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { ApiOperation } from './ApiOperation';
|
|
2
|
+
export { ApiOperationCard } from './ApiOperationCard';
|
|
3
|
+
export { ApiParameters } from './ApiParameters';
|
|
4
|
+
export { ApiRequestBody } from './ApiRequestBody';
|
|
5
|
+
export { ApiResponse } from './ApiResponse';
|
|
6
|
+
export { ApiSidebar } from './ApiSidebar';
|
|
7
|
+
export { Badge } from './Badge';
|
|
8
|
+
export { MethodBadge } from './MethodBadge';
|
|
9
|
+
export { SchemaViewer, SchemaViewerProvider } from './SchemaViewer';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { ApiOperation } from './ApiOperation';
|
|
2
|
+
export { ApiOperationCard } from './ApiOperationCard';
|
|
3
|
+
export { ApiParameters } from './ApiParameters';
|
|
4
|
+
export { ApiRequestBody } from './ApiRequestBody';
|
|
5
|
+
export { ApiResponse } from './ApiResponse';
|
|
6
|
+
export { ApiSidebar } from './ApiSidebar';
|
|
7
|
+
export { Badge } from './Badge';
|
|
8
|
+
export { MethodBadge } from './MethodBadge';
|
|
9
|
+
export { SchemaViewer, SchemaViewerProvider } from './SchemaViewer';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA"}
|
package/dist/cx.d.ts
ADDED
package/dist/cx.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cx.d.ts","sourceRoot":"","sources":["../src/cx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAE,EAAE,EAAE,CAAA"}
|
package/dist/cx.js
ADDED
package/dist/cx.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cx.js","sourceRoot":"","sources":["../src/cx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAE,EAAE,EAAE,CAAA"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type { APIEndpoint, APITag, OpenAPIComponents, OpenAPIExternalDocs, OpenAPIHeader, OpenAPIInfo, OpenAPIMediaType, OpenAPIOperation, OpenAPIParameter, OpenAPIPathItem, OpenAPIRequestBody, OpenAPIResponse, OpenAPISchema, OpenAPISecurityScheme, OpenAPISpec, OpenAPITag, ParsedAPISpec, } from './types';
|
|
2
|
+
export { markdownToHtml } from './markdown';
|
|
3
|
+
export { createEndpointSlug, generateExampleFromSchema, getRefName, HTTP_METHOD_COLORS, isPublicOperation, parseOpenAPISpecFromData, resolveRef, slugify, } from './openapi';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,WAAW,EACX,MAAM,EACN,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAG3C,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,UAAU,EACV,OAAO,GACR,MAAM,WAAW,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// Markdown
|
|
2
|
+
export { markdownToHtml } from './markdown';
|
|
3
|
+
// Utilities and constants
|
|
4
|
+
export { createEndpointSlug, generateExampleFromSchema, getRefName, HTTP_METHOD_COLORS, isPublicOperation, parseOpenAPISpecFromData, resolveRef, slugify, } from './openapi';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAqBA,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3C,0BAA0B;AAC1B,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,UAAU,EACV,OAAO,GACR,MAAM,WAAW,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CA2FjD"}
|
package/dist/markdown.js
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
export function markdownToHtml(md) {
|
|
2
|
+
// Escape HTML entities first
|
|
3
|
+
let html = md
|
|
4
|
+
.replace(/&/g, '&')
|
|
5
|
+
.replace(/</g, '<')
|
|
6
|
+
.replace(/>/g, '>')
|
|
7
|
+
.replace(/"/g, '"');
|
|
8
|
+
// Restore blockquote markers (we escaped > above)
|
|
9
|
+
html = html.replace(/^>\s?/gm, '> ');
|
|
10
|
+
// Split into blocks by double newline
|
|
11
|
+
const blocks = html.split(/\n\n+/);
|
|
12
|
+
const rendered = [];
|
|
13
|
+
for (let block of blocks) {
|
|
14
|
+
block = block.trim();
|
|
15
|
+
if (!block) {
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
// Headers
|
|
19
|
+
if (block.startsWith('#### ')) {
|
|
20
|
+
rendered.push(`<h4>${inlineFormat(block.slice(5))}</h4>`);
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
if (block.startsWith('### ')) {
|
|
24
|
+
rendered.push(`<h3>${inlineFormat(block.slice(4))}</h3>`);
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
if (block.startsWith('## ')) {
|
|
28
|
+
rendered.push(`<h2>${inlineFormat(block.slice(3))}</h2>`);
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
// Blockquotes → render as info callout cards
|
|
32
|
+
if (block.startsWith('> ')) {
|
|
33
|
+
const text = block
|
|
34
|
+
.split('\n')
|
|
35
|
+
.map(line => line.replace(/^>\s?/, ''))
|
|
36
|
+
.join(' ');
|
|
37
|
+
rendered.push(`<div class="not-prose flex gap-3 items-start rounded-lg border border-sky-200 bg-sky-50/80 dark:border-sky-800 dark:bg-sky-950/30 px-4 py-3 my-3">` +
|
|
38
|
+
`<svg class="w-5 h-5 text-sky-500 shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>` +
|
|
39
|
+
`<p class="text-sm text-sky-900 dark:text-sky-200 leading-relaxed">${inlineFormat(text)}</p>` +
|
|
40
|
+
`</div>`);
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
// Lists (- or * bullet points)
|
|
44
|
+
if (/^[-*]\s/m.test(block)) {
|
|
45
|
+
const lines = block.split('\n');
|
|
46
|
+
const items = [];
|
|
47
|
+
let preamble = '';
|
|
48
|
+
for (const line of lines) {
|
|
49
|
+
if (/^[-*]\s/.test(line)) {
|
|
50
|
+
items.push(`<li>${inlineFormat(line.replace(/^[-*]\s+/, ''))}</li>`);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
preamble += (preamble ? ' ' : '') + line;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (preamble) {
|
|
57
|
+
rendered.push(`<p>${inlineFormat(preamble)}</p>`);
|
|
58
|
+
}
|
|
59
|
+
rendered.push(`<ul>${items.join('')}</ul>`);
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
// Numbered lists
|
|
63
|
+
if (/^\d+\.\s/m.test(block)) {
|
|
64
|
+
const lines = block.split('\n');
|
|
65
|
+
const items = [];
|
|
66
|
+
for (const line of lines) {
|
|
67
|
+
if (/^\d+\.\s/.test(line)) {
|
|
68
|
+
items.push(`<li>${inlineFormat(line.replace(/^\d+\.\s+/, ''))}</li>`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
rendered.push(`<ol>${items.join('')}</ol>`);
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
// Regular paragraph
|
|
75
|
+
rendered.push(`<p>${inlineFormat(block)}</p>`);
|
|
76
|
+
}
|
|
77
|
+
return rendered.join('\n');
|
|
78
|
+
}
|
|
79
|
+
/** Apply inline markdown formatting */
|
|
80
|
+
function inlineFormat(text) {
|
|
81
|
+
// Code blocks (backtick) - do this first to protect contents
|
|
82
|
+
text = text.replace(/`([^`]+)`/g, '<code>$1</code>');
|
|
83
|
+
// Bold + italic
|
|
84
|
+
text = text.replace(/\*\*\*(.+?)\*\*\*/g, '<strong><em>$1</em></strong>');
|
|
85
|
+
// Bold
|
|
86
|
+
text = text.replace(/\*\*(.+?)\*\*/g, '<strong>$1</strong>');
|
|
87
|
+
// Italic
|
|
88
|
+
text = text.replace(/\*(.+?)\*/g, '<em>$1</em>');
|
|
89
|
+
// Links (only allow safe protocols)
|
|
90
|
+
text = text.replace(/\[([^\]]+)\]\(([^)]+)\)/g, (_, linkText, url) => {
|
|
91
|
+
if (/^(https?:|mailto:|\/)/i.test(url)) {
|
|
92
|
+
return `<a href="${url}" target="_blank" rel="noopener noreferrer">${linkText}</a>`;
|
|
93
|
+
}
|
|
94
|
+
return linkText;
|
|
95
|
+
});
|
|
96
|
+
// Line breaks within a block
|
|
97
|
+
text = text.replace(/\n/g, '<br />');
|
|
98
|
+
return text;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { OpenAPIOperation, OpenAPISchema, OpenAPISpec, ParsedAPISpec } from './types';
|
|
2
|
+
export declare const HTTP_METHOD_COLORS: Record<string, {
|
|
3
|
+
bg: string;
|
|
4
|
+
text: string;
|
|
5
|
+
border: string;
|
|
6
|
+
}>;
|
|
7
|
+
export declare function slugify(str: string): string;
|
|
8
|
+
export declare function createEndpointSlug(method: string, path: string): string;
|
|
9
|
+
export declare function resolveRef(ref: string, spec: OpenAPISpec): OpenAPISchema | undefined;
|
|
10
|
+
export declare function getRefName(ref: string): string;
|
|
11
|
+
export declare function isPublicOperation(operation: OpenAPIOperation): boolean;
|
|
12
|
+
export declare function generateExampleFromSchema(schema: OpenAPISchema, spec?: OpenAPISpec, visitedRefs?: Set<string>, depth?: number): unknown;
|
|
13
|
+
/** Synchronous — consumers must fetch the spec before calling. */
|
|
14
|
+
export declare function parseOpenAPISpecFromData(spec: OpenAPISpec): ParsedAPISpec;
|
|
15
|
+
//# sourceMappingURL=openapi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../src/openapi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,aAAa,EACd,MAAM,SAAS,CAAA;AAIhB,eAAO,MAAM,kBAAkB,EAAE,MAAM,CACrC,MAAM,EACN;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA0C7C,CAAA;AAID,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK3C;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAOvE;AAED,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,GAChB,aAAa,GAAG,SAAS,CAW3B;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAEtE;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,aAAa,EACrB,IAAI,CAAC,EAAE,WAAW,EAClB,WAAW,GAAE,GAAG,CAAC,MAAM,CAAa,EACpC,KAAK,SAAI,GACR,OAAO,CA6JT;AAED,kEAAkE;AAClE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,WAAW,GAAG,aAAa,CAyEzE"}
|