@reckona/mreact-router 0.0.156 → 0.0.158
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.
- package/README.md +1 -1
- package/dist/build.d.ts +1 -0
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +62 -42
- package/dist/build.js.map +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +8 -0
- package/dist/client.js.map +1 -1
- package/dist/import-policy.d.ts +1 -0
- package/dist/import-policy.d.ts.map +1 -1
- package/dist/import-policy.js +6 -4
- package/dist/import-policy.js.map +1 -1
- package/dist/render.d.ts +1 -0
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +6 -1
- package/dist/render.js.map +1 -1
- package/package.json +11 -11
- package/src/build.ts +66 -32
- package/src/client.ts +8 -0
- package/src/import-policy.ts +7 -4
- package/src/render.ts +8 -3
package/dist/import-policy.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export interface AppRouterImportPolicy {
|
|
|
6
6
|
export interface AppRouterImportPolicyPluginOptions {
|
|
7
7
|
allowedSourceDirs?: readonly string[] | undefined;
|
|
8
8
|
appDir: string;
|
|
9
|
+
externalizeAllowedPackages?: boolean | undefined;
|
|
9
10
|
importPolicy?: AppRouterImportPolicy | undefined;
|
|
10
11
|
label: string;
|
|
11
12
|
projectRoot?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-policy.d.ts","sourceRoot":"","sources":["../src/import-policy.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,qBAAqB;IACpC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAChD,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAClD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,kCAAkC;IACjD,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,kCAAkC;;oBAiBzE;QACd,SAAS,CACP,OAAO,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,EAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE;YACf,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,EAAE,MAAM,CAAC;SACpB,KAAK;YAAE,MAAM,CAAC,EAAE,KAAK,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;YAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS,GACxF,IAAI,CAAC;KACT;
|
|
1
|
+
{"version":3,"file":"import-policy.d.ts","sourceRoot":"","sources":["../src/import-policy.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,qBAAqB;IACpC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAChD,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAClD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,kCAAkC;IACjD,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjD,YAAY,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,kCAAkC;;oBAiBzE;QACd,SAAS,CACP,OAAO,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,EAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE;YACf,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,EAAE,MAAM,CAAC;SACpB,KAAK;YAAE,MAAM,CAAC,EAAE,KAAK,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;YAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS,GACxF,IAAI,CAAC;KACT;EAoEJ"}
|
package/dist/import-policy.js
CHANGED
|
@@ -69,10 +69,12 @@ export function createAppRouterImportPolicyPlugin(options) {
|
|
|
69
69
|
if (resolvedPackage === undefined) {
|
|
70
70
|
return undefined;
|
|
71
71
|
}
|
|
72
|
-
return
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
return options.externalizeAllowedPackages === false
|
|
73
|
+
? undefined
|
|
74
|
+
: {
|
|
75
|
+
external: true,
|
|
76
|
+
path: pathToFileURL(resolvedPackage).href,
|
|
77
|
+
};
|
|
76
78
|
});
|
|
77
79
|
},
|
|
78
80
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-policy.js","sourceRoot":"","sources":["../src/import-policy.ts"],"names":[],"mappings":"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","sourcesContent":["import { builtinModules, createRequire } from \"node:module\";\nimport { dirname, join, relative, resolve, sep } from \"node:path\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\nimport { resolveWorkspacePackageFile } from \"./workspace-packages.js\";\n\nconst builtinModuleNames = new Set(builtinModules.flatMap((name) => [name, `node:${name}`]));\nconst alwaysAllowedPackages = new Set([\n \"@reckona/mreact\",\n \"@reckona/mreact-auth\",\n \"@reckona/mreact-query\",\n \"@reckona/mreact-reactive-core\",\n \"@reckona/mreact-router\",\n]);\n\nexport interface AppRouterImportPolicy {\n allowedPackages?: readonly string[] | undefined;\n allowedSourceDirs?: readonly string[] | undefined;\n projectRoot?: string | undefined;\n}\n\nexport interface AppRouterImportPolicyPluginOptions {\n allowedSourceDirs?: readonly string[] | undefined;\n appDir: string;\n importPolicy?: AppRouterImportPolicy | undefined;\n label: string;\n projectRoot?: string | undefined;\n}\n\nexport function createAppRouterImportPolicyPlugin(options: AppRouterImportPolicyPluginOptions) {\n const projectRoot = resolve(\n options.importPolicy?.projectRoot ?? options.projectRoot ?? options.appDir,\n );\n const configuredAllowedSourceDirs =\n options.importPolicy?.allowedSourceDirs ?? options.allowedSourceDirs;\n const allowedSourceDirs = (configuredAllowedSourceDirs ?? [options.appDir]).map((directory) =>\n resolve(projectRoot, directory),\n );\n const allowedPackages = new Set([\n ...alwaysAllowedPackages,\n ...(options.importPolicy?.allowedPackages ?? []),\n ]);\n const customAllowedSourceDirs = configuredAllowedSourceDirs !== undefined;\n\n return {\n name: `mreact-router-${options.label}-import-policy`,\n setup(buildApi: {\n onResolve(\n options: { filter: RegExp },\n callback: (args: {\n path: string;\n resolveDir: string;\n }) => { errors?: Array<{ text: string }>; external?: boolean; path?: string } | undefined,\n ): void;\n }) {\n buildApi.onResolve({ filter: /.*/ }, (args) => {\n if (isRelativeImport(args.path)) {\n const baseDir = args.resolveDir === \"\" ? options.appDir : args.resolveDir;\n if (!isInsideAnyDirectory(allowedSourceDirs, baseDir)) {\n return undefined;\n }\n\n const resolvedPath = resolve(baseDir, args.path);\n\n return !isInsideDirectory(projectRoot, resolvedPath) ||\n !isInsideAnyDirectory(allowedSourceDirs, resolvedPath)\n ? {\n errors: [\n {\n text: customAllowedSourceDirs\n ? `${options.label} imports must stay inside allowed source directories: ${args.path}`\n : `${options.label} imports must stay inside the app directory: ${args.path}`,\n },\n ],\n }\n : undefined;\n }\n\n if (isAbsoluteOrProtocolImport(args.path)) {\n return undefined;\n }\n\n if (builtinModuleNames.has(args.path)) {\n return { external: true, path: args.path };\n }\n\n const workspacePath = workspacePackagePath(args.path, args.resolveDir);\n if (workspacePath !== undefined) {\n return { path: workspacePath };\n }\n\n if (args.resolveDir !== \"\" && !isInsideAnyDirectory(allowedSourceDirs, args.resolveDir)) {\n return undefined;\n }\n\n const packageName = packageNameForSpecifier(args.path);\n\n if (!allowedPackages.has(packageName)) {\n return {\n errors: [\n {\n text: importPolicyPackageError(options.label, packageName),\n },\n ],\n };\n }\n\n const resolvedPackage = resolvePackageSpecifier(args.path, args.resolveDir, options.appDir);\n\n if (resolvedPackage === undefined) {\n return undefined;\n }\n\n return {\n external: true,\n path: pathToFileURL(resolvedPackage).href,\n };\n });\n },\n };\n}\n\nfunction resolvePackageSpecifier(\n specifier: string,\n resolveDir: string,\n appDir: string,\n): string | undefined {\n const baseDir = resolveDir === \"\" ? appDir : resolveDir;\n\n try {\n return createRequire(join(baseDir, \"__mreact_resolve__.cjs\")).resolve(specifier);\n } catch {\n return undefined;\n }\n}\n\nfunction importPolicyPackageError(label: string, packageName: string): string {\n const normalizedLabel = label.toLowerCase();\n const moduleKind =\n normalizedLabel.includes(\"loader\") ||\n normalizedLabel.includes(\"middleware\") ||\n normalizedLabel.includes(\"route\") ||\n normalizedLabel.includes(\"metadata\") ||\n normalizedLabel.includes(\"action\")\n ? normalizedLabel\n : `${normalizedLabel} module`;\n const aliasHint =\n packageName === \"~\" || packageName === \"@\"\n ? [\n \"\",\n 'This looks like an app-local alias import. Use a relative import such as \"./\" or \"../\" in server-side route code, or move the import behind a supported client boundary.',\n ]\n : [];\n\n return [\n `\"${packageName}\" is imported by a ${moduleKind} but is not allowed by the app-router import policy.`,\n \"\",\n \"The policy blocks server-side static imports from loader, middleware, route handler, metadata, and server action modules unless the package is explicitly allowed.\",\n ...aliasHint,\n \"\",\n \"Allow it in the Vite plugin config:\",\n \" mreactRouter({\",\n ` importPolicy: { allowedPackages: [${JSON.stringify(packageName)}] },`,\n \" })\",\n \"\",\n \"For production builds, also declare the package in package.json dependencies so mreact-router build can derive the generated policy and the package is installed in the runtime artifact.\",\n ].join(\"\\n\");\n}\n\nfunction workspacePackagePath(specifier: string, resolveDir: string): string | undefined {\n const currentDir = dirname(fileURLToPath(import.meta.url));\n const packageRoot = dirname(currentDir);\n const entries = new Map<\n string,\n string | { entry: string; monorepoDir: string; packageName: string }\n >([\n [\n \"@reckona/mreact-auth\",\n { entry: \"index\", monorepoDir: \"auth\", packageName: \"@reckona/mreact-auth\" },\n ],\n [\n \"@reckona/mreact-compiler\",\n { entry: \"index\", monorepoDir: \"compiler\", packageName: \"@reckona/mreact-compiler\" },\n ],\n [\n \"@reckona/mreact-query\",\n { entry: \"index\", monorepoDir: \"query\", packageName: \"@reckona/mreact-query\" },\n ],\n [\n \"@reckona/mreact-reactive-core\",\n {\n entry: \"index\",\n monorepoDir: \"reactive-core\",\n packageName: \"@reckona/mreact-reactive-core\",\n },\n ],\n [\n \"@reckona/mreact-router\",\n join(packageRoot, currentDir.endsWith(`${sep}dist`) ? \"dist/index.js\" : \"src/index.ts\"),\n ],\n [\n \"@reckona/mreact-router/app-router-globals\",\n join(\n packageRoot,\n currentDir.endsWith(`${sep}dist`)\n ? \"dist/app-router-globals.js\"\n : \"src/app-router-globals.ts\",\n ),\n ],\n [\n \"@reckona/mreact-router/link\",\n join(packageRoot, currentDir.endsWith(`${sep}dist`) ? \"dist/link.js\" : \"src/link.ts\"),\n ],\n [\n \"@reckona/mreact-router/navigation-state\",\n join(\n packageRoot,\n currentDir.endsWith(`${sep}dist`) ? \"dist/navigation-state.js\" : \"src/navigation-state.ts\",\n ),\n ],\n [\n \"@reckona/mreact-router/stream-list\",\n join(\n packageRoot,\n currentDir.endsWith(`${sep}dist`) ? \"dist/stream-list.js\" : \"src/stream-list.ts\",\n ),\n ],\n [\n \"@reckona/mreact-server\",\n { entry: \"index\", monorepoDir: \"server\", packageName: \"@reckona/mreact-server\" },\n ],\n ]);\n const entry = entries.get(specifier);\n\n if (entry === undefined || typeof entry === \"string\") {\n return entry;\n }\n\n return resolveWorkspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: entry.entry,\n monorepoDir: entry.monorepoDir,\n packageName: entry.packageName,\n resolveDir,\n specifier,\n });\n}\n\nfunction isRelativeImport(path: string): boolean {\n return path === \".\" || path === \"..\" || path.startsWith(\"./\") || path.startsWith(\"../\");\n}\n\nfunction isAbsoluteOrProtocolImport(path: string): boolean {\n return path.startsWith(\"/\") || /^[A-Za-z][A-Za-z0-9+.-]*:/.test(path);\n}\n\nfunction packageNameForSpecifier(specifier: string): string {\n if (!specifier.startsWith(\"@\")) {\n return specifier.split(\"/\")[0] ?? specifier;\n }\n\n const [scope, name] = specifier.split(\"/\");\n\n return scope !== undefined && name !== undefined ? `${scope}/${name}` : specifier;\n}\n\nfunction isInsideDirectory(directory: string, candidate: string): boolean {\n const relativePath = relative(directory, candidate);\n\n return relativePath === \"\" || (!relativePath.startsWith(\"..\") && !relativePath.startsWith(sep));\n}\n\nfunction isInsideAnyDirectory(directories: readonly string[], candidate: string): boolean {\n return directories.some((directory) => isInsideDirectory(directory, candidate));\n}\n"]}
|
|
1
|
+
{"version":3,"file":"import-policy.js","sourceRoot":"","sources":["../src/import-policy.ts"],"names":[],"mappings":"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","sourcesContent":["import { builtinModules, createRequire } from \"node:module\";\nimport { dirname, join, relative, resolve, sep } from \"node:path\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\nimport { resolveWorkspacePackageFile } from \"./workspace-packages.js\";\n\nconst builtinModuleNames = new Set(builtinModules.flatMap((name) => [name, `node:${name}`]));\nconst alwaysAllowedPackages = new Set([\n \"@reckona/mreact\",\n \"@reckona/mreact-auth\",\n \"@reckona/mreact-query\",\n \"@reckona/mreact-reactive-core\",\n \"@reckona/mreact-router\",\n]);\n\nexport interface AppRouterImportPolicy {\n allowedPackages?: readonly string[] | undefined;\n allowedSourceDirs?: readonly string[] | undefined;\n projectRoot?: string | undefined;\n}\n\nexport interface AppRouterImportPolicyPluginOptions {\n allowedSourceDirs?: readonly string[] | undefined;\n appDir: string;\n externalizeAllowedPackages?: boolean | undefined;\n importPolicy?: AppRouterImportPolicy | undefined;\n label: string;\n projectRoot?: string | undefined;\n}\n\nexport function createAppRouterImportPolicyPlugin(options: AppRouterImportPolicyPluginOptions) {\n const projectRoot = resolve(\n options.importPolicy?.projectRoot ?? options.projectRoot ?? options.appDir,\n );\n const configuredAllowedSourceDirs =\n options.importPolicy?.allowedSourceDirs ?? options.allowedSourceDirs;\n const allowedSourceDirs = (configuredAllowedSourceDirs ?? [options.appDir]).map((directory) =>\n resolve(projectRoot, directory),\n );\n const allowedPackages = new Set([\n ...alwaysAllowedPackages,\n ...(options.importPolicy?.allowedPackages ?? []),\n ]);\n const customAllowedSourceDirs = configuredAllowedSourceDirs !== undefined;\n\n return {\n name: `mreact-router-${options.label}-import-policy`,\n setup(buildApi: {\n onResolve(\n options: { filter: RegExp },\n callback: (args: {\n path: string;\n resolveDir: string;\n }) => { errors?: Array<{ text: string }>; external?: boolean; path?: string } | undefined,\n ): void;\n }) {\n buildApi.onResolve({ filter: /.*/ }, (args) => {\n if (isRelativeImport(args.path)) {\n const baseDir = args.resolveDir === \"\" ? options.appDir : args.resolveDir;\n if (!isInsideAnyDirectory(allowedSourceDirs, baseDir)) {\n return undefined;\n }\n\n const resolvedPath = resolve(baseDir, args.path);\n\n return !isInsideDirectory(projectRoot, resolvedPath) ||\n !isInsideAnyDirectory(allowedSourceDirs, resolvedPath)\n ? {\n errors: [\n {\n text: customAllowedSourceDirs\n ? `${options.label} imports must stay inside allowed source directories: ${args.path}`\n : `${options.label} imports must stay inside the app directory: ${args.path}`,\n },\n ],\n }\n : undefined;\n }\n\n if (isAbsoluteOrProtocolImport(args.path)) {\n return undefined;\n }\n\n if (builtinModuleNames.has(args.path)) {\n return { external: true, path: args.path };\n }\n\n const workspacePath = workspacePackagePath(args.path, args.resolveDir);\n if (workspacePath !== undefined) {\n return { path: workspacePath };\n }\n\n if (args.resolveDir !== \"\" && !isInsideAnyDirectory(allowedSourceDirs, args.resolveDir)) {\n return undefined;\n }\n\n const packageName = packageNameForSpecifier(args.path);\n\n if (!allowedPackages.has(packageName)) {\n return {\n errors: [\n {\n text: importPolicyPackageError(options.label, packageName),\n },\n ],\n };\n }\n\n const resolvedPackage = resolvePackageSpecifier(args.path, args.resolveDir, options.appDir);\n\n if (resolvedPackage === undefined) {\n return undefined;\n }\n\n return options.externalizeAllowedPackages === false\n ? undefined\n : {\n external: true,\n path: pathToFileURL(resolvedPackage).href,\n };\n });\n },\n };\n}\n\nfunction resolvePackageSpecifier(\n specifier: string,\n resolveDir: string,\n appDir: string,\n): string | undefined {\n const baseDir = resolveDir === \"\" ? appDir : resolveDir;\n\n try {\n return createRequire(join(baseDir, \"__mreact_resolve__.cjs\")).resolve(specifier);\n } catch {\n return undefined;\n }\n}\n\nfunction importPolicyPackageError(label: string, packageName: string): string {\n const normalizedLabel = label.toLowerCase();\n const moduleKind =\n normalizedLabel.includes(\"loader\") ||\n normalizedLabel.includes(\"middleware\") ||\n normalizedLabel.includes(\"route\") ||\n normalizedLabel.includes(\"metadata\") ||\n normalizedLabel.includes(\"action\")\n ? normalizedLabel\n : `${normalizedLabel} module`;\n const aliasHint =\n packageName === \"~\" || packageName === \"@\"\n ? [\n \"\",\n 'This looks like an app-local alias import. Use a relative import such as \"./\" or \"../\" in server-side route code, or move the import behind a supported client boundary.',\n ]\n : [];\n\n return [\n `\"${packageName}\" is imported by a ${moduleKind} but is not allowed by the app-router import policy.`,\n \"\",\n \"The policy blocks server-side static imports from loader, middleware, route handler, metadata, and server action modules unless the package is explicitly allowed.\",\n ...aliasHint,\n \"\",\n \"Allow it in the Vite plugin config:\",\n \" mreactRouter({\",\n ` importPolicy: { allowedPackages: [${JSON.stringify(packageName)}] },`,\n \" })\",\n \"\",\n \"For production builds, also declare the package in package.json dependencies so mreact-router build can derive the generated policy and the package is installed in the runtime artifact.\",\n ].join(\"\\n\");\n}\n\nfunction workspacePackagePath(specifier: string, resolveDir: string): string | undefined {\n const currentDir = dirname(fileURLToPath(import.meta.url));\n const packageRoot = dirname(currentDir);\n const entries = new Map<\n string,\n string | { entry: string; monorepoDir: string; packageName: string }\n >([\n [\n \"@reckona/mreact-auth\",\n { entry: \"index\", monorepoDir: \"auth\", packageName: \"@reckona/mreact-auth\" },\n ],\n [\n \"@reckona/mreact-compiler\",\n { entry: \"index\", monorepoDir: \"compiler\", packageName: \"@reckona/mreact-compiler\" },\n ],\n [\n \"@reckona/mreact-query\",\n { entry: \"index\", monorepoDir: \"query\", packageName: \"@reckona/mreact-query\" },\n ],\n [\n \"@reckona/mreact-reactive-core\",\n {\n entry: \"index\",\n monorepoDir: \"reactive-core\",\n packageName: \"@reckona/mreact-reactive-core\",\n },\n ],\n [\n \"@reckona/mreact-router\",\n join(packageRoot, currentDir.endsWith(`${sep}dist`) ? \"dist/index.js\" : \"src/index.ts\"),\n ],\n [\n \"@reckona/mreact-router/app-router-globals\",\n join(\n packageRoot,\n currentDir.endsWith(`${sep}dist`)\n ? \"dist/app-router-globals.js\"\n : \"src/app-router-globals.ts\",\n ),\n ],\n [\n \"@reckona/mreact-router/link\",\n join(packageRoot, currentDir.endsWith(`${sep}dist`) ? \"dist/link.js\" : \"src/link.ts\"),\n ],\n [\n \"@reckona/mreact-router/navigation-state\",\n join(\n packageRoot,\n currentDir.endsWith(`${sep}dist`) ? \"dist/navigation-state.js\" : \"src/navigation-state.ts\",\n ),\n ],\n [\n \"@reckona/mreact-router/stream-list\",\n join(\n packageRoot,\n currentDir.endsWith(`${sep}dist`) ? \"dist/stream-list.js\" : \"src/stream-list.ts\",\n ),\n ],\n [\n \"@reckona/mreact-server\",\n { entry: \"index\", monorepoDir: \"server\", packageName: \"@reckona/mreact-server\" },\n ],\n ]);\n const entry = entries.get(specifier);\n\n if (entry === undefined || typeof entry === \"string\") {\n return entry;\n }\n\n return resolveWorkspacePackageFile({\n currentFileUrl: import.meta.url,\n entry: entry.entry,\n monorepoDir: entry.monorepoDir,\n packageName: entry.packageName,\n resolveDir,\n specifier,\n });\n}\n\nfunction isRelativeImport(path: string): boolean {\n return path === \".\" || path === \"..\" || path.startsWith(\"./\") || path.startsWith(\"../\");\n}\n\nfunction isAbsoluteOrProtocolImport(path: string): boolean {\n return path.startsWith(\"/\") || /^[A-Za-z][A-Za-z0-9+.-]*:/.test(path);\n}\n\nfunction packageNameForSpecifier(specifier: string): string {\n if (!specifier.startsWith(\"@\")) {\n return specifier.split(\"/\")[0] ?? specifier;\n }\n\n const [scope, name] = specifier.split(\"/\");\n\n return scope !== undefined && name !== undefined ? `${scope}/${name}` : specifier;\n}\n\nfunction isInsideDirectory(directory: string, candidate: string): boolean {\n const relativePath = relative(directory, candidate);\n\n return relativePath === \"\" || (!relativePath.startsWith(\"..\") && !relativePath.startsWith(sep));\n}\n\nfunction isInsideAnyDirectory(directories: readonly string[], candidate: string): boolean {\n return directories.some((directory) => isInsideDirectory(directory, candidate));\n}\n"]}
|
package/dist/render.d.ts
CHANGED
|
@@ -90,6 +90,7 @@ export declare function bundleMiddlewareModuleCode(options: {
|
|
|
90
90
|
appDir: string;
|
|
91
91
|
code: string;
|
|
92
92
|
define?: UserConfig["define"] | undefined;
|
|
93
|
+
externalizeAllowedPackages?: boolean | undefined;
|
|
93
94
|
file: string;
|
|
94
95
|
importPolicy?: AppRouterImportPolicy | undefined;
|
|
95
96
|
vitePlugins?: readonly PluginOption[] | undefined;
|
package/dist/render.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
package/dist/render.js
CHANGED
|
@@ -1671,6 +1671,7 @@ export async function bundleMiddlewareModuleCode(options) {
|
|
|
1671
1671
|
fileImportMetaUrlPlugin(),
|
|
1672
1672
|
createAppRouterImportPolicyPlugin({
|
|
1673
1673
|
appDir: options.appDir,
|
|
1674
|
+
externalizeAllowedPackages: options.externalizeAllowedPackages,
|
|
1674
1675
|
importPolicy: options.importPolicy,
|
|
1675
1676
|
label: "Middleware",
|
|
1676
1677
|
}),
|
|
@@ -2187,7 +2188,11 @@ async function renderVisibleOutOfOrderFragment(sink, id, value, render, options)
|
|
|
2187
2188
|
const fragmentSink = createStringSink();
|
|
2188
2189
|
await renderAsyncBoundary(fragmentSink, value, render, options.catch === undefined ? {} : { catch: options.catch });
|
|
2189
2190
|
await fragmentSink.drain();
|
|
2190
|
-
sink.append(
|
|
2191
|
+
sink.append(renderVisibleOutOfOrderFragmentHtml(id, fragmentSink.toString()));
|
|
2192
|
+
}
|
|
2193
|
+
function renderVisibleOutOfOrderFragmentHtml(id, html) {
|
|
2194
|
+
const escapedId = escapeHtmlAttribute(id);
|
|
2195
|
+
return `<template data-mreact-oob-fragment="${escapedId}">${html}</template><mreact-oob-complete hidden data-mreact-oob-complete="${escapedId}"></mreact-oob-complete>`;
|
|
2191
2196
|
}
|
|
2192
2197
|
async function appendServerStreamModule(code, sink, props, sourcefile, serverModules, serverModuleCacheVersion, define, vitePlugins, importPolicy) {
|
|
2193
2198
|
const module = await loadServerStreamModule(code, sourcefile, serverModules, serverModuleCacheVersion, define, vitePlugins, importPolicy);
|