@teambit/snapping 1.0.167 → 1.0.169

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.
@@ -4,7 +4,7 @@ import { Component } from '@teambit/component';
4
4
  import { DependenciesMain } from '@teambit/dependencies';
5
5
  import { DependencyResolverMain } from '@teambit/dependency-resolver';
6
6
  import { FileData } from './snap-from-scope.cmd';
7
- import { SnapDataParsed } from './snapping.main.runtime';
7
+ import type { SnappingMain, SnapDataParsed } from './snapping.main.runtime';
8
8
  export type CompData = {
9
9
  componentId: ComponentID;
10
10
  dependencies: ComponentID[];
@@ -22,5 +22,5 @@ export type CompData = {
22
22
  * write the version and files into the scope as objects, so then it's possible to load Component object using the
23
23
  * ConsumerComponent.
24
24
  */
25
- export declare function generateCompFromScope(scope: ScopeMain, compData: CompData): Promise<Component>;
25
+ export declare function generateCompFromScope(scope: ScopeMain, compData: CompData, snapping: SnappingMain): Promise<Component>;
26
26
  export declare function addDeps(component: Component, snapData: SnapDataParsed, scope: ScopeMain, deps: DependenciesMain, depsResolver: DependencyResolverMain): Promise<void>;
@@ -76,7 +76,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
76
76
  * write the version and files into the scope as objects, so then it's possible to load Component object using the
77
77
  * ConsumerComponent.
78
78
  */
79
- async function generateCompFromScope(scope, compData) {
79
+ async function generateCompFromScope(scope, compData, snapping) {
80
80
  if (!compData.files) throw new Error('generateComp: files are missing');
81
81
  const files = compData.files.map(file => {
82
82
  return new (_sources().SourceFile)({
@@ -105,6 +105,9 @@ async function generateCompFromScope(scope, compData) {
105
105
  email: ''
106
106
  }
107
107
  });
108
+ // this is needed, otherwise in case of updating envs/aspects, the version-validator throws
109
+ // an error saying "the extension ${extensionId.toString()} is missing from the flattenedDependencies"
110
+ await snapping._addFlattenedDependenciesToComponents([consumerComponent]);
108
111
  const {
109
112
  version,
110
113
  files: filesBitObject
@@ -1 +1 @@
1
- {"version":3,"names":["_componentId","data","require","_component","_interopRequireDefault","_dependencies","_sources","_componentOverrides","_config","_componentSchema","_dependencyResolver","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","generateCompFromScope","scope","compData","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","version","filesBitObject","legacyScope","sources","consumerComponentToVersion","modelComponent","findOrAddComponent","hash","objects","writeObjectsToTheFS","f","component","getManyByLegacy","addDeps","snapData","deps","depsResolver","newDeps","newDependencies","compIdsData","dep","isComponent","compIdsDataParsed","ComponentID","fromString","compIds","changeVersion","comps","getMany","toDependency","depId","comp","find","c","isEqualWithoutVersion","pkgName","getPackageName","Dependency","compDeps","type","compDevDeps","packageDeps","toPackageObj","pkgs","reduce","acc","curr","dependenciesData","allDependencies","dependencies","devDependencies","allPackagesDependencies","packageDependencies","devPackageDependencies","peerPackageDependencies","state","_consumer","loadDependenciesFromScope","dependenciesListSerialized","extractDepsFromLegacy","serialize","extId","DependencyResolverAspect","existingExtension","config","findExtension","assign"],"sources":["generate-comp-from-scope.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { Dependency } from '@teambit/legacy/dist/consumer/component/dependencies';\nimport { SourceFile } from '@teambit/legacy/dist/consumer/component/sources';\nimport { ScopeMain } from '@teambit/scope';\nimport ComponentOverrides from '@teambit/legacy/dist/consumer/config/component-overrides';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config';\nimport { Component } from '@teambit/component';\nimport { CURRENT_SCHEMA } from '@teambit/legacy/dist/consumer/component/component-schema';\nimport { DependenciesMain } from '@teambit/dependencies';\nimport DependencyResolverAspect, { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { FileData } from './snap-from-scope.cmd';\nimport { SnapDataParsed } from './snapping.main.runtime';\n\nexport type CompData = {\n componentId: ComponentID;\n dependencies: ComponentID[];\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(scope: ScopeMain, compData: CompData): 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 const { version, files: filesBitObject } = await scope.legacyScope.sources.consumerComponentToVersion(\n consumerComponent\n );\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) {\n const newDeps = snapData.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 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 dependenciesData = {\n allDependencies: {\n dependencies: compDeps,\n devDependencies: compDevDeps,\n },\n allPackagesDependencies: {\n packageDependencies: toPackageObj(packageDeps.filter((dep) => dep.type === 'runtime')),\n devPackageDependencies: toPackageObj(packageDeps.filter((dep) => dep.type === 'dev')),\n peerPackageDependencies: toPackageObj(packageDeps.filter((dep) => dep.type === 'peer')),\n },\n };\n\n const consumerComponent = component.state._consumer as ConsumerComponent;\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 // add the dependencies data to the dependency-resolver aspect\n const dependenciesListSerialized = (await depsResolver.extractDepsFromLegacy(component)).serialize();\n const extId = DependencyResolverAspect.id;\n const data = { dependencies: dependenciesListSerialized };\n const existingExtension = component.config.extensions.findExtension(extId);\n if (!existingExtension) throw new Error('unable to find DependencyResolver extension');\n Object.assign(existingExtension.data, data);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_componentId","data","require","_component","_interopRequireDefault","_dependencies","_sources","_componentOverrides","_config","_componentSchema","_dependencyResolver","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","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","compIdsData","dep","isComponent","compIdsDataParsed","ComponentID","fromString","compIds","changeVersion","comps","getMany","toDependency","depId","comp","find","c","isEqualWithoutVersion","pkgName","getPackageName","Dependency","compDeps","type","compDevDeps","packageDeps","toPackageObj","pkgs","reduce","acc","curr","dependenciesData","allDependencies","dependencies","devDependencies","allPackagesDependencies","packageDependencies","devPackageDependencies","peerPackageDependencies","state","_consumer","loadDependenciesFromScope","dependenciesListSerialized","extractDepsFromLegacy","serialize","extId","DependencyResolverAspect","existingExtension","config","findExtension","assign"],"sources":["generate-comp-from-scope.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { Dependency } from '@teambit/legacy/dist/consumer/component/dependencies';\nimport { SourceFile } from '@teambit/legacy/dist/consumer/component/sources';\nimport { ScopeMain } from '@teambit/scope';\nimport ComponentOverrides from '@teambit/legacy/dist/consumer/config/component-overrides';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config';\nimport { Component } from '@teambit/component';\nimport { CURRENT_SCHEMA } from '@teambit/legacy/dist/consumer/component/component-schema';\nimport { DependenciesMain } from '@teambit/dependencies';\nimport DependencyResolverAspect, { DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { FileData } from './snap-from-scope.cmd';\nimport type { SnappingMain, SnapDataParsed } from './snapping.main.runtime';\n\nexport type CompData = {\n componentId: ComponentID;\n dependencies: ComponentID[];\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 } = await scope.legacyScope.sources.consumerComponentToVersion(\n consumerComponent\n );\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) {\n const newDeps = snapData.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 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 dependenciesData = {\n allDependencies: {\n dependencies: compDeps,\n devDependencies: compDevDeps,\n },\n allPackagesDependencies: {\n packageDependencies: toPackageObj(packageDeps.filter((dep) => dep.type === 'runtime')),\n devPackageDependencies: toPackageObj(packageDeps.filter((dep) => dep.type === 'dev')),\n peerPackageDependencies: toPackageObj(packageDeps.filter((dep) => dep.type === 'peer')),\n },\n };\n\n const consumerComponent = component.state._consumer as ConsumerComponent;\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 // add the dependencies data to the dependency-resolver aspect\n const dependenciesListSerialized = (await depsResolver.extractDepsFromLegacy(component)).serialize();\n const extId = DependencyResolverAspect.id;\n const data = { dependencies: dependenciesListSerialized };\n const existingExtension = component.config.extensions.findExtension(extId);\n if (!existingExtension) throw new Error('unable to find DependencyResolver extension');\n Object.assign(existingExtension.data, data);\n}\n"],"mappings":"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"}
@@ -28,6 +28,7 @@ type SnapFromScopeOptions = {
28
28
  ignoreIssues?: string;
29
29
  disableSnapPipeline?: boolean;
30
30
  forceDeploy?: boolean;
31
+ updateDependents?: boolean;
31
32
  } & BasicTagSnapParams;
32
33
  export declare class SnapFromScopeCmd implements Command {
33
34
  private snapping;
@@ -41,7 +42,7 @@ export declare class SnapFromScopeCmd implements Command {
41
42
  private: boolean;
42
43
  constructor(snapping: SnappingMain, logger: Logger);
43
44
  report([data]: [string], options: SnapFromScopeOptions): Promise<string>;
44
- json([data]: [string], { push, message, lane, ignoreIssues, build, skipTests, disableSnapPipeline, ignoreBuildErrors, rebuildDepsGraph, forceDeploy, }: SnapFromScopeOptions): Promise<{
45
+ json([data]: [string], { push, message, lane, ignoreIssues, build, skipTests, disableSnapPipeline, ignoreBuildErrors, rebuildDepsGraph, forceDeploy, updateDependents, }: SnapFromScopeOptions): Promise<{
45
46
  exportedIds: string[] | undefined;
46
47
  snappedIds: string[];
47
48
  snappedComponents: import("@teambit/legacy/dist/consumer/component").default[];
@@ -59,7 +59,7 @@ an example of the final data: '[{"componentId":"ci.remote2/comp-b","message": "f
59
59
  _defineProperty(this, "alias", '');
60
60
  _defineProperty(this, "options", [['', 'push', 'export the updated objects to the original scopes once done'], ['m', 'message <message>', 'log message describing the latest changes'], ['', 'lane <lane-id>', 'fetch the components from the given lane'], ['', 'build', 'run the build pipeline'], ['', 'skip-tests', 'skip running component tests during snap process'], ['', 'disable-snap-pipeline', 'skip the snap pipeline'], ['', 'force-deploy', 'DEPRECATED. use --ignore-build-error instead'], ['', 'ignore-build-errors', 'run the snap pipeline although the build pipeline failed'], ['', 'rebuild-deps-graph', 'do not reuse the saved dependencies graph, instead build it from scratch'], ['i', 'ignore-issues [issues]', `ignore component issues (shown in "bit status" as "issues found"), issues to ignore:
61
61
  [${Object.keys(_componentIssues().IssuesClasses).join(', ')}]
62
- to ignore multiple issues, separate them by a comma and wrap with quotes. to ignore all issues, specify "*".`], ['j', 'json', 'output as json format']]);
62
+ to ignore multiple issues, separate them by a comma and wrap with quotes. to ignore all issues, specify "*".`], ['', 'update-dependents', 'EXPERIMENTAL. when snapped on a lane, mark it as update-dependents so it will be skipped from the workspace'], ['j', 'json', 'output as json format']]);
63
63
  _defineProperty(this, "loader", true);
64
64
  _defineProperty(this, "private", true);
65
65
  }
@@ -83,7 +83,8 @@ to ignore multiple issues, separate them by a comma and wrap with quotes. to ign
83
83
  disableSnapPipeline = false,
84
84
  ignoreBuildErrors = false,
85
85
  rebuildDepsGraph,
86
- forceDeploy = false
86
+ forceDeploy = false,
87
+ updateDependents
87
88
  }) {
88
89
  const disableTagAndSnapPipelines = disableSnapPipeline;
89
90
  if (forceDeploy) {
@@ -102,7 +103,8 @@ to ignore multiple issues, separate them by a comma and wrap with quotes. to ign
102
103
  skipTests,
103
104
  disableTagAndSnapPipelines,
104
105
  ignoreBuildErrors,
105
- rebuildDepsGraph
106
+ rebuildDepsGraph,
107
+ updateDependents
106
108
  });
107
109
  return _objectSpread(_objectSpread({}, results), {}, {
108
110
  exportedIds: results.exportedIds?.map(id => id.toString()),
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_componentIssues","_bitError","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","SnapFromScopeCmd","constructor","snapping","logger","IssuesClasses","join","report","options","results","json","snappedIds","exportedIds","snappedOutput","chalk","bold","exportedOutput","message","lane","ignoreIssues","build","skipTests","disableSnapPipeline","ignoreBuildErrors","rebuildDepsGraph","forceDeploy","disableTagAndSnapPipelines","BitError","snapDataPerCompRaw","parseData","snapFromScope","map","id","toString","dataParsed","JSON","parse","err","Error","Array","isArray","dataItem","componentId","files","file","path","content","Buffer","from","exports"],"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 { 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};\n\ntype SnapFromScopeOptions = {\n push?: boolean;\n lane?: string;\n ignoreIssues?: string;\n disableSnapPipeline?: boolean;\n forceDeploy?: boolean;\n} & BasicTagSnapParams;\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.\nthe 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 to update their versions, e.g. [teambit/compiler@1.0.0, teambit/tester@1.0.0]\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}\nan example of the final data: '[{\"componentId\":\"ci.remote2/comp-b\",\"message\": \"first snap\"}]'\n`;\n alias = '';\n options = [\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 ['', 'force-deploy', 'DEPRECATED. use --ignore-build-error instead'],\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 ['j', 'json', 'output as json format'],\n ] as CommandOptions;\n loader = true;\n private = true;\n\n constructor(private snapping: SnappingMain, private logger: Logger) {}\n\n async report([data]: [string], options: SnapFromScopeOptions) {\n const results = await this.json([data], options);\n\n const { snappedIds, exportedIds } = results;\n\n const snappedOutput = `${chalk.bold('snapped components')}\\n${snappedIds.join('\\n')}`;\n const exportedOutput =\n exportedIds && exportedIds.length ? `\\n\\n${chalk.bold('exported components')}\\n${exportedIds.join('\\n')}` : '';\n\n return `${snappedOutput}${exportedOutput}`;\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 forceDeploy = false,\n }: SnapFromScopeOptions\n ) {\n const disableTagAndSnapPipelines = disableSnapPipeline;\n if (forceDeploy) {\n ignoreBuildErrors = true;\n }\n if (disableTagAndSnapPipelines && ignoreBuildErrors) {\n throw new BitError('you can use either ignore-build-errors or disable-snap-pipeline, but not both');\n }\n\n const snapDataPerCompRaw = this.parseData(data);\n\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 });\n\n return {\n ...results,\n exportedIds: results.exportedIds?.map((id) => id.toString()),\n snappedIds: results.snappedIds.map((id) => id.toString()),\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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"}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_componentIssues","_bitError","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","SnapFromScopeCmd","constructor","snapping","logger","IssuesClasses","join","report","options","results","json","snappedIds","exportedIds","snappedOutput","chalk","bold","exportedOutput","message","lane","ignoreIssues","build","skipTests","disableSnapPipeline","ignoreBuildErrors","rebuildDepsGraph","forceDeploy","updateDependents","disableTagAndSnapPipelines","BitError","snapDataPerCompRaw","parseData","snapFromScope","map","id","toString","dataParsed","JSON","parse","err","Error","Array","isArray","dataItem","componentId","files","file","path","content","Buffer","from","exports"],"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 { 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};\n\ntype SnapFromScopeOptions = {\n push?: boolean;\n lane?: string;\n ignoreIssues?: string;\n disableSnapPipeline?: boolean;\n forceDeploy?: boolean;\n updateDependents?: boolean;\n} & BasicTagSnapParams;\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.\nthe 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 to update their versions, e.g. [teambit/compiler@1.0.0, teambit/tester@1.0.0]\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}\nan example of the final data: '[{\"componentId\":\"ci.remote2/comp-b\",\"message\": \"first snap\"}]'\n`;\n alias = '';\n options = [\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 ['', 'force-deploy', 'DEPRECATED. use --ignore-build-error instead'],\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 [\n '',\n 'update-dependents',\n 'EXPERIMENTAL. when snapped on a lane, mark it as update-dependents so it will be skipped from the workspace',\n ],\n ['j', 'json', 'output as json format'],\n ] as CommandOptions;\n loader = true;\n private = true;\n\n constructor(private snapping: SnappingMain, private logger: Logger) {}\n\n async report([data]: [string], options: SnapFromScopeOptions) {\n const results = await this.json([data], options);\n\n const { snappedIds, exportedIds } = results;\n\n const snappedOutput = `${chalk.bold('snapped components')}\\n${snappedIds.join('\\n')}`;\n const exportedOutput =\n exportedIds && exportedIds.length ? `\\n\\n${chalk.bold('exported components')}\\n${exportedIds.join('\\n')}` : '';\n\n return `${snappedOutput}${exportedOutput}`;\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 forceDeploy = false,\n updateDependents,\n }: SnapFromScopeOptions\n ) {\n const disableTagAndSnapPipelines = disableSnapPipeline;\n if (forceDeploy) {\n ignoreBuildErrors = true;\n }\n if (disableTagAndSnapPipelines && ignoreBuildErrors) {\n throw new BitError('you can use either ignore-build-errors or disable-snap-pipeline, but not both');\n }\n\n const snapDataPerCompRaw = this.parseData(data);\n\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 });\n\n return {\n ...results,\n exportedIds: results.exportedIds?.map((id) => id.toString()),\n snappedIds: results.snappedIds.map((id) => id.toString()),\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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"}
@@ -108,6 +108,7 @@ export declare class SnappingMain {
108
108
  push?: boolean;
109
109
  ignoreIssues?: string;
110
110
  lane?: string;
111
+ updateDependents?: boolean;
111
112
  } & Partial<BasicTagParams>): Promise<SnapFromScopeResults>;
112
113
  /**
113
114
  * save the local changes of a component(s) into the scope. snap can be done on main or on a lane.
@@ -146,15 +147,16 @@ export declare class SnappingMain {
146
147
  _addFlattenedDepsGraphToComponents(components: ConsumerComponent[]): Promise<void>;
147
148
  _updateComponentsByTagResult(components: ConsumerComponent[], tagResult: LegacyOnTagResult[]): void;
148
149
  _getPublishedPackages(components: ConsumerComponent[]): string[];
149
- _addCompToObjects({ source, lane, shouldValidateVersion, }: {
150
+ _addCompToObjects({ source, lane, shouldValidateVersion, updateDependentsOnLane, }: {
150
151
  source: ConsumerComponent;
151
152
  lane: Lane | null;
152
153
  shouldValidateVersion?: boolean;
154
+ updateDependentsOnLane?: boolean;
153
155
  }): Promise<{
154
156
  component: ModelComponent;
155
157
  version: Version;
156
158
  }>;
157
- _addCompFromScopeToObjects(source: ConsumerComponent, lane: Lane | null): Promise<{
159
+ _addCompFromScopeToObjects(source: ConsumerComponent, lane: Lane | null, updateDependentsOnLane?: boolean): Promise<{
158
160
  component: ModelComponent;
159
161
  version: Version;
160
162
  }>;
@@ -563,10 +563,26 @@ if you're willing to lose the history from the head to the specified version, us
563
563
  if (this.workspace) {
564
564
  throw new (_bitError().BitError)(`unable to run this command from a workspace, please create a new bare-scope and run it from there`);
565
565
  }
566
- const snapDataPerComp = await Promise.all(snapDataPerCompRaw.map(async snapData => {
566
+ let lane;
567
+ const laneIdStr = params.lane;
568
+ if (laneIdStr) {
569
+ const laneId = _laneId().LaneId.parse(laneIdStr);
570
+ lane = await this.importer.importLaneObject(laneId);
571
+ // this is critical. otherwise, later on, when loading aspects and isolating capsules, we'll try to fetch dists
572
+ // from the original scope instead of the lane-scope.
573
+ this.scope.legacyScope.setCurrentLaneId(laneId);
574
+ this.scope.legacyScope.scopeImporter.shouldOnlyFetchFromCurrentLane = true;
575
+ }
576
+ const laneCompIds = lane?.toComponentIds();
577
+ const resolveDepVer = dep => {
578
+ if (dep.hasVersion()) return dep;
579
+ const fromLane = laneCompIds?.searchWithoutVersion(dep);
580
+ return fromLane || dep;
581
+ };
582
+ const snapDataPerComp = snapDataPerCompRaw.map(snapData => {
567
583
  return {
568
- componentId: await this.scope.resolveComponentId(snapData.componentId),
569
- dependencies: snapData.dependencies ? await this.scope.resolveMultipleComponentIds(snapData.dependencies) : [],
584
+ componentId: _componentId().ComponentID.fromString(snapData.componentId),
585
+ dependencies: snapData.dependencies?.map(id => _componentId().ComponentID.fromString(id)).map(resolveDepVer) || [],
570
586
  aspects: snapData.aspects,
571
587
  message: snapData.message,
572
588
  files: snapData.files,
@@ -579,22 +595,15 @@ if you're willing to lose the history from the head to the specified version, us
579
595
  type: dep.type ?? 'runtime'
580
596
  }))
581
597
  };
582
- }));
598
+ });
599
+
600
+ // console.log('snapDataPerComp', JSON.stringify(snapDataPerComp, undefined, 2));
601
+
583
602
  const componentIds = (0, _lodash().compact)(snapDataPerComp.map(t => t.isNew ? null : t.componentId));
584
603
  const allCompIds = snapDataPerComp.map(s => s.componentId);
585
604
  const componentIdsLatest = componentIds.map(id => id.changeVersion(_constants().LATEST));
586
605
  const newCompsData = (0, _lodash().compact)(snapDataPerComp.map(t => t.isNew ? t : null));
587
- const newComponents = await Promise.all(newCompsData.map(newComp => (0, _generateCompFromScope().generateCompFromScope)(this.scope, newComp)));
588
- let lane;
589
- const laneIdStr = params.lane;
590
- if (laneIdStr) {
591
- const laneId = _laneId().LaneId.parse(laneIdStr);
592
- lane = await this.importer.importLaneObject(laneId);
593
- // this is critical. otherwise, later on, when loading aspects and isolating capsules, we'll try to fetch dists
594
- // from the original scope instead of the lane-scope.
595
- this.scope.legacyScope.setCurrentLaneId(laneId);
596
- this.scope.legacyScope.scopeImporter.shouldOnlyFetchFromCurrentLane = true;
597
- }
606
+ const newComponents = await Promise.all(newCompsData.map(newComp => (0, _generateCompFromScope().generateCompFromScope)(this.scope, newComp, this)));
598
607
  await this.scope.import(componentIdsLatest, {
599
608
  preferDependencyGraph: false,
600
609
  lane,
@@ -646,7 +655,8 @@ if you're willing to lose the history from the head to the specified version, us
646
655
  persist: true,
647
656
  isSnap: true,
648
657
  ids,
649
- message: params.message
658
+ message: params.message,
659
+ updateDependentsOnLane: params.updateDependents
650
660
  }));
651
661
  const {
652
662
  taggedComponents
@@ -1011,12 +1021,13 @@ another option, in case this dependency is not in main yet is to remove all refe
1011
1021
  async _addCompToObjects({
1012
1022
  source,
1013
1023
  lane,
1014
- shouldValidateVersion = false
1024
+ shouldValidateVersion = false,
1025
+ updateDependentsOnLane = false
1015
1026
  }) {
1016
1027
  const {
1017
1028
  component,
1018
1029
  version
1019
- } = await this._addCompFromScopeToObjects(source, lane);
1030
+ } = await this._addCompFromScopeToObjects(source, lane, updateDependentsOnLane);
1020
1031
  const unmergedComponent = this.scope.legacyScope.objects.unmergedComponents.getEntry(component.toComponentId());
1021
1032
  if (unmergedComponent) {
1022
1033
  if (unmergedComponent.unrelated) {
@@ -1054,7 +1065,7 @@ another option, in case this dependency is not in main yet is to remove all refe
1054
1065
  version
1055
1066
  };
1056
1067
  }
1057
- async _addCompFromScopeToObjects(source, lane) {
1068
+ async _addCompFromScopeToObjects(source, lane, updateDependentsOnLane = false) {
1058
1069
  const objectRepo = this.objectsRepo;
1059
1070
  // if a component exists in the model, add a new version. Otherwise, create a new component on the model
1060
1071
  // @todo: fix the ts error here with "source"
@@ -1080,7 +1091,7 @@ another option, in case this dependency is not in main yet is to remove all refe
1080
1091
  objectRepo.add(version);
1081
1092
  if (flattenedEdges) this.objectsRepo.add(flattenedEdges);
1082
1093
  if (!source.version) throw new Error(`addSource expects source.version to be set`);
1083
- component.addVersion(version, source.version, lane, objectRepo, source.previouslyUsedVersion);
1094
+ component.addVersion(version, source.version, lane, source.previouslyUsedVersion, updateDependentsOnLane);
1084
1095
  objectRepo.add(component);
1085
1096
  if (lane) objectRepo.add(lane);
1086
1097
  files.forEach(file => objectRepo.add(file.file));