@absolutejs/absolute 0.19.0-beta.21 → 0.19.0-beta.22

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
@@ -203730,6 +203730,140 @@ var init_rebuildTrigger = __esm(() => {
203730
203730
  init_pageHandler();
203731
203731
  });
203732
203732
 
203733
+ // src/build/buildDepVendor.ts
203734
+ var exports_buildDepVendor = {};
203735
+ __export(exports_buildDepVendor, {
203736
+ computeDepVendorPaths: () => computeDepVendorPaths,
203737
+ buildDepVendor: () => buildDepVendor
203738
+ });
203739
+ import { mkdirSync as mkdirSync7 } from "fs";
203740
+ import { join as join14 } from "path";
203741
+ import { rm as rm7 } from "fs/promises";
203742
+ var {build: bunBuild5, Glob: Glob6 } = globalThis.Bun;
203743
+ var toSafeFileName3 = (specifier) => specifier.replace(/\//g, "_").replace(/@/g, "").replace(/-/g, "_"), isResolvable2 = (specifier) => {
203744
+ try {
203745
+ __require.resolve(specifier);
203746
+ return true;
203747
+ } catch {
203748
+ return false;
203749
+ }
203750
+ }, isBareSpecifier = (spec) => !spec.startsWith(".") && !spec.startsWith("/") && !spec.startsWith("@src/"), FRAMEWORK_SPECIFIERS, scanBareImports = async (directories) => {
203751
+ const specifiers = new Set;
203752
+ const transpiler3 = new Bun.Transpiler({ loader: "tsx" });
203753
+ for (const dir of directories) {
203754
+ const glob = new Glob6("**/*.{ts,tsx,js,jsx}");
203755
+ try {
203756
+ for await (const file4 of glob.scan({
203757
+ absolute: true,
203758
+ cwd: dir
203759
+ })) {
203760
+ if (file4.includes("node_modules"))
203761
+ continue;
203762
+ if (file4.includes("/build/"))
203763
+ continue;
203764
+ if (file4.includes("/dist/"))
203765
+ continue;
203766
+ if (file4.includes("/indexes/"))
203767
+ continue;
203768
+ try {
203769
+ const content = await Bun.file(file4).text();
203770
+ const imports = transpiler3.scanImports(content);
203771
+ for (const imp of imports) {
203772
+ if (isBareSpecifier(imp.path) && !FRAMEWORK_SPECIFIERS.has(imp.path)) {
203773
+ specifiers.add(imp.path);
203774
+ }
203775
+ }
203776
+ } catch {}
203777
+ }
203778
+ } catch {}
203779
+ }
203780
+ return Array.from(specifiers).filter(isResolvable2);
203781
+ }, generateEntrySource2 = async (specifier) => {
203782
+ try {
203783
+ const mod = await import(specifier);
203784
+ const exportNames = Object.keys(mod).filter((key) => key !== "default" && key !== "__esModule");
203785
+ const lines = [];
203786
+ if (exportNames.length > 0) {
203787
+ lines.push(`export { ${exportNames.join(", ")} } from '${specifier}';`);
203788
+ }
203789
+ if ("default" in mod) {
203790
+ lines.push(`export { default } from '${specifier}';`);
203791
+ }
203792
+ return lines.join(`
203793
+ `) + `
203794
+ `;
203795
+ } catch {
203796
+ return `export * from '${specifier}';
203797
+ `;
203798
+ }
203799
+ }, computeDepVendorPaths = async (directories) => {
203800
+ const specifiers = await scanBareImports(directories);
203801
+ const paths = {};
203802
+ for (const specifier of specifiers) {
203803
+ paths[specifier] = `/vendor/${toSafeFileName3(specifier)}.js`;
203804
+ }
203805
+ return paths;
203806
+ }, buildDepVendor = async (buildDir, directories) => {
203807
+ const specifiers = await scanBareImports(directories);
203808
+ if (specifiers.length === 0)
203809
+ return {};
203810
+ const vendorDir = join14(buildDir, "vendor");
203811
+ mkdirSync7(vendorDir, { recursive: true });
203812
+ const tmpDir = join14(buildDir, "_dep_vendor_tmp");
203813
+ mkdirSync7(tmpDir, { recursive: true });
203814
+ const entrypoints = await Promise.all(specifiers.map(async (specifier) => {
203815
+ const safeName = toSafeFileName3(specifier);
203816
+ const entryPath = join14(tmpDir, `${safeName}.ts`);
203817
+ const source = await generateEntrySource2(specifier);
203818
+ await Bun.write(entryPath, source);
203819
+ return entryPath;
203820
+ }));
203821
+ const result = await bunBuild5({
203822
+ entrypoints,
203823
+ format: "esm",
203824
+ minify: false,
203825
+ naming: "[name].[ext]",
203826
+ outdir: vendorDir,
203827
+ splitting: true,
203828
+ target: "browser",
203829
+ throw: false
203830
+ });
203831
+ await rm7(tmpDir, { force: true, recursive: true });
203832
+ if (!result.success) {
203833
+ console.warn("\u26A0\uFE0F Dependency vendor build had errors:", result.logs);
203834
+ }
203835
+ const paths = {};
203836
+ for (const specifier of specifiers) {
203837
+ paths[specifier] = `/vendor/${toSafeFileName3(specifier)}.js`;
203838
+ }
203839
+ return paths;
203840
+ };
203841
+ var init_buildDepVendor = __esm(() => {
203842
+ FRAMEWORK_SPECIFIERS = new Set([
203843
+ "react",
203844
+ "react-dom",
203845
+ "react-dom/client",
203846
+ "react-dom/server",
203847
+ "react/jsx-runtime",
203848
+ "react/jsx-dev-runtime",
203849
+ "react-refresh/runtime",
203850
+ "svelte",
203851
+ "svelte/internal",
203852
+ "svelte/internal/client",
203853
+ "svelte/server",
203854
+ "svelte/compiler",
203855
+ "vue",
203856
+ "vue/server-renderer",
203857
+ "@vue/compiler-sfc",
203858
+ "@angular/core",
203859
+ "@angular/common",
203860
+ "@angular/compiler",
203861
+ "@angular/platform-browser",
203862
+ "@angular/platform-server",
203863
+ "@angular/ssr"
203864
+ ]);
203865
+ });
203866
+
203733
203867
  // src/core/devBuild.ts
203734
203868
  var exports_devBuild = {};
203735
203869
  __export(exports_devBuild, {
@@ -203911,7 +204045,26 @@ var FRAMEWORK_DIR_KEYS, parseDirectoryConfig = (source) => {
203911
204045
  await loadVendorFiles(state.assetStore, vendorDir, "angular");
203912
204046
  return true;
203913
204047
  }) : undefined;
203914
- await Promise.all([buildReactVendorTask, buildAngularVendorTask]);
204048
+ const { buildDepVendor: buildDepVendor2 } = await Promise.resolve().then(() => (init_buildDepVendor(), exports_buildDepVendor));
204049
+ const sourceDirs = [
204050
+ config.reactDirectory,
204051
+ config.svelteDirectory,
204052
+ config.vueDirectory,
204053
+ config.angularDirectory,
204054
+ config.htmlDirectory,
204055
+ config.htmxDirectory
204056
+ ].filter((dir) => Boolean(dir));
204057
+ const buildDepVendorTask = buildDepVendor2(state.resolvedPaths.buildDir, sourceDirs).then(async (depPaths) => {
204058
+ const vendorDir = resolve21(state.resolvedPaths.buildDir, "vendor");
204059
+ await loadVendorFiles(state.assetStore, vendorDir, "vendor");
204060
+ globalThis.__depVendorPaths = depPaths;
204061
+ return true;
204062
+ });
204063
+ await Promise.all([
204064
+ buildReactVendorTask,
204065
+ buildAngularVendorTask,
204066
+ buildDepVendorTask
204067
+ ]);
203915
204068
  state.manifest = manifest;
203916
204069
  startFileWatching(state, config, (filePath) => {
203917
204070
  queueFileChange(state, filePath, config, (newBuildResult) => {
@@ -204104,7 +204257,7 @@ var handleHTMLPageRequest = (pagePath) => file(pagePath);
204104
204257
  var handleHTMXPageRequest = (pagePath) => file(pagePath);
204105
204258
  // src/core/prepare.ts
204106
204259
  import { readFileSync as readFileSync10 } from "fs";
204107
- import { resolve as resolve22 } from "path";
204260
+ import { relative as relative8, resolve as resolve22 } from "path";
204108
204261
 
204109
204262
  // src/utils/loadConfig.ts
204110
204263
  import { resolve } from "path";
@@ -204132,9 +204285,11 @@ var prepare = async (configOrPath) => {
204132
204285
  const { staticPlugin: staticPlugin2 } = await import("@elysiajs/static");
204133
204286
  const { createModuleServer: createModuleServer2 } = await Promise.resolve().then(() => (init_moduleServer(), exports_moduleServer));
204134
204287
  const { getDevVendorPaths: getDevVendorPaths2, getAngularVendorPaths: getAngularVendorPaths2 } = await Promise.resolve().then(() => exports_devVendorPaths);
204288
+ const depVendorPaths = globalThis.__depVendorPaths ?? {};
204135
204289
  const allVendorPaths = {
204136
204290
  ...getDevVendorPaths2() ?? {},
204137
- ...getAngularVendorPaths2() ?? {}
204291
+ ...getAngularVendorPaths2() ?? {},
204292
+ ...depVendorPaths
204138
204293
  };
204139
204294
  const moduleHandler = createModuleServer2({
204140
204295
  projectRoot: process.cwd(),
@@ -204144,13 +204299,12 @@ var prepare = async (configOrPath) => {
204144
204299
  const { SRC_URL_PREFIX: SRC_URL_PREFIX2 } = await Promise.resolve().then(() => (init_moduleServer(), exports_moduleServer));
204145
204300
  const reactDir = config.reactDirectory;
204146
204301
  if (reactDir) {
204147
- const { relative: relPath } = await import("path");
204148
204302
  const indexesDir = resolve22(reactDir, "indexes");
204149
- for (const [key, value] of Object.entries(result.manifest)) {
204150
- if (key.endsWith("Index") && typeof value === "string" && value.includes("/indexes/")) {
204303
+ for (const key of Object.keys(result.manifest)) {
204304
+ if (key.endsWith("Index") && typeof result.manifest[key] === "string" && result.manifest[key].includes("/indexes/")) {
204151
204305
  const fileName = key.replace(/Index$/, "") + ".tsx";
204152
204306
  const srcPath = resolve22(indexesDir, fileName);
204153
- const rel = relPath(process.cwd(), srcPath).replace(/\\/g, "/");
204307
+ const rel = relative8(process.cwd(), srcPath).replace(/\\/g, "/");
204154
204308
  result.manifest[key] = `${SRC_URL_PREFIX2}${rel}`;
204155
204309
  }
204156
204310
  }
@@ -204321,5 +204475,5 @@ export {
204321
204475
  ANGULAR_INIT_TIMEOUT_MS
204322
204476
  };
204323
204477
 
204324
- //# debugId=95A71A3BF45766F864756E2164756E21
204478
+ //# debugId=20364D147313555D64756E2164756E21
204325
204479
  //# sourceMappingURL=index.js.map