Reduce web/ to a single generic editor app plus a minimal example backend, moving all project-specific/app code out to the closed root repo: - apps/frontend -> standalone (@pcbjam/standalone): the GPL editor. Strips the project-management UI (ProjectsPage/ProjectDetailPage/UploadDropzone and the write half of lib/api.ts). WasmTool now takes fetchBytes + assetBaseUrl as injected props (decoupled from the API client) so it can be driven by either a backend or a local folder. New HomePage (local-folder loader + backend project list) and read-only ProjectView. BroadcastChannel collab unchanged. - backend (@pcbjam/backend-example): thin Fastify+ts-rest reference impl of the @pcbjam/shared contract — serves a single project off the local filesystem (PROJECT_DIR), no DB/auth/uploads. - packages/contract -> web/pcbjam-shared (git submodule, MIT @pcbjam/shared). - Remove apps/server, packages/storage, packages/contract, docker-compose (server + storage move to the closed root repo; preserved via subtree branches). Rewrite pnpm-workspace/turbo/.env for the frontend-only layout. - Add tests/fixtures/demo so the editor + example backend run out of the box. Standalone typechecks + builds; backend serves the contract end-to-end. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
23 lines
775 B
TypeScript
23 lines
775 B
TypeScript
// Lightweight collab debug logging to the BROWSER DEVTOOLS console (not the in-app
|
|
// log panel). On by default while we bring the bridge up; silence with
|
|
// `window.__COLLAB_DEBUG = false` (or `localStorage.collabDebug = "0"`).
|
|
function on(): boolean {
|
|
const w = window as unknown as { __COLLAB_DEBUG?: boolean };
|
|
if (typeof w.__COLLAB_DEBUG === "boolean") return w.__COLLAB_DEBUG;
|
|
try {
|
|
if (localStorage.getItem("collabDebug") === "0") return false;
|
|
} catch {
|
|
/* ignore */
|
|
}
|
|
return true;
|
|
}
|
|
|
|
const STYLE = "color:#0bd;font-weight:bold";
|
|
|
|
export function clog(...args: unknown[]): void {
|
|
if (on()) console.log("%c[collab]", STYLE, ...args);
|
|
}
|
|
|
|
export function cwarn(...args: unknown[]): void {
|
|
if (on()) console.warn("%c[collab]", STYLE, ...args);
|
|
}
|