@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.
- package/CHANGELOG.md +17 -0
- package/changelog.json +34 -1
- package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/build.js +12 -10
- package/dist/build.js.map +7 -6
- package/dist/cli/{androidEmulatorController-nybhzc6c.js → androidEmulatorController-v6chbhem.js} +2 -2
- package/dist/cli/{androidNativeWatcher-2930tb8c.js → androidNativeWatcher-mgqws6ag.js} +2 -2
- package/dist/cli/{compile-kbhxgjat.js → compile-5m830csy.js} +2 -2
- package/dist/cli/{dev-daa7tdht.js → dev-ww30tdrv.js} +10 -7
- package/dist/cli/{expoProject-kcfcmfba.js → expoProject-w2pzjwnx.js} +1 -1
- package/dist/cli/{index-28pbrd3q.js → index-18q9qc7f.js} +15 -2
- package/dist/cli/{index-vjepnxr0.js → index-5268nwjx.js} +1 -1
- package/dist/cli/{index-5skbydh0.js → index-hneb973j.js} +1 -1
- package/dist/cli/{index-82wpxhvv.js → index-k8r00xh9.js} +1 -1
- package/dist/cli/{index-bhcxtf1x.js → index-nxcwg9ma.js} +268 -141
- package/dist/cli/{index-qr0pc777.js → index-wtyg9cy0.js} +1 -1
- package/dist/cli/index.js +5 -5
- package/dist/cli/{iosNativeWatcher-t6gv0p1w.js → iosNativeWatcher-8w1gawg4.js} +2 -2
- package/dist/cli/{iosSimulatorController-5n2a9fxv.js → iosSimulatorController-5vhqvhg6.js} +2 -2
- package/dist/cli/{mobile-03zwncxx.js → mobile-21vsmrjd.js} +28 -39
- package/dist/cli/{start-r606d5v9.js → start-3bhf56tj.js} +3 -3
- package/dist/index.js +15 -12
- package/dist/index.js.map +8 -7
- package/dist/mobile/index.js +207 -100
- package/dist/mobile/index.js.map +6 -5
- package/dist/mobile/remoteMacAgentEntry.js +251 -184
- package/dist/src/dev/serverEntryCopies.d.ts +2 -0
- package/dist/src/mobile/capacitorProject.d.ts +4 -0
- package/dist/src/mobile/nativePackages.d.ts +10 -0
- 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": [
|
|
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-
|
|
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-
|
|
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-
|
|
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=)["'])(?!\/?(
|
|
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 = "/
|
|
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
|
-
|
|
24665
|
-
|
|
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
|
|
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=
|
|
38088
|
+
//# debugId=F90CA95595CDB1CF64756E2164756E21
|
|
38087
38089
|
//# sourceMappingURL=build.js.map
|