@absolutejs/absolute 0.20.0-beta.166 → 0.20.0-beta.167

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.167 — 2026-11-09
10
+
11
+ ### Fixed
12
+
13
+ - **Refresh imported CSS, stylesheet dependencies, and changed image assets during HMR**
14
+ CSS imported by JavaScript remained in stale style nodes while style-update only reloaded linked bundles. Refresh source stylesheet modules in place to preserve cascade order, rebuild configured CSS entries when imported partials change outside stylesConfig, and run CSS-only incremental builds. Static asset updates now invalidate matching image and favicon URLs. The dev launcher selects patched Bun 1.4.4+absolute.2. React, CSS, logo, and favicon changes were verified in an open Job Tracker page without navigation.
15
+
9
16
  ## 0.20.0-beta.166 — 2026-11-06
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": "CSS imported by JavaScript remained in stale style nodes while style-update only reloaded linked bundles. Refresh source stylesheet modules in place to preserve cascade order, rebuild configured CSS entries when imported partials change outside stylesConfig, and run CSS-only incremental builds. Static asset updates now invalidate matching image and favicon URLs. The dev launcher selects patched Bun 1.4.4+absolute.2. React, CSS, logo, and favicon changes were verified in an open Job Tracker page without navigation.",
9
+ "kind": "fixed",
10
+ "summary": "Refresh imported CSS, stylesheet dependencies, and changed image assets during HMR"
11
+ }
12
+ ],
13
+ "date": "2026-11-09",
14
+ "version": "0.20.0-beta.167"
15
+ },
5
16
  {
6
17
  "changes": [
7
18
  {
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- // .angular-partial-tmp-mB4bQg/src/core/streamingSlotRegistrar.ts
2
+ // .angular-partial-tmp-0mmkCI/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-mB4bQg/src/core/streamingSlotRegistrar.ts
2
+ // .angular-partial-tmp-0mmkCI/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-mB4bQg/src/core/streamingSlotRegistry.ts
49
+ // .angular-partial-tmp-0mmkCI/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
@@ -23729,7 +23729,7 @@ ${offenders.map((o) => ` \u2022 ${o}`).join(`
23729
23729
  ...allAngularEntries.map((source) => toDevPageEntry("angular", source)),
23730
23730
  ...allEmberEntries.map((source) => toDevPageEntry("ember", source))
23731
23731
  ] : [];
23732
- const globalCssEntries = isIncremental ? filterToIncrementalEntries(allGlobalCssEntries, (entry) => entry) : allGlobalCssEntries;
23732
+ const globalCssEntries = !isIncremental || incrementalFiles?.some(isStylePath) ? allGlobalCssEntries : filterToIncrementalEntries(allGlobalCssEntries, (entry) => entry);
23733
23733
  const hmrClientBundlePromise = hmr && (htmlDir || htmxDir) ? buildHMRClient() : undefined;
23734
23734
  const allFrameworkDirs = [
23735
23735
  reactDir,
@@ -24014,7 +24014,7 @@ ${offenders.map((o) => ` \u2022 ${o}`).join(`
24014
24014
  generatedRoot: join46(buildPath, "_island_entries")
24015
24015
  };
24016
24016
  const islandClientEntryPoints = islandEntryResult.entries.map((entry) => entry.entryPath);
24017
- if (!deferPageEntries && serverEntryPoints.length === 0 && reactClientEntryPoints.length === 0 && nonReactClientEntryPoints.length === 0 && urlReferencedFiles.length === 0 && islandClientEntryPoints.length === 0 && htmxDir === undefined && htmlDir === undefined) {
24017
+ if (!deferPageEntries && serverEntryPoints.length === 0 && reactClientEntryPoints.length === 0 && nonReactClientEntryPoints.length === 0 && urlReferencedFiles.length === 0 && islandClientEntryPoints.length === 0 && globalCssEntries.length === 0 && htmxDir === undefined && htmlDir === undefined) {
24018
24018
  logWarn("No entry points found, manifest will be empty");
24019
24019
  sendTelemetryEvent("build:empty", {
24020
24020
  configuredDirs: {
@@ -32392,12 +32392,13 @@ ${code}`;
32392
32392
  const raw = readFileSync43(filePath, "utf-8");
32393
32393
  const escaped = raw.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$/g, "\\$");
32394
32394
  return [
32395
- `const style = document.createElement('style');`,
32395
+ `const id = ${JSON.stringify(filePath)};`,
32396
+ `const existing = Array.from(document.querySelectorAll('style[data-hmr-id]')).find(el => el.dataset.hmrId === id);`,
32397
+ `const style = existing || document.createElement('style');`,
32396
32398
  `style.textContent = \`${escaped}\`;`,
32397
- `style.dataset.hmrId = ${JSON.stringify(filePath)};`,
32398
- `const existing = document.querySelector(\`style[data-hmr-id="${filePath}"]\`);`,
32399
- `if (existing) existing.remove();`,
32400
- `document.head.appendChild(style);`
32399
+ `style.dataset.hmrId = id;`,
32400
+ `style.dataset.hmrSrc = import.meta.url;`,
32401
+ `if (!existing) document.head.appendChild(style);`
32401
32402
  ].join(`
32402
32403
  `);
32403
32404
  }, generateSvelteHmrBootstrap = (moduleUrl, vendorPaths, timestamp) => {
@@ -34553,6 +34554,7 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, clearDevSs
34553
34554
  logHmrUpdate(relative27(process.cwd(), filePath));
34554
34555
  broadcastToClients(state, {
34555
34556
  data: {
34557
+ assetUrl: webPath,
34556
34558
  framework: urlPrefix || "public",
34557
34559
  manifest: state.manifest,
34558
34560
  serverDuration: Math.round(performance.now() - startedAt),
@@ -37983,5 +37985,5 @@ export {
37983
37985
  devBuild
37984
37986
  };
37985
37987
 
37986
- //# debugId=A2A72269894BD57F64756E2164756E21
37988
+ //# debugId=28A6554DD474CEE164756E2164756E21
37987
37989
  //# sourceMappingURL=build.js.map