@teambit/snapping 1.0.494 → 1.0.496

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/dist/esm.mjs CHANGED
@@ -2,5 +2,7 @@
2
2
  import cjsModule from './index.js';
3
3
 
4
4
  export const SnappingAspect = cjsModule.SnappingAspect;
5
+ export const inputDataDescription = cjsModule.inputDataDescription;
6
+ export const snapFromScopeOptions = cjsModule.snapFromScopeOptions;
5
7
 
6
8
  export default cjsModule;
@@ -5,6 +5,13 @@ import { DependenciesMain } from '@teambit/dependencies';
5
5
  import { DependencyResolverMain } from '@teambit/dependency-resolver';
6
6
  import { FileData } from './snap-from-scope.cmd';
7
7
  import { SnappingMain, SnapDataParsed } from './snapping.main.runtime';
8
+ export type NewDependency = {
9
+ id: string;
10
+ version?: string;
11
+ isComponent?: boolean;
12
+ type?: 'runtime' | 'dev' | 'peer';
13
+ };
14
+ export type NewDependencies = NewDependency[];
8
15
  export type CompData = {
9
16
  componentId: ComponentID;
10
17
  dependencies: string[];
@@ -12,6 +19,7 @@ export type CompData = {
12
19
  message: string | undefined;
13
20
  files: FileData[] | undefined;
14
21
  mainFile?: string;
22
+ newDependencies?: NewDependencies;
15
23
  };
16
24
  /**
17
25
  * normally new components are created from a workspace. the files are in the filesystem and the ConsumerComponent
@@ -22,5 +30,5 @@ export type CompData = {
22
30
  * write the version and files into the scope as objects, so then it's possible to load Component object using the
23
31
  * ConsumerComponent.
24
32
  */
25
- export declare function generateCompFromScope(scope: ScopeMain, compData: CompData, snapping: SnappingMain): Promise<Component>;
33
+ export declare function generateCompFromScope(scope: ScopeMain, depsResolver: DependencyResolverMain, compData: CompData, snapping: SnappingMain): Promise<Component>;
26
34
  export declare function addDeps(component: Component, snapData: SnapDataParsed, scope: ScopeMain, deps: DependenciesMain, depsResolver: DependencyResolverMain, snapping: SnappingMain): Promise<void>;
@@ -54,7 +54,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
54
54
  * write the version and files into the scope as objects, so then it's possible to load Component object using the
55
55
  * ConsumerComponent.
56
56
  */
57
- async function generateCompFromScope(scope, compData, snapping) {
57
+ async function generateCompFromScope(scope, depsResolver, compData, snapping) {
58
58
  if (!compData.files) throw new Error('generateComp: files are missing');
59
59
  const files = compData.files.map(file => {
60
60
  return new (_component().SourceFile)({
@@ -66,13 +66,16 @@ async function generateCompFromScope(scope, compData, snapping) {
66
66
  });
67
67
  const id = compData.componentId;
68
68
  const extensions = _legacy3().ExtensionDataList.fromConfigObject(compData.aspects || {});
69
+ const {
70
+ compDeps
71
+ } = await getCompDeps(scope, depsResolver, compData.newDependencies || []);
69
72
  const consumerComponent = new (_legacy().ConsumerComponent)({
70
73
  mainFile: compData.mainFile || 'index.ts',
71
74
  name: compData.componentId.fullName,
72
75
  scope: compData.componentId.scope,
73
76
  files,
74
77
  schema: _legacy().CURRENT_SCHEMA,
75
- overrides: await _legacy2().ComponentOverrides.loadNewFromScope(id, files, extensions),
78
+ overrides: await _legacy2().ComponentOverrides.loadNewFromScope(id, files, extensions, compDeps),
76
79
  defaultScope: compData.componentId.scope,
77
80
  extensions,
78
81
  // the dummy data here are not important. this Version object will be discarded later.
@@ -96,9 +99,7 @@ async function generateCompFromScope(scope, compData, snapping) {
96
99
  const component = await scope.getManyByLegacy([consumerComponent]);
97
100
  return component[0];
98
101
  }
99
- async function addDeps(component, snapData, scope, deps, depsResolver, snapping) {
100
- const newDeps = snapData.newDependencies || [];
101
- const updateDeps = snapData.dependencies || [];
102
+ async function getCompDeps(scope, depsResolver, newDeps) {
102
103
  const compIdsData = newDeps.filter(dep => dep.isComponent);
103
104
  const compIdsDataParsed = compIdsData.map(data => _objectSpread(_objectSpread({}, data), {}, {
104
105
  id: _componentId().ComponentID.fromString(data.id)
@@ -114,7 +115,21 @@ async function addDeps(component, snapData, scope, deps, depsResolver, snapping)
114
115
  const compDeps = compIdsDataParsed.filter(c => c.type === 'runtime').map(dep => toDependency(dep.id));
115
116
  const compDevDeps = compIdsDataParsed.filter(c => c.type === 'dev').map(dep => toDependency(dep.id));
116
117
  const compPeerDeps = compIdsDataParsed.filter(c => c.type === 'peer').map(dep => toDependency(dep.id));
118
+ return {
119
+ compDeps,
120
+ compDevDeps,
121
+ compPeerDeps
122
+ };
123
+ }
124
+ async function addDeps(component, snapData, scope, deps, depsResolver, snapping) {
125
+ const newDeps = snapData.newDependencies || [];
126
+ const updateDeps = snapData.dependencies || [];
117
127
  const packageDeps = newDeps.filter(dep => !dep.isComponent);
128
+ const {
129
+ compDeps,
130
+ compDevDeps,
131
+ compPeerDeps
132
+ } = await getCompDeps(scope, depsResolver, newDeps);
118
133
  const toPackageObj = pkgs => {
119
134
  return pkgs.reduce((acc, curr) => {
120
135
  if (!curr.version) throw new Error(`please specify a version for the package dependency: "${curr.id}"`);
@@ -1 +1 @@
1
- {"version":3,"names":["_componentId","data","require","_legacy","_component","_legacy2","_legacy3","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","generateCompFromScope","scope","compData","snapping","files","Error","map","file","SourceFile","base","path","contents","Buffer","from","content","test","id","componentId","extensions","ExtensionDataList","fromConfigObject","aspects","consumerComponent","ConsumerComponent","mainFile","name","fullName","schema","CURRENT_SCHEMA","overrides","ComponentOverrides","loadNewFromScope","defaultScope","log","message","date","Date","now","toString","username","email","_addFlattenedDependenciesToComponents","version","filesBitObject","legacyScope","sources","consumerComponentToVersion","modelComponent","findOrAddComponent","hash","objects","writeObjectsToTheFS","f","component","getManyByLegacy","addDeps","snapData","deps","depsResolver","newDeps","newDependencies","updateDeps","dependencies","compIdsData","dep","isComponent","compIdsDataParsed","ComponentID","fromString","compIds","changeVersion","comps","getMany","toDependency","depId","comp","find","c","isEqualWithoutVersion","pkgName","getPackageName","Dependency","compDeps","type","compDevDeps","compPeerDeps","packageDeps","toPackageObj","pkgs","reduce","acc","curr","getPkgObj","manipulateCurrentPkgs","removeDependencies","pkg","found","d","startsWith","replace","manipulateCurrentDeps","currentCompDeps","afterRemoval","includes","toStringWithoutVersion","state","_consumer","dependenciesData","allDependencies","get","devDependencies","peerDependencies","allPackagesDependencies","packageDependencies","devPackageDependencies","peerPackageDependencies","loadDependenciesFromScope","UpdateDepsAspectsSaveIntoDepsResolver"],"sources":["generate-comp-from-scope.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport { Dependency, ConsumerComponent, CURRENT_SCHEMA } from '@teambit/legacy.consumer-component';\nimport { SourceFile } from '@teambit/component.sources';\nimport { ScopeMain } from '@teambit/scope';\nimport { ComponentOverrides } from '@teambit/legacy.consumer-config';\nimport { ExtensionDataList } from '@teambit/legacy.extension-data';\nimport { Component } from '@teambit/component';\nimport { DependenciesMain } from '@teambit/dependencies';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { FileData } from './snap-from-scope.cmd';\nimport { SnappingMain, SnapDataParsed } from './snapping.main.runtime';\n\nexport type CompData = {\n componentId: ComponentID;\n dependencies: string[];\n aspects: Record<string, any> | undefined;\n message: string | undefined;\n files: FileData[] | undefined;\n mainFile?: string;\n};\n\n/**\n * normally new components are created from a workspace. the files are in the filesystem and the ConsumerComponent\n * object is created from the files.\n * here, we need to create the ConsumerComponent object \"on the fly\". we don't have workspace, only scope. the files\n * are in-memory (we got them from snap-from-scope command).\n * the way how it is done is by creating a minimal ConsumerComponent object, then convert `Version` object from it,\n * write the version and files into the scope as objects, so then it's possible to load Component object using the\n * ConsumerComponent.\n */\nexport async function generateCompFromScope(\n scope: ScopeMain,\n compData: CompData,\n snapping: SnappingMain\n): Promise<Component> {\n if (!compData.files) throw new Error('generateComp: files are missing');\n const files = compData.files.map((file) => {\n return new SourceFile({ base: '.', path: file.path, contents: Buffer.from(file.content), test: false });\n });\n const id = compData.componentId;\n const extensions = ExtensionDataList.fromConfigObject(compData.aspects || {});\n\n const consumerComponent = new ConsumerComponent({\n mainFile: compData.mainFile || 'index.ts',\n name: compData.componentId.fullName,\n scope: compData.componentId.scope,\n files,\n schema: CURRENT_SCHEMA,\n overrides: await ComponentOverrides.loadNewFromScope(id, files, extensions),\n defaultScope: compData.componentId.scope,\n extensions,\n // the dummy data here are not important. this Version object will be discarded later.\n log: {\n message: compData.message || '',\n date: Date.now().toString(),\n username: '',\n email: '',\n },\n });\n // this is needed, otherwise in case of updating envs/aspects, the version-validator throws\n // an error saying \"the extension ${extensionId.toString()} is missing from the flattenedDependencies\"\n await snapping._addFlattenedDependenciesToComponents([consumerComponent]);\n\n const { version, files: filesBitObject } =\n await scope.legacyScope.sources.consumerComponentToVersion(consumerComponent);\n const modelComponent = scope.legacyScope.sources.findOrAddComponent(consumerComponent);\n consumerComponent.version = version.hash().toString();\n await scope.legacyScope.objects.writeObjectsToTheFS([version, modelComponent, ...filesBitObject.map((f) => f.file)]);\n const component = await scope.getManyByLegacy([consumerComponent]);\n\n return component[0];\n}\n\nexport async function addDeps(\n component: Component,\n snapData: SnapDataParsed,\n scope: ScopeMain,\n deps: DependenciesMain,\n depsResolver: DependencyResolverMain,\n snapping: SnappingMain\n) {\n const newDeps = snapData.newDependencies || [];\n const updateDeps = snapData.dependencies || [];\n const compIdsData = newDeps.filter((dep) => dep.isComponent);\n const compIdsDataParsed = compIdsData.map((data) => ({\n ...data,\n id: ComponentID.fromString(data.id),\n }));\n const compIds = compIdsDataParsed.map((dep) => (dep.version ? dep.id.changeVersion(dep.version) : dep.id));\n const comps = await scope.getMany(compIds);\n const toDependency = (depId: ComponentID) => {\n const comp = comps.find((c) => c.id.isEqualWithoutVersion(depId));\n if (!comp) throw new Error(`unable to find the specified dependency ${depId.toString()} in the scope`);\n const pkgName = depsResolver.getPackageName(comp);\n return new Dependency(comp.id, [], pkgName);\n };\n const compDeps = compIdsDataParsed.filter((c) => c.type === 'runtime').map((dep) => toDependency(dep.id));\n const compDevDeps = compIdsDataParsed.filter((c) => c.type === 'dev').map((dep) => toDependency(dep.id));\n const compPeerDeps = compIdsDataParsed.filter((c) => c.type === 'peer').map((dep) => toDependency(dep.id));\n const packageDeps = newDeps.filter((dep) => !dep.isComponent);\n const toPackageObj = (pkgs: Array<{ id: string; version?: string }>) => {\n return pkgs.reduce((acc, curr) => {\n if (!curr.version) throw new Error(`please specify a version for the package dependency: \"${curr.id}\"`);\n acc[curr.id] = curr.version;\n return acc;\n }, {});\n };\n const getPkgObj = (type: 'runtime' | 'dev' | 'peer') => {\n return toPackageObj(packageDeps.filter((dep) => dep.type === type));\n };\n const manipulateCurrentPkgs = (pkgs: Record<string, string>) => {\n snapData.removeDependencies?.forEach((pkg) => {\n delete pkgs[pkg];\n });\n Object.keys(pkgs).forEach((pkg) => {\n const found = updateDeps.find((d) => d.startsWith(`${pkg}@`));\n if (found) {\n pkgs[pkg] = found.replace(`${pkg}@`, '');\n }\n });\n return pkgs;\n };\n const manipulateCurrentDeps = (currentCompDeps: Dependency[]) => {\n const afterRemoval = currentCompDeps.filter(\n (dep) => !snapData.removeDependencies?.includes(dep.id.toStringWithoutVersion())\n );\n afterRemoval.forEach((dep) => {\n const found = updateDeps.find((d) => d.startsWith(`${dep.id.toStringWithoutVersion()}@`));\n if (found) {\n dep.id = dep.id.changeVersion(found.replace(`${dep.id.toStringWithoutVersion()}@`, ''));\n }\n });\n return afterRemoval;\n };\n\n const consumerComponent = component.state._consumer as ConsumerComponent;\n\n const dependenciesData = {\n allDependencies: {\n dependencies: [...compDeps, ...manipulateCurrentDeps(consumerComponent.dependencies.get())],\n devDependencies: [...compDevDeps, ...manipulateCurrentDeps(consumerComponent.devDependencies.get())],\n peerDependencies: [...compPeerDeps, ...manipulateCurrentDeps(consumerComponent.peerDependencies.get())],\n },\n allPackagesDependencies: {\n packageDependencies: { ...manipulateCurrentPkgs(consumerComponent.packageDependencies), ...getPkgObj('runtime') },\n devPackageDependencies: {\n ...manipulateCurrentPkgs(consumerComponent.devPackageDependencies),\n ...getPkgObj('dev'),\n },\n peerPackageDependencies: {\n ...manipulateCurrentPkgs(consumerComponent.peerPackageDependencies),\n ...getPkgObj('peer'),\n },\n },\n };\n\n // add the dependencies to the legacy ConsumerComponent object\n // it takes care of both: given dependencies (from the cli) and the overrides, which are coming from the env.\n await deps.loadDependenciesFromScope(consumerComponent, dependenciesData);\n\n await snapping.UpdateDepsAspectsSaveIntoDepsResolver(component, updateDeps);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_componentId","data","require","_legacy","_component","_legacy2","_legacy3","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","generateCompFromScope","scope","depsResolver","compData","snapping","files","Error","map","file","SourceFile","base","path","contents","Buffer","from","content","test","id","componentId","extensions","ExtensionDataList","fromConfigObject","aspects","compDeps","getCompDeps","newDependencies","consumerComponent","ConsumerComponent","mainFile","name","fullName","schema","CURRENT_SCHEMA","overrides","ComponentOverrides","loadNewFromScope","defaultScope","log","message","date","Date","now","toString","username","email","_addFlattenedDependenciesToComponents","version","filesBitObject","legacyScope","sources","consumerComponentToVersion","modelComponent","findOrAddComponent","hash","objects","writeObjectsToTheFS","f","component","getManyByLegacy","newDeps","compIdsData","dep","isComponent","compIdsDataParsed","ComponentID","fromString","compIds","changeVersion","comps","getMany","toDependency","depId","comp","find","c","isEqualWithoutVersion","pkgName","getPackageName","Dependency","type","compDevDeps","compPeerDeps","addDeps","snapData","deps","updateDeps","dependencies","packageDeps","toPackageObj","pkgs","reduce","acc","curr","getPkgObj","manipulateCurrentPkgs","removeDependencies","pkg","found","d","startsWith","replace","manipulateCurrentDeps","currentCompDeps","afterRemoval","includes","toStringWithoutVersion","state","_consumer","dependenciesData","allDependencies","get","devDependencies","peerDependencies","allPackagesDependencies","packageDependencies","devPackageDependencies","peerPackageDependencies","loadDependenciesFromScope","UpdateDepsAspectsSaveIntoDepsResolver"],"sources":["generate-comp-from-scope.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport { Dependency, ConsumerComponent, CURRENT_SCHEMA } from '@teambit/legacy.consumer-component';\nimport { SourceFile } from '@teambit/component.sources';\nimport { ScopeMain } from '@teambit/scope';\nimport { ComponentOverrides } from '@teambit/legacy.consumer-config';\nimport { ExtensionDataList } from '@teambit/legacy.extension-data';\nimport { Component } from '@teambit/component';\nimport { DependenciesMain } from '@teambit/dependencies';\nimport { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { FileData } from './snap-from-scope.cmd';\nimport { SnappingMain, SnapDataParsed } from './snapping.main.runtime';\n\nexport type NewDependency = {\n id: string; // component-id or package-name. e.g. \"teambit.react/react\" or \"lodash\".\n version?: string; // version of the package. e.g. \"2.0.3\". for packages, it is mandatory.\n isComponent?: boolean; // default true. if false, it's a package dependency\n type?: 'runtime' | 'dev' | 'peer'; // default \"runtime\".\n};\n\nexport type NewDependencies = NewDependency[];\n\nexport type CompData = {\n componentId: ComponentID;\n dependencies: string[];\n aspects: Record<string, any> | undefined;\n message: string | undefined;\n files: FileData[] | undefined;\n mainFile?: string;\n newDependencies?: NewDependencies;\n};\n\n/**\n * normally new components are created from a workspace. the files are in the filesystem and the ConsumerComponent\n * object is created from the files.\n * here, we need to create the ConsumerComponent object \"on the fly\". we don't have workspace, only scope. the files\n * are in-memory (we got them from snap-from-scope command).\n * the way how it is done is by creating a minimal ConsumerComponent object, then convert `Version` object from it,\n * write the version and files into the scope as objects, so then it's possible to load Component object using the\n * ConsumerComponent.\n */\nexport async function generateCompFromScope(\n scope: ScopeMain,\n depsResolver: DependencyResolverMain,\n compData: CompData,\n snapping: SnappingMain\n): Promise<Component> {\n if (!compData.files) throw new Error('generateComp: files are missing');\n const files = compData.files.map((file) => {\n return new SourceFile({ base: '.', path: file.path, contents: Buffer.from(file.content), test: false });\n });\n const id = compData.componentId;\n const extensions = ExtensionDataList.fromConfigObject(compData.aspects || {});\n const { compDeps } = await getCompDeps(scope, depsResolver, compData.newDependencies || []);\n\n const consumerComponent = new ConsumerComponent({\n mainFile: compData.mainFile || 'index.ts',\n name: compData.componentId.fullName,\n scope: compData.componentId.scope,\n files,\n schema: CURRENT_SCHEMA,\n overrides: await ComponentOverrides.loadNewFromScope(id, files, extensions, compDeps),\n defaultScope: compData.componentId.scope,\n extensions,\n // the dummy data here are not important. this Version object will be discarded later.\n log: {\n message: compData.message || '',\n date: Date.now().toString(),\n username: '',\n email: '',\n },\n });\n // this is needed, otherwise in case of updating envs/aspects, the version-validator throws\n // an error saying \"the extension ${extensionId.toString()} is missing from the flattenedDependencies\"\n await snapping._addFlattenedDependenciesToComponents([consumerComponent]);\n\n const { version, files: filesBitObject } =\n await scope.legacyScope.sources.consumerComponentToVersion(consumerComponent);\n const modelComponent = scope.legacyScope.sources.findOrAddComponent(consumerComponent);\n consumerComponent.version = version.hash().toString();\n await scope.legacyScope.objects.writeObjectsToTheFS([version, modelComponent, ...filesBitObject.map((f) => f.file)]);\n const component = await scope.getManyByLegacy([consumerComponent]);\n\n return component[0];\n}\n\nasync function getCompDeps(scope: ScopeMain, depsResolver: DependencyResolverMain, newDeps: NewDependencies) {\n const compIdsData = newDeps.filter((dep) => dep.isComponent);\n const compIdsDataParsed = compIdsData.map((data) => ({\n ...data,\n id: ComponentID.fromString(data.id),\n }));\n const compIds = compIdsDataParsed.map((dep) => (dep.version ? dep.id.changeVersion(dep.version) : dep.id));\n const comps = await scope.getMany(compIds);\n const toDependency = (depId: ComponentID) => {\n const comp = comps.find((c) => c.id.isEqualWithoutVersion(depId));\n if (!comp) throw new Error(`unable to find the specified dependency ${depId.toString()} in the scope`);\n const pkgName = depsResolver.getPackageName(comp);\n return new Dependency(comp.id, [], pkgName);\n };\n const compDeps = compIdsDataParsed.filter((c) => c.type === 'runtime').map((dep) => toDependency(dep.id));\n const compDevDeps = compIdsDataParsed.filter((c) => c.type === 'dev').map((dep) => toDependency(dep.id));\n const compPeerDeps = compIdsDataParsed.filter((c) => c.type === 'peer').map((dep) => toDependency(dep.id));\n return { compDeps, compDevDeps, compPeerDeps };\n}\n\nexport async function addDeps(\n component: Component,\n snapData: SnapDataParsed,\n scope: ScopeMain,\n deps: DependenciesMain,\n depsResolver: DependencyResolverMain,\n snapping: SnappingMain\n) {\n const newDeps = snapData.newDependencies || [];\n const updateDeps = snapData.dependencies || [];\n const packageDeps = newDeps.filter((dep) => !dep.isComponent);\n const { compDeps, compDevDeps, compPeerDeps } = await getCompDeps(scope, depsResolver, newDeps);\n const toPackageObj = (pkgs: Array<{ id: string; version?: string }>) => {\n return pkgs.reduce((acc, curr) => {\n if (!curr.version) throw new Error(`please specify a version for the package dependency: \"${curr.id}\"`);\n acc[curr.id] = curr.version;\n return acc;\n }, {});\n };\n const getPkgObj = (type: 'runtime' | 'dev' | 'peer') => {\n return toPackageObj(packageDeps.filter((dep) => dep.type === type));\n };\n const manipulateCurrentPkgs = (pkgs: Record<string, string>) => {\n snapData.removeDependencies?.forEach((pkg) => {\n delete pkgs[pkg];\n });\n Object.keys(pkgs).forEach((pkg) => {\n const found = updateDeps.find((d) => d.startsWith(`${pkg}@`));\n if (found) {\n pkgs[pkg] = found.replace(`${pkg}@`, '');\n }\n });\n return pkgs;\n };\n const manipulateCurrentDeps = (currentCompDeps: Dependency[]) => {\n const afterRemoval = currentCompDeps.filter(\n (dep) => !snapData.removeDependencies?.includes(dep.id.toStringWithoutVersion())\n );\n afterRemoval.forEach((dep) => {\n const found = updateDeps.find((d) => d.startsWith(`${dep.id.toStringWithoutVersion()}@`));\n if (found) {\n dep.id = dep.id.changeVersion(found.replace(`${dep.id.toStringWithoutVersion()}@`, ''));\n }\n });\n return afterRemoval;\n };\n\n const consumerComponent = component.state._consumer as ConsumerComponent;\n\n const dependenciesData = {\n allDependencies: {\n dependencies: [...compDeps, ...manipulateCurrentDeps(consumerComponent.dependencies.get())],\n devDependencies: [...compDevDeps, ...manipulateCurrentDeps(consumerComponent.devDependencies.get())],\n peerDependencies: [...compPeerDeps, ...manipulateCurrentDeps(consumerComponent.peerDependencies.get())],\n },\n allPackagesDependencies: {\n packageDependencies: { ...manipulateCurrentPkgs(consumerComponent.packageDependencies), ...getPkgObj('runtime') },\n devPackageDependencies: {\n ...manipulateCurrentPkgs(consumerComponent.devPackageDependencies),\n ...getPkgObj('dev'),\n },\n peerPackageDependencies: {\n ...manipulateCurrentPkgs(consumerComponent.peerPackageDependencies),\n ...getPkgObj('peer'),\n },\n },\n };\n\n // add the dependencies to the legacy ConsumerComponent object\n // it takes care of both: given dependencies (from the cli) and the overrides, which are coming from the env.\n await deps.loadDependenciesFromScope(consumerComponent, dependenciesData);\n\n await snapping.UpdateDepsAspectsSaveIntoDepsResolver(component, updateDeps);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,6 +2,7 @@ import { Command, CommandOptions } from '@teambit/cli';
2
2
  import { Logger } from '@teambit/logger';
3
3
  import { SnappingMain } from './snapping.main.runtime';
4
4
  import { BasicTagSnapParams } from './tag-model-component';
5
+ import { NewDependencies } from './generate-comp-from-scope';
5
6
  export type FileData = {
6
7
  path: string;
7
8
  content: string;
@@ -15,12 +16,7 @@ export type SnapDataPerCompRaw = {
15
16
  files?: FileData[];
16
17
  isNew?: boolean;
17
18
  mainFile?: string;
18
- newDependencies?: Array<{
19
- id: string;
20
- version?: string;
21
- isComponent?: boolean;
22
- type?: 'runtime' | 'dev' | 'peer';
23
- }>;
19
+ newDependencies?: NewDependencies;
24
20
  removeDependencies?: string[];
25
21
  forkFrom?: string;
26
22
  version?: string;
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_componentIssues","_bitError","_lodash","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","inputDataDescription","exports","snapFromScopeOptions","keys","IssuesClasses","join","SnapFromScopeCmd","constructor","snapping","logger","report","push","message","lane","ignoreIssues","build","skipTests","disableSnapPipeline","ignoreBuildErrors","rebuildDepsGraph","updateDependents","tag","disableTagAndSnapPipelines","BitError","snapDataPerCompRaw","parseData","results","snapFromScope","snappedIds","exportedIds","snappedOutput","length","chalk","bold","exportedOutput","compact","json","code","map","id","toString","err","error","stack","dataParsed","JSON","parse","Error","Array","isArray","forEach","dataItem","componentId","files","file","path","content","Buffer","from"],"sources":["snap-from-scope.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { BitError } from '@teambit/bit-error';\nimport { compact } from 'lodash';\nimport { Logger } from '@teambit/logger';\nimport { SnappingMain } from './snapping.main.runtime';\nimport { BasicTagSnapParams } from './tag-model-component';\n\nexport type FileData = { path: string; content: string; delete?: boolean };\n\nexport type SnapDataPerCompRaw = {\n componentId: string;\n dependencies?: string[];\n aspects?: Record<string, any>;\n message?: string;\n files?: FileData[];\n isNew?: boolean;\n mainFile?: string; // relevant when isNew is true. default to \"index.ts\".\n newDependencies?: Array<{\n id: string; // component-id or package-name. e.g. \"teambit.react/react\" or \"lodash\".\n version?: string; // version of the package. e.g. \"2.0.3\". for packages, it is mandatory.\n isComponent?: boolean; // default true. if false, it's a package dependency\n type?: 'runtime' | 'dev' | 'peer'; // default \"runtime\".\n }>;\n removeDependencies?: string[];\n forkFrom?: string; // origin id to fork from. the componentId is the new id. (no need to populate isNew prop).\n version?: string; // relevant when passing \"--tag\". optionally, specify the semver to tag. default to \"patch\".\n};\n\nexport type SnapFromScopeOptions = {\n push?: boolean;\n lane?: string;\n ignoreIssues?: string;\n disableSnapPipeline?: boolean;\n updateDependents?: boolean;\n tag?: boolean;\n} & BasicTagSnapParams;\n\nexport const inputDataDescription = `the input data is a stringified JSON of an array of the following object.\n{\n componentId: string; // ids always have scope, so it's safe to parse them from string\n dependencies?: string[]; // dependencies include versions. for components use component-id. e.g. [teambit.compilation/compiler@1.0.0, lodash@4.17.21]\n aspects?: Record<string,any> // e.g. { \"teambit.react/react\": {}, \"teambit.envs/envs\": { \"env\": \"teambit.react/react\" } }\n message?: string; // tag-message.\n files?: Array<{path: string, content: string}>; // replace content of specified source-files. the content is base64 encoded.\n isNew?: boolean; // if it's new, it'll be generated from the given files. otherwise, it'll be fetched from the scope and updated.\n mainFile?: string; // relevant when isNew is true. default to \"index.ts\".\n newDependencies?: Array<{ // new dependencies (components and packages) to add.\n id: string; // component-id or package-name. e.g. \"teambit.react/react\" or \"lodash\".\n version?: string; // version of the package. e.g. \"2.0.3\". for packages, it is mandatory.\n isComponent?: boolean; // default true. if false, it's a package dependency\n type?: 'runtime' | 'dev' | 'peer'; // default \"runtime\".\n }>;\n removeDependencies?: string[]; // component-id (for components) or package-name (for packages) to remove from the dependencies.\n forkFrom?: string; // origin id to fork from. the componentId is the new id. (no need to populate isNew prop).\n version?: string; // relevant when passing \"--tag\". optionally, specify the semver to tag. default to \"patch\".\n}\nan example of the final data: '[{\"componentId\":\"ci.remote2/comp-b\",\"message\": \"first snap\"}]'`;\n\nexport const snapFromScopeOptions = [\n ['', 'push', 'export the updated objects to the original scopes once done'],\n ['m', 'message <message>', 'log message describing the latest changes'],\n ['', 'lane <lane-id>', 'fetch the components from the given lane'],\n ['', 'build', 'run the build pipeline'],\n ['', 'skip-tests', 'skip running component tests during snap process'],\n ['', 'disable-snap-pipeline', 'skip the snap pipeline'],\n ['', 'ignore-build-errors', 'run the snap pipeline although the build pipeline failed'],\n ['', 'rebuild-deps-graph', 'do not reuse the saved dependencies graph, instead build it from scratch'],\n [\n 'i',\n 'ignore-issues [issues]',\n `ignore component issues (shown in \"bit status\" as \"issues found\"), issues to ignore:\n[${Object.keys(IssuesClasses).join(', ')}]\nto ignore multiple issues, separate them by a comma and wrap with quotes. to ignore all issues, specify \"*\".`,\n ],\n ['', 'tag', 'make a tag instead of a snap'],\n ['', 'stream', 'relevant for --json only. stream loader as json strings'],\n ['j', 'json', 'output as json format'],\n];\n\nexport class SnapFromScopeCmd implements Command {\n name = '_snap <data>';\n description = 'snap components from a bare-scope';\n extendedDescription = `this command should be running from a new bare scope, it first imports the components it needs and then processes the snap.\n${inputDataDescription}\n`;\n alias = '';\n options = [\n ...snapFromScopeOptions,\n [\n '',\n 'update-dependents',\n 'when snapped on a lane, mark it as update-dependents so it will be skipped from the workspace',\n ],\n ] as CommandOptions;\n loader = true;\n private = true;\n\n constructor(\n private snapping: SnappingMain,\n private logger: Logger\n ) {}\n\n async report(\n [data]: [string],\n {\n push = false,\n message = '',\n lane,\n ignoreIssues,\n build = false,\n skipTests = false,\n disableSnapPipeline = false,\n ignoreBuildErrors = false,\n rebuildDepsGraph,\n updateDependents,\n tag,\n }: SnapFromScopeOptions\n ) {\n const disableTagAndSnapPipelines = disableSnapPipeline;\n if (disableTagAndSnapPipelines && ignoreBuildErrors) {\n throw new BitError('you can use either ignore-build-errors or disable-snap-pipeline, but not both');\n }\n if (updateDependents && !lane) {\n throw new BitError('update-dependents flag is only available when snapping from a lane');\n }\n\n const snapDataPerCompRaw = this.parseData(data);\n const results = await this.snapping.snapFromScope(snapDataPerCompRaw, {\n push,\n message,\n lane,\n ignoreIssues,\n build,\n skipTests,\n disableTagAndSnapPipelines,\n ignoreBuildErrors,\n rebuildDepsGraph,\n updateDependents,\n tag,\n });\n\n const { snappedIds, exportedIds } = results;\n\n const snappedOutput = snappedIds.length ? `${chalk.bold('snapped components')}\\n${snappedIds.join('\\n')}` : '';\n const exportedOutput =\n exportedIds && exportedIds.length ? `${chalk.bold('exported components')}\\n${exportedIds.join('\\n')}` : '';\n\n return compact([snappedOutput, exportedOutput]).join('\\n\\n');\n }\n async json(\n [data]: [string],\n {\n push = false,\n message = '',\n lane,\n ignoreIssues,\n build = false,\n skipTests = false,\n disableSnapPipeline = false,\n ignoreBuildErrors = false,\n rebuildDepsGraph,\n updateDependents,\n tag,\n }: SnapFromScopeOptions\n ) {\n const disableTagAndSnapPipelines = disableSnapPipeline;\n if (disableTagAndSnapPipelines && ignoreBuildErrors) {\n throw new BitError('you can use either ignore-build-errors or disable-snap-pipeline, but not both');\n }\n if (updateDependents && !lane) {\n throw new BitError('update-dependents flag is only available when snapping from a lane');\n }\n\n const snapDataPerCompRaw = this.parseData(data);\n\n try {\n const results = await this.snapping.snapFromScope(snapDataPerCompRaw, {\n push,\n message,\n lane,\n ignoreIssues,\n build,\n skipTests,\n disableTagAndSnapPipelines,\n ignoreBuildErrors,\n rebuildDepsGraph,\n updateDependents,\n tag,\n });\n\n return {\n code: 0,\n data: {\n exportedIds: results.exportedIds?.map((id) => id.toString()),\n snappedIds: results.snappedIds.map((id) => id.toString()),\n },\n };\n } catch (err: any) {\n this.logger.error('snap-from-scope.json, error: ', err);\n return {\n code: 1,\n error: err.message,\n stack: err.stack,\n };\n }\n }\n private parseData(data: string): SnapDataPerCompRaw[] {\n let dataParsed: unknown;\n try {\n dataParsed = JSON.parse(data);\n } catch (err: any) {\n throw new Error(`failed parsing the data entered as JSON. err ${err.message}`);\n }\n if (!Array.isArray(dataParsed)) {\n throw new Error('expect data to be an array');\n }\n dataParsed.forEach((dataItem) => {\n if (!dataItem.componentId) throw new Error('expect data item to have \"componentId\" prop');\n dataItem.files?.forEach((file) => {\n if (!file.path) throw new Error('expect file to have \"path\" prop');\n if (file.content) {\n file.content = Buffer.from(file.content, 'base64').toString();\n }\n });\n });\n\n return dataParsed;\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,iBAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,gBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,UAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,SAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,QAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,OAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAiC,SAAAC,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,gBAAAH,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAJ,CAAA,GAAAO,MAAA,CAAAC,cAAA,CAAAR,CAAA,EAAAI,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAZ,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAM,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAhB,CAAA,QAAAa,CAAA,GAAAb,CAAA,CAAAiB,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAmC1B,MAAMgB,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8FAA8F;AAEvF,MAAME,oBAAoB,GAAAD,OAAA,CAAAC,oBAAA,GAAG,CAClC,CAAC,EAAE,EAAE,MAAM,EAAE,6DAA6D,CAAC,EAC3E,CAAC,GAAG,EAAE,mBAAmB,EAAE,2CAA2C,CAAC,EACvE,CAAC,EAAE,EAAE,gBAAgB,EAAE,0CAA0C,CAAC,EAClE,CAAC,EAAE,EAAE,OAAO,EAAE,wBAAwB,CAAC,EACvC,CAAC,EAAE,EAAE,YAAY,EAAE,kDAAkD,CAAC,EACtE,CAAC,EAAE,EAAE,uBAAuB,EAAE,wBAAwB,CAAC,EACvD,CAAC,EAAE,EAAE,qBAAqB,EAAE,0DAA0D,CAAC,EACvF,CAAC,EAAE,EAAE,oBAAoB,EAAE,0EAA0E,CAAC,EACtG,CACE,GAAG,EACH,wBAAwB,EACxB;AACJ,GAAGhB,MAAM,CAACiB,IAAI,CAACC,gCAAa,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AACxC,6GAA6G,CAC1G,EACD,CAAC,EAAE,EAAE,KAAK,EAAE,8BAA8B,CAAC,EAC3C,CAAC,EAAE,EAAE,QAAQ,EAAE,yDAAyD,CAAC,EACzE,CAAC,GAAG,EAAE,MAAM,EAAE,uBAAuB,CAAC,CACvC;AAEM,MAAMC,gBAAgB,CAAoB;EAkB/CC,WAAWA,CACDC,QAAsB,EACtBC,MAAc,EACtB;IAAA,KAFQD,QAAsB,GAAtBA,QAAsB;IAAA,KACtBC,MAAc,GAAdA,MAAc;IAAA3B,eAAA,eAnBjB,cAAc;IAAAA,eAAA,sBACP,mCAAmC;IAAAA,eAAA,8BAC3B;AACxB,EAAEkB,oBAAoB;AACtB,CAAC;IAAAlB,eAAA,gBACS,EAAE;IAAAA,eAAA,kBACA,CACR,GAAGoB,oBAAoB,EACvB,CACE,EAAE,EACF,mBAAmB,EACnB,+FAA+F,CAChG,CACF;IAAApB,eAAA,iBACQ,IAAI;IAAAA,eAAA,kBACH,IAAI;EAKX;EAEH,MAAM4B,MAAMA,CACV,CAACrC,IAAI,CAAW,EAChB;IACEsC,IAAI,GAAG,KAAK;IACZC,OAAO,GAAG,EAAE;IACZC,IAAI;IACJC,YAAY;IACZC,KAAK,GAAG,KAAK;IACbC,SAAS,GAAG,KAAK;IACjBC,mBAAmB,GAAG,KAAK;IAC3BC,iBAAiB,GAAG,KAAK;IACzBC,gBAAgB;IAChBC,gBAAgB;IAChBC;EACoB,CAAC,EACvB;IACA,MAAMC,0BAA0B,GAAGL,mBAAmB;IACtD,IAAIK,0BAA0B,IAAIJ,iBAAiB,EAAE;MACnD,MAAM,KAAIK,oBAAQ,EAAC,+EAA+E,CAAC;IACrG;IACA,IAAIH,gBAAgB,IAAI,CAACP,IAAI,EAAE;MAC7B,MAAM,KAAIU,oBAAQ,EAAC,oEAAoE,CAAC;IAC1F;IAEA,MAAMC,kBAAkB,GAAG,IAAI,CAACC,SAAS,CAACpD,IAAI,CAAC;IAC/C,MAAMqD,OAAO,GAAG,MAAM,IAAI,CAAClB,QAAQ,CAACmB,aAAa,CAACH,kBAAkB,EAAE;MACpEb,IAAI;MACJC,OAAO;MACPC,IAAI;MACJC,YAAY;MACZC,KAAK;MACLC,SAAS;MACTM,0BAA0B;MAC1BJ,iBAAiB;MACjBC,gBAAgB;MAChBC,gBAAgB;MAChBC;IACF,CAAC,CAAC;IAEF,MAAM;MAAEO,UAAU;MAAEC;IAAY,CAAC,GAAGH,OAAO;IAE3C,MAAMI,aAAa,GAAGF,UAAU,CAACG,MAAM,GAAG,GAAGC,gBAAK,CAACC,IAAI,CAAC,oBAAoB,CAAC,KAAKL,UAAU,CAACvB,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE;IAC9G,MAAM6B,cAAc,GAClBL,WAAW,IAAIA,WAAW,CAACE,MAAM,GAAG,GAAGC,gBAAK,CAACC,IAAI,CAAC,qBAAqB,CAAC,KAAKJ,WAAW,CAACxB,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE;IAE5G,OAAO,IAAA8B,iBAAO,EAAC,CAACL,aAAa,EAAEI,cAAc,CAAC,CAAC,CAAC7B,IAAI,CAAC,MAAM,CAAC;EAC9D;EACA,MAAM+B,IAAIA,CACR,CAAC/D,IAAI,CAAW,EAChB;IACEsC,IAAI,GAAG,KAAK;IACZC,OAAO,GAAG,EAAE;IACZC,IAAI;IACJC,YAAY;IACZC,KAAK,GAAG,KAAK;IACbC,SAAS,GAAG,KAAK;IACjBC,mBAAmB,GAAG,KAAK;IAC3BC,iBAAiB,GAAG,KAAK;IACzBC,gBAAgB;IAChBC,gBAAgB;IAChBC;EACoB,CAAC,EACvB;IACA,MAAMC,0BAA0B,GAAGL,mBAAmB;IACtD,IAAIK,0BAA0B,IAAIJ,iBAAiB,EAAE;MACnD,MAAM,KAAIK,oBAAQ,EAAC,+EAA+E,CAAC;IACrG;IACA,IAAIH,gBAAgB,IAAI,CAACP,IAAI,EAAE;MAC7B,MAAM,KAAIU,oBAAQ,EAAC,oEAAoE,CAAC;IAC1F;IAEA,MAAMC,kBAAkB,GAAG,IAAI,CAACC,SAAS,CAACpD,IAAI,CAAC;IAE/C,IAAI;MACF,MAAMqD,OAAO,GAAG,MAAM,IAAI,CAAClB,QAAQ,CAACmB,aAAa,CAACH,kBAAkB,EAAE;QACpEb,IAAI;QACJC,OAAO;QACPC,IAAI;QACJC,YAAY;QACZC,KAAK;QACLC,SAAS;QACTM,0BAA0B;QAC1BJ,iBAAiB;QACjBC,gBAAgB;QAChBC,gBAAgB;QAChBC;MACF,CAAC,CAAC;MAEF,OAAO;QACLgB,IAAI,EAAE,CAAC;QACPhE,IAAI,EAAE;UACJwD,WAAW,EAAEH,OAAO,CAACG,WAAW,EAAES,GAAG,CAAEC,EAAE,IAAKA,EAAE,CAACC,QAAQ,CAAC,CAAC,CAAC;UAC5DZ,UAAU,EAAEF,OAAO,CAACE,UAAU,CAACU,GAAG,CAAEC,EAAE,IAAKA,EAAE,CAACC,QAAQ,CAAC,CAAC;QAC1D;MACF,CAAC;IACH,CAAC,CAAC,OAAOC,GAAQ,EAAE;MACjB,IAAI,CAAChC,MAAM,CAACiC,KAAK,CAAC,+BAA+B,EAAED,GAAG,CAAC;MACvD,OAAO;QACLJ,IAAI,EAAE,CAAC;QACPK,KAAK,EAAED,GAAG,CAAC7B,OAAO;QAClB+B,KAAK,EAAEF,GAAG,CAACE;MACb,CAAC;IACH;EACF;EACQlB,SAASA,CAACpD,IAAY,EAAwB;IACpD,IAAIuE,UAAmB;IACvB,IAAI;MACFA,UAAU,GAAGC,IAAI,CAACC,KAAK,CAACzE,IAAI,CAAC;IAC/B,CAAC,CAAC,OAAOoE,GAAQ,EAAE;MACjB,MAAM,IAAIM,KAAK,CAAC,gDAAgDN,GAAG,CAAC7B,OAAO,EAAE,CAAC;IAChF;IACA,IAAI,CAACoC,KAAK,CAACC,OAAO,CAACL,UAAU,CAAC,EAAE;MAC9B,MAAM,IAAIG,KAAK,CAAC,4BAA4B,CAAC;IAC/C;IACAH,UAAU,CAACM,OAAO,CAAEC,QAAQ,IAAK;MAC/B,IAAI,CAACA,QAAQ,CAACC,WAAW,EAAE,MAAM,IAAIL,KAAK,CAAC,6CAA6C,CAAC;MACzFI,QAAQ,CAACE,KAAK,EAAEH,OAAO,CAAEI,IAAI,IAAK;QAChC,IAAI,CAACA,IAAI,CAACC,IAAI,EAAE,MAAM,IAAIR,KAAK,CAAC,iCAAiC,CAAC;QAClE,IAAIO,IAAI,CAACE,OAAO,EAAE;UAChBF,IAAI,CAACE,OAAO,GAAGC,MAAM,CAACC,IAAI,CAACJ,IAAI,CAACE,OAAO,EAAE,QAAQ,CAAC,CAAChB,QAAQ,CAAC,CAAC;QAC/D;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAOI,UAAU;EACnB;AACF;AAAC3C,OAAA,CAAAK,gBAAA,GAAAA,gBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_componentIssues","_bitError","_lodash","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","inputDataDescription","exports","snapFromScopeOptions","keys","IssuesClasses","join","SnapFromScopeCmd","constructor","snapping","logger","report","push","message","lane","ignoreIssues","build","skipTests","disableSnapPipeline","ignoreBuildErrors","rebuildDepsGraph","updateDependents","tag","disableTagAndSnapPipelines","BitError","snapDataPerCompRaw","parseData","results","snapFromScope","snappedIds","exportedIds","snappedOutput","length","chalk","bold","exportedOutput","compact","json","code","map","id","toString","err","error","stack","dataParsed","JSON","parse","Error","Array","isArray","forEach","dataItem","componentId","files","file","path","content","Buffer","from"],"sources":["snap-from-scope.cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { BitError } from '@teambit/bit-error';\nimport { compact } from 'lodash';\nimport { Logger } from '@teambit/logger';\nimport { SnappingMain } from './snapping.main.runtime';\nimport { BasicTagSnapParams } from './tag-model-component';\nimport { NewDependencies } from './generate-comp-from-scope';\n\nexport type FileData = { path: string; content: string; delete?: boolean };\n\nexport type SnapDataPerCompRaw = {\n componentId: string;\n dependencies?: string[];\n aspects?: Record<string, any>;\n message?: string;\n files?: FileData[];\n isNew?: boolean;\n mainFile?: string; // relevant when isNew is true. default to \"index.ts\".\n newDependencies?: NewDependencies;\n removeDependencies?: string[];\n forkFrom?: string; // origin id to fork from. the componentId is the new id. (no need to populate isNew prop).\n version?: string; // relevant when passing \"--tag\". optionally, specify the semver to tag. default to \"patch\".\n};\n\nexport type SnapFromScopeOptions = {\n push?: boolean;\n lane?: string;\n ignoreIssues?: string;\n disableSnapPipeline?: boolean;\n updateDependents?: boolean;\n tag?: boolean;\n} & BasicTagSnapParams;\n\nexport const inputDataDescription = `the input data is a stringified JSON of an array of the following object.\n{\n componentId: string; // ids always have scope, so it's safe to parse them from string\n dependencies?: string[]; // dependencies include versions. for components use component-id. e.g. [teambit.compilation/compiler@1.0.0, lodash@4.17.21]\n aspects?: Record<string,any> // e.g. { \"teambit.react/react\": {}, \"teambit.envs/envs\": { \"env\": \"teambit.react/react\" } }\n message?: string; // tag-message.\n files?: Array<{path: string, content: string}>; // replace content of specified source-files. the content is base64 encoded.\n isNew?: boolean; // if it's new, it'll be generated from the given files. otherwise, it'll be fetched from the scope and updated.\n mainFile?: string; // relevant when isNew is true. default to \"index.ts\".\n newDependencies?: Array<{ // new dependencies (components and packages) to add.\n id: string; // component-id or package-name. e.g. \"teambit.react/react\" or \"lodash\".\n version?: string; // version of the package. e.g. \"2.0.3\". for packages, it is mandatory.\n isComponent?: boolean; // default true. if false, it's a package dependency\n type?: 'runtime' | 'dev' | 'peer'; // default \"runtime\".\n }>;\n removeDependencies?: string[]; // component-id (for components) or package-name (for packages) to remove from the dependencies.\n forkFrom?: string; // origin id to fork from. the componentId is the new id. (no need to populate isNew prop).\n version?: string; // relevant when passing \"--tag\". optionally, specify the semver to tag. default to \"patch\".\n}\nan example of the final data: '[{\"componentId\":\"ci.remote2/comp-b\",\"message\": \"first snap\"}]'`;\n\nexport const snapFromScopeOptions = [\n ['', 'push', 'export the updated objects to the original scopes once done'],\n ['m', 'message <message>', 'log message describing the latest changes'],\n ['', 'lane <lane-id>', 'fetch the components from the given lane'],\n ['', 'build', 'run the build pipeline'],\n ['', 'skip-tests', 'skip running component tests during snap process'],\n ['', 'disable-snap-pipeline', 'skip the snap pipeline'],\n ['', 'ignore-build-errors', 'run the snap pipeline although the build pipeline failed'],\n ['', 'rebuild-deps-graph', 'do not reuse the saved dependencies graph, instead build it from scratch'],\n [\n 'i',\n 'ignore-issues [issues]',\n `ignore component issues (shown in \"bit status\" as \"issues found\"), issues to ignore:\n[${Object.keys(IssuesClasses).join(', ')}]\nto ignore multiple issues, separate them by a comma and wrap with quotes. to ignore all issues, specify \"*\".`,\n ],\n ['', 'tag', 'make a tag instead of a snap'],\n ['', 'stream', 'relevant for --json only. stream loader as json strings'],\n ['j', 'json', 'output as json format'],\n];\n\nexport class SnapFromScopeCmd implements Command {\n name = '_snap <data>';\n description = 'snap components from a bare-scope';\n extendedDescription = `this command should be running from a new bare scope, it first imports the components it needs and then processes the snap.\n${inputDataDescription}\n`;\n alias = '';\n options = [\n ...snapFromScopeOptions,\n [\n '',\n 'update-dependents',\n 'when snapped on a lane, mark it as update-dependents so it will be skipped from the workspace',\n ],\n ] as CommandOptions;\n loader = true;\n private = true;\n\n constructor(\n private snapping: SnappingMain,\n private logger: Logger\n ) {}\n\n async report(\n [data]: [string],\n {\n push = false,\n message = '',\n lane,\n ignoreIssues,\n build = false,\n skipTests = false,\n disableSnapPipeline = false,\n ignoreBuildErrors = false,\n rebuildDepsGraph,\n updateDependents,\n tag,\n }: SnapFromScopeOptions\n ) {\n const disableTagAndSnapPipelines = disableSnapPipeline;\n if (disableTagAndSnapPipelines && ignoreBuildErrors) {\n throw new BitError('you can use either ignore-build-errors or disable-snap-pipeline, but not both');\n }\n if (updateDependents && !lane) {\n throw new BitError('update-dependents flag is only available when snapping from a lane');\n }\n\n const snapDataPerCompRaw = this.parseData(data);\n const results = await this.snapping.snapFromScope(snapDataPerCompRaw, {\n push,\n message,\n lane,\n ignoreIssues,\n build,\n skipTests,\n disableTagAndSnapPipelines,\n ignoreBuildErrors,\n rebuildDepsGraph,\n updateDependents,\n tag,\n });\n\n const { snappedIds, exportedIds } = results;\n\n const snappedOutput = snappedIds.length ? `${chalk.bold('snapped components')}\\n${snappedIds.join('\\n')}` : '';\n const exportedOutput =\n exportedIds && exportedIds.length ? `${chalk.bold('exported components')}\\n${exportedIds.join('\\n')}` : '';\n\n return compact([snappedOutput, exportedOutput]).join('\\n\\n');\n }\n async json(\n [data]: [string],\n {\n push = false,\n message = '',\n lane,\n ignoreIssues,\n build = false,\n skipTests = false,\n disableSnapPipeline = false,\n ignoreBuildErrors = false,\n rebuildDepsGraph,\n updateDependents,\n tag,\n }: SnapFromScopeOptions\n ) {\n const disableTagAndSnapPipelines = disableSnapPipeline;\n if (disableTagAndSnapPipelines && ignoreBuildErrors) {\n throw new BitError('you can use either ignore-build-errors or disable-snap-pipeline, but not both');\n }\n if (updateDependents && !lane) {\n throw new BitError('update-dependents flag is only available when snapping from a lane');\n }\n\n const snapDataPerCompRaw = this.parseData(data);\n\n try {\n const results = await this.snapping.snapFromScope(snapDataPerCompRaw, {\n push,\n message,\n lane,\n ignoreIssues,\n build,\n skipTests,\n disableTagAndSnapPipelines,\n ignoreBuildErrors,\n rebuildDepsGraph,\n updateDependents,\n tag,\n });\n\n return {\n code: 0,\n data: {\n exportedIds: results.exportedIds?.map((id) => id.toString()),\n snappedIds: results.snappedIds.map((id) => id.toString()),\n },\n };\n } catch (err: any) {\n this.logger.error('snap-from-scope.json, error: ', err);\n return {\n code: 1,\n error: err.message,\n stack: err.stack,\n };\n }\n }\n private parseData(data: string): SnapDataPerCompRaw[] {\n let dataParsed: unknown;\n try {\n dataParsed = JSON.parse(data);\n } catch (err: any) {\n throw new Error(`failed parsing the data entered as JSON. err ${err.message}`);\n }\n if (!Array.isArray(dataParsed)) {\n throw new Error('expect data to be an array');\n }\n dataParsed.forEach((dataItem) => {\n if (!dataItem.componentId) throw new Error('expect data item to have \"componentId\" prop');\n dataItem.files?.forEach((file) => {\n if (!file.path) throw new Error('expect file to have \"path\" prop');\n if (file.content) {\n file.content = Buffer.from(file.content, 'base64').toString();\n }\n });\n });\n\n return dataParsed;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -611,7 +611,7 @@ if you're willing to lose the history from the head to the specified version, us
611
611
  const allCompIds = snapDataPerComp.map(s => s.componentId);
612
612
  const componentIdsLatest = componentIds.map(id => id.changeVersion(_legacy2().LATEST));
613
613
  const newCompsData = (0, _lodash().compact)(snapDataPerComp.map(t => t.isNew ? t : null));
614
- const newComponents = await Promise.all(newCompsData.map(newComp => (0, _generateCompFromScope().generateCompFromScope)(this.scope, newComp, this)));
614
+ const newComponents = await Promise.all(newCompsData.map(newComp => (0, _generateCompFromScope().generateCompFromScope)(this.scope, this.dependencyResolver, newComp, this)));
615
615
  await this.scope.import(componentIdsLatest, {
616
616
  preferDependencyGraph: false,
617
617
  lane,