@vegamo/loom 0.1.1
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/LICENSE +15 -0
- package/README.md +465 -0
- package/dist/agents/core/agent.d.ts +65 -0
- package/dist/agents/core/agent.d.ts.map +1 -0
- package/dist/agents/core/agent.js +277 -0
- package/dist/agents/core/agent.js.map +1 -0
- package/dist/agents/core/prompt.d.ts +11 -0
- package/dist/agents/core/prompt.d.ts.map +1 -0
- package/dist/agents/core/prompt.js +117 -0
- package/dist/agents/core/prompt.js.map +1 -0
- package/dist/agents/core/types.d.ts +49 -0
- package/dist/agents/core/types.d.ts.map +1 -0
- package/dist/agents/core/types.js +5 -0
- package/dist/agents/core/types.js.map +1 -0
- package/dist/agents/memory/memory.d.ts +62 -0
- package/dist/agents/memory/memory.d.ts.map +1 -0
- package/dist/agents/memory/memory.js +113 -0
- package/dist/agents/memory/memory.js.map +1 -0
- package/dist/agents/memory/types.d.ts +15 -0
- package/dist/agents/memory/types.d.ts.map +1 -0
- package/dist/agents/memory/types.js +5 -0
- package/dist/agents/memory/types.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +104 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/client.d.ts +49 -0
- package/dist/llm/client.d.ts.map +1 -0
- package/dist/llm/client.js +256 -0
- package/dist/llm/client.js.map +1 -0
- package/dist/llm/config.d.ts +13 -0
- package/dist/llm/config.d.ts.map +1 -0
- package/dist/llm/config.js +50 -0
- package/dist/llm/config.js.map +1 -0
- package/dist/llm/types.d.ts +74 -0
- package/dist/llm/types.d.ts.map +1 -0
- package/dist/llm/types.js +17 -0
- package/dist/llm/types.js.map +1 -0
- package/dist/mocks/generator.d.ts +10 -0
- package/dist/mocks/generator.d.ts.map +1 -0
- package/dist/mocks/generator.js +19 -0
- package/dist/mocks/generator.js.map +1 -0
- package/dist/mocks/router.d.ts +13 -0
- package/dist/mocks/router.d.ts.map +1 -0
- package/dist/mocks/router.js +44 -0
- package/dist/mocks/router.js.map +1 -0
- package/dist/mocks/server.d.ts +21 -0
- package/dist/mocks/server.d.ts.map +1 -0
- package/dist/mocks/server.js +36 -0
- package/dist/mocks/server.js.map +1 -0
- package/dist/serve.d.ts +17 -0
- package/dist/serve.d.ts.map +1 -0
- package/dist/serve.js +56 -0
- package/dist/serve.js.map +1 -0
- package/dist/shared/config-wizard.d.ts +7 -0
- package/dist/shared/config-wizard.d.ts.map +1 -0
- package/dist/shared/config-wizard.js +84 -0
- package/dist/shared/config-wizard.js.map +1 -0
- package/dist/shared/config.d.ts +32 -0
- package/dist/shared/config.d.ts.map +1 -0
- package/dist/shared/config.js +77 -0
- package/dist/shared/config.js.map +1 -0
- package/dist/shared/entity-utils.d.ts +30 -0
- package/dist/shared/entity-utils.d.ts.map +1 -0
- package/dist/shared/entity-utils.js +207 -0
- package/dist/shared/entity-utils.js.map +1 -0
- package/dist/shared/logger.d.ts +13 -0
- package/dist/shared/logger.d.ts.map +1 -0
- package/dist/shared/logger.js +45 -0
- package/dist/shared/logger.js.map +1 -0
- package/dist/shared/manifest-utils.d.ts +9 -0
- package/dist/shared/manifest-utils.d.ts.map +1 -0
- package/dist/shared/manifest-utils.js +110 -0
- package/dist/shared/manifest-utils.js.map +1 -0
- package/dist/shared/schema-entity-resolver.d.ts +15 -0
- package/dist/shared/schema-entity-resolver.d.ts.map +1 -0
- package/dist/shared/schema-entity-resolver.js +134 -0
- package/dist/shared/schema-entity-resolver.js.map +1 -0
- package/dist/shared/schema-utils.d.ts +21 -0
- package/dist/shared/schema-utils.d.ts.map +1 -0
- package/dist/shared/schema-utils.js +56 -0
- package/dist/shared/schema-utils.js.map +1 -0
- package/dist/shared/types.d.ts +130 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/types.js +5 -0
- package/dist/shared/types.js.map +1 -0
- package/dist/tools/entity-file-ops.d.ts +10 -0
- package/dist/tools/entity-file-ops.d.ts.map +1 -0
- package/dist/tools/entity-file-ops.js +183 -0
- package/dist/tools/entity-file-ops.js.map +1 -0
- package/dist/tools/entity-workflow.d.ts +10 -0
- package/dist/tools/entity-workflow.d.ts.map +1 -0
- package/dist/tools/entity-workflow.js +447 -0
- package/dist/tools/entity-workflow.js.map +1 -0
- package/dist/tools/file-ops.d.ts +9 -0
- package/dist/tools/file-ops.d.ts.map +1 -0
- package/dist/tools/file-ops.js +83 -0
- package/dist/tools/file-ops.js.map +1 -0
- package/dist/tools/registry.d.ts +31 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +58 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/schema-gen.d.ts +8 -0
- package/dist/tools/schema-gen.d.ts.map +1 -0
- package/dist/tools/schema-gen.js +82 -0
- package/dist/tools/schema-gen.js.map +1 -0
- package/dist/tools/schema-validate.d.ts +8 -0
- package/dist/tools/schema-validate.d.ts.map +1 -0
- package/dist/tools/schema-validate.js +79 -0
- package/dist/tools/schema-validate.js.map +1 -0
- package/dist/tools/types.d.ts +29 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +5 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tui/app.d.ts +13 -0
- package/dist/tui/app.d.ts.map +1 -0
- package/dist/tui/app.js +357 -0
- package/dist/tui/app.js.map +1 -0
- package/dist/tui/components/Chat.d.ts +14 -0
- package/dist/tui/components/Chat.d.ts.map +1 -0
- package/dist/tui/components/Chat.js +24 -0
- package/dist/tui/components/Chat.js.map +1 -0
- package/dist/tui/components/Header.d.ts +14 -0
- package/dist/tui/components/Header.d.ts.map +1 -0
- package/dist/tui/components/Header.js +6 -0
- package/dist/tui/components/Header.js.map +1 -0
- package/dist/tui/components/Input.d.ts +15 -0
- package/dist/tui/components/Input.d.ts.map +1 -0
- package/dist/tui/components/Input.js +74 -0
- package/dist/tui/components/Input.js.map +1 -0
- package/dist/tui/components/SchemaPreview.d.ts +13 -0
- package/dist/tui/components/SchemaPreview.d.ts.map +1 -0
- package/dist/tui/components/SchemaPreview.js +9 -0
- package/dist/tui/components/SchemaPreview.js.map +1 -0
- package/dist/tui/components/StatusBar.d.ts +15 -0
- package/dist/tui/components/StatusBar.d.ts.map +1 -0
- package/dist/tui/components/StatusBar.js +7 -0
- package/dist/tui/components/StatusBar.js.map +1 -0
- package/dist/tui/hooks/useAgent.d.ts +41 -0
- package/dist/tui/hooks/useAgent.d.ts.map +1 -0
- package/dist/tui/hooks/useAgent.js +180 -0
- package/dist/tui/hooks/useAgent.js.map +1 -0
- package/dist/view/frontend/components/App.d.ts +4 -0
- package/dist/view/frontend/components/App.d.ts.map +1 -0
- package/dist/view/frontend/components/App.js +35 -0
- package/dist/view/frontend/components/App.js.map +1 -0
- package/dist/view/frontend/components/EndpointDetailPage.d.ts +4 -0
- package/dist/view/frontend/components/EndpointDetailPage.d.ts.map +1 -0
- package/dist/view/frontend/components/EndpointDetailPage.js +103 -0
- package/dist/view/frontend/components/EndpointDetailPage.js.map +1 -0
- package/dist/view/frontend/components/HomePage.d.ts +4 -0
- package/dist/view/frontend/components/HomePage.d.ts.map +1 -0
- package/dist/view/frontend/components/HomePage.js +6 -0
- package/dist/view/frontend/components/HomePage.js.map +1 -0
- package/dist/view/frontend/components/ModuleDetailPage.d.ts +4 -0
- package/dist/view/frontend/components/ModuleDetailPage.d.ts.map +1 -0
- package/dist/view/frontend/components/ModuleDetailPage.js +64 -0
- package/dist/view/frontend/components/ModuleDetailPage.js.map +1 -0
- package/dist/view/frontend/components/ModulesPage.d.ts +4 -0
- package/dist/view/frontend/components/ModulesPage.d.ts.map +1 -0
- package/dist/view/frontend/components/ModulesPage.js +40 -0
- package/dist/view/frontend/components/ModulesPage.js.map +1 -0
- package/dist/view/frontend/index.d.ts +2 -0
- package/dist/view/frontend/index.d.ts.map +1 -0
- package/dist/view/frontend/index.js +15 -0
- package/dist/view/frontend/index.js.map +1 -0
- package/dist/view/frontend/types.d.ts +35 -0
- package/dist/view/frontend/types.d.ts.map +1 -0
- package/dist/view/frontend/types.js +2 -0
- package/dist/view/frontend/types.js.map +1 -0
- package/dist/view/frontend/utils/api.d.ts +5 -0
- package/dist/view/frontend/utils/api.d.ts.map +1 -0
- package/dist/view/frontend/utils/api.js +28 -0
- package/dist/view/frontend/utils/api.js.map +1 -0
- package/dist/view/public/bundle.js +104633 -0
- package/dist/view/public/bundle.js.map +7 -0
- package/dist/view/public/index.html +50 -0
- package/dist/view/routes/docs.d.ts +13 -0
- package/dist/view/routes/docs.d.ts.map +1 -0
- package/dist/view/routes/docs.js +53 -0
- package/dist/view/routes/docs.js.map +1 -0
- package/dist/view/routes/entities.d.ts +11 -0
- package/dist/view/routes/entities.d.ts.map +1 -0
- package/dist/view/routes/entities.js +39 -0
- package/dist/view/routes/entities.js.map +1 -0
- package/dist/view/routes/schema.d.ts +11 -0
- package/dist/view/routes/schema.d.ts.map +1 -0
- package/dist/view/routes/schema.js +43 -0
- package/dist/view/routes/schema.js.map +1 -0
- package/dist/view/server.d.ts +20 -0
- package/dist/view/server.d.ts.map +1 -0
- package/dist/view/server.js +54 -0
- package/dist/view/server.js.map +1 -0
- package/docgen.config.json +19 -0
- package/docgen.config.json.example +19 -0
- package/package.json +79 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
import { useParams, useSearchParams, Link } from 'react-router-dom';
|
|
4
|
+
import { fetchModuleDetail } from '../utils/api.ts';
|
|
5
|
+
const EndpointDetailPage = () => {
|
|
6
|
+
const { filename, endpointPath } = useParams();
|
|
7
|
+
const [searchParams] = useSearchParams();
|
|
8
|
+
const method = searchParams.get('method') || 'GET';
|
|
9
|
+
const [endpoint, setEndpoint] = useState(null);
|
|
10
|
+
const [loading, setLoading] = useState(true);
|
|
11
|
+
const [error, setError] = useState(null);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
if (!filename)
|
|
14
|
+
return;
|
|
15
|
+
fetchModuleDetail(filename)
|
|
16
|
+
.then(data => {
|
|
17
|
+
const found = data.endpoints.find(ep => ep.path === decodeURIComponent(endpointPath || '') && ep.method === method);
|
|
18
|
+
if (found) {
|
|
19
|
+
setEndpoint(found);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
setError('Endpoint not found');
|
|
23
|
+
}
|
|
24
|
+
setLoading(false);
|
|
25
|
+
})
|
|
26
|
+
.catch((err) => {
|
|
27
|
+
setError(err.message);
|
|
28
|
+
setLoading(false);
|
|
29
|
+
});
|
|
30
|
+
}, [filename, endpointPath, method]);
|
|
31
|
+
if (loading)
|
|
32
|
+
return _jsx("div", { children: "Loading endpoint details..." });
|
|
33
|
+
if (error)
|
|
34
|
+
return _jsxs("div", { style: { color: '#d32f2f' }, children: ["Error: ", error] });
|
|
35
|
+
if (!endpoint)
|
|
36
|
+
return _jsx("div", { children: "Endpoint not found" });
|
|
37
|
+
return (_jsxs("div", { children: [_jsx("nav", { style: { marginBottom: '1.5rem' }, children: _jsx(Link, { to: `/modules/${filename}`, style: { color: '#4a6bff', textDecoration: 'none' }, children: "\u2190 Back to Module" }) }), _jsxs("header", { style: { marginBottom: '2rem' }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', marginBottom: '0.5rem' }, children: [_jsx("span", { style: {
|
|
38
|
+
background: methodColor[endpoint.method] || '#999',
|
|
39
|
+
color: '#fff',
|
|
40
|
+
fontWeight: 'bold',
|
|
41
|
+
fontSize: '1rem',
|
|
42
|
+
padding: '4px 12px',
|
|
43
|
+
borderRadius: '4px',
|
|
44
|
+
marginRight: '1rem',
|
|
45
|
+
}, children: endpoint.method }), _jsx("code", { style: { fontSize: '1.5rem', fontWeight: '600' }, children: endpoint.path })] }), _jsx("h1", { style: { marginBottom: '0.5rem' }, children: endpoint.summary }), endpoint.description && (_jsx("p", { style: { color: '#666', fontSize: '1.1rem' }, children: endpoint.description }))] }), _jsxs("div", { style: { display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '2rem' }, children: [_jsxs("div", { children: [_jsx("h2", { children: "Request" }), _jsx(RequestDetails, { endpoint: endpoint })] }), _jsxs("div", { children: [_jsx("h2", { children: "Response" }), _jsx(ResponseDetails, { endpoint: endpoint })] })] }), _jsxs("section", { style: { marginTop: '3rem' }, children: [_jsx("h2", { children: "Mock Testing" }), _jsx("p", { children: "Test this endpoint with generated mock data." }), _jsx("div", { style: { background: '#f8f9fa', padding: '1.5rem', borderRadius: '8px' }, children: _jsx(MockTestInterface, { endpoint: endpoint, filename: filename }) })] })] }));
|
|
46
|
+
};
|
|
47
|
+
const methodColor = {
|
|
48
|
+
GET: '#61affe',
|
|
49
|
+
POST: '#49cc90',
|
|
50
|
+
PUT: '#fca130',
|
|
51
|
+
DELETE: '#f93e3e',
|
|
52
|
+
PATCH: '#50e3c2',
|
|
53
|
+
};
|
|
54
|
+
const RequestDetails = ({ endpoint }) => {
|
|
55
|
+
const { request } = endpoint;
|
|
56
|
+
if (!request)
|
|
57
|
+
return _jsx("p", { children: "No request details defined." });
|
|
58
|
+
return (_jsxs("div", { children: [request.headers && (_jsxs("div", { children: [_jsx("h4", { children: "Headers" }), _jsx("pre", { style: { background: '#fff', padding: '1rem', borderRadius: '4px', overflow: 'auto' }, children: JSON.stringify(request.headers, null, 2) })] })), request.params && (_jsxs("div", { children: [_jsx("h4", { children: "Path Parameters" }), _jsx("pre", { style: { background: '#fff', padding: '1rem', borderRadius: '4px', overflow: 'auto' }, children: JSON.stringify(request.params, null, 2) })] })), request.query && (_jsxs("div", { children: [_jsx("h4", { children: "Query Parameters" }), _jsx("pre", { style: { background: '#fff', padding: '1rem', borderRadius: '4px', overflow: 'auto' }, children: JSON.stringify(request.query, null, 2) })] })), request.body && (_jsxs("div", { children: [_jsx("h4", { children: "Request Body" }), _jsx("pre", { style: { background: '#fff', padding: '1rem', borderRadius: '4px', overflow: 'auto' }, children: JSON.stringify(request.body, null, 2) })] }))] }));
|
|
59
|
+
};
|
|
60
|
+
const ResponseDetails = ({ endpoint }) => {
|
|
61
|
+
const { response } = endpoint;
|
|
62
|
+
if (!response)
|
|
63
|
+
return _jsx("p", { children: "No response details defined." });
|
|
64
|
+
return (_jsx("div", { children: Object.entries(response).map(([statusCode, schema]) => (_jsxs("div", { style: { marginBottom: '1.5rem' }, children: [_jsxs("h4", { children: ["Status ", statusCode] }), _jsx("pre", { style: { background: '#fff', padding: '1rem', borderRadius: '4px', overflow: 'auto' }, children: JSON.stringify(schema, null, 2) })] }, statusCode))) }));
|
|
65
|
+
};
|
|
66
|
+
const MockTestInterface = ({ endpoint, filename }) => {
|
|
67
|
+
const [loading, setLoading] = useState(false);
|
|
68
|
+
const [result, setResult] = useState(null);
|
|
69
|
+
const [error, setError] = useState(null);
|
|
70
|
+
const handleTest = async () => {
|
|
71
|
+
setLoading(true);
|
|
72
|
+
setError(null);
|
|
73
|
+
try {
|
|
74
|
+
// TODO: call the mock server endpoint
|
|
75
|
+
const mockBase = `http://localhost:3001`; // mock server port (should be configurable)
|
|
76
|
+
const url = `${mockBase}${endpoint.path}`;
|
|
77
|
+
const options = {
|
|
78
|
+
method: endpoint.method,
|
|
79
|
+
headers: { 'Content-Type': 'application/json' },
|
|
80
|
+
};
|
|
81
|
+
const res = await fetch(url, options);
|
|
82
|
+
const data = await res.json();
|
|
83
|
+
setResult({ status: res.status, data });
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
setError(err.message);
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
setLoading(false);
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
return (_jsxs("div", { children: [_jsx("button", { onClick: handleTest, disabled: loading, style: {
|
|
93
|
+
background: '#4a6bff',
|
|
94
|
+
color: '#fff',
|
|
95
|
+
border: 'none',
|
|
96
|
+
padding: '0.75rem 1.5rem',
|
|
97
|
+
borderRadius: '4px',
|
|
98
|
+
fontSize: '1rem',
|
|
99
|
+
cursor: 'pointer',
|
|
100
|
+
}, children: loading ? 'Testing...' : 'Test Endpoint' }), error && (_jsxs("div", { style: { marginTop: '1rem', color: '#d32f2f' }, children: ["Error: ", error] })), result && (_jsxs("div", { style: { marginTop: '1rem' }, children: [_jsx("h4", { children: "Response" }), _jsx("pre", { style: { background: '#fff', padding: '1rem', borderRadius: '4px', overflow: 'auto' }, children: JSON.stringify(result, null, 2) })] }))] }));
|
|
101
|
+
};
|
|
102
|
+
export default EndpointDetailPage;
|
|
103
|
+
//# sourceMappingURL=EndpointDetailPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EndpointDetailPage.js","sourceRoot":"","sources":["../../../../src/view/frontend/components/EndpointDetailPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HomePage.d.ts","sourceRoot":"","sources":["../../../../src/view/frontend/components/HomePage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAqBrB,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
const HomePage = () => {
|
|
3
|
+
return (_jsxs("div", { style: { maxWidth: '800px', margin: '0 auto' }, children: [_jsx("h1", { children: "Welcome to DocuGen API Viewer" }), _jsx("p", { children: "Browse your generated API documentation, inspect endpoints, and test mock responses." }), _jsxs("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(250px, 1fr))', gap: '1.5rem', marginTop: '2rem' }, children: [_jsxs("div", { style: { background: '#fff', padding: '1.5rem', borderRadius: '8px', boxShadow: '0 2px 8px rgba(0,0,0,0.1)' }, children: [_jsxs("h3", { children: [_jsx("i", { className: "fas fa-book" }), " Modules"] }), _jsx("p", { children: "View all API modules generated from your JSON Schema files." })] }), _jsxs("div", { style: { background: '#fff', padding: '1.5rem', borderRadius: '8px', boxShadow: '0 2px 8px rgba(0,0,0,0.1)' }, children: [_jsxs("h3", { children: [_jsx("i", { className: "fas fa-bolt" }), " Mock Testing"] }), _jsx("p", { children: "Test endpoints with generated mock data directly from the UI." })] }), _jsxs("div", { style: { background: '#fff', padding: '1.5rem', borderRadius: '8px', boxShadow: '0 2px 8px rgba(0,0,0,0.1)' }, children: [_jsxs("h3", { children: [_jsx("i", { className: "fas fa-search" }), " Search"] }), _jsx("p", { children: "Find endpoints by path, method, or description." })] })] })] }));
|
|
4
|
+
};
|
|
5
|
+
export default HomePage;
|
|
6
|
+
//# sourceMappingURL=HomePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HomePage.js","sourceRoot":"","sources":["../../../../src/view/frontend/components/HomePage.tsx"],"names":[],"mappings":";AAEA,MAAM,QAAQ,GAAa,GAAG,EAAE;IAC9B,OAAO,CACL,eAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aACjD,yDAAsC,EACtC,+GAA2F,EAC3F,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,sCAAsC,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,aAC5H,eAAK,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,2BAA2B,EAAE,aAChH,yBAAI,YAAG,SAAS,EAAC,aAAa,GAAK,gBAAa,EAChD,sFAAkE,IAC9D,EACN,eAAK,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,2BAA2B,EAAE,aAChH,yBAAI,YAAG,SAAS,EAAC,aAAa,GAAK,qBAAkB,EACrD,wFAAoE,IAChE,EACN,eAAK,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,2BAA2B,EAAE,aAChH,yBAAI,YAAG,SAAS,EAAC,eAAe,GAAK,eAAY,EACjD,0EAAsD,IAClD,IACF,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModuleDetailPage.d.ts","sourceRoot":"","sources":["../../../../src/view/frontend/components/ModuleDetailPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAKnD,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAkD7B,CAAC;AAgEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
import { useParams, Link } from 'react-router-dom';
|
|
4
|
+
import { fetchModuleDetail } from '../utils/api.ts';
|
|
5
|
+
const ModuleDetailPage = () => {
|
|
6
|
+
const { filename } = useParams();
|
|
7
|
+
const [module, setModule] = useState(null);
|
|
8
|
+
const [loading, setLoading] = useState(true);
|
|
9
|
+
const [error, setError] = useState(null);
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
if (!filename)
|
|
12
|
+
return;
|
|
13
|
+
fetchModuleDetail(filename)
|
|
14
|
+
.then((data) => {
|
|
15
|
+
setModule(data);
|
|
16
|
+
setLoading(false);
|
|
17
|
+
})
|
|
18
|
+
.catch((err) => {
|
|
19
|
+
setError(err.message);
|
|
20
|
+
setLoading(false);
|
|
21
|
+
});
|
|
22
|
+
}, [filename]);
|
|
23
|
+
if (loading)
|
|
24
|
+
return _jsx("div", { children: "Loading module details..." });
|
|
25
|
+
if (error)
|
|
26
|
+
return _jsxs("div", { style: { color: '#d32f2f' }, children: ["Error: ", error] });
|
|
27
|
+
if (!module)
|
|
28
|
+
return _jsx("div", { children: "Module not found" });
|
|
29
|
+
return (_jsxs("div", { children: [_jsx("nav", { style: { marginBottom: '1.5rem' }, children: _jsx(Link, { to: "/modules", style: { color: '#4a6bff', textDecoration: 'none' }, children: "\u2190 Back to Modules" }) }), _jsxs("header", { style: { marginBottom: '2rem' }, children: [_jsx("h1", { style: { marginBottom: '0.5rem' }, children: module.title }), _jsx("p", { style: { color: '#666', fontSize: '1.1rem' }, children: module.description }), module.version && (_jsxs("span", { style: { background: '#e0e7ff', color: '#4a6bff', padding: '0.25rem 0.75rem', borderRadius: '12px', fontSize: '0.9rem' }, children: ["Version ", module.version] }))] }), _jsxs("section", { children: [_jsx("h2", { children: "Endpoints" }), _jsx("div", { style: { marginTop: '1rem' }, children: module.endpoints.map((ep, idx) => (_jsx(EndpointCard, { endpoint: ep, moduleFilename: filename }, idx))) })] })] }));
|
|
30
|
+
};
|
|
31
|
+
const EndpointCard = ({ endpoint, moduleFilename }) => {
|
|
32
|
+
const methodColor = {
|
|
33
|
+
GET: '#61affe',
|
|
34
|
+
POST: '#49cc90',
|
|
35
|
+
PUT: '#fca130',
|
|
36
|
+
DELETE: '#f93e3e',
|
|
37
|
+
PATCH: '#50e3c2',
|
|
38
|
+
};
|
|
39
|
+
return (_jsxs("div", { style: {
|
|
40
|
+
background: '#fff',
|
|
41
|
+
borderRadius: '8px',
|
|
42
|
+
padding: '1.5rem',
|
|
43
|
+
marginBottom: '1rem',
|
|
44
|
+
boxShadow: '0 2px 8px rgba(0,0,0,0.1)',
|
|
45
|
+
borderLeft: `4px solid ${methodColor[endpoint.method] || '#999'}`,
|
|
46
|
+
}, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', marginBottom: '0.75rem' }, children: [_jsx("span", { style: {
|
|
47
|
+
background: methodColor[endpoint.method] || '#999',
|
|
48
|
+
color: '#fff',
|
|
49
|
+
fontWeight: 'bold',
|
|
50
|
+
fontSize: '0.85rem',
|
|
51
|
+
padding: '2px 8px',
|
|
52
|
+
borderRadius: '4px',
|
|
53
|
+
marginRight: '0.75rem',
|
|
54
|
+
}, children: endpoint.method }), _jsx("code", { style: { fontSize: '1rem', fontWeight: '600' }, children: endpoint.path }), _jsx("span", { style: { marginLeft: 'auto' }, children: _jsx(Link, { to: `/modules/${moduleFilename}/endpoints/${encodeURIComponent(endpoint.path)}?method=${endpoint.method}`, style: { color: '#4a6bff', textDecoration: 'none', fontSize: '0.9rem' }, children: "View details \u2192" }) })] }), _jsx("p", { style: { marginBottom: '0.5rem' }, children: endpoint.summary }), endpoint.description && (_jsx("p", { style: { color: '#666', fontSize: '0.95rem' }, children: endpoint.description })), endpoint.tags && endpoint.tags.length > 0 && (_jsx("div", { style: { marginTop: '0.75rem' }, children: endpoint.tags.map(tag => (_jsx("span", { style: {
|
|
55
|
+
background: '#f0f0f0',
|
|
56
|
+
color: '#555',
|
|
57
|
+
fontSize: '0.8rem',
|
|
58
|
+
padding: '2px 8px',
|
|
59
|
+
borderRadius: '12px',
|
|
60
|
+
marginRight: '0.5rem',
|
|
61
|
+
}, children: tag }, tag))) }))] }));
|
|
62
|
+
};
|
|
63
|
+
export default ModuleDetailPage;
|
|
64
|
+
//# sourceMappingURL=ModuleDetailPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModuleDetailPage.js","sourceRoot":"","sources":["../../../../src/view/frontend/components/ModuleDetailPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModulesPage.d.ts","sourceRoot":"","sources":["../../../../src/view/frontend/components/ModulesPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAKnD,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EA2DxB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
import { Link } from 'react-router-dom';
|
|
4
|
+
import { fetchModules } from '../utils/api.ts';
|
|
5
|
+
const ModulesPage = () => {
|
|
6
|
+
const [modules, setModules] = useState([]);
|
|
7
|
+
const [loading, setLoading] = useState(true);
|
|
8
|
+
const [error, setError] = useState(null);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
fetchModules()
|
|
11
|
+
.then((data) => {
|
|
12
|
+
setModules(data);
|
|
13
|
+
setLoading(false);
|
|
14
|
+
})
|
|
15
|
+
.catch((err) => {
|
|
16
|
+
setError(err.message);
|
|
17
|
+
setLoading(false);
|
|
18
|
+
});
|
|
19
|
+
}, []);
|
|
20
|
+
if (loading)
|
|
21
|
+
return _jsx("div", { children: "Loading modules..." });
|
|
22
|
+
if (error)
|
|
23
|
+
return _jsxs("div", { style: { color: '#d32f2f' }, children: ["Error: ", error] });
|
|
24
|
+
return (_jsxs("div", { children: [_jsx("h1", { children: "API Modules" }), _jsx("p", { children: "Select a module to explore its endpoints." }), _jsx("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(auto-fill, minmax(300px, 1fr))', gap: '1.5rem', marginTop: '2rem' }, children: modules.map(mod => (_jsxs("div", { style: {
|
|
25
|
+
background: '#fff',
|
|
26
|
+
borderRadius: '8px',
|
|
27
|
+
padding: '1.5rem',
|
|
28
|
+
boxShadow: '0 2px 8px rgba(0,0,0,0.1)',
|
|
29
|
+
borderLeft: '4px solid #4a6bff',
|
|
30
|
+
}, children: [_jsx("h3", { style: { marginTop: 0 }, children: _jsx(Link, { to: `/modules/${mod.filename}`, style: { color: '#1a1a2e', textDecoration: 'none' }, children: mod.title }) }), _jsx("p", { style: { color: '#666', fontSize: '0.95rem' }, children: mod.description }), _jsxs("div", { style: { display: 'flex', justifyContent: 'space-between', alignItems: 'center', marginTop: '1rem' }, children: [_jsxs("span", { style: { fontSize: '0.9rem', color: '#888' }, children: [_jsx("i", { className: "fas fa-code-branch" }), " ", mod.endpointCount, " endpoint(s)"] }), _jsx(Link, { to: `/modules/${mod.filename}`, style: {
|
|
31
|
+
background: '#4a6bff',
|
|
32
|
+
color: '#fff',
|
|
33
|
+
padding: '0.5rem 1rem',
|
|
34
|
+
borderRadius: '4px',
|
|
35
|
+
textDecoration: 'none',
|
|
36
|
+
fontSize: '0.9rem',
|
|
37
|
+
}, children: "Explore" })] })] }, mod.filename))) })] }));
|
|
38
|
+
};
|
|
39
|
+
export default ModulesPage;
|
|
40
|
+
//# sourceMappingURL=ModulesPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModulesPage.js","sourceRoot":"","sources":["../../../../src/view/frontend/components/ModulesPage.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,MAAM,WAAW,GAAa,GAAG,EAAE;IACjC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAkB,EAAE,CAAC,CAAC;IAC5D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,EAAE;aACX,IAAI,CAAC,CAAC,IAAqB,EAAE,EAAE;YAC9B,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;YACpB,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtB,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,OAAO;QAAE,OAAO,+CAA6B,CAAC;IAClD,IAAI,KAAK;QAAE,OAAO,eAAK,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,wBAAU,KAAK,IAAO,CAAC;IAEzE,OAAO,CACL,0BACE,uCAAoB,EACpB,oEAAgD,EAChD,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,uCAAuC,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,YAC5H,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAClB,eAAwB,KAAK,EAAE;wBAC7B,UAAU,EAAE,MAAM;wBAClB,YAAY,EAAE,KAAK;wBACnB,OAAO,EAAE,QAAQ;wBACjB,SAAS,EAAE,2BAA2B;wBACtC,UAAU,EAAE,mBAAmB;qBAChC,aACC,aAAI,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,YACzB,KAAC,IAAI,IAAC,EAAE,EAAE,YAAY,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,YACtF,GAAG,CAAC,KAAK,GACL,GACJ,EACL,YAAG,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAG,GAAG,CAAC,WAAW,GAAK,EACvE,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,aACvG,gBAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,aAChD,YAAG,SAAS,EAAC,oBAAoB,GAAK,OAAE,GAAG,CAAC,aAAa,oBACpD,EACP,KAAC,IAAI,IAAC,EAAE,EAAE,YAAY,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE;wCAC3C,UAAU,EAAE,SAAS;wCACrB,KAAK,EAAE,MAAM;wCACb,OAAO,EAAE,aAAa;wCACtB,YAAY,EAAE,KAAK;wCACnB,cAAc,EAAE,MAAM;wCACtB,QAAQ,EAAE,QAAQ;qCACnB,wBAEM,IACH,KA3BE,GAAG,CAAC,QAAQ,CA4BhB,CACP,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/view/frontend/index.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { createRoot } from 'react-dom/client';
|
|
4
|
+
import { BrowserRouter, Routes, Route } from 'react-router-dom';
|
|
5
|
+
import App from './components/App.tsx';
|
|
6
|
+
import HomePage from './components/HomePage.tsx';
|
|
7
|
+
import ModulesPage from './components/ModulesPage.tsx';
|
|
8
|
+
import ModuleDetailPage from './components/ModuleDetailPage.tsx';
|
|
9
|
+
import EndpointDetailPage from './components/EndpointDetailPage.tsx';
|
|
10
|
+
const container = document.getElementById('root');
|
|
11
|
+
if (!container)
|
|
12
|
+
throw new Error('Root element not found');
|
|
13
|
+
const root = createRoot(container);
|
|
14
|
+
root.render(_jsx(React.StrictMode, { children: _jsx(BrowserRouter, { children: _jsxs(Routes, { children: [_jsxs(Route, { path: "/", element: _jsx(App, {}), children: [_jsx(Route, { index: true, element: _jsx(HomePage, {}) }), _jsx(Route, { path: "modules", element: _jsx(ModulesPage, {}) }), _jsx(Route, { path: "modules/:filename", element: _jsx(ModuleDetailPage, {}) }), _jsx(Route, { path: "modules/:filename/endpoints/:endpointPath", element: _jsx(EndpointDetailPage, {}) }), _jsx(Route, { path: "search", element: _jsx("div", { children: "Search (coming soon)" }) })] }), _jsx(Route, { path: "*", element: _jsx("div", { children: "Not Found" }) })] }) }) }));
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/view/frontend/index.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAY,MAAM,kBAAkB,CAAC;AAC1E,OAAO,GAAG,MAAM,sBAAsB,CAAC;AACvC,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,WAAW,MAAM,8BAA8B,CAAC;AACvD,OAAO,gBAAgB,MAAM,mCAAmC,CAAC;AACjE,OAAO,kBAAkB,MAAM,qCAAqC,CAAC;AAErE,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAClD,IAAI,CAAC,SAAS;IAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAE1D,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;AACnC,IAAI,CAAC,MAAM,CACT,KAAC,KAAK,CAAC,UAAU,cACf,KAAC,aAAa,cACZ,MAAC,MAAM,eACL,MAAC,KAAK,IAAC,IAAI,EAAC,GAAG,EAAC,OAAO,EAAE,KAAC,GAAG,KAAG,aAC9B,KAAC,KAAK,IAAC,KAAK,QAAC,OAAO,EAAE,KAAC,QAAQ,KAAG,GAAI,EACtC,KAAC,KAAK,IAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAE,KAAC,WAAW,KAAG,GAAI,EAClD,KAAC,KAAK,IAAC,IAAI,EAAC,mBAAmB,EAAC,OAAO,EAAE,KAAC,gBAAgB,KAAG,GAAI,EACjE,KAAC,KAAK,IAAC,IAAI,EAAC,2CAA2C,EAAC,OAAO,EAAE,KAAC,kBAAkB,KAAG,GAAI,EAC3F,KAAC,KAAK,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,iDAA+B,GAAI,IAC3D,EACR,KAAC,KAAK,IAAC,IAAI,EAAC,GAAG,EAAC,OAAO,EAAE,sCAAoB,GAAI,IAC1C,GACK,GACC,CACpB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface ModuleSummary {
|
|
2
|
+
filename: string;
|
|
3
|
+
title: string;
|
|
4
|
+
description: string;
|
|
5
|
+
endpointCount: number;
|
|
6
|
+
endpoints: EndpointSummary[];
|
|
7
|
+
}
|
|
8
|
+
export interface EndpointSummary {
|
|
9
|
+
method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
10
|
+
path: string;
|
|
11
|
+
summary: string;
|
|
12
|
+
}
|
|
13
|
+
export interface ModuleDetail {
|
|
14
|
+
title: string;
|
|
15
|
+
description: string;
|
|
16
|
+
version?: string;
|
|
17
|
+
endpoints: EndpointDefinition[];
|
|
18
|
+
}
|
|
19
|
+
export interface EndpointDefinition {
|
|
20
|
+
path: string;
|
|
21
|
+
method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
22
|
+
summary: string;
|
|
23
|
+
description?: string;
|
|
24
|
+
tags?: string[];
|
|
25
|
+
request?: {
|
|
26
|
+
headers?: Record<string, unknown>;
|
|
27
|
+
params?: Record<string, unknown>;
|
|
28
|
+
query?: Record<string, unknown>;
|
|
29
|
+
body?: Record<string, unknown>;
|
|
30
|
+
};
|
|
31
|
+
response: {
|
|
32
|
+
[statusCode: string]: Record<string, unknown>;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/view/frontend/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,kBAAkB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,CAAC;IACF,QAAQ,EAAE;QACR,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/C,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/view/frontend/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ModuleSummary, ModuleDetail } from '../types.ts';
|
|
2
|
+
export declare function fetchModules(): Promise<ModuleSummary[]>;
|
|
3
|
+
export declare function fetchModuleDetail(filename: string): Promise<ModuleDetail>;
|
|
4
|
+
export declare function fetchSchema(filename: string): Promise<any>;
|
|
5
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/view/frontend/utils/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI/D,wBAAsB,YAAY,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAY7D;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAI/E;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAIhE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const API_BASE = '/api';
|
|
2
|
+
export async function fetchModules() {
|
|
3
|
+
const res = await fetch(`${API_BASE}/docs`);
|
|
4
|
+
if (!res.ok)
|
|
5
|
+
throw new Error(`Failed to fetch modules: ${res.statusText}`);
|
|
6
|
+
const data = await res.json();
|
|
7
|
+
// Transform API response to ModuleSummary[]
|
|
8
|
+
return data.modules.map((mod) => ({
|
|
9
|
+
filename: mod.filename,
|
|
10
|
+
title: mod.title,
|
|
11
|
+
description: mod.description,
|
|
12
|
+
endpointCount: mod.endpoints.length,
|
|
13
|
+
endpoints: mod.endpoints,
|
|
14
|
+
}));
|
|
15
|
+
}
|
|
16
|
+
export async function fetchModuleDetail(filename) {
|
|
17
|
+
const res = await fetch(`${API_BASE}/docs/${filename}`);
|
|
18
|
+
if (!res.ok)
|
|
19
|
+
throw new Error(`Failed to fetch module ${filename}: ${res.statusText}`);
|
|
20
|
+
return await res.json();
|
|
21
|
+
}
|
|
22
|
+
export async function fetchSchema(filename) {
|
|
23
|
+
const res = await fetch(`${API_BASE}/schemas/${filename}`);
|
|
24
|
+
if (!res.ok)
|
|
25
|
+
throw new Error(`Failed to fetch schema ${filename}: ${res.statusText}`);
|
|
26
|
+
return await res.json();
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/view/frontend/utils/api.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAAG,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,4CAA4C;IAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;QACrC,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM;QACnC,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,QAAgB;IACtD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,SAAS,QAAQ,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,KAAK,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACtF,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgB;IAChD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,YAAY,QAAQ,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,KAAK,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACtF,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC"}
|