@teambit/workspace 0.0.836 → 0.0.844

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.
@@ -0,0 +1,171 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`makeOutdatedPkgChoices should group component model updates of the same dependency 1`] = `
4
+ Array [
5
+ Object {
6
+ "choices": Array [
7
+ Object {
8
+ "message": "foo (runtime) * ❯ 2.0.0 because of comp1 and 1 other components ",
9
+ "name": "foo",
10
+ "value": Object {
11
+ "currentRange": "1.0.0",
12
+ "dependentComponents": Array [
13
+ "comp1",
14
+ "comp2",
15
+ ],
16
+ "hasDifferentRanges": true,
17
+ "latestRange": "2.0.0",
18
+ "name": "foo",
19
+ "source": "rootPolicy",
20
+ "targetField": "dependencies",
21
+ },
22
+ },
23
+ ],
24
+ "message": "Root policies",
25
+ },
26
+ ]
27
+ `;
28
+
29
+ exports[`makeOutdatedPkgChoices should group component model updates of the same dependency and display the current range when all components use the same range 1`] = `
30
+ Array [
31
+ Object {
32
+ "choices": Array [
33
+ Object {
34
+ "message": "foo (runtime) ^1.2.3 ❯ 2.0.0 because of comp1 and 1 other components ",
35
+ "name": "foo",
36
+ "value": Object {
37
+ "currentRange": "^1.2.3",
38
+ "dependentComponents": Array [
39
+ "comp1",
40
+ "comp2",
41
+ ],
42
+ "latestRange": "2.0.0",
43
+ "name": "foo",
44
+ "source": "rootPolicy",
45
+ "targetField": "dependencies",
46
+ },
47
+ },
48
+ ],
49
+ "message": "Root policies",
50
+ },
51
+ ]
52
+ `;
53
+
54
+ exports[`makeOutdatedPkgChoices should group component model updates of the same dependency and use * as current range when can't compare ranges 1`] = `
55
+ Array [
56
+ Object {
57
+ "choices": Array [
58
+ Object {
59
+ "message": "foo (runtime) * ❯ 2.0.0 because of comp1 and 1 other components ",
60
+ "name": "foo",
61
+ "value": Object {
62
+ "currentRange": "*",
63
+ "dependentComponents": Array [
64
+ "comp1",
65
+ "comp2",
66
+ ],
67
+ "hasDifferentRanges": true,
68
+ "latestRange": "2.0.0",
69
+ "name": "foo",
70
+ "source": "rootPolicy",
71
+ "targetField": "dependencies",
72
+ },
73
+ },
74
+ ],
75
+ "message": "Root policies",
76
+ },
77
+ ]
78
+ `;
79
+
80
+ exports[`makeOutdatedPkgChoices should render choices in correct order 1`] = `
81
+ Array [
82
+ Object {
83
+ "choices": Array [
84
+ Object {
85
+ "message": "foo (runtime) 1.0.0 ❯ 2.0.0 ",
86
+ "name": "foo",
87
+ "value": Object {
88
+ "currentRange": "1.0.0",
89
+ "latestRange": "2.0.0",
90
+ "name": "foo",
91
+ "source": "rootPolicy",
92
+ "targetField": "dependencies",
93
+ },
94
+ },
95
+ Object {
96
+ "message": "qar (runtime) 1.0.0 ❯ 1.1.0 ",
97
+ "name": "qar",
98
+ "value": Object {
99
+ "currentRange": "1.0.0",
100
+ "latestRange": "1.1.0",
101
+ "name": "qar",
102
+ "source": "rootPolicy",
103
+ "targetField": "dependencies",
104
+ },
105
+ },
106
+ Object {
107
+ "message": "zoo (dev) 1.0.0 ❯ 1.1.0 ",
108
+ "name": "zoo",
109
+ "value": Object {
110
+ "currentRange": "1.0.0",
111
+ "latestRange": "1.1.0",
112
+ "name": "zoo",
113
+ "source": "rootPolicy",
114
+ "targetField": "devDependencies",
115
+ },
116
+ },
117
+ Object {
118
+ "message": "bar (peer) 1.0.0 ❯ 1.1.0 ",
119
+ "name": "bar",
120
+ "value": Object {
121
+ "currentRange": "1.0.0",
122
+ "latestRange": "1.1.0",
123
+ "name": "bar",
124
+ "source": "rootPolicy",
125
+ "targetField": "peerDependencies",
126
+ },
127
+ },
128
+ ],
129
+ "message": "Root policies",
130
+ },
131
+ ]
132
+ `;
133
+
134
+ exports[`makeOutdatedPkgChoices should render choices with context information 1`] = `
135
+ Array [
136
+ Object {
137
+ "choices": Array [
138
+ Object {
139
+ "message": "foo (runtime) 1.0.0 ❯ 2.0.0 ",
140
+ "name": "foo",
141
+ "value": Object {
142
+ "componentId": "comp1",
143
+ "currentRange": "1.0.0",
144
+ "latestRange": "2.0.0",
145
+ "name": "foo",
146
+ "source": "component",
147
+ "targetField": "dependencies",
148
+ },
149
+ },
150
+ ],
151
+ "message": "comp1 (component)",
152
+ },
153
+ Object {
154
+ "choices": Array [
155
+ Object {
156
+ "message": "bar (peer) 1.0.0 ❯ 1.1.0 ",
157
+ "name": "bar",
158
+ "value": Object {
159
+ "currentRange": "1.0.0",
160
+ "latestRange": "1.1.0",
161
+ "name": "bar",
162
+ "source": "variants",
163
+ "targetField": "peerDependencies",
164
+ "variantPattern": "{comp2}",
165
+ },
166
+ },
167
+ ],
168
+ "message": "{comp2} (variant)",
169
+ },
170
+ ]
171
+ `;
package/dist/bit-map.js CHANGED
@@ -202,9 +202,19 @@ class BitMap {
202
202
  throw new Error(`unable to rename tagged or exported component: ${bitMapEntry.id.toString()}`);
203
203
  }
204
204
 
205
- this.legacyBitMap.removeComponent(bitMapEntry.id);
206
- bitMapEntry.id = targetId._legacy;
207
- this.legacyBitMap.setComponent(bitMapEntry.id, bitMapEntry);
205
+ if (sourceId.isEqual(targetId)) {
206
+ throw new Error(`source-id and target-id are equal: "${sourceId.toString()}"`);
207
+ }
208
+
209
+ if (sourceId.fullName !== targetId.fullName) {
210
+ this.legacyBitMap.removeComponent(bitMapEntry.id);
211
+ bitMapEntry.id = targetId._legacy;
212
+ this.legacyBitMap.setComponent(bitMapEntry.id, bitMapEntry);
213
+ }
214
+
215
+ if (sourceId.scope !== targetId.scope) {
216
+ this.setDefaultScope(targetId, targetId.scope);
217
+ }
208
218
  }
209
219
 
210
220
  removeComponent(id) {
@@ -1 +1 @@
1
- {"version":3,"names":["BitMap","constructor","legacyBitMap","consumer","addComponentConfig","id","aspectId","config","shouldMergeConfig","Error","bitMapEntry","getBitmapEntry","ignoreScopeAndVersion","currentConfig","isEqual","getNewConfig","merge","newConfig","markAsChanged","removeComponentConfig","markWithMinusIfNotExist","REMOVE_EXTENSION_SPECIAL_SIGN","removeEntireConfig","setEntireConfig","removeDefaultScope","defaultScope","setDefaultScope","write","writeBitMap","ignoreVersion","getComponent","_legacy","getAspectIdFromConfig","componentId","ignoreAspectVersion","undefined","toString","allVersions","Object","keys","filter","startsWith","toStringWithoutVersion","length","BitError","join","renameNewComponent","sourceId","targetId","hasVersion","removeComponent","setComponent","getExportedLaneId","isLaneExported","laneId","hasChanged"],"sources":["bit-map.ts"],"sourcesContent":["import { isEqual, merge } from 'lodash';\nimport { ComponentID } from '@teambit/component-id';\nimport LegacyBitMap from '@teambit/legacy/dist/consumer/bit-map';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport { GetBitMapComponentOptions } from '@teambit/legacy/dist/consumer/bit-map/bit-map';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport { REMOVE_EXTENSION_SPECIAL_SIGN } from '@teambit/legacy/dist/consumer/config';\nimport { BitError } from '@teambit/bit-error';\nimport { LaneId } from '@teambit/lane-id';\n/**\n * consider extracting to a new component.\n * (pro: making Workspace aspect smaller. con: it's an implementation details of the workspace)\n */\nexport class BitMap {\n constructor(private legacyBitMap: LegacyBitMap, private consumer: Consumer) {}\n\n /**\n * adds component config to the .bitmap file.\n * later, upon `bit tag`, the data is saved in the scope.\n * returns a boolean indicating whether a change has been made.\n */\n addComponentConfig(\n id: ComponentID,\n aspectId: string,\n config: Record<string, any> = {},\n shouldMergeConfig = false\n ): boolean {\n if (!aspectId || typeof aspectId !== 'string') throw new Error(`expect aspectId to be string, got ${aspectId}`);\n const bitMapEntry = this.getBitmapEntry(id, { ignoreScopeAndVersion: true });\n const currentConfig = (bitMapEntry.config ||= {})[aspectId];\n if (isEqual(currentConfig, config)) {\n return false; // no changes\n }\n const getNewConfig = () => {\n if (!config) return null;\n if (!shouldMergeConfig) return config;\n // should merge\n if (!currentConfig) return config;\n if (currentConfig === '-') return config;\n // lodash merge performs a deep merge. (the native concatenation don't)\n return merge(currentConfig, config);\n };\n const newConfig = getNewConfig();\n if (newConfig) {\n bitMapEntry.config[aspectId] = newConfig;\n } else {\n delete bitMapEntry.config[aspectId];\n }\n this.legacyBitMap.markAsChanged();\n\n return true; // changes have been made\n }\n\n removeComponentConfig(id: ComponentID, aspectId: string, markWithMinusIfNotExist: boolean): boolean {\n if (!aspectId || typeof aspectId !== 'string') throw new Error(`expect aspectId to be string, got ${aspectId}`);\n const bitMapEntry = this.getBitmapEntry(id, { ignoreScopeAndVersion: true });\n const currentConfig = (bitMapEntry.config ||= {})[aspectId];\n if (currentConfig) {\n delete bitMapEntry.config[aspectId];\n } else {\n if (!markWithMinusIfNotExist) {\n return false; // no changes\n }\n bitMapEntry.config[aspectId] = REMOVE_EXTENSION_SPECIAL_SIGN;\n }\n\n this.legacyBitMap.markAsChanged();\n\n return true; // changes have been made\n }\n\n removeEntireConfig(id: ComponentID): boolean {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreScopeAndVersion: true });\n if (!bitMapEntry.config) return false;\n delete bitMapEntry.config;\n this.legacyBitMap.markAsChanged();\n return true;\n }\n\n setEntireConfig(id: ComponentID, config: Record<string, any>) {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreScopeAndVersion: true });\n bitMapEntry.config = config;\n this.legacyBitMap.markAsChanged();\n }\n\n removeDefaultScope(id: ComponentID) {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreScopeAndVersion: true });\n if (bitMapEntry.defaultScope) {\n delete bitMapEntry.defaultScope;\n this.legacyBitMap.markAsChanged();\n }\n }\n\n setDefaultScope(id: ComponentID, defaultScope: string) {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreScopeAndVersion: true });\n bitMapEntry.defaultScope = defaultScope;\n this.legacyBitMap.markAsChanged();\n }\n\n /**\n * write .bitmap object to the filesystem\n */\n async write() {\n await this.consumer.writeBitMap();\n }\n\n /**\n * get the data saved in the .bitmap file for this component-id.\n */\n getBitmapEntry(\n id: ComponentID,\n { ignoreVersion, ignoreScopeAndVersion }: GetBitMapComponentOptions = {}\n ): ComponentMap {\n return this.legacyBitMap.getComponent(id._legacy, { ignoreVersion, ignoreScopeAndVersion });\n }\n\n getAspectIdFromConfig(\n componentId: ComponentID,\n aspectId: ComponentID,\n ignoreAspectVersion = false\n ): string | undefined {\n const bitMapEntry = this.getBitmapEntry(componentId);\n const config = bitMapEntry.config;\n if (!config) {\n return undefined;\n }\n if (config[aspectId.toString()]) {\n return aspectId.toString();\n }\n if (!ignoreAspectVersion) {\n return undefined;\n }\n const allVersions = Object.keys(config).filter((id) => id.startsWith(`${aspectId.toStringWithoutVersion()}@`));\n if (allVersions.length > 1) {\n throw new BitError(\n `error: the same aspect ${\n aspectId.toStringWithoutVersion\n } configured multiple times for \"${componentId.toString()}\"\\n${allVersions.join('\\n')}`\n );\n }\n return allVersions.length === 1 ? allVersions[0] : undefined;\n }\n\n /**\n * components that were not tagged yet are safe to rename them from the .bitmap file.\n */\n renameNewComponent(sourceId: ComponentID, targetId: ComponentID) {\n const bitMapEntry = this.getBitmapEntry(sourceId);\n if (bitMapEntry.id.hasVersion()) {\n throw new Error(`unable to rename tagged or exported component: ${bitMapEntry.id.toString()}`);\n }\n this.legacyBitMap.removeComponent(bitMapEntry.id);\n bitMapEntry.id = targetId._legacy;\n this.legacyBitMap.setComponent(bitMapEntry.id, bitMapEntry);\n }\n\n removeComponent(id: ComponentID) {\n this.legacyBitMap.removeComponent(id._legacy);\n }\n\n /**\n * this is the lane-id of the recently exported lane. in case of a new lane, which was not exported yet, this will be\n * empty.\n */\n getExportedLaneId(): LaneId | undefined {\n return this.legacyBitMap.isLaneExported ? this.legacyBitMap.laneId : undefined;\n }\n\n /**\n * whether .bitmap file has changed in-memory\n */\n hasChanged(): boolean {\n return this.legacyBitMap.hasChanged;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["BitMap","constructor","legacyBitMap","consumer","addComponentConfig","id","aspectId","config","shouldMergeConfig","Error","bitMapEntry","getBitmapEntry","ignoreScopeAndVersion","currentConfig","isEqual","getNewConfig","merge","newConfig","markAsChanged","removeComponentConfig","markWithMinusIfNotExist","REMOVE_EXTENSION_SPECIAL_SIGN","removeEntireConfig","setEntireConfig","removeDefaultScope","defaultScope","setDefaultScope","write","writeBitMap","ignoreVersion","getComponent","_legacy","getAspectIdFromConfig","componentId","ignoreAspectVersion","undefined","toString","allVersions","Object","keys","filter","startsWith","toStringWithoutVersion","length","BitError","join","renameNewComponent","sourceId","targetId","hasVersion","fullName","removeComponent","setComponent","scope","getExportedLaneId","isLaneExported","laneId","hasChanged"],"sources":["bit-map.ts"],"sourcesContent":["import { isEqual, merge } from 'lodash';\nimport { ComponentID } from '@teambit/component-id';\nimport LegacyBitMap from '@teambit/legacy/dist/consumer/bit-map';\nimport { Consumer } from '@teambit/legacy/dist/consumer';\nimport { GetBitMapComponentOptions } from '@teambit/legacy/dist/consumer/bit-map/bit-map';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport { REMOVE_EXTENSION_SPECIAL_SIGN } from '@teambit/legacy/dist/consumer/config';\nimport { BitError } from '@teambit/bit-error';\nimport { LaneId } from '@teambit/lane-id';\n/**\n * consider extracting to a new component.\n * (pro: making Workspace aspect smaller. con: it's an implementation details of the workspace)\n */\nexport class BitMap {\n constructor(private legacyBitMap: LegacyBitMap, private consumer: Consumer) {}\n\n /**\n * adds component config to the .bitmap file.\n * later, upon `bit tag`, the data is saved in the scope.\n * returns a boolean indicating whether a change has been made.\n */\n addComponentConfig(\n id: ComponentID,\n aspectId: string,\n config: Record<string, any> = {},\n shouldMergeConfig = false\n ): boolean {\n if (!aspectId || typeof aspectId !== 'string') throw new Error(`expect aspectId to be string, got ${aspectId}`);\n const bitMapEntry = this.getBitmapEntry(id, { ignoreScopeAndVersion: true });\n const currentConfig = (bitMapEntry.config ||= {})[aspectId];\n if (isEqual(currentConfig, config)) {\n return false; // no changes\n }\n const getNewConfig = () => {\n if (!config) return null;\n if (!shouldMergeConfig) return config;\n // should merge\n if (!currentConfig) return config;\n if (currentConfig === '-') return config;\n // lodash merge performs a deep merge. (the native concatenation don't)\n return merge(currentConfig, config);\n };\n const newConfig = getNewConfig();\n if (newConfig) {\n bitMapEntry.config[aspectId] = newConfig;\n } else {\n delete bitMapEntry.config[aspectId];\n }\n this.legacyBitMap.markAsChanged();\n\n return true; // changes have been made\n }\n\n removeComponentConfig(id: ComponentID, aspectId: string, markWithMinusIfNotExist: boolean): boolean {\n if (!aspectId || typeof aspectId !== 'string') throw new Error(`expect aspectId to be string, got ${aspectId}`);\n const bitMapEntry = this.getBitmapEntry(id, { ignoreScopeAndVersion: true });\n const currentConfig = (bitMapEntry.config ||= {})[aspectId];\n if (currentConfig) {\n delete bitMapEntry.config[aspectId];\n } else {\n if (!markWithMinusIfNotExist) {\n return false; // no changes\n }\n bitMapEntry.config[aspectId] = REMOVE_EXTENSION_SPECIAL_SIGN;\n }\n\n this.legacyBitMap.markAsChanged();\n\n return true; // changes have been made\n }\n\n removeEntireConfig(id: ComponentID): boolean {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreScopeAndVersion: true });\n if (!bitMapEntry.config) return false;\n delete bitMapEntry.config;\n this.legacyBitMap.markAsChanged();\n return true;\n }\n\n setEntireConfig(id: ComponentID, config: Record<string, any>) {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreScopeAndVersion: true });\n bitMapEntry.config = config;\n this.legacyBitMap.markAsChanged();\n }\n\n removeDefaultScope(id: ComponentID) {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreScopeAndVersion: true });\n if (bitMapEntry.defaultScope) {\n delete bitMapEntry.defaultScope;\n this.legacyBitMap.markAsChanged();\n }\n }\n\n setDefaultScope(id: ComponentID, defaultScope: string) {\n const bitMapEntry = this.getBitmapEntry(id, { ignoreScopeAndVersion: true });\n bitMapEntry.defaultScope = defaultScope;\n this.legacyBitMap.markAsChanged();\n }\n\n /**\n * write .bitmap object to the filesystem\n */\n async write() {\n await this.consumer.writeBitMap();\n }\n\n /**\n * get the data saved in the .bitmap file for this component-id.\n */\n getBitmapEntry(\n id: ComponentID,\n { ignoreVersion, ignoreScopeAndVersion }: GetBitMapComponentOptions = {}\n ): ComponentMap {\n return this.legacyBitMap.getComponent(id._legacy, { ignoreVersion, ignoreScopeAndVersion });\n }\n\n getAspectIdFromConfig(\n componentId: ComponentID,\n aspectId: ComponentID,\n ignoreAspectVersion = false\n ): string | undefined {\n const bitMapEntry = this.getBitmapEntry(componentId);\n const config = bitMapEntry.config;\n if (!config) {\n return undefined;\n }\n if (config[aspectId.toString()]) {\n return aspectId.toString();\n }\n if (!ignoreAspectVersion) {\n return undefined;\n }\n const allVersions = Object.keys(config).filter((id) => id.startsWith(`${aspectId.toStringWithoutVersion()}@`));\n if (allVersions.length > 1) {\n throw new BitError(\n `error: the same aspect ${\n aspectId.toStringWithoutVersion\n } configured multiple times for \"${componentId.toString()}\"\\n${allVersions.join('\\n')}`\n );\n }\n return allVersions.length === 1 ? allVersions[0] : undefined;\n }\n\n /**\n * components that were not tagged yet are safe to rename them from the .bitmap file.\n */\n renameNewComponent(sourceId: ComponentID, targetId: ComponentID) {\n const bitMapEntry = this.getBitmapEntry(sourceId);\n if (bitMapEntry.id.hasVersion()) {\n throw new Error(`unable to rename tagged or exported component: ${bitMapEntry.id.toString()}`);\n }\n if (sourceId.isEqual(targetId)) {\n throw new Error(`source-id and target-id are equal: \"${sourceId.toString()}\"`);\n }\n if (sourceId.fullName !== targetId.fullName) {\n this.legacyBitMap.removeComponent(bitMapEntry.id);\n bitMapEntry.id = targetId._legacy;\n this.legacyBitMap.setComponent(bitMapEntry.id, bitMapEntry);\n }\n if (sourceId.scope !== targetId.scope) {\n this.setDefaultScope(targetId, targetId.scope);\n }\n }\n\n removeComponent(id: ComponentID) {\n this.legacyBitMap.removeComponent(id._legacy);\n }\n\n /**\n * this is the lane-id of the recently exported lane. in case of a new lane, which was not exported yet, this will be\n * empty.\n */\n getExportedLaneId(): LaneId | undefined {\n return this.legacyBitMap.isLaneExported ? this.legacyBitMap.laneId : undefined;\n }\n\n /**\n * whether .bitmap file has changed in-memory\n */\n hasChanged(): boolean {\n return this.legacyBitMap.hasChanged;\n }\n}\n"],"mappings":"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"}
package/dist/workspace.js CHANGED
@@ -359,6 +359,16 @@ function _scopeComponentsImporter() {
359
359
  return data;
360
360
  }
361
361
 
362
+ function _exceptions3() {
363
+ const data = require("@teambit/legacy/dist/consumer/bit-map/exceptions");
364
+
365
+ _exceptions3 = function () {
366
+ return data;
367
+ };
368
+
369
+ return data;
370
+ }
371
+
362
372
  function _loader() {
363
373
  const data = _interopRequireDefault(require("@teambit/legacy/dist/cli/loader"));
364
374
 
@@ -399,10 +409,10 @@ function _componentConfigFile() {
399
409
  return data;
400
410
  }
401
411
 
402
- function _exceptions3() {
412
+ function _exceptions4() {
403
413
  const data = require("./exceptions");
404
414
 
405
- _exceptions3 = function () {
415
+ _exceptions4 = function () {
406
416
  return data;
407
417
  };
408
418
 
@@ -1100,7 +1110,7 @@ class Workspace {
1100
1110
  // if it's not a pattern but just id, resolve it without multimatch to support specifying id without scope-name
1101
1111
  const id = await this.resolveComponentId(pattern);
1102
1112
  if (this.exists(id)) return [id];
1103
- if (throwForNoMatch) throw new (_bitError().BitError)(`unable to find "${pattern}" in the workspace`);
1113
+ if (throwForNoMatch) throw new (_exceptions3().MissingBitMapComponent)(pattern);
1104
1114
  return [];
1105
1115
  }
1106
1116
 
@@ -2221,7 +2231,7 @@ needed-for: ${neededFor || '<unknown>'}`);
2221
2231
 
2222
2232
  async _addPackages(packages, options) {
2223
2233
  if (!(options !== null && options !== void 0 && options.variants) && (options === null || options === void 0 ? void 0 : options.lifecycleType) === 'dev') {
2224
- throw new (_exceptions3().DependencyTypeNotSupportedInPolicy)(options === null || options === void 0 ? void 0 : options.lifecycleType);
2234
+ throw new (_exceptions4().DependencyTypeNotSupportedInPolicy)(options === null || options === void 0 ? void 0 : options.lifecycleType);
2225
2235
  }
2226
2236
 
2227
2237
  this.logger.debug(`installing the following packages: ${packages.join()}`);