vorma 0.83.0 → 0.85.0-pre.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.
@@ -14,19 +14,23 @@ export type NavigateProps = {
14
14
  redirectCount?: number;
15
15
  scrollToTop?: boolean;
16
16
  };
17
- type NavigationResult = ({
18
- response: Response;
17
+ export type NavigationOutcome = {
18
+ type: "aborted";
19
+ } | {
20
+ type: "redirect";
21
+ redirectData: RedirectData;
19
22
  props: NavigateProps;
20
- } & ({
23
+ } | {
24
+ type: "success";
25
+ response: Response;
21
26
  json: GetRouteDataOutput;
22
27
  cssBundlePromises: Array<Promise<any>>;
23
28
  waitFnPromise: Promise<ClientLoadersResult> | undefined;
24
- } | {
25
- redirectData: RedirectData;
26
- })) | undefined;
29
+ props: NavigateProps;
30
+ };
27
31
  export type NavigationControl = {
28
32
  abortController: AbortController | undefined;
29
- promise: Promise<NavigationResult>;
33
+ promise: Promise<NavigationOutcome>;
30
34
  };
31
35
  type NavigationPhase = "fetching" | "waiting" | "rendering" | "complete";
32
36
  type NavigationIntent = "none" | "navigate" | "revalidate";
@@ -43,7 +47,9 @@ interface NavigationEntry {
43
47
  state?: unknown;
44
48
  }
45
49
  declare class NavigationStateManager {
46
- private _navigations;
50
+ private _activeNavigation;
51
+ private _prefetchCache;
52
+ private _pendingRevalidation;
47
53
  private _submissions;
48
54
  private lastDispatchedStatus;
49
55
  private dispatchStatusEventDebounced;
@@ -56,12 +62,16 @@ declare class NavigationStateManager {
56
62
  private beginUserNavigation;
57
63
  private beginPrefetch;
58
64
  private beginRevalidation;
59
- private createNavigation;
60
- private upgradeNavigation;
65
+ private createActiveNavigation;
66
+ private createPrefetch;
67
+ private createRevalidation;
61
68
  private transitionPhase;
62
69
  private canSkipServerFetch;
63
70
  private fetchRouteData;
64
- private processNavigationResult;
71
+ private buildClientOnlyOutcome;
72
+ processSuccessfulNavigation(outcome: Extract<NavigationOutcome, {
73
+ type: "success";
74
+ }>, entry: NavigationEntry): Promise<void>;
65
75
  submit<T = any>(url: string | URL, requestInit?: RequestInit, options?: SubmitOptions): Promise<{
66
76
  success: true;
67
77
  data: T;
@@ -69,14 +79,13 @@ declare class NavigationStateManager {
69
79
  success: false;
70
80
  error: string;
71
81
  }>;
72
- private setNavigation;
82
+ private findNavigationEntry;
73
83
  private deleteNavigation;
74
84
  removeNavigation(key: string): void;
75
85
  getNavigation(key: string): NavigationEntry | undefined;
76
86
  hasNavigation(key: string): boolean;
77
87
  getNavigationsSize(): number;
78
88
  getNavigations(): Map<string, NavigationEntry>;
79
- private abortAllNavigationsExcept;
80
89
  getStatus(): StatusEventDetail;
81
90
  clearAll(): void;
82
91
  private scheduleStatusUpdate;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../internal/framework/_typescript/client/src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../internal/framework/_typescript/client/src/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../../../../../internal/framework/_typescript/client/src/links.ts"],"names":[],"mappings":"AAIA,KAAK,mBAAmB,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE/E,KAAK,oBAAoB,CAAC,CAAC,SAAS,KAAK,IAAI;IAC5C,WAAW,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;CACrC,CAAC;AAEF,KAAK,wBAAwB,CAAC,CAAC,SAAS,KAAK,IAAI,oBAAoB,CAAC,CAAC,CAAC,GAAG;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,KAAK,EACpD,KAAK,EAAE,wBAAwB,CAAC,CAAC,CAAC;eAqChB,CAAC,KAAG,IAAI;gBAKT,IAAI;iBAiBK,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC;;;;;;;cAoD3C;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,KAAK,EAClD,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB,IAEa,GAAG,CAAC,mBAyDlB"}
1
+ {"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../../../../../internal/framework/_typescript/client/src/links.ts"],"names":[],"mappings":"AAKA,KAAK,mBAAmB,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE/E,KAAK,oBAAoB,CAAC,CAAC,SAAS,KAAK,IAAI;IAC5C,WAAW,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;CACrC,CAAC;AAEF,KAAK,wBAAwB,CAAC,CAAC,SAAS,KAAK,IAAI,oBAAoB,CAAC,CAAC,CAAC,GAAG;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,KAAK,EACpD,KAAK,EAAE,wBAAwB,CAAC,CAAC,CAAC;eAqChB,CAAC,KAAG,IAAI;gBAKT,IAAI;iBAiBK,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC;;;;;;;cAoD3C;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,KAAK,EAClD,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB,IAEa,GAAG,CAAC,mBA0FlB"}
@@ -3,6 +3,7 @@ type VormaVitePluginConfig = {
3
3
  publicPathPrefix: string;
4
4
  staticPublicAssetMap: Record<string, string>;
5
5
  buildtimePublicURLFuncName: string;
6
+ filemapJSONPath: string;
6
7
  ignoredPatterns: ReadonlyArray<string>;
7
8
  dedupeList: ReadonlyArray<string>;
8
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../../../../../internal/framework/_typescript/vite/vite.ts"],"names":[],"mappings":"AAAA,KAAK,qBAAqB,GAAG;IAC5B,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,0BAA0B,EAAE,MAAM,CAAC;IACnC,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,GAAG,CAmF1E"}
1
+ {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../../../../../internal/framework/_typescript/vite/vite.ts"],"names":[],"mappings":"AAGA,KAAK,qBAAqB,GAAG;IAC5B,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,0BAA0B,EAAE,MAAM,CAAC;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,GAAG,CA+K1E"}
@@ -1,13 +1,43 @@
1
1
  // internal/framework/_typescript/vite/vite.ts
2
+ import { readFileSync, statSync } from "node:fs";
3
+ import { resolve } from "node:path";
2
4
  function vormaVitePlugin(config) {
5
+ let cachedMap = null;
6
+ let cachedMtime = 0;
7
+ let isDev = false;
8
+ let resolvedFilemapPath = null;
9
+ function getFilemap() {
10
+ if (!isDev) {
11
+ return config.staticPublicAssetMap;
12
+ }
13
+ if (!resolvedFilemapPath) {
14
+ resolvedFilemapPath = resolve(
15
+ process.cwd(),
16
+ config.filemapJSONPath
17
+ );
18
+ }
19
+ try {
20
+ const stat = statSync(resolvedFilemapPath);
21
+ const mtime = stat.mtimeMs;
22
+ if (cachedMap && mtime === cachedMtime) {
23
+ return cachedMap;
24
+ }
25
+ const content = readFileSync(resolvedFilemapPath, "utf-8");
26
+ cachedMap = JSON.parse(content);
27
+ cachedMtime = mtime;
28
+ return cachedMap;
29
+ } catch {
30
+ return config.staticPublicAssetMap;
31
+ }
32
+ }
3
33
  return {
4
34
  name: "vorma-vite-plugin",
5
35
  config(c, { command }) {
36
+ isDev = command === "serve";
6
37
  const mp = c.build?.modulePreload;
7
38
  const roi = c.build?.rollupOptions?.input;
8
39
  const ign = c.server?.watch?.ignored;
9
40
  const dedupe = c.resolve?.dedupe;
10
- const isDev = command === "serve";
11
41
  return {
12
42
  base: isDev ? "/" : config.publicPathPrefix,
13
43
  build: {
@@ -54,6 +84,33 @@ function vormaVitePlugin(config) {
54
84
  }
55
85
  };
56
86
  },
87
+ /**
88
+ * Configures the dev server with an endpoint for filemap cache invalidation.
89
+ * Wave calls this endpoint after updating public static files, which:
90
+ * 1. Clears the cached filemap so the next transform reads fresh data
91
+ * 2. Invalidates all modules in Vite's module graph
92
+ * 3. Triggers a browser reload via Vite's HMR websocket
93
+ *
94
+ * This is much faster than cycling Vite (stopping and restarting the process).
95
+ */
96
+ configureServer(server) {
97
+ server.middlewares.use((req, res, next) => {
98
+ if (req.url !== "/__vorma_invalidate_filemap") {
99
+ return next();
100
+ }
101
+ console.log(
102
+ "[vorma-vite-plugin] Filemap invalidation triggered"
103
+ );
104
+ cachedMap = null;
105
+ cachedMtime = 0;
106
+ for (const mod of server.moduleGraph.idToModuleMap.values()) {
107
+ server.moduleGraph.invalidateModule(mod);
108
+ }
109
+ server.ws.send({ type: "full-reload" });
110
+ res.statusCode = 200;
111
+ res.end("ok");
112
+ });
113
+ },
57
114
  transform(code, id) {
58
115
  const isNodeModules = /node_modules/.test(id);
59
116
  if (isNodeModules) return null;
@@ -63,10 +120,11 @@ function vormaVitePlugin(config) {
63
120
  );
64
121
  const needsReplacement = regex.test(code);
65
122
  if (!needsReplacement) return null;
123
+ const filemap = getFilemap();
66
124
  const replacedCode = code.replace(
67
125
  regex,
68
126
  (_, __, assetPath) => {
69
- const hashed = config.staticPublicAssetMap[assetPath];
127
+ const hashed = filemap[assetPath];
70
128
  if (!hashed) return `"${assetPath}"`;
71
129
  return `"${config.publicPathPrefix}${hashed}"`;
72
130
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../internal/framework/_typescript/vite/vite.ts"],
4
- "sourcesContent": ["type VormaVitePluginConfig = {\n\trollupInput: ReadonlyArray<string>;\n\tpublicPathPrefix: string;\n\tstaticPublicAssetMap: Record<string, string>;\n\tbuildtimePublicURLFuncName: string;\n\tignoredPatterns: ReadonlyArray<string>;\n\tdedupeList: ReadonlyArray<string>;\n};\n\nexport default function vormaVitePlugin(config: VormaVitePluginConfig): any {\n\treturn {\n\t\tname: \"vorma-vite-plugin\",\n\t\tconfig(c: any, { command }: any) {\n\t\t\tconst mp = c.build?.modulePreload;\n\t\t\tconst roi = c.build?.rollupOptions?.input;\n\t\t\tconst ign = c.server?.watch?.ignored;\n\t\t\tconst dedupe = c.resolve?.dedupe;\n\n\t\t\tconst isDev = command === \"serve\";\n\n\t\t\treturn {\n\t\t\t\tbase: isDev ? \"/\" : config.publicPathPrefix,\n\t\t\t\tbuild: {\n\t\t\t\t\ttarget: \"es2022\",\n\t\t\t\t\temptyOutDir: false,\n\t\t\t\t\tmodulePreload: {\n\t\t\t\t\t\tpolyfill: false,\n\t\t\t\t\t\t...(typeof mp === \"object\" ? mp : {}),\n\t\t\t\t\t},\n\t\t\t\t\trollupOptions: {\n\t\t\t\t\t\t...c.build?.rollupOptions,\n\t\t\t\t\t\tinput: [\n\t\t\t\t\t\t\t...config.rollupInput,\n\t\t\t\t\t\t\t...(Array.isArray(roi) ? roi : []),\n\t\t\t\t\t\t],\n\t\t\t\t\t\tpreserveEntrySignatures: \"exports-only\",\n\t\t\t\t\t\toutput: {\n\t\t\t\t\t\t\tassetFileNames:\n\t\t\t\t\t\t\t\t\"vorma_out_vite_[name]-[hash][extname]\",\n\t\t\t\t\t\t\tchunkFileNames: \"vorma_out_vite_[name]-[hash].js\",\n\t\t\t\t\t\t\tentryFileNames: \"vorma_out_vite_[name]-[hash].js\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tserver: {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t...c.server?.headers,\n\t\t\t\t\t\t// ensure versions of dynamic imports without the latest\n\t\t\t\t\t\t// hmr updates are not cached by the browser during dev\n\t\t\t\t\t\t\"cache-control\": \"no-store\",\n\t\t\t\t\t},\n\t\t\t\t\twatch: {\n\t\t\t\t\t\t...c.server?.watch,\n\t\t\t\t\t\tignored: [\n\t\t\t\t\t\t\t...(Array.isArray(ign) ? ign : []),\n\t\t\t\t\t\t\t...config.ignoredPatterns,\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tresolve: {\n\t\t\t\t\tdedupe: [\n\t\t\t\t\t\t...(Array.isArray(dedupe) ? dedupe : []),\n\t\t\t\t\t\t...config.dedupeList,\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t};\n\t\t},\n\t\ttransform(code: any, id: any) {\n\t\t\tconst isNodeModules = /node_modules/.test(id);\n\t\t\tif (isNodeModules) return null;\n\n\t\t\tconst regex = new RegExp(\n\t\t\t\t`${config.buildtimePublicURLFuncName}\\\\s*\\\\(\\\\s*([\"'\\`])(.*?)\\\\1\\\\s*\\\\)`,\n\t\t\t\t\"g\",\n\t\t\t);\n\n\t\t\tconst needsReplacement = regex.test(code);\n\t\t\tif (!needsReplacement) return null;\n\n\t\t\tconst replacedCode = code.replace(\n\t\t\t\tregex,\n\t\t\t\t(_: any, __: any, assetPath: any) => {\n\t\t\t\t\tconst hashed = config.staticPublicAssetMap[assetPath];\n\t\t\t\t\tif (!hashed) return `\"${assetPath}\"`;\n\t\t\t\t\treturn `\"${config.publicPathPrefix}${hashed}\"`;\n\t\t\t\t},\n\t\t\t);\n\n\t\t\tif (replacedCode === code) return null;\n\t\t\treturn replacedCode;\n\t\t},\n\t};\n}\n"],
5
- "mappings": ";AASe,SAAR,gBAAiC,QAAoC;AAC3E,SAAO;AAAA,IACN,MAAM;AAAA,IACN,OAAO,GAAQ,EAAE,QAAQ,GAAQ;AAChC,YAAM,KAAK,EAAE,OAAO;AACpB,YAAM,MAAM,EAAE,OAAO,eAAe;AACpC,YAAM,MAAM,EAAE,QAAQ,OAAO;AAC7B,YAAM,SAAS,EAAE,SAAS;AAE1B,YAAM,QAAQ,YAAY;AAE1B,aAAO;AAAA,QACN,MAAM,QAAQ,MAAM,OAAO;AAAA,QAC3B,OAAO;AAAA,UACN,QAAQ;AAAA,UACR,aAAa;AAAA,UACb,eAAe;AAAA,YACd,UAAU;AAAA,YACV,GAAI,OAAO,OAAO,WAAW,KAAK,CAAC;AAAA,UACpC;AAAA,UACA,eAAe;AAAA,YACd,GAAG,EAAE,OAAO;AAAA,YACZ,OAAO;AAAA,cACN,GAAG,OAAO;AAAA,cACV,GAAI,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC;AAAA,YACjC;AAAA,YACA,yBAAyB;AAAA,YACzB,QAAQ;AAAA,cACP,gBACC;AAAA,cACD,gBAAgB;AAAA,cAChB,gBAAgB;AAAA,YACjB;AAAA,UACD;AAAA,QACD;AAAA,QACA,QAAQ;AAAA,UACP,SAAS;AAAA,YACR,GAAG,EAAE,QAAQ;AAAA;AAAA;AAAA,YAGb,iBAAiB;AAAA,UAClB;AAAA,UACA,OAAO;AAAA,YACN,GAAG,EAAE,QAAQ;AAAA,YACb,SAAS;AAAA,cACR,GAAI,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC;AAAA,cAChC,GAAG,OAAO;AAAA,YACX;AAAA,UACD;AAAA,QACD;AAAA,QACA,SAAS;AAAA,UACR,QAAQ;AAAA,YACP,GAAI,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC;AAAA,YACtC,GAAG,OAAO;AAAA,UACX;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IACA,UAAU,MAAW,IAAS;AAC7B,YAAM,gBAAgB,eAAe,KAAK,EAAE;AAC5C,UAAI,cAAe,QAAO;AAE1B,YAAM,QAAQ,IAAI;AAAA,QACjB,GAAG,OAAO,0BAA0B;AAAA,QACpC;AAAA,MACD;AAEA,YAAM,mBAAmB,MAAM,KAAK,IAAI;AACxC,UAAI,CAAC,iBAAkB,QAAO;AAE9B,YAAM,eAAe,KAAK;AAAA,QACzB;AAAA,QACA,CAAC,GAAQ,IAAS,cAAmB;AACpC,gBAAM,SAAS,OAAO,qBAAqB,SAAS;AACpD,cAAI,CAAC,OAAQ,QAAO,IAAI,SAAS;AACjC,iBAAO,IAAI,OAAO,gBAAgB,GAAG,MAAM;AAAA,QAC5C;AAAA,MACD;AAEA,UAAI,iBAAiB,KAAM,QAAO;AAClC,aAAO;AAAA,IACR;AAAA,EACD;AACD;",
4
+ "sourcesContent": ["import { readFileSync, statSync } from \"node:fs\";\nimport { resolve } from \"node:path\";\n\ntype VormaVitePluginConfig = {\n\trollupInput: ReadonlyArray<string>;\n\tpublicPathPrefix: string;\n\tstaticPublicAssetMap: Record<string, string>;\n\tbuildtimePublicURLFuncName: string;\n\tfilemapJSONPath: string;\n\tignoredPatterns: ReadonlyArray<string>;\n\tdedupeList: ReadonlyArray<string>;\n};\n\nexport default function vormaVitePlugin(config: VormaVitePluginConfig): any {\n\t// Cache for dev mode filemap reading.\n\t// In dev mode, we read from the JSON file so we can pick up changes\n\t// without restarting Vite. The mtime check allows us to avoid re-reading\n\t// the file on every transform if it hasn't changed.\n\tlet cachedMap: Record<string, string> | null = null;\n\tlet cachedMtime: number = 0;\n\tlet isDev = false;\n\tlet resolvedFilemapPath: string | null = null;\n\n\t/**\n\t * Gets the current filemap, reading from disk in dev mode.\n\t * In production builds, uses the static map passed at plugin creation.\n\t */\n\tfunction getFilemap(): Record<string, string> {\n\t\tif (!isDev) {\n\t\t\treturn config.staticPublicAssetMap;\n\t\t}\n\n\t\tif (!resolvedFilemapPath) {\n\t\t\tresolvedFilemapPath = resolve(\n\t\t\t\tprocess.cwd(),\n\t\t\t\tconfig.filemapJSONPath,\n\t\t\t);\n\t\t}\n\n\t\ttry {\n\t\t\tconst stat = statSync(resolvedFilemapPath);\n\t\t\tconst mtime = stat.mtimeMs;\n\n\t\t\t// Return cached version if file hasn't changed\n\t\t\tif (cachedMap && mtime === cachedMtime) {\n\t\t\t\treturn cachedMap;\n\t\t\t}\n\n\t\t\tconst content = readFileSync(resolvedFilemapPath, \"utf-8\");\n\t\t\tcachedMap = JSON.parse(content);\n\t\t\tcachedMtime = mtime;\n\t\t\treturn cachedMap!;\n\t\t} catch {\n\t\t\t// Fallback to initial config if file can't be read.\n\t\t\t// This handles the case where the JSON file doesn't exist yet\n\t\t\t// (e.g., on first build before Wave has written it).\n\t\t\treturn config.staticPublicAssetMap;\n\t\t}\n\t}\n\n\treturn {\n\t\tname: \"vorma-vite-plugin\",\n\n\t\tconfig(c: any, { command }: any) {\n\t\t\tisDev = command === \"serve\";\n\n\t\t\tconst mp = c.build?.modulePreload;\n\t\t\tconst roi = c.build?.rollupOptions?.input;\n\t\t\tconst ign = c.server?.watch?.ignored;\n\t\t\tconst dedupe = c.resolve?.dedupe;\n\n\t\t\treturn {\n\t\t\t\tbase: isDev ? \"/\" : config.publicPathPrefix,\n\t\t\t\tbuild: {\n\t\t\t\t\ttarget: \"es2022\",\n\t\t\t\t\temptyOutDir: false,\n\t\t\t\t\tmodulePreload: {\n\t\t\t\t\t\tpolyfill: false,\n\t\t\t\t\t\t...(typeof mp === \"object\" ? mp : {}),\n\t\t\t\t\t},\n\t\t\t\t\trollupOptions: {\n\t\t\t\t\t\t...c.build?.rollupOptions,\n\t\t\t\t\t\tinput: [\n\t\t\t\t\t\t\t...config.rollupInput,\n\t\t\t\t\t\t\t...(Array.isArray(roi) ? roi : []),\n\t\t\t\t\t\t],\n\t\t\t\t\t\tpreserveEntrySignatures: \"exports-only\",\n\t\t\t\t\t\toutput: {\n\t\t\t\t\t\t\tassetFileNames:\n\t\t\t\t\t\t\t\t\"vorma_out_vite_[name]-[hash][extname]\",\n\t\t\t\t\t\t\tchunkFileNames: \"vorma_out_vite_[name]-[hash].js\",\n\t\t\t\t\t\t\tentryFileNames: \"vorma_out_vite_[name]-[hash].js\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tserver: {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t...c.server?.headers,\n\t\t\t\t\t\t// ensure versions of dynamic imports without the latest\n\t\t\t\t\t\t// hmr updates are not cached by the browser during dev\n\t\t\t\t\t\t\"cache-control\": \"no-store\",\n\t\t\t\t\t},\n\t\t\t\t\twatch: {\n\t\t\t\t\t\t...c.server?.watch,\n\t\t\t\t\t\tignored: [\n\t\t\t\t\t\t\t...(Array.isArray(ign) ? ign : []),\n\t\t\t\t\t\t\t...config.ignoredPatterns,\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tresolve: {\n\t\t\t\t\tdedupe: [\n\t\t\t\t\t\t...(Array.isArray(dedupe) ? dedupe : []),\n\t\t\t\t\t\t...config.dedupeList,\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Configures the dev server with an endpoint for filemap cache invalidation.\n\t\t * Wave calls this endpoint after updating public static files, which:\n\t\t * 1. Clears the cached filemap so the next transform reads fresh data\n\t\t * 2. Invalidates all modules in Vite's module graph\n\t\t * 3. Triggers a browser reload via Vite's HMR websocket\n\t\t *\n\t\t * This is much faster than cycling Vite (stopping and restarting the process).\n\t\t */\n\t\tconfigureServer(server: any) {\n\t\t\tserver.middlewares.use((req: any, res: any, next: any) => {\n\t\t\t\tif (req.url !== \"/__vorma_invalidate_filemap\") {\n\t\t\t\t\treturn next();\n\t\t\t\t}\n\n\t\t\t\tconsole.log(\n\t\t\t\t\t\"[vorma-vite-plugin] Filemap invalidation triggered\",\n\t\t\t\t);\n\n\t\t\t\t// Clear the filemap cache so the next transform reads fresh data\n\t\t\t\tcachedMap = null;\n\t\t\t\tcachedMtime = 0;\n\n\t\t\t\t// Invalidate all modules in Vite's module graph.\n\t\t\t\t// This is simpler than tracking which specific modules use\n\t\t\t\t// waveBuildtimeURL() and fast enough for typical project sizes\n\t\t\t\t// (a few ms for hundreds of modules).\n\t\t\t\tfor (const mod of server.moduleGraph.idToModuleMap.values()) {\n\t\t\t\t\tserver.moduleGraph.invalidateModule(mod);\n\t\t\t\t}\n\n\t\t\t\t// Trigger a full browser reload via Vite's HMR websocket.\n\t\t\t\t// The browser will re-request modules, Vite will re-transform them\n\t\t\t\t// (cache miss due to invalidation), and they'll get the new URLs.\n\t\t\t\tserver.ws.send({ type: \"full-reload\" });\n\n\t\t\t\tres.statusCode = 200;\n\t\t\t\tres.end(\"ok\");\n\t\t\t});\n\t\t},\n\n\t\ttransform(code: any, id: any) {\n\t\t\tconst isNodeModules = /node_modules/.test(id);\n\t\t\tif (isNodeModules) return null;\n\n\t\t\tconst regex = new RegExp(\n\t\t\t\t`${config.buildtimePublicURLFuncName}\\\\s*\\\\(\\\\s*([\"'\\`])(.*?)\\\\1\\\\s*\\\\)`,\n\t\t\t\t\"g\",\n\t\t\t);\n\n\t\t\tconst needsReplacement = regex.test(code);\n\t\t\tif (!needsReplacement) return null;\n\n\t\t\t// Get the current filemap (reads from disk in dev mode)\n\t\t\tconst filemap = getFilemap();\n\n\t\t\tconst replacedCode = code.replace(\n\t\t\t\tregex,\n\t\t\t\t(_: any, __: any, assetPath: any) => {\n\t\t\t\t\tconst hashed = filemap[assetPath];\n\t\t\t\t\tif (!hashed) return `\"${assetPath}\"`;\n\t\t\t\t\treturn `\"${config.publicPathPrefix}${hashed}\"`;\n\t\t\t\t},\n\t\t\t);\n\n\t\t\tif (replacedCode === code) return null;\n\t\t\treturn replacedCode;\n\t\t},\n\t};\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vorma",
3
- "version": "0.83.0",
3
+ "version": "0.85.0-pre.0",
4
4
  "description": "The Next.js of Golang, powered by Vite.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -110,23 +110,23 @@
110
110
  "!**/bench.txt"
111
111
  ],
112
112
  "devDependencies": {
113
- "@preact/signals": "^2.3.1",
113
+ "@preact/signals": "^2.5.1",
114
114
  "@types/jsdom": "^21.1.7",
115
- "@types/node": "^22.18.1",
116
- "@types/react": "^19.1.12",
117
- "@types/react-dom": "^19.1.9",
115
+ "@types/node": "^22.19.5",
116
+ "@types/react": "^19.2.8",
117
+ "@types/react-dom": "^19.2.3",
118
118
  "@typescript/native-preview": "7.0.0-dev.20250716.1",
119
- "esbuild": "^0.25.9",
119
+ "esbuild": "^0.25.12",
120
120
  "esbuild-plugin-solid": "^0.6.0",
121
121
  "history": "5.3.0",
122
122
  "jsdom": "^26.1.0",
123
- "oxlint": "^1.14.0",
124
- "preact": "^10.27.1",
125
- "prettier": "^3.6.2",
126
- "react": "^19.1.1",
127
- "react-dom": "^19.1.1",
128
- "solid-js": "^1.9.9",
129
- "typescript": "^5.9.2",
123
+ "oxlint": "^1.38.0",
124
+ "preact": "^10.28.2",
125
+ "prettier": "^3.7.4",
126
+ "react": "^19.2.3",
127
+ "react-dom": "^19.2.3",
128
+ "solid-js": "^1.9.10",
129
+ "typescript": "^5.9.3",
130
130
  "vite": "npm:rolldown-vite@latest",
131
131
  "vitest": "^3.2.4"
132
132
  },