@demoscript/cli 1.0.0 → 1.0.2
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/bundle.cjs +43254 -0
- package/dist/index.js +3 -20
- package/dist/ui-dist/assets/index-DFwzKJ81.css +1 -0
- package/dist/ui-dist/assets/index-cngvCrhl.js +177 -0
- package/dist/ui-dist/favicon.svg +10 -0
- package/dist/ui-dist/index.html +2 -2
- package/package.json +1 -1
- package/dist/commands/serve.d.ts +0 -9
- package/dist/commands/serve.d.ts.map +0 -1
- package/dist/commands/serve.js +0 -197
- package/dist/commands/serve.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/executor.d.ts +0 -20
- package/dist/lib/executor.d.ts.map +0 -1
- package/dist/lib/executor.js +0 -185
- package/dist/lib/executor.js.map +0 -1
- package/dist/lib/executor.test.d.ts +0 -2
- package/dist/lib/executor.test.d.ts.map +0 -1
- package/dist/lib/executor.test.js +0 -62
- package/dist/lib/executor.test.js.map +0 -1
- package/dist/lib/loader.d.ts +0 -10
- package/dist/lib/loader.d.ts.map +0 -1
- package/dist/lib/loader.js +0 -109
- package/dist/lib/loader.js.map +0 -1
- package/dist/lib/openapi.d.ts +0 -98
- package/dist/lib/openapi.d.ts.map +0 -1
- package/dist/lib/openapi.js +0 -269
- package/dist/lib/openapi.js.map +0 -1
- package/dist/lib/openapi.test.d.ts +0 -2
- package/dist/lib/openapi.test.d.ts.map +0 -1
- package/dist/lib/openapi.test.js +0 -226
- package/dist/lib/openapi.test.js.map +0 -1
- package/dist/lib/validator.d.ts +0 -12
- package/dist/lib/validator.d.ts.map +0 -1
- package/dist/lib/validator.js +0 -55
- package/dist/lib/validator.js.map +0 -1
- package/dist/server/rest-proxy.d.ts +0 -3
- package/dist/server/rest-proxy.d.ts.map +0 -1
- package/dist/server/rest-proxy.js +0 -34
- package/dist/server/rest-proxy.js.map +0 -1
- package/dist/server/shell-executor.d.ts +0 -3
- package/dist/server/shell-executor.d.ts.map +0 -1
- package/dist/server/shell-executor.js +0 -56
- package/dist/server/shell-executor.js.map +0 -1
- package/dist/types.d.ts +0 -311
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -33
- package/dist/types.js.map +0 -1
- package/dist/ui-dist/assets/index-CtREFkwP.js +0 -175
- package/dist/ui-dist/assets/index-DTJEjfHv.css +0 -1
package/dist/lib/loader.js
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { readFileSync, existsSync } from 'fs';
|
|
2
|
-
import { dirname, join } from 'path';
|
|
3
|
-
import yaml from 'js-yaml';
|
|
4
|
-
import { isRestStep, isStepGroup } from '../types.js';
|
|
5
|
-
import { validateDemoConfig, formatValidationErrors } from './validator.js';
|
|
6
|
-
import { fetchOpenApiSpec, generateFormFields, mergeFormFields } from './openapi.js';
|
|
7
|
-
export async function loadDemo(demoFile, skipValidation = false) {
|
|
8
|
-
if (!existsSync(demoFile)) {
|
|
9
|
-
throw new Error(`Demo file not found: ${demoFile}`);
|
|
10
|
-
}
|
|
11
|
-
const content = readFileSync(demoFile, 'utf-8');
|
|
12
|
-
const config = yaml.load(content);
|
|
13
|
-
// Validate against JSON Schema
|
|
14
|
-
if (!skipValidation) {
|
|
15
|
-
const result = validateDemoConfig(config);
|
|
16
|
-
if (!result.valid) {
|
|
17
|
-
throw new Error(formatValidationErrors(result.errors));
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
// Basic required fields check (fallback)
|
|
21
|
-
if (!config.title) {
|
|
22
|
-
throw new Error('Demo config missing required field: title');
|
|
23
|
-
}
|
|
24
|
-
if (!config.steps || !Array.isArray(config.steps)) {
|
|
25
|
-
throw new Error('Demo config missing required field: steps');
|
|
26
|
-
}
|
|
27
|
-
// Try to load recordings
|
|
28
|
-
const demoDir = dirname(demoFile);
|
|
29
|
-
const recordingsPath = join(demoDir, 'recordings.json');
|
|
30
|
-
let recordings = null;
|
|
31
|
-
if (existsSync(recordingsPath)) {
|
|
32
|
-
const recordingsContent = readFileSync(recordingsPath, 'utf-8');
|
|
33
|
-
recordings = JSON.parse(recordingsContent);
|
|
34
|
-
}
|
|
35
|
-
// Fetch OpenAPI spec if configured
|
|
36
|
-
const openapiUrl = config.settings?.openapi;
|
|
37
|
-
let openapiSpec = null;
|
|
38
|
-
if (openapiUrl) {
|
|
39
|
-
openapiSpec = await fetchOpenApiSpec(openapiUrl);
|
|
40
|
-
if (openapiSpec) {
|
|
41
|
-
// Process steps to generate forms from OpenAPI
|
|
42
|
-
config.steps = processStepsWithOpenApi(config.steps, openapiSpec, config.settings?.base_url);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return { config, recordings, openapiSpec };
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Process steps to generate form fields from OpenAPI spec
|
|
49
|
-
*/
|
|
50
|
-
function processStepsWithOpenApi(steps, spec, baseUrl) {
|
|
51
|
-
return steps.map(item => {
|
|
52
|
-
if (isStepGroup(item)) {
|
|
53
|
-
return {
|
|
54
|
-
...item,
|
|
55
|
-
steps: processStepsArray(item.steps, spec, baseUrl)
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
if (isRestStep(item)) {
|
|
59
|
-
return processRestStepWithOpenApi(item, spec, baseUrl);
|
|
60
|
-
}
|
|
61
|
-
return item;
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Process a flat array of steps (inside a group)
|
|
66
|
-
*/
|
|
67
|
-
function processStepsArray(steps, spec, baseUrl) {
|
|
68
|
-
return steps.map(step => {
|
|
69
|
-
if (isRestStep(step)) {
|
|
70
|
-
return processRestStepWithOpenApi(step, spec, baseUrl);
|
|
71
|
-
}
|
|
72
|
-
return step;
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Process a single REST step to generate form fields from OpenAPI
|
|
77
|
-
*/
|
|
78
|
-
function processRestStepWithOpenApi(step, spec, baseUrl) {
|
|
79
|
-
// Get method and path from step
|
|
80
|
-
let method;
|
|
81
|
-
let path;
|
|
82
|
-
if ('rest' in step) {
|
|
83
|
-
const parts = step.rest.trim().split(/\s+/);
|
|
84
|
-
if (parts.length === 1) {
|
|
85
|
-
method = 'GET';
|
|
86
|
-
path = parts[0];
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
method = parts[0].toUpperCase();
|
|
90
|
-
path = parts.slice(1).join(' ');
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
method = step.method;
|
|
95
|
-
path = step.path;
|
|
96
|
-
}
|
|
97
|
-
// Generate form fields from OpenAPI
|
|
98
|
-
const openapiFields = generateFormFields(spec, method, path);
|
|
99
|
-
if (openapiFields.length === 0) {
|
|
100
|
-
return step;
|
|
101
|
-
}
|
|
102
|
-
// Merge with defaults and manual form fields
|
|
103
|
-
const mergedFields = mergeFormFields(openapiFields, step.defaults, step.form);
|
|
104
|
-
return {
|
|
105
|
-
...step,
|
|
106
|
-
form: mergedFields
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
//# sourceMappingURL=loader.js.map
|
package/dist/lib/loader.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/lib/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/openapi.d.ts
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import type { FormField } from '../types.js';
|
|
2
|
-
export interface OpenApiSpec {
|
|
3
|
-
openapi: string;
|
|
4
|
-
info: {
|
|
5
|
-
title: string;
|
|
6
|
-
version: string;
|
|
7
|
-
description?: string;
|
|
8
|
-
};
|
|
9
|
-
paths: Record<string, OpenApiPath>;
|
|
10
|
-
components?: {
|
|
11
|
-
schemas?: Record<string, JsonSchema>;
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
export interface OpenApiPath {
|
|
15
|
-
get?: OpenApiOperation;
|
|
16
|
-
post?: OpenApiOperation;
|
|
17
|
-
put?: OpenApiOperation;
|
|
18
|
-
delete?: OpenApiOperation;
|
|
19
|
-
patch?: OpenApiOperation;
|
|
20
|
-
}
|
|
21
|
-
export interface OpenApiOperation {
|
|
22
|
-
summary?: string;
|
|
23
|
-
description?: string;
|
|
24
|
-
operationId?: string;
|
|
25
|
-
tags?: string[];
|
|
26
|
-
parameters?: OpenApiParameter[];
|
|
27
|
-
requestBody?: {
|
|
28
|
-
required?: boolean;
|
|
29
|
-
content: Record<string, {
|
|
30
|
-
schema: JsonSchema;
|
|
31
|
-
}>;
|
|
32
|
-
};
|
|
33
|
-
responses: Record<string, {
|
|
34
|
-
description: string;
|
|
35
|
-
}>;
|
|
36
|
-
}
|
|
37
|
-
export interface OpenApiParameter {
|
|
38
|
-
name: string;
|
|
39
|
-
in: 'path' | 'query' | 'header';
|
|
40
|
-
required?: boolean;
|
|
41
|
-
schema?: JsonSchema;
|
|
42
|
-
description?: string;
|
|
43
|
-
}
|
|
44
|
-
export interface JsonSchema {
|
|
45
|
-
type?: string;
|
|
46
|
-
properties?: Record<string, JsonSchema>;
|
|
47
|
-
required?: string[];
|
|
48
|
-
default?: unknown;
|
|
49
|
-
description?: string;
|
|
50
|
-
enum?: unknown[];
|
|
51
|
-
items?: JsonSchema;
|
|
52
|
-
$ref?: string;
|
|
53
|
-
allOf?: JsonSchema[];
|
|
54
|
-
oneOf?: JsonSchema[];
|
|
55
|
-
anyOf?: JsonSchema[];
|
|
56
|
-
format?: string;
|
|
57
|
-
minimum?: number;
|
|
58
|
-
maximum?: number;
|
|
59
|
-
minLength?: number;
|
|
60
|
-
maxLength?: number;
|
|
61
|
-
pattern?: string;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Fetch and cache an OpenAPI spec
|
|
65
|
-
*/
|
|
66
|
-
export declare function fetchOpenApiSpec(url: string): Promise<OpenApiSpec | null>;
|
|
67
|
-
/**
|
|
68
|
-
* Clear the OpenAPI spec cache
|
|
69
|
-
*/
|
|
70
|
-
export declare function clearOpenApiCache(): void;
|
|
71
|
-
/**
|
|
72
|
-
* Generate FormField[] from an OpenAPI operation's request body
|
|
73
|
-
*/
|
|
74
|
-
export declare function generateFormFields(spec: OpenApiSpec, method: string, path: string): FormField[];
|
|
75
|
-
/**
|
|
76
|
-
* Merge OpenAPI-generated fields with manual defaults and overrides
|
|
77
|
-
*
|
|
78
|
-
* Priority (smart merge - each layer inherits from previous):
|
|
79
|
-
* 1. OpenAPI schema (base: type, required, options, description)
|
|
80
|
-
* 2. defaults: values (override default values only)
|
|
81
|
-
* 3. form: fields (partial override - only specified properties are changed)
|
|
82
|
-
*
|
|
83
|
-
* This allows YAML like:
|
|
84
|
-
* defaults:
|
|
85
|
-
* wallet: "0x..."
|
|
86
|
-
* form:
|
|
87
|
-
* - name: wallet
|
|
88
|
-
* label: "From Wallet" # Only override the label, inherit default from above
|
|
89
|
-
*/
|
|
90
|
-
export declare function mergeFormFields(openapiFields: FormField[], defaults?: Record<string, unknown>, manualFields?: FormField[]): FormField[];
|
|
91
|
-
/**
|
|
92
|
-
* Get endpoint info from OpenAPI for display
|
|
93
|
-
*/
|
|
94
|
-
export declare function getEndpointInfo(spec: OpenApiSpec, method: string, path: string): {
|
|
95
|
-
summary?: string;
|
|
96
|
-
description?: string;
|
|
97
|
-
} | null;
|
|
98
|
-
//# sourceMappingURL=openapi.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../src/lib/openapi.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/openapi.js
DELETED
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
// In-memory cache for OpenAPI specs
|
|
2
|
-
const specCache = new Map();
|
|
3
|
-
const CACHE_TTL = 5 * 60 * 1000; // 5 minutes
|
|
4
|
-
/**
|
|
5
|
-
* Fetch and cache an OpenAPI spec
|
|
6
|
-
*/
|
|
7
|
-
export async function fetchOpenApiSpec(url) {
|
|
8
|
-
// Check cache
|
|
9
|
-
const cached = specCache.get(url);
|
|
10
|
-
if (cached && Date.now() - cached.timestamp < CACHE_TTL) {
|
|
11
|
-
return cached.spec;
|
|
12
|
-
}
|
|
13
|
-
try {
|
|
14
|
-
const response = await fetch(url);
|
|
15
|
-
if (!response.ok) {
|
|
16
|
-
console.warn(`Failed to fetch OpenAPI spec from ${url}: ${response.status}`);
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
const spec = await response.json();
|
|
20
|
-
// Validate it looks like an OpenAPI spec
|
|
21
|
-
if (!spec.openapi || !spec.paths) {
|
|
22
|
-
console.warn(`Invalid OpenAPI spec from ${url}: missing openapi or paths`);
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
// Cache the spec
|
|
26
|
-
specCache.set(url, { spec, timestamp: Date.now() });
|
|
27
|
-
return spec;
|
|
28
|
-
}
|
|
29
|
-
catch (err) {
|
|
30
|
-
console.warn(`Error fetching OpenAPI spec from ${url}: ${err instanceof Error ? err.message : 'Unknown error'}`);
|
|
31
|
-
return null;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Clear the OpenAPI spec cache
|
|
36
|
-
*/
|
|
37
|
-
export function clearOpenApiCache() {
|
|
38
|
-
specCache.clear();
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Resolve a $ref in an OpenAPI spec
|
|
42
|
-
*/
|
|
43
|
-
function resolveRef(spec, ref) {
|
|
44
|
-
// Handle #/components/schemas/SchemaName format
|
|
45
|
-
const match = ref.match(/^#\/components\/schemas\/(.+)$/);
|
|
46
|
-
if (match && spec.components?.schemas) {
|
|
47
|
-
return spec.components.schemas[match[1]] || null;
|
|
48
|
-
}
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Resolve a schema, handling $ref and allOf
|
|
53
|
-
*/
|
|
54
|
-
function resolveSchema(spec, schema) {
|
|
55
|
-
if (schema.$ref) {
|
|
56
|
-
const resolved = resolveRef(spec, schema.$ref);
|
|
57
|
-
if (resolved) {
|
|
58
|
-
return resolveSchema(spec, resolved);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
if (schema.allOf) {
|
|
62
|
-
// Merge all schemas in allOf
|
|
63
|
-
const merged = { type: 'object', properties: {}, required: [] };
|
|
64
|
-
for (const subSchema of schema.allOf) {
|
|
65
|
-
const resolved = resolveSchema(spec, subSchema);
|
|
66
|
-
if (resolved.properties) {
|
|
67
|
-
merged.properties = { ...merged.properties, ...resolved.properties };
|
|
68
|
-
}
|
|
69
|
-
if (resolved.required) {
|
|
70
|
-
merged.required = [...(merged.required || []), ...resolved.required];
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return merged;
|
|
74
|
-
}
|
|
75
|
-
return schema;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Map OpenAPI type to FormField type
|
|
79
|
-
*/
|
|
80
|
-
function mapType(schema) {
|
|
81
|
-
if (schema.enum) {
|
|
82
|
-
return 'select';
|
|
83
|
-
}
|
|
84
|
-
switch (schema.type) {
|
|
85
|
-
case 'integer':
|
|
86
|
-
case 'number':
|
|
87
|
-
return 'number';
|
|
88
|
-
case 'boolean':
|
|
89
|
-
return 'select'; // Will have true/false options
|
|
90
|
-
case 'array':
|
|
91
|
-
case 'object':
|
|
92
|
-
return 'textarea'; // JSON input
|
|
93
|
-
case 'string':
|
|
94
|
-
default:
|
|
95
|
-
return 'text';
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Generate select options from schema
|
|
100
|
-
*/
|
|
101
|
-
function generateOptions(schema) {
|
|
102
|
-
if (schema.enum) {
|
|
103
|
-
return schema.enum.map(v => ({
|
|
104
|
-
value: String(v),
|
|
105
|
-
label: String(v),
|
|
106
|
-
}));
|
|
107
|
-
}
|
|
108
|
-
if (schema.type === 'boolean') {
|
|
109
|
-
return [
|
|
110
|
-
{ value: 'true', label: 'true' },
|
|
111
|
-
{ value: 'false', label: 'false' },
|
|
112
|
-
];
|
|
113
|
-
}
|
|
114
|
-
return undefined;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Generate FormField[] from an OpenAPI operation's request body
|
|
118
|
-
*/
|
|
119
|
-
export function generateFormFields(spec, method, path) {
|
|
120
|
-
const pathObj = spec.paths[path];
|
|
121
|
-
if (!pathObj) {
|
|
122
|
-
// Try with path parameters like /plvs/{plvId}/deposits
|
|
123
|
-
const normalizedPath = path.replace(/\$\w+/g, match => `{${match.slice(1)}}`);
|
|
124
|
-
const matchingPath = Object.keys(spec.paths).find(p => {
|
|
125
|
-
const pattern = p.replace(/\{[^}]+\}/g, '[^/]+');
|
|
126
|
-
return new RegExp(`^${pattern}$`).test(normalizedPath);
|
|
127
|
-
});
|
|
128
|
-
if (matchingPath) {
|
|
129
|
-
return generateFormFieldsFromPath(spec, spec.paths[matchingPath], method);
|
|
130
|
-
}
|
|
131
|
-
return [];
|
|
132
|
-
}
|
|
133
|
-
return generateFormFieldsFromPath(spec, pathObj, method);
|
|
134
|
-
}
|
|
135
|
-
function generateFormFieldsFromPath(spec, pathObj, method) {
|
|
136
|
-
const operation = pathObj[method.toLowerCase()];
|
|
137
|
-
if (!operation) {
|
|
138
|
-
return [];
|
|
139
|
-
}
|
|
140
|
-
const requestBody = operation.requestBody;
|
|
141
|
-
if (!requestBody) {
|
|
142
|
-
return [];
|
|
143
|
-
}
|
|
144
|
-
// Get JSON schema from request body
|
|
145
|
-
const jsonContent = requestBody.content['application/json'];
|
|
146
|
-
if (!jsonContent?.schema) {
|
|
147
|
-
return [];
|
|
148
|
-
}
|
|
149
|
-
const schema = resolveSchema(spec, jsonContent.schema);
|
|
150
|
-
if (!schema.properties) {
|
|
151
|
-
return [];
|
|
152
|
-
}
|
|
153
|
-
const requiredFields = schema.required || [];
|
|
154
|
-
const fields = [];
|
|
155
|
-
for (const [name, propSchema] of Object.entries(schema.properties)) {
|
|
156
|
-
const resolved = resolveSchema(spec, propSchema);
|
|
157
|
-
const field = {
|
|
158
|
-
name,
|
|
159
|
-
label: resolved.description || name,
|
|
160
|
-
type: mapType(resolved),
|
|
161
|
-
required: requiredFields.includes(name),
|
|
162
|
-
};
|
|
163
|
-
// Add default if present
|
|
164
|
-
if (resolved.default !== undefined) {
|
|
165
|
-
field.default = resolved.default;
|
|
166
|
-
}
|
|
167
|
-
// Add options for select fields
|
|
168
|
-
const options = generateOptions(resolved);
|
|
169
|
-
if (options) {
|
|
170
|
-
field.options = options;
|
|
171
|
-
}
|
|
172
|
-
// Add placeholder from description if no label override
|
|
173
|
-
if (resolved.description && field.label === name) {
|
|
174
|
-
field.placeholder = resolved.description;
|
|
175
|
-
}
|
|
176
|
-
fields.push(field);
|
|
177
|
-
}
|
|
178
|
-
return fields;
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Merge OpenAPI-generated fields with manual defaults and overrides
|
|
182
|
-
*
|
|
183
|
-
* Priority (smart merge - each layer inherits from previous):
|
|
184
|
-
* 1. OpenAPI schema (base: type, required, options, description)
|
|
185
|
-
* 2. defaults: values (override default values only)
|
|
186
|
-
* 3. form: fields (partial override - only specified properties are changed)
|
|
187
|
-
*
|
|
188
|
-
* This allows YAML like:
|
|
189
|
-
* defaults:
|
|
190
|
-
* wallet: "0x..."
|
|
191
|
-
* form:
|
|
192
|
-
* - name: wallet
|
|
193
|
-
* label: "From Wallet" # Only override the label, inherit default from above
|
|
194
|
-
*/
|
|
195
|
-
export function mergeFormFields(openapiFields, defaults, manualFields) {
|
|
196
|
-
// Start with OpenAPI fields
|
|
197
|
-
const fieldMap = new Map();
|
|
198
|
-
for (const field of openapiFields) {
|
|
199
|
-
fieldMap.set(field.name, { ...field });
|
|
200
|
-
}
|
|
201
|
-
// Apply defaults
|
|
202
|
-
if (defaults) {
|
|
203
|
-
for (const [name, value] of Object.entries(defaults)) {
|
|
204
|
-
const existing = fieldMap.get(name);
|
|
205
|
-
if (existing) {
|
|
206
|
-
existing.default = value;
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
// Create a new field for defaults not in OpenAPI
|
|
210
|
-
fieldMap.set(name, {
|
|
211
|
-
name,
|
|
212
|
-
default: value,
|
|
213
|
-
type: typeof value === 'number' ? 'number' : 'text',
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
// Apply manual overrides (smart merge - inherit from OpenAPI + defaults)
|
|
219
|
-
if (manualFields) {
|
|
220
|
-
for (const manualField of manualFields) {
|
|
221
|
-
const existing = fieldMap.get(manualField.name);
|
|
222
|
-
if (existing) {
|
|
223
|
-
// Merge: start with existing (OpenAPI + defaults), override only specified properties
|
|
224
|
-
const merged = { ...existing };
|
|
225
|
-
// Only override properties that are explicitly set in the manual field
|
|
226
|
-
if (manualField.label !== undefined)
|
|
227
|
-
merged.label = manualField.label;
|
|
228
|
-
if (manualField.type !== undefined)
|
|
229
|
-
merged.type = manualField.type;
|
|
230
|
-
if (manualField.default !== undefined)
|
|
231
|
-
merged.default = manualField.default;
|
|
232
|
-
if (manualField.required !== undefined)
|
|
233
|
-
merged.required = manualField.required;
|
|
234
|
-
if (manualField.readonly !== undefined)
|
|
235
|
-
merged.readonly = manualField.readonly;
|
|
236
|
-
if (manualField.hidden !== undefined)
|
|
237
|
-
merged.hidden = manualField.hidden;
|
|
238
|
-
if (manualField.placeholder !== undefined)
|
|
239
|
-
merged.placeholder = manualField.placeholder;
|
|
240
|
-
if (manualField.options !== undefined)
|
|
241
|
-
merged.options = manualField.options;
|
|
242
|
-
fieldMap.set(manualField.name, merged);
|
|
243
|
-
}
|
|
244
|
-
else {
|
|
245
|
-
// No existing field - use manual field as-is
|
|
246
|
-
fieldMap.set(manualField.name, { ...manualField });
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
return Array.from(fieldMap.values());
|
|
251
|
-
}
|
|
252
|
-
/**
|
|
253
|
-
* Get endpoint info from OpenAPI for display
|
|
254
|
-
*/
|
|
255
|
-
export function getEndpointInfo(spec, method, path) {
|
|
256
|
-
const pathObj = spec.paths[path];
|
|
257
|
-
if (!pathObj) {
|
|
258
|
-
return null;
|
|
259
|
-
}
|
|
260
|
-
const operation = pathObj[method.toLowerCase()];
|
|
261
|
-
if (!operation) {
|
|
262
|
-
return null;
|
|
263
|
-
}
|
|
264
|
-
return {
|
|
265
|
-
summary: operation.summary,
|
|
266
|
-
description: operation.description,
|
|
267
|
-
};
|
|
268
|
-
}
|
|
269
|
-
//# sourceMappingURL=openapi.js.map
|
package/dist/lib/openapi.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/lib/openapi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openapi.test.d.ts","sourceRoot":"","sources":["../../src/lib/openapi.test.ts"],"names":[],"mappings":""}
|