@absolutejs/absolute 0.20.0-beta.152 → 0.20.0-beta.154

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,18 @@ 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.154 — 2026-10-26
10
+
11
+ ### Fixed
12
+
13
+ - **Keep backend hot reload alive when a managed module is deleted or moved**
14
+
15
+ ## 0.20.0-beta.153 — 2026-10-26
16
+
17
+ ### Fixed
18
+
19
+ - **Restart development after root dependency manifest and lockfile changes**
20
+
9
21
  ## 0.20.0-beta.152 — 2026-10-26
10
22
 
11
23
  ### Added
package/changelog.json CHANGED
@@ -2,6 +2,26 @@
2
2
  "contract": 1,
3
3
  "name": "@absolutejs/absolute",
4
4
  "releases": [
5
+ {
6
+ "changes": [
7
+ {
8
+ "kind": "fixed",
9
+ "summary": "Keep backend hot reload alive when a managed module is deleted or moved"
10
+ }
11
+ ],
12
+ "date": "2026-10-26",
13
+ "version": "0.20.0-beta.154"
14
+ },
15
+ {
16
+ "changes": [
17
+ {
18
+ "kind": "fixed",
19
+ "summary": "Restart development after root dependency manifest and lockfile changes"
20
+ }
21
+ ],
22
+ "date": "2026-10-26",
23
+ "version": "0.20.0-beta.153"
24
+ },
5
25
  {
6
26
  "changes": [
7
27
  {
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- // .angular-partial-tmp-CeLFbo/src/core/streamingSlotRegistrar.ts
2
+ // .angular-partial-tmp-yZgaPd/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-CeLFbo/src/core/streamingSlotRegistrar.ts
2
+ // .angular-partial-tmp-yZgaPd/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-CeLFbo/src/core/streamingSlotRegistry.ts
49
+ // .angular-partial-tmp-yZgaPd/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
@@ -25861,7 +25861,65 @@ var safeRemoveFromGraph = (graph, fullPath) => {
25861
25861
  const isStylesDir = Boolean(stylesDir && absolutePath.startsWith(stylesDir));
25862
25862
  setupWatcher(absolutePath, isStylesDir, state, onFileChange);
25863
25863
  });
25864
+ }, watchRootDependencies = (state, onFileChange) => {
25865
+ const root = process.cwd();
25866
+ const names = [
25867
+ "package.json",
25868
+ "bun.lock",
25869
+ "bun.lockb",
25870
+ "package-lock.json",
25871
+ "pnpm-lock.yaml",
25872
+ "yarn.lock"
25873
+ ];
25874
+ const fingerprint = (name) => {
25875
+ try {
25876
+ const value = statSync6(join50(root, name));
25877
+ return value.isFile() ? `${value.ino}:${value.size}:${value.mtimeMs}:${value.ctimeMs}` : null;
25878
+ } catch {
25879
+ return null;
25880
+ }
25881
+ };
25882
+ const previous = new Map(names.map((name) => [name, fingerprint(name)]));
25883
+ const scan = () => {
25884
+ for (const name of names) {
25885
+ const next = fingerprint(name);
25886
+ if (next === previous.get(name))
25887
+ continue;
25888
+ previous.set(name, next);
25889
+ onFileChange(join50(root, name).replace(/\\/g, "/"));
25890
+ }
25891
+ };
25892
+ const timers = new Map;
25893
+ const recover = (delay) => {
25894
+ if (timers.has(delay))
25895
+ return;
25896
+ const timer = setTimeout(() => {
25897
+ timers.delete(delay);
25898
+ scan();
25899
+ }, delay);
25900
+ timers.set(delay, timer);
25901
+ unrefTimer(timer);
25902
+ };
25903
+ const watcher = watch(root, { recursive: false }, (event, filename) => {
25904
+ if (!filename) {
25905
+ scan();
25906
+ return;
25907
+ }
25908
+ if (names.includes(filename))
25909
+ scan();
25910
+ if (event === "rename") {
25911
+ recover(25);
25912
+ recover(100);
25913
+ }
25914
+ });
25915
+ watcher.once("close", () => {
25916
+ for (const timer of timers.values())
25917
+ clearTimeout(timer);
25918
+ timers.clear();
25919
+ });
25920
+ state.watchers.push(watcher);
25864
25921
  }, startFileWatching = (state, config, onFileChange) => {
25922
+ watchRootDependencies(state, onFileChange);
25865
25923
  const watchPaths = getWatchPaths(config, state.resolvedPaths);
25866
25924
  const stylesDir = state.resolvedPaths?.stylesDir;
25867
25925
  watchPaths.forEach((path) => {
@@ -33973,7 +34031,13 @@ var MAX_PROPAGATION_STEPS = 500, realPath4 = (path) => {
33973
34031
  return { status: "entry" };
33974
34032
  if (!moduleRecord(path) || !isHotManaged(path))
33975
34033
  return { status: "unmanaged" };
33976
- const source = readFileSync45(path, "utf-8");
34034
+ let source;
34035
+ try {
34036
+ source = readFileSync45(path, "utf-8");
34037
+ } catch (error) {
34038
+ reportFailure(path, error);
34039
+ return { error, status: "failed" };
34040
+ }
33977
34041
  if (moduleRecord(path)?.source === source)
33978
34042
  return { status: "unchanged" };
33979
34043
  const analysis = await analyzeSource(path, source);
@@ -37873,5 +37937,5 @@ export {
37873
37937
  devBuild
37874
37938
  };
37875
37939
 
37876
- //# debugId=0E7C292EA2EAB7E064756E2164756E21
37940
+ //# debugId=9DB1B57D948A7EC264756E2164756E21
37877
37941
  //# sourceMappingURL=build.js.map