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

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,12 @@ 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.153 — 2026-10-26
10
+
11
+ ### Fixed
12
+
13
+ - **Restart development after root dependency manifest and lockfile changes**
14
+
9
15
  ## 0.20.0-beta.152 — 2026-10-26
10
16
 
11
17
  ### Added
package/changelog.json CHANGED
@@ -2,6 +2,16 @@
2
2
  "contract": 1,
3
3
  "name": "@absolutejs/absolute",
4
4
  "releases": [
5
+ {
6
+ "changes": [
7
+ {
8
+ "kind": "fixed",
9
+ "summary": "Restart development after root dependency manifest and lockfile changes"
10
+ }
11
+ ],
12
+ "date": "2026-10-26",
13
+ "version": "0.20.0-beta.153"
14
+ },
5
15
  {
6
16
  "changes": [
7
17
  {
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- // .angular-partial-tmp-CeLFbo/src/core/streamingSlotRegistrar.ts
2
+ // .angular-partial-tmp-G0CYuD/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-G0CYuD/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-G0CYuD/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) => {
@@ -37873,5 +37931,5 @@ export {
37873
37931
  devBuild
37874
37932
  };
37875
37933
 
37876
- //# debugId=0E7C292EA2EAB7E064756E2164756E21
37934
+ //# debugId=1F5037DC0C92ECA564756E2164756E21
37877
37935
  //# sourceMappingURL=build.js.map