@absolutejs/absolute 0.20.0-beta.176 → 0.20.0-beta.177

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 CHANGED
@@ -6,6 +6,13 @@ 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.177 — 2026-11-14
10
+
11
+ ### Fixed
12
+
13
+ - **A hot swap keeps shared resources open wherever `.use(networking)` sits in the app chain**
14
+ beta.176 kept an unchanged app's `onStop` from running on a hot swap, but only when `networking` was the last thing chained onto the app. `networking` swaps apps while the statement that builds the app is still running, so in `app.use(networking).onStop(shutdown)` the new app did not have its `onStop` yet when the hooks were compared. The swap decided the hooks had changed and shut the replaced app down, closing the database pool, audit log and queues the new app keeps. The swap now waits for that statement to finish before comparing, so the order of `.use(networking)` and the app's lifecycle hooks no longer matters.
15
+
9
16
  ## 0.20.0-beta.176 — 2026-11-14
10
17
 
11
18
  ### Fixed
package/changelog.json CHANGED
@@ -2,6 +2,17 @@
2
2
  "contract": 1,
3
3
  "name": "@absolutejs/absolute",
4
4
  "releases": [
5
+ {
6
+ "changes": [
7
+ {
8
+ "detail": "beta.176 kept an unchanged app's `onStop` from running on a hot swap, but only when `networking` was the last thing chained onto the app. `networking` swaps apps while the statement that builds the app is still running, so in `app.use(networking).onStop(shutdown)` the new app did not have its `onStop` yet when the hooks were compared. The swap decided the hooks had changed and shut the replaced app down, closing the database pool, audit log and queues the new app keeps. The swap now waits for that statement to finish before comparing, so the order of `.use(networking)` and the app's lifecycle hooks no longer matters.",
9
+ "kind": "fixed",
10
+ "summary": "A hot swap keeps shared resources open wherever `.use(networking)` sits in the app chain"
11
+ }
12
+ ],
13
+ "date": "2026-11-14",
14
+ "version": "0.20.0-beta.177"
15
+ },
5
16
  {
6
17
  "changes": [
7
18
  {
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- // .angular-partial-tmp-cf87xr/src/core/streamingSlotRegistrar.ts
2
+ // .angular-partial-tmp-DPRYTw/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-cf87xr/src/core/streamingSlotRegistrar.ts
2
+ // .angular-partial-tmp-DPRYTw/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-cf87xr/src/core/streamingSlotRegistry.ts
49
+ // .angular-partial-tmp-DPRYTw/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/index.js CHANGED
@@ -43296,6 +43296,7 @@ var adoptListeningApp = (app) => {
43296
43296
  globalThis.__absoluteLiveApp = app;
43297
43297
  };
43298
43298
  var swapApp = async (next) => {
43299
+ await Promise.resolve();
43299
43300
  const previous = globalThis.__absoluteLiveApp;
43300
43301
  globalThis.__absoluteLiveApp = next;
43301
43302
  if (previous === next)
@@ -49443,5 +49444,5 @@ export {
49443
49444
  wrapPageHandlerWithStreamingSlots
49444
49445
  };
49445
49446
 
49446
- //# debugId=BD6A6E3CCC95441664756E2164756E21
49447
+ //# debugId=A5AE9016FB5A9CEA64756E2164756E21
49447
49448
  //# sourceMappingURL=index.js.map