@reckona/mreact-router 0.0.86 → 0.0.88

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.
@@ -3,6 +3,7 @@ export interface RouterBundleOptions {
3
3
  base?: string | undefined;
4
4
  code: string;
5
5
  define?: Record<string, string> | undefined;
6
+ externalizeAppSourceModuleDirs?: readonly string[] | undefined;
6
7
  filename: string;
7
8
  minify?: boolean | undefined;
8
9
  modulePreload?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"bundle-pipeline.d.ts","sourceRoot":"","sources":["../src/bundle-pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bundle-pipeline.d.ts","sourceRoot":"","sources":["../src/bundle-pipeline.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { builtinModules } from "node:module";
2
- import { dirname } from "node:path";
2
+ import { access } from "node:fs/promises";
3
+ import { dirname, extname, isAbsolute, join, resolve } from "node:path";
4
+ import { pathToFileURL } from "node:url";
3
5
  import { build as viteBuild, } from "vite";
4
6
  import { workspacePackageFile } from "./workspace-packages.js";
5
7
  const nodeBuiltinSpecifiers = new Set(builtinModules.flatMap((name) => [name, `node:${name}`]));
@@ -16,6 +18,11 @@ export async function bundleRouterModule(options) {
16
18
  mreactJsxRuntimeAliasPlugin(),
17
19
  ...(options.vitePlugins ?? []),
18
20
  virtualEntryPlugin(entryId, options.code),
21
+ ...(options.externalizeAppSourceModuleDirs === undefined
22
+ ? []
23
+ : [
24
+ externalizeAppSourceModulesPlugin(options.filename, options.externalizeAppSourceModuleDirs),
25
+ ]),
19
26
  ...(options.plugins ?? []).map(routerCompatPlugin),
20
27
  ],
21
28
  publicDir: false,
@@ -142,13 +149,49 @@ export async function bundleRouterModules(options) {
142
149
  }
143
150
  function mreactJsxRuntimeAliasPlugin() {
144
151
  const runtimePaths = new Map([
152
+ [
153
+ "react",
154
+ workspacePackageFile({
155
+ currentFileUrl: import.meta.url,
156
+ entry: "index",
157
+ monorepoDir: "react-compat",
158
+ packageName: "@reckona/mreact-compat",
159
+ }),
160
+ ],
161
+ [
162
+ "react-dom",
163
+ workspacePackageFile({
164
+ currentFileUrl: import.meta.url,
165
+ entry: "index",
166
+ monorepoDir: "react-compat",
167
+ packageName: "@reckona/mreact-compat",
168
+ }),
169
+ ],
170
+ [
171
+ "react-dom/client",
172
+ workspacePackageFile({
173
+ currentFileUrl: import.meta.url,
174
+ entry: "index",
175
+ monorepoDir: "react-compat",
176
+ packageName: "@reckona/mreact-compat",
177
+ }),
178
+ ],
179
+ [
180
+ "react-dom/server",
181
+ workspacePackageFile({
182
+ currentFileUrl: import.meta.url,
183
+ entry: "index",
184
+ monorepoDir: "react-compat",
185
+ packageName: "@reckona/mreact-compat",
186
+ }),
187
+ ],
145
188
  [
146
189
  "react/jsx-dev-runtime",
147
190
  workspacePackageFile({
148
191
  currentFileUrl: import.meta.url,
149
192
  entry: "jsx-dev-runtime",
150
- monorepoDir: "react",
151
- packageName: "@reckona/mreact",
193
+ monorepoDir: "react-compat",
194
+ packageName: "@reckona/mreact-compat",
152
195
  }),
153
196
  ],
154
197
  [
@@ -156,8 +199,8 @@ function mreactJsxRuntimeAliasPlugin() {
156
199
  workspacePackageFile({
157
200
  currentFileUrl: import.meta.url,
158
201
  entry: "jsx-runtime",
159
- monorepoDir: "react",
160
- packageName: "@reckona/mreact",
202
+ monorepoDir: "react-compat",
203
+ packageName: "@reckona/mreact-compat",
161
204
  }),
162
205
  ],
163
206
  ]);
@@ -169,6 +212,70 @@ function mreactJsxRuntimeAliasPlugin() {
169
212
  },
170
213
  };
171
214
  }
215
+ function externalizeAppSourceModulesPlugin(entryFilename, sourceDirs) {
216
+ const normalizedSourceDirs = sourceDirs.map((directory) => resolve(directory));
217
+ return {
218
+ name: "mreact-router-externalize-app-source-modules",
219
+ enforce: "pre",
220
+ async resolveId(id, importer) {
221
+ if (importer === undefined || !isAppSourceImport(id)) {
222
+ return undefined;
223
+ }
224
+ const importerPath = cleanViteId(importer);
225
+ const resolved = await resolveAppSourceImport(id, dirname(importerPath));
226
+ if (resolved === undefined ||
227
+ resolved === entryFilename ||
228
+ !isExternalizableAppSourceModule(resolved) ||
229
+ !isInsideAnyDirectory(normalizedSourceDirs, resolved)) {
230
+ return undefined;
231
+ }
232
+ return {
233
+ external: true,
234
+ id: pathToFileURL(resolved).href,
235
+ };
236
+ },
237
+ };
238
+ }
239
+ function isInsideAnyDirectory(directories, path) {
240
+ return directories.some((directory) => path === directory || path.startsWith(`${directory}/`));
241
+ }
242
+ function isAppSourceImport(id) {
243
+ return id.startsWith(".") || id.startsWith("/") || isAbsolute(id);
244
+ }
245
+ function isExternalizableAppSourceModule(path) {
246
+ return /\.(?:[cm]?ts|[cm]?js)$/u.test(path);
247
+ }
248
+ async function resolveAppSourceImport(id, resolveDir) {
249
+ const base = isAbsolute(id) ? id : resolve(resolveDir, id);
250
+ const extension = extname(base);
251
+ const candidates = extension === ""
252
+ ? [
253
+ base,
254
+ `${base}.ts`,
255
+ `${base}.mts`,
256
+ `${base}.cts`,
257
+ `${base}.js`,
258
+ `${base}.mjs`,
259
+ `${base}.cjs`,
260
+ join(base, "index.ts"),
261
+ join(base, "index.mts"),
262
+ join(base, "index.cts"),
263
+ join(base, "index.js"),
264
+ join(base, "index.mjs"),
265
+ join(base, "index.cjs"),
266
+ ]
267
+ : [base];
268
+ for (const candidate of candidates) {
269
+ try {
270
+ await access(candidate);
271
+ return candidate;
272
+ }
273
+ catch {
274
+ continue;
275
+ }
276
+ }
277
+ return undefined;
278
+ }
172
279
  function stripSourceMappingUrl(code) {
173
280
  return code.replace(/\n?\/\/# sourceMappingURL=[^\n]+\.map\s*$/u, "");
174
281
  }
@@ -193,7 +300,9 @@ function virtualEntriesPlugin(entries) {
193
300
  },
194
301
  load(id) {
195
302
  const entry = entries.get(id);
196
- return entry === undefined ? undefined : { code: entry.code, moduleType: moduleTypeForFilename(id) };
303
+ return entry === undefined
304
+ ? undefined
305
+ : { code: entry.code, moduleType: moduleTypeForFilename(id) };
197
306
  },
198
307
  };
199
308
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bundle-pipeline.js","sourceRoot":"","sources":["../src/bundle-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,KAAK,IAAI,SAAS,GAInB,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAsH/D,MAAM,qBAAqB,GAAG,IAAI,GAAG,CACnC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,CACzD,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAA4B;IACnE,MAAM,OAAO,GAAG,GAAG,OAAO,CAAC,QAAQ,sBAAsB,CAAC;IAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC;IAC9C,MAAM,MAAM,GAAG;QACb,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,GAAG;QACzB,UAAU,EAAE,KAAK;QACjB,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACnE,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE;YACP,kCAAkC,CAAC,OAAO,CAAC,QAAQ,CAAC;YACpD,2BAA2B,EAAE;YAC7B,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;YAC9B,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC;YACzC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC;SACnD;QACD,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC/B,GAAG,EAAE;YACH,UAAU,EAAE,IAAI;SACjB;QACD,KAAK,EAAE;YACL,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,OAAO,CAAC,eAAe,KAAK,IAAI;gBACnC,CAAC,CAAC;oBACE,KAAK,EAAE,OAAO;oBACd,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO;oBACvB,OAAO,EAAE,CAAC,IAAI,CAAC;iBAChB;gBACH,CAAC,CAAC,KAAK;YACT,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,IAAI;YAC/B,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;YAC5C,SAAS,EAAE,OAAO,CAAC,SAAS,KAAK,IAAI;YACrC,GAAG,EAAE,OAAO,CAAC,QAAQ,KAAK,MAAM;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ;YAClC,KAAK,EAAE,KAAK;YACZ,eAAe,EAAE;gBACf,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE;oBACN,aAAa,EAAE,KAAK;oBACpB,cAAc,EAAE,OAAO;oBACvB,MAAM,EAAE,IAAI;iBACb;aACF;SACF;KACqB,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAoC,CAAC;IAE/F,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,CAAC,QAAQ,qCAAqC,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAA8B,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IAC9F,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAC5B,CAAC,IAAI,EAA8B,EAAE,CACnC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,KAAK,EAAE,QAAQ,IAAI,OAAO,MAAM,CACjF,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;SACzB,MAAM,CAAC,CAAC,IAAI,EAA8B,EAAE,CAC3C,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,KAAK,EAAE,QAAQ,IAAI,OAAO,MAAM,CAC/E;SACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAExE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,CAAC,QAAQ,oCAAoC,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1C,IAAI,EAAE,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC;QACvC,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAmC;IAEnC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QAC7B,GAAG,KAAK,CAAC,QAAQ,wBAAwB,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QACzE,KAAK;KACN,CAAC,CACH,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CACjE,CAAC;IACF,MAAM,MAAM,GAAG;QACb,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,GAAG;QACzB,UAAU,EAAE,KAAK;QACjB,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACnE,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE;YACP,kCAAkC,CAAC,OAAO,CAAC,QAAQ,CAAC;YACpD,2BAA2B,EAAE;YAC7B,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;YAC9B,oBAAoB,CAAC,OAAO,CAAC;YAC7B,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC;SACnD;QACD,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC5E,GAAG,EAAE;YACH,UAAU,EAAE,IAAI;SACjB;QACD,KAAK,EAAE;YACL,WAAW,EAAE,KAAK;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,IAAI;YAC/B,SAAS,EAAE,OAAO,CAAC,SAAS,KAAK,IAAI;YACrC,GAAG,EAAE,OAAO,CAAC,QAAQ,KAAK,MAAM;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ;YAClC,KAAK,EAAE,KAAK;YACZ,eAAe,EAAE;gBACf,KAAK;gBACL,MAAM,EAAE;oBACN,cAAc,EAAE,gCAAgC;oBAChD,cAAc,EAAE,gCAAgC;oBAChD,MAAM,EAAE,IAAI;oBACZ,cAAc,EAAE,KAAK;iBACtB;aACF;SACF;KACqB,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAoC,CAAC;IAE/F,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,MAAM,CAAC,MAAM;SACV,MAAM,CAAC,CAAC,IAAI,EAA8B,EAAE,CAC3C,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CACxD;SACA,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACjB,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAClF,CACJ,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;SACzB,MAAM,CAAC,CAAC,IAAI,EAA8B,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;SACnE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,MAAM,CAAC,CAAC;QAEnD,OAAO;YACL,IAAI,EAAE,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC;YACvC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;YAC5B,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI;YAC/B,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;YACrC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ;SACnC,CAAC;IACJ,CAAC,CAAC,CAAC;IACL,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;SACzB,MAAM,CAAC,CAAC,IAAI,EAA8B,EAAE,CAC3C,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CACzD;SACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAExE,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1C,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B;IAClC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;QAC3B;YACE,uBAAuB;YACvB,oBAAoB,CAAC;gBACnB,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;gBAC/B,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,OAAO;gBACpB,WAAW,EAAE,iBAAiB;aAC/B,CAAC;SACH;QACD;YACE,mBAAmB;YACnB,oBAAoB,CAAC;gBACnB,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;gBAC/B,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,OAAO;gBACpB,WAAW,EAAE,iBAAiB;aAC/B,CAAC;SACH;KACF,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,iCAAiC;QACvC,OAAO,EAAE,KAAK;QACd,SAAS,CAAC,EAAE;YACV,OAAO,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,OAAO,CAAC,4CAA4C,EAAE,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe,EAAE,IAAY;IACvD,OAAO;QACL,IAAI,EAAE,6BAA6B;QACnC,OAAO,EAAE,KAAK;QACd,SAAS,CAAC,EAAE;YACV,OAAO,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,EAAE;YACL,OAAO,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3F,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAsD;IAClF,OAAO;QACL,IAAI,EAAE,+BAA+B;QACrC,OAAO,EAAE,KAAK;QACd,SAAS,CAAC,EAAE;YACV,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,EAAE;YACL,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAE9B,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC;QACvG,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAgB;IAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEpC,IAAI,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kCAAkC,CAAC,QAAyC;IACnF,OAAO;QACL,IAAI,EAAE,qCAAqC;QAC3C,OAAO,EAAE,KAAK;QACd,SAAS,CAAC,EAAE;YACV,IAAI,QAAQ,KAAK,SAAS,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC5D,IAAI,CAAC,KAAK,CAAC,4CAA4C,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAChF,CAAC;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA0B;IACpD,MAAM,SAAS,GAGV,EAAE,CAAC;IACR,MAAM,OAAO,GAIR,EAAE,CAAC;IAER,MAAM,CAAC,KAAK,CAAC;QACX,MAAM,CAAC,OAAO,EAAE,QAAQ;YACtB,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,SAAS,CAAC,OAAO,EAAE,QAAQ;YACzB,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,KAAK;QACd,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ;YAC9B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClC,SAAS;gBACX,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC;oBACvC,QAAQ,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC;oBACpE,IAAI,EAAE,MAAM;oBACZ,UAAU,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;iBACzE,CAAC,CAAC;gBAEH,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,SAAS;gBACX,CAAC;gBAED,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpE,CAAC;gBAED,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAChC,SAAS;gBACX,CAAC;gBAED,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;oBAC/B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC/C,CAAC;gBAED,OAAO,QAAQ,CAAC,SAAS,KAAK,SAAS;oBACrC,CAAC,CAAC,QAAQ,CAAC,IAAI;oBACf,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzD,CAAC;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE;YACX,MAAM,OAAO,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,CAAC;YAErC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChE,SAAS;gBACX,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAE/C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,OAAO,MAAM,CAAC,QAAQ,CAAC;gBACzB,CAAC;YACH,CAAC;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,SAAiB,EAAE,IAAY;IACtD,OAAO,0BAA0B,kBAAkB,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;AAC/F,CAAC;AAED,SAAS,oBAAoB,CAAC,EAAU;IACtC,MAAM,MAAM,GAAG,yBAAyB,CAAC;IAEzC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEpC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACvD,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EAAU;IAC7B,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAE9C,OAAO,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAChF,CAAC","sourcesContent":["import { builtinModules } from \"node:module\";\nimport { dirname } from \"node:path\";\nimport {\n build as viteBuild,\n type InlineConfig,\n type PluginOption,\n type Plugin as VitePlugin,\n} from \"vite\";\nimport { workspacePackageFile } from \"./workspace-packages.js\";\n\nexport interface RouterBundleOptions {\n base?: string | undefined;\n code: string;\n define?: Record<string, string> | undefined;\n filename: string;\n minify?: boolean | undefined;\n modulePreload?: boolean | undefined;\n outfile?: string | undefined;\n platform: \"browser\" | \"node\";\n preserveExports?: boolean | undefined;\n plugins?: readonly RouterCompatPlugin[] | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n sourceMap?: boolean | undefined;\n target?: string | undefined;\n}\n\nexport interface RouterBundleModulesOptions {\n base?: string | undefined;\n define?: Record<string, string> | undefined;\n entries: readonly RouterBundleEntryOptions[];\n minify?: boolean | undefined;\n platform: \"browser\" | \"node\";\n plugins?: readonly RouterCompatPlugin[] | undefined;\n root?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n sourceMap?: boolean | undefined;\n target?: string | undefined;\n}\n\nexport interface RouterBundleEntryOptions {\n code: string;\n filename: string;\n name: string;\n}\n\nexport interface RouterBundleOutput {\n assets?: RouterBundleAssetOutput[] | undefined;\n code: string;\n map?: string | undefined;\n}\n\nexport interface RouterBundleModulesOutput {\n assets?: RouterBundleAssetOutput[] | undefined;\n chunks: RouterBundleChunkOutput[];\n}\n\nexport interface RouterBundleChunkOutput {\n code: string;\n fileName: string;\n imports: string[];\n isEntry: boolean;\n map?: string | undefined;\n name: string;\n}\n\nexport interface RouterBundleAssetOutput {\n fileName: string;\n source: string | Uint8Array;\n}\n\ninterface RouterBundlerChunk {\n code: string;\n fileName: string;\n imports?: string[] | undefined;\n isEntry?: boolean | undefined;\n name?: string | undefined;\n type: \"chunk\";\n}\n\ninterface RouterBundlerAsset {\n fileName: string;\n source: string | Uint8Array;\n type: \"asset\";\n}\n\ninterface RouterBundlerOutput {\n output: Array<RouterBundlerAsset | RouterBundlerChunk>;\n}\n\nexport interface RouterCompatPlugin {\n name: string;\n setup(buildApi: RouterCompatBuildApi): void;\n}\n\nexport interface RouterCompatBuildApi {\n onLoad(\n options: { filter: RegExp; namespace?: string | undefined },\n callback: (args: { path: string }) => RouterCompatLoadResult | Promise<RouterCompatLoadResult>,\n ): void;\n onResolve(\n options: { filter: RegExp },\n callback: (args: {\n importer?: string | undefined;\n path: string;\n resolveDir: string;\n }) => RouterCompatResolveResult | Promise<RouterCompatResolveResult>,\n ): void;\n}\n\nexport type RouterCompatLoadResult =\n | {\n contents: string;\n loader?: string | undefined;\n resolveDir?: string | undefined;\n }\n | undefined;\n\nexport type RouterCompatResolveResult =\n | {\n errors?: Array<{ text: string }> | undefined;\n external?: boolean | undefined;\n namespace?: string | undefined;\n path?: string | undefined;\n }\n | undefined;\n\nconst nodeBuiltinSpecifiers = new Set(\n builtinModules.flatMap((name) => [name, `node:${name}`]),\n);\n\nexport async function bundleRouterModule(options: RouterBundleOptions): Promise<RouterBundleOutput> {\n const entryId = `${options.filename}?mreact-router-entry`;\n const outfile = options.outfile ?? \"entry.js\";\n const config = {\n base: options.base ?? \"/\",\n configFile: false,\n ...(options.define === undefined ? {} : { define: options.define }),\n logLevel: \"silent\",\n plugins: [\n rejectNodeBuiltinsForBrowserPlugin(options.platform),\n mreactJsxRuntimeAliasPlugin(),\n ...(options.vitePlugins ?? []),\n virtualEntryPlugin(entryId, options.code),\n ...(options.plugins ?? []).map(routerCompatPlugin),\n ],\n publicDir: false,\n root: dirname(options.filename),\n ssr: {\n noExternal: true,\n },\n build: {\n emptyOutDir: false,\n lib: options.preserveExports === true\n ? {\n entry: entryId,\n fileName: () => outfile,\n formats: [\"es\"],\n }\n : false,\n minify: options.minify === true,\n modulePreload: options.modulePreload ?? true,\n sourcemap: options.sourceMap === true,\n ssr: options.platform === \"node\",\n target: options.target ?? \"es2022\",\n write: false,\n rolldownOptions: {\n input: entryId,\n output: {\n codeSplitting: false,\n entryFileNames: outfile,\n format: \"es\",\n },\n },\n },\n } satisfies InlineConfig;\n const result = await viteBuild(config);\n const output = (Array.isArray(result) ? result[0] : result) as RouterBundlerOutput | undefined;\n\n if (output === undefined || !(\"output\" in output)) {\n throw new Error(`Failed to bundle ${options.filename}: Vite/Rolldown produced no output.`);\n }\n\n const chunk = output.output.find((item): item is RouterBundlerChunk => item.type === \"chunk\");\n const map = output.output.find(\n (item): item is RouterBundlerAsset =>\n item.type === \"asset\" && item.fileName === `${chunk?.fileName ?? outfile}.map`,\n );\n const assets = output.output\n .filter((item): item is RouterBundlerAsset =>\n item.type === \"asset\" && item.fileName !== `${chunk?.fileName ?? outfile}.map`\n )\n .map((asset) => ({ fileName: asset.fileName, source: asset.source }));\n\n if (chunk === undefined) {\n throw new Error(`Failed to bundle ${options.filename}: Vite/Rolldown produced no chunk.`);\n }\n\n return {\n ...(assets.length === 0 ? {} : { assets }),\n code: stripSourceMappingUrl(chunk.code),\n ...(map !== undefined && typeof map.source === \"string\" ? { map: map.source } : {}),\n };\n}\n\nexport async function bundleRouterModules(\n options: RouterBundleModulesOptions,\n): Promise<RouterBundleModulesOutput> {\n if (options.entries.length === 0) {\n return { chunks: [] };\n }\n\n const entries = new Map(\n options.entries.map((entry) => [\n `${entry.filename}?mreact-router-entry=${encodeURIComponent(entry.name)}`,\n entry,\n ]),\n );\n const input = Object.fromEntries(\n Array.from(entries, ([entryId, entry]) => [entry.name, entryId]),\n );\n const config = {\n base: options.base ?? \"/\",\n configFile: false,\n ...(options.define === undefined ? {} : { define: options.define }),\n logLevel: \"silent\",\n plugins: [\n rejectNodeBuiltinsForBrowserPlugin(options.platform),\n mreactJsxRuntimeAliasPlugin(),\n ...(options.vitePlugins ?? []),\n virtualEntriesPlugin(entries),\n ...(options.plugins ?? []).map(routerCompatPlugin),\n ],\n publicDir: false,\n root: options.root ?? dirname(options.entries[0]?.filename ?? process.cwd()),\n ssr: {\n noExternal: true,\n },\n build: {\n emptyOutDir: false,\n minify: options.minify === true,\n sourcemap: options.sourceMap === true,\n ssr: options.platform === \"node\",\n target: options.target ?? \"es2022\",\n write: false,\n rolldownOptions: {\n input,\n output: {\n chunkFileNames: \"assets/chunks/[name].[hash].js\",\n entryFileNames: \"assets/routes/[name].[hash].js\",\n format: \"es\",\n hashCharacters: \"hex\",\n },\n },\n },\n } satisfies InlineConfig;\n const result = await viteBuild(config);\n const output = (Array.isArray(result) ? result[0] : result) as RouterBundlerOutput | undefined;\n\n if (output === undefined || !(\"output\" in output)) {\n throw new Error(\"Failed to bundle client routes: Vite/Rolldown produced no output.\");\n }\n\n const mapAssets = new Map(\n output.output\n .filter((item): item is RouterBundlerAsset =>\n item.type === \"asset\" && item.fileName.endsWith(\".map\")\n )\n .flatMap((asset) =>\n typeof asset.source === \"string\" ? [[asset.fileName, asset.source] as const] : []\n ),\n );\n const chunks = output.output\n .filter((item): item is RouterBundlerChunk => item.type === \"chunk\")\n .map((chunk) => {\n const map = mapAssets.get(`${chunk.fileName}.map`);\n\n return {\n code: stripSourceMappingUrl(chunk.code),\n fileName: chunk.fileName,\n imports: chunk.imports ?? [],\n isEntry: chunk.isEntry === true,\n ...(map === undefined ? {} : { map }),\n name: chunk.name ?? chunk.fileName,\n };\n });\n const assets = output.output\n .filter((item): item is RouterBundlerAsset =>\n item.type === \"asset\" && !item.fileName.endsWith(\".map\")\n )\n .map((asset) => ({ fileName: asset.fileName, source: asset.source }));\n\n return {\n ...(assets.length === 0 ? {} : { assets }),\n chunks,\n };\n}\n\nfunction mreactJsxRuntimeAliasPlugin(): VitePlugin {\n const runtimePaths = new Map([\n [\n \"react/jsx-dev-runtime\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"jsx-dev-runtime\",\n monorepoDir: \"react\",\n packageName: \"@reckona/mreact\",\n }),\n ],\n [\n \"react/jsx-runtime\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"jsx-runtime\",\n monorepoDir: \"react\",\n packageName: \"@reckona/mreact\",\n }),\n ],\n ]);\n\n return {\n name: \"mreact-router-jsx-runtime-alias\",\n enforce: \"pre\",\n resolveId(id) {\n return runtimePaths.get(id);\n },\n };\n}\n\nfunction stripSourceMappingUrl(code: string): string {\n return code.replace(/\\n?\\/\\/# sourceMappingURL=[^\\n]+\\.map\\s*$/u, \"\");\n}\n\nfunction virtualEntryPlugin(entryId: string, code: string): VitePlugin {\n return {\n name: \"mreact-router-virtual-entry\",\n enforce: \"pre\",\n resolveId(id) {\n return id === entryId ? entryId : undefined;\n },\n load(id) {\n return id === entryId ? { code, moduleType: moduleTypeForFilename(entryId) } : undefined;\n },\n };\n}\n\nfunction virtualEntriesPlugin(entries: ReadonlyMap<string, RouterBundleEntryOptions>): VitePlugin {\n return {\n name: \"mreact-router-virtual-entries\",\n enforce: \"pre\",\n resolveId(id) {\n return entries.has(id) ? id : undefined;\n },\n load(id) {\n const entry = entries.get(id);\n\n return entry === undefined ? undefined : { code: entry.code, moduleType: moduleTypeForFilename(id) };\n },\n };\n}\n\nfunction moduleTypeForFilename(filename: string): \"js\" | \"jsx\" | \"ts\" | \"tsx\" {\n const clean = cleanViteId(filename);\n\n if (/\\.(?:mreact\\.)?[cm]?tsx$/u.test(clean) || clean.endsWith(\".jsx\")) {\n return \"tsx\";\n }\n\n if (/\\.(?:mreact\\.)?[cm]?ts$/u.test(clean)) {\n return \"ts\";\n }\n\n return \"js\";\n}\n\nfunction rejectNodeBuiltinsForBrowserPlugin(platform: RouterBundleOptions[\"platform\"]): VitePlugin {\n return {\n name: \"mreact-router-browser-node-builtins\",\n enforce: \"pre\",\n resolveId(id) {\n if (platform === \"browser\" && nodeBuiltinSpecifiers.has(id)) {\n this.error(`Browser build cannot import Node builtin ${JSON.stringify(id)}.`);\n }\n\n return undefined;\n },\n };\n}\n\nfunction routerCompatPlugin(plugin: RouterCompatPlugin): VitePlugin {\n const resolvers: Array<{\n filter: RegExp;\n callback: Parameters<RouterCompatBuildApi[\"onResolve\"]>[1];\n }> = [];\n const loaders: Array<{\n filter: RegExp;\n namespace?: string | undefined;\n callback: Parameters<RouterCompatBuildApi[\"onLoad\"]>[1];\n }> = [];\n\n plugin.setup({\n onLoad(options, callback) {\n loaders.push({ ...options, callback });\n },\n onResolve(options, callback) {\n resolvers.push({ ...options, callback });\n },\n });\n\n return {\n name: plugin.name,\n enforce: \"pre\",\n async resolveId(source, importer) {\n for (const resolver of resolvers) {\n if (!resolver.filter.test(source)) {\n continue;\n }\n\n const resolved = await resolver.callback({\n importer: importer === undefined ? undefined : cleanViteId(importer),\n path: source,\n resolveDir: importer === undefined ? \"\" : dirname(cleanViteId(importer)),\n });\n\n if (resolved === undefined) {\n continue;\n }\n\n if (resolved.errors !== undefined && resolved.errors.length > 0) {\n this.error(resolved.errors.map((error) => error.text).join(\"\\n\"));\n }\n\n if (resolved.path === undefined) {\n continue;\n }\n\n if (resolved.external === true) {\n return { external: true, id: resolved.path };\n }\n\n return resolved.namespace === undefined\n ? resolved.path\n : compatVirtualId(resolved.namespace, resolved.path);\n }\n\n return undefined;\n },\n async load(id) {\n const virtual = parseCompatVirtualId(id);\n const path = virtual?.path ?? cleanViteId(id);\n const namespace = virtual?.namespace;\n\n for (const loader of loaders) {\n if (loader.namespace !== namespace || !loader.filter.test(path)) {\n continue;\n }\n\n const loaded = await loader.callback({ path });\n\n if (loaded !== undefined) {\n return loaded.contents;\n }\n }\n\n return undefined;\n },\n };\n}\n\nfunction compatVirtualId(namespace: string, path: string): string {\n return `\\0mreact-router-compat:${encodeURIComponent(namespace)}:${encodeURIComponent(path)}`;\n}\n\nfunction parseCompatVirtualId(id: string): { namespace: string; path: string } | undefined {\n const prefix = \"\\0mreact-router-compat:\";\n\n if (!id.startsWith(prefix)) {\n return undefined;\n }\n\n const rest = id.slice(prefix.length);\n const separator = rest.indexOf(\":\");\n\n if (separator === -1) {\n return undefined;\n }\n\n return {\n namespace: decodeURIComponent(rest.slice(0, separator)),\n path: decodeURIComponent(rest.slice(separator + 1)),\n };\n}\n\nfunction cleanViteId(id: string): string {\n const withoutPrefix = id.startsWith(\"/@fs/\") ? id.slice(\"/@fs\".length) : id;\n const queryIndex = withoutPrefix.indexOf(\"?\");\n\n return queryIndex === -1 ? withoutPrefix : withoutPrefix.slice(0, queryIndex);\n}\n"]}
1
+ {"version":3,"file":"bundle-pipeline.js","sourceRoot":"","sources":["../src/bundle-pipeline.ts"],"names":[],"mappings":"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","sourcesContent":["import { builtinModules } from \"node:module\";\nimport { access } from \"node:fs/promises\";\nimport { dirname, extname, isAbsolute, join, resolve } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport {\n build as viteBuild,\n type InlineConfig,\n type PluginOption,\n type Plugin as VitePlugin,\n} from \"vite\";\nimport { workspacePackageFile } from \"./workspace-packages.js\";\n\nexport interface RouterBundleOptions {\n base?: string | undefined;\n code: string;\n define?: Record<string, string> | undefined;\n externalizeAppSourceModuleDirs?: readonly string[] | undefined;\n filename: string;\n minify?: boolean | undefined;\n modulePreload?: boolean | undefined;\n outfile?: string | undefined;\n platform: \"browser\" | \"node\";\n preserveExports?: boolean | undefined;\n plugins?: readonly RouterCompatPlugin[] | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n sourceMap?: boolean | undefined;\n target?: string | undefined;\n}\n\nexport interface RouterBundleModulesOptions {\n base?: string | undefined;\n define?: Record<string, string> | undefined;\n entries: readonly RouterBundleEntryOptions[];\n minify?: boolean | undefined;\n platform: \"browser\" | \"node\";\n plugins?: readonly RouterCompatPlugin[] | undefined;\n root?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n sourceMap?: boolean | undefined;\n target?: string | undefined;\n}\n\nexport interface RouterBundleEntryOptions {\n code: string;\n filename: string;\n name: string;\n}\n\nexport interface RouterBundleOutput {\n assets?: RouterBundleAssetOutput[] | undefined;\n code: string;\n map?: string | undefined;\n}\n\nexport interface RouterBundleModulesOutput {\n assets?: RouterBundleAssetOutput[] | undefined;\n chunks: RouterBundleChunkOutput[];\n}\n\nexport interface RouterBundleChunkOutput {\n code: string;\n fileName: string;\n imports: string[];\n isEntry: boolean;\n map?: string | undefined;\n name: string;\n}\n\nexport interface RouterBundleAssetOutput {\n fileName: string;\n source: string | Uint8Array;\n}\n\ninterface RouterBundlerChunk {\n code: string;\n fileName: string;\n imports?: string[] | undefined;\n isEntry?: boolean | undefined;\n name?: string | undefined;\n type: \"chunk\";\n}\n\ninterface RouterBundlerAsset {\n fileName: string;\n source: string | Uint8Array;\n type: \"asset\";\n}\n\ninterface RouterBundlerOutput {\n output: Array<RouterBundlerAsset | RouterBundlerChunk>;\n}\n\nexport interface RouterCompatPlugin {\n name: string;\n setup(buildApi: RouterCompatBuildApi): void;\n}\n\nexport interface RouterCompatBuildApi {\n onLoad(\n options: { filter: RegExp; namespace?: string | undefined },\n callback: (args: { path: string }) => RouterCompatLoadResult | Promise<RouterCompatLoadResult>,\n ): void;\n onResolve(\n options: { filter: RegExp },\n callback: (args: {\n importer?: string | undefined;\n path: string;\n resolveDir: string;\n }) => RouterCompatResolveResult | Promise<RouterCompatResolveResult>,\n ): void;\n}\n\nexport type RouterCompatLoadResult =\n | {\n contents: string;\n loader?: string | undefined;\n resolveDir?: string | undefined;\n }\n | undefined;\n\nexport type RouterCompatResolveResult =\n | {\n errors?: Array<{ text: string }> | undefined;\n external?: boolean | undefined;\n namespace?: string | undefined;\n path?: string | undefined;\n }\n | undefined;\n\nconst nodeBuiltinSpecifiers = new Set(builtinModules.flatMap((name) => [name, `node:${name}`]));\n\nexport async function bundleRouterModule(\n options: RouterBundleOptions,\n): Promise<RouterBundleOutput> {\n const entryId = `${options.filename}?mreact-router-entry`;\n const outfile = options.outfile ?? \"entry.js\";\n const config = {\n base: options.base ?? \"/\",\n configFile: false,\n ...(options.define === undefined ? {} : { define: options.define }),\n logLevel: \"silent\",\n plugins: [\n rejectNodeBuiltinsForBrowserPlugin(options.platform),\n mreactJsxRuntimeAliasPlugin(),\n ...(options.vitePlugins ?? []),\n virtualEntryPlugin(entryId, options.code),\n ...(options.externalizeAppSourceModuleDirs === undefined\n ? []\n : [\n externalizeAppSourceModulesPlugin(\n options.filename,\n options.externalizeAppSourceModuleDirs,\n ),\n ]),\n ...(options.plugins ?? []).map(routerCompatPlugin),\n ],\n publicDir: false,\n root: dirname(options.filename),\n ssr: {\n noExternal: true,\n },\n build: {\n emptyOutDir: false,\n lib:\n options.preserveExports === true\n ? {\n entry: entryId,\n fileName: () => outfile,\n formats: [\"es\"],\n }\n : false,\n minify: options.minify === true,\n modulePreload: options.modulePreload ?? true,\n sourcemap: options.sourceMap === true,\n ssr: options.platform === \"node\",\n target: options.target ?? \"es2022\",\n write: false,\n rolldownOptions: {\n input: entryId,\n output: {\n codeSplitting: false,\n entryFileNames: outfile,\n format: \"es\",\n },\n },\n },\n } satisfies InlineConfig;\n const result = await viteBuild(config);\n const output = (Array.isArray(result) ? result[0] : result) as RouterBundlerOutput | undefined;\n\n if (output === undefined || !(\"output\" in output)) {\n throw new Error(`Failed to bundle ${options.filename}: Vite/Rolldown produced no output.`);\n }\n\n const chunk = output.output.find((item): item is RouterBundlerChunk => item.type === \"chunk\");\n const map = output.output.find(\n (item): item is RouterBundlerAsset =>\n item.type === \"asset\" && item.fileName === `${chunk?.fileName ?? outfile}.map`,\n );\n const assets = output.output\n .filter(\n (item): item is RouterBundlerAsset =>\n item.type === \"asset\" && item.fileName !== `${chunk?.fileName ?? outfile}.map`,\n )\n .map((asset) => ({ fileName: asset.fileName, source: asset.source }));\n\n if (chunk === undefined) {\n throw new Error(`Failed to bundle ${options.filename}: Vite/Rolldown produced no chunk.`);\n }\n\n return {\n ...(assets.length === 0 ? {} : { assets }),\n code: stripSourceMappingUrl(chunk.code),\n ...(map !== undefined && typeof map.source === \"string\" ? { map: map.source } : {}),\n };\n}\n\nexport async function bundleRouterModules(\n options: RouterBundleModulesOptions,\n): Promise<RouterBundleModulesOutput> {\n if (options.entries.length === 0) {\n return { chunks: [] };\n }\n\n const entries = new Map(\n options.entries.map((entry) => [\n `${entry.filename}?mreact-router-entry=${encodeURIComponent(entry.name)}`,\n entry,\n ]),\n );\n const input = Object.fromEntries(\n Array.from(entries, ([entryId, entry]) => [entry.name, entryId]),\n );\n const config = {\n base: options.base ?? \"/\",\n configFile: false,\n ...(options.define === undefined ? {} : { define: options.define }),\n logLevel: \"silent\",\n plugins: [\n rejectNodeBuiltinsForBrowserPlugin(options.platform),\n mreactJsxRuntimeAliasPlugin(),\n ...(options.vitePlugins ?? []),\n virtualEntriesPlugin(entries),\n ...(options.plugins ?? []).map(routerCompatPlugin),\n ],\n publicDir: false,\n root: options.root ?? dirname(options.entries[0]?.filename ?? process.cwd()),\n ssr: {\n noExternal: true,\n },\n build: {\n emptyOutDir: false,\n minify: options.minify === true,\n sourcemap: options.sourceMap === true,\n ssr: options.platform === \"node\",\n target: options.target ?? \"es2022\",\n write: false,\n rolldownOptions: {\n input,\n output: {\n chunkFileNames: \"assets/chunks/[name].[hash].js\",\n entryFileNames: \"assets/routes/[name].[hash].js\",\n format: \"es\",\n hashCharacters: \"hex\",\n },\n },\n },\n } satisfies InlineConfig;\n const result = await viteBuild(config);\n const output = (Array.isArray(result) ? result[0] : result) as RouterBundlerOutput | undefined;\n\n if (output === undefined || !(\"output\" in output)) {\n throw new Error(\"Failed to bundle client routes: Vite/Rolldown produced no output.\");\n }\n\n const mapAssets = new Map(\n output.output\n .filter(\n (item): item is RouterBundlerAsset =>\n item.type === \"asset\" && item.fileName.endsWith(\".map\"),\n )\n .flatMap((asset) =>\n typeof asset.source === \"string\" ? [[asset.fileName, asset.source] as const] : [],\n ),\n );\n const chunks = output.output\n .filter((item): item is RouterBundlerChunk => item.type === \"chunk\")\n .map((chunk) => {\n const map = mapAssets.get(`${chunk.fileName}.map`);\n\n return {\n code: stripSourceMappingUrl(chunk.code),\n fileName: chunk.fileName,\n imports: chunk.imports ?? [],\n isEntry: chunk.isEntry === true,\n ...(map === undefined ? {} : { map }),\n name: chunk.name ?? chunk.fileName,\n };\n });\n const assets = output.output\n .filter(\n (item): item is RouterBundlerAsset =>\n item.type === \"asset\" && !item.fileName.endsWith(\".map\"),\n )\n .map((asset) => ({ fileName: asset.fileName, source: asset.source }));\n\n return {\n ...(assets.length === 0 ? {} : { assets }),\n chunks,\n };\n}\n\nfunction mreactJsxRuntimeAliasPlugin(): VitePlugin {\n const runtimePaths = new Map([\n [\n \"react\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"index\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n }),\n ],\n [\n \"react-dom\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"index\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n }),\n ],\n [\n \"react-dom/client\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"index\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n }),\n ],\n [\n \"react-dom/server\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"index\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n }),\n ],\n [\n \"react/jsx-dev-runtime\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"jsx-dev-runtime\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n }),\n ],\n [\n \"react/jsx-runtime\",\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: \"jsx-runtime\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n }),\n ],\n ]);\n\n return {\n name: \"mreact-router-jsx-runtime-alias\",\n enforce: \"pre\",\n resolveId(id) {\n return runtimePaths.get(id);\n },\n };\n}\n\nfunction externalizeAppSourceModulesPlugin(\n entryFilename: string,\n sourceDirs: readonly string[],\n): VitePlugin {\n const normalizedSourceDirs = sourceDirs.map((directory) => resolve(directory));\n\n return {\n name: \"mreact-router-externalize-app-source-modules\",\n enforce: \"pre\",\n async resolveId(id, importer) {\n if (importer === undefined || !isAppSourceImport(id)) {\n return undefined;\n }\n\n const importerPath = cleanViteId(importer);\n const resolved = await resolveAppSourceImport(id, dirname(importerPath));\n\n if (\n resolved === undefined ||\n resolved === entryFilename ||\n !isExternalizableAppSourceModule(resolved) ||\n !isInsideAnyDirectory(normalizedSourceDirs, resolved)\n ) {\n return undefined;\n }\n\n return {\n external: true,\n id: pathToFileURL(resolved).href,\n };\n },\n };\n}\n\nfunction isInsideAnyDirectory(directories: readonly string[], path: string): boolean {\n return directories.some((directory) => path === directory || path.startsWith(`${directory}/`));\n}\n\nfunction isAppSourceImport(id: string): boolean {\n return id.startsWith(\".\") || id.startsWith(\"/\") || isAbsolute(id);\n}\n\nfunction isExternalizableAppSourceModule(path: string): boolean {\n return /\\.(?:[cm]?ts|[cm]?js)$/u.test(path);\n}\n\nasync function resolveAppSourceImport(id: string, resolveDir: string): Promise<string | undefined> {\n const base = isAbsolute(id) ? id : resolve(resolveDir, id);\n const extension = extname(base);\n const candidates =\n extension === \"\"\n ? [\n base,\n `${base}.ts`,\n `${base}.mts`,\n `${base}.cts`,\n `${base}.js`,\n `${base}.mjs`,\n `${base}.cjs`,\n join(base, \"index.ts\"),\n join(base, \"index.mts\"),\n join(base, \"index.cts\"),\n join(base, \"index.js\"),\n join(base, \"index.mjs\"),\n join(base, \"index.cjs\"),\n ]\n : [base];\n\n for (const candidate of candidates) {\n try {\n await access(candidate);\n return candidate;\n } catch {\n continue;\n }\n }\n\n return undefined;\n}\n\nfunction stripSourceMappingUrl(code: string): string {\n return code.replace(/\\n?\\/\\/# sourceMappingURL=[^\\n]+\\.map\\s*$/u, \"\");\n}\n\nfunction virtualEntryPlugin(entryId: string, code: string): VitePlugin {\n return {\n name: \"mreact-router-virtual-entry\",\n enforce: \"pre\",\n resolveId(id) {\n return id === entryId ? entryId : undefined;\n },\n load(id) {\n return id === entryId ? { code, moduleType: moduleTypeForFilename(entryId) } : undefined;\n },\n };\n}\n\nfunction virtualEntriesPlugin(entries: ReadonlyMap<string, RouterBundleEntryOptions>): VitePlugin {\n return {\n name: \"mreact-router-virtual-entries\",\n enforce: \"pre\",\n resolveId(id) {\n return entries.has(id) ? id : undefined;\n },\n load(id) {\n const entry = entries.get(id);\n\n return entry === undefined\n ? undefined\n : { code: entry.code, moduleType: moduleTypeForFilename(id) };\n },\n };\n}\n\nfunction moduleTypeForFilename(filename: string): \"js\" | \"jsx\" | \"ts\" | \"tsx\" {\n const clean = cleanViteId(filename);\n\n if (/\\.(?:mreact\\.)?[cm]?tsx$/u.test(clean) || clean.endsWith(\".jsx\")) {\n return \"tsx\";\n }\n\n if (/\\.(?:mreact\\.)?[cm]?ts$/u.test(clean)) {\n return \"ts\";\n }\n\n return \"js\";\n}\n\nfunction rejectNodeBuiltinsForBrowserPlugin(platform: RouterBundleOptions[\"platform\"]): VitePlugin {\n return {\n name: \"mreact-router-browser-node-builtins\",\n enforce: \"pre\",\n resolveId(id) {\n if (platform === \"browser\" && nodeBuiltinSpecifiers.has(id)) {\n this.error(`Browser build cannot import Node builtin ${JSON.stringify(id)}.`);\n }\n\n return undefined;\n },\n };\n}\n\nfunction routerCompatPlugin(plugin: RouterCompatPlugin): VitePlugin {\n const resolvers: Array<{\n filter: RegExp;\n callback: Parameters<RouterCompatBuildApi[\"onResolve\"]>[1];\n }> = [];\n const loaders: Array<{\n filter: RegExp;\n namespace?: string | undefined;\n callback: Parameters<RouterCompatBuildApi[\"onLoad\"]>[1];\n }> = [];\n\n plugin.setup({\n onLoad(options, callback) {\n loaders.push({ ...options, callback });\n },\n onResolve(options, callback) {\n resolvers.push({ ...options, callback });\n },\n });\n\n return {\n name: plugin.name,\n enforce: \"pre\",\n async resolveId(source, importer) {\n for (const resolver of resolvers) {\n if (!resolver.filter.test(source)) {\n continue;\n }\n\n const resolved = await resolver.callback({\n importer: importer === undefined ? undefined : cleanViteId(importer),\n path: source,\n resolveDir: importer === undefined ? \"\" : dirname(cleanViteId(importer)),\n });\n\n if (resolved === undefined) {\n continue;\n }\n\n if (resolved.errors !== undefined && resolved.errors.length > 0) {\n this.error(resolved.errors.map((error) => error.text).join(\"\\n\"));\n }\n\n if (resolved.path === undefined) {\n continue;\n }\n\n if (resolved.external === true) {\n return { external: true, id: resolved.path };\n }\n\n return resolved.namespace === undefined\n ? resolved.path\n : compatVirtualId(resolved.namespace, resolved.path);\n }\n\n return undefined;\n },\n async load(id) {\n const virtual = parseCompatVirtualId(id);\n const path = virtual?.path ?? cleanViteId(id);\n const namespace = virtual?.namespace;\n\n for (const loader of loaders) {\n if (loader.namespace !== namespace || !loader.filter.test(path)) {\n continue;\n }\n\n const loaded = await loader.callback({ path });\n\n if (loaded !== undefined) {\n return loaded.contents;\n }\n }\n\n return undefined;\n },\n };\n}\n\nfunction compatVirtualId(namespace: string, path: string): string {\n return `\\0mreact-router-compat:${encodeURIComponent(namespace)}:${encodeURIComponent(path)}`;\n}\n\nfunction parseCompatVirtualId(id: string): { namespace: string; path: string } | undefined {\n const prefix = \"\\0mreact-router-compat:\";\n\n if (!id.startsWith(prefix)) {\n return undefined;\n }\n\n const rest = id.slice(prefix.length);\n const separator = rest.indexOf(\":\");\n\n if (separator === -1) {\n return undefined;\n }\n\n return {\n namespace: decodeURIComponent(rest.slice(0, separator)),\n path: decodeURIComponent(rest.slice(separator + 1)),\n };\n}\n\nfunction cleanViteId(id: string): string {\n const withoutPrefix = id.startsWith(\"/@fs/\") ? id.slice(\"/@fs\".length) : id;\n const queryIndex = withoutPrefix.indexOf(\"?\");\n\n return queryIndex === -1 ? withoutPrefix : withoutPrefix.slice(0, queryIndex);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAIA,OAAO,EAML,KAAK,yBAAyB,EAI/B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,EAKL,KAAK,qBAAqB,EAC3B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAIL,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAY5C,OAAO,KAAK,EAAU,YAAY,EAAE,MAAM,MAAM,CAAC;AAIjD,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACtD,sBAAsB,CAAC,EAAE,SAAS,qBAAqB,EAAE,GAAG,SAAS,CAAC;IACtE,uBAAuB,CAAC,EAAE,SAAS,uBAAuB,EAAE,GAAG,SAAS,CAAC;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;IAClD,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,CAAC,EAAE,uBAAuB,EAAE,GAAG,SAAS,CAAC;IAC/C,MAAM,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC3C,MAAM,EAAE,SAAS,gCAAgC,EAAE,CAAC;CACrD;AAED,MAAM,WAAW,gCAAgC;IAC/C,KAAK,EAAE,uBAAuB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACtE,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACjE,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAC3D,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC5D,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC;CACxE;AAED,UAAU,uBAAuB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAOD,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,WAAW,EAAE,8BAA8B,EAAE,CAAC;CAC/C;AAaD,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,0BAA2B,SAAQ,0BAA0B;IAC5E,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;IAChD,uBAAuB,EAAE,uBAAuB,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EACA,OAAO,8CAA8C,GACrD,OAAO,+CAA+C,CAAC;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,QAAA,MAAM,8CAA8C,uDACE,CAAC;AACvD,QAAA,MAAM,+CAA+C,uDACC,CAAC;AAEvD,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,wBAAwB,CAAC,CAqBnC;AAED,wBAAgB,+BAA+B,IAAI,yBAAyB,CAQ3E;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IACjD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD,GAAG,OAAO,CAAC,OAAO,CAAC,CAEnB;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IACpD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAClD,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAwDtC;AAgED,wBAAsB,4BAA4B,CAAC,OAAO,EAAE;IAC1D,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAsKtC;AAuDD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMzD;AA0TD,wBAAsB,8BAA8B,CAAC,OAAO,EAAE;IAC5D,KAAK,EAAE,yBAAyB,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAgBjC;AA2KD,wBAAgB,oCAAoC,CAClD,UAAU,EAAE,8BAA8B,GACzC,MAAM,CAER;AAmRD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUnD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,uBAAuB,CAAC,EAAE,SAAS,uBAAuB,EAAE,GAAG,SAAS,CAAC;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,GAAG,MAAM,CAUT;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAIrF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,uBAAuB,CAAC,EAAE,SAAS,uBAAuB,EAAE,GAAG,SAAS,CAAC;IACzE,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA2BrC;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACtD,sBAAsB,CAAC,EAAE,SAAS,qBAAqB,EAAE,GAAG,SAAS,CAAC;IACtE,uBAAuB,CAAC,EAAE,SAAS,uBAAuB,EAAE,GAAG,SAAS,CAAC;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD,GAAG,OAAO,CAAC,MAAM,CAAC,CAElB;AAED,wBAAsB,4BAA4B,CAChD,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CAChB,GACL,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CASzC;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAoBzC;AAED,wBAAsB,2BAA2B,CAAC,OAAO,EAAE;IACzD,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,MAAM,EAAE,SAAS,6BAA6B,EAAE,CAAC;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAoDvC;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA8oD3B;AAgLD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAKlE;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAKnE"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAIA,OAAO,EAML,KAAK,yBAAyB,EAI/B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,EAKL,KAAK,qBAAqB,EAC3B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAIL,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAY5C,OAAO,KAAK,EAAU,YAAY,EAAE,MAAM,MAAM,CAAC;AAIjD,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACtD,sBAAsB,CAAC,EAAE,SAAS,qBAAqB,EAAE,GAAG,SAAS,CAAC;IACtE,uBAAuB,CAAC,EAAE,SAAS,uBAAuB,EAAE,GAAG,SAAS,CAAC;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;IAClD,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,CAAC,EAAE,uBAAuB,EAAE,GAAG,SAAS,CAAC;IAC/C,MAAM,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC3C,MAAM,EAAE,SAAS,gCAAgC,EAAE,CAAC;CACrD;AAED,MAAM,WAAW,gCAAgC;IAC/C,KAAK,EAAE,uBAAuB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACtE,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACjE,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAC3D,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC5D,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC;CACxE;AAED,UAAU,uBAAuB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAOD,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,WAAW,EAAE,8BAA8B,EAAE,CAAC;CAC/C;AAaD,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,0BAA2B,SAAQ,0BAA0B;IAC5E,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;IAChD,uBAAuB,EAAE,uBAAuB,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EACA,OAAO,8CAA8C,GACrD,OAAO,+CAA+C,CAAC;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,QAAA,MAAM,8CAA8C,uDACE,CAAC;AACvD,QAAA,MAAM,+CAA+C,uDACC,CAAC;AAEvD,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,wBAAwB,CAAC,CAqBnC;AAED,wBAAgB,+BAA+B,IAAI,yBAAyB,CAQ3E;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IACjD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD,GAAG,OAAO,CAAC,OAAO,CAAC,CAEnB;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IACpD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAClD,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAwDtC;AAgED,wBAAsB,4BAA4B,CAAC,OAAO,EAAE;IAC1D,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAsKtC;AAuDD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMzD;AA0TD,wBAAsB,8BAA8B,CAAC,OAAO,EAAE;IAC5D,KAAK,EAAE,yBAAyB,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAgBjC;AAoKD,wBAAgB,oCAAoC,CAClD,UAAU,EAAE,8BAA8B,GACzC,MAAM,CAER;AAgRD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUnD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,uBAAuB,CAAC,EAAE,SAAS,uBAAuB,EAAE,GAAG,SAAS,CAAC;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,GAAG,MAAM,CAUT;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAIrF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,uBAAuB,CAAC,EAAE,SAAS,uBAAuB,EAAE,GAAG,SAAS,CAAC;IACzE,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA2BrC;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACtD,sBAAsB,CAAC,EAAE,SAAS,qBAAqB,EAAE,GAAG,SAAS,CAAC;IACtE,uBAAuB,CAAC,EAAE,SAAS,uBAAuB,EAAE,GAAG,SAAS,CAAC;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD,GAAG,OAAO,CAAC,MAAM,CAAC,CAElB;AAED,wBAAsB,4BAA4B,CAChD,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CAChB,GACL,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CASzC;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAoBzC;AAED,wBAAsB,2BAA2B,CAAC,OAAO,EAAE;IACzD,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,MAAM,EAAE,SAAS,6BAA6B,EAAE,CAAC;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAoDvC;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA6sD3B;AAoLD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAKlE;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAKnE"}
package/dist/client.js CHANGED
@@ -593,14 +593,7 @@ function isStyleModuleSpecifier(source) {
593
593
  const pathname = source.split(/[?#]/u, 1)[0] ?? source;
594
594
  return styleModuleExtensions.has(extname(pathname));
595
595
  }
596
- const styleModuleExtensions = new Set([
597
- ".css",
598
- ".less",
599
- ".sass",
600
- ".scss",
601
- ".styl",
602
- ".stylus",
603
- ]);
596
+ const styleModuleExtensions = new Set([".css", ".less", ".sass", ".scss", ".styl", ".stylus"]);
604
597
  function renderedImportedExportNames(reference, componentRoots) {
605
598
  if (reference.sideEffect) {
606
599
  return undefined;
@@ -1688,6 +1681,7 @@ function __mreactApplyNavigationHtml(html, url) {
1688
1681
 
1689
1682
  __mreactMarkRouteHydrating();
1690
1683
  __mreactSyncHeadMetadata(template.content, html);
1684
+ __mreactUnmountCompatBoundaries(currentMarker);
1691
1685
  __mreactResumeNode(currentMarker, nextMarker);
1692
1686
  ${routeCleanupNavigationDispose} __mreactSyncRouteDataScripts(template.content, currentRouteId, nextRouteId);
1693
1687
 
@@ -2226,12 +2220,19 @@ function __mreactHydrateClientBoundaries(marker, references, components) {
2226
2220
  : JSON.parse(propsElement.textContent);
2227
2221
 
2228
2222
  if (compat) {
2229
- const container = document.createElement("span");
2223
+ const parentContainer = __mreactClientBoundaryParentContainer(placeholder, propsElement);
2224
+ const container = parentContainer ?? document.createElement("span");
2230
2225
  container.setAttribute("data-mreact-compat-boundary", name ?? "");
2231
- container.style.display = "contents";
2232
- placeholder.replaceWith(container);
2233
- __mreactCompatCreateRoot(container).render(__mreactCompatCreateElement(component, props));
2226
+ if (parentContainer === null) {
2227
+ container.style.display = "contents";
2228
+ placeholder.replaceWith(container);
2229
+ } else {
2230
+ placeholder.remove();
2231
+ }
2234
2232
  propsElement?.remove();
2233
+ const root = __mreactCompatCreateRoot(container);
2234
+ container.__mreactCompatRoot = root;
2235
+ root.render(__mreactCompatCreateElement(component, props));
2235
2236
  continue;
2236
2237
  }
2237
2238
 
@@ -2244,6 +2245,54 @@ function __mreactHydrateClientBoundaries(marker, references, components) {
2244
2245
  return true;
2245
2246
  }
2246
2247
 
2248
+ function __mreactClientBoundaryParentContainer(placeholder, propsElement) {
2249
+ const parent = placeholder.parentElement;
2250
+
2251
+ if (parent === null) {
2252
+ return null;
2253
+ }
2254
+
2255
+ for (const node of Array.from(parent.childNodes)) {
2256
+ if (node === placeholder || node === propsElement) {
2257
+ continue;
2258
+ }
2259
+
2260
+ if (node.nodeType === Node.TEXT_NODE && (node.textContent ?? "").trim() === "") {
2261
+ continue;
2262
+ }
2263
+
2264
+ return null;
2265
+ }
2266
+
2267
+ return parent;
2268
+ }
2269
+
2270
+ function __mreactUnmountCompatBoundaries(root) {
2271
+ const containers = [];
2272
+
2273
+ if (
2274
+ root.nodeType === Node.ELEMENT_NODE &&
2275
+ root.hasAttribute("data-mreact-compat-boundary")
2276
+ ) {
2277
+ containers.push(root);
2278
+ }
2279
+
2280
+ if (typeof root.querySelectorAll === "function") {
2281
+ containers.push(...root.querySelectorAll("[data-mreact-compat-boundary]"));
2282
+ }
2283
+
2284
+ for (const container of containers) {
2285
+ const compatRoot = container.__mreactCompatRoot;
2286
+
2287
+ if (compatRoot === undefined || typeof compatRoot.unmount !== "function") {
2288
+ continue;
2289
+ }
2290
+
2291
+ compatRoot.unmount();
2292
+ container.__mreactCompatRoot = undefined;
2293
+ }
2294
+ }
2295
+
2247
2296
  function __mreactHasNonSerializableClientBoundaries(marker) {
2248
2297
  return marker.querySelector(
2249
2298
  'template[data-mreact-client-boundary][data-mreact-client-boundary-nonserializable="true"]',
@@ -2350,6 +2399,7 @@ function __mreactResumeNode(current, next) {
2350
2399
  }
2351
2400
 
2352
2401
  if (__mreactShouldReplaceNode(current, next)) {
2402
+ __mreactUnmountCompatBoundaries(current);
2353
2403
  current.replaceWith(next);
2354
2404
  return;
2355
2405
  }
@@ -2362,6 +2412,7 @@ function __mreactResumeNode(current, next) {
2362
2412
  }
2363
2413
 
2364
2414
  if (current.nodeType !== Node.ELEMENT_NODE || next.nodeType !== Node.ELEMENT_NODE) {
2415
+ __mreactUnmountCompatBoundaries(current);
2365
2416
  current.replaceWith(next);
2366
2417
  return;
2367
2418
  }
@@ -2642,7 +2693,12 @@ function __mreactResumeChildren(current, next) {
2642
2693
  }
2643
2694
 
2644
2695
  while (current.childNodes.length > nextChildren.length) {
2645
- current.lastChild?.remove();
2696
+ const lastChild = current.lastChild;
2697
+ if (lastChild === null) {
2698
+ break;
2699
+ }
2700
+ __mreactUnmountCompatBoundaries(lastChild);
2701
+ lastChild.remove();
2646
2702
  }
2647
2703
  }
2648
2704
  `;
@@ -2671,6 +2727,15 @@ function workspaceRuntimePlugin(options) {
2671
2727
  "@reckona/mreact-compat",
2672
2728
  ];
2673
2729
  const runtimePaths = new Map([
2730
+ ["react", reactCompatPath],
2731
+ ["react-dom", reactCompatPath],
2732
+ ["react-dom/client", reactCompatPath],
2733
+ ["react-dom/server", reactCompatPath],
2734
+ [
2735
+ "react/jsx-dev-runtime",
2736
+ packageFile("react-compat", "@reckona/mreact-compat", "jsx-dev-runtime"),
2737
+ ],
2738
+ ["react/jsx-runtime", packageFile("react-compat", "@reckona/mreact-compat", "jsx-runtime")],
2674
2739
  [
2675
2740
  "@reckona/mreact-reactive-core/internal",
2676
2741
  packageFile("reactive-core", "@reckona/mreact-reactive-core", "internal"),
@@ -2700,10 +2765,7 @@ function workspaceRuntimePlugin(options) {
2700
2765
  "@reckona/mreact-compat/scheduler",
2701
2766
  packageFile("react-compat", "@reckona/mreact-compat", "scheduler"),
2702
2767
  ],
2703
- [
2704
- "@reckona/mreact-reactive-dom",
2705
- reactiveDomPath,
2706
- ],
2768
+ ["@reckona/mreact-reactive-dom", reactiveDomPath],
2707
2769
  ]);
2708
2770
  return {
2709
2771
  name: "mreact-workspace-runtime",
@@ -2721,7 +2783,7 @@ function workspaceRuntimePlugin(options) {
2721
2783
  };
2722
2784
  });
2723
2785
  buildApi.onResolve({
2724
- filter: /^@reckona\/mreact-(?:compat|reactive-core|reactive-dom)(?:\/(?:event-priority|flight|internal|jsx-dev-runtime|jsx-runtime|scheduler))?$/,
2786
+ filter: /^(?:react(?:\/jsx-(?:dev-)?runtime)?|react-dom(?:\/(?:client|server))?|@reckona\/mreact-(?:compat|reactive-core|reactive-dom)(?:\/(?:event-priority|flight|internal|jsx-dev-runtime|jsx-runtime|scheduler))?)$/,
2725
2787
  }, (args) => {
2726
2788
  const path = runtimePaths.get(args.path);
2727
2789
  return path === undefined ? undefined : { path };
@@ -2816,8 +2878,7 @@ function detectRouteCellStateHint(code) {
2816
2878
  : new RegExp(`(?:${callExpression})\\s*\\(`).test(code);
2817
2879
  }
2818
2880
  function detectRouteReactiveEffectHint(code) {
2819
- return (/from\s+["']@reckona\/mreact-reactive-core["']/.test(code) &&
2820
- /\beffect\s*\(/.test(code));
2881
+ return /from\s+["']@reckona\/mreact-reactive-core["']/.test(code) && /\beffect\s*\(/.test(code);
2821
2882
  }
2822
2883
  async function inferClientReferenceManifestForBundle(options) {
2823
2884
  const cache = createClientRouteInferenceCache();