diff --git a/app/srv/ws/sync/editor/code/prep-code.ts b/app/srv/ws/sync/editor/code/prep-code.ts index 1aa7245b..61daa991 100644 --- a/app/srv/ws/sync/editor/code/prep-code.ts +++ b/app/srv/ws/sync/editor/code/prep-code.ts @@ -45,7 +45,7 @@ export const prepCodeSnapshot = async (id_site: string, mode: CodeMode) => { snapshot.update({ id: id_site, type: "code", - build: snap.build, + build: snap.build, }); } diff --git a/app/web/src/nova/ed/panel/popup/page/page-form.tsx b/app/web/src/nova/ed/panel/popup/page/page-form.tsx index ce199f19..9faa5aff 100644 --- a/app/web/src/nova/ed/panel/popup/page/page-form.tsx +++ b/app/web/src/nova/ed/panel/popup/page/page-form.tsx @@ -125,7 +125,10 @@ export const EdFormPage: FC<{ }} onChange={(e) => { if (local.fillUrl) { - form.url = `/${e.replace(/\W/g, "/").replace(/\/\/+/g, "/")}`; + form.url = `/${e + .replace(/\W/g, "/") + .replace(/\/\/+/g, "/") + .replace(/\s/g, "_")}`; } form.render(); }} diff --git a/app/web/src/nova/ed/panel/popup/page/page-popup.tsx b/app/web/src/nova/ed/panel/popup/page/page-popup.tsx index 01e28c87..b8df2ae3 100644 --- a/app/web/src/nova/ed/panel/popup/page/page-popup.tsx +++ b/app/web/src/nova/ed/panel/popup/page/page-popup.tsx @@ -34,10 +34,13 @@ export const EdPopPage = () => { const parents: string[] = []; let cur = pagePicker.tree.find((e) => e.id === p.page.cur.id); + const processed_id = new Set(); if (pagePicker.rename_id) { let cur = pagePicker.tree.find((e) => e.id === pagePicker.rename_id); while (cur) { if (typeof cur.id === "string") { + if (processed_id.has(cur.id)) break; + else processed_id.add(cur.id); if (parents.includes(cur.id)) { continue; } @@ -49,6 +52,8 @@ export const EdPopPage = () => { } else { while (cur) { if (typeof cur.id === "string") { + if (processed_id.has(cur.id)) break; + else processed_id.add(cur.id); if (parents.includes(cur.id)) { continue; } diff --git a/app/web/src/nova/ed/panel/popup/script/monaco.tsx b/app/web/src/nova/ed/panel/popup/script/monaco.tsx index c485d922..bcd3e1cb 100644 --- a/app/web/src/nova/ed/panel/popup/script/monaco.tsx +++ b/app/web/src/nova/ed/panel/popup/script/monaco.tsx @@ -8,11 +8,11 @@ import { ParsedScope } from "../../../../../../../srv/ws/sync/editor/parser/pars import { jscript } from "../../../../../utils/script/jscript"; import { jsMount } from "../../../../../utils/script/mount"; import { monacoTypings } from "../../../../../utils/script/typings"; +import { Loading } from "../../../../../utils/ui/loading"; import { getActiveMeta } from "../../../logic/active/get-meta"; import { EDGlobal, IMeta, active } from "../../../logic/ed-global"; import { edMonacoDefaultVal } from "./default-val"; import { declareScope } from "./scope/scope"; -import { Loading } from "../../../../../utils/ui/loading"; // @ts-ignore import { constrainedEditor } from "constrained-editor-plugin/dist/esm/constrainedEditor"; import { addScope } from "./scope/add-scope"; @@ -95,7 +95,6 @@ export const EdScriptMonaco: FC<{}> = () => { } } } - if (p.ui.popup.script.mode === "js") { const w = window as any; const types: any = {}; diff --git a/app/web/src/render/editor/panel/script/monaco/typings.ts b/app/web/src/render/editor/panel/script/monaco/typings.ts index 4230bf91..d167f15a 100644 --- a/app/web/src/render/editor/panel/script/monaco/typings.ts +++ b/app/web/src/render/editor/panel/script/monaco/typings.ts @@ -16,43 +16,48 @@ export const monacoTypings = async ( if (!map.has(prop.values)) { map.set(prop.values, true); } else { + console.log("map has prop values"); return; } if (w.prasiApi[p.site.api_url] && w.prasiApi[p.site.api_url].prismaTypes) { const prisma = w.prasiApi[p.site.api_url].prismaTypes; - register( - monaco, - `\ + if (prisma) { + register( + monaco, + `\ declare module "ts:runtime/index" { ${prisma["runtime/index.d.ts"]} }`, - `ts:runtime/index.d.ts` - ); + `ts:runtime/index.d.ts` + ); - register( - monaco, - `\ + register( + monaco, + `\ declare module "ts:runtime/library" { ${prisma["runtime/library.d.ts"]} }`, - `ts:runtime/library.d.ts` - ); + `ts:runtime/library.d.ts` + ); - register( - monaco, - `\ + register( + monaco, + `\ declare module "ts:prisma" { ${prisma["prisma.d.ts"].replace( `import * as runtime from './runtime/library';`, `import * as runtime from 'ts:runtime/library';` )} }`, - `ts:prisma.d.ts` - ); - - register(monaco, w.prasiApi[p.site.api_url].apiTypes, "ts:api.d.ts"); + `ts:prisma.d.ts` + ); + } + const apiTypes = w.prasiApi[p.site.api_url].apiTypes; + if (apiTypes) { + register(monaco, apiTypes, "ts:api.d.ts"); + } } monaco.languages.typescript.typescriptDefaults.setExtraLibs([ diff --git a/pkgs/core/api/_proxy.ts b/pkgs/core/api/_proxy.ts index 95102654..584c2ff8 100644 --- a/pkgs/core/api/_proxy.ts +++ b/pkgs/core/api/_proxy.ts @@ -9,6 +9,8 @@ export const _ = { headers: any; body: any; }) { + if (!arg.url) return new Response(null, { status: 403 }); + const res = await fetch( arg.url, arg.body