isomorphic-git 1.38.6 → 1.38.7

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/index.cjs CHANGED
@@ -2541,13 +2541,19 @@ function parseBuffer(buffer) {
2541
2541
  // "." and ".." (which resolve outside the working directory), and ".git" (which git
2542
2542
  // disallows as a path component). Checks mirror git's is_ntfs_dotgit() and
2543
2543
  // is_hfs_dotgit(): case-insensitive, trailing dots/spaces stripped (NTFS),
2544
- // NTFS 8.3 short name aliases (git~1..git~9), and HFS+ ignorable Unicode
2545
- // characters stripped (zero-width joiners, directional marks, BOM, etc.).
2544
+ // NTFS 8.3 short name aliases (git~1..git~9), NTFS Alternate Data Streams, and
2545
+ // HFS+ ignorable Unicode characters stripped (zero-width joiners, directional
2546
+ // marks, BOM, etc.).
2546
2547
  const hfsClean = path.replace(
2547
2548
  /[\u200C-\u200F\u202A-\u202E\u206A-\u206F\uFEFF]/g,
2548
2549
  ''
2549
2550
  );
2550
- const normalized = hfsClean.toLowerCase().replace(/[. ]+$/, '');
2551
+ // NTFS Alternate Data Streams are referenced as `<name>:<stream>:<type>`, and a
2552
+ // directory's default stream lets `.git::$INDEX_ALLOCATION` resolve to the `.git`
2553
+ // directory itself. git forbids *any* ADS, so only the portion before the first
2554
+ // colon names the actual entry we normalize and check.
2555
+ const ntfsClean = hfsClean.split(':')[0];
2556
+ const normalized = ntfsClean.toLowerCase().replace(/[. ]+$/, '');
2551
2557
  if (
2552
2558
  path.includes('\\') ||
2553
2559
  path.includes('/') ||
@@ -9482,8 +9488,8 @@ function filterCapabilities(server, client) {
9482
9488
 
9483
9489
  const pkg = {
9484
9490
  name: 'isomorphic-git',
9485
- version: '1.38.6',
9486
- agent: 'git/isomorphic-git@1.38.6',
9491
+ version: '1.38.7',
9492
+ agent: 'git/isomorphic-git@1.38.7',
9487
9493
  };
9488
9494
 
9489
9495
  class FIFO {
package/index.js CHANGED
@@ -2534,13 +2534,19 @@ function parseBuffer(buffer) {
2534
2534
  // "." and ".." (which resolve outside the working directory), and ".git" (which git
2535
2535
  // disallows as a path component). Checks mirror git's is_ntfs_dotgit() and
2536
2536
  // is_hfs_dotgit(): case-insensitive, trailing dots/spaces stripped (NTFS),
2537
- // NTFS 8.3 short name aliases (git~1..git~9), and HFS+ ignorable Unicode
2538
- // characters stripped (zero-width joiners, directional marks, BOM, etc.).
2537
+ // NTFS 8.3 short name aliases (git~1..git~9), NTFS Alternate Data Streams, and
2538
+ // HFS+ ignorable Unicode characters stripped (zero-width joiners, directional
2539
+ // marks, BOM, etc.).
2539
2540
  const hfsClean = path.replace(
2540
2541
  /[\u200C-\u200F\u202A-\u202E\u206A-\u206F\uFEFF]/g,
2541
2542
  ''
2542
2543
  );
2543
- const normalized = hfsClean.toLowerCase().replace(/[. ]+$/, '');
2544
+ // NTFS Alternate Data Streams are referenced as `<name>:<stream>:<type>`, and a
2545
+ // directory's default stream lets `.git::$INDEX_ALLOCATION` resolve to the `.git`
2546
+ // directory itself. git forbids *any* ADS, so only the portion before the first
2547
+ // colon names the actual entry we normalize and check.
2548
+ const ntfsClean = hfsClean.split(':')[0];
2549
+ const normalized = ntfsClean.toLowerCase().replace(/[. ]+$/, '');
2544
2550
  if (
2545
2551
  path.includes('\\') ||
2546
2552
  path.includes('/') ||
@@ -9469,8 +9475,8 @@ function filterCapabilities(server, client) {
9469
9475
 
9470
9476
  const pkg = {
9471
9477
  name: 'isomorphic-git',
9472
- version: '1.38.6',
9473
- agent: 'git/isomorphic-git@1.38.6',
9478
+ version: '1.38.7',
9479
+ agent: 'git/isomorphic-git@1.38.7',
9474
9480
  };
9475
9481
 
9476
9482
  class FIFO {