@absolutejs/absolute 0.20.0-beta.160 → 0.20.0-beta.162

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,20 @@ 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.162 — 2026-11-02
10
+
11
+ ### Fixed
12
+
13
+ - **Apps share one copy of typebox, exact-mirror, the Elysia plugins and pwa with the framework** (`prepare`)
14
+ The framework pinned packages apps install themselves to exact versions: typebox 1.3.16, exact-mirror 1.2.6, @elysia/static, @elysia/openapi and @elysia/server-timing 2.0.0-rc.0, and @absolutejs/pwa 0.16.3. An app on any other version got a second copy nested under the framework, and for typebox that is a correctness hazard, not bloat: Elysia validates with the app's typebox, and a schema built by a different copy is foreign to it. renown could not move to typebox 1.4 for this reason (2026-11-01). They are now ranges within the same major (pwa within 0.16 and 0.17, whose 0.17.0 only adds asset-failure recovery), and the framework's own tests run on the newest of each: typebox 1.4.3, Elysia 2.0.0-rc.1, pwa 0.17.0.
15
+
16
+ ## 0.20.0-beta.161 — 2026-11-01
17
+
18
+ ### Changed
19
+
20
+ - **Production servers no longer import absolute.config.ts at runtime** (`prepare`)
21
+ A production server imported absolute.config.ts from source at every boot, through `prepare()` and again in the `absolute start --prebuilt` controller. That evaluated the framework's own unbundled package and everything the config imports beside the server bundle that already contains it: the AbsoluteJS docs site's config imported its sitemap routes, which pulled in every docs page, its data and its highlighter, about 735 modules and roughly 70 MB of the server's memory plus 55 MB of the controller's. `absolute start` and `absolute prepare` now write the plain-data fields the runtime reads to `absolute-runtime.json` in the build directory, and a production `prepare()` (with `ABSOLUTE_BUILD_DIR` set, as `absolute start` sets it) and a prebuilt start read that instead of importing the config. A build without the file, from an older framework or another pipeline, loads the config as before. Production `prepare()` also no longer scans and reads every page source at boot for island metadata that only dev rebuilds use.
22
+
9
23
  ## 0.20.0-beta.160 — 2026-10-28
10
24
 
11
25
  ### Fixed
package/changelog.json CHANGED
@@ -2,6 +2,34 @@
2
2
  "contract": 1,
3
3
  "name": "@absolutejs/absolute",
4
4
  "releases": [
5
+ {
6
+ "changes": [
7
+ {
8
+ "detail": "The framework pinned packages apps install themselves to exact versions: typebox 1.3.16, exact-mirror 1.2.6, @elysia/static, @elysia/openapi and @elysia/server-timing 2.0.0-rc.0, and @absolutejs/pwa 0.16.3. An app on any other version got a second copy nested under the framework, and for typebox that is a correctness hazard, not bloat: Elysia validates with the app's typebox, and a schema built by a different copy is foreign to it. renown could not move to typebox 1.4 for this reason (2026-11-01). They are now ranges within the same major (pwa within 0.16 and 0.17, whose 0.17.0 only adds asset-failure recovery), and the framework's own tests run on the newest of each: typebox 1.4.3, Elysia 2.0.0-rc.1, pwa 0.17.0.",
9
+ "kind": "fixed",
10
+ "summary": "Apps share one copy of typebox, exact-mirror, the Elysia plugins and pwa with the framework",
11
+ "symbols": [
12
+ "prepare"
13
+ ]
14
+ }
15
+ ],
16
+ "date": "2026-11-02",
17
+ "version": "0.20.0-beta.162"
18
+ },
19
+ {
20
+ "changes": [
21
+ {
22
+ "detail": "A production server imported absolute.config.ts from source at every boot, through `prepare()` and again in the `absolute start --prebuilt` controller. That evaluated the framework's own unbundled package and everything the config imports beside the server bundle that already contains it: the AbsoluteJS docs site's config imported its sitemap routes, which pulled in every docs page, its data and its highlighter, about 735 modules and roughly 70 MB of the server's memory plus 55 MB of the controller's. `absolute start` and `absolute prepare` now write the plain-data fields the runtime reads to `absolute-runtime.json` in the build directory, and a production `prepare()` (with `ABSOLUTE_BUILD_DIR` set, as `absolute start` sets it) and a prebuilt start read that instead of importing the config. A build without the file, from an older framework or another pipeline, loads the config as before. Production `prepare()` also no longer scans and reads every page source at boot for island metadata that only dev rebuilds use.",
23
+ "kind": "changed",
24
+ "summary": "Production servers no longer import absolute.config.ts at runtime",
25
+ "symbols": [
26
+ "prepare"
27
+ ]
28
+ }
29
+ ],
30
+ "date": "2026-11-01",
31
+ "version": "0.20.0-beta.161"
32
+ },
5
33
  {
6
34
  "changes": [
7
35
  {
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- // .angular-partial-tmp-FjgEOe/src/core/streamingSlotRegistrar.ts
2
+ // .angular-partial-tmp-jm5FWS/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-FjgEOe/src/core/streamingSlotRegistrar.ts
2
+ // .angular-partial-tmp-jm5FWS/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-FjgEOe/src/core/streamingSlotRegistry.ts
49
+ // .angular-partial-tmp-jm5FWS/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";