@antongolub/lockfile 0.0.0-snapshot.40 → 0.0.0-snapshot.41

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antongolub/lockfile",
3
- "version": "0.0.0-snapshot.40",
3
+ "version": "0.0.0-snapshot.41",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -187,6 +187,12 @@ var debug = Object.assign((...chunks) => {
187
187
  });
188
188
  }
189
189
  });
190
+ var mergeDeps = (...deps) => {
191
+ const _deps = deps.filter(Boolean);
192
+ if (!_deps.length)
193
+ return;
194
+ return Object.assign({}, ..._deps);
195
+ };
190
196
  var unique = (arr) => [...new Set(arr)];
191
197
 
192
198
  // src/main/ts/analyze.ts
@@ -697,26 +703,35 @@ var preparse = (value) => {
697
703
  }, "").join("\n");
698
704
  return (0, import_js_yaml.load)(_value);
699
705
  };
700
- var parse3 = (value, pkg) => {
701
- const manifest = JSON.parse(pkg);
706
+ var parse3 = (value, ...pkgs) => {
707
+ const manifest = JSON.parse(pkgs[0]);
708
+ const manifests = Object.fromEntries(pkgs.map((p) => {
709
+ const manifest2 = JSON.parse(p);
710
+ return [manifest2.name, manifest2];
711
+ }));
702
712
  const raw = preparse(value);
703
713
  const snapshot = {};
704
714
  Object.entries(raw).forEach((value2) => {
715
+ var _a, _b;
705
716
  const [_key, _entry] = value2;
706
717
  const { version: version6, integrity, dependencies, optionalDependencies, resolved } = _entry;
707
718
  const hashes = parseIntegrity(integrity);
708
719
  const source = parseResolution3(resolved);
709
720
  const chunks = _key.split(", ");
710
721
  const names = unique(chunks.map((c) => c.slice(0, c.indexOf("@", 1))));
722
+ const isLocal = version6 === "0.0.0-use.local";
711
723
  for (const name of names) {
712
724
  const ranges = chunks.filter((c) => c.startsWith(`${name}@`)).map((r) => r.slice(r.indexOf("@", 1) + 1)).sort();
713
725
  const key = `${name}@${version6}`;
726
+ const _dependencies = isLocal && ((_a = manifests[name]) == null ? void 0 : _a.dependencies) || dependencies;
727
+ const _devDependencies = isLocal && ((_b = manifests[name]) == null ? void 0 : _b.devDependencies);
714
728
  snapshot[key] = {
715
729
  name,
716
730
  version: version6,
717
731
  ranges,
718
732
  hashes,
719
- dependencies,
733
+ dependencies: _dependencies,
734
+ devDependencies: _devDependencies,
720
735
  optionalDependencies,
721
736
  source
722
737
  };
@@ -744,7 +759,7 @@ var preformat4 = (idx) => {
744
759
  const lf = {};
745
760
  const rangemap = {};
746
761
  Object.values(snapshot).forEach((entry) => {
747
- const { name, version: version6, ranges, hashes, dependencies, optionalDependencies, source } = entry;
762
+ const { name, version: version6, ranges, hashes, devDependencies, dependencies, optionalDependencies, source } = entry;
748
763
  const resolved = formatResolution3(source);
749
764
  const alias = rangemap[resolved];
750
765
  const integrity = Object.entries(hashes).map(([k, v]) => `${k}-${v}`).join(" ");
@@ -755,12 +770,15 @@ var preformat4 = (idx) => {
755
770
  delete lf[alias.key];
756
771
  }
757
772
  const key = keys.join(", ");
773
+ const _dependencies = mergeDeps(dependencies, devDependencies);
774
+ if (_dependencies)
775
+ sortObject(_dependencies);
758
776
  rangemap[resolved] = { keys, key, name };
759
777
  lf[key] = {
760
778
  version: version6,
761
779
  resolved,
762
780
  integrity,
763
- dependencies,
781
+ dependencies: _dependencies,
764
782
  optionalDependencies
765
783
  };
766
784
  });
@@ -822,16 +840,24 @@ var version5 = "yarn-berry";
822
840
  var check5 = (value) => value.includes(`
823
841
  __metadata:
824
842
  version:`);
825
- var parse4 = (lockfile, pkg) => {
826
- const manifest = JSON.parse(pkg);
843
+ var parse4 = (lockfile, ...pkgs) => {
844
+ const manifest = JSON.parse(pkgs[0]);
845
+ const manifests = Object.fromEntries(pkgs.map((p) => {
846
+ const manifest2 = JSON.parse(p);
847
+ return [manifest2.name, manifest2];
848
+ }));
827
849
  const snapshot = {};
828
850
  const raw = (0, import_js_yaml2.load)(lockfile);
829
851
  delete raw.__metadata;
830
852
  Object.entries(raw).forEach((value) => {
853
+ var _a, _b;
831
854
  const [_key, _entry] = value;
832
855
  const { version: version6, checksum, dependencies, dependenciesMeta, optionalDependencies, peerDependencies, peerDependenciesMeta, resolution, bin, conditions } = _entry;
833
856
  const chunks = _key.split(", ");
834
857
  const names = unique(chunks.map((c) => c.slice(0, c.indexOf("@", 1))));
858
+ const isLocal = version6 === "0.0.0-use.local";
859
+ const hashes = parseIntegrity(checksum);
860
+ const source = parseResolution4(resolution);
835
861
  for (const name of names) {
836
862
  const key = `${name}@${version6}`;
837
863
  if (_key.includes("#")) {
@@ -843,15 +869,16 @@ var parse4 = (lockfile, pkg) => {
843
869
  return;
844
870
  }
845
871
  const ranges = chunks.filter((c) => c.startsWith(`${name}@`)).map((r) => r.slice(r.indexOf("@", 1) + 1)).map(normalizeReference);
846
- const hashes = parseIntegrity(checksum);
847
- const source = parseResolution4(resolution);
872
+ const _dependencies = normalizeDeps(isLocal && ((_a = manifests[name]) == null ? void 0 : _a.dependencies) || dependencies);
873
+ const _devDependencies = normalizeDeps(isLocal && ((_b = manifests[name]) == null ? void 0 : _b.devDependencies));
848
874
  snapshot[key] = {
849
875
  name,
850
876
  version: version6,
851
877
  ranges,
852
878
  hashes,
853
879
  source,
854
- dependencies: normalizeDeps(dependencies),
880
+ dependencies: _dependencies,
881
+ devDependencies: _devDependencies,
855
882
  dependenciesMeta,
856
883
  optionalDependencies: normalizeDeps(optionalDependencies),
857
884
  peerDependencies: normalizeDeps(peerDependencies),
@@ -880,12 +907,13 @@ var parse4 = (lockfile, pkg) => {
880
907
  debug.json("yarn-berry-snapshot.json", snapshot);
881
908
  return snapshot;
882
909
  };
883
- var preformat5 = (idx) => {
910
+ var preformat5 = (idx, { __metadata } = {}) => {
884
911
  const { snapshot } = idx;
885
912
  const lf = {};
886
913
  const rangemap = {};
914
+ const isYarn4 = (__metadata == null ? void 0 : __metadata.version) >= 7;
887
915
  Object.values(snapshot).forEach((entry) => {
888
- const { name, version: version6, ranges, hashes: { checksum }, dependencies, dependenciesMeta, optionalDependencies, peerDependencies, peerDependenciesMeta, source, patch, bin, conditions } = entry;
916
+ const { name, version: version6, ranges, hashes: { checksum }, devDependencies, dependencies, dependenciesMeta, optionalDependencies, peerDependencies, peerDependenciesMeta, source, patch, bin, conditions } = entry;
889
917
  const resolution = formatResolution4(source);
890
918
  const alias = rangemap[resolution];
891
919
  const isLocal = version6 === "0.0.0-use.local";
@@ -898,11 +926,14 @@ var preformat5 = (idx) => {
898
926
  delete lf[alias.key];
899
927
  }
900
928
  const key = keys.join(", ");
929
+ const _dependencies = mergeDeps(dependencies, devDependencies);
930
+ if (_dependencies)
931
+ sortObject(_dependencies);
901
932
  rangemap[resolution] = { keys, key, name };
902
933
  lf[key] = {
903
934
  version: version6,
904
935
  resolution,
905
- dependencies: formatDeps(dependencies),
936
+ dependencies: formatDeps(_dependencies, { semverAsNpm: isYarn4, isLocal: !isLocal }),
906
937
  optionalDependencies: formatDeps(optionalDependencies),
907
938
  peerDependencies: formatDeps(peerDependencies),
908
939
  dependenciesMeta,
@@ -929,7 +960,7 @@ var format5 = (snapshot, { __metadata = {
929
960
  } } = {}) => {
930
961
  const lines = (0, import_js_yaml2.dump)(__spreadValues({
931
962
  __metadata
932
- }, preformat5({ snapshot })), {
963
+ }, preformat5({ snapshot }, { __metadata })), {
933
964
  quotingType: '"',
934
965
  flowLevel: -1,
935
966
  lineWidth: -1,
@@ -83,7 +83,7 @@ export type IFormatOpts = {
83
83
  };
84
84
  export type IFormat = (snapshot: TSnapshot, opts?: IFormatOpts) => string;
85
85
  export type IFormatReference = (value: string, opts: any) => string | number;
86
- export type IPreformat<T> = (idx: TSnapshotIndex) => T;
86
+ export type IPreformat<T> = (idx: TSnapshotIndex, opts?: IFormatOpts) => T;
87
87
  export type ICheck = (input: string) => boolean;
88
88
  export type IParseResolution = (input: string) => TResolution;
89
89
  export type IFormatResolution = (resolution: TResolution) => string;
@@ -1,3 +1,4 @@
1
+ import { TDependencies } from "./interface";
1
2
  export declare const sortObject: <T extends Record<string, any>>(unordered: T, predicate?: (a: [string, any], b: [string, any]) => number) => T;
2
3
  export declare const flushObject: (obj: Record<string, any>) => Record<string, any>;
3
4
  export declare const loadContents: (value: string) => Promise<string>;
@@ -6,4 +7,5 @@ export declare const debug: ((...chunks: any[]) => void) & {
6
7
  json(data: any, name?: any, base?: string): Promise<void>;
7
8
  tempy(): Promise<string>;
8
9
  };
10
+ export declare const mergeDeps: (...deps: (TDependencies | undefined)[]) => TDependencies | undefined;
9
11
  export declare const unique: (arr: string[]) => string[];
@@ -105,6 +105,12 @@ var debug = Object.assign((...chunks) => {
105
105
  return temp;
106
106
  }
107
107
  });
108
+ var mergeDeps = (...deps) => {
109
+ const _deps = deps.filter(Boolean);
110
+ if (!_deps.length)
111
+ return;
112
+ return Object.assign({}, ..._deps);
113
+ };
108
114
  var unique = (arr) => [...new Set(arr)];
109
115
 
110
116
  // src/main/ts/analyze.ts
@@ -612,8 +618,12 @@ var preparse = (value) => {
612
618
  }, "").join("\n");
613
619
  return load(_value);
614
620
  };
615
- var parse3 = (value, pkg) => {
616
- const manifest = JSON.parse(pkg);
621
+ var parse3 = (value, ...pkgs) => {
622
+ const manifest = JSON.parse(pkgs[0]);
623
+ const manifests = Object.fromEntries(pkgs.map((p) => {
624
+ const manifest2 = JSON.parse(p);
625
+ return [manifest2.name, manifest2];
626
+ }));
617
627
  const raw = preparse(value);
618
628
  const snapshot = {};
619
629
  Object.entries(raw).forEach((value2) => {
@@ -623,15 +633,19 @@ var parse3 = (value, pkg) => {
623
633
  const source = parseResolution3(resolved);
624
634
  const chunks = _key.split(", ");
625
635
  const names = unique(chunks.map((c) => c.slice(0, c.indexOf("@", 1))));
636
+ const isLocal = version6 === "0.0.0-use.local";
626
637
  for (const name of names) {
627
638
  const ranges = chunks.filter((c) => c.startsWith(`${name}@`)).map((r) => r.slice(r.indexOf("@", 1) + 1)).sort();
628
639
  const key = `${name}@${version6}`;
640
+ const _dependencies = isLocal && manifests[name]?.dependencies || dependencies;
641
+ const _devDependencies = isLocal && manifests[name]?.devDependencies;
629
642
  snapshot[key] = {
630
643
  name,
631
644
  version: version6,
632
645
  ranges,
633
646
  hashes,
634
- dependencies,
647
+ dependencies: _dependencies,
648
+ devDependencies: _devDependencies,
635
649
  optionalDependencies,
636
650
  source
637
651
  };
@@ -659,7 +673,7 @@ var preformat4 = (idx) => {
659
673
  const lf = {};
660
674
  const rangemap = {};
661
675
  Object.values(snapshot).forEach((entry) => {
662
- const { name, version: version6, ranges, hashes, dependencies, optionalDependencies, source } = entry;
676
+ const { name, version: version6, ranges, hashes, devDependencies, dependencies, optionalDependencies, source } = entry;
663
677
  const resolved = formatResolution3(source);
664
678
  const alias = rangemap[resolved];
665
679
  const integrity = Object.entries(hashes).map(([k, v]) => `${k}-${v}`).join(" ");
@@ -670,12 +684,15 @@ var preformat4 = (idx) => {
670
684
  delete lf[alias.key];
671
685
  }
672
686
  const key = keys.join(", ");
687
+ const _dependencies = mergeDeps(dependencies, devDependencies);
688
+ if (_dependencies)
689
+ sortObject(_dependencies);
673
690
  rangemap[resolved] = { keys, key, name };
674
691
  lf[key] = {
675
692
  version: version6,
676
693
  resolved,
677
694
  integrity,
678
- dependencies,
695
+ dependencies: _dependencies,
679
696
  optionalDependencies
680
697
  };
681
698
  });
@@ -737,8 +754,12 @@ var version5 = "yarn-berry";
737
754
  var check5 = (value) => value.includes(`
738
755
  __metadata:
739
756
  version:`);
740
- var parse4 = (lockfile, pkg) => {
741
- const manifest = JSON.parse(pkg);
757
+ var parse4 = (lockfile, ...pkgs) => {
758
+ const manifest = JSON.parse(pkgs[0]);
759
+ const manifests = Object.fromEntries(pkgs.map((p) => {
760
+ const manifest2 = JSON.parse(p);
761
+ return [manifest2.name, manifest2];
762
+ }));
742
763
  const snapshot = {};
743
764
  const raw = load2(lockfile);
744
765
  delete raw.__metadata;
@@ -747,6 +768,9 @@ var parse4 = (lockfile, pkg) => {
747
768
  const { version: version6, checksum, dependencies, dependenciesMeta, optionalDependencies, peerDependencies, peerDependenciesMeta, resolution, bin, conditions } = _entry;
748
769
  const chunks = _key.split(", ");
749
770
  const names = unique(chunks.map((c) => c.slice(0, c.indexOf("@", 1))));
771
+ const isLocal = version6 === "0.0.0-use.local";
772
+ const hashes = parseIntegrity(checksum);
773
+ const source = parseResolution4(resolution);
750
774
  for (const name of names) {
751
775
  const key = `${name}@${version6}`;
752
776
  if (_key.includes("#")) {
@@ -758,15 +782,16 @@ var parse4 = (lockfile, pkg) => {
758
782
  return;
759
783
  }
760
784
  const ranges = chunks.filter((c) => c.startsWith(`${name}@`)).map((r) => r.slice(r.indexOf("@", 1) + 1)).map(normalizeReference);
761
- const hashes = parseIntegrity(checksum);
762
- const source = parseResolution4(resolution);
785
+ const _dependencies = normalizeDeps(isLocal && manifests[name]?.dependencies || dependencies);
786
+ const _devDependencies = normalizeDeps(isLocal && manifests[name]?.devDependencies);
763
787
  snapshot[key] = {
764
788
  name,
765
789
  version: version6,
766
790
  ranges,
767
791
  hashes,
768
792
  source,
769
- dependencies: normalizeDeps(dependencies),
793
+ dependencies: _dependencies,
794
+ devDependencies: _devDependencies,
770
795
  dependenciesMeta,
771
796
  optionalDependencies: normalizeDeps(optionalDependencies),
772
797
  peerDependencies: normalizeDeps(peerDependencies),
@@ -795,12 +820,13 @@ var parse4 = (lockfile, pkg) => {
795
820
  debug.json("yarn-berry-snapshot.json", snapshot);
796
821
  return snapshot;
797
822
  };
798
- var preformat5 = (idx) => {
823
+ var preformat5 = (idx, { __metadata } = {}) => {
799
824
  const { snapshot } = idx;
800
825
  const lf = {};
801
826
  const rangemap = {};
827
+ const isYarn4 = __metadata?.version >= 7;
802
828
  Object.values(snapshot).forEach((entry) => {
803
- const { name, version: version6, ranges, hashes: { checksum }, dependencies, dependenciesMeta, optionalDependencies, peerDependencies, peerDependenciesMeta, source, patch, bin, conditions } = entry;
829
+ const { name, version: version6, ranges, hashes: { checksum }, devDependencies, dependencies, dependenciesMeta, optionalDependencies, peerDependencies, peerDependenciesMeta, source, patch, bin, conditions } = entry;
804
830
  const resolution = formatResolution4(source);
805
831
  const alias = rangemap[resolution];
806
832
  const isLocal = version6 === "0.0.0-use.local";
@@ -813,11 +839,14 @@ var preformat5 = (idx) => {
813
839
  delete lf[alias.key];
814
840
  }
815
841
  const key = keys.join(", ");
842
+ const _dependencies = mergeDeps(dependencies, devDependencies);
843
+ if (_dependencies)
844
+ sortObject(_dependencies);
816
845
  rangemap[resolution] = { keys, key, name };
817
846
  lf[key] = {
818
847
  version: version6,
819
848
  resolution,
820
- dependencies: formatDeps(dependencies),
849
+ dependencies: formatDeps(_dependencies, { semverAsNpm: isYarn4, isLocal: !isLocal }),
821
850
  optionalDependencies: formatDeps(optionalDependencies),
822
851
  peerDependencies: formatDeps(peerDependencies),
823
852
  dependenciesMeta,
@@ -845,7 +874,7 @@ var format5 = (snapshot, { __metadata = {
845
874
  } } = {}) => {
846
875
  const lines = dump2({
847
876
  __metadata,
848
- ...preformat5({ snapshot })
877
+ ...preformat5({ snapshot }, { __metadata })
849
878
  }, {
850
879
  quotingType: '"',
851
880
  flowLevel: -1,