@reckona/mreact-router 0.0.1

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.
Files changed (139) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +101 -0
  3. package/dist/actions.d.ts +43 -0
  4. package/dist/actions.d.ts.map +1 -0
  5. package/dist/actions.js +577 -0
  6. package/dist/actions.js.map +1 -0
  7. package/dist/adapters/aws-lambda.d.ts +45 -0
  8. package/dist/adapters/aws-lambda.d.ts.map +1 -0
  9. package/dist/adapters/aws-lambda.js +168 -0
  10. package/dist/adapters/aws-lambda.js.map +1 -0
  11. package/dist/adapters/cloudflare.d.ts +94 -0
  12. package/dist/adapters/cloudflare.d.ts.map +1 -0
  13. package/dist/adapters/cloudflare.js +390 -0
  14. package/dist/adapters/cloudflare.js.map +1 -0
  15. package/dist/adapters/devtools.d.ts +4 -0
  16. package/dist/adapters/devtools.d.ts.map +1 -0
  17. package/dist/adapters/devtools.js +5 -0
  18. package/dist/adapters/devtools.js.map +1 -0
  19. package/dist/adapters/edge.d.ts +9 -0
  20. package/dist/adapters/edge.d.ts.map +1 -0
  21. package/dist/adapters/edge.js +53 -0
  22. package/dist/adapters/edge.js.map +1 -0
  23. package/dist/adapters/node.d.ts +26 -0
  24. package/dist/adapters/node.d.ts.map +1 -0
  25. package/dist/adapters/node.js +64 -0
  26. package/dist/adapters/node.js.map +1 -0
  27. package/dist/adapters/static.d.ts +10 -0
  28. package/dist/adapters/static.d.ts.map +1 -0
  29. package/dist/adapters/static.js +34 -0
  30. package/dist/adapters/static.js.map +1 -0
  31. package/dist/assets.d.ts +18 -0
  32. package/dist/assets.d.ts.map +1 -0
  33. package/dist/assets.js +67 -0
  34. package/dist/assets.js.map +1 -0
  35. package/dist/build.d.ts +36 -0
  36. package/dist/build.d.ts.map +1 -0
  37. package/dist/build.js +322 -0
  38. package/dist/build.js.map +1 -0
  39. package/dist/cache.d.ts +54 -0
  40. package/dist/cache.d.ts.map +1 -0
  41. package/dist/cache.js +221 -0
  42. package/dist/cache.js.map +1 -0
  43. package/dist/cli.d.ts +3 -0
  44. package/dist/cli.d.ts.map +1 -0
  45. package/dist/cli.js +37 -0
  46. package/dist/cli.js.map +1 -0
  47. package/dist/client.d.ts +105 -0
  48. package/dist/client.d.ts.map +1 -0
  49. package/dist/client.js +1268 -0
  50. package/dist/client.js.map +1 -0
  51. package/dist/config.d.ts +27 -0
  52. package/dist/config.d.ts.map +1 -0
  53. package/dist/config.js +44 -0
  54. package/dist/config.js.map +1 -0
  55. package/dist/cookies.d.ts +14 -0
  56. package/dist/cookies.d.ts.map +1 -0
  57. package/dist/cookies.js +69 -0
  58. package/dist/cookies.js.map +1 -0
  59. package/dist/csp.d.ts +6 -0
  60. package/dist/csp.d.ts.map +1 -0
  61. package/dist/csp.js +70 -0
  62. package/dist/csp.js.map +1 -0
  63. package/dist/dev-server.d.ts +16 -0
  64. package/dist/dev-server.d.ts.map +1 -0
  65. package/dist/dev-server.js +103 -0
  66. package/dist/dev-server.js.map +1 -0
  67. package/dist/http.d.ts +23 -0
  68. package/dist/http.d.ts.map +1 -0
  69. package/dist/http.js +106 -0
  70. package/dist/http.js.map +1 -0
  71. package/dist/i18n.d.ts +15 -0
  72. package/dist/i18n.d.ts.map +1 -0
  73. package/dist/i18n.js +61 -0
  74. package/dist/i18n.js.map +1 -0
  75. package/dist/import-policy.d.ts +30 -0
  76. package/dist/import-policy.d.ts.map +1 -0
  77. package/dist/import-policy.js +105 -0
  78. package/dist/import-policy.js.map +1 -0
  79. package/dist/index.d.ts +60 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +34 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/logger.d.ts +47 -0
  84. package/dist/logger.d.ts.map +1 -0
  85. package/dist/logger.js +60 -0
  86. package/dist/logger.js.map +1 -0
  87. package/dist/module-runner.d.ts +9 -0
  88. package/dist/module-runner.d.ts.map +1 -0
  89. package/dist/module-runner.js +112 -0
  90. package/dist/module-runner.js.map +1 -0
  91. package/dist/native-escape.d.ts +2 -0
  92. package/dist/native-escape.d.ts.map +1 -0
  93. package/dist/native-escape.js +43 -0
  94. package/dist/native-escape.js.map +1 -0
  95. package/dist/native-route-matcher.d.ts +5 -0
  96. package/dist/native-route-matcher.d.ts.map +1 -0
  97. package/dist/native-route-matcher.js +91 -0
  98. package/dist/native-route-matcher.js.map +1 -0
  99. package/dist/navigation.d.ts +25 -0
  100. package/dist/navigation.d.ts.map +1 -0
  101. package/dist/navigation.js +125 -0
  102. package/dist/navigation.js.map +1 -0
  103. package/dist/prerender-store.d.ts +37 -0
  104. package/dist/prerender-store.d.ts.map +1 -0
  105. package/dist/prerender-store.js +158 -0
  106. package/dist/prerender-store.js.map +1 -0
  107. package/dist/render.d.ts +26 -0
  108. package/dist/render.d.ts.map +1 -0
  109. package/dist/render.js +1688 -0
  110. package/dist/render.js.map +1 -0
  111. package/dist/route-path.d.ts +2 -0
  112. package/dist/route-path.d.ts.map +1 -0
  113. package/dist/route-path.js +5 -0
  114. package/dist/route-path.js.map +1 -0
  115. package/dist/route-source.d.ts +9 -0
  116. package/dist/route-source.d.ts.map +1 -0
  117. package/dist/route-source.js +44 -0
  118. package/dist/route-source.js.map +1 -0
  119. package/dist/routes.d.ts +38 -0
  120. package/dist/routes.d.ts.map +1 -0
  121. package/dist/routes.js +168 -0
  122. package/dist/routes.js.map +1 -0
  123. package/dist/serve.d.ts +63 -0
  124. package/dist/serve.d.ts.map +1 -0
  125. package/dist/serve.js +445 -0
  126. package/dist/serve.js.map +1 -0
  127. package/dist/session.d.ts +25 -0
  128. package/dist/session.d.ts.map +1 -0
  129. package/dist/session.js +104 -0
  130. package/dist/session.js.map +1 -0
  131. package/dist/vite-config.d.ts +8 -0
  132. package/dist/vite-config.d.ts.map +1 -0
  133. package/dist/vite-config.js +17 -0
  134. package/dist/vite-config.js.map +1 -0
  135. package/dist/vite.d.ts +25 -0
  136. package/dist/vite.d.ts.map +1 -0
  137. package/dist/vite.js +150 -0
  138. package/dist/vite.js.map +1 -0
  139. package/package.json +91 -0
package/dist/i18n.js ADDED
@@ -0,0 +1,61 @@
1
+ export function detectLocale(request, options) {
2
+ const url = new URL(request.url);
3
+ const pathMatch = localeFromPath(url.pathname, options.locales);
4
+ if (pathMatch !== undefined) {
5
+ return {
6
+ locale: pathMatch.locale,
7
+ pathname: pathMatch.pathname,
8
+ source: "path",
9
+ };
10
+ }
11
+ const accepted = localeFromAcceptLanguage(request.headers.get("accept-language"), options.locales);
12
+ if (accepted !== undefined) {
13
+ return {
14
+ locale: accepted,
15
+ pathname: url.pathname,
16
+ source: "accept-language",
17
+ };
18
+ }
19
+ return {
20
+ locale: options.defaultLocale,
21
+ pathname: url.pathname,
22
+ source: "default",
23
+ };
24
+ }
25
+ export function defineMessages(messages) {
26
+ return messages;
27
+ }
28
+ function localeFromPath(pathname, locales) {
29
+ const [, firstSegment = "", ...rest] = pathname.split("/");
30
+ const locale = locales.find((candidate) => candidate === firstSegment);
31
+ if (locale === undefined) {
32
+ return undefined;
33
+ }
34
+ return {
35
+ locale,
36
+ pathname: rest.length === 0 ? "/" : `/${rest.join("/")}`,
37
+ };
38
+ }
39
+ function localeFromAcceptLanguage(header, locales) {
40
+ if (header === null) {
41
+ return undefined;
42
+ }
43
+ return header
44
+ .split(",")
45
+ .map((part) => {
46
+ const [tag = "", ...params] = part.trim().split(";");
47
+ const q = params
48
+ .map((param) => /^q=(?<value>\d(?:\.\d+)?)$/.exec(param.trim())?.groups?.value)
49
+ .find((value) => value !== undefined);
50
+ return {
51
+ q: q === undefined ? 1 : Number(q),
52
+ tag: tag.toLowerCase(),
53
+ };
54
+ })
55
+ .filter((entry) => entry.tag !== "" && Number.isFinite(entry.q) && entry.q > 0)
56
+ .sort((left, right) => right.q - left.q)
57
+ .flatMap((entry) => [entry.tag, entry.tag.split("-")[0] ?? ""])
58
+ .map((tag) => locales.find((locale) => locale.toLowerCase() === tag))
59
+ .find((locale) => locale !== undefined);
60
+ }
61
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,YAAY,CAC1B,OAAgB,EAChB,OAAqC;IAErC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO;YACL,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,MAAM,EAAE,MAAM;SACf,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,wBAAwB,CACvC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EACtC,OAAO,CAAC,OAAO,CAChB,CAAC;IAEF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO;YACL,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,MAAM,EAAE,iBAAiB;SAC1B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,aAAa;QAC7B,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,MAAM,EAAE,SAAS;KAClB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAqC,QAAkB;IACnF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,cAAc,CACrB,QAAgB,EAChB,OAA0B;IAE1B,MAAM,CAAC,EAAE,YAAY,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC;IAEvE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,MAAM;QACN,QAAQ,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;KACzD,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,MAAqB,EACrB,OAA0B;IAE1B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,MAAM;SACV,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,CAAC,GAAG,MAAM;aACb,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC;aAC9E,IAAI,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QAEzD,OAAO;YACL,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAClC,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE;SACvB,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;SAC9E,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;SACvC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SAC9D,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC;SACpE,IAAI,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,30 @@
1
+ export interface AppRouterImportPolicy {
2
+ allowedPackages?: readonly string[] | undefined;
3
+ allowedSourceDirs?: readonly string[] | undefined;
4
+ projectRoot?: string | undefined;
5
+ }
6
+ export interface AppRouterImportPolicyPluginOptions {
7
+ allowedSourceDirs?: readonly string[] | undefined;
8
+ appDir: string;
9
+ importPolicy?: AppRouterImportPolicy | undefined;
10
+ label: string;
11
+ projectRoot?: string | undefined;
12
+ }
13
+ export declare function createAppRouterImportPolicyPlugin(options: AppRouterImportPolicyPluginOptions): {
14
+ name: string;
15
+ setup(buildApi: {
16
+ onResolve(options: {
17
+ filter: RegExp;
18
+ }, callback: (args: {
19
+ path: string;
20
+ resolveDir: string;
21
+ }) => {
22
+ errors?: Array<{
23
+ text: string;
24
+ }>;
25
+ external?: boolean;
26
+ path?: string;
27
+ } | undefined): void;
28
+ }): void;
29
+ };
30
+ //# sourceMappingURL=import-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-policy.d.ts","sourceRoot":"","sources":["../src/import-policy.ts"],"names":[],"mappings":"AAWA,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;;oBAezE;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;EAyDJ"}
@@ -0,0 +1,105 @@
1
+ import { builtinModules } from "node:module";
2
+ import { dirname, join, relative, resolve, sep } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ const builtinModuleNames = new Set(builtinModules.flatMap((name) => [name, `node:${name}`]));
5
+ const alwaysAllowedPackages = new Set([
6
+ "@reckona/mreact-auth",
7
+ "@reckona/mreact-query",
8
+ "@reckona/mreact-router",
9
+ ]);
10
+ export function createAppRouterImportPolicyPlugin(options) {
11
+ const projectRoot = resolve(options.importPolicy?.projectRoot ?? options.projectRoot ?? options.appDir);
12
+ const configuredAllowedSourceDirs = options.importPolicy?.allowedSourceDirs ?? options.allowedSourceDirs;
13
+ const allowedSourceDirs = (configuredAllowedSourceDirs ?? [options.appDir]).map((directory) => resolve(projectRoot, directory));
14
+ const allowedPackages = new Set([
15
+ ...alwaysAllowedPackages,
16
+ ...(options.importPolicy?.allowedPackages ?? []),
17
+ ]);
18
+ const customAllowedSourceDirs = configuredAllowedSourceDirs !== undefined;
19
+ return {
20
+ name: `mreact-router-${options.label}-import-policy`,
21
+ setup(buildApi) {
22
+ buildApi.onResolve({ filter: /.*/ }, (args) => {
23
+ if (isRelativeImport(args.path)) {
24
+ const baseDir = args.resolveDir === "" ? options.appDir : args.resolveDir;
25
+ if (!isInsideAnyDirectory(allowedSourceDirs, baseDir)) {
26
+ return undefined;
27
+ }
28
+ const resolvedPath = resolve(baseDir, args.path);
29
+ return !isInsideDirectory(projectRoot, resolvedPath) ||
30
+ !isInsideAnyDirectory(allowedSourceDirs, resolvedPath)
31
+ ? {
32
+ errors: [
33
+ {
34
+ text: customAllowedSourceDirs
35
+ ? `${options.label} imports must stay inside allowed source directories: ${args.path}`
36
+ : `${options.label} imports must stay inside the app directory: ${args.path}`,
37
+ },
38
+ ],
39
+ }
40
+ : undefined;
41
+ }
42
+ if (isAbsoluteOrProtocolImport(args.path)) {
43
+ return undefined;
44
+ }
45
+ if (builtinModuleNames.has(args.path)) {
46
+ return { external: true, path: args.path };
47
+ }
48
+ const workspacePath = workspacePackagePath(args.path);
49
+ if (workspacePath !== undefined) {
50
+ return { path: workspacePath };
51
+ }
52
+ if (args.resolveDir !== "" && !isInsideAnyDirectory(allowedSourceDirs, args.resolveDir)) {
53
+ return undefined;
54
+ }
55
+ const packageName = packageNameForSpecifier(args.path);
56
+ if (!allowedPackages.has(packageName)) {
57
+ return {
58
+ errors: [
59
+ {
60
+ text: `${options.label} package imports are not allowed by default: "${packageName}"`,
61
+ },
62
+ ],
63
+ };
64
+ }
65
+ return undefined;
66
+ });
67
+ },
68
+ };
69
+ }
70
+ function workspacePackagePath(specifier) {
71
+ const currentDir = dirname(fileURLToPath(import.meta.url));
72
+ const packageRoot = dirname(currentDir);
73
+ const packagesDir = dirname(packageRoot);
74
+ const sourceOrDist = currentDir.endsWith(`${sep}dist`) ? "dist/index.js" : "src/index.ts";
75
+ const entries = new Map([
76
+ ["@reckona/mreact-auth", join(packagesDir, "auth", sourceOrDist)],
77
+ ["@reckona/mreact-compiler", join(packagesDir, "compiler", sourceOrDist)],
78
+ ["@reckona/mreact-query", join(packagesDir, "query", sourceOrDist)],
79
+ ["@reckona/mreact-reactive-core", join(packagesDir, "reactive-core", sourceOrDist)],
80
+ ["@reckona/mreact-router", join(packageRoot, sourceOrDist)],
81
+ ["@reckona/mreact-server", join(packagesDir, "server", sourceOrDist)],
82
+ ]);
83
+ return entries.get(specifier);
84
+ }
85
+ function isRelativeImport(path) {
86
+ return path === "." || path === ".." || path.startsWith("./") || path.startsWith("../");
87
+ }
88
+ function isAbsoluteOrProtocolImport(path) {
89
+ return path.startsWith("/") || /^[A-Za-z][A-Za-z0-9+.-]*:/.test(path);
90
+ }
91
+ function packageNameForSpecifier(specifier) {
92
+ if (!specifier.startsWith("@")) {
93
+ return specifier.split("/")[0] ?? specifier;
94
+ }
95
+ const [scope, name] = specifier.split("/");
96
+ return scope !== undefined && name !== undefined ? `${scope}/${name}` : specifier;
97
+ }
98
+ function isInsideDirectory(directory, candidate) {
99
+ const relativePath = relative(directory, candidate);
100
+ return relativePath === "" || (!relativePath.startsWith("..") && !relativePath.startsWith(sep));
101
+ }
102
+ function isInsideAnyDirectory(directories, candidate) {
103
+ return directories.some((directory) => isInsideDirectory(directory, candidate));
104
+ }
105
+ //# sourceMappingURL=import-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-policy.js","sourceRoot":"","sources":["../src/import-policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ export { buildApp } from "./build.js";
2
+ export { assetHref, assetPreloadLinks } from "./assets.js";
3
+ export { cacheControl, createMemoryRouteCache, revalidatePath } from "./cache.js";
4
+ export { deleteCookie, parseCookieHeader, serializeCookie, setCookie } from "./cookies.js";
5
+ export { defineMessages, detectLocale } from "./i18n.js";
6
+ export { cookies, headers, html, json, next, notFound, redirect, redirectExternal, rewrite, } from "./navigation.js";
7
+ export { createMemoryPrerenderStore } from "./prerender-store.js";
8
+ import { createMemorySessionStore as createMemorySessionStoreInternal, createSession as createSessionInternal, destroySession as destroySessionInternal, getSession as getSessionInternal, rotateSession as rotateSessionInternal } from "./session.js";
9
+ import type { SessionCookieOptions as SessionCookieOptionsInternal, SessionRecord as SessionRecordInternal, SessionStore as SessionStoreInternal } from "./session.js";
10
+ /**
11
+ * @deprecated Import session helpers from `@reckona/mreact-auth` instead.
12
+ */
13
+ export declare const createMemorySessionStore: typeof createMemorySessionStoreInternal;
14
+ /**
15
+ * @deprecated Import session helpers from `@reckona/mreact-auth` instead.
16
+ */
17
+ export declare const createSession: typeof createSessionInternal;
18
+ /**
19
+ * @deprecated Import session helpers from `@reckona/mreact-auth` instead.
20
+ */
21
+ export declare const destroySession: typeof destroySessionInternal;
22
+ /**
23
+ * @deprecated Import session helpers from `@reckona/mreact-auth` instead.
24
+ */
25
+ export declare const getSession: typeof getSessionInternal;
26
+ /**
27
+ * @deprecated Import session helpers from `@reckona/mreact-auth` instead.
28
+ */
29
+ export declare const rotateSession: typeof rotateSessionInternal;
30
+ export type { BuildAppOptions, BuildAppResult } from "./build.js";
31
+ export type { AssetHelperOptions, AssetLinkDescriptor, AssetManifest, AssetManifestEntry, } from "./assets.js";
32
+ export type { AppRouterCache, AppRouterCacheEntry, CacheControlOptions, RouteCachePolicy, } from "./cache.js";
33
+ export type { CookieOptions } from "./cookies.js";
34
+ export type { AppRouterImportPolicy } from "./import-policy.js";
35
+ export type { AppRouterLogError, AppRouterLogEvent, AppRouterLogger, AppRouterLogLevel, AppRouterRuntime, AppRouterRequestEndLogEvent, AppRouterRequestErrorLogEvent, AppRouterRequestStartLogEvent, } from "./logger.js";
36
+ export type { DetectedLocale, LocaleRoutingOptions, MessageTree } from "./i18n.js";
37
+ export type { AppRouterServerActionOptions } from "./actions.js";
38
+ /**
39
+ * @deprecated Import session helpers and types from `@reckona/mreact-auth` instead.
40
+ */
41
+ export type SessionCookieOptions = SessionCookieOptionsInternal;
42
+ /**
43
+ * @deprecated Import session helpers and types from `@reckona/mreact-auth` instead.
44
+ */
45
+ export type SessionRecord<TData = unknown> = SessionRecordInternal<TData>;
46
+ /**
47
+ * @deprecated Import session helpers and types from `@reckona/mreact-auth` instead.
48
+ */
49
+ export type SessionStore<TData = unknown> = SessionStoreInternal<TData>;
50
+ export { startDevServer } from "./dev-server.js";
51
+ export type { StartDevServerOptions } from "./dev-server.js";
52
+ export { renderAppRequest } from "./render.js";
53
+ export type { RenderAppRequestOptions } from "./render.js";
54
+ export type { FileSystemPrerenderStoreOptions, KeyValuePrerenderStoreAdapter, KeyValuePrerenderStoreOptions, MemoryPrerenderStoreOptions, } from "./prerender-store.js";
55
+ export { createFileSystemPrerenderStore, createKeyValuePrerenderStore } from "./prerender-store.js";
56
+ export { renderBuiltAppRequest, startServer } from "./serve.js";
57
+ export type { AppRouterPrerenderStore, RenderBuiltAppRequestOptions, StartServerOptions, } from "./serve.js";
58
+ export { matchRoute, scanAppRoutes } from "./routes.js";
59
+ export type { AppRoute, MatchedRoute, PageRoute, RouteSegment, ServerRoute } from "./routes.js";
60
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EACL,OAAO,EACP,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,OAAO,GACR,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACL,wBAAwB,IAAI,gCAAgC,EAC5D,aAAa,IAAI,qBAAqB,EACtC,cAAc,IAAI,sBAAsB,EACxC,UAAU,IAAI,kBAAkB,EAChC,aAAa,IAAI,qBAAqB,EACvC,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,oBAAoB,IAAI,4BAA4B,EACpD,aAAa,IAAI,qBAAqB,EACtC,YAAY,IAAI,oBAAoB,EACrC,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,eAAO,MAAM,wBAAwB,yCAAmC,CAAC;AACzE;;GAEG;AACH,eAAO,MAAM,aAAa,8BAAwB,CAAC;AACnD;;GAEG;AACH,eAAO,MAAM,cAAc,+BAAyB,CAAC;AACrD;;GAEG;AACH,eAAO,MAAM,UAAU,2BAAqB,CAAC;AAC7C;;GAEG;AACH,eAAO,MAAM,aAAa,8BAAwB,CAAC;AACnD,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAClE,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,2BAA2B,EAC3B,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACnF,YAAY,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AACjE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,4BAA4B,CAAC;AAChE;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,KAAK,GAAG,OAAO,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAC1E;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,KAAK,GAAG,OAAO,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC3D,YAAY,EACV,+BAA+B,EAC/B,6BAA6B,EAC7B,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,8BAA8B,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAChE,YAAY,EACV,uBAAuB,EACvB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,34 @@
1
+ export { buildApp } from "./build.js";
2
+ export { assetHref, assetPreloadLinks } from "./assets.js";
3
+ export { cacheControl, createMemoryRouteCache, revalidatePath } from "./cache.js";
4
+ export { deleteCookie, parseCookieHeader, serializeCookie, setCookie } from "./cookies.js";
5
+ export { defineMessages, detectLocale } from "./i18n.js";
6
+ export { cookies, headers, html, json, next, notFound, redirect, redirectExternal, rewrite, } from "./navigation.js";
7
+ export { createMemoryPrerenderStore } from "./prerender-store.js";
8
+ import { createMemorySessionStore as createMemorySessionStoreInternal, createSession as createSessionInternal, destroySession as destroySessionInternal, getSession as getSessionInternal, rotateSession as rotateSessionInternal, } from "./session.js";
9
+ /**
10
+ * @deprecated Import session helpers from `@reckona/mreact-auth` instead.
11
+ */
12
+ export const createMemorySessionStore = createMemorySessionStoreInternal;
13
+ /**
14
+ * @deprecated Import session helpers from `@reckona/mreact-auth` instead.
15
+ */
16
+ export const createSession = createSessionInternal;
17
+ /**
18
+ * @deprecated Import session helpers from `@reckona/mreact-auth` instead.
19
+ */
20
+ export const destroySession = destroySessionInternal;
21
+ /**
22
+ * @deprecated Import session helpers from `@reckona/mreact-auth` instead.
23
+ */
24
+ export const getSession = getSessionInternal;
25
+ /**
26
+ * @deprecated Import session helpers from `@reckona/mreact-auth` instead.
27
+ */
28
+ export const rotateSession = rotateSessionInternal;
29
+ export { startDevServer } from "./dev-server.js";
30
+ export { renderAppRequest } from "./render.js";
31
+ export { createFileSystemPrerenderStore, createKeyValuePrerenderStore } from "./prerender-store.js";
32
+ export { renderBuiltAppRequest, startServer } from "./serve.js";
33
+ export { matchRoute, scanAppRoutes } from "./routes.js";
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EACL,OAAO,EACP,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,OAAO,GACR,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACL,wBAAwB,IAAI,gCAAgC,EAC5D,aAAa,IAAI,qBAAqB,EACtC,cAAc,IAAI,sBAAsB,EACxC,UAAU,IAAI,kBAAkB,EAChC,aAAa,IAAI,qBAAqB,GACvC,MAAM,cAAc,CAAC;AAOtB;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,gCAAgC,CAAC;AACzE;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,qBAAqB,CAAC;AACnD;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,sBAAsB,CAAC;AACrD;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,kBAAkB,CAAC;AAC7C;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,qBAAqB,CAAC;AAwCnD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAQ/C,OAAO,EAAE,8BAA8B,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAMhE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,47 @@
1
+ export type AppRouterLogLevel = "debug" | "info" | "warn" | "error";
2
+ export type AppRouterRuntime = "aws-lambda" | "cloudflare" | "edge" | "node";
3
+ export interface AppRouterLogger {
4
+ debug?: ((event: AppRouterLogEvent) => void | Promise<void>) | undefined;
5
+ error?: ((event: AppRouterLogEvent) => void | Promise<void>) | undefined;
6
+ info?: ((event: AppRouterLogEvent) => void | Promise<void>) | undefined;
7
+ warn?: ((event: AppRouterLogEvent) => void | Promise<void>) | undefined;
8
+ }
9
+ export type AppRouterLogEvent = AppRouterRequestStartLogEvent | AppRouterRequestEndLogEvent | AppRouterRequestErrorLogEvent;
10
+ export interface AppRouterRequestStartLogEvent {
11
+ method: string;
12
+ path: string;
13
+ runtime: AppRouterRuntime;
14
+ type: "router:request:start";
15
+ }
16
+ export interface AppRouterRequestEndLogEvent {
17
+ durationMs: number;
18
+ method: string;
19
+ path: string;
20
+ runtime: AppRouterRuntime;
21
+ status: number;
22
+ type: "router:request:end";
23
+ }
24
+ export interface AppRouterRequestErrorLogEvent {
25
+ durationMs: number;
26
+ error: AppRouterLogError;
27
+ method: string;
28
+ path: string;
29
+ runtime: AppRouterRuntime;
30
+ type: "router:request:error";
31
+ }
32
+ export interface AppRouterLogError {
33
+ message: string;
34
+ name: string;
35
+ }
36
+ export interface RouterRequestLogFields {
37
+ method: string;
38
+ path: string;
39
+ runtime: AppRouterRuntime;
40
+ }
41
+ export declare function emitRouterLog(logger: AppRouterLogger | undefined, level: AppRouterLogLevel, event: AppRouterLogEvent): void;
42
+ export declare function requestLogFields(request: Request, runtime: AppRouterRuntime): RouterRequestLogFields;
43
+ export declare function nodeRequestPath(url: string | undefined): string;
44
+ export declare function logNow(): number;
45
+ export declare function logDurationMs(startedAt: number): number;
46
+ export declare function logError(error: unknown): AppRouterLogError;
47
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpE,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7E,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IACzE,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IACzE,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IACxE,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;CACzE;AAED,MAAM,MAAM,iBAAiB,GACzB,6BAA6B,GAC7B,2BAA2B,GAC3B,6BAA6B,CAAC;AAElC,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,sBAAsB,CAAC;CAC9B;AAED,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED,MAAM,WAAW,6BAA6B;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,sBAAsB,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,eAAe,GAAG,SAAS,EACnC,KAAK,EAAE,iBAAiB,EACxB,KAAK,EAAE,iBAAiB,GACvB,IAAI,CAkBN;AAWD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,gBAAgB,GACxB,sBAAsB,CAMxB;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAU/D;AAED,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAY1D"}
package/dist/logger.js ADDED
@@ -0,0 +1,60 @@
1
+ export function emitRouterLog(logger, level, event) {
2
+ const sink = logger?.[level];
3
+ if (sink === undefined) {
4
+ return;
5
+ }
6
+ queueMicrotask(() => {
7
+ try {
8
+ const result = sink(event);
9
+ if (isPromiseLike(result)) {
10
+ result.catch(() => { });
11
+ }
12
+ }
13
+ catch {
14
+ // Logger sinks are best-effort and must never affect request handling.
15
+ }
16
+ });
17
+ }
18
+ function isPromiseLike(value) {
19
+ return (typeof value === "object" &&
20
+ value !== null &&
21
+ "catch" in value &&
22
+ typeof value.catch === "function");
23
+ }
24
+ export function requestLogFields(request, runtime) {
25
+ return {
26
+ method: request.method,
27
+ path: new URL(request.url).pathname,
28
+ runtime,
29
+ };
30
+ }
31
+ export function nodeRequestPath(url) {
32
+ if (url === undefined || url === "") {
33
+ return "/";
34
+ }
35
+ try {
36
+ return new URL(url, "http://mreact.local").pathname;
37
+ }
38
+ catch {
39
+ return "/";
40
+ }
41
+ }
42
+ export function logNow() {
43
+ return performance.now();
44
+ }
45
+ export function logDurationMs(startedAt) {
46
+ return Math.max(0, Math.round((logNow() - startedAt) * 1000) / 1000);
47
+ }
48
+ export function logError(error) {
49
+ if (error instanceof Error) {
50
+ return {
51
+ message: error.message,
52
+ name: error.name,
53
+ };
54
+ }
55
+ return {
56
+ message: String(error),
57
+ name: "Error",
58
+ };
59
+ }
60
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAoDA,MAAM,UAAU,aAAa,CAC3B,MAAmC,EACnC,KAAwB,EACxB,KAAwB;IAExB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;IAE7B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,cAAc,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAE3B,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uEAAuE;QACzE,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAO,IAAI,KAAK;QAChB,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU,CAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,OAAgB,EAChB,OAAyB;IAEzB,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ;QACnC,OAAO;KACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAuB;IACrD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACpC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC,QAAQ,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;QACtB,IAAI,EAAE,OAAO;KACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare function importAppRouterSourceModule<T>(options: {
2
+ cacheKey?: string | undefined;
3
+ code: string;
4
+ label: string;
5
+ resolveDir?: string | undefined;
6
+ sourcefile?: string | undefined;
7
+ }): Promise<T>;
8
+ export declare function importAppRouterFileModule<T>(file: string): Promise<T>;
9
+ //# sourceMappingURL=module-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-runner.d.ts","sourceRoot":"","sources":["../src/module-runner.ts"],"names":[],"mappings":"AAaA,wBAAsB,2BAA2B,CAAC,CAAC,EAAE,OAAO,EAAE;IAC5D,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,GAAG,OAAO,CAAC,CAAC,CAAC,CAmBb;AAmBD,wBAAsB,yBAAyB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAM3E"}
@@ -0,0 +1,112 @@
1
+ import { dirname, join, sep } from "node:path";
2
+ import { fileURLToPath, pathToFileURL } from "node:url";
3
+ import { build as bundle } from "esbuild";
4
+ import { runnerImport } from "vite";
5
+ const runnerConfig = {
6
+ configFile: false,
7
+ logLevel: "silent",
8
+ };
9
+ const sourceModuleCache = new Map();
10
+ const maxSourceModuleCacheEntries = 512;
11
+ let fileImportVersion = 0;
12
+ export async function importAppRouterSourceModule(options) {
13
+ if (options.cacheKey !== undefined) {
14
+ const cacheKey = options.cacheKey;
15
+ const cached = sourceModuleCache.get(cacheKey);
16
+ if (cached !== undefined) {
17
+ return cached;
18
+ }
19
+ const loaded = importAppRouterSourceModuleWithoutCache(options).catch((error) => {
20
+ sourceModuleCache.delete(cacheKey);
21
+ throw error;
22
+ });
23
+ setBoundedCacheEntry(sourceModuleCache, cacheKey, loaded, maxSourceModuleCacheEntries);
24
+ return loaded;
25
+ }
26
+ return importAppRouterSourceModuleWithoutCache(options);
27
+ }
28
+ async function importAppRouterSourceModuleWithoutCache(options) {
29
+ const code = options.resolveDir === undefined ? options.code : await bundleAppRouterSourceModule(options);
30
+ const encodedLabel = encodeURIComponent(options.label.replace(/[^A-Za-z0-9_$.-]/g, "-"));
31
+ const url = `data:text/javascript;base64,${Buffer.from(code).toString("base64")}#${encodedLabel}-${Date.now()}-${Math.random()}`;
32
+ const result = await runnerImport(url, runnerConfig);
33
+ return result.module;
34
+ }
35
+ export async function importAppRouterFileModule(file) {
36
+ fileImportVersion += 1;
37
+ const url = `${pathToFileURL(file).href}?t=${Date.now()}${fileImportVersion}`;
38
+ const result = await runnerImport(url, runnerConfig);
39
+ return result.module;
40
+ }
41
+ async function bundleAppRouterSourceModule(options) {
42
+ const output = await bundle({
43
+ bundle: true,
44
+ format: "esm",
45
+ logLevel: "silent",
46
+ platform: "node",
47
+ plugins: [workspacePackageResolutionPlugin()],
48
+ stdin: {
49
+ contents: options.code,
50
+ loader: options.sourcefile?.endsWith(".tsx") || options.sourcefile?.endsWith(".mreact.tsx")
51
+ ? "tsx"
52
+ : "js",
53
+ ...(options.resolveDir === undefined ? {} : { resolveDir: options.resolveDir }),
54
+ ...(options.sourcefile === undefined ? {} : { sourcefile: options.sourcefile }),
55
+ },
56
+ write: false,
57
+ });
58
+ const code = output.outputFiles?.[0]?.text;
59
+ if (code === undefined) {
60
+ throw new Error(`Failed to bundle ${options.label} for Vite runner.`);
61
+ }
62
+ return code;
63
+ }
64
+ function workspacePackageResolutionPlugin() {
65
+ const currentDir = dirname(fileURLToPath(import.meta.url));
66
+ const packageRoot = dirname(currentDir);
67
+ const packagesDir = dirname(packageRoot);
68
+ const sourceOrDist = currentDir.endsWith(`${sep}dist`) ? "dist/index.js" : "src/index.ts";
69
+ const nativeEscapeSourceOrDist = currentDir.endsWith(`${sep}dist`)
70
+ ? "dist/native-escape.js"
71
+ : "src/native-escape.ts";
72
+ const sessionSourceOrDist = currentDir.endsWith(`${sep}dist`)
73
+ ? "dist/session.js"
74
+ : "src/session.ts";
75
+ const packageFile = (packageName, basename) => join(packagesDir, packageName, currentDir.endsWith(`${sep}dist`) ? `dist/${basename}.js` : `src/${basename}.ts`);
76
+ const entries = new Map([
77
+ ["@reckona/mreact-auth", join(packagesDir, "auth", sourceOrDist)],
78
+ ["@reckona/mreact-compat", packageFile("react-compat", "index")],
79
+ ["@reckona/mreact-compat/flight", packageFile("react-compat", "flight")],
80
+ ["@reckona/mreact-compat/internal", packageFile("react-compat", "internal")],
81
+ ["@reckona/mreact-compat/jsx-dev-runtime", packageFile("react-compat", "jsx-dev-runtime")],
82
+ ["@reckona/mreact-compat/jsx-runtime", packageFile("react-compat", "jsx-runtime")],
83
+ ["@reckona/mreact-compat/scheduler", packageFile("react-compat", "scheduler")],
84
+ ["@reckona/mreact-reactive-core", join(packagesDir, "reactive-core", sourceOrDist)],
85
+ ["@reckona/mreact-query", join(packagesDir, "query", sourceOrDist)],
86
+ ["@reckona/mreact-server", join(packagesDir, "server", sourceOrDist)],
87
+ ["@reckona/mreact-router", join(packageRoot, sourceOrDist)],
88
+ ["@reckona/mreact-router/internal/native-escape", join(packageRoot, nativeEscapeSourceOrDist)],
89
+ ["@reckona/mreact-router/internal/session", join(packageRoot, sessionSourceOrDist)],
90
+ ]);
91
+ return {
92
+ name: "mreact-router-workspace-packages",
93
+ setup(buildApi) {
94
+ buildApi.onResolve({
95
+ filter: /^@reckona\/mreact-(?:auth|query|reactive-core|server|router|compat)(?:\/(?:flight|internal|jsx-dev-runtime|jsx-runtime|scheduler|internal\/native-escape|internal\/session))?$/,
96
+ }, (args) => {
97
+ const path = entries.get(args.path);
98
+ return path === undefined ? undefined : { path };
99
+ });
100
+ },
101
+ };
102
+ }
103
+ function setBoundedCacheEntry(cache, key, value, maxEntries) {
104
+ if (cache.size >= maxEntries) {
105
+ const oldestKey = cache.keys().next().value;
106
+ if (oldestKey !== undefined) {
107
+ cache.delete(oldestKey);
108
+ }
109
+ }
110
+ cache.set(key, value);
111
+ }
112
+ //# sourceMappingURL=module-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-runner.js","sourceRoot":"","sources":["../src/module-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function escapeHtmlBatch(values: readonly unknown[]): string[];
2
+ //# sourceMappingURL=native-escape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-escape.d.ts","sourceRoot":"","sources":["../src/native-escape.ts"],"names":[],"mappings":"AAWA,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,EAAE,CAKpE"}
@@ -0,0 +1,43 @@
1
+ import { createRequire } from "node:module";
2
+ import { nativeModulePackageCandidates } from "./native-route-matcher.js";
3
+ import { escapeHtmlAttribute as escapeHtml } from "@reckona/mreact-shared/html-escape";
4
+ let nativeModule;
5
+ let nativeRequire;
6
+ export function escapeHtmlBatch(values) {
7
+ const strings = values.map((value) => String(value ?? ""));
8
+ const native = loadNativeEscapeModule();
9
+ return native?.escapeHtmlBatch?.(strings) ?? strings.map(escapeHtml);
10
+ }
11
+ function loadNativeEscapeModule() {
12
+ if (nativeModule === undefined) {
13
+ const require = nativePackageRequire();
14
+ if (require === undefined) {
15
+ nativeModule = false;
16
+ return undefined;
17
+ }
18
+ for (const candidate of nativeModulePackageCandidates(process.platform, process.arch)) {
19
+ try {
20
+ nativeModule = require(candidate);
21
+ break;
22
+ }
23
+ catch {
24
+ // Native package is optional. JS escaping remains the portable fallback.
25
+ }
26
+ }
27
+ nativeModule ??= false;
28
+ }
29
+ return nativeModule === false ? undefined : nativeModule;
30
+ }
31
+ function nativePackageRequire() {
32
+ if (nativeRequire === undefined) {
33
+ try {
34
+ nativeRequire =
35
+ new URL(import.meta.url).protocol === "file:" ? createRequire(import.meta.url) : false;
36
+ }
37
+ catch {
38
+ nativeRequire = false;
39
+ }
40
+ }
41
+ return nativeRequire === false ? undefined : nativeRequire;
42
+ }
43
+ //# sourceMappingURL=native-escape.js.map