@absolutejs/absolute 0.20.0-beta.158 → 0.20.0-beta.159

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.159 — 2026-10-28
10
+
11
+ ### Fixed
12
+
13
+ - **Deduplicate shared Vue component styles without changing cascade order and invalidate older CSS compile caches**
14
+
9
15
  ## 0.20.0-beta.158 — 2026-10-28
10
16
 
11
17
  ### Changed
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": "Deduplicate shared Vue component styles without changing cascade order and invalidate older CSS compile caches"
10
+ }
11
+ ],
12
+ "date": "2026-10-28",
13
+ "version": "0.20.0-beta.159"
14
+ },
5
15
  {
6
16
  "changes": [
7
17
  {
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- // .angular-partial-tmp-d61AWz/src/core/streamingSlotRegistrar.ts
2
+ // .angular-partial-tmp-I5O5KJ/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-d61AWz/src/core/streamingSlotRegistrar.ts
2
+ // .angular-partial-tmp-I5O5KJ/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-d61AWz/src/core/streamingSlotRegistry.ts
49
+ // .angular-partial-tmp-I5O5KJ/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
@@ -18006,6 +18006,29 @@ var init_compileSvelte = __esm(() => {
18006
18006
  transpiler3 = new Transpiler2({ loader: "ts", target: "browser" });
18007
18007
  });
18008
18008
 
18009
+ // src/build/dedupeCssBlocks.ts
18010
+ var dedupeCssBlocks = (blocks) => {
18011
+ const seen = new Set;
18012
+ const result = [];
18013
+ for (const block of blocks.toReversed()) {
18014
+ const syntax = block.replace(/"(?:\\[\s\S]|[^"\\])*"|'(?:\\[\s\S]|[^'\\])*'|\/\*[\s\S]*?\*\//g, "");
18015
+ if (/@(?:import|namespace)\b|@[\w-]*\\/i.test(syntax)) {
18016
+ seen.clear();
18017
+ result.push(block);
18018
+ continue;
18019
+ }
18020
+ if (/@layer\b/i.test(syntax)) {
18021
+ result.push(block);
18022
+ continue;
18023
+ }
18024
+ if (seen.has(block))
18025
+ continue;
18026
+ seen.add(block);
18027
+ result.push(block);
18028
+ }
18029
+ return result.reverse();
18030
+ };
18031
+
18009
18032
  // src/build/parseVueSpaRoutes.ts
18010
18033
  import ts17 from "typescript";
18011
18034
  var propertyName = (node) => ts17.isIdentifier(node) || ts17.isStringLiteralLike(node) ? node.text : null, stringValue = (node) => ts17.isStringLiteralLike(node) ? node.text : null, findVueImport = (node) => {
@@ -18492,7 +18515,7 @@ import { createHash as createHash3 } from "crypto";
18492
18515
  import { existsSync as existsSync26, readFileSync as readFileSync23 } from "fs";
18493
18516
  import { mkdir as mkdir7, rename, writeFile as writeFile7 } from "fs/promises";
18494
18517
  import { join as join36, resolve as resolve27 } from "path";
18495
- var CACHE_DIR_NAME = "compile-cache", ABSOLUTE_CACHE_DIR_NAME2 = ".absolutejs", CACHE_FORMAT_VERSION = 2, FILE_NAME_HASH_LENGTH = 32, vueCompileCacheEnabled = () => process.env.ABSOLUTE_COMPILE_CACHE !== "0", hashContent = (content) => createHash3("sha256").update(content).digest("hex"), hashParts = (parts) => {
18518
+ var CACHE_DIR_NAME = "compile-cache", ABSOLUTE_CACHE_DIR_NAME2 = ".absolutejs", CACHE_FORMAT_VERSION = 3, FILE_NAME_HASH_LENGTH = 32, vueCompileCacheEnabled = () => process.env.ABSOLUTE_COMPILE_CACHE !== "0", hashContent = (content) => createHash3("sha256").update(content).digest("hex"), hashParts = (parts) => {
18496
18519
  const hash = createHash3("sha256");
18497
18520
  for (const part of parts) {
18498
18521
  hash.update(part);
@@ -19558,10 +19581,10 @@ var resolveDevClientDir3 = () => {
19558
19581
  sourceFilePath,
19559
19582
  styleSources
19560
19583
  }));
19561
- const allCss = [
19584
+ const allCss = dedupeCssBlocks([
19562
19585
  ...localCss,
19563
19586
  ...childBuildResults.flatMap((result) => result.cssCodes)
19564
- ];
19587
+ ]);
19565
19588
  const cssOutputFile = isEntryPoint && allCss.length ? join39(outputDirs.css, `${toKebab(fileBaseName)}-compiled.css`) : null;
19566
19589
  const cssOutputPaths = cssOutputFile ? [cssOutputFile] : [];
19567
19590
  trackWrite(writeVueOutputs({
@@ -37939,5 +37962,5 @@ export {
37939
37962
  devBuild
37940
37963
  };
37941
37964
 
37942
- //# debugId=F99E7F0955E6A55F64756E2164756E21
37965
+ //# debugId=BBA0706D228C392264756E2164756E21
37943
37966
  //# sourceMappingURL=build.js.map