@absolutejs/absolute 0.20.0-beta.129 → 0.20.0-beta.130
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 +16 -0
- package/changelog.json +26 -0
- package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/build.js +612 -558
- package/dist/build.js.map +7 -7
- package/dist/cli/{buildDepVendor-rz5w5cp0.js → buildDepVendor-8akhr8n8.js} +3 -6
- package/dist/cli/{dev-m9qttkr7.js → dev-qg7fr16s.js} +26 -1
- package/dist/cli/index-4rhxthsy.js +8 -0
- package/dist/cli/index.js +1 -1
- package/dist/dev/serverBootstrap.js +44 -22
- package/dist/index.js +633 -576
- package/dist/index.js.map +10 -10
- package/dist/mobile/remoteMacAgentEntry.js +1 -1
- package/dist/src/dev/fileHashTracker.d.ts +1 -0
- package/dist/src/dev/hot/appLifecycle.d.ts +1 -0
- package/dist/src/dev/hot/plugin.d.ts +11 -1
- package/dist/src/dev/hot/reload.d.ts +3 -0
- package/dist/src/dev/hot/runtime.d.ts +5 -1
- package/dist/types/globals.d.ts +10 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,22 @@ 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.130 — 2026-10-03
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- **Server edits to plugins and the entry are served in hundreds of milliseconds, and slow ones say why**
|
|
14
|
+
Each in-place swap compiled every route of the new Elysia app up front, which took about 2 seconds per edit on an app with a large route table. The new app now builds its router on the first request and compiles each route when that route is first hit, so a plugin or entry edit is served in a few hundred milliseconds. A slow update also names its slowest statements, and an edit to the server entry reports how long it took and which statements re-ran.
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- **The dev server starts when a server module re-exports with inline `type` specifiers**
|
|
19
|
+
With 0.20.0-beta.129, a server module re-exporting with an inline `type` specifier (`export { x, type T } from "./x"`) failed to parse in development (`Expected "}" but found "T"`), and the dev server could not start. Re-exports are now loaded with the module's own TypeScript loader.
|
|
20
|
+
- **Server edits update in place in the published package instead of restarting**
|
|
21
|
+
In 0.20.0-beta.129 the published package bundles the dev bootstrap separately from the code that reacts to file changes, and each bundle kept its own copy of the hot runtime's state. The file-change side never saw what the bootstrap had installed, so every server edit was reported as not hot-managed and restarted the server, which is the behaviour backend HMR was meant to remove. The state now lives on `globalThis`, so every bundle shares one runtime. A server edit now updates in place in the published package as well, at about 50–250ms for a handler and about 150–300ms for a plugin or the server entry on a large app.
|
|
22
|
+
- **Saving a file next to the server entry, or soon after a checkout, no longer restarts or rebuilds unrelated code**
|
|
23
|
+
Two causes of unneeded restarts are fixed. First, the CLI restarted the server for any file saved in the server entry's own folder, including code modules next to the entry. The server process already updates those in place, or asks for a restart when it cannot, so the CLI now leaves code, documents and tests to it and restarts only for other files there (such as `.env`). Second, after a checkout or pull, the first save in a folder made the dev server treat every recently touched file there as edited. A file that has not changed since the dev server started is no longer reported as an edit.
|
|
24
|
+
|
|
9
25
|
## 0.20.0-beta.129 — 2026-10-03
|
|
10
26
|
|
|
11
27
|
### Added
|
package/changelog.json
CHANGED
|
@@ -2,6 +2,32 @@
|
|
|
2
2
|
"contract": 1,
|
|
3
3
|
"name": "@absolutejs/absolute",
|
|
4
4
|
"releases": [
|
|
5
|
+
{
|
|
6
|
+
"changes": [
|
|
7
|
+
{
|
|
8
|
+
"detail": "With 0.20.0-beta.129, a server module re-exporting with an inline `type` specifier (`export { x, type T } from \"./x\"`) failed to parse in development (`Expected \"}\" but found \"T\"`), and the dev server could not start. Re-exports are now loaded with the module's own TypeScript loader.",
|
|
9
|
+
"kind": "fixed",
|
|
10
|
+
"summary": "The dev server starts when a server module re-exports with inline `type` specifiers"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"detail": "In 0.20.0-beta.129 the published package bundles the dev bootstrap separately from the code that reacts to file changes, and each bundle kept its own copy of the hot runtime's state. The file-change side never saw what the bootstrap had installed, so every server edit was reported as not hot-managed and restarted the server, which is the behaviour backend HMR was meant to remove. The state now lives on `globalThis`, so every bundle shares one runtime. A server edit now updates in place in the published package as well, at about 50–250ms for a handler and about 150–300ms for a plugin or the server entry on a large app.",
|
|
14
|
+
"kind": "fixed",
|
|
15
|
+
"summary": "Server edits update in place in the published package instead of restarting"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"detail": "Each in-place swap compiled every route of the new Elysia app up front, which took about 2 seconds per edit on an app with a large route table. The new app now builds its router on the first request and compiles each route when that route is first hit, so a plugin or entry edit is served in a few hundred milliseconds. A slow update also names its slowest statements, and an edit to the server entry reports how long it took and which statements re-ran.",
|
|
19
|
+
"kind": "changed",
|
|
20
|
+
"summary": "Server edits to plugins and the entry are served in hundreds of milliseconds, and slow ones say why"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"detail": "Two causes of unneeded restarts are fixed. First, the CLI restarted the server for any file saved in the server entry's own folder, including code modules next to the entry. The server process already updates those in place, or asks for a restart when it cannot, so the CLI now leaves code, documents and tests to it and restarts only for other files there (such as `.env`). Second, after a checkout or pull, the first save in a folder made the dev server treat every recently touched file there as edited. A file that has not changed since the dev server started is no longer reported as an edit.",
|
|
24
|
+
"kind": "fixed",
|
|
25
|
+
"summary": "Saving a file next to the server entry, or soon after a checkout, no longer restarts or rebuilds unrelated code"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"date": "2026-10-03",
|
|
29
|
+
"version": "0.20.0-beta.130"
|
|
30
|
+
},
|
|
5
31
|
{
|
|
6
32
|
"changes": [
|
|
7
33
|
{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
var __require = import.meta.require;
|
|
3
3
|
|
|
4
|
-
// .angular-partial-tmp-
|
|
4
|
+
// .angular-partial-tmp-iNmljt/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-iNmljt/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-iNmljt/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";
|