@antongolub/lockfile 0.0.0-snapshot.55 → 0.0.0-snapshot.56

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.
@@ -1064,7 +1064,8 @@ var HEADER_LINE_2 = "# yarn lockfile v1";
1064
1064
  var cmpUtf16 = (a, b) => a < b ? -1 : a > b ? 1 : 0;
1065
1065
  var DEP_PAIR_RE = /^("(?:\\.|[^"])*"|[^\s"]\S*) ("(?:\\.|[^"])*"|[^\s"]\S*)$/;
1066
1066
  var BARE_DEP_NAME_RE = /^[A-Za-z0-9._-]+$/;
1067
- var ENTRY_KEY_SPECIAL_RE = /[\s:",#?*&!|>'`[\]{}]/;
1067
+ var ENTRY_KEY_WRAP_RE = /[:\s\\",[\]]/;
1068
+ var ENTRY_KEY_LEADING_ALPHA_RE = /^[a-zA-Z]/;
1068
1069
  var BERRY_HEADER_RE = /^__metadata:\s*(?:\r?\n|$)/m;
1069
1070
  var sidecarByGraph = /* @__PURE__ */ new WeakMap();
1070
1071
  function stripBom(input) {
@@ -1831,14 +1832,10 @@ function entrySpecsOfNode(graph, node) {
1831
1832
  return [`${node.name}@${node.version}`];
1832
1833
  }
1833
1834
  function stringifyEntryKey(specs) {
1834
- const key = specs.join(", ");
1835
- return mustQuoteEntryKey(specs) ? `"${escapeQuoted(key)}"` : key;
1835
+ return specs.map((spec) => mustQuoteSpec(spec) ? `"${escapeQuoted(spec)}"` : spec).join(", ");
1836
1836
  }
1837
- function mustQuoteEntryKey(specs) {
1838
- if (specs.length > 1) return true;
1839
- return specs.some(
1840
- (spec) => spec.startsWith("@") || spec.includes("||") || ENTRY_KEY_SPECIAL_RE.test(spec) || hasNonAscii(spec)
1841
- );
1837
+ function mustQuoteSpec(spec) {
1838
+ return spec.startsWith("true") || spec.startsWith("false") || ENTRY_KEY_WRAP_RE.test(spec) || !ENTRY_KEY_LEADING_ALPHA_RE.test(spec);
1842
1839
  }
1843
1840
  function quoteDepName(name) {
1844
1841
  return name.startsWith("@") || !BARE_DEP_NAME_RE.test(name) ? `"${escapeQuoted(name)}"` : name;
@@ -1846,12 +1843,6 @@ function quoteDepName(name) {
1846
1843
  function escapeQuoted(value) {
1847
1844
  return value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
1848
1845
  }
1849
- function hasNonAscii(value) {
1850
- for (let i = 0; i < value.length; i++) {
1851
- if (value.charCodeAt(i) > 127) return true;
1852
- }
1853
- return false;
1854
- }
1855
1846
  function collectDependencyBlockEntries(graph, srcId, emitDiagnostic) {
1856
1847
  return collectBlockEntries(
1857
1848
  graph,
package/dist/index.js CHANGED
@@ -7420,7 +7420,8 @@ var HEADER_LINE_2 = "# yarn lockfile v1";
7420
7420
  var cmpUtf16 = (a, b) => a < b ? -1 : a > b ? 1 : 0;
7421
7421
  var DEP_PAIR_RE = /^("(?:\\.|[^"])*"|[^\s"]\S*) ("(?:\\.|[^"])*"|[^\s"]\S*)$/;
7422
7422
  var BARE_DEP_NAME_RE = /^[A-Za-z0-9._-]+$/;
7423
- var ENTRY_KEY_SPECIAL_RE = /[\s:",#?*&!|>'`[\]{}]/;
7423
+ var ENTRY_KEY_WRAP_RE = /[:\s\\",[\]]/;
7424
+ var ENTRY_KEY_LEADING_ALPHA_RE = /^[a-zA-Z]/;
7424
7425
  var BERRY_HEADER_RE = /^__metadata:\s*(?:\r?\n|$)/m;
7425
7426
  var sidecarByGraph7 = /* @__PURE__ */ new WeakMap();
7426
7427
  function stripBom(input) {
@@ -7949,14 +7950,10 @@ function entrySpecsOfNode(graph, node) {
7949
7950
  return [`${node.name}@${node.version}`];
7950
7951
  }
7951
7952
  function stringifyEntryKey(specs) {
7952
- const key = specs.join(", ");
7953
- return mustQuoteEntryKey(specs) ? `"${escapeQuoted2(key)}"` : key;
7953
+ return specs.map((spec) => mustQuoteSpec(spec) ? `"${escapeQuoted2(spec)}"` : spec).join(", ");
7954
7954
  }
7955
- function mustQuoteEntryKey(specs) {
7956
- if (specs.length > 1) return true;
7957
- return specs.some(
7958
- (spec) => spec.startsWith("@") || spec.includes("||") || ENTRY_KEY_SPECIAL_RE.test(spec) || hasNonAscii(spec)
7959
- );
7955
+ function mustQuoteSpec(spec) {
7956
+ return spec.startsWith("true") || spec.startsWith("false") || ENTRY_KEY_WRAP_RE.test(spec) || !ENTRY_KEY_LEADING_ALPHA_RE.test(spec);
7960
7957
  }
7961
7958
  function quoteDepName(name) {
7962
7959
  return name.startsWith("@") || !BARE_DEP_NAME_RE.test(name) ? `"${escapeQuoted2(name)}"` : name;
@@ -7964,12 +7961,6 @@ function quoteDepName(name) {
7964
7961
  function escapeQuoted2(value) {
7965
7962
  return value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
7966
7963
  }
7967
- function hasNonAscii(value) {
7968
- for (let i = 0; i < value.length; i++) {
7969
- if (value.charCodeAt(i) > 127) return true;
7970
- }
7971
- return false;
7972
- }
7973
7964
  function collectDependencyBlockEntries(graph, srcId, emitDiagnostic) {
7974
7965
  return collectBlockEntries(
7975
7966
  graph,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antongolub/lockfile",
3
- "version": "0.0.0-snapshot.55",
3
+ "version": "0.0.0-snapshot.56",
4
4
  "private": false,
5
5
  "description": "Universal lockfile model and converter for npm, yarn, pnpm, bun",
6
6
  "type": "module",