/// /// declare module "app/srv/api/npm-size" { export const _: { url: string; api(mode: "site" | "page", id: string): Promise; }; } declare module "app/srv/api/auth/login" { export const _: { url: string; api(username: string, password: string): Promise<{ status: string; session: any; reason?: undefined; } | { status: string; reason: string; session?: undefined; }>; }; } declare module "app/srv/api/session" { export const _: { url: string; api(): Promise; }; } declare module "app/srv/global" { import { site, user } from "dbgen"; import { ExecaChildProcess } from "execa"; export const glb: { lastUpdate: Record; prasiSrv: { status: Record; running: Record; }; npm: { page: Record; site: Record; }; }; export type Session = { user: user & { site: site[]; }; }; } declare module "app/srv/api/npm" { export const _: { url: string; api(mode: "site" | "page", id: string): Promise; }; } declare module "app/srv/api/local-ip" { export const _: { url: string; api(): Promise; }; } declare module "app/web/src/utils/types/ws" { export type WS_MSG = WS_MSG_GET_COMP | WS_MSG_SET_COMP | WS_MSG_GET_PAGE | WS_MSG_SET_PAGE | WS_MSG_SV_LOCAL | WS_MSG_SVDIFF_REMOTE | WS_MSG_DIFF_LOCAL | WS_MSG_UNDO | WS_MSG_REDO | WS_MSG_NEW_COMP | WS_SITE_JS | { type: "ping"; } | { type: "pong"; }; export type WS_SITE_JS = { type: "site-js"; id_site: string; src: string; }; export type WS_MSG_GET_COMP = { type: "get_comp"; comp_id: string; }; export type WS_MSG_SET_COMP = { type: "set_comp"; comp_id: string; changes: string; }; export type WS_MSG_GET_PAGE = { type: "get_page"; page_id: string; }; export type WS_MSG_SET_PAGE = { type: "set_page"; changes: string; }; export type WS_MSG_NEW_COMP = { type: "new_comp"; id: string; doc: string; }; export type WS_MSG_UNDO = { type: "undo"; mode: "page" | "site" | "comp"; id: string; }; export type WS_MSG_REDO = { type: "redo"; mode: "page" | "site" | "comp"; id: string; }; export type WS_MSG_SV_LOCAL = { type: "sv_local"; mode: "page" | "site" | "comp"; id: string; sv_local: string; }; export type WS_MSG_SVDIFF_REMOTE = { type: "svd_remote"; mode: "page" | "site" | "comp"; id: string; sv_remote: string; diff_remote: string; }; export type WS_MSG_DIFF_LOCAL = { type: "diff_local"; mode: "page" | "site" | "comp"; id: string; diff_local: string; }; } declare module "app/web/src/utils/types/meta-fn" { import { TypedMap } from "yjs-types"; import { IItem, MItem } from "app/web/src/utils/types/item"; import * as Y from "yjs"; export type FNLayout = { dir: "row" | "col" | "row-reverse" | "col-reverse"; align: FNAlign; gap: number | "auto"; wrap: undefined | "flex-wrap" | "flex-nowrap"; }; export type FMLayout = TypedMap; export type FNAdv = { js?: Y.Text | string; jsBuilt?: string; css?: Y.Text | string; html?: Y.Text | string; }; export type FMAdv = TypedMap; export type FNComponent = { id: string; name: string; updated_at?: number; props: Record; }; export type FNCompDef = { idx: number; type: string; value: any; valueBuilt: any; gen?: string; genBuilt?: string; content?: IItem; visible?: string; meta?: FNCompMeta; }; type FNCompMeta = { type: "text" | "option" | "content-element"; options?: string; optionsBuilt?: string; option_mode?: "dropdown" | "button"; }; export type FMCompDef = TypedMap & { content: MItem; meta: TypedMap; }>; export type FMComponent = TypedMap & { props: TypedMap>; }>; export type FNAlign = "top-left" | "top-center" | "top-right" | "top" | "left" | "center" | "right" | "bottom" | "bottom-left" | "bottom-center" | "bottom-right" | "stretch"; export type FNPadding = { t?: number; b?: number; l?: number; r?: number; }; export type FMPadding = TypedMap; export type FNDimension = { w?: number | "fit" | "full"; h?: number | "fit" | "full"; wUnit?: "px" | "%"; hUnit?: "px" | "%"; proportion?: boolean; }; export type FMDimension = TypedMap; export type FNBackground = { color?: string; url?: string; size?: "cover" | "contain" | "full" | "auto" | "%" | "px"; repeat?: "repeat" | "repeat-x" | "repeat-y" | "space" | "round" | "no-repeat"; pos?: "top" | "left" | "center" | "bottom" | "right"; }; export type FMBackground = TypedMap; export type FNBorder = { style?: "solid" | "dash"; stroke?: FNBorderCorner; rounded?: FNRounded; color?: string; }; export type FNBorderCorner = { t?: number; b?: number; l?: number; r?: number; }; export type FNRounded = { tr?: number; tl?: number; bl?: number; br?: number; }; export type FMBorder = TypedMap; export type FNFont = { color?: string; size?: number; family?: string; height?: number | "auto"; align?: "center" | "left" | "right"; whitespace?: "whitespace-normal" | "whitespace-nowrap" | "whitespace-pre" | "whitespace-pre-line" | "whitespace-pre-wrap" | "whitespace-break-spaces"; wordBreak?: "break-normal" | "break-words" | "break-all" | "break-keep"; }; export type FMFont = TypedMap; export type FNLinkTag = { tag?: string; link?: string; class?: string; }; export type FMLinkTag = TypedMap; } declare module "app/web/src/utils/types/meta" { import { FMAdv, FMBackground, FMBorder, FMComponent, FMDimension, FMFont, FMLayout, FMLinkTag, FMPadding, FNBackground, FNBorder, FNDimension, FNFont, FNPadding } from "app/web/src/utils/types/meta-fn"; export type MetaItem = { id: string; originalId?: string; type: "text" | "section" | "item"; name: string; field?: string; html?: string; text?: string; hidden?: "only-editor" | "all" | false; }; export type BasicItem = { padding?: FNPadding; bg?: FNBackground; font?: FNFont; dim?: FNDimension; border?: FNBorder; }; export type MBasicItem = { padding?: FMPadding; bg?: FMBackground; font?: FMFont; component?: FMComponent; dim?: FMDimension; layout?: FMLayout; linktag?: FMLinkTag; adv?: FMAdv; border?: FMBorder; }; } declare module "app/web/src/utils/types/root" { import { TypedArray, TypedMap } from "yjs-types"; import { ISection } from "app/web/src/utils/types/section"; export type IRoot = { id: "root"; type: "root"; id_page: string; childs: ISection[]; }; export type MRoot = TypedMap<{ id: "root"; type: "root"; childs: TypedArray; }>; } declare module "app/web/src/utils/types/section" { import { TypedArray, TypedMap } from "yjs-types"; import { IItem, MItem } from "app/web/src/utils/types/item"; import { BasicItem, MBasicItem, MetaItem } from "app/web/src/utils/types/meta"; import { FNAdv, FNLayout, FNLinkTag } from "app/web/src/utils/types/meta-fn"; import { MRoot } from "app/web/src/utils/types/root"; export type ISection = { layout?: FNLayout; mobile?: ISection; linktag?: FNLinkTag; adv?: FNAdv; type: "section"; childs: IItem[]; } & MetaItem & BasicItem; export type MSection = TypedMap<{ mobile?: MSection; type: "section"; childs?: TypedArray; } & MBasicItem & MetaItem> & { parent: TypedArray & { parent: MRoot; }; }; } declare module "app/web/src/utils/types/text" { import { TypedArray, TypedMap } from "yjs-types"; import { BasicItem, MBasicItem, MetaItem } from "app/web/src/utils/types/meta"; import { FNAdv, FNLayout, FNLinkTag } from "app/web/src/utils/types/meta-fn"; import { MItem } from "app/web/src/utils/types/item"; export type IText = { mobile?: IText; type: "text"; layout?: FNLayout; linktag?: FNLinkTag; text: string; html: string; adv?: FNAdv; } & BasicItem & MetaItem; export type MText = TypedMap<{ type: "text"; mobile?: MText; childs?: TypedArray; } & MBasicItem & MetaItem> & { parent: TypedArray & { parent: MItem; }; }; } declare module "app/web/src/utils/types/item" { import { TypedArray, TypedMap } from "yjs-types"; import { BasicItem, MBasicItem, MetaItem } from "app/web/src/utils/types/meta"; import { FNAdv, FNComponent, FNLayout, FNLinkTag } from "app/web/src/utils/types/meta-fn"; import { MSection } from "app/web/src/utils/types/section"; import { IText, MText } from "app/web/src/utils/types/text"; export type IItem = { layout?: FNLayout; linktag?: FNLinkTag; mobile?: IItem; adv?: FNAdv; type: "item"; component?: FNComponent; childs: (IItem | IText)[]; } & MetaItem & BasicItem; export type MItem = TypedMap<{ type: "item"; mobile?: MItem; childs?: TypedArray; } & MBasicItem & MetaItem> & { parent: TypedArray & { parent: MSection | MItem; }; }; } declare module "app/web/src/utils/types/general" { import { page as dbpage } from "dbgen"; import { TypedDoc, TypedMap } from "yjs-types"; import { IItem, MItem } from "app/web/src/utils/types/item"; import { IRoot, MRoot } from "app/web/src/utils/types/root"; import { ISection, MSection } from "app/web/src/utils/types/section"; import { IText, MText } from "app/web/src/utils/types/text"; export type PageProps = { pathname: string; domain: string; params: any; }; export type PrasiAPI = { apiEntry: any; prismaTypes: { "prisma.d.ts": string; "runtime/library.d.ts": string; "runtime/index.d.ts": string; }; apiTypes: string; }; export const w: { isEditor: boolean; isMobile: boolean; isDesktop: boolean; prasiApi: Record; loadedFonts: string[]; prasiApiDbPull: boolean; params: any; editorGlbDefault: string; ts: number; serverurl: string; api: any; db: any; }; export type Page = { id: string; content_tree: IRoot; js: string | null; js_compiled: string | null; }; export type MPage = TypedDoc<{ map: TypedMap & { content_tree: MRoot; updated_at: string; }>; }>; export type IContent = ISection | IItem | IText; export type MContent = MSection | MItem | MText; export type RenderContentProp = Partial<{ active: IContent | null; hover: IContent | null; update: (updateID: string, name: string, newState: IRoot) => void; onHover: (e: React.MouseEvent, item: IContent) => Promise; onOut: (e: React.MouseEvent, item: IContent) => Promise; onClick: (e: React.MouseEvent, item: IContent) => Promise; isEditor: boolean; setContent: (item: IContent) => Promise; _onlyChildren?: true; }>; export type ERenderProp = { item: ITEM; }; } declare module "app/srv/ws/edit/tools/load-page" { import { Page } from "app/web/src/utils/types/general"; export const loadPage: (page_id: string) => Promise; } declare module "app/srv/ws/edit/action/get-page" { import { WSData } from "pkgs/core/server/create"; import { WS_MSG_GET_PAGE } from "app/web/src/utils/types/ws"; export const getPage: (ws: ServerWebSocket, msg: WS_MSG_GET_PAGE) => Promise; } declare module "app/srv/ws/edit/action/get-comp" { import { WSData } from "pkgs/core/server/create"; import { WS_MSG_GET_COMP } from "app/web/src/utils/types/ws"; export const getComp: (ws: ServerWebSocket, msg: WS_MSG_GET_COMP) => Promise; } declare module "app/srv/ws/edit/action/sv-local" { export const svLocal: (ws: Websocket, msg: WS_MSG_SV_LOCAL) => Promise; } declare module "app/srv/ws/edit/action/diff-local" { export const diffLocal: (ws: Websocket, msg: any) => Promise; } declare module "app/srv/ws/edit/action/svdiff-remote" { export const svdiffRemote: (ws: Websocket, msg: WS_MSG_SVDIFF_REMOTE) => Promise; } declare module "app/srv/ws/edit/action/undo-redo" { export const undo: (ws: Websocket, msg: WS_MSG_UNDO) => void; export const redo: (ws: Websocket, msg: WS_MSG_REDO) => void; } declare module "app/srv/ws/handler" { import { WebSocketHandler } from "bun"; import { WSData } from "pkgs/core/server/create"; export const wsHandler: Record>; } declare module "pkgs/core/utils/dir" { export const dir: { path: (path: string) => string; }; } declare module "app/db/db" { } declare module "pkgs/core/utils/global" { import { Logger } from "pino"; import { RadixRouter } from "radix3"; type SingleRoute = { url: string; args: string[]; fn: (...arg: any[]) => Promise; path: string; }; export const g: { status: "init" | "ready"; datadir: string; dburl: string; mode: "dev" | "prod"; log: Logger; api: Record; domains: null | Record; router: RadixRouter; port: number; frm: { js: string; etag: string; }; parcel: Subprocess; }; } declare module "pkgs/core/server/api-ctx" { export const apiContext: (ctx: any) => { mode: any; req: Request & { params: any; query_parameters: any; }; res: Response & { send: (body?: string | object) => void; setHeader: (key: string, value: string) => void; sendStatus: (code: number) => void; }; }; export const createResponse: (existingRes: any, body: any) => Response; } declare module "pkgs/core/server/serve-api" { export const serveAPI: (url: URL, req: Request) => Promise; } declare module "pkgs/core/server/create" { export type WSData = { url: URL; }; export const createServer: () => Promise; } declare module "app/srv/ws/edit/tools/load-site" { export type SiteConfig = { api_url?: string; prasi?: { port: number; dburl: string; }; }; export type Site = Exclude>, null>; export const loadSite: (idOrDomain: string) => Promise & { config?: SiteConfig; page: { id: string; url: string; updated_at: Date | null; name: string; }[]; }>; } declare module "app/srv/ws/edit/edit-global" { import { ServerWebSocket } from "bun"; import { component } from "dbgen"; import { UndoManager } from "yjs"; import { TypedArray, TypedDoc, TypedMap } from "yjs-types"; import type { WSData } from "pkgs/core/server/create"; import { IItem } from "app/web/src/utils/types/item"; import { IRoot } from "app/web/src/utils/types/root"; import { Site } from "app/srv/ws/edit/tools/load-site"; import { MPage } from "app/web/src/utils/types/general"; import type { RadixRouter } from "radix3"; type ArrayElement = ArrayType extends readonly (infer ElementType)[] ? ElementType : never; export type SingleComp = { id: string; doc: TypedDoc<{ map: TypedMap; }>; }>; undoManager: UndoManager; saveTimeout?: ReturnType; ws: Set>; }; export const eg: { cache: Record>; router: Record>; edit: { site: Record>; }>; }>; undoManager: UndoManager; saveTimeout?: ReturnType; ws: Set>; }>; comp: Record; page: Record; ws: Set>; }>; ws: WeakMap, { clientID: string; }>; }; }; } declare module "app/srv/api/npm-bundle" { export type NPMImportAs = { main: { mode: "default" | "*"; name: string; }; names: string[]; custom?: string; }; export const _: { url: string; api(mode: "site" | "page", id: string): Promise; }; } declare module "app/srv/api/site-dts" { export const _: { url: string; api(site_id: string): Promise; }; } declare module "app/srv/exports" { export const npm_size: { name: string; url: string; path: string; args: string[]; handler: Promise; }; export const login: { name: string; url: string; path: string; args: string[]; handler: Promise; }; export const session: { name: string; url: string; path: string; args: any[]; handler: Promise; }; export const npm: { name: string; url: string; path: string; args: string[]; handler: Promise; }; export const local_ip: { name: string; url: string; path: string; args: any[]; handler: Promise; }; export const npm_bundle: { name: string; url: string; path: string; args: string[]; handler: Promise; }; export const site_dts: { name: string; url: string; path: string; args: string[]; handler: Promise; }; export const _upload: { name: string; url: string; path: string; args: string[]; handler: Promise; }; export const _prasi: { name: string; url: string; path: string; args: any[]; handler: Promise; }; export const _file: { name: string; url: string; path: string; args: any[]; handler: Promise; }; export const _api_frm: { name: string; url: string; path: string; args: any[]; handler: Promise; }; export const _dbs: { name: string; url: string; path: string; args: string[]; handler: Promise; }; }