@absolutejs/absolute 0.20.0-beta.175 → 0.20.0-beta.176
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 +9 -0
- package/changelog.json +16 -0
- package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/build.js +4 -2
- package/dist/build.js.map +3 -3
- package/dist/index.js +13 -3
- package/dist/index.js.map +4 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,15 @@ 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.176 — 2026-11-14
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- **Deleting a server module no longer reports a failed hot update**
|
|
14
|
+
Deleting a server module logged "failed to update; the previous version keeps serving" with an ENOENT error, though nothing failed: there is nothing to apply, and the modules that imported it change through their own edits. A deleted module is now an unchanged outcome and logs nothing. Recreating it still applies as an edit.
|
|
15
|
+
- **A hot swap no longer runs the app's shutdown hooks against resources the new app still uses**
|
|
16
|
+
Editing server code that rebuilds the app used to run the replaced app's `onStop` hooks on every hot swap. An `onStop` is usually the app's shutdown: it closes the database pool, the audit log and the queues, which unchanged top-level statements created and the new app keeps. After the swap the new app held closed resources, so routes that used them failed until the dev server was restarted. Lifecycle hooks are now treated like statements: when the new app's `onStart`/`onStop` hooks are the same code as the replaced app's, their effect carries across the swap and neither runs. Editing a hook still stops the old app and starts the new one, once each.
|
|
17
|
+
|
|
9
18
|
## 0.20.0-beta.175 — 2026-11-14
|
|
10
19
|
|
|
11
20
|
### Fixed
|
package/changelog.json
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
"contract": 1,
|
|
3
3
|
"name": "@absolutejs/absolute",
|
|
4
4
|
"releases": [
|
|
5
|
+
{
|
|
6
|
+
"changes": [
|
|
7
|
+
{
|
|
8
|
+
"detail": "Deleting a server module logged \"failed to update; the previous version keeps serving\" with an ENOENT error, though nothing failed: there is nothing to apply, and the modules that imported it change through their own edits. A deleted module is now an unchanged outcome and logs nothing. Recreating it still applies as an edit.",
|
|
9
|
+
"kind": "fixed",
|
|
10
|
+
"summary": "Deleting a server module no longer reports a failed hot update"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"detail": "Editing server code that rebuilds the app used to run the replaced app's `onStop` hooks on every hot swap. An `onStop` is usually the app's shutdown: it closes the database pool, the audit log and the queues, which unchanged top-level statements created and the new app keeps. After the swap the new app held closed resources, so routes that used them failed until the dev server was restarted. Lifecycle hooks are now treated like statements: when the new app's `onStart`/`onStop` hooks are the same code as the replaced app's, their effect carries across the swap and neither runs. Editing a hook still stops the old app and starts the new one, once each.",
|
|
14
|
+
"kind": "fixed",
|
|
15
|
+
"summary": "A hot swap no longer runs the app's shutdown hooks against resources the new app still uses"
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"date": "2026-11-14",
|
|
19
|
+
"version": "0.20.0-beta.176"
|
|
20
|
+
},
|
|
5
21
|
{
|
|
6
22
|
"changes": [
|
|
7
23
|
{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
// .angular-partial-tmp-
|
|
2
|
+
// .angular-partial-tmp-cf87xr/src/core/streamingSlotRegistrar.ts
|
|
3
3
|
var STREAMING_SLOT_REGISTRAR_KEY = Symbol.for("absolutejs.streamingSlotRegistrar");
|
|
4
4
|
var STREAMING_SLOT_WARNING_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotWarningController");
|
|
5
5
|
var STREAMING_SLOT_COLLECTION_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotCollectionController");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
// .angular-partial-tmp-
|
|
2
|
+
// .angular-partial-tmp-cf87xr/src/core/streamingSlotRegistrar.ts
|
|
3
3
|
var STREAMING_SLOT_REGISTRAR_KEY = Symbol.for("absolutejs.streamingSlotRegistrar");
|
|
4
4
|
var STREAMING_SLOT_WARNING_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotWarningController");
|
|
5
5
|
var STREAMING_SLOT_COLLECTION_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotCollectionController");
|
|
@@ -46,7 +46,7 @@ var warnMissingStreamingSlotCollector = (primitiveName) => {
|
|
|
46
46
|
getWarningController()?.maybeWarn(primitiveName);
|
|
47
47
|
};
|
|
48
48
|
|
|
49
|
-
// .angular-partial-tmp-
|
|
49
|
+
// .angular-partial-tmp-cf87xr/src/core/streamingSlotRegistry.ts
|
|
50
50
|
var STREAMING_SLOT_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotAsyncLocalStorage");
|
|
51
51
|
var isObjectRecord2 = (value) => Boolean(value) && typeof value === "object";
|
|
52
52
|
var isAsyncLocalStorage = (value) => isObjectRecord2(value) && ("getStore" in value) && typeof value.getStore === "function" && ("run" in value) && typeof value.run === "function";
|
package/dist/build.js
CHANGED
|
@@ -38031,7 +38031,7 @@ var MAX_PROPAGATION_STEPS = 500, realPath4 = (path) => {
|
|
|
38031
38031
|
if (typeof namespace !== "object" || namespace === null)
|
|
38032
38032
|
throw new Error(`${path} did not evaluate to a module`);
|
|
38033
38033
|
return Object.fromEntries(Object.entries(namespace));
|
|
38034
|
-
}, display = (path) => relative34(process.cwd(), path) || path, SLOW_UPDATE_MS = 500, SLOWEST_SHOWN = 3, statementLabel = (id) => {
|
|
38034
|
+
}, isMissingFile3 = (error) => error instanceof Error && ("code" in error) && error.code === "ENOENT", display = (path) => relative34(process.cwd(), path) || path, SLOW_UPDATE_MS = 500, SLOWEST_SHOWN = 3, statementLabel = (id) => {
|
|
38035
38035
|
const name = id.slice(id.indexOf(":") + 1);
|
|
38036
38036
|
return /^\d+$/.test(name) ? `statement #${name}` : name;
|
|
38037
38037
|
}, slowestStatements = (modules) => modules.flatMap((module) => [...moduleRecord(module)?.lastTimings ?? []].map(([id, duration]) => ({
|
|
@@ -38074,6 +38074,8 @@ var MAX_PROPAGATION_STEPS = 500, realPath4 = (path) => {
|
|
|
38074
38074
|
try {
|
|
38075
38075
|
source = readFileSync56(path, "utf-8");
|
|
38076
38076
|
} catch (error) {
|
|
38077
|
+
if (isMissingFile3(error))
|
|
38078
|
+
return { status: "unchanged" };
|
|
38077
38079
|
reportFailure(path, error);
|
|
38078
38080
|
return { error, status: "failed" };
|
|
38079
38081
|
}
|
|
@@ -42094,5 +42096,5 @@ export {
|
|
|
42094
42096
|
devBuild
|
|
42095
42097
|
};
|
|
42096
42098
|
|
|
42097
|
-
//# debugId=
|
|
42099
|
+
//# debugId=2C9457EC4704C29664756E2164756E21
|
|
42098
42100
|
//# sourceMappingURL=build.js.map
|