lokicms-plugin-api-docs 1.0.0

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 (38) hide show
  1. package/README.md +220 -0
  2. package/dist/formatters/json-formatter.d.ts +25 -0
  3. package/dist/formatters/json-formatter.d.ts.map +1 -0
  4. package/dist/formatters/json-formatter.js +45 -0
  5. package/dist/formatters/json-formatter.js.map +1 -0
  6. package/dist/formatters/markdown-formatter.d.ts +21 -0
  7. package/dist/formatters/markdown-formatter.d.ts.map +1 -0
  8. package/dist/formatters/markdown-formatter.js +203 -0
  9. package/dist/formatters/markdown-formatter.js.map +1 -0
  10. package/dist/formatters/openapi-formatter.d.ts +14 -0
  11. package/dist/formatters/openapi-formatter.d.ts.map +1 -0
  12. package/dist/formatters/openapi-formatter.js +505 -0
  13. package/dist/formatters/openapi-formatter.js.map +1 -0
  14. package/dist/index.d.ts +16 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +18 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/plugin.d.ts +18 -0
  19. package/dist/plugin.d.ts.map +1 -0
  20. package/dist/plugin.js +448 -0
  21. package/dist/plugin.js.map +1 -0
  22. package/dist/services/doc-generator.d.ts +22 -0
  23. package/dist/services/doc-generator.d.ts.map +1 -0
  24. package/dist/services/doc-generator.js +370 -0
  25. package/dist/services/doc-generator.js.map +1 -0
  26. package/dist/services/schema-converter.d.ts +19 -0
  27. package/dist/services/schema-converter.d.ts.map +1 -0
  28. package/dist/services/schema-converter.js +371 -0
  29. package/dist/services/schema-converter.js.map +1 -0
  30. package/dist/services/typescript-generator.d.ts +27 -0
  31. package/dist/services/typescript-generator.d.ts.map +1 -0
  32. package/dist/services/typescript-generator.js +294 -0
  33. package/dist/services/typescript-generator.js.map +1 -0
  34. package/dist/types.d.ts +245 -0
  35. package/dist/types.d.ts.map +1 -0
  36. package/dist/types.js +5 -0
  37. package/dist/types.js.map +1 -0
  38. package/package.json +41 -0
@@ -0,0 +1,294 @@
1
+ /**
2
+ * TypeScript Generator Service
3
+ * Generates TypeScript interfaces from API documentation
4
+ */
5
+ /**
6
+ * Generate TypeScript code from API documentation
7
+ */
8
+ export function generateTypeScript(docs, options = {}) {
9
+ const { includeTools = true, includeContentTypes = true, includeComments = true, exportFormat = 'named', } = options;
10
+ const interfaces = [];
11
+ const types = [];
12
+ const lines = [];
13
+ // Header comment
14
+ if (includeComments) {
15
+ lines.push('/**');
16
+ lines.push(` * ${docs.info.title}`);
17
+ lines.push(' * ');
18
+ lines.push(` * Version: ${docs.info.version}`);
19
+ lines.push(` * Generated: ${docs.info.generatedAt}`);
20
+ lines.push(' * ');
21
+ lines.push(' * This file is auto-generated. Do not edit manually.');
22
+ lines.push(' */');
23
+ lines.push('');
24
+ }
25
+ // Generate tool input interfaces
26
+ if (includeTools && docs.tools.length > 0) {
27
+ if (includeComments) {
28
+ lines.push('// =============================================================================');
29
+ lines.push('// MCP Tool Input Types');
30
+ lines.push('// =============================================================================');
31
+ lines.push('');
32
+ }
33
+ for (const tool of docs.tools) {
34
+ const interfaceDef = generateToolInterface(tool, includeComments);
35
+ interfaces.push(interfaceDef);
36
+ lines.push(formatInterface(interfaceDef, exportFormat, includeComments));
37
+ lines.push('');
38
+ }
39
+ }
40
+ // Generate content type interfaces
41
+ if (includeContentTypes && docs.contentTypes.length > 0) {
42
+ if (includeComments) {
43
+ lines.push('// =============================================================================');
44
+ lines.push('// Content Type Interfaces');
45
+ lines.push('// =============================================================================');
46
+ lines.push('');
47
+ }
48
+ for (const contentType of docs.contentTypes) {
49
+ const interfaceDef = generateContentTypeInterface(contentType, includeComments);
50
+ interfaces.push(interfaceDef);
51
+ lines.push(formatInterface(interfaceDef, exportFormat, includeComments));
52
+ lines.push('');
53
+ }
54
+ }
55
+ // Generate union types for tool names
56
+ if (includeTools && docs.tools.length > 0) {
57
+ const toolNamesType = {
58
+ name: 'McpToolName',
59
+ definition: docs.tools.map((t) => `'${t.name}'`).join(' | '),
60
+ description: 'All available MCP tool names',
61
+ };
62
+ types.push(toolNamesType);
63
+ if (includeComments) {
64
+ lines.push('/**');
65
+ lines.push(' * All available MCP tool names');
66
+ lines.push(' */');
67
+ }
68
+ lines.push(`export type ${toolNamesType.name} = ${toolNamesType.definition};`);
69
+ lines.push('');
70
+ }
71
+ // Generate union types for content type slugs
72
+ if (includeContentTypes && docs.contentTypes.length > 0) {
73
+ const slugsType = {
74
+ name: 'ContentTypeSlug',
75
+ definition: docs.contentTypes.map((t) => `'${t.slug}'`).join(' | '),
76
+ description: 'All available content type slugs',
77
+ };
78
+ types.push(slugsType);
79
+ if (includeComments) {
80
+ lines.push('/**');
81
+ lines.push(' * All available content type slugs');
82
+ lines.push(' */');
83
+ }
84
+ lines.push(`export type ${slugsType.name} = ${slugsType.definition};`);
85
+ lines.push('');
86
+ }
87
+ // Generate tool input mapping type
88
+ if (includeTools && docs.tools.length > 0) {
89
+ lines.push('/**');
90
+ lines.push(' * Map of tool names to their input types');
91
+ lines.push(' */');
92
+ lines.push('export interface McpToolInputMap {');
93
+ for (const tool of docs.tools) {
94
+ const interfaceName = pascalCase(tool.name) + 'Input';
95
+ lines.push(` ${tool.name}: ${interfaceName};`);
96
+ }
97
+ lines.push('}');
98
+ lines.push('');
99
+ }
100
+ return {
101
+ interfaces,
102
+ types,
103
+ code: lines.join('\n'),
104
+ };
105
+ }
106
+ /**
107
+ * Generate TypeScript interface from tool documentation
108
+ */
109
+ function generateToolInterface(tool, includeComments = true) {
110
+ const name = pascalCase(tool.name) + 'Input';
111
+ const properties = tool.parameters.map((param) => ({
112
+ name: param.name,
113
+ type: getTypeScriptType(param.type, param.enum),
114
+ optional: !param.required,
115
+ description: param.description,
116
+ }));
117
+ return {
118
+ name,
119
+ properties,
120
+ description: includeComments ? tool.description : undefined,
121
+ };
122
+ }
123
+ /**
124
+ * Generate TypeScript interface from content type
125
+ */
126
+ function generateContentTypeInterface(contentType, includeComments = true) {
127
+ const name = pascalCase(contentType.name);
128
+ const properties = [
129
+ { name: 'id', type: 'string', optional: false, description: 'Unique identifier' },
130
+ { name: 'createdAt', type: 'Date | string', optional: false, description: 'Creation timestamp' },
131
+ { name: 'updatedAt', type: 'Date | string', optional: false, description: 'Last update timestamp' },
132
+ ];
133
+ for (const field of contentType.fields) {
134
+ properties.push({
135
+ name: field.name,
136
+ type: getFieldTypeScriptType(field.type),
137
+ optional: !field.required,
138
+ description: field.description,
139
+ });
140
+ }
141
+ return {
142
+ name,
143
+ properties,
144
+ description: includeComments ? contentType.description : undefined,
145
+ };
146
+ }
147
+ /**
148
+ * Format interface as TypeScript code
149
+ */
150
+ function formatInterface(interfaceDef, exportFormat, includeComments = true) {
151
+ const lines = [];
152
+ if (includeComments && interfaceDef.description) {
153
+ lines.push('/**');
154
+ lines.push(` * ${interfaceDef.description}`);
155
+ lines.push(' */');
156
+ }
157
+ const exportKeyword = exportFormat === 'named' ? 'export ' : '';
158
+ lines.push(`${exportKeyword}interface ${interfaceDef.name} {`);
159
+ for (const prop of interfaceDef.properties) {
160
+ if (includeComments && prop.description) {
161
+ lines.push(` /** ${prop.description} */`);
162
+ }
163
+ const optionalMark = prop.optional ? '?' : '';
164
+ lines.push(` ${prop.name}${optionalMark}: ${prop.type};`);
165
+ }
166
+ lines.push('}');
167
+ return lines.join('\n');
168
+ }
169
+ /**
170
+ * Convert parameter type to TypeScript type
171
+ */
172
+ function getTypeScriptType(type, enumValues) {
173
+ if (enumValues && enumValues.length > 0) {
174
+ return enumValues.map((v) => `'${v}'`).join(' | ');
175
+ }
176
+ // Handle compound types
177
+ if (type.includes('|')) {
178
+ return type;
179
+ }
180
+ const typeMap = {
181
+ string: 'string',
182
+ number: 'number',
183
+ integer: 'number',
184
+ boolean: 'boolean',
185
+ array: 'unknown[]',
186
+ object: 'Record<string, unknown>',
187
+ date: 'Date | string',
188
+ 'Record<string, string>': 'Record<string, string>',
189
+ unknown: 'unknown',
190
+ any: 'unknown',
191
+ null: 'null',
192
+ undefined: 'undefined',
193
+ };
194
+ return typeMap[type.toLowerCase()] || 'unknown';
195
+ }
196
+ /**
197
+ * Convert field type to TypeScript type
198
+ */
199
+ function getFieldTypeScriptType(fieldType) {
200
+ const typeMap = {
201
+ string: 'string',
202
+ text: 'string',
203
+ richtext: 'string',
204
+ number: 'number',
205
+ integer: 'number',
206
+ boolean: 'boolean',
207
+ date: 'Date | string',
208
+ datetime: 'Date | string',
209
+ array: 'unknown[]',
210
+ object: 'Record<string, unknown>',
211
+ reference: 'string',
212
+ media: 'string',
213
+ json: 'Record<string, unknown>',
214
+ };
215
+ return typeMap[fieldType.toLowerCase()] || 'unknown';
216
+ }
217
+ /**
218
+ * Convert JSON Schema property to TypeScript type
219
+ */
220
+ export function jsonSchemaToTypeScript(schema) {
221
+ if (schema.enum) {
222
+ return schema.enum.map((v) => (typeof v === 'string' ? `'${v}'` : String(v))).join(' | ');
223
+ }
224
+ if (schema.oneOf) {
225
+ return schema.oneOf.map((s) => jsonSchemaToTypeScript(s)).join(' | ');
226
+ }
227
+ if (schema.anyOf) {
228
+ return schema.anyOf.map((s) => jsonSchemaToTypeScript(s)).join(' | ');
229
+ }
230
+ if (schema.allOf) {
231
+ return schema.allOf.map((s) => jsonSchemaToTypeScript(s)).join(' & ');
232
+ }
233
+ switch (schema.type) {
234
+ case 'string':
235
+ return 'string';
236
+ case 'number':
237
+ case 'integer':
238
+ return 'number';
239
+ case 'boolean':
240
+ return 'boolean';
241
+ case 'null':
242
+ return 'null';
243
+ case 'array':
244
+ if (schema.items) {
245
+ return `${jsonSchemaToTypeScript(schema.items)}[]`;
246
+ }
247
+ return 'unknown[]';
248
+ case 'object':
249
+ if (schema.properties) {
250
+ const props = Object.entries(schema.properties)
251
+ .map(([key, prop]) => {
252
+ const optional = !schema.required?.includes(key) ? '?' : '';
253
+ return `${key}${optional}: ${jsonSchemaToTypeScript(prop)}`;
254
+ })
255
+ .join('; ');
256
+ return `{ ${props} }`;
257
+ }
258
+ return 'Record<string, unknown>';
259
+ default:
260
+ return 'unknown';
261
+ }
262
+ }
263
+ /**
264
+ * Convert string to PascalCase
265
+ */
266
+ function pascalCase(str) {
267
+ return str
268
+ .split(/[_-]/)
269
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
270
+ .join('');
271
+ }
272
+ /**
273
+ * Generate TypeScript interfaces for tools only
274
+ */
275
+ export function generateToolTypes(tools, includeComments = true) {
276
+ const output = generateTypeScript({
277
+ info: { title: '', version: '', description: '', generatedAt: '' },
278
+ tools,
279
+ contentTypes: [],
280
+ }, { includeTools: true, includeContentTypes: false, includeComments });
281
+ return output.code;
282
+ }
283
+ /**
284
+ * Generate TypeScript interfaces for content types only
285
+ */
286
+ export function generateContentTypeTypes(contentTypes, includeComments = true) {
287
+ const output = generateTypeScript({
288
+ info: { title: '', version: '', description: '', generatedAt: '' },
289
+ tools: [],
290
+ contentTypes,
291
+ }, { includeTools: false, includeContentTypes: true, includeComments });
292
+ return output.code;
293
+ }
294
+ //# sourceMappingURL=typescript-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-generator.js","sourceRoot":"","sources":["../../src/services/typescript-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,245 @@
1
+ /**
2
+ * LokiCMS API Docs Plugin - Type Definitions
3
+ */
4
+ import type { z } from 'zod';
5
+ export interface ApiDocsConfig {
6
+ /** API title for documentation */
7
+ title?: string;
8
+ /** API version */
9
+ version?: string;
10
+ /** API description */
11
+ description?: string;
12
+ /** Base URL for endpoints */
13
+ baseUrl?: string;
14
+ /** Include example values in documentation */
15
+ includeExamples?: boolean;
16
+ /** Default output directory for exports */
17
+ outputDir?: string;
18
+ }
19
+ export interface Logger {
20
+ info: (msg: string, ...args: unknown[]) => void;
21
+ warn: (msg: string, ...args: unknown[]) => void;
22
+ error: (msg: string, ...args: unknown[]) => void;
23
+ debug: (msg: string, ...args: unknown[]) => void;
24
+ }
25
+ export interface McpToolDefinition {
26
+ description: string;
27
+ inputSchema: z.ZodType;
28
+ handler: (input: unknown) => Promise<unknown>;
29
+ }
30
+ export interface McpApi {
31
+ registerTool: (name: string, definition: McpToolDefinition) => void;
32
+ getTools?: () => Map<string, McpToolDefinition>;
33
+ listTools?: () => string[];
34
+ }
35
+ export interface ContentTypeField {
36
+ name: string;
37
+ type: string;
38
+ required?: boolean;
39
+ description?: string;
40
+ options?: unknown;
41
+ }
42
+ export interface ContentType {
43
+ name: string;
44
+ slug: string;
45
+ fields: ContentTypeField[];
46
+ description?: string;
47
+ }
48
+ export interface ContentApi {
49
+ getContentTypes?: () => ContentType[];
50
+ listContentTypes?: () => string[];
51
+ }
52
+ export interface PluginAPI {
53
+ config: Record<string, unknown>;
54
+ logger: Logger;
55
+ mcp: McpApi;
56
+ content?: ContentApi;
57
+ getCurrentUser?: () => {
58
+ id: string;
59
+ name?: string;
60
+ } | null;
61
+ }
62
+ export interface PluginDefinition {
63
+ name: string;
64
+ version: string;
65
+ description: string;
66
+ register: (api: PluginAPI) => Promise<void> | void;
67
+ }
68
+ export type OutputFormat = 'json' | 'markdown' | 'openapi' | 'typescript';
69
+ export interface JsonSchemaProperty {
70
+ type?: string;
71
+ description?: string;
72
+ enum?: string[];
73
+ items?: JsonSchemaProperty;
74
+ properties?: Record<string, JsonSchemaProperty>;
75
+ required?: string[];
76
+ default?: unknown;
77
+ example?: unknown;
78
+ format?: string;
79
+ minimum?: number;
80
+ maximum?: number;
81
+ minLength?: number;
82
+ maxLength?: number;
83
+ pattern?: string;
84
+ nullable?: boolean;
85
+ oneOf?: JsonSchemaProperty[];
86
+ anyOf?: JsonSchemaProperty[];
87
+ allOf?: JsonSchemaProperty[];
88
+ $ref?: string;
89
+ additionalProperties?: JsonSchemaProperty | boolean;
90
+ }
91
+ export interface JsonSchema extends JsonSchemaProperty {
92
+ $schema?: string;
93
+ title?: string;
94
+ definitions?: Record<string, JsonSchemaProperty>;
95
+ }
96
+ export interface ParameterDoc {
97
+ name: string;
98
+ type: string;
99
+ required: boolean;
100
+ description?: string;
101
+ default?: unknown;
102
+ example?: unknown;
103
+ enum?: string[];
104
+ }
105
+ export interface ToolDocumentation {
106
+ name: string;
107
+ description: string;
108
+ parameters: ParameterDoc[];
109
+ inputSchema: JsonSchema;
110
+ examples?: Array<{
111
+ name: string;
112
+ input: Record<string, unknown>;
113
+ description?: string;
114
+ }>;
115
+ }
116
+ export interface ContentTypeDocumentation {
117
+ name: string;
118
+ slug: string;
119
+ description?: string;
120
+ fields: Array<{
121
+ name: string;
122
+ type: string;
123
+ required: boolean;
124
+ description?: string;
125
+ options?: unknown;
126
+ }>;
127
+ }
128
+ export interface ApiDocumentation {
129
+ info: {
130
+ title: string;
131
+ version: string;
132
+ description: string;
133
+ generatedAt: string;
134
+ };
135
+ tools: ToolDocumentation[];
136
+ contentTypes: ContentTypeDocumentation[];
137
+ endpoints?: EndpointDocumentation[];
138
+ }
139
+ export interface EndpointDocumentation {
140
+ method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
141
+ path: string;
142
+ summary: string;
143
+ description?: string;
144
+ parameters?: ParameterDoc[];
145
+ requestBody?: JsonSchema;
146
+ responses?: Record<string, {
147
+ description: string;
148
+ schema?: JsonSchema;
149
+ }>;
150
+ tags?: string[];
151
+ }
152
+ export interface OpenApiInfo {
153
+ title: string;
154
+ version: string;
155
+ description?: string;
156
+ contact?: {
157
+ name?: string;
158
+ url?: string;
159
+ email?: string;
160
+ };
161
+ license?: {
162
+ name: string;
163
+ url?: string;
164
+ };
165
+ }
166
+ export interface OpenApiServer {
167
+ url: string;
168
+ description?: string;
169
+ }
170
+ export interface OpenApiParameter {
171
+ name: string;
172
+ in: 'query' | 'header' | 'path' | 'cookie';
173
+ description?: string;
174
+ required?: boolean;
175
+ schema: JsonSchemaProperty;
176
+ }
177
+ export interface OpenApiRequestBody {
178
+ description?: string;
179
+ required?: boolean;
180
+ content: {
181
+ [mediaType: string]: {
182
+ schema: JsonSchemaProperty;
183
+ example?: unknown;
184
+ };
185
+ };
186
+ }
187
+ export interface OpenApiResponse {
188
+ description: string;
189
+ content?: {
190
+ [mediaType: string]: {
191
+ schema: JsonSchemaProperty;
192
+ example?: unknown;
193
+ };
194
+ };
195
+ }
196
+ export interface OpenApiOperation {
197
+ summary?: string;
198
+ description?: string;
199
+ operationId?: string;
200
+ tags?: string[];
201
+ parameters?: OpenApiParameter[];
202
+ requestBody?: OpenApiRequestBody;
203
+ responses: Record<string, OpenApiResponse>;
204
+ }
205
+ export interface OpenApiPath {
206
+ get?: OpenApiOperation;
207
+ post?: OpenApiOperation;
208
+ put?: OpenApiOperation;
209
+ delete?: OpenApiOperation;
210
+ patch?: OpenApiOperation;
211
+ }
212
+ export interface OpenApiSpec {
213
+ openapi: '3.0.0' | '3.0.3' | '3.1.0';
214
+ info: OpenApiInfo;
215
+ servers?: OpenApiServer[];
216
+ paths: Record<string, OpenApiPath>;
217
+ components?: {
218
+ schemas?: Record<string, JsonSchemaProperty>;
219
+ securitySchemes?: Record<string, unknown>;
220
+ };
221
+ tags?: Array<{
222
+ name: string;
223
+ description?: string;
224
+ }>;
225
+ }
226
+ export interface TypeScriptInterface {
227
+ name: string;
228
+ properties: Array<{
229
+ name: string;
230
+ type: string;
231
+ optional: boolean;
232
+ description?: string;
233
+ }>;
234
+ description?: string;
235
+ }
236
+ export interface TypeScriptOutput {
237
+ interfaces: TypeScriptInterface[];
238
+ types: Array<{
239
+ name: string;
240
+ definition: string;
241
+ description?: string;
242
+ }>;
243
+ code: string;
244
+ }
245
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * LokiCMS API Docs Plugin - Type Definitions
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "lokicms-plugin-api-docs",
3
+ "version": "1.0.0",
4
+ "description": "API documentation generator for LokiCMS with OpenAPI, Markdown, and TypeScript output",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "type": "module",
8
+ "scripts": {
9
+ "build": "tsc",
10
+ "clean": "rm -rf dist",
11
+ "prepublishOnly": "npm run build"
12
+ },
13
+ "keywords": [
14
+ "lokicms",
15
+ "plugin",
16
+ "api",
17
+ "documentation",
18
+ "openapi",
19
+ "swagger",
20
+ "typescript",
21
+ "mcp"
22
+ ],
23
+ "author": "LokiCMS",
24
+ "license": "MIT",
25
+ "peerDependencies": {
26
+ "zod": "^3.0.0"
27
+ },
28
+ "devDependencies": {
29
+ "@types/node": "^20.10.0",
30
+ "typescript": "^5.3.0",
31
+ "zod": "^3.22.0"
32
+ },
33
+ "files": [
34
+ "dist",
35
+ "README.md"
36
+ ],
37
+ "repository": {
38
+ "type": "git",
39
+ "url": "https://github.com/MauricioPerera/lokicms-plugin-api-docs.git"
40
+ }
41
+ }