@zuplo/editor 1.0.18282606817-dev → 1.0.18288423685-dev
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/client/{local-editor.html → local.html} +5 -5
- package/dist/client/static/css/App-DH9HRCOf.css +1 -0
- package/dist/client/static/css/main-DB0Klj1W.css +1 -0
- package/dist/client/static/js/App-B6G4730z.js +2162 -0
- package/dist/client/static/js/App-B6G4730z.js.map +1 -0
- package/dist/client/static/js/local-worker-Cd_QJYDp.js +2 -0
- package/dist/client/static/js/local-worker-Cd_QJYDp.js.map +1 -0
- package/dist/client/static/js/main-BKLfe0Z9.js +52 -0
- package/dist/client/static/js/main-BKLfe0Z9.js.map +1 -0
- package/dist/config.d.ts +54 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +54 -0
- package/dist/config.js.map +1 -0
- package/dist/error-handler.d.ts +3 -0
- package/dist/error-handler.d.ts.map +1 -0
- package/dist/error-handler.js +135 -0
- package/dist/error-handler.js.map +1 -0
- package/dist/interfaces.d.ts +24 -0
- package/dist/interfaces.d.ts.map +1 -0
- package/dist/interfaces.js +13 -0
- package/dist/interfaces.js.map +1 -0
- package/dist/routes/api.d.ts +2 -1
- package/dist/routes/api.d.ts.map +1 -1
- package/dist/routes/api.js +23 -21
- package/dist/routes/api.js.map +1 -1
- package/dist/routes/editor.d.ts.map +1 -1
- package/dist/routes/editor.js +37 -51
- package/dist/routes/editor.js.map +1 -1
- package/dist/routes/fs.d.ts.map +1 -1
- package/dist/routes/fs.js +219 -238
- package/dist/routes/fs.js.map +1 -1
- package/dist/routes/test.js +1 -1
- package/dist/routes/test.js.map +1 -1
- package/dist/routes/types.d.ts.map +1 -1
- package/dist/routes/types.js +30 -22
- package/dist/routes/types.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +38 -29
- package/dist/server.js.map +1 -1
- package/dist/utils/path.d.ts +33 -0
- package/dist/utils/path.d.ts.map +1 -0
- package/dist/utils/path.js +42 -0
- package/dist/utils/path.js.map +1 -0
- package/package.json +2 -1
- package/dist/client/static/css/main-D3M2tKfG.css +0 -1
- package/dist/client/static/js/local-worker-BVQSFGzz.js +0 -2
- package/dist/client/static/js/local-worker-BVQSFGzz.js.map +0 -1
- package/dist/client/static/js/main-CIyp_ifb.js +0 -2074
- package/dist/client/static/js/main-CIyp_ifb.js.map +0 -1
package/dist/routes/fs.js
CHANGED
@@ -1,5 +1,8 @@
|
|
1
|
+
import { ApiError, Problems } from "@zuplo/errors";
|
1
2
|
import fs, { readdir } from "node:fs/promises";
|
2
3
|
import path from "node:path";
|
4
|
+
import { editorConfig } from "../config.js";
|
5
|
+
import { normalizeDisplayPath, normalizeRelativePath } from "../utils/path.js";
|
3
6
|
async function fileExists(filepath) {
|
4
7
|
try {
|
5
8
|
await fs.access(filepath);
|
@@ -22,304 +25,282 @@ export async function createFsRoutes(fastify, options) {
|
|
22
25
|
const { workingDir } = options;
|
23
26
|
// Match portal's file API shape but simplified for local: /api/fs/dir
|
24
27
|
fastify.get("/dir", async (request, reply) => {
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
if (
|
43
|
-
|
44
|
-
fileTree.push([normalizedPath, 2]);
|
45
|
-
if (recursive) {
|
46
|
-
await readDirRecursive(fullPath, relativePath);
|
47
|
-
}
|
48
|
-
}
|
49
|
-
else if (entry.isFile()) {
|
50
|
-
// Type 1 = File
|
51
|
-
fileTree.push([normalizedPath, 1]);
|
28
|
+
const requestPath = request.query.path ?? "/";
|
29
|
+
const recursive = request.query.recursive === "true";
|
30
|
+
const fileTree = [];
|
31
|
+
// Helper function to recursively read directory
|
32
|
+
const readDirRecursive = async (dirPath, basePath = "") => {
|
33
|
+
try {
|
34
|
+
const entries = await readdir(dirPath, { withFileTypes: true });
|
35
|
+
for (const entry of entries) {
|
36
|
+
const relativePath = basePath
|
37
|
+
? `${basePath}/${entry.name}`
|
38
|
+
: entry.name;
|
39
|
+
// Always prepend / to match portal's path format
|
40
|
+
const normalizedPath = normalizeDisplayPath(relativePath);
|
41
|
+
const fullPath = path.join(dirPath, entry.name);
|
42
|
+
if (entry.isDirectory()) {
|
43
|
+
// Type 2 = Directory
|
44
|
+
fileTree.push([normalizedPath, 2]);
|
45
|
+
if (recursive) {
|
46
|
+
await readDirRecursive(fullPath, relativePath);
|
52
47
|
}
|
53
48
|
}
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
}
|
59
|
-
};
|
60
|
-
if (requestPath === "/") {
|
61
|
-
// Read all directories - add parent dirs first
|
62
|
-
const configPath = path.join(workingDir, "config");
|
63
|
-
if (await dirExists(configPath)) {
|
64
|
-
fileTree.push(["/config", 2]);
|
65
|
-
await readDirRecursive(configPath, "config");
|
66
|
-
}
|
67
|
-
const modulesPath = path.join(workingDir, "modules");
|
68
|
-
if (await dirExists(modulesPath)) {
|
69
|
-
fileTree.push(["/modules", 2]);
|
70
|
-
await readDirRecursive(modulesPath, "modules");
|
71
|
-
}
|
72
|
-
const schemasPath = path.join(workingDir, "schemas");
|
73
|
-
if (await dirExists(schemasPath)) {
|
74
|
-
fileTree.push(["/schemas", 2]);
|
75
|
-
await readDirRecursive(schemasPath, "schemas");
|
49
|
+
else if (entry.isFile()) {
|
50
|
+
// Type 1 = File
|
51
|
+
fileTree.push([normalizedPath, 1]);
|
52
|
+
}
|
76
53
|
}
|
77
54
|
}
|
78
|
-
|
79
|
-
//
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
55
|
+
catch (err) {
|
56
|
+
// Skip directories that can't be read (permissions, etc)
|
57
|
+
// but log the warning for debugging
|
58
|
+
request.log.warn({ err, dirPath }, "Could not read directory, skipping");
|
59
|
+
}
|
60
|
+
};
|
61
|
+
if (requestPath === "/") {
|
62
|
+
// Read all directories - add parent dirs first
|
63
|
+
const configPath = path.join(workingDir, "config");
|
64
|
+
if (await dirExists(configPath)) {
|
65
|
+
fileTree.push(["/config", 2]);
|
66
|
+
await readDirRecursive(configPath, "config");
|
67
|
+
}
|
68
|
+
const modulesPath = path.join(workingDir, "modules");
|
69
|
+
if (await dirExists(modulesPath)) {
|
70
|
+
fileTree.push(["/modules", 2]);
|
71
|
+
await readDirRecursive(modulesPath, "modules");
|
72
|
+
}
|
73
|
+
const schemasPath = path.join(workingDir, "schemas");
|
74
|
+
if (await dirExists(schemasPath)) {
|
75
|
+
fileTree.push(["/schemas", 2]);
|
76
|
+
await readDirRecursive(schemasPath, "schemas");
|
84
77
|
}
|
85
|
-
// Return in backend's format: { path: string, result: FileList }
|
86
|
-
reply.status(200).send({
|
87
|
-
path: requestPath,
|
88
|
-
result: fileTree,
|
89
|
-
});
|
90
78
|
}
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
79
|
+
else {
|
80
|
+
// Read specific directory
|
81
|
+
const fullPath = path.join(workingDir, requestPath);
|
82
|
+
if (await dirExists(fullPath)) {
|
83
|
+
await readDirRecursive(fullPath, requestPath);
|
84
|
+
}
|
95
85
|
}
|
86
|
+
// Return in backend's format: { path: string, result: FileList }
|
87
|
+
reply.status(200).send({
|
88
|
+
path: requestPath,
|
89
|
+
result: fileTree,
|
90
|
+
});
|
96
91
|
});
|
97
92
|
// Match portal's file API shape but simplified for local: /api/fs/file
|
98
|
-
fastify.get("/file",
|
93
|
+
fastify.get("/file", {
|
94
|
+
schema: {
|
95
|
+
querystring: {
|
96
|
+
type: "object",
|
97
|
+
required: ["path"],
|
98
|
+
properties: {
|
99
|
+
path: { type: "string", minLength: 1 },
|
100
|
+
},
|
101
|
+
},
|
102
|
+
},
|
103
|
+
}, async (request, reply) => {
|
99
104
|
const filePath = request.query.path;
|
100
|
-
|
101
|
-
return reply.status(400).send("File path is required");
|
102
|
-
}
|
103
|
-
// Remove leading slash for path.join to work correctly
|
104
|
-
const relativePath = filePath.startsWith("/")
|
105
|
-
? filePath.slice(1)
|
106
|
-
: filePath;
|
105
|
+
const relativePath = normalizeRelativePath(filePath);
|
107
106
|
const fullPath = path.join(workingDir, relativePath);
|
108
107
|
if (!(await fileExists(fullPath))) {
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
const stats = await fs.stat(fullPath);
|
114
|
-
const content = await fs.readFile(fullPath, "utf-8");
|
115
|
-
// Return raw content as text with Last-Modified header
|
116
|
-
reply
|
117
|
-
.status(200)
|
118
|
-
.type("text/plain")
|
119
|
-
.header("Last-Modified", stats.mtime.toUTCString())
|
120
|
-
.send(content);
|
121
|
-
}
|
122
|
-
catch (err) {
|
123
|
-
reply.status(500).send(`Error reading file: ${err.message}`);
|
108
|
+
throw new ApiError({
|
109
|
+
...Problems.NOT_FOUND,
|
110
|
+
detail: `Cannot find file: ${filePath}`,
|
111
|
+
});
|
124
112
|
}
|
113
|
+
// Get file stats for Last-Modified header
|
114
|
+
const stats = await fs.stat(fullPath);
|
115
|
+
const content = await fs.readFile(fullPath, "utf-8");
|
116
|
+
// Return raw content as text with Last-Modified header
|
117
|
+
reply
|
118
|
+
.status(200)
|
119
|
+
.type("text/plain")
|
120
|
+
.header("Last-Modified", stats.mtime.toUTCString())
|
121
|
+
.send(content);
|
125
122
|
});
|
126
123
|
// Write/create a file: POST /file?path=...
|
127
|
-
fastify.post("/file",
|
124
|
+
fastify.post("/file", {
|
125
|
+
schema: {
|
126
|
+
querystring: {
|
127
|
+
type: "object",
|
128
|
+
required: ["path"],
|
129
|
+
properties: {
|
130
|
+
path: { type: "string", minLength: 1 },
|
131
|
+
},
|
132
|
+
},
|
133
|
+
},
|
134
|
+
}, async (request, reply) => {
|
128
135
|
const filePath = request.query.path;
|
129
|
-
|
130
|
-
return reply.status(400).send("File path is required");
|
131
|
-
}
|
132
|
-
// Remove leading slash for path.join to work correctly
|
133
|
-
const relativePath = filePath.startsWith("/")
|
134
|
-
? filePath.slice(1)
|
135
|
-
: filePath;
|
136
|
+
const relativePath = normalizeRelativePath(filePath);
|
136
137
|
const fullPath = path.join(workingDir, relativePath);
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
type: "https://zup.fail/file-conflict",
|
154
|
-
title: "File has been modified",
|
155
|
-
status: 409,
|
156
|
-
detail: "The file has been modified on disk since you loaded it. Please resolve the conflict before saving.",
|
157
|
-
});
|
158
|
-
}
|
138
|
+
// Check if file exists and has been modified since client loaded it
|
139
|
+
// Skip conflict check if x-force-save header is present (user resolved conflict)
|
140
|
+
const forceSave = request.headers["x-force-save"];
|
141
|
+
if (!forceSave && (await fileExists(fullPath))) {
|
142
|
+
const stats = await fs.stat(fullPath);
|
143
|
+
const ifUnmodifiedSince = request.headers["if-unmodified-since"];
|
144
|
+
if (ifUnmodifiedSince) {
|
145
|
+
const clientTimestamp = new Date(ifUnmodifiedSince).getTime();
|
146
|
+
const fileTimestamp = stats.mtime.getTime();
|
147
|
+
// If file has been modified since client loaded it (beyond tolerance), return conflict error
|
148
|
+
if (fileTimestamp >
|
149
|
+
clientTimestamp + editorConfig.file.conflictToleranceMs) {
|
150
|
+
throw new ApiError({
|
151
|
+
...Problems.CONFLICT,
|
152
|
+
detail: "The file has been modified on disk since you loaded it. Please resolve the conflict before saving.",
|
153
|
+
});
|
159
154
|
}
|
160
155
|
}
|
156
|
+
}
|
157
|
+
try {
|
161
158
|
// Ensure parent directory exists
|
162
159
|
const dir = path.dirname(fullPath);
|
163
160
|
await fs.mkdir(dir, { recursive: true });
|
164
|
-
// Get the raw body content - handle text content type
|
165
|
-
const content = typeof request.body === "string"
|
166
|
-
? request.body
|
167
|
-
: JSON.stringify(request.body);
|
168
|
-
await fs.writeFile(fullPath, content, "utf-8");
|
169
|
-
// Match backend API response format
|
170
|
-
reply.status(200).send({ buildId: "local-build-" + Date.now() });
|
171
161
|
}
|
172
162
|
catch (err) {
|
173
163
|
if (err.code === "ENOENT") {
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
status: 404,
|
164
|
+
throw new ApiError({
|
165
|
+
...Problems.NOT_FOUND,
|
166
|
+
detail: "Directory does not exist",
|
178
167
|
});
|
179
168
|
}
|
180
|
-
|
181
|
-
type: "https://zup.fail/file-write-failed",
|
182
|
-
title: "File write failed",
|
183
|
-
status: 500,
|
184
|
-
});
|
169
|
+
throw err;
|
185
170
|
}
|
171
|
+
// Get the raw body content - handle text content type
|
172
|
+
const content = typeof request.body === "string"
|
173
|
+
? request.body
|
174
|
+
: JSON.stringify(request.body);
|
175
|
+
await fs.writeFile(fullPath, content, "utf-8");
|
176
|
+
// Match backend API response format
|
177
|
+
reply.status(200).send({ buildId: "local-build-" + Date.now() });
|
186
178
|
});
|
187
179
|
// Write/create multiple files: POST /files (multipart)
|
188
180
|
fastify.post("/files", async (request, reply) => {
|
189
181
|
if (!request.isMultipart()) {
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
status: 400,
|
182
|
+
throw new ApiError({
|
183
|
+
...Problems.BAD_REQUEST,
|
184
|
+
detail: "Request must be multipart/form-data",
|
194
185
|
});
|
195
186
|
}
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
const
|
206
|
-
|
207
|
-
|
208
|
-
const
|
209
|
-
const
|
210
|
-
if (
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
// Allow 2 second tolerance for filesystem timestamp precision
|
215
|
-
const TOLERANCE_MS = 2000;
|
216
|
-
if (fileTimestamp > clientTimestamp + TOLERANCE_MS) {
|
217
|
-
conflictedFiles.push(`/${relativePath}`);
|
218
|
-
continue;
|
219
|
-
}
|
187
|
+
const parts = request.parts({ preservePath: true });
|
188
|
+
const conflictedFiles = [];
|
189
|
+
for await (const part of parts) {
|
190
|
+
if (part.type === "file" && part.filename) {
|
191
|
+
const relativePath = normalizeRelativePath(part.filename);
|
192
|
+
const fullPath = path.join(workingDir, relativePath);
|
193
|
+
// Check for conflicts using custom header
|
194
|
+
if (await fileExists(fullPath)) {
|
195
|
+
const headerKey = `x-if-unmodified-since-${encodeURIComponent(normalizeDisplayPath(relativePath))}`.toLowerCase();
|
196
|
+
const ifUnmodifiedSince = request.headers[headerKey];
|
197
|
+
if (ifUnmodifiedSince) {
|
198
|
+
const stats = await fs.stat(fullPath);
|
199
|
+
const clientTimestamp = new Date(ifUnmodifiedSince).getTime();
|
200
|
+
const fileTimestamp = stats.mtime.getTime();
|
201
|
+
if (fileTimestamp >
|
202
|
+
clientTimestamp + editorConfig.file.conflictToleranceMs) {
|
203
|
+
conflictedFiles.push(normalizeDisplayPath(relativePath));
|
204
|
+
continue;
|
220
205
|
}
|
221
206
|
}
|
222
|
-
// Ensure parent directory exists
|
223
|
-
const dir = path.dirname(fullPath);
|
224
|
-
await fs.mkdir(dir, { recursive: true });
|
225
|
-
// Write the file using the stream
|
226
|
-
const buffer = await part.toBuffer();
|
227
|
-
await fs.writeFile(fullPath, buffer);
|
228
207
|
}
|
208
|
+
// Ensure parent directory exists
|
209
|
+
const dir = path.dirname(fullPath);
|
210
|
+
await fs.mkdir(dir, { recursive: true });
|
211
|
+
// Write the file using the stream
|
212
|
+
const buffer = await part.toBuffer();
|
213
|
+
await fs.writeFile(fullPath, buffer);
|
229
214
|
}
|
230
|
-
// If any files had conflicts, return 409
|
231
|
-
if (conflictedFiles.length > 0) {
|
232
|
-
return reply.status(409).send({
|
233
|
-
type: "https://zup.fail/file-conflict",
|
234
|
-
title: "File conflicts detected",
|
235
|
-
status: 409,
|
236
|
-
detail: `The following files have been modified on disk since you loaded them: ${conflictedFiles.join(", ")}`,
|
237
|
-
conflictedFiles,
|
238
|
-
});
|
239
|
-
}
|
240
|
-
reply.status(200).send({ buildId: "local-build-" + Date.now() });
|
241
215
|
}
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
216
|
+
// If any files had conflicts, return 409
|
217
|
+
if (conflictedFiles.length > 0) {
|
218
|
+
throw new ApiError({
|
219
|
+
...Problems.CONFLICT,
|
220
|
+
detail: `The following files have been modified on disk since you loaded them: ${conflictedFiles.join(", ")}`,
|
221
|
+
instance: JSON.stringify({ conflictedFiles }),
|
248
222
|
});
|
249
223
|
}
|
224
|
+
reply.status(200).send({ buildId: "local-build-" + Date.now() });
|
250
225
|
});
|
251
226
|
// Rename a file: PATCH /api/fs/file?path=...
|
252
|
-
fastify.patch("/file",
|
227
|
+
fastify.patch("/file", {
|
228
|
+
schema: {
|
229
|
+
querystring: {
|
230
|
+
type: "object",
|
231
|
+
required: ["path"],
|
232
|
+
properties: {
|
233
|
+
path: { type: "string", minLength: 1 },
|
234
|
+
},
|
235
|
+
},
|
236
|
+
body: {
|
237
|
+
type: "object",
|
238
|
+
required: ["newPath"],
|
239
|
+
properties: {
|
240
|
+
newPath: { type: "string", minLength: 1 },
|
241
|
+
},
|
242
|
+
},
|
243
|
+
},
|
244
|
+
}, async (request, reply) => {
|
253
245
|
const oldPath = request.query.path;
|
254
246
|
const { newPath } = request.body;
|
255
|
-
|
256
|
-
|
257
|
-
}
|
258
|
-
// Remove leading slashes
|
259
|
-
const oldRelativePath = oldPath.startsWith("/")
|
260
|
-
? oldPath.slice(1)
|
261
|
-
: oldPath;
|
262
|
-
const newRelativePath = newPath.startsWith("/")
|
263
|
-
? newPath.slice(1)
|
264
|
-
: newPath;
|
247
|
+
const oldRelativePath = normalizeRelativePath(oldPath);
|
248
|
+
const newRelativePath = normalizeRelativePath(newPath);
|
265
249
|
const oldFullPath = path.join(workingDir, oldRelativePath);
|
266
250
|
const newFullPath = path.join(workingDir, newRelativePath);
|
267
251
|
if (!(await fileExists(oldFullPath))) {
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
await fs.rename(oldFullPath, newFullPath);
|
272
|
-
reply.status(200).send({
|
273
|
-
status: "redeploy successful",
|
274
|
-
buildId: "local-build-" + Date.now(),
|
252
|
+
throw new ApiError({
|
253
|
+
...Problems.NOT_FOUND,
|
254
|
+
detail: `Cannot find file: ${oldPath}`,
|
275
255
|
});
|
276
256
|
}
|
277
|
-
|
278
|
-
|
279
|
-
|
257
|
+
await fs.rename(oldFullPath, newFullPath);
|
258
|
+
reply.status(200).send({
|
259
|
+
status: "redeploy successful",
|
260
|
+
buildId: "local-build-" + Date.now(),
|
261
|
+
});
|
280
262
|
});
|
281
263
|
// Delete a file: DELETE /api/fs/delete?path=...
|
282
|
-
fastify.delete("/delete",
|
264
|
+
fastify.delete("/delete", {
|
265
|
+
schema: {
|
266
|
+
querystring: {
|
267
|
+
type: "object",
|
268
|
+
required: ["path"],
|
269
|
+
properties: {
|
270
|
+
path: { type: "string", minLength: 1 },
|
271
|
+
},
|
272
|
+
},
|
273
|
+
},
|
274
|
+
}, async (request, reply) => {
|
283
275
|
const filePath = request.query.path;
|
284
|
-
|
285
|
-
return reply.status(400).send("File path is required");
|
286
|
-
}
|
287
|
-
// Remove leading slash
|
288
|
-
const relativePath = filePath.startsWith("/")
|
289
|
-
? filePath.slice(1)
|
290
|
-
: filePath;
|
276
|
+
const relativePath = normalizeRelativePath(filePath);
|
291
277
|
const fullPath = path.join(workingDir, relativePath);
|
292
278
|
if (!(await fileExists(fullPath))) {
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
reply.status(200).send({ buildId: "local-build-" + Date.now() });
|
298
|
-
}
|
299
|
-
catch (err) {
|
300
|
-
reply
|
301
|
-
.status(500)
|
302
|
-
.send(`Error deleting file: ${err.message}`);
|
279
|
+
throw new ApiError({
|
280
|
+
...Problems.NOT_FOUND,
|
281
|
+
detail: `Cannot find file: ${filePath}`,
|
282
|
+
});
|
303
283
|
}
|
284
|
+
await fs.unlink(fullPath);
|
285
|
+
reply.status(200).send({ buildId: "local-build-" + Date.now() });
|
304
286
|
});
|
305
287
|
// Create a directory: POST /api/fs/dir?path=...
|
306
|
-
fastify.post("/dir",
|
288
|
+
fastify.post("/dir", {
|
289
|
+
schema: {
|
290
|
+
querystring: {
|
291
|
+
type: "object",
|
292
|
+
required: ["path"],
|
293
|
+
properties: {
|
294
|
+
path: { type: "string", minLength: 1 },
|
295
|
+
},
|
296
|
+
},
|
297
|
+
},
|
298
|
+
}, async (request, reply) => {
|
307
299
|
const dirPath = request.query.path;
|
308
|
-
|
309
|
-
return reply.status(400).send("Directory path is required");
|
310
|
-
}
|
311
|
-
// Remove leading slash
|
312
|
-
const relativePath = dirPath.startsWith("/") ? dirPath.slice(1) : dirPath;
|
300
|
+
const relativePath = normalizeRelativePath(dirPath);
|
313
301
|
const fullPath = path.join(workingDir, relativePath);
|
314
|
-
|
315
|
-
|
316
|
-
reply.status(201).send();
|
317
|
-
}
|
318
|
-
catch (err) {
|
319
|
-
reply
|
320
|
-
.status(500)
|
321
|
-
.send(`Error creating directory: ${err.message}`);
|
322
|
-
}
|
302
|
+
await fs.mkdir(fullPath, { recursive: true });
|
303
|
+
reply.status(201).send();
|
323
304
|
});
|
324
305
|
}
|
325
306
|
//# sourceMappingURL=fs.js.map
|
package/dist/routes/fs.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/routes/fs.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/routes/fs.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/test.js
CHANGED
@@ -45,7 +45,7 @@ export async function createTestRoutes(fastify, options) {
|
|
45
45
|
});
|
46
46
|
}
|
47
47
|
catch (err) {
|
48
|
-
logger.error(
|
48
|
+
logger.error({ err, method, fullUrl }, "Error proxying test request");
|
49
49
|
// Return a proper problem details response
|
50
50
|
const problemDetails = {
|
51
51
|
type: "https://zuplo.com/problems/local-gateway-unavailable",
|
package/dist/routes/test.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/routes/test.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAwB,EACxB,OAA0B;IAE1B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,iEAAiE;IACjE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAmB,CAAC;QAChD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC;QAEtE,oDAAoD;QACpD,MAAM,SAAS,GAAG,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC;QACvD,MAAM,OAAO,GAAG,GAAG,SAAS,GAAG,IAAI,EAAE,CAAC;QAEtC,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,0BAA0B,MAAM,IAAI,OAAO,EAAE,CAAC,CAAC;YAE3D,4DAA4D;YAC5D,MAAM,YAAY,GAA2B,EAAE,CAAC;YAChD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;gBACnC,2CAA2C;gBAC3C,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;oBACrD,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC5B,CAAC;YACH,CAAC;YAED,uBAAuB;YACvB,MAAM,YAAY,GAAgB;gBAChC,MAAM;gBACN,OAAO,EAAE,YAAY;aACtB,CAAC;YAEF,qCAAqC;YACrC,IAAI,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC5D,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;YAC3B,CAAC;YAED,wCAAwC;YACxC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAEpD,mBAAmB;YACnB,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3C,MAAM,eAAe,GAA2B,EAAE,CAAC;YAEnD,kCAAkC;YAClC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACtC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,4DAA4D;YAC5D,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,OAAO,EAAE,eAAe;gBACxB,IAAI,EAAE,YAAY;aACnB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/routes/test.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/routes/types.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/routes/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAIrE,UAAU,kBAAmB,SAAQ,oBAAoB;IACvD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA8Cf"}
|