@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.
Files changed (65) hide show
  1. package/dist/components/ApiOperation.d.ts +9 -0
  2. package/dist/components/ApiOperation.d.ts.map +1 -0
  3. package/dist/components/ApiOperation.js +12 -0
  4. package/dist/components/ApiOperation.js.map +1 -0
  5. package/dist/components/ApiOperationCard.d.ts +9 -0
  6. package/dist/components/ApiOperationCard.d.ts.map +1 -0
  7. package/dist/components/ApiOperationCard.js +14 -0
  8. package/dist/components/ApiOperationCard.js.map +1 -0
  9. package/dist/components/ApiParameters.d.ts +8 -0
  10. package/dist/components/ApiParameters.d.ts.map +1 -0
  11. package/dist/components/ApiParameters.js +39 -0
  12. package/dist/components/ApiParameters.js.map +1 -0
  13. package/dist/components/ApiRequestBody.d.ts +10 -0
  14. package/dist/components/ApiRequestBody.d.ts.map +1 -0
  15. package/dist/components/ApiRequestBody.js +17 -0
  16. package/dist/components/ApiRequestBody.js.map +1 -0
  17. package/dist/components/ApiResponse.d.ts +11 -0
  18. package/dist/components/ApiResponse.d.ts.map +1 -0
  19. package/dist/components/ApiResponse.js +64 -0
  20. package/dist/components/ApiResponse.js.map +1 -0
  21. package/dist/components/ApiSidebar.d.ts +13 -0
  22. package/dist/components/ApiSidebar.d.ts.map +1 -0
  23. package/dist/components/ApiSidebar.js +34 -0
  24. package/dist/components/ApiSidebar.js.map +1 -0
  25. package/dist/components/Badge.d.ts +9 -0
  26. package/dist/components/Badge.d.ts.map +1 -0
  27. package/dist/components/Badge.js +12 -0
  28. package/dist/components/Badge.js.map +1 -0
  29. package/dist/components/ChevronIcon.d.ts +6 -0
  30. package/dist/components/ChevronIcon.d.ts.map +1 -0
  31. package/dist/components/ChevronIcon.js +6 -0
  32. package/dist/components/ChevronIcon.js.map +1 -0
  33. package/dist/components/MethodBadge.d.ts +7 -0
  34. package/dist/components/MethodBadge.d.ts.map +1 -0
  35. package/dist/components/MethodBadge.js +8 -0
  36. package/dist/components/MethodBadge.js.map +1 -0
  37. package/dist/components/SchemaViewer.d.ts +18 -0
  38. package/dist/components/SchemaViewer.d.ts.map +1 -0
  39. package/dist/components/SchemaViewer.js +148 -0
  40. package/dist/components/SchemaViewer.js.map +1 -0
  41. package/dist/components/index.d.ts +10 -0
  42. package/dist/components/index.d.ts.map +1 -0
  43. package/dist/components/index.js +10 -0
  44. package/dist/components/index.js.map +1 -0
  45. package/dist/cx.d.ts +3 -0
  46. package/dist/cx.d.ts.map +1 -0
  47. package/dist/cx.js +3 -0
  48. package/dist/cx.js.map +1 -0
  49. package/dist/index.d.ts +4 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +5 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/markdown.d.ts +2 -0
  54. package/dist/markdown.d.ts.map +1 -0
  55. package/dist/markdown.js +100 -0
  56. package/dist/markdown.js.map +1 -0
  57. package/dist/openapi.d.ts +15 -0
  58. package/dist/openapi.d.ts.map +1 -0
  59. package/dist/openapi.js +259 -0
  60. package/dist/openapi.js.map +1 -0
  61. package/dist/types.d.ts +150 -0
  62. package/dist/types.d.ts.map +1 -0
  63. package/dist/types.js +1 -0
  64. package/dist/types.js.map +1 -0
  65. 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
@@ -0,0 +1,3 @@
1
+ import cx from 'classnames';
2
+ export { cx };
3
+ //# sourceMappingURL=cx.d.ts.map
@@ -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
@@ -0,0 +1,3 @@
1
+ import cx from 'classnames';
2
+ export { cx };
3
+ //# sourceMappingURL=cx.js.map
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"}
@@ -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,2 @@
1
+ export declare function markdownToHtml(md: string): string;
2
+ //# sourceMappingURL=markdown.d.ts.map
@@ -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"}
@@ -0,0 +1,100 @@
1
+ export function markdownToHtml(md) {
2
+ // Escape HTML entities first
3
+ let html = md
4
+ .replace(/&/g, '&amp;')
5
+ .replace(/</g, '&lt;')
6
+ .replace(/>/g, '&gt;')
7
+ .replace(/"/g, '&quot;');
8
+ // Restore blockquote markers (we escaped > above)
9
+ html = html.replace(/^&gt;\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"}