@teambit/dependency-resolver 0.0.1133 → 0.0.1134

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.
@@ -1,13 +1,17 @@
1
- import { OutdatedPkg } from './get-all-policy-pkgs';
1
+ import { ComponentID } from '@teambit/component';
2
+ import { MergedOutdatedPkg } from './dependency-resolver.main.runtime';
2
3
  import { VariantPolicyConfigObject, WorkspacePolicyEntry } from './policy';
4
+ export interface UpdatedComponent {
5
+ componentId: ComponentID;
6
+ config: Record<string, any>;
7
+ }
3
8
  /**
4
9
  * Applies updates to policies.
5
10
  */
6
- export declare function applyUpdates(outdatedPkgs: Array<Omit<OutdatedPkg, 'currentRange'>>, { variantPoliciesByPatterns, componentPoliciesById, }: {
11
+ export declare function applyUpdates(outdatedPkgs: Array<Omit<MergedOutdatedPkg, 'currentRange'>>, { variantPoliciesByPatterns, }: {
7
12
  variantPoliciesByPatterns: Record<string, VariantPolicyConfigObject>;
8
- componentPoliciesById: Record<string, any>;
9
13
  }): {
10
14
  updatedVariants: string[];
11
- updatedComponents: string[];
15
+ updatedComponents: UpdatedComponent[];
12
16
  updatedWorkspacePolicyEntries: WorkspacePolicyEntry[];
13
17
  };
@@ -9,60 +9,73 @@ exports.applyUpdates = applyUpdates;
9
9
  * Applies updates to policies.
10
10
  */
11
11
  function applyUpdates(outdatedPkgs, {
12
- variantPoliciesByPatterns,
13
- componentPoliciesById
12
+ variantPoliciesByPatterns
14
13
  }) {
15
14
  const updatedWorkspacePolicyEntries = [];
16
15
  const updatedVariants = new Set();
17
- const updatedComponents = new Set();
16
+ const updatedComponents = new Map();
18
17
  for (const outdatedPkg of outdatedPkgs) {
19
- switch (outdatedPkg.source) {
20
- case 'rootPolicy':
21
- case 'component-model':
22
- updatedWorkspacePolicyEntries.push({
23
- dependencyId: outdatedPkg.name,
24
- value: {
25
- version: outdatedPkg.latestRange
26
- },
27
- lifecycleType: outdatedPkg.targetField === 'peerDependencies' ? 'peer' : 'runtime'
28
- });
29
- break;
30
- case 'variants':
31
- if (outdatedPkg.variantPattern) {
32
- var _variantPoliciesByPat, _variantPoliciesByPat2, _variantPoliciesByPat3;
33
- const {
34
- variantPattern,
35
- targetField,
36
- name
37
- } = outdatedPkg;
38
- updatedVariants.add(outdatedPkg.variantPattern);
39
- // eslint-disable-next-line dot-notation
40
- if ((_variantPoliciesByPat = variantPoliciesByPatterns[variantPattern]) !== null && _variantPoliciesByPat !== void 0 && (_variantPoliciesByPat2 = _variantPoliciesByPat[targetField]) !== null && _variantPoliciesByPat2 !== void 0 && (_variantPoliciesByPat3 = _variantPoliciesByPat2[name]) !== null && _variantPoliciesByPat3 !== void 0 && _variantPoliciesByPat3['version']) {
41
- // eslint-disable-line
42
- variantPoliciesByPatterns[variantPattern][targetField][name]['version'] = outdatedPkg.latestRange; // eslint-disable-line
43
- } else {
44
- variantPoliciesByPatterns[variantPattern][targetField][name] = outdatedPkg.latestRange; // eslint-disable-line
45
- }
18
+ var _outdatedPkg$dependen;
19
+ if (outdatedPkg.source === 'component' || outdatedPkg.source === 'rootPolicy' && (_outdatedPkg$dependen = outdatedPkg.dependentComponents) !== null && _outdatedPkg$dependen !== void 0 && _outdatedPkg$dependen.length && !outdatedPkg.isAuto) {
20
+ var _outdatedPkg$dependen2;
21
+ // eslint-disable-next-line
22
+ ((_outdatedPkg$dependen2 = outdatedPkg.dependentComponents) !== null && _outdatedPkg$dependen2 !== void 0 ? _outdatedPkg$dependen2 : [outdatedPkg.componentId]).forEach(componentId => {
23
+ const id = componentId.toString();
24
+ if (!updatedComponents.has(id)) {
25
+ updatedComponents.set(id, {
26
+ componentId,
27
+ config: {
28
+ policy: {}
29
+ }
30
+ });
46
31
  }
47
-
48
- break;
49
- case 'component':
50
- if (outdatedPkg.componentId) {
51
- updatedComponents.add(outdatedPkg.componentId);
52
- if (componentPoliciesById[outdatedPkg.componentId][outdatedPkg.targetField][outdatedPkg.name].version) {
53
- componentPoliciesById[outdatedPkg.componentId][outdatedPkg.targetField][outdatedPkg.name].version = outdatedPkg.latestRange;
54
- } else {
55
- componentPoliciesById[outdatedPkg.componentId][outdatedPkg.targetField][outdatedPkg.name] = outdatedPkg.latestRange;
56
- }
32
+ const {
33
+ config
34
+ } = updatedComponents.get(id); // eslint-disable-line
35
+ if (!config.policy[outdatedPkg.targetField]) {
36
+ config.policy[outdatedPkg.targetField] = {};
57
37
  }
58
- break;
59
- default:
60
- throw new Error(`Unsupported policy source for update: ${outdatedPkg.source}`);
38
+ config.policy[outdatedPkg.targetField][outdatedPkg.name] = outdatedPkg.latestRange;
39
+ });
40
+ } else {
41
+ switch (outdatedPkg.source) {
42
+ case 'rootPolicy':
43
+ case 'component-model':
44
+ updatedWorkspacePolicyEntries.push({
45
+ dependencyId: outdatedPkg.name,
46
+ value: {
47
+ version: outdatedPkg.latestRange
48
+ },
49
+ lifecycleType: outdatedPkg.targetField === 'peerDependencies' ? 'peer' : 'runtime'
50
+ });
51
+ break;
52
+ case 'variants':
53
+ if (outdatedPkg.variantPattern) {
54
+ var _variantPoliciesByPat, _variantPoliciesByPat2, _variantPoliciesByPat3;
55
+ const {
56
+ variantPattern,
57
+ targetField,
58
+ name
59
+ } = outdatedPkg;
60
+ updatedVariants.add(outdatedPkg.variantPattern);
61
+ // eslint-disable-next-line dot-notation
62
+ if ((_variantPoliciesByPat = variantPoliciesByPatterns[variantPattern]) !== null && _variantPoliciesByPat !== void 0 && (_variantPoliciesByPat2 = _variantPoliciesByPat[targetField]) !== null && _variantPoliciesByPat2 !== void 0 && (_variantPoliciesByPat3 = _variantPoliciesByPat2[name]) !== null && _variantPoliciesByPat3 !== void 0 && _variantPoliciesByPat3['version']) {
63
+ // eslint-disable-line
64
+ variantPoliciesByPatterns[variantPattern][targetField][name]['version'] = outdatedPkg.latestRange; // eslint-disable-line
65
+ } else {
66
+ variantPoliciesByPatterns[variantPattern][targetField][name] = outdatedPkg.latestRange; // eslint-disable-line
67
+ }
68
+ }
69
+
70
+ break;
71
+ default:
72
+ throw new Error(`Unsupported policy source for update: ${outdatedPkg.source}`);
73
+ }
61
74
  }
62
75
  }
63
76
  return {
64
77
  updatedVariants: Array.from(updatedVariants),
65
- updatedComponents: Array.from(updatedComponents),
78
+ updatedComponents: Array.from(updatedComponents.values()),
66
79
  updatedWorkspacePolicyEntries
67
80
  };
68
81
  }
@@ -1 +1 @@
1
- {"version":3,"names":["applyUpdates","outdatedPkgs","variantPoliciesByPatterns","componentPoliciesById","updatedWorkspacePolicyEntries","updatedVariants","Set","updatedComponents","outdatedPkg","source","push","dependencyId","name","value","version","latestRange","lifecycleType","targetField","variantPattern","_variantPoliciesByPat","_variantPoliciesByPat2","_variantPoliciesByPat3","add","componentId","Error","Array","from"],"sources":["apply-updates.ts"],"sourcesContent":["import { OutdatedPkg } from './get-all-policy-pkgs';\nimport { VariantPolicyConfigObject, WorkspacePolicyEntry } from './policy';\n\n/**\n * Applies updates to policies.\n */\nexport function applyUpdates(\n outdatedPkgs: Array<Omit<OutdatedPkg, 'currentRange'>>,\n {\n variantPoliciesByPatterns,\n componentPoliciesById,\n }: {\n variantPoliciesByPatterns: Record<string, VariantPolicyConfigObject>;\n componentPoliciesById: Record<string, any>;\n }\n): {\n updatedVariants: string[];\n updatedComponents: string[];\n updatedWorkspacePolicyEntries: WorkspacePolicyEntry[];\n} {\n const updatedWorkspacePolicyEntries: WorkspacePolicyEntry[] = [];\n const updatedVariants = new Set<string>();\n const updatedComponents = new Set<string>();\n\n for (const outdatedPkg of outdatedPkgs) {\n switch (outdatedPkg.source) {\n case 'rootPolicy':\n case 'component-model':\n updatedWorkspacePolicyEntries.push({\n dependencyId: outdatedPkg.name,\n value: {\n version: outdatedPkg.latestRange,\n },\n lifecycleType: outdatedPkg.targetField === 'peerDependencies' ? 'peer' : 'runtime',\n });\n break;\n case 'variants':\n if (outdatedPkg.variantPattern) {\n const { variantPattern, targetField, name } = outdatedPkg;\n updatedVariants.add(outdatedPkg.variantPattern);\n // eslint-disable-next-line dot-notation\n if (variantPoliciesByPatterns[variantPattern]?.[targetField]?.[name]?.['version']) {\n // eslint-disable-line\n variantPoliciesByPatterns[variantPattern][targetField]![name]['version'] = outdatedPkg.latestRange; // eslint-disable-line\n } else {\n variantPoliciesByPatterns[variantPattern][targetField]![name] = outdatedPkg.latestRange; // eslint-disable-line\n }\n }\n break;\n case 'component':\n if (outdatedPkg.componentId) {\n updatedComponents.add(outdatedPkg.componentId);\n if (componentPoliciesById[outdatedPkg.componentId][outdatedPkg.targetField][outdatedPkg.name].version) {\n componentPoliciesById[outdatedPkg.componentId][outdatedPkg.targetField][outdatedPkg.name].version =\n outdatedPkg.latestRange;\n } else {\n componentPoliciesById[outdatedPkg.componentId][outdatedPkg.targetField][outdatedPkg.name] =\n outdatedPkg.latestRange;\n }\n }\n break;\n default:\n throw new Error(`Unsupported policy source for update: ${outdatedPkg.source}`);\n }\n }\n return {\n updatedVariants: Array.from(updatedVariants),\n updatedComponents: Array.from(updatedComponents),\n updatedWorkspacePolicyEntries,\n };\n}\n"],"mappings":";;;;;;;AAGA;AACA;AACA;AACO,SAASA,YAAYA,CAC1BC,YAAsD,EACtD;EACEC,yBAAyB;EACzBC;AAIF,CAAC,EAKD;EACA,MAAMC,6BAAqD,GAAG,EAAE;EAChE,MAAMC,eAAe,GAAG,IAAIC,GAAG,CAAS,CAAC;EACzC,MAAMC,iBAAiB,GAAG,IAAID,GAAG,CAAS,CAAC;EAE3C,KAAK,MAAME,WAAW,IAAIP,YAAY,EAAE;IACtC,QAAQO,WAAW,CAACC,MAAM;MACxB,KAAK,YAAY;MACjB,KAAK,iBAAiB;QACpBL,6BAA6B,CAACM,IAAI,CAAC;UACjCC,YAAY,EAAEH,WAAW,CAACI,IAAI;UAC9BC,KAAK,EAAE;YACLC,OAAO,EAAEN,WAAW,CAACO;UACvB,CAAC;UACDC,aAAa,EAAER,WAAW,CAACS,WAAW,KAAK,kBAAkB,GAAG,MAAM,GAAG;QAC3E,CAAC,CAAC;QACF;MACF,KAAK,UAAU;QACb,IAAIT,WAAW,CAACU,cAAc,EAAE;UAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;UAC9B,MAAM;YAAEH,cAAc;YAAED,WAAW;YAAEL;UAAK,CAAC,GAAGJ,WAAW;UACzDH,eAAe,CAACiB,GAAG,CAACd,WAAW,CAACU,cAAc,CAAC;UAC/C;UACA,KAAAC,qBAAA,GAAIjB,yBAAyB,CAACgB,cAAc,CAAC,cAAAC,qBAAA,gBAAAC,sBAAA,GAAzCD,qBAAA,CAA4CF,WAAW,CAAC,cAAAG,sBAAA,gBAAAC,sBAAA,GAAxDD,sBAAA,CAA2DR,IAAI,CAAC,cAAAS,sBAAA,eAAhEA,sBAAA,CAAmE,SAAS,CAAC,EAAE;YACjF;YACAnB,yBAAyB,CAACgB,cAAc,CAAC,CAACD,WAAW,CAAC,CAAEL,IAAI,CAAC,CAAC,SAAS,CAAC,GAAGJ,WAAW,CAACO,WAAW,CAAC,CAAC;UACtG,CAAC,MAAM;YACLb,yBAAyB,CAACgB,cAAc,CAAC,CAACD,WAAW,CAAC,CAAEL,IAAI,CAAC,GAAGJ,WAAW,CAACO,WAAW,CAAC,CAAC;UAC3F;QACF;;QACA;MACF,KAAK,WAAW;QACd,IAAIP,WAAW,CAACe,WAAW,EAAE;UAC3BhB,iBAAiB,CAACe,GAAG,CAACd,WAAW,CAACe,WAAW,CAAC;UAC9C,IAAIpB,qBAAqB,CAACK,WAAW,CAACe,WAAW,CAAC,CAACf,WAAW,CAACS,WAAW,CAAC,CAACT,WAAW,CAACI,IAAI,CAAC,CAACE,OAAO,EAAE;YACrGX,qBAAqB,CAACK,WAAW,CAACe,WAAW,CAAC,CAACf,WAAW,CAACS,WAAW,CAAC,CAACT,WAAW,CAACI,IAAI,CAAC,CAACE,OAAO,GAC/FN,WAAW,CAACO,WAAW;UAC3B,CAAC,MAAM;YACLZ,qBAAqB,CAACK,WAAW,CAACe,WAAW,CAAC,CAACf,WAAW,CAACS,WAAW,CAAC,CAACT,WAAW,CAACI,IAAI,CAAC,GACvFJ,WAAW,CAACO,WAAW;UAC3B;QACF;QACA;MACF;QACE,MAAM,IAAIS,KAAK,CAAE,yCAAwChB,WAAW,CAACC,MAAO,EAAC,CAAC;IAClF;EACF;EACA,OAAO;IACLJ,eAAe,EAAEoB,KAAK,CAACC,IAAI,CAACrB,eAAe,CAAC;IAC5CE,iBAAiB,EAAEkB,KAAK,CAACC,IAAI,CAACnB,iBAAiB,CAAC;IAChDH;EACF,CAAC;AACH"}
1
+ {"version":3,"names":["applyUpdates","outdatedPkgs","variantPoliciesByPatterns","updatedWorkspacePolicyEntries","updatedVariants","Set","updatedComponents","Map","outdatedPkg","_outdatedPkg$dependen","source","dependentComponents","length","isAuto","_outdatedPkg$dependen2","componentId","forEach","id","toString","has","set","config","policy","get","targetField","name","latestRange","push","dependencyId","value","version","lifecycleType","variantPattern","_variantPoliciesByPat","_variantPoliciesByPat2","_variantPoliciesByPat3","add","Error","Array","from","values"],"sources":["apply-updates.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component';\nimport { MergedOutdatedPkg } from './dependency-resolver.main.runtime';\nimport { VariantPolicyConfigObject, WorkspacePolicyEntry } from './policy';\n\nexport interface UpdatedComponent {\n componentId: ComponentID;\n config: Record<string, any>;\n}\n\n/**\n * Applies updates to policies.\n */\nexport function applyUpdates(\n outdatedPkgs: Array<Omit<MergedOutdatedPkg, 'currentRange'>>,\n {\n variantPoliciesByPatterns,\n }: {\n variantPoliciesByPatterns: Record<string, VariantPolicyConfigObject>;\n }\n): {\n updatedVariants: string[];\n updatedComponents: UpdatedComponent[];\n updatedWorkspacePolicyEntries: WorkspacePolicyEntry[];\n} {\n const updatedWorkspacePolicyEntries: WorkspacePolicyEntry[] = [];\n const updatedVariants = new Set<string>();\n const updatedComponents = new Map<string, UpdatedComponent>();\n\n for (const outdatedPkg of outdatedPkgs) {\n if (\n outdatedPkg.source === 'component' ||\n (outdatedPkg.source === 'rootPolicy' && outdatedPkg.dependentComponents?.length && !outdatedPkg.isAuto)\n ) {\n // eslint-disable-next-line\n (outdatedPkg.dependentComponents ?? [outdatedPkg.componentId!]).forEach((componentId) => {\n const id = componentId.toString();\n if (!updatedComponents.has(id)) {\n updatedComponents.set(id, { componentId, config: { policy: {} } });\n }\n const { config } = updatedComponents.get(id)!; // eslint-disable-line\n if (!config.policy[outdatedPkg.targetField]) {\n config.policy[outdatedPkg.targetField] = {};\n }\n config.policy[outdatedPkg.targetField][outdatedPkg.name] = outdatedPkg.latestRange;\n });\n } else {\n switch (outdatedPkg.source) {\n case 'rootPolicy':\n case 'component-model':\n updatedWorkspacePolicyEntries.push({\n dependencyId: outdatedPkg.name,\n value: {\n version: outdatedPkg.latestRange,\n },\n lifecycleType: outdatedPkg.targetField === 'peerDependencies' ? 'peer' : 'runtime',\n });\n break;\n case 'variants':\n if (outdatedPkg.variantPattern) {\n const { variantPattern, targetField, name } = outdatedPkg;\n updatedVariants.add(outdatedPkg.variantPattern);\n // eslint-disable-next-line dot-notation\n if (variantPoliciesByPatterns[variantPattern]?.[targetField]?.[name]?.['version']) {\n // eslint-disable-line\n variantPoliciesByPatterns[variantPattern][targetField]![name]['version'] = outdatedPkg.latestRange; // eslint-disable-line\n } else {\n variantPoliciesByPatterns[variantPattern][targetField]![name] = outdatedPkg.latestRange; // eslint-disable-line\n }\n }\n break;\n default:\n throw new Error(`Unsupported policy source for update: ${outdatedPkg.source}`);\n }\n }\n }\n return {\n updatedVariants: Array.from(updatedVariants),\n updatedComponents: Array.from(updatedComponents.values()),\n updatedWorkspacePolicyEntries,\n };\n}\n"],"mappings":"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"}
@@ -1,5 +1,12 @@
1
1
  "use strict";
2
2
 
3
+ function _component() {
4
+ const data = require("@teambit/component");
5
+ _component = function () {
6
+ return data;
7
+ };
8
+ return data;
9
+ }
3
10
  function _applyUpdates() {
4
11
  const data = require("./apply-updates");
5
12
  _applyUpdates = function () {
@@ -22,8 +29,7 @@ describe('applyUpdates()', () => {
22
29
  source: 'rootPolicy',
23
30
  targetField: 'peerDependencies'
24
31
  }], {
25
- variantPoliciesByPatterns: {},
26
- componentPoliciesById: {}
32
+ variantPoliciesByPatterns: {}
27
33
  });
28
34
  // @ts-ignore
29
35
  expect(updatedWorkspacePolicyEntries).toStrictEqual([{
@@ -111,8 +117,7 @@ describe('applyUpdates()', () => {
111
117
  variantPattern: 'variant3',
112
118
  targetField: 'peerDependencies'
113
119
  }], {
114
- variantPoliciesByPatterns,
115
- componentPoliciesById: {}
120
+ variantPoliciesByPatterns
116
121
  });
117
122
  // @ts-ignore
118
123
  expect(variantPoliciesByPatterns.variant1).toStrictEqual({
@@ -164,67 +169,46 @@ describe('applyUpdates()', () => {
164
169
  });
165
170
  });
166
171
  it('should apply updates on component dependencies', () => {
167
- const componentPoliciesById = {
168
- component1: {
169
- dependencies: {
170
- 'component1-runtime-dep1': {
171
- version: '1.0.0',
172
- resolveFromEnv: true
173
- },
174
- 'component1-runtime-dep2': '1.0.0'
175
- },
176
- devDependencies: {
177
- 'component1-dev-dep1': '1.0.0',
178
- 'component1-dev-dep2': '1.0.0'
179
- },
180
- peerDependencies: {
181
- 'component1-peer-dep1': '1.0.0',
182
- 'component1-peer-dep2': '1.0.0'
183
- }
184
- }
185
- };
186
- (0, _applyUpdates().applyUpdates)([{
172
+ const {
173
+ updatedComponents
174
+ } = (0, _applyUpdates().applyUpdates)([{
187
175
  name: 'component1-runtime-dep1',
188
176
  latestRange: '2.0.0',
189
177
  source: 'component',
190
- componentId: 'component1',
178
+ componentId: _component().ComponentID.fromString('scope/component1'),
191
179
  targetField: 'dependencies'
192
180
  }, {
193
181
  name: 'component1-dev-dep1',
194
182
  latestRange: '2.0.0',
195
183
  source: 'component',
196
- componentId: 'component1',
184
+ componentId: _component().ComponentID.fromString('scope/component1'),
197
185
  targetField: 'devDependencies'
198
186
  }, {
199
187
  name: 'component1-peer-dep1',
200
188
  latestRange: '2.0.0',
201
189
  source: 'component',
202
- componentId: 'component1',
190
+ componentId: _component().ComponentID.fromString('scope/component1'),
203
191
  targetField: 'peerDependencies'
204
192
  }], {
205
- variantPoliciesByPatterns: {},
206
- componentPoliciesById
193
+ variantPoliciesByPatterns: {}
207
194
  });
208
195
  // @ts-ignore
209
- expect(componentPoliciesById).toStrictEqual({
210
- component1: {
211
- dependencies: {
212
- 'component1-runtime-dep1': {
213
- version: '2.0.0',
214
- resolveFromEnv: true
196
+ expect(updatedComponents).toStrictEqual([{
197
+ componentId: _component().ComponentID.fromString('scope/component1'),
198
+ config: {
199
+ policy: {
200
+ dependencies: {
201
+ 'component1-runtime-dep1': '2.0.0'
215
202
  },
216
- 'component1-runtime-dep2': '1.0.0'
217
- },
218
- devDependencies: {
219
- 'component1-dev-dep1': '2.0.0',
220
- 'component1-dev-dep2': '1.0.0'
221
- },
222
- peerDependencies: {
223
- 'component1-peer-dep1': '2.0.0',
224
- 'component1-peer-dep2': '1.0.0'
203
+ devDependencies: {
204
+ 'component1-dev-dep1': '2.0.0'
205
+ },
206
+ peerDependencies: {
207
+ 'component1-peer-dep1': '2.0.0'
208
+ }
225
209
  }
226
210
  }
227
- });
211
+ }]);
228
212
  });
229
213
  });
230
214
 
@@ -1 +1 @@
1
- {"version":3,"names":["_applyUpdates","data","require","describe","it","updatedWorkspacePolicyEntries","applyUpdates","name","latestRange","source","targetField","variantPoliciesByPatterns","componentPoliciesById","expect","toStrictEqual","dependencyId","value","version","lifecycleType","updateExisting","variant1","dependencies","resolveFromEnv","devDependencies","peerDependencies","variant2","variant3","variantPattern","component1","componentId"],"sources":["apply-updates.spec.ts"],"sourcesContent":["import { applyUpdates } from './apply-updates';\n\ndescribe('applyUpdates()', () => {\n it('should apply updates on root dependencies', () => {\n const { updatedWorkspacePolicyEntries } = applyUpdates(\n [\n {\n name: 'lodash',\n latestRange: '2.0.0',\n source: 'rootPolicy',\n targetField: 'dependencies' as const,\n },\n {\n name: 'react-dom',\n latestRange: '2.0.0',\n source: 'rootPolicy',\n targetField: 'peerDependencies' as const,\n },\n ],\n {\n variantPoliciesByPatterns: {},\n componentPoliciesById: {},\n }\n );\n // @ts-ignore\n expect(updatedWorkspacePolicyEntries).toStrictEqual(\n [\n {\n dependencyId: 'lodash',\n value: {\n version: '2.0.0',\n },\n lifecycleType: 'runtime',\n },\n {\n dependencyId: 'react-dom',\n value: {\n version: '2.0.0',\n },\n lifecycleType: 'peer',\n },\n ],\n // @ts-ignore\n { updateExisting: true }\n );\n });\n it('should apply updates on variant dependencies', () => {\n const variantPoliciesByPatterns = {\n variant1: {\n dependencies: {\n 'variant1-runtime-dep1': { version: '1.0.0', resolveFromEnv: true },\n 'variant1-runtime-dep2': '1.0.0',\n },\n devDependencies: {\n 'variant1-dev-dep1': '1.0.0',\n 'variant1-dev-dep2': '1.0.0',\n },\n peerDependencies: {\n 'variant1-peer-dep1': '1.0.0',\n 'variant1-peer-dep2': '1.0.0',\n },\n },\n variant2: {\n dependencies: {\n 'variant2-runtime-dep1': '1.0.0',\n 'variant2-runtime-dep2': '1.0.0',\n },\n devDependencies: {\n 'variant2-dev-dep1': '1.0.0',\n 'variant2-dev-dep2': '1.0.0',\n },\n peerDependencies: {\n 'variant2-peer-dep1': '1.0.0',\n 'variant2-peer-dep2': '1.0.0',\n },\n },\n variant3: {\n dependencies: {\n 'variant3-runtime-dep1': '1.0.0',\n 'variant3-runtime-dep2': '1.0.0',\n },\n devDependencies: {\n 'variant3-dev-dep1': '1.0.0',\n 'variant3-dev-dep2': '1.0.0',\n },\n peerDependencies: {\n 'variant3-peer-dep1': '1.0.0',\n 'variant3-peer-dep2': '1.0.0',\n },\n },\n };\n applyUpdates(\n [\n {\n name: 'variant1-runtime-dep1',\n latestRange: '2.0.0',\n source: 'variants',\n variantPattern: 'variant1',\n targetField: 'dependencies',\n },\n {\n name: 'variant2-dev-dep1',\n latestRange: '2.0.0',\n source: 'variants',\n variantPattern: 'variant2',\n targetField: 'devDependencies',\n },\n {\n name: 'variant3-peer-dep1',\n latestRange: '2.0.0',\n source: 'variants',\n variantPattern: 'variant3',\n targetField: 'peerDependencies',\n },\n ],\n {\n variantPoliciesByPatterns,\n componentPoliciesById: {},\n }\n );\n // @ts-ignore\n expect(variantPoliciesByPatterns.variant1).toStrictEqual({\n dependencies: {\n 'variant1-runtime-dep1': { version: '2.0.0', resolveFromEnv: true },\n 'variant1-runtime-dep2': '1.0.0',\n },\n devDependencies: {\n 'variant1-dev-dep1': '1.0.0',\n 'variant1-dev-dep2': '1.0.0',\n },\n peerDependencies: {\n 'variant1-peer-dep1': '1.0.0',\n 'variant1-peer-dep2': '1.0.0',\n },\n });\n // @ts-ignore\n expect(variantPoliciesByPatterns.variant2).toStrictEqual({\n dependencies: {\n 'variant2-runtime-dep1': '1.0.0',\n 'variant2-runtime-dep2': '1.0.0',\n },\n devDependencies: {\n 'variant2-dev-dep1': '2.0.0',\n 'variant2-dev-dep2': '1.0.0',\n },\n peerDependencies: {\n 'variant2-peer-dep1': '1.0.0',\n 'variant2-peer-dep2': '1.0.0',\n },\n });\n // @ts-ignore\n expect(variantPoliciesByPatterns.variant3).toStrictEqual({\n dependencies: {\n 'variant3-runtime-dep1': '1.0.0',\n 'variant3-runtime-dep2': '1.0.0',\n },\n devDependencies: {\n 'variant3-dev-dep1': '1.0.0',\n 'variant3-dev-dep2': '1.0.0',\n },\n peerDependencies: {\n 'variant3-peer-dep1': '2.0.0',\n 'variant3-peer-dep2': '1.0.0',\n },\n });\n });\n it('should apply updates on component dependencies', () => {\n const componentPoliciesById = {\n component1: {\n dependencies: {\n 'component1-runtime-dep1': { version: '1.0.0', resolveFromEnv: true },\n 'component1-runtime-dep2': '1.0.0',\n },\n devDependencies: {\n 'component1-dev-dep1': '1.0.0',\n 'component1-dev-dep2': '1.0.0',\n },\n peerDependencies: {\n 'component1-peer-dep1': '1.0.0',\n 'component1-peer-dep2': '1.0.0',\n },\n },\n };\n applyUpdates(\n [\n {\n name: 'component1-runtime-dep1',\n latestRange: '2.0.0',\n source: 'component',\n componentId: 'component1',\n targetField: 'dependencies',\n },\n {\n name: 'component1-dev-dep1',\n latestRange: '2.0.0',\n source: 'component',\n componentId: 'component1',\n targetField: 'devDependencies',\n },\n {\n name: 'component1-peer-dep1',\n latestRange: '2.0.0',\n source: 'component',\n componentId: 'component1',\n targetField: 'peerDependencies',\n },\n ],\n {\n variantPoliciesByPatterns: {},\n componentPoliciesById,\n }\n );\n // @ts-ignore\n expect(componentPoliciesById).toStrictEqual({\n component1: {\n dependencies: {\n 'component1-runtime-dep1': { version: '2.0.0', resolveFromEnv: true },\n 'component1-runtime-dep2': '1.0.0',\n },\n devDependencies: {\n 'component1-dev-dep1': '2.0.0',\n 'component1-dev-dep2': '1.0.0',\n },\n peerDependencies: {\n 'component1-peer-dep1': '2.0.0',\n 'component1-peer-dep2': '1.0.0',\n },\n },\n });\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["_component","data","require","_applyUpdates","describe","it","updatedWorkspacePolicyEntries","applyUpdates","name","latestRange","source","targetField","variantPoliciesByPatterns","expect","toStrictEqual","dependencyId","value","version","lifecycleType","updateExisting","variant1","dependencies","resolveFromEnv","devDependencies","peerDependencies","variant2","variant3","variantPattern","updatedComponents","componentId","ComponentID","fromString","config","policy"],"sources":["apply-updates.spec.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component';\nimport { applyUpdates } from './apply-updates';\n\ndescribe('applyUpdates()', () => {\n it('should apply updates on root dependencies', () => {\n const { updatedWorkspacePolicyEntries } = applyUpdates(\n [\n {\n name: 'lodash',\n latestRange: '2.0.0',\n source: 'rootPolicy',\n targetField: 'dependencies' as const,\n },\n {\n name: 'react-dom',\n latestRange: '2.0.0',\n source: 'rootPolicy',\n targetField: 'peerDependencies' as const,\n },\n ],\n {\n variantPoliciesByPatterns: {},\n }\n );\n // @ts-ignore\n expect(updatedWorkspacePolicyEntries).toStrictEqual(\n [\n {\n dependencyId: 'lodash',\n value: {\n version: '2.0.0',\n },\n lifecycleType: 'runtime',\n },\n {\n dependencyId: 'react-dom',\n value: {\n version: '2.0.0',\n },\n lifecycleType: 'peer',\n },\n ],\n // @ts-ignore\n { updateExisting: true }\n );\n });\n it('should apply updates on variant dependencies', () => {\n const variantPoliciesByPatterns = {\n variant1: {\n dependencies: {\n 'variant1-runtime-dep1': { version: '1.0.0', resolveFromEnv: true },\n 'variant1-runtime-dep2': '1.0.0',\n },\n devDependencies: {\n 'variant1-dev-dep1': '1.0.0',\n 'variant1-dev-dep2': '1.0.0',\n },\n peerDependencies: {\n 'variant1-peer-dep1': '1.0.0',\n 'variant1-peer-dep2': '1.0.0',\n },\n },\n variant2: {\n dependencies: {\n 'variant2-runtime-dep1': '1.0.0',\n 'variant2-runtime-dep2': '1.0.0',\n },\n devDependencies: {\n 'variant2-dev-dep1': '1.0.0',\n 'variant2-dev-dep2': '1.0.0',\n },\n peerDependencies: {\n 'variant2-peer-dep1': '1.0.0',\n 'variant2-peer-dep2': '1.0.0',\n },\n },\n variant3: {\n dependencies: {\n 'variant3-runtime-dep1': '1.0.0',\n 'variant3-runtime-dep2': '1.0.0',\n },\n devDependencies: {\n 'variant3-dev-dep1': '1.0.0',\n 'variant3-dev-dep2': '1.0.0',\n },\n peerDependencies: {\n 'variant3-peer-dep1': '1.0.0',\n 'variant3-peer-dep2': '1.0.0',\n },\n },\n };\n applyUpdates(\n [\n {\n name: 'variant1-runtime-dep1',\n latestRange: '2.0.0',\n source: 'variants',\n variantPattern: 'variant1',\n targetField: 'dependencies',\n },\n {\n name: 'variant2-dev-dep1',\n latestRange: '2.0.0',\n source: 'variants',\n variantPattern: 'variant2',\n targetField: 'devDependencies',\n },\n {\n name: 'variant3-peer-dep1',\n latestRange: '2.0.0',\n source: 'variants',\n variantPattern: 'variant3',\n targetField: 'peerDependencies',\n },\n ],\n {\n variantPoliciesByPatterns,\n }\n );\n // @ts-ignore\n expect(variantPoliciesByPatterns.variant1).toStrictEqual({\n dependencies: {\n 'variant1-runtime-dep1': { version: '2.0.0', resolveFromEnv: true },\n 'variant1-runtime-dep2': '1.0.0',\n },\n devDependencies: {\n 'variant1-dev-dep1': '1.0.0',\n 'variant1-dev-dep2': '1.0.0',\n },\n peerDependencies: {\n 'variant1-peer-dep1': '1.0.0',\n 'variant1-peer-dep2': '1.0.0',\n },\n });\n // @ts-ignore\n expect(variantPoliciesByPatterns.variant2).toStrictEqual({\n dependencies: {\n 'variant2-runtime-dep1': '1.0.0',\n 'variant2-runtime-dep2': '1.0.0',\n },\n devDependencies: {\n 'variant2-dev-dep1': '2.0.0',\n 'variant2-dev-dep2': '1.0.0',\n },\n peerDependencies: {\n 'variant2-peer-dep1': '1.0.0',\n 'variant2-peer-dep2': '1.0.0',\n },\n });\n // @ts-ignore\n expect(variantPoliciesByPatterns.variant3).toStrictEqual({\n dependencies: {\n 'variant3-runtime-dep1': '1.0.0',\n 'variant3-runtime-dep2': '1.0.0',\n },\n devDependencies: {\n 'variant3-dev-dep1': '1.0.0',\n 'variant3-dev-dep2': '1.0.0',\n },\n peerDependencies: {\n 'variant3-peer-dep1': '2.0.0',\n 'variant3-peer-dep2': '1.0.0',\n },\n });\n });\n it('should apply updates on component dependencies', () => {\n const { updatedComponents } = applyUpdates(\n [\n {\n name: 'component1-runtime-dep1',\n latestRange: '2.0.0',\n source: 'component',\n componentId: ComponentID.fromString('scope/component1'),\n targetField: 'dependencies',\n },\n {\n name: 'component1-dev-dep1',\n latestRange: '2.0.0',\n source: 'component',\n componentId: ComponentID.fromString('scope/component1'),\n targetField: 'devDependencies',\n },\n {\n name: 'component1-peer-dep1',\n latestRange: '2.0.0',\n source: 'component',\n componentId: ComponentID.fromString('scope/component1'),\n targetField: 'peerDependencies',\n },\n ],\n {\n variantPoliciesByPatterns: {},\n }\n );\n // @ts-ignore\n expect(updatedComponents).toStrictEqual([\n {\n componentId: ComponentID.fromString('scope/component1'),\n config: {\n policy: {\n dependencies: {\n 'component1-runtime-dep1': '2.0.0',\n },\n devDependencies: {\n 'component1-dev-dep1': '2.0.0',\n },\n peerDependencies: {\n 'component1-peer-dep1': '2.0.0',\n },\n },\n },\n },\n ]);\n });\n});\n"],"mappings":"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"}
@@ -18,6 +18,7 @@ import semver from 'semver';
18
18
  import { AspectLoaderMain } from '@teambit/aspect-loader';
19
19
  import { GlobalConfigMain } from '@teambit/global-config';
20
20
  import { Registries } from './registry';
21
+ import { UpdatedComponent } from './apply-updates';
21
22
  import { DependencyInstaller, PreInstallSubscriberList, PostInstallSubscriberList, DepInstallerContext } from './dependency-installer';
22
23
  import { DependencyVersionResolver } from './dependency-version-resolver';
23
24
  import { DepLinkerContext, DependencyLinker, LinkingOptions } from './dependency-linker';
@@ -431,14 +432,17 @@ export declare class DependencyResolverMain {
431
432
  /**
432
433
  * Return a list of outdated policy dependencies.
433
434
  */
434
- getOutdatedPkgsFromPolicies({ rootDir, variantPoliciesByPatterns, componentPoliciesById, components, patterns, forceVersionBump, }: {
435
+ getOutdatedPkgsFromPolicies({ rootDir, variantPoliciesByPatterns, componentPolicies, components, patterns, forceVersionBump, }: {
435
436
  rootDir: string;
436
437
  variantPoliciesByPatterns: Record<string, VariantPolicyConfigObject>;
437
- componentPoliciesById: Record<string, any>;
438
+ componentPolicies: Array<{
439
+ componentId: ComponentID;
440
+ policy: any;
441
+ }>;
438
442
  components: Component[];
439
443
  patterns?: string[];
440
444
  forceVersionBump?: 'major' | 'minor' | 'patch';
441
- }): Promise<OutdatedPkg[]>;
445
+ }): Promise<MergedOutdatedPkg[]>;
442
446
  /**
443
447
  * Accepts a list of package dependency policies and returns a list of outdated policies extended with their "latestRange"
444
448
  */
@@ -460,10 +464,9 @@ export declare class DependencyResolverMain {
460
464
  */
461
465
  applyUpdates(outdatedPkgs: Array<Omit<OutdatedPkg, 'currentRange'>>, options: {
462
466
  variantPoliciesByPatterns: Record<string, any>;
463
- componentPoliciesById: Record<string, any>;
464
467
  }): {
465
468
  updatedVariants: string[];
466
- updatedComponents: string[];
469
+ updatedComponents: UpdatedComponent[];
467
470
  };
468
471
  static runtime: import("@teambit/bit").RuntimeDefinition;
469
472
  static dependencies: Aspect[];
@@ -498,3 +501,7 @@ export declare class DependencyResolverMain {
498
501
  getInjectedDirs(rootDir: string, componentDir: string, packageName: string): Promise<string[]>;
499
502
  getWorkspaceDepsOfBitRoots(manifests: ProjectManifest[]): Record<string, string>;
500
503
  }
504
+ export interface MergedOutdatedPkg extends OutdatedPkg {
505
+ dependentComponents?: ComponentID[];
506
+ hasDifferentRanges?: boolean;
507
+ }
@@ -1233,7 +1233,7 @@ class DependencyResolverMain {
1233
1233
  async getOutdatedPkgsFromPolicies({
1234
1234
  rootDir,
1235
1235
  variantPoliciesByPatterns,
1236
- componentPoliciesById,
1236
+ componentPolicies,
1237
1237
  components,
1238
1238
  patterns,
1239
1239
  forceVersionBump
@@ -1249,14 +1249,15 @@ class DependencyResolverMain {
1249
1249
  name: dep.getPackageName(),
1250
1250
  // eslint-disable-line
1251
1251
  version: dep.version,
1252
- componentId: component.id.toString(),
1252
+ isAuto: dep.source === 'auto',
1253
+ componentId: component.id,
1253
1254
  lifecycleType: dep.lifecycle
1254
1255
  }));
1255
1256
  }))).flat();
1256
1257
  let allPkgs = (0, _getAllPolicyPkgs().getAllPolicyPkgs)({
1257
1258
  rootPolicy: this.getWorkspacePolicyFromConfig(),
1258
1259
  variantPoliciesByPatterns,
1259
- componentPoliciesById,
1260
+ componentPolicies,
1260
1261
  componentModelVersions
1261
1262
  });
1262
1263
  if (patterns !== null && patterns !== void 0 && patterns.length) {
@@ -1267,10 +1268,11 @@ class DependencyResolverMain {
1267
1268
  name
1268
1269
  }) => selectedPkgNames.has(name));
1269
1270
  }
1270
- return this.getOutdatedPkgs({
1271
+ const outdatedPkgs = await this.getOutdatedPkgs({
1271
1272
  rootDir,
1272
1273
  forceVersionBump
1273
1274
  }, allPkgs);
1275
+ return mergeOutdatedPkgs(outdatedPkgs);
1274
1276
  }
1275
1277
 
1276
1278
  /**
@@ -1316,8 +1318,7 @@ class DependencyResolverMain {
1316
1318
  updatedComponents,
1317
1319
  updatedWorkspacePolicyEntries
1318
1320
  } = (0, _applyUpdates().applyUpdates)(outdatedPkgs, {
1319
- variantPoliciesByPatterns: options.variantPoliciesByPatterns,
1320
- componentPoliciesById: options.componentPoliciesById
1321
+ variantPoliciesByPatterns: options.variantPoliciesByPatterns
1321
1322
  });
1322
1323
  this.addToRootPolicy(updatedWorkspacePolicyEntries, {
1323
1324
  updateExisting: true
@@ -1423,5 +1424,45 @@ function newVersionRange(currentRange, forceVersionBump) {
1423
1424
  return null;
1424
1425
  }
1425
1426
  }
1427
+ function mergeOutdatedPkgs(outdatedPkgs) {
1428
+ const mergedOutdatedPkgs = {};
1429
+ const outdatedPkgsNotFromComponentModel = [];
1430
+ for (const outdatedPkg of outdatedPkgs) {
1431
+ if (outdatedPkg.source === 'component-model' && outdatedPkg.componentId) {
1432
+ if (!mergedOutdatedPkgs[outdatedPkg.name]) {
1433
+ mergedOutdatedPkgs[outdatedPkg.name] = _objectSpread(_objectSpread({}, (0, _lodash().omit)(outdatedPkg, ['componentId'])), {}, {
1434
+ source: 'rootPolicy',
1435
+ dependentComponents: [outdatedPkg.componentId]
1436
+ });
1437
+ } else {
1438
+ if (mergedOutdatedPkgs[outdatedPkg.name].currentRange !== outdatedPkg.currentRange) {
1439
+ mergedOutdatedPkgs[outdatedPkg.name].hasDifferentRanges = true;
1440
+ }
1441
+ mergedOutdatedPkgs[outdatedPkg.name].currentRange = tryPickLowestRange(mergedOutdatedPkgs[outdatedPkg.name].currentRange, outdatedPkg.currentRange);
1442
+ mergedOutdatedPkgs[outdatedPkg.name].dependentComponents.push(outdatedPkg.componentId);
1443
+ if (outdatedPkg.targetField === 'dependencies') {
1444
+ mergedOutdatedPkgs[outdatedPkg.name].targetField = outdatedPkg.targetField;
1445
+ }
1446
+ }
1447
+ } else {
1448
+ outdatedPkgsNotFromComponentModel.push(outdatedPkg);
1449
+ }
1450
+ }
1451
+ return [...Object.values(mergedOutdatedPkgs), ...outdatedPkgsNotFromComponentModel];
1452
+ }
1453
+ function tryPickLowestRange(range1, range2) {
1454
+ if (range1 === '*' || range2 === '*') return '*';
1455
+ try {
1456
+ return _semver().default.lt(rangeToVersion(range1), rangeToVersion(range2)) ? range1 : range2;
1457
+ } catch (_unused2) {
1458
+ return '*';
1459
+ }
1460
+ }
1461
+ function rangeToVersion(range) {
1462
+ if (range.startsWith('~') || range.startsWith('^')) {
1463
+ return range.substring(1);
1464
+ }
1465
+ return range;
1466
+ }
1426
1467
 
1427
1468
  //# sourceMappingURL=dependency-resolver.main.runtime.js.map