@absolutejs/absolute 0.8.8 → 0.8.9

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/dist/index.js CHANGED
@@ -10,7 +10,7 @@ var TIME_PRECISION = 2;
10
10
  var TWO_THIRDS = 2 / 3;
11
11
  var DEFAULT_PORT = 3000;
12
12
  // src/core/build.ts
13
- import { rm as rm2, mkdir as mkdir3 } from "fs/promises";
13
+ import { rm as rm2, mkdir as mkdir3, cp } from "fs/promises";
14
14
  import { basename as basename3, join as join3 } from "path";
15
15
  import { cwd, exit } from "process";
16
16
  var {$, build: bunBuild } = globalThis.Bun;
@@ -163,6 +163,17 @@ var getDurationString = (duration) => {
163
163
  return durationString;
164
164
  };
165
165
 
166
+ // src/utils/validateSafePath.ts
167
+ import { resolve, relative, sep } from "path";
168
+ var validateSafePath = (targetPath, baseDirectory) => {
169
+ const absoluteBase = resolve(baseDirectory);
170
+ const absoluteTarget = resolve(baseDirectory, targetPath);
171
+ if (relative(absoluteBase, absoluteTarget).startsWith(`..${sep}`)) {
172
+ throw new Error(`Unsafe path: ${targetPath}`);
173
+ }
174
+ return absoluteTarget;
175
+ };
176
+
166
177
  // src/core/build.ts
167
178
  var build = async ({
168
179
  buildDirectory = "build",
@@ -176,25 +187,34 @@ var build = async ({
176
187
  }) => {
177
188
  const buildStart = performance.now();
178
189
  const projectRoot = cwd();
179
- const buildPath = join3(projectRoot, buildDirectory);
180
- const assetsPath = assetsDirectory ? join3(projectRoot, assetsDirectory) : undefined;
181
- const reactIndexesPath = reactDirectory ? join3(projectRoot, reactDirectory, "indexes") : undefined;
182
- const reactPagesPath = reactDirectory ? join3(projectRoot, reactDirectory, "pages") : undefined;
183
- const htmlPagesPath = htmlDirectory ? join3(projectRoot, htmlDirectory, "pages") : undefined;
184
- const htmlScriptsPath = htmlDirectory ? join3(projectRoot, htmlDirectory, "scripts") : undefined;
185
- const svelteBuildPath = svelteDirectory ? join3(projectRoot, svelteDirectory) : undefined;
186
- const htmxPath = htmxDirectory ? join3(projectRoot, htmxDirectory) : undefined;
190
+ const buildPath = validateSafePath(buildDirectory, projectRoot);
191
+ const assetsPath = assetsDirectory && validateSafePath(assetsDirectory, projectRoot);
192
+ const reactDirectoryPath = reactDirectory && validateSafePath(reactDirectory, projectRoot);
193
+ const reactIndexesPath = reactDirectoryPath && join3(projectRoot, reactDirectoryPath, "indexes");
194
+ const reactPagesPath = reactDirectoryPath && join3(projectRoot, reactDirectoryPath, "pages");
195
+ const htmlDirectoryPath = htmlDirectory && validateSafePath(htmlDirectory, projectRoot);
196
+ const htmlPagesPath = htmlDirectoryPath ? join3(projectRoot, htmlDirectoryPath, "pages") : undefined;
197
+ const htmlScriptsPath = htmlDirectoryPath ? join3(projectRoot, htmlDirectoryPath, "scripts") : undefined;
198
+ const svelteDirectoryPath = svelteDirectory && validateSafePath(svelteDirectory, projectRoot);
199
+ const svelteBuildPath = svelteDirectoryPath && join3(projectRoot, svelteDirectoryPath);
200
+ const htmxPath = htmxDirectory && validateSafePath(htmxDirectory, projectRoot);
187
201
  await rm2(buildPath, { force: true, recursive: true });
188
202
  await mkdir3(buildPath);
189
203
  if (reactIndexesPath && reactPagesPath) {
190
204
  await generateReactIndexFiles(reactPagesPath, reactIndexesPath);
191
205
  }
192
206
  if (assetsPath) {
193
- await $`cp -R ${assetsPath} ${buildPath}`;
207
+ await cp(assetsPath, join3(buildPath, "assets"), {
208
+ force: true,
209
+ recursive: true
210
+ });
194
211
  }
195
212
  if (htmxPath) {
196
213
  await mkdir3(join3(buildPath, "htmx"));
197
- await $`cp -R ${htmxPath} ${buildPath}`;
214
+ await cp(htmxPath, join3(buildPath, "htmx"), {
215
+ force: true,
216
+ recursive: true
217
+ });
198
218
  }
199
219
  if (tailwind) {
200
220
  await $`bunx @tailwindcss/cli -i ${tailwind.input} -o ${join3(buildPath, tailwind.output)}`;
@@ -248,7 +268,10 @@ var build = async ({
248
268
  if (htmlDirectory && htmlPagesPath) {
249
269
  const outputHtmlPages = join3(buildPath, basename3(htmlDirectory), "pages");
250
270
  await mkdir3(outputHtmlPages, { recursive: true });
251
- await $`cp -R ${htmlPagesPath}/. ${outputHtmlPages}`;
271
+ await cp(htmlPagesPath, outputHtmlPages, {
272
+ force: true,
273
+ recursive: true
274
+ });
252
275
  await updateScriptTags(manifest, outputHtmlPages);
253
276
  }
254
277
  if (!options?.preserveIntermediateFiles && svelteBuildPath) {
@@ -423,5 +446,5 @@ export {
423
446
  DEFAULT_PORT
424
447
  };
425
448
 
426
- //# debugId=AB03027C26DB54CA64756E2164756E21
449
+ //# debugId=BCEAA6057B920D6664756E2164756E21
427
450
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,15 +1,16 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/constants.ts", "../src/core/build.ts", "../src/build/generateManifest.ts", "../src/build/generateReactIndexes.ts", "../src/build/scanEntryPoints.ts", "../src/build/updateScriptTags.ts", "../src/svelte/compileSvelte.ts", "../src/utils/getDurationString.ts", "../src/core/pageHandlers.ts", "../src/svelte/renderToReadableStream.ts", "../src/utils/escapeScriptContent.ts", "../src/plugins/networkingPlugin.ts", "../src/utils/networking.ts", "../src/plugins/pageRouterPlugin.ts"],
3
+ "sources": ["../src/constants.ts", "../src/core/build.ts", "../src/build/generateManifest.ts", "../src/build/generateReactIndexes.ts", "../src/build/scanEntryPoints.ts", "../src/build/updateScriptTags.ts", "../src/svelte/compileSvelte.ts", "../src/utils/getDurationString.ts", "../src/utils/validateSafePath.ts", "../src/core/pageHandlers.ts", "../src/svelte/renderToReadableStream.ts", "../src/utils/escapeScriptContent.ts", "../src/plugins/networkingPlugin.ts", "../src/utils/networking.ts", "../src/plugins/pageRouterPlugin.ts"],
4
4
  "sourcesContent": [
5
5
  "export const SECONDS_IN_A_MINUTE = 60;\nexport const MILLISECONDS_IN_A_SECOND = 1000;\nexport const MILLISECONDS_IN_A_MINUTE =\n\tMILLISECONDS_IN_A_SECOND * SECONDS_IN_A_MINUTE;\nexport const MINUTES_IN_AN_HOUR = 60;\nexport const HOURS_IN_DAY = 24;\nexport const MILLISECONDS_IN_A_DAY =\n\tMILLISECONDS_IN_A_SECOND *\n\tSECONDS_IN_A_MINUTE *\n\tMINUTES_IN_AN_HOUR *\n\tHOURS_IN_DAY;\nexport const TIME_PRECISION = 2;\nexport const TWO_THIRDS = 2 / 3;\nexport const DEFAULT_PORT = 3000;\n",
6
- "import { rm, mkdir } from \"node:fs/promises\";\nimport { basename, join } from \"node:path\";\nimport { cwd, exit } from \"node:process\";\nimport { $, build as bunBuild } from \"bun\";\nimport { generateManifest } from \"../build/generateManifest\";\nimport { generateReactIndexFiles } from \"../build/generateReactIndexes\";\nimport { scanEntryPoints } from \"../build/scanEntryPoints\";\nimport { updateScriptTags } from \"../build/updateScriptTags\";\nimport { compileSvelte } from \"../svelte/compileSvelte\";\nimport { BuildConfig } from \"../types\";\nimport { getDurationString } from \"../utils/getDurationString\";\n\nexport const build = async ({\n\tbuildDirectory = \"build\",\n\tassetsDirectory,\n\treactDirectory,\n\thtmlDirectory,\n\thtmxDirectory,\n\tsvelteDirectory,\n\ttailwind,\n\toptions\n}: BuildConfig) => {\n\tconst buildStart = performance.now();\n\tconst projectRoot = cwd();\n\n\tconst buildPath = join(projectRoot, buildDirectory);\n\tconst assetsPath = assetsDirectory\n\t\t? join(projectRoot, assetsDirectory)\n\t\t: undefined;\n\n\tconst reactIndexesPath = reactDirectory\n\t\t? join(projectRoot, reactDirectory, \"indexes\")\n\t\t: undefined;\n\tconst reactPagesPath = reactDirectory\n\t\t? join(projectRoot, reactDirectory, \"pages\")\n\t\t: undefined;\n\n\tconst htmlPagesPath = htmlDirectory\n\t\t? join(projectRoot, htmlDirectory, \"pages\")\n\t\t: undefined;\n\tconst htmlScriptsPath = htmlDirectory\n\t\t? join(projectRoot, htmlDirectory, \"scripts\")\n\t\t: undefined;\n\n\tconst svelteBuildPath = svelteDirectory\n\t\t? join(projectRoot, svelteDirectory)\n\t\t: undefined;\n\n\tconst htmxPath = htmxDirectory\n\t\t? join(projectRoot, htmxDirectory)\n\t\t: undefined;\n\n\tawait rm(buildPath, { force: true, recursive: true });\n\tawait mkdir(buildPath);\n\n\tif (reactIndexesPath && reactPagesPath) {\n\t\tawait generateReactIndexFiles(reactPagesPath, reactIndexesPath);\n\t}\n\n\tif (assetsPath) {\n\t\tawait $`cp -R ${assetsPath} ${buildPath}`;\n\t}\n\n\tif (htmxPath) {\n\t\tawait mkdir(join(buildPath, \"htmx\"));\n\t\tawait $`cp -R ${htmxPath} ${buildPath}`;\n\t}\n\n\tif (tailwind) {\n\t\tawait $`bunx @tailwindcss/cli -i ${tailwind.input} -o ${join(\n\t\t\tbuildPath,\n\t\t\ttailwind.output\n\t\t)}`;\n\t}\n\n\tconst reactEntryPoints = reactIndexesPath\n\t\t? await scanEntryPoints(reactIndexesPath, \"*.tsx\")\n\t\t: [];\n\tconst svelteEntryPoints = svelteBuildPath\n\t\t? await scanEntryPoints(join(svelteBuildPath, \"pages\"), \"*.svelte\")\n\t\t: [];\n\tconst htmlEntryPoints = htmlScriptsPath\n\t\t? await scanEntryPoints(htmlScriptsPath, \"*.{js,ts}\")\n\t\t: [];\n\n\tconst { svelteServerPaths, svelteClientPaths } = svelteBuildPath\n\t\t? await compileSvelte(svelteEntryPoints, svelteBuildPath)\n\t\t: { svelteClientPaths: [], svelteServerPaths: [] };\n\n\tconst serverEntryPoints = reactEntryPoints\n\t\t.concat(htmlEntryPoints)\n\t\t.concat(svelteServerPaths);\n\n\tif (serverEntryPoints.length === 0) {\n\t\tconsole.warn(\n\t\t\t\"No server entry points found, skipping manifest generation\"\n\t\t);\n\n\t\treturn null;\n\t}\n\n\tconst { logs: serverLogs, outputs: serverOutputs } = await bunBuild({\n\t\tentrypoints: serverEntryPoints,\n\t\tformat: \"esm\",\n\t\tnaming: `[dir]/[name].[hash].[ext]`,\n\t\toutdir: buildPath,\n\t\ttarget: \"bun\"\n\t}).catch((error) => {\n\t\tconsole.error(\"Server build failed:\", error);\n\t\texit(1);\n\t});\n\n\tlet clientLogs: typeof serverLogs = [];\n\tlet clientOutputs: typeof serverOutputs = [];\n\tif (svelteDirectory) {\n\t\tconst { logs, outputs } = await bunBuild({\n\t\t\tentrypoints: svelteClientPaths,\n\t\t\tformat: \"esm\",\n\t\t\tnaming: `[dir]/[name].[hash].[ext]`,\n\t\t\toutdir: join(buildPath, \"svelte\"),\n\t\t\troot: svelteBuildPath,\n\t\t\ttarget: \"browser\"\n\t\t}).catch((error) => {\n\t\t\tconsole.error(\"Client build failed:\", error);\n\t\t\texit(1);\n\t\t});\n\t\tclientLogs = logs;\n\t\tclientOutputs = outputs;\n\t}\n\n\tserverLogs.concat(clientLogs).forEach((log) => {\n\t\tif (log.level === \"error\") console.error(log);\n\t\telse if (log.level === \"warning\") console.warn(log);\n\t\telse console.info(log);\n\t});\n\n\tconst allOutputs = serverOutputs.concat(clientOutputs);\n\tconst manifest = generateManifest(allOutputs, buildPath);\n\n\tif (htmlDirectory && htmlPagesPath) {\n\t\tconst outputHtmlPages = join(\n\t\t\tbuildPath,\n\t\t\tbasename(htmlDirectory),\n\t\t\t\"pages\"\n\t\t);\n\t\tawait mkdir(outputHtmlPages, { recursive: true });\n\t\tawait $`cp -R ${htmlPagesPath}/. ${outputHtmlPages}`;\n\t\tawait updateScriptTags(manifest, outputHtmlPages);\n\t}\n\n\tif (!options?.preserveIntermediateFiles && svelteBuildPath) {\n\t\tawait rm(join(svelteBuildPath, \"indexes\"), {\n\t\t\tforce: true,\n\t\t\trecursive: true\n\t\t});\n\t\tawait rm(join(svelteBuildPath, \"client\"), {\n\t\t\tforce: true,\n\t\t\trecursive: true\n\t\t});\n\t\tsvelteServerPaths.forEach(async (path) => {\n\t\t\tawait rm(path, { force: true });\n\t\t});\n\t}\n\n\tif (!options?.preserveIntermediateFiles && reactIndexesPath) {\n\t\tawait rm(reactIndexesPath, { force: true, recursive: true });\n\t}\n\n\tconst buildDuration = performance.now() - buildStart;\n\tconsole.log(`Build completed in ${getDurationString(buildDuration)}`);\n\n\treturn manifest;\n};\n",
6
+ "import { rm, mkdir, cp } from \"node:fs/promises\";\nimport { basename, join } from \"node:path\";\nimport { cwd, exit } from \"node:process\";\nimport { $, build as bunBuild } from \"bun\";\nimport { generateManifest } from \"../build/generateManifest\";\nimport { generateReactIndexFiles } from \"../build/generateReactIndexes\";\nimport { scanEntryPoints } from \"../build/scanEntryPoints\";\nimport { updateScriptTags } from \"../build/updateScriptTags\";\nimport { compileSvelte } from \"../svelte/compileSvelte\";\nimport { BuildConfig } from \"../types\";\nimport { getDurationString } from \"../utils/getDurationString\";\nimport { validateSafePath } from \"../utils/validateSafePath\";\n\nexport const build = async ({\n\tbuildDirectory = \"build\",\n\tassetsDirectory,\n\treactDirectory,\n\thtmlDirectory,\n\thtmxDirectory,\n\tsvelteDirectory,\n\ttailwind,\n\toptions\n}: BuildConfig) => {\n\tconst buildStart = performance.now();\n\tconst projectRoot = cwd();\n\n\tconst buildPath = validateSafePath(buildDirectory, projectRoot);\n\tconst assetsPath =\n\t\tassetsDirectory && validateSafePath(assetsDirectory, projectRoot);\n\tconst reactDirectoryPath =\n\t\treactDirectory && validateSafePath(reactDirectory, projectRoot);\n\tconst reactIndexesPath =\n\t\treactDirectoryPath && join(projectRoot, reactDirectoryPath, \"indexes\");\n\tconst reactPagesPath =\n\t\treactDirectoryPath && join(projectRoot, reactDirectoryPath, \"pages\");\n\tconst htmlDirectoryPath =\n\t\thtmlDirectory && validateSafePath(htmlDirectory, projectRoot);\n\tconst htmlPagesPath = htmlDirectoryPath\n\t\t? join(projectRoot, htmlDirectoryPath, \"pages\")\n\t\t: undefined;\n\tconst htmlScriptsPath = htmlDirectoryPath\n\t\t? join(projectRoot, htmlDirectoryPath, \"scripts\")\n\t\t: undefined;\n\tconst svelteDirectoryPath =\n\t\tsvelteDirectory && validateSafePath(svelteDirectory, projectRoot);\n\tconst svelteBuildPath =\n\t\tsvelteDirectoryPath && join(projectRoot, svelteDirectoryPath);\n\tconst htmxPath =\n\t\thtmxDirectory && validateSafePath(htmxDirectory, projectRoot);\n\n\tawait rm(buildPath, { force: true, recursive: true });\n\tawait mkdir(buildPath);\n\n\tif (reactIndexesPath && reactPagesPath) {\n\t\tawait generateReactIndexFiles(reactPagesPath, reactIndexesPath);\n\t}\n\n\tif (assetsPath) {\n\t\tawait cp(assetsPath, join(buildPath, \"assets\"), {\n\t\t\tforce: true,\n\t\t\trecursive: true\n\t\t});\n\t}\n\n\tif (htmxPath) {\n\t\tawait mkdir(join(buildPath, \"htmx\"));\n\t\tawait cp(htmxPath, join(buildPath, \"htmx\"), {\n\t\t\tforce: true,\n\t\t\trecursive: true\n\t\t});\n\t}\n\n\tif (tailwind) {\n\t\tawait $`bunx @tailwindcss/cli -i ${tailwind.input} -o ${join(\n\t\t\tbuildPath,\n\t\t\ttailwind.output\n\t\t)}`;\n\t}\n\n\tconst reactEntryPoints = reactIndexesPath\n\t\t? await scanEntryPoints(reactIndexesPath, \"*.tsx\")\n\t\t: [];\n\tconst svelteEntryPoints = svelteBuildPath\n\t\t? await scanEntryPoints(join(svelteBuildPath, \"pages\"), \"*.svelte\")\n\t\t: [];\n\tconst htmlEntryPoints = htmlScriptsPath\n\t\t? await scanEntryPoints(htmlScriptsPath, \"*.{js,ts}\")\n\t\t: [];\n\n\tconst { svelteServerPaths, svelteClientPaths } = svelteBuildPath\n\t\t? await compileSvelte(svelteEntryPoints, svelteBuildPath)\n\t\t: { svelteClientPaths: [], svelteServerPaths: [] };\n\n\tconst serverEntryPoints = reactEntryPoints\n\t\t.concat(htmlEntryPoints)\n\t\t.concat(svelteServerPaths);\n\n\tif (serverEntryPoints.length === 0) {\n\t\tconsole.warn(\n\t\t\t\"No server entry points found, skipping manifest generation\"\n\t\t);\n\n\t\treturn null;\n\t}\n\n\tconst { logs: serverLogs, outputs: serverOutputs } = await bunBuild({\n\t\tentrypoints: serverEntryPoints,\n\t\tformat: \"esm\",\n\t\tnaming: `[dir]/[name].[hash].[ext]`,\n\t\toutdir: buildPath,\n\t\ttarget: \"bun\"\n\t}).catch((error) => {\n\t\tconsole.error(\"Server build failed:\", error);\n\t\texit(1);\n\t});\n\n\tlet clientLogs: typeof serverLogs = [];\n\tlet clientOutputs: typeof serverOutputs = [];\n\tif (svelteDirectory) {\n\t\tconst { logs, outputs } = await bunBuild({\n\t\t\tentrypoints: svelteClientPaths,\n\t\t\tformat: \"esm\",\n\t\t\tnaming: `[dir]/[name].[hash].[ext]`,\n\t\t\toutdir: join(buildPath, \"svelte\"),\n\t\t\troot: svelteBuildPath,\n\t\t\ttarget: \"browser\"\n\t\t}).catch((error) => {\n\t\t\tconsole.error(\"Client build failed:\", error);\n\t\t\texit(1);\n\t\t});\n\t\tclientLogs = logs;\n\t\tclientOutputs = outputs;\n\t}\n\n\tserverLogs.concat(clientLogs).forEach((log) => {\n\t\tif (log.level === \"error\") console.error(log);\n\t\telse if (log.level === \"warning\") console.warn(log);\n\t\telse console.info(log);\n\t});\n\n\tconst allOutputs = serverOutputs.concat(clientOutputs);\n\tconst manifest = generateManifest(allOutputs, buildPath);\n\n\tif (htmlDirectory && htmlPagesPath) {\n\t\tconst outputHtmlPages = join(\n\t\t\tbuildPath,\n\t\t\tbasename(htmlDirectory),\n\t\t\t\"pages\"\n\t\t);\n\t\tawait mkdir(outputHtmlPages, { recursive: true });\n\t\tawait cp(htmlPagesPath, outputHtmlPages, {\n\t\t\tforce: true,\n\t\t\trecursive: true\n\t\t});\n\t\tawait updateScriptTags(manifest, outputHtmlPages);\n\t}\n\n\tif (!options?.preserveIntermediateFiles && svelteBuildPath) {\n\t\tawait rm(join(svelteBuildPath, \"indexes\"), {\n\t\t\tforce: true,\n\t\t\trecursive: true\n\t\t});\n\t\tawait rm(join(svelteBuildPath, \"client\"), {\n\t\t\tforce: true,\n\t\t\trecursive: true\n\t\t});\n\t\tsvelteServerPaths.forEach(async (path) => {\n\t\t\tawait rm(path, { force: true });\n\t\t});\n\t}\n\n\tif (!options?.preserveIntermediateFiles && reactIndexesPath) {\n\t\tawait rm(reactIndexesPath, { force: true, recursive: true });\n\t}\n\n\tconst buildDuration = performance.now() - buildStart;\n\tconsole.log(`Build completed in ${getDurationString(buildDuration)}`);\n\n\treturn manifest;\n};\n",
7
7
  "import { BuildArtifact } from \"bun\";\n\nexport const generateManifest = (\n outputs: BuildArtifact[],\n buildDirectoryAbsolute: string\n) => {\n const manifest = outputs.reduce<Record<string, string>>((accumulator, artifact) => {\n let relativePath = artifact.path.startsWith(buildDirectoryAbsolute)\n ? artifact.path.slice(buildDirectoryAbsolute.length)\n : artifact.path;\n relativePath = relativePath.replace(/^\\/+/, \"\");\n\n const segments = relativePath.split(\"/\");\n const fileWithHash = segments[segments.length - 1];\n if (!fileWithHash) return accumulator;\n\n const [baseName] = fileWithHash.split(`.${artifact.hash}.`);\n\n if (relativePath.includes(\"svelte/pages\")) {\n accumulator[baseName] = artifact.path;\n } else if (relativePath.includes(\"svelte/indexes\")) {\n accumulator[`${baseName}Index`] = `/${relativePath}`;\n } else {\n accumulator[baseName] = `/${relativePath}`;\n }\n\n return accumulator;\n }, {});\n\n return manifest;\n};\n",
8
8
  "import { mkdir, rm, writeFile } from \"fs/promises\";\nimport { basename, join } from \"path\";\nimport { Glob } from \"bun\";\n\nexport const generateReactIndexFiles = async (\n reactPagesDirectory: string,\n reactIndexesDirectory: string\n) => {\n await rm(reactIndexesDirectory, { force: true, recursive: true });\n await mkdir(reactIndexesDirectory);\n\n const pagesGlob = new Glob(\"*.*\");\n const files: string[] = [];\n for await (const file of pagesGlob.scan({ cwd: reactPagesDirectory })) {\n files.push(file);\n }\n const promises = files.map(async (file) => {\n const fileName = basename(file);\n const [componentName] = fileName.split(\".\");\n const content = [\n `import { hydrateRoot } from 'react-dom/client';`,\n `import type { ComponentType } from 'react'`,\n `import { ${componentName} } from '../pages/${componentName}';\\n`,\n `type PropsOf<C> = C extends ComponentType<infer P> ? P : never;\\n`,\n `declare global {`,\n `\\tinterface Window {`,\n `\\t\\t__INITIAL_PROPS__: PropsOf<typeof ${componentName}>`,\n `\\t}`,\n `}\\n`,\n `hydrateRoot(document, <${componentName} {...window.__INITIAL_PROPS__} />);`\n ].join(\"\\n\");\n\n return writeFile(\n join(reactIndexesDirectory, `${componentName}Index.tsx`),\n content\n );\n });\n await Promise.all(promises);\n};",
9
9
  "import { Glob } from \"bun\";\n\nexport const scanEntryPoints = async (dir: string, pattern: string) => {\n\tconst entryPaths: string[] = [];\n\tconst glob = new Glob(pattern);\n\tfor await (const file of glob.scan({ absolute: true, cwd: dir })) {\n\t\tentryPaths.push(file);\n\t}\n\n\treturn entryPaths;\n};\n",
10
10
  "import { readFile, writeFile } from \"node:fs/promises\";\nimport { scanEntryPoints } from \"./scanEntryPoints\";\n\nexport const updateScriptTags = async (\n\tmanifest: Record<string, string>,\n\thtmlDir: string\n) => {\n\tconst htmlFiles = await scanEntryPoints(htmlDir, \"*.html\");\n\n\tconst tasks = htmlFiles.map(async (filePath) => {\n\t\tconst original = await readFile(filePath, \"utf8\");\n\t\tconst updated = Object.entries(manifest).reduce(\n\t\t\t(html, [scriptName, newPath]) => {\n\t\t\t\tconst esc = scriptName.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n\t\t\t\tconst regex = new RegExp(\n\t\t\t\t\t`(<script[^>]+src=[\"'])(/?(?:.*/)?${esc})(?:\\\\.[^.\"'/]+)?(\\\\.js)([\"'][^>]*>)`,\n\t\t\t\t\t\"g\"\n\t\t\t\t);\n\n\t\t\t\treturn html.replace(\n\t\t\t\t\tregex,\n\t\t\t\t\t(_, prefix, __, ___, suffix) =>\n\t\t\t\t\t\t`${prefix}${newPath}${suffix}`\n\t\t\t\t);\n\t\t\t},\n\t\t\toriginal\n\t\t);\n\n\t\tawait writeFile(filePath, updated, \"utf8\");\n\t});\n\n\tawait Promise.all(tasks);\n};\n",
11
11
  "import { mkdir } from \"node:fs/promises\";\nimport { basename, join } from \"node:path\";\nimport { env } from \"node:process\";\nimport { write, file } from \"bun\";\nimport { compile, preprocess } from \"svelte/compiler\";\n\nexport const compileSvelte = async (\n\tentryPoints: string[],\n\toutputDirectory: string\n) => {\n\tconst pagesDir = join(outputDirectory, \"pages\");\n\tconst clientDir = join(outputDirectory, \"client\");\n\tconst indexesDir = join(outputDirectory, \"indexes\");\n\n\tawait Promise.all([\n\t\tmkdir(clientDir, { recursive: true }),\n\t\tmkdir(indexesDir, { recursive: true })\n\t]);\n\n\tconst isDev = env.NODE_ENV === \"development\";\n\n\tconst builds = await Promise.all(\n\t\tentryPoints.map(async (entry) => {\n\t\t\tconst source = await file(entry).text();\n\t\t\tconst { code: pre } = await preprocess(source, {});\n\n\t\t\tconst name = basename(entry, \".svelte\");\n\n\t\t\tconst { js: ssrJs } = compile(pre, {\n\t\t\t\tcss: \"injected\",\n\t\t\t\tdev: isDev,\n\t\t\t\tfilename: entry,\n\t\t\t\tgenerate: \"server\"\n\t\t\t});\n\t\t\tconst ssrPath = join(pagesDir, `${name}.js`);\n\n\t\t\tconst { js: clientJs } = compile(pre, {\n\t\t\t\tcss: \"injected\",\n\t\t\t\tdev: isDev,\n\t\t\t\tfilename: entry,\n\t\t\t\tgenerate: \"client\"\n\t\t\t});\n\t\t\tconst clientComponentPath = join(clientDir, `${name}.js`);\n\n\t\t\tconst bootstrap = `import Component from \"../client/${name}.js\";\nimport { hydrate } from \"svelte\";\nhydrate(Component,{target:document.body,props:window.__INITIAL_PROPS__??{}});`;\n\t\t\tconst clientIndexPath = join(indexesDir, `${name}.js`);\n\n\t\t\tawait Promise.all([\n\t\t\t\twrite(ssrPath, ssrJs.code),\n\t\t\t\twrite(clientComponentPath, clientJs.code),\n\t\t\t\twrite(clientIndexPath, bootstrap)\n\t\t\t]);\n\n\t\t\treturn { clientIndexPath, ssrPath };\n\t\t})\n\t);\n\n\treturn {\n\t\tsvelteClientPaths: builds.map(({ clientIndexPath }) => clientIndexPath),\n\t\tsvelteServerPaths: builds.map(({ ssrPath }) => ssrPath)\n\t};\n};\n",
12
12
  "import {\n\tMILLISECONDS_IN_A_SECOND,\n\tTIME_PRECISION,\n\tMILLISECONDS_IN_A_MINUTE\n} from \"../constants\";\n\nexport const getDurationString = (duration: number) => {\n\tlet durationString;\n\n\tif (duration < MILLISECONDS_IN_A_SECOND) {\n\t\tdurationString = `${duration.toFixed(TIME_PRECISION)}ms`;\n\t} else if (duration < MILLISECONDS_IN_A_MINUTE) {\n\t\tdurationString = `${(duration / MILLISECONDS_IN_A_SECOND).toFixed(TIME_PRECISION)}s`;\n\t} else {\n\t\tdurationString = `${(duration / MILLISECONDS_IN_A_MINUTE).toFixed(TIME_PRECISION)}m`;\n\t}\n\n\treturn durationString;\n};\n",
13
+ "import { resolve, relative, sep } from \"node:path\";\n\nexport const validateSafePath = (targetPath: string, baseDirectory: string) => {\n\tconst absoluteBase = resolve(baseDirectory);\n\tconst absoluteTarget = resolve(baseDirectory, targetPath);\n\tif (relative(absoluteBase, absoluteTarget).startsWith(`..${sep}`)) {\n\t\tthrow new Error(`Unsafe path: ${targetPath}`);\n\t}\n\n\treturn absoluteTarget;\n};\n",
13
14
  "import { file } from \"bun\";\nimport { ComponentType, createElement } from \"react\";\nimport { renderToReadableStream as renderReactToReadableStream } from \"react-dom/server\";\nimport { Component } from \"svelte\";\nimport { renderToReadableStream as renderSvelteToReadableStream } from \"../svelte/renderToReadableStream\";\n\nexport const handleReactPageRequest = async <P extends object>(\n\tpageComponent: ComponentType<P>,\n\tindex: string,\n\t...props: keyof P extends never ? [] : [props: P]\n) => {\n\tconst [maybeProps] = props;\n\tconst element =\n\t\tmaybeProps !== undefined\n\t\t\t? createElement(pageComponent, maybeProps)\n\t\t\t: createElement(pageComponent);\n\n\tconst stream = await renderReactToReadableStream(element, {\n\t\tbootstrapModules: [index],\n\t\tbootstrapScriptContent: maybeProps\n\t\t\t? `window.__INITIAL_PROPS__=${JSON.stringify(maybeProps)}`\n\t\t\t: undefined\n\t});\n\n\treturn new Response(stream, {\n\t\theaders: { \"Content-Type\": \"text/html\" }\n\t});\n};\n\nexport const handleSveltePageRequest = async <\n\tProps extends Record<string, unknown>\n>(\n\tPageComponent: Component<Props>,\n\tmanifest: Record<string, string>,\n\tprops: Props\n) => {\n\tconst componentPath = PageComponent.toString();\n\tconst pathSegments = componentPath.split(\"/\");\n\tconst lastSegment = pathSegments[pathSegments.length - 1] ?? \"\";\n\tconst componentName = lastSegment.replace(/\\.svelte$/, \"\");\n\n\tconst pagePath = manifest[componentName];\n\tconst indexPath = manifest[`${componentName}Index`];\n\n\tconst { default: ImportedPageComponent } = await import(pagePath);\n\n\tconst stream = await renderSvelteToReadableStream(\n\t\tImportedPageComponent,\n\t\tprops,\n\t\t{\n\t\t\tbootstrapModules: [indexPath],\n\t\t\tbootstrapScriptContent: `window.__INITIAL_PROPS__=${JSON.stringify(\n\t\t\t\tprops\n\t\t\t)}`\n\t\t}\n\t);\n\n\treturn new Response(stream, {\n\t\theaders: { \"Content-Type\": \"text/html\" }\n\t});\n};\n\nexport const handleHTMLPageRequest = (html: string) => file(html);\n",
14
15
  "import type { Component } from \"svelte\";\nimport { render } from \"svelte/server\";\nimport { escapeScriptContent } from \"../utils/escapeScriptContent\";\n\nconst DEFAULT_CHUNK_SIZE = 16_384;\n\nexport type RenderStreamOptions = {\n\tbootstrapScriptContent?: string;\n\tbootstrapScripts?: string[];\n\tbootstrapModules?: string[];\n\tnonce?: string;\n\tonError?: (error: unknown) => void;\n\tprogressiveChunkSize?: number;\n\tsignal?: AbortSignal;\n};\n\nexport const renderToReadableStream = async <\n\tProps extends Record<string, unknown> = Record<string, never>\n>(\n\tcomponent: Component<Props>,\n\tprops: Props,\n\t{\n\t\tbootstrapScriptContent,\n\t\tbootstrapScripts = [],\n\t\tbootstrapModules = [],\n\t\tnonce,\n\t\tonError = console.error,\n\t\tprogressiveChunkSize = DEFAULT_CHUNK_SIZE,\n\t\tsignal\n\t}: RenderStreamOptions = {}\n) => {\n\ttry {\n\t\tconst { head, body } = render(component, { props });\n\t\tconst nonceAttr = nonce ? ` nonce=\"${nonce}\"` : \"\";\n\t\tconst scripts =\n\t\t\t(bootstrapScriptContent\n\t\t\t\t? `<script${nonceAttr}>${escapeScriptContent(bootstrapScriptContent)}</script>`\n\t\t\t\t: \"\") +\n\t\t\tbootstrapScripts\n\t\t\t\t.map((src) => `<script${nonceAttr} src=\"${src}\"></script>`)\n\t\t\t\t.join(\"\") +\n\t\t\tbootstrapModules\n\t\t\t\t.map(\n\t\t\t\t\t(src) =>\n\t\t\t\t\t\t`<script${nonceAttr} type=\"module\" src=\"${src}\"></script>`\n\t\t\t\t)\n\t\t\t\t.join(\"\");\n\t\tconst encoder = new TextEncoder();\n\t\t// Warning: this encodes the entire document into memory in one buffer\n\t\tconst full = encoder.encode(\n\t\t\t`<!DOCTYPE html><html lang=\"en\"><head>${head}</head><body>${body}${scripts}</body></html>`\n\t\t);\n\n\t\tlet offset = 0;\n\n\t\treturn new ReadableStream<Uint8Array>({\n\t\t\ttype: \"bytes\",\n\t\t\tcancel(reason) {\n\t\t\t\tonError?.(reason);\n\t\t\t},\n\t\t\tpull(controller) {\n\t\t\t\tif (signal?.aborted) {\n\t\t\t\t\tcontroller.close();\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (offset >= full.length) {\n\t\t\t\t\tcontroller.close();\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst end = Math.min(\n\t\t\t\t\toffset + progressiveChunkSize,\n\t\t\t\t\tfull.length\n\t\t\t\t);\n\t\t\t\tcontroller.enqueue(full.subarray(offset, end));\n\t\t\t\toffset = end;\n\t\t\t}\n\t\t});\n\t} catch (error) {\n\t\tonError?.(error);\n\t\tthrow error;\n\t}\n};\n",
15
16
  "const ESCAPE_LOOKUP: Record<string, string> = {\n\t\"\\u2028\": \"\\\\u2028\",\n\t\"\\u2029\": \"\\\\u2029\",\n\t\"&\": \"\\\\u0026\",\n\t\"<\": \"\\\\u003C\",\n\t\">\": \"\\\\u003E\"\n};\n\nconst ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\n\nexport const escapeScriptContent = (content: string) =>\n\tcontent.replace(ESCAPE_REGEX, (char) => ESCAPE_LOOKUP[char]);\n",
@@ -17,7 +18,7 @@
17
18
  "import os from \"os\";\n\nexport const getLocalIPAddress = () => {\n\tconst interfaces = os.networkInterfaces();\n\tconst addresses = Object.values(interfaces)\n\t\t.flat()\n\t\t.filter(\n\t\t\t(iface): iface is os.NetworkInterfaceInfo => iface !== undefined\n\t\t);\n\tconst ipAddress = addresses.find(\n\t\t(iface) => iface.family === \"IPv4\" && !iface.internal\n\t);\n\n\tif (ipAddress) return ipAddress.address; // Return the first non-internal IPv4 address\n\n\tconsole.warn(\"No IP address found, falling back to localhost\");\n\n\treturn \"localhost\"; // Fallback to localhost if no IP found\n};\n",
18
19
  "export const pageRouterPlugin = () => {\n\tconsole.log(\"Page Router Plugin Not Implemented Yet\");\n};\n"
19
20
  ],
20
- "mappings": "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",
21
- "debugId": "AB03027C26DB54CA64756E2164756E21",
21
+ "mappings": "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",
22
+ "debugId": "BCEAA6057B920D6664756E2164756E21",
22
23
  "names": []
23
24
  }
@@ -0,0 +1 @@
1
+ export declare const validateSafePath: (targetPath: string, baseDirectory: string) => string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@absolutejs/absolute",
3
- "version": "0.8.8",
3
+ "version": "0.8.9",
4
4
  "description": "A fullstack meta-framework for building web applications with TypeScript",
5
5
  "repository": {
6
6
  "type": "git",
@@ -20,10 +20,10 @@
20
20
  "release": "bun run format && bun run build && bun publish"
21
21
  },
22
22
  "peerDependencies": {
23
- "elysia": ">= 1.3.0",
24
- "react": ">= 19.1.0",
25
- "react-dom": ">= 19.1.0",
26
- "svelte": ">= 5.34.7"
23
+ "elysia": "^1.3.0",
24
+ "react": "^19.1.0",
25
+ "react-dom": "^19.1.0",
26
+ "svelte": "^5.34.7"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@elysiajs/static": "1.3.0",