styleproof 4.4.20 → 4.4.21

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
@@ -7,6 +7,14 @@ this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [4.4.21] - 2026-07-14
11
+
12
+ ### Fixed
13
+
14
+ - **GitHub Actions map publication no longer sends duplicate authorization headers.**
15
+ StyleProof now resets inherited checkout headers before applying the single
16
+ effective credential to isolated map-store clone and push operations.
17
+
10
18
  ## [4.4.20] - 2026-07-14
11
19
 
12
20
  ### Fixed
package/dist/map-store.js CHANGED
@@ -94,6 +94,17 @@ function parseGitHttpExtraHeaders(configuredHeaders) {
94
94
  return [{ key: configuredHeader.slice(0, separatorIndex), value: configuredHeader.slice(separatorIndex + 1) }];
95
95
  });
96
96
  }
97
+ function resetInheritedGitHttpExtraHeaders(configuredHeaders) {
98
+ const resetHeaderKeys = new Set();
99
+ return configuredHeaders.flatMap((configuredHeader) => {
100
+ if (resetHeaderKeys.has(configuredHeader.key))
101
+ return [configuredHeader];
102
+ resetHeaderKeys.add(configuredHeader.key);
103
+ return configuredHeader.value === ''
104
+ ? [configuredHeader]
105
+ : [{ key: configuredHeader.key, value: '' }, configuredHeader];
106
+ });
107
+ }
97
108
  function effectiveGitHttpExtraHeaders(cwd) {
98
109
  const mapStoreToken = process.env.STYLEPROOF_MAP_STORE_TOKEN;
99
110
  if (mapStoreToken) {
@@ -111,7 +122,7 @@ function effectiveGitHttpExtraHeaders(cwd) {
111
122
  const configuredHeaders = runGit(cwd, ['config', '--includes', '--get-regexp', '^http\\..*\\.extraheader$'], 1 << 20);
112
123
  const effectiveHeaders = parseGitHttpExtraHeaders(configuredHeaders.stdout);
113
124
  if (effectiveHeaders.length > 0)
114
- return effectiveHeaders;
125
+ return resetInheritedGitHttpExtraHeaders(effectiveHeaders);
115
126
  const registeredIncludes = runGit(cwd, ['config', '--local', '--get-regexp', '^includeIf\\..*\\.path$'], 1 << 20);
116
127
  const includedHeaders = registeredIncludes.stdout
117
128
  .split('\n')
@@ -125,7 +136,7 @@ function effectiveGitHttpExtraHeaders(cwd) {
125
136
  return parseGitHttpExtraHeaders(includedHeaders.stdout);
126
137
  });
127
138
  if (includedHeaders.length > 0)
128
- return includedHeaders;
139
+ return resetInheritedGitHttpExtraHeaders(includedHeaders);
129
140
  return [];
130
141
  }
131
142
  function gitOutput(cwd, args) {
@@ -507,7 +518,7 @@ function checkoutMapStore(cwd, remote, branch, sparseSegment) {
507
518
  runGit(tmp, ['remote', 'add', 'origin', remoteUrl]);
508
519
  }
509
520
  for (const { key, value } of httpExtraHeaders)
510
- runGit(tmp, ['config', '--local', key, value]);
521
+ runGit(tmp, ['config', '--local', '--add', key, value]);
511
522
  if (sparseSegment && branchExists)
512
523
  checkoutSparseSegment(tmp, branch, sparseSegment);
513
524
  return tmp;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "styleproof",
3
- "version": "4.4.20",
3
+ "version": "4.4.21",
4
4
  "description": "Catch every CSS change before it ships — review PRs and certify refactors by the browser's computed styles, not pixels. Works with any styling system.",
5
5
  "keywords": [
6
6
  "playwright",