Merge branch 'dev'
This commit is contained in:
commit
5023a3525c
114
vite.config.ts
114
vite.config.ts
|
|
@ -2,6 +2,26 @@ import { resolve } from "node:path";
|
||||||
import { defineConfig } from "vite";
|
import { defineConfig } from "vite";
|
||||||
import wasm from "vite-plugin-wasm";
|
import wasm from "vite-plugin-wasm";
|
||||||
|
|
||||||
|
// WASM-aware build wrapper — ensures every sub-build can handle Automerge WASM imports
|
||||||
|
async function wasmBuild(config: any) {
|
||||||
|
const { build } = await import("vite");
|
||||||
|
return build({
|
||||||
|
...config,
|
||||||
|
plugins: [...(config.plugins || []), wasm()],
|
||||||
|
resolve: {
|
||||||
|
...config.resolve,
|
||||||
|
alias: {
|
||||||
|
...(config.resolve?.alias || {}),
|
||||||
|
'@automerge/automerge': resolve(__dirname, 'node_modules/@automerge/automerge'),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
build: {
|
||||||
|
target: "esnext",
|
||||||
|
...config.build,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
root: "website",
|
root: "website",
|
||||||
plugins: [
|
plugins: [
|
||||||
|
|
@ -13,8 +33,8 @@ export default defineConfig({
|
||||||
closeBundle: {
|
closeBundle: {
|
||||||
sequential: true,
|
sequential: true,
|
||||||
async handler() {
|
async handler() {
|
||||||
const { build } = await import("vite");
|
// build() calls use wasmBuild() wrapper
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "website"),
|
root: resolve(__dirname, "website"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -34,7 +54,7 @@ export default defineConfig({
|
||||||
});
|
});
|
||||||
|
|
||||||
// Build shell.ts as a standalone JS bundle (needs wasm() for Automerge via runtime)
|
// Build shell.ts as a standalone JS bundle (needs wasm() for Automerge via runtime)
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "website"),
|
root: resolve(__dirname, "website"),
|
||||||
plugins: [wasm()],
|
plugins: [wasm()],
|
||||||
|
|
@ -63,7 +83,7 @@ export default defineConfig({
|
||||||
});
|
});
|
||||||
|
|
||||||
// Build books module components
|
// Build books module components
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rbooks/components"),
|
root: resolve(__dirname, "modules/rbooks/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -82,7 +102,7 @@ export default defineConfig({
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rbooks/components"),
|
root: resolve(__dirname, "modules/rbooks/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -110,7 +130,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build pubs module component
|
// Build pubs module component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rpubs/components"),
|
root: resolve(__dirname, "modules/rpubs/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -137,7 +157,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build cart module component
|
// Build cart module component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rcart/components"),
|
root: resolve(__dirname, "modules/rcart/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -157,7 +177,7 @@ export default defineConfig({
|
||||||
});
|
});
|
||||||
|
|
||||||
// Build payment page component
|
// Build payment page component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rcart/components"),
|
root: resolve(__dirname, "modules/rcart/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -177,7 +197,7 @@ export default defineConfig({
|
||||||
});
|
});
|
||||||
|
|
||||||
// Build group buy page component
|
// Build group buy page component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rcart/components"),
|
root: resolve(__dirname, "modules/rcart/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -197,7 +217,7 @@ export default defineConfig({
|
||||||
});
|
});
|
||||||
|
|
||||||
// Build payment request (QR generator) component
|
// Build payment request (QR generator) component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rcart/components"),
|
root: resolve(__dirname, "modules/rcart/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -217,7 +237,7 @@ export default defineConfig({
|
||||||
});
|
});
|
||||||
|
|
||||||
// Build payments dashboard component
|
// Build payments dashboard component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rcart/components"),
|
root: resolve(__dirname, "modules/rcart/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -244,7 +264,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build swag module component
|
// Build swag module component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rswag/components"),
|
root: resolve(__dirname, "modules/rswag/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -271,7 +291,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build choices module component
|
// Build choices module component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rchoices/components"),
|
root: resolve(__dirname, "modules/rchoices/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -305,7 +325,7 @@ export default defineConfig({
|
||||||
"../lib/map-flow": resolve(__dirname, "modules/rflows/lib/map-flow.ts"),
|
"../lib/map-flow": resolve(__dirname, "modules/rflows/lib/map-flow.ts"),
|
||||||
};
|
};
|
||||||
|
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rflows/components"),
|
root: resolve(__dirname, "modules/rflows/components"),
|
||||||
resolve: { alias: flowsAlias },
|
resolve: { alias: flowsAlias },
|
||||||
|
|
@ -321,7 +341,7 @@ export default defineConfig({
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rflows/components"),
|
root: resolve(__dirname, "modules/rflows/components"),
|
||||||
plugins: [wasm()],
|
plugins: [wasm()],
|
||||||
|
|
@ -352,7 +372,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build files module component
|
// Build files module component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rfiles/components"),
|
root: resolve(__dirname, "modules/rfiles/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -379,7 +399,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build forum module component
|
// Build forum module component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rforum/components"),
|
root: resolve(__dirname, "modules/rforum/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -412,7 +432,7 @@ export default defineConfig({
|
||||||
"../lib/wallet-demo-data": resolve(__dirname, "modules/rwallet/lib/wallet-demo-data.ts"),
|
"../lib/wallet-demo-data": resolve(__dirname, "modules/rwallet/lib/wallet-demo-data.ts"),
|
||||||
};
|
};
|
||||||
|
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rwallet/components"),
|
root: resolve(__dirname, "modules/rwallet/components"),
|
||||||
resolve: { alias: walletAlias },
|
resolve: { alias: walletAlias },
|
||||||
|
|
@ -440,7 +460,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build vote module component
|
// Build vote module component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rvote/components"),
|
root: resolve(__dirname, "modules/rvote/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -460,7 +480,7 @@ export default defineConfig({
|
||||||
});
|
});
|
||||||
|
|
||||||
// Build vote demo page script
|
// Build vote demo page script
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rvote/components"),
|
root: resolve(__dirname, "modules/rvote/components"),
|
||||||
resolve: {
|
resolve: {
|
||||||
|
|
@ -492,7 +512,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build notes module component (with Automerge WASM support)
|
// Build notes module component (with Automerge WASM support)
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rnotes/components"),
|
root: resolve(__dirname, "modules/rnotes/components"),
|
||||||
plugins: [wasm()],
|
plugins: [wasm()],
|
||||||
|
|
@ -526,7 +546,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build maps module component
|
// Build maps module component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rmaps/components"),
|
root: resolve(__dirname, "modules/rmaps/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -553,7 +573,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build tasks module component
|
// Build tasks module component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rtasks/components"),
|
root: resolve(__dirname, "modules/rtasks/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -580,7 +600,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build trips module component
|
// Build trips module component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rtrips/components"),
|
root: resolve(__dirname, "modules/rtrips/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -607,7 +627,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build trips demo page script
|
// Build trips demo page script
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rtrips/components"),
|
root: resolve(__dirname, "modules/rtrips/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -625,7 +645,7 @@ export default defineConfig({
|
||||||
});
|
});
|
||||||
|
|
||||||
// Build cal module component
|
// Build cal module component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rcal/components"),
|
root: resolve(__dirname, "modules/rcal/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -652,7 +672,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build network module component
|
// Build network module component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rnetwork/components"),
|
root: resolve(__dirname, "modules/rnetwork/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -673,7 +693,7 @@ export default defineConfig({
|
||||||
});
|
});
|
||||||
|
|
||||||
// Build network CRM view component
|
// Build network CRM view component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rnetwork/components"),
|
root: resolve(__dirname, "modules/rnetwork/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -693,7 +713,7 @@ export default defineConfig({
|
||||||
});
|
});
|
||||||
|
|
||||||
// Build delegation manager component
|
// Build delegation manager component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rnetwork/components"),
|
root: resolve(__dirname, "modules/rnetwork/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -713,7 +733,7 @@ export default defineConfig({
|
||||||
});
|
});
|
||||||
|
|
||||||
// Build trust sankey component
|
// Build trust sankey component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rnetwork/components"),
|
root: resolve(__dirname, "modules/rnetwork/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -740,7 +760,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build socials thread builder component
|
// Build socials thread builder component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rsocials/components"),
|
root: resolve(__dirname, "modules/rsocials/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -760,7 +780,7 @@ export default defineConfig({
|
||||||
});
|
});
|
||||||
|
|
||||||
// Build socials thread gallery component
|
// Build socials thread gallery component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rsocials/components"),
|
root: resolve(__dirname, "modules/rsocials/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -780,7 +800,7 @@ export default defineConfig({
|
||||||
});
|
});
|
||||||
|
|
||||||
// Build socials campaign manager component
|
// Build socials campaign manager component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rsocials/components"),
|
root: resolve(__dirname, "modules/rsocials/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -807,7 +827,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build campaign planner component (with Automerge WASM support via local-first-client)
|
// Build campaign planner component (with Automerge WASM support via local-first-client)
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rsocials/components"),
|
root: resolve(__dirname, "modules/rsocials/components"),
|
||||||
plugins: [wasm()],
|
plugins: [wasm()],
|
||||||
|
|
@ -840,7 +860,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build campaign workflow builder component
|
// Build campaign workflow builder component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rsocials/components"),
|
root: resolve(__dirname, "modules/rsocials/components"),
|
||||||
resolve: {
|
resolve: {
|
||||||
|
|
@ -871,7 +891,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build newsletter manager component
|
// Build newsletter manager component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rsocials/components"),
|
root: resolve(__dirname, "modules/rsocials/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -897,7 +917,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build tube module component
|
// Build tube module component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rtube/components"),
|
root: resolve(__dirname, "modules/rtube/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -924,7 +944,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build inbox module component
|
// Build inbox module component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rinbox/components"),
|
root: resolve(__dirname, "modules/rinbox/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -951,7 +971,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build data module component
|
// Build data module component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rdata/components"),
|
root: resolve(__dirname, "modules/rdata/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -978,7 +998,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build route planner component (part of trips module)
|
// Build route planner component (part of trips module)
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rtrips/components"),
|
root: resolve(__dirname, "modules/rtrips/components"),
|
||||||
resolve: {
|
resolve: {
|
||||||
|
|
@ -1011,7 +1031,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build splat module component
|
// Build splat module component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rsplat/components"),
|
root: resolve(__dirname, "modules/rsplat/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -1039,7 +1059,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build photos module component
|
// Build photos module component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rphotos/components"),
|
root: resolve(__dirname, "modules/rphotos/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -1066,7 +1086,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build schedule module component
|
// Build schedule module component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rschedule/components"),
|
root: resolve(__dirname, "modules/rschedule/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -1093,7 +1113,7 @@ export default defineConfig({
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build schedule reminders widget component
|
// Build schedule reminders widget component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rschedule/components"),
|
root: resolve(__dirname, "modules/rschedule/components"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -1113,7 +1133,7 @@ export default defineConfig({
|
||||||
});
|
});
|
||||||
|
|
||||||
// Build schedule automation canvas component
|
// Build schedule automation canvas component
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "modules/rschedule/components"),
|
root: resolve(__dirname, "modules/rschedule/components"),
|
||||||
resolve: {
|
resolve: {
|
||||||
|
|
@ -1146,7 +1166,7 @@ export default defineConfig({
|
||||||
// ── Demo infrastructure ──
|
// ── Demo infrastructure ──
|
||||||
|
|
||||||
// Build demo-sync-vanilla library
|
// Build demo-sync-vanilla library
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, "lib"),
|
root: resolve(__dirname, "lib"),
|
||||||
build: {
|
build: {
|
||||||
|
|
@ -1173,7 +1193,7 @@ export default defineConfig({
|
||||||
try {
|
try {
|
||||||
const { statSync } = await import("node:fs");
|
const { statSync } = await import("node:fs");
|
||||||
statSync(demoEntry);
|
statSync(demoEntry);
|
||||||
await build({
|
await wasmBuild({
|
||||||
configFile: false,
|
configFile: false,
|
||||||
root: resolve(__dirname, `modules/${dir}/components`),
|
root: resolve(__dirname, `modules/${dir}/components`),
|
||||||
resolve: {
|
resolve: {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue