@zuplo/editor 0.1.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.
- package/dist/client/assets/local-editor-C-tz9jAp.js +2048 -0
- package/dist/client/assets/local-editor-DTOl6Htj.css +1 -0
- package/dist/client/burglar.png +0 -0
- package/dist/client/dot-pattern.png +0 -0
- package/dist/client/example-image.png +0 -0
- package/dist/client/favicon.ico +0 -0
- package/dist/client/favicon.png +0 -0
- package/dist/client/frame0.png +0 -0
- package/dist/client/icons/arrow_head_down.svg +7 -0
- package/dist/client/icons/arrow_head_up.svg +7 -0
- package/dist/client/icons/arrow_line.svg +7 -0
- package/dist/client/icons/arrow_picker_black.svg +3 -0
- package/dist/client/icons/arrow_picker_pink.svg +3 -0
- package/dist/client/icons/discord.svg +10 -0
- package/dist/client/icons/drag-handle-minor.svg +1 -0
- package/dist/client/icons/drag_2x8.svg +28 -0
- package/dist/client/icons/edit_mode.svg +4 -0
- package/dist/client/local-editor.html +19 -0
- package/dist/client/manifest.json +25 -0
- package/dist/client/monaco/min/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- package/dist/client/monaco/min/vs/base/common/worker/simpleWorker.nls.de.js +8 -0
- package/dist/client/monaco/min/vs/base/common/worker/simpleWorker.nls.es.js +8 -0
- package/dist/client/monaco/min/vs/base/common/worker/simpleWorker.nls.fr.js +8 -0
- package/dist/client/monaco/min/vs/base/common/worker/simpleWorker.nls.it.js +8 -0
- package/dist/client/monaco/min/vs/base/common/worker/simpleWorker.nls.ja.js +8 -0
- package/dist/client/monaco/min/vs/base/common/worker/simpleWorker.nls.js +8 -0
- package/dist/client/monaco/min/vs/base/common/worker/simpleWorker.nls.ko.js +8 -0
- package/dist/client/monaco/min/vs/base/common/worker/simpleWorker.nls.ru.js +8 -0
- package/dist/client/monaco/min/vs/base/common/worker/simpleWorker.nls.zh-cn.js +8 -0
- package/dist/client/monaco/min/vs/base/common/worker/simpleWorker.nls.zh-tw.js +8 -0
- package/dist/client/monaco/min/vs/base/worker/workerMain.js +30 -0
- package/dist/client/monaco/min/vs/basic-languages/abap/abap.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/apex/apex.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/azcli/azcli.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/bat/bat.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/bicep/bicep.js +11 -0
- package/dist/client/monaco/min/vs/basic-languages/cameligo/cameligo.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/clojure/clojure.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/coffee/coffee.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/cpp/cpp.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/csharp/csharp.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/csp/csp.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/css/css.js +12 -0
- package/dist/client/monaco/min/vs/basic-languages/cypher/cypher.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/dart/dart.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/dockerfile/dockerfile.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/ecl/ecl.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/elixir/elixir.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/flow9/flow9.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/freemarker2/freemarker2.js +12 -0
- package/dist/client/monaco/min/vs/basic-languages/fsharp/fsharp.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/go/go.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/graphql/graphql.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/handlebars/handlebars.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/hcl/hcl.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/html/html.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/ini/ini.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/java/java.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/javascript/javascript.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/julia/julia.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/kotlin/kotlin.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/less/less.js +11 -0
- package/dist/client/monaco/min/vs/basic-languages/lexon/lexon.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/liquid/liquid.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/lua/lua.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/m3/m3.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/markdown/markdown.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/mdx/mdx.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/mips/mips.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/msdax/msdax.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/mysql/mysql.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/objective-c/objective-c.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/pascal/pascal.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/pascaligo/pascaligo.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/perl/perl.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/pgsql/pgsql.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/php/php.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/pla/pla.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/postiats/postiats.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/powerquery/powerquery.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/powershell/powershell.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/protobuf/protobuf.js +11 -0
- package/dist/client/monaco/min/vs/basic-languages/pug/pug.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/python/python.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/qsharp/qsharp.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/r/r.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/razor/razor.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/redis/redis.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/redshift/redshift.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/restructuredtext/restructuredtext.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/ruby/ruby.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/rust/rust.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/sb/sb.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/scala/scala.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/scheme/scheme.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/scss/scss.js +12 -0
- package/dist/client/monaco/min/vs/basic-languages/shell/shell.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/solidity/solidity.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/sophia/sophia.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/sparql/sparql.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/sql/sql.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/st/st.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/swift/swift.js +13 -0
- package/dist/client/monaco/min/vs/basic-languages/systemverilog/systemverilog.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/tcl/tcl.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/twig/twig.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/typescript/typescript.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/typespec/typespec.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/vb/vb.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/wgsl/wgsl.js +307 -0
- package/dist/client/monaco/min/vs/basic-languages/xml/xml.js +10 -0
- package/dist/client/monaco/min/vs/basic-languages/yaml/yaml.js +10 -0
- package/dist/client/monaco/min/vs/editor/editor.main.css +8 -0
- package/dist/client/monaco/min/vs/editor/editor.main.js +768 -0
- package/dist/client/monaco/min/vs/editor/editor.main.nls.de.js +17 -0
- package/dist/client/monaco/min/vs/editor/editor.main.nls.es.js +17 -0
- package/dist/client/monaco/min/vs/editor/editor.main.nls.fr.js +15 -0
- package/dist/client/monaco/min/vs/editor/editor.main.nls.it.js +15 -0
- package/dist/client/monaco/min/vs/editor/editor.main.nls.ja.js +17 -0
- package/dist/client/monaco/min/vs/editor/editor.main.nls.js +15 -0
- package/dist/client/monaco/min/vs/editor/editor.main.nls.ko.js +15 -0
- package/dist/client/monaco/min/vs/editor/editor.main.nls.ru.js +17 -0
- package/dist/client/monaco/min/vs/editor/editor.main.nls.zh-cn.js +17 -0
- package/dist/client/monaco/min/vs/editor/editor.main.nls.zh-tw.js +15 -0
- package/dist/client/monaco/min/vs/language/css/cssMode.js +13 -0
- package/dist/client/monaco/min/vs/language/css/cssWorker.js +77 -0
- package/dist/client/monaco/min/vs/language/html/htmlMode.js +13 -0
- package/dist/client/monaco/min/vs/language/html/htmlWorker.js +454 -0
- package/dist/client/monaco/min/vs/language/json/jsonMode.js +19 -0
- package/dist/client/monaco/min/vs/language/json/jsonWorker.js +42 -0
- package/dist/client/monaco/min/vs/language/typescript/tsMode.js +20 -0
- package/dist/client/monaco/min/vs/language/typescript/tsWorker.js +51328 -0
- package/dist/client/monaco/min/vs/loader.js +11 -0
- package/dist/client/old_z.svg +25 -0
- package/dist/client/question_mark.svg +19 -0
- package/dist/client/robots.txt +2 -0
- package/dist/client/z_slice_spinner.svg +25 -0
- package/dist/client/z_spinner.svg +46 -0
- package/dist/client/zuplo.apng +0 -0
- package/dist/client/zuplo.svg +11 -0
- package/dist/client/zuplo_black.svg +11 -0
- package/dist/client/zuplo_white.svg +11 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/routes/files.d.ts +3 -0
- package/dist/routes/files.d.ts.map +1 -0
- package/dist/routes/files.js +10 -0
- package/dist/routes/files.js.map +1 -0
- package/dist/routes/fs.d.ts +7 -0
- package/dist/routes/fs.d.ts.map +1 -0
- package/dist/routes/fs.js +232 -0
- package/dist/routes/fs.js.map +1 -0
- package/dist/routes/modules.d.ts +3 -0
- package/dist/routes/modules.d.ts.map +1 -0
- package/dist/routes/modules.js +47 -0
- package/dist/routes/modules.js.map +1 -0
- package/dist/routes/types.d.ts +7 -0
- package/dist/routes/types.d.ts.map +1 -0
- package/dist/routes/types.js +37 -0
- package/dist/routes/types.js.map +1 -0
- package/dist/server.d.ts +35 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +163 -0
- package/dist/server.js.map +1 -0
- package/package.json +54 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"modules.js","sourceRoot":"","sources":["../../src/routes/modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,IAAI,MAAM,WAAW,CAAC;AAa7B,KAAK,UAAU,SAAS,CAAC,OAAe;IACtC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,UAAkB;IACpD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,IAAa,EAAE,GAAa,EAAE,EAAE;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAErD,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YACpC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,eAAe,GAAG,CAAC,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CACzD,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;YACxB,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;YACxB,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;YACzB,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC5B,CAAC;QAEF,MAAM,OAAO,GAA2B,EAAE,CAAC;QAE3C,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;YAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YAC9D,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAEjE,MAAM,WAAW,GAAG,uCAAuC,CAAC;YAC5D,IAAI,KAAK,CAAC;YACV,MAAM,OAAO,GAA2B,EAAE,CAAC;YAE3C,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC1D,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;oBACd,kBAAkB,EAAE,IAAI;iBACzB,CAAC,CAAC;YACL,CAAC;YAED,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,aAAa,cAAc,EAAE;gBACvC,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;QACL,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import type { FastifyInstance, FastifyPluginOptions } from "fastify";
|
2
|
+
interface TypesRoutesOptions extends FastifyPluginOptions {
|
3
|
+
portalRoot: string;
|
4
|
+
}
|
5
|
+
export declare function createTypesRoutes(fastify: FastifyInstance, options: TypesRoutesOptions): Promise<void>;
|
6
|
+
export {};
|
7
|
+
//# sourceMappingURL=types.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/routes/types.ts"],"names":[],"mappings":"AAAA,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,CAsCf"}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import fs from "node:fs/promises";
|
2
|
+
import path from "node:path";
|
3
|
+
export async function createTypesRoutes(fastify, options) {
|
4
|
+
const { portalRoot } = options;
|
5
|
+
// Serve TypeScript definition files from node_modules
|
6
|
+
// GET /api/types/node_modules/@types/node/index.d.ts
|
7
|
+
fastify.get("/node_modules/*", async (request, reply) => {
|
8
|
+
try {
|
9
|
+
// Get the path after /node_modules/
|
10
|
+
const requestedPath = request.params["*"];
|
11
|
+
const fullPath = path.join(portalRoot, "node_modules", requestedPath);
|
12
|
+
// Security: ensure the path is within node_modules
|
13
|
+
const resolvedPath = path.resolve(fullPath);
|
14
|
+
const node_modules_path = path.resolve(portalRoot, "node_modules");
|
15
|
+
if (!resolvedPath.startsWith(node_modules_path)) {
|
16
|
+
return reply.status(403).send("Access denied");
|
17
|
+
}
|
18
|
+
// Check if file exists
|
19
|
+
try {
|
20
|
+
const stat = await fs.stat(resolvedPath);
|
21
|
+
if (!stat.isFile()) {
|
22
|
+
return reply.status(404).send("Not found");
|
23
|
+
}
|
24
|
+
}
|
25
|
+
catch {
|
26
|
+
return reply.status(404).send("Not found");
|
27
|
+
}
|
28
|
+
// Read and return the file
|
29
|
+
const content = await fs.readFile(resolvedPath, "utf-8");
|
30
|
+
reply.type("application/typescript").send(content);
|
31
|
+
}
|
32
|
+
catch (err) {
|
33
|
+
reply.status(500).send(`Error reading file: ${err.message}`);
|
34
|
+
}
|
35
|
+
});
|
36
|
+
}
|
37
|
+
//# sourceMappingURL=types.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/routes/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAM7B,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAwB,EACxB,OAA2B;IAE3B,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAE/B,sDAAsD;IACtD,qDAAqD;IACrD,OAAO,CAAC,GAAG,CACT,iBAAiB,EACjB,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,IAAI,CAAC;YACH,oCAAoC;YACpC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;YAEtE,mDAAmD;YACnD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC5C,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YACnE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAChD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACjD,CAAC;YAED,uBAAuB;YACvB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACzC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;oBACnB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7C,CAAC;YAED,2BAA2B;YAC3B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,uBAAwB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/server.d.ts
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
import { type FastifyInstance } from "fastify";
|
2
|
+
import type { Logger } from "pino";
|
3
|
+
interface ServerOptions {
|
4
|
+
workingDir: string;
|
5
|
+
port: number;
|
6
|
+
/**
|
7
|
+
* Path to the built client assets directory.
|
8
|
+
* If not provided, will use Vite dev server (development mode only).
|
9
|
+
*/
|
10
|
+
clientPath?: string;
|
11
|
+
/**
|
12
|
+
* Path to vite.config.ts for development mode.
|
13
|
+
* Only used when clientPath is not provided.
|
14
|
+
*/
|
15
|
+
viteConfigPath?: string;
|
16
|
+
logger: Logger;
|
17
|
+
}
|
18
|
+
export declare class LocalEditorServer {
|
19
|
+
app: FastifyInstance;
|
20
|
+
private listenerHost;
|
21
|
+
private watcher;
|
22
|
+
private sseClients;
|
23
|
+
private workingDir;
|
24
|
+
private listenerPort;
|
25
|
+
private clientPath?;
|
26
|
+
private viteConfigPath?;
|
27
|
+
private vite;
|
28
|
+
private logger;
|
29
|
+
constructor(options: ServerOptions);
|
30
|
+
init: () => Promise<void>;
|
31
|
+
start: () => Promise<void>;
|
32
|
+
stop: () => Promise<void>;
|
33
|
+
}
|
34
|
+
export {};
|
35
|
+
//# sourceMappingURL=server.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAIA,OAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAGxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAQnC,UAAU,aAAa;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,iBAAiB;IACrB,GAAG,EAAE,eAAe,CAAC;IAC5B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE,aAAa;IAkBlC,IAAI,QAAa,OAAO,CAAC,IAAI,CAAC,CA4I5B;IAEF,KAAK,QAAa,OAAO,CAAC,IAAI,CAAC,CAM7B;IAEF,IAAI,QAAa,OAAO,CAAC,IAAI,CAAC,CAI5B;CACH"}
|
package/dist/server.js
ADDED
@@ -0,0 +1,163 @@
|
|
1
|
+
import fastifyCors from "@fastify/cors";
|
2
|
+
import fastifyMiddie from "@fastify/middie";
|
3
|
+
import fastifyStatic from "@fastify/static";
|
4
|
+
import { watch } from "chokidar";
|
5
|
+
import Fastify from "fastify";
|
6
|
+
import fs from "node:fs/promises";
|
7
|
+
import path from "node:path";
|
8
|
+
import { createServer as createViteServer } from "vite";
|
9
|
+
import { createFsRoutes } from "./routes/fs.js";
|
10
|
+
import { createTypesRoutes } from "./routes/types.js";
|
11
|
+
const POLICIES_FILENAME = "policies.json";
|
12
|
+
const CONFIG_DIR = "config";
|
13
|
+
export class LocalEditorServer {
|
14
|
+
app;
|
15
|
+
listenerHost;
|
16
|
+
watcher;
|
17
|
+
sseClients = new Set();
|
18
|
+
workingDir;
|
19
|
+
listenerPort;
|
20
|
+
clientPath;
|
21
|
+
viteConfigPath;
|
22
|
+
vite;
|
23
|
+
logger;
|
24
|
+
constructor(options) {
|
25
|
+
this.workingDir = options.workingDir;
|
26
|
+
this.listenerPort = options.port;
|
27
|
+
this.clientPath = options.clientPath;
|
28
|
+
this.viteConfigPath = options.viteConfigPath;
|
29
|
+
this.logger = options.logger;
|
30
|
+
this.listenerHost = "localhost";
|
31
|
+
this.watcher = watch(path.join(this.workingDir, CONFIG_DIR));
|
32
|
+
this.app = Fastify({
|
33
|
+
// logger: {
|
34
|
+
// },
|
35
|
+
bodyLimit: 100 * 1024 * 1024, // 100mb
|
36
|
+
trustProxy: true,
|
37
|
+
});
|
38
|
+
}
|
39
|
+
init = async () => {
|
40
|
+
// Register CORS
|
41
|
+
await this.app.register(fastifyCors, {
|
42
|
+
origin: "*",
|
43
|
+
methods: ["GET", "POST", "PUT", "DELETE", "OPTIONS"],
|
44
|
+
allowedHeaders: ["Content-Type", "Authorization"],
|
45
|
+
});
|
46
|
+
// Add support for text/plain and application/* content types
|
47
|
+
this.app.addContentTypeParser("text/plain", { parseAs: "string" }, (_req, body, done) => {
|
48
|
+
done(null, body);
|
49
|
+
});
|
50
|
+
this.app.addContentTypeParser("application/*", { parseAs: "buffer" }, (_req, body, done) => {
|
51
|
+
done(null, body);
|
52
|
+
});
|
53
|
+
// API routes MUST be registered before Vite middleware to avoid proxy conflicts
|
54
|
+
// Register filesystem routes at the path expected by the management API
|
55
|
+
// Format: /api/v1/deployments/{environmentName}/fs/...
|
56
|
+
await this.app.register(createFsRoutes, {
|
57
|
+
prefix: "/api/v1/deployments/local/fs",
|
58
|
+
workingDir: this.workingDir,
|
59
|
+
});
|
60
|
+
// Determine portal root for types routes
|
61
|
+
const portalRootForTypes = this.viteConfigPath
|
62
|
+
? path.resolve(path.dirname(this.viteConfigPath), "../..")
|
63
|
+
: path.resolve(path.dirname(this.clientPath), "../../..");
|
64
|
+
// Register types routes for serving TypeScript definitions from node_modules
|
65
|
+
await this.app.register(createTypesRoutes, {
|
66
|
+
prefix: "/api/types",
|
67
|
+
portalRoot: portalRootForTypes,
|
68
|
+
});
|
69
|
+
// Server-Sent Events for file changes
|
70
|
+
this.app.get("/api/changes", async (request, reply) => {
|
71
|
+
reply.raw.writeHead(200, {
|
72
|
+
"Content-Type": "text/event-stream",
|
73
|
+
"Cache-Control": "no-cache",
|
74
|
+
Connection: "keep-alive",
|
75
|
+
});
|
76
|
+
// Send initial event
|
77
|
+
reply.raw.write(`data: ${JSON.stringify({ type: "init", filePath: POLICIES_FILENAME })}\n\n`);
|
78
|
+
this.sseClients.add(reply.raw);
|
79
|
+
request.raw.on("close", () => {
|
80
|
+
this.sseClients.delete(reply.raw);
|
81
|
+
});
|
82
|
+
});
|
83
|
+
// Health check
|
84
|
+
this.app.get("/api/ping", async (_request, reply) => {
|
85
|
+
reply.status(200).send();
|
86
|
+
});
|
87
|
+
// Setup file watcher
|
88
|
+
this.watcher.on("change", async (filePath) => {
|
89
|
+
const configPath = path.join(this.workingDir, CONFIG_DIR);
|
90
|
+
const filePathRelative = path.relative(configPath, filePath);
|
91
|
+
const fileNameRelative = path.basename(filePath);
|
92
|
+
// Broadcast to all SSE clients
|
93
|
+
const data = JSON.stringify({
|
94
|
+
type: "change",
|
95
|
+
filePath: filePathRelative,
|
96
|
+
});
|
97
|
+
for (const client of this.sseClients) {
|
98
|
+
client.write(`event: change\ndata: ${data}\n\n`);
|
99
|
+
}
|
100
|
+
this.logger.info(`File changed: ${fileNameRelative}`);
|
101
|
+
});
|
102
|
+
// Determine portal root - Vite config is always at portal root
|
103
|
+
const portalRoot = this.viteConfigPath
|
104
|
+
? path.resolve(path.dirname(this.viteConfigPath), "../..")
|
105
|
+
: path.resolve(path.dirname(this.clientPath), "../../..");
|
106
|
+
// Serve Monaco editor files from node_modules
|
107
|
+
const monacoPath = path.join(portalRoot, "node_modules/monaco-editor");
|
108
|
+
await this.app.register(fastifyStatic, {
|
109
|
+
root: monacoPath,
|
110
|
+
prefix: "/monaco/",
|
111
|
+
});
|
112
|
+
// Enable Express-compatible middleware support
|
113
|
+
await this.app.register(fastifyMiddie);
|
114
|
+
// Use the root vite.config.ts with local-editor mode
|
115
|
+
const viteConfigPath = path.join(portalRoot, "vite.config.ts");
|
116
|
+
this.vite = await createViteServer({
|
117
|
+
configFile: viteConfigPath,
|
118
|
+
root: portalRoot,
|
119
|
+
server: { middlewareMode: true },
|
120
|
+
appType: "custom",
|
121
|
+
base: "/",
|
122
|
+
mode: "local-editor",
|
123
|
+
});
|
124
|
+
// Use Vite's middleware via @fastify/middie for non-API requests only
|
125
|
+
// This prevents Vite from intercepting API routes that Fastify handles
|
126
|
+
this.app.use((req, res, next) => {
|
127
|
+
// Skip Vite middleware for API routes - let Fastify handle them
|
128
|
+
if (req.url?.startsWith("/api/")) {
|
129
|
+
return next();
|
130
|
+
}
|
131
|
+
// Use Vite middleware for everything else
|
132
|
+
this.vite.middlewares(req, res, next);
|
133
|
+
});
|
134
|
+
const htmlPath = path.join(portalRoot, "local-editor.html");
|
135
|
+
const rawHtml = await fs.readFile(htmlPath, "utf-8");
|
136
|
+
// Serve the local-editor.html for SPA routing
|
137
|
+
this.app.get("*", async (request, reply) => {
|
138
|
+
const url = request.url;
|
139
|
+
try {
|
140
|
+
const template = await this.vite.transformIndexHtml(url, rawHtml);
|
141
|
+
reply.type("text/html").send(template);
|
142
|
+
}
|
143
|
+
catch (e) {
|
144
|
+
this.logger.error(e);
|
145
|
+
this.vite?.ssrFixStacktrace(e);
|
146
|
+
reply.status(500).send(e.message);
|
147
|
+
}
|
148
|
+
});
|
149
|
+
};
|
150
|
+
start = async () => {
|
151
|
+
await this.init();
|
152
|
+
await this.app.listen({
|
153
|
+
port: this.listenerPort,
|
154
|
+
host: this.listenerHost,
|
155
|
+
});
|
156
|
+
};
|
157
|
+
stop = async () => {
|
158
|
+
await this.watcher.close();
|
159
|
+
await this.vite?.close();
|
160
|
+
await this.app.close();
|
161
|
+
};
|
162
|
+
}
|
163
|
+
//# sourceMappingURL=server.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
{
|
2
|
+
"name": "@zuplo/editor",
|
3
|
+
"version": "0.1.0",
|
4
|
+
"description": "Local development server for Zuplo API Gateway projects",
|
5
|
+
"type": "module",
|
6
|
+
"main": "./dist/index.js",
|
7
|
+
"types": "./dist/index.d.ts",
|
8
|
+
"exports": {
|
9
|
+
".": {
|
10
|
+
"types": "./dist/index.d.ts",
|
11
|
+
"import": "./dist/index.js"
|
12
|
+
}
|
13
|
+
},
|
14
|
+
"files": [
|
15
|
+
"dist"
|
16
|
+
],
|
17
|
+
"scripts": {
|
18
|
+
"build": "pnpm run build:client && pnpm run build:server",
|
19
|
+
"build:client": "cd ../.. && vite build --mode local-editor",
|
20
|
+
"build:server": "tsc",
|
21
|
+
"dev": "tsx watch --ignore '../../node_modules/.vite-temp/**' --ignore 'node_modules/**' --ignore 'dist/**' ./scripts/dev.ts",
|
22
|
+
"clean": "rm -rf dist"
|
23
|
+
},
|
24
|
+
"keywords": [
|
25
|
+
"zuplo",
|
26
|
+
"api-gateway",
|
27
|
+
"local-development",
|
28
|
+
"editor"
|
29
|
+
],
|
30
|
+
"author": "Zuplo, Inc.",
|
31
|
+
"license": "MIT",
|
32
|
+
"dependencies": {
|
33
|
+
"@fastify/cors": "^11.1.0",
|
34
|
+
"@fastify/middie": "^9.0.3",
|
35
|
+
"@fastify/multipart": "^9.2.1",
|
36
|
+
"@fastify/static": "^8.2.0",
|
37
|
+
"@fastify/vite": "^8.2.0",
|
38
|
+
"chokidar": "^4.0.3",
|
39
|
+
"fastify": "^5.6.1",
|
40
|
+
"pino": "^10.0.0",
|
41
|
+
"pino-http": "^11.0.0",
|
42
|
+
"pino-http-print": "^3.1.0",
|
43
|
+
"pino-pretty": "^13.0.0"
|
44
|
+
},
|
45
|
+
"devDependencies": {
|
46
|
+
"@types/node": "^18.19.33",
|
47
|
+
"tsx": "^4.19.4",
|
48
|
+
"typescript": "5.8.3",
|
49
|
+
"vite": "6.3.5"
|
50
|
+
},
|
51
|
+
"engines": {
|
52
|
+
"node": ">=18"
|
53
|
+
}
|
54
|
+
}
|