@absolutejs/absolute 0.20.0-beta.116 → 0.20.0-beta.118

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 (31) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/changelog.json +34 -1
  3. package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
  4. package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
  5. package/dist/build.js +12 -10
  6. package/dist/build.js.map +7 -6
  7. package/dist/cli/{androidEmulatorController-nybhzc6c.js → androidEmulatorController-v6chbhem.js} +2 -2
  8. package/dist/cli/{androidNativeWatcher-2930tb8c.js → androidNativeWatcher-mgqws6ag.js} +2 -2
  9. package/dist/cli/{compile-kbhxgjat.js → compile-5m830csy.js} +2 -2
  10. package/dist/cli/{dev-daa7tdht.js → dev-ww30tdrv.js} +10 -7
  11. package/dist/cli/{expoProject-kcfcmfba.js → expoProject-w2pzjwnx.js} +1 -1
  12. package/dist/cli/{index-28pbrd3q.js → index-18q9qc7f.js} +15 -2
  13. package/dist/cli/{index-vjepnxr0.js → index-5268nwjx.js} +1 -1
  14. package/dist/cli/{index-5skbydh0.js → index-hneb973j.js} +1 -1
  15. package/dist/cli/{index-82wpxhvv.js → index-k8r00xh9.js} +1 -1
  16. package/dist/cli/{index-bhcxtf1x.js → index-nxcwg9ma.js} +268 -141
  17. package/dist/cli/{index-qr0pc777.js → index-wtyg9cy0.js} +1 -1
  18. package/dist/cli/index.js +5 -5
  19. package/dist/cli/{iosNativeWatcher-t6gv0p1w.js → iosNativeWatcher-8w1gawg4.js} +2 -2
  20. package/dist/cli/{iosSimulatorController-5n2a9fxv.js → iosSimulatorController-5vhqvhg6.js} +2 -2
  21. package/dist/cli/{mobile-03zwncxx.js → mobile-21vsmrjd.js} +28 -39
  22. package/dist/cli/{start-r606d5v9.js → start-3bhf56tj.js} +3 -3
  23. package/dist/index.js +15 -12
  24. package/dist/index.js.map +8 -7
  25. package/dist/mobile/index.js +207 -100
  26. package/dist/mobile/index.js.map +6 -5
  27. package/dist/mobile/remoteMacAgentEntry.js +251 -184
  28. package/dist/src/dev/serverEntryCopies.d.ts +2 -0
  29. package/dist/src/mobile/capacitorProject.d.ts +4 -0
  30. package/dist/src/mobile/nativePackages.d.ts +10 -0
  31. package/package.json +5 -3
package/CHANGELOG.md CHANGED
@@ -6,6 +6,23 @@ This file is generated by `absolute-changelog` from the entries in
6
6
  `changelog/`. Edit an entry, not this file — and add new ones under
7
7
  `changelog/unreleased/`.
8
8
 
9
+ ## 0.20.0-beta.118 — 2026-09-23
10
+
11
+ ### Fixed
12
+
13
+ - **Preserve compiled HTML asset URLs during unrelated incremental page builds and prevent markup URL matching across adjacent tags; use the compatible fixed OpenAPI package**
14
+
15
+ ## 0.20.0-beta.117 — 2026-09-21
16
+
17
+ ### Fixed
18
+
19
+ - **Ignore generated server snapshots at every watch depth and avoid treating their creation as an editor save.**
20
+ Recursive HMR paths could include a directory before .absolutejs-hmr files, bypass the basename-only filter, and restart the development server repeatedly. Generated snapshots now bypass editor atomic-write recovery in all three watcher paths; ordinary source edits still trigger HMR.
21
+ - **Make clean CLI builds and release checks self-contained.**
22
+ Declare the jiti config loader dependency, build nested vendor fixtures inside the test, and reject missing native release arguments before loading application configuration. Normalize existing release-fixture lint issues without weakening checks.
23
+ - **Initialize native app targets before the first bundle and safely retry existing projects.**
24
+ Create only a missing scaffold index so Capacitor completes its initial platform sync, without replacing compiled web assets or manufacturing a release manifest. Existing platform directories are synchronized on retry instead of failing a second add. Native initialization uses the current pinned Devices packages in the freshly built CLI.
25
+
9
26
  ## 0.20.0-beta.116 — 2026-09-18
10
27
 
11
28
  ### Fixed
package/changelog.json CHANGED
@@ -2,13 +2,46 @@
2
2
  "contract": 1,
3
3
  "name": "@absolutejs/absolute",
4
4
  "releases": [
5
+ {
6
+ "changes": [
7
+ {
8
+ "kind": "fixed",
9
+ "summary": "Preserve compiled HTML asset URLs during unrelated incremental page builds and prevent markup URL matching across adjacent tags; use the compatible fixed OpenAPI package"
10
+ }
11
+ ],
12
+ "date": "2026-09-23",
13
+ "version": "0.20.0-beta.118"
14
+ },
15
+ {
16
+ "changes": [
17
+ {
18
+ "detail": "Recursive HMR paths could include a directory before .absolutejs-hmr files, bypass the basename-only filter, and restart the development server repeatedly. Generated snapshots now bypass editor atomic-write recovery in all three watcher paths; ordinary source edits still trigger HMR.",
19
+ "kind": "fixed",
20
+ "summary": "Ignore generated server snapshots at every watch depth and avoid treating their creation as an editor save."
21
+ },
22
+ {
23
+ "detail": "Declare the jiti config loader dependency, build nested vendor fixtures inside the test, and reject missing native release arguments before loading application configuration. Normalize existing release-fixture lint issues without weakening checks.",
24
+ "kind": "fixed",
25
+ "summary": "Make clean CLI builds and release checks self-contained."
26
+ },
27
+ {
28
+ "detail": "Create only a missing scaffold index so Capacitor completes its initial platform sync, without replacing compiled web assets or manufacturing a release manifest. Existing platform directories are synchronized on retry instead of failing a second add. Native initialization uses the current pinned Devices packages in the freshly built CLI.",
29
+ "kind": "fixed",
30
+ "summary": "Initialize native app targets before the first bundle and safely retry existing projects."
31
+ }
32
+ ],
33
+ "date": "2026-09-21",
34
+ "version": "0.20.0-beta.117"
35
+ },
5
36
  {
6
37
  "changes": [
7
38
  {
8
39
  "detail": "Generated TypeScript declaration aliases no longer bypass Expo runtime resolution. Archive identity and per-file checks reject corrupt data and repair stale cached files. The supported Android WebView extension keeps local assets offline and the native bridge origin-scoped without TLS exceptions or dependency patches. Expo runtime fingerprints require a new native binary. Installed Android acceptance now verifies fresh trusted-server props and exactly-once offline Sync reconciliation for both engines; iOS requires the separate partner checks.",
9
40
  "kind": "fixed",
10
41
  "summary": "Fix Expo Android embedded startup with a scoped HTTPS asset host, one runtime asset registry, verified archive extraction, and readiness after rendering.",
11
- "symbols": ["AbsoluteMobileUpdateRuntimeDescriptor"]
42
+ "symbols": [
43
+ "AbsoluteMobileUpdateRuntimeDescriptor"
44
+ ]
12
45
  }
13
46
  ],
14
47
  "date": "2026-09-18",
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  var __require = import.meta.require;
3
3
 
4
- // .angular-partial-tmp-A3JHKD/src/core/streamingSlotRegistrar.ts
4
+ // .angular-partial-tmp-ZjXESg/src/core/streamingSlotRegistrar.ts
5
5
  var STREAMING_SLOT_REGISTRAR_KEY = Symbol.for("absolutejs.streamingSlotRegistrar");
6
6
  var STREAMING_SLOT_WARNING_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotWarningController");
7
7
  var STREAMING_SLOT_COLLECTION_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotCollectionController");
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  var __require = import.meta.require;
3
3
 
4
- // .angular-partial-tmp-A3JHKD/src/core/streamingSlotRegistrar.ts
4
+ // .angular-partial-tmp-ZjXESg/src/core/streamingSlotRegistrar.ts
5
5
  var STREAMING_SLOT_REGISTRAR_KEY = Symbol.for("absolutejs.streamingSlotRegistrar");
6
6
  var STREAMING_SLOT_WARNING_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotWarningController");
7
7
  var STREAMING_SLOT_COLLECTION_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotCollectionController");
@@ -48,7 +48,7 @@ var warnMissingStreamingSlotCollector = (primitiveName) => {
48
48
  getWarningController()?.maybeWarn(primitiveName);
49
49
  };
50
50
 
51
- // .angular-partial-tmp-A3JHKD/src/core/streamingSlotRegistry.ts
51
+ // .angular-partial-tmp-ZjXESg/src/core/streamingSlotRegistry.ts
52
52
  var STREAMING_SLOT_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotAsyncLocalStorage");
53
53
  var isObjectRecord2 = (value) => Boolean(value) && typeof value === "object";
54
54
  var isAsyncLocalStorage = (value) => isObjectRecord2(value) && ("getStore" in value) && typeof value.getStore === "function" && ("run" in value) && typeof value.run === "function";
package/dist/build.js CHANGED
@@ -11655,7 +11655,7 @@ var replaceAssetRef = (match, prefix, dir, name, ext, suffix, manifest, filePath
11655
11655
  return `${prefix}${newPath}${suffix}`;
11656
11656
  }, updateAssetPaths = async (manifest, directory) => {
11657
11657
  const htmlFiles = await scanEntryPoints(directory, "*.html");
11658
- const assetRegex = /((?:<script[^>]+src=|<link[^>]*?rel=["']stylesheet["'][^>]*?href=)["'])(?!\/?(?:.*\/)?htmx\.min\.js)(\/?(?:.*\/)?)([^./"']+)(?:\.[^."'/]+)?(\.(?:js|ts|css))(["'][^>]*>)/g;
11658
+ const assetRegex = /((?:<script[^>]+src=|<link[^>]*?rel=["']stylesheet["'][^>]*?href=)["'])(?!\/?(?:[^"'<>]*\/)?htmx\.min\.js)(\/?(?:[^"'<>]*\/)?)([^./"']+)(?:\.[^."'/]+)?(\.(?:js|ts|css))(["'][^>]*>)/g;
11659
11659
  const tasks = htmlFiles.map(async (filePath) => {
11660
11660
  const original = await readFile4(filePath, "utf8");
11661
11661
  const updated = original.replace(assetRegex, (match, prefix, dir, name, ext, suffix) => replaceAssetRef(match, prefix, dir, name, ext, suffix, manifest, filePath));
@@ -21861,7 +21861,7 @@ var init_compileAngular = __esm(() => {
21861
21861
 
21862
21862
  // node_modules/content-tag/pkg/node/content_tag.cjs
21863
21863
  var require_content_tag = __commonJS(function(exports, module) {
21864
- var __dirname = "/home/alexkahn/abs/absolutejs/node_modules/content-tag/pkg/node";
21864
+ var __dirname = "/tmp/absolute-create-release/node_modules/content-tag/pkg/node";
21865
21865
  var imports = {};
21866
21866
  imports["__wbindgen_placeholder__"] = exports;
21867
21867
  var wasm;
@@ -24638,7 +24638,6 @@ ${offenders.map((o3) => ` \u2022 ${o3}`).join(`
24638
24638
  logWarn(`Manifest key collision: "${key}" was "${previousPath}" and will be overwritten by "${nextPath}". Rename one of the conflicting pages so each manifest key is unique across html/htmx (and other framework) directories.`);
24639
24639
  };
24640
24640
  const shouldCopyHtmx = !isIncremental || normalizedIncrementalFiles?.some((f2) => f2.includes("/htmx/") && f2.endsWith(".html"));
24641
- const shouldUpdateHtmlAssetPaths = !isIncremental || normalizedIncrementalFiles?.some((f2) => f2.includes("/html/") && (f2.endsWith(".html") || isStylePath(f2)));
24642
24641
  const shouldUpdateHtmxAssetPaths = !isIncremental || normalizedIncrementalFiles?.some((f2) => f2.includes("/htmx/") && (f2.endsWith(".html") || isStylePath(f2)));
24643
24642
  const hmrClientBundle = hmrClientBundlePromise ? await hmrClientBundlePromise : null;
24644
24643
  const injectHMRIntoHTMLFile = (filePath, framework) => {
@@ -24661,10 +24660,8 @@ ${offenders.map((o3) => ` \u2022 ${o3}`).join(`
24661
24660
  force: true,
24662
24661
  recursive: true
24663
24662
  });
24664
- if (shouldUpdateHtmlAssetPaths) {
24665
- await updateAssetPaths(manifest, outputHtmlPages);
24666
- await optimizeHtmlImages(outputHtmlPages);
24667
- }
24663
+ await updateAssetPaths(manifest, outputHtmlPages);
24664
+ await optimizeHtmlImages(outputHtmlPages);
24668
24665
  const htmlPageFiles = await scanEntryPoints(outputHtmlPages, "*.html");
24669
24666
  await transformStaticPagesWithIslands(islandRegistryPath, htmlPageFiles);
24670
24667
  for (const htmlFile of htmlPageFiles) {
@@ -25827,6 +25824,10 @@ var init_devPrescan = __esm(() => {
25827
25824
  PRESCAN_DIR = join47(".absolutejs", "dev-prescan");
25828
25825
  });
25829
25826
 
25827
+ // src/dev/serverEntryCopies.ts
25828
+ var isAbsoluteServerEntryCopyPath = (path) => /(?:^|[/\\])\.absolutejs-hmr-/.test(path);
25829
+ var init_serverEntryCopies = () => {};
25830
+
25830
25831
  // src/dev/fileWatcher.ts
25831
25832
  import { watch } from "fs";
25832
25833
  import { existsSync as existsSync40, readdirSync as readdirSync10, statSync as statSync5 } from "fs";
@@ -25849,7 +25850,7 @@ var safeRemoveFromGraph = (graph, fullPath) => {
25849
25850
  operation: "add"
25850
25851
  });
25851
25852
  }
25852
- }, ATOMIC_WRITE_TEMP_PATTERNS, shouldSkipFilename = (filename, isStylesDir) => !isStylesDir && (filename === "compiled" || filename === "generated" || filename === "build" || filename === "indexes" || filename === "server" || filename === "client" || filename.includes("/compiled/") || filename.includes("/generated/") || filename.includes("/build/") || filename.includes("/indexes/") || filename.includes("/server/") || filename.includes("/client/") || filename.startsWith("compiled/") || filename.startsWith("generated/") || filename.startsWith("build/") || filename.startsWith("indexes/") || filename.startsWith("server/") || filename.startsWith("client/")) || filename.endsWith("/") || filename.includes(".tmp.") || filename.endsWith(".tmp") || filename.endsWith("~") || filename.startsWith(".#") || filename.startsWith(".absolutejs-hmr-") || ATOMIC_WRITE_TEMP_PATTERNS.some((pattern) => pattern.test(filename)), setupWatcher = (absolutePath, isStylesDir, state, onFileChange) => {
25853
+ }, ATOMIC_WRITE_TEMP_PATTERNS, shouldSkipFilename = (filename, isStylesDir) => !isStylesDir && (filename === "compiled" || filename === "generated" || filename === "build" || filename === "indexes" || filename === "server" || filename === "client" || filename.includes("/compiled/") || filename.includes("/generated/") || filename.includes("/build/") || filename.includes("/indexes/") || filename.includes("/server/") || filename.includes("/client/") || filename.startsWith("compiled/") || filename.startsWith("generated/") || filename.startsWith("build/") || filename.startsWith("indexes/") || filename.startsWith("server/") || filename.startsWith("client/")) || filename.endsWith("/") || filename.includes(".tmp.") || filename.endsWith(".tmp") || filename.endsWith("~") || filename.startsWith(".#") || isAbsoluteServerEntryCopyPath(filename) || ATOMIC_WRITE_TEMP_PATTERNS.some((pattern) => pattern.test(filename)), setupWatcher = (absolutePath, isStylesDir, state, onFileChange) => {
25853
25854
  const ATOMIC_RECOVERY_WINDOW_MS = 60000;
25854
25855
  const atomicRecoveryScan = (eventDir) => {
25855
25856
  let entries;
@@ -25879,7 +25880,7 @@ var safeRemoveFromGraph = (graph, fullPath) => {
25879
25880
  }
25880
25881
  };
25881
25882
  const watcher = watch(absolutePath, { recursive: true }, (event, filename) => {
25882
- if (!filename)
25883
+ if (!filename || isAbsoluteServerEntryCopyPath(filename))
25883
25884
  return;
25884
25885
  if (shouldSkipFilename(filename, isStylesDir)) {
25885
25886
  if (event === "rename") {
@@ -25930,6 +25931,7 @@ var safeRemoveFromGraph = (graph, fullPath) => {
25930
25931
  });
25931
25932
  };
25932
25933
  var init_fileWatcher = __esm(() => {
25934
+ init_serverEntryCopies();
25933
25935
  init_telemetryEvent();
25934
25936
  init_dependencyGraph();
25935
25937
  init_pathUtils();
@@ -38083,5 +38085,5 @@ export {
38083
38085
  devBuild
38084
38086
  };
38085
38087
 
38086
- //# debugId=EF374DB4847C1F1864756E2164756E21
38088
+ //# debugId=F90CA95595CDB1CF64756E2164756E21
38087
38089
  //# sourceMappingURL=build.js.map