@teambit/objects 0.0.0-e5694d85004e754b8dfb58e1964b25c9c28083d3 → 0.0.0-e66714c56bbfeb5edbd9adca68680febae4f7fc9

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.
@@ -10,6 +10,7 @@ export type HistoryItem = {
10
10
  log: Log;
11
11
  components: string[];
12
12
  deleted?: string[];
13
+ updateDependents?: string[];
13
14
  };
14
15
  type History = {
15
16
  [uuid: string]: HistoryItem;
@@ -86,11 +86,17 @@ class LaneHistory extends _objects().BitObject {
86
86
  if (msg) log.message = msg;
87
87
  const components = laneObj.toComponentIds().toStringArray();
88
88
  const deleted = laneObj.components.filter(c => c.isDeleted).map(c => c.id.changeVersion(c.head.toString()).toString());
89
- this.history[historyKey || (0, _uuid().v4)()] = _objectSpread({
89
+ // Always write `updateDependents` (even when empty) so checkout/revert can distinguish a
90
+ // post-PR entry that legitimately had no hidden entries (drop current hidden) from a legacy
91
+ // pre-PR entry that never recorded the field at all (leave current hidden alone).
92
+ const updateDependents = (laneObj.updateDependents || []).map(id => id.toString());
93
+ this.history[historyKey || (0, _uuid().v4)()] = _objectSpread(_objectSpread({
90
94
  log,
91
95
  components
92
96
  }, deleted.length && {
93
97
  deleted
98
+ }), {}, {
99
+ updateDependents
94
100
  });
95
101
  }
96
102
  removeHistoryEntries(keys) {
@@ -1 +1 @@
1
- {"version":3,"names":["_uuid","data","require","_legacy","_harmonyModules","_objects","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","LaneHistory","BitObject","constructor","props","name","scope","laneHash","history","id","fromLaneObject","laneObject","hash","toString","toObject","pretty","args","getStringifyArgs","JSON","stringify","toBuffer","Buffer","from","getHistory","getHistoryIds","entries","sort","a","b","log","date","map","addHistory","laneObj","msg","historyKey","getBasicLog","message","components","toComponentIds","toStringArray","deleted","c","isDeleted","changeVersion","head","v4","removeHistoryEntries","key","merge","laneHistory","create","parse","contents","parsed","exports"],"sources":["lane-history.ts"],"sourcesContent":["import { v4 } from 'uuid';\nimport { getStringifyArgs } from '@teambit/legacy.utils';\nimport { getBasicLog } from '@teambit/harmony.modules.get-basic-log';\nimport { BitObject } from '../objects';\nimport type Lane from './lane';\n\ntype Log = { date: string; username?: string; email?: string; message?: string };\n\nexport type HistoryItem = {\n log: Log;\n components: string[];\n deleted?: string[];\n};\n\ntype History = { [uuid: string]: HistoryItem };\n\ntype LaneHistoryProps = {\n name: string;\n scope: string;\n laneHash: string;\n history: History;\n};\n\nexport class LaneHistory extends BitObject {\n private name: string;\n private scope: string;\n private laneHash: string;\n private history: History;\n\n constructor(props: LaneHistoryProps) {\n super();\n this.name = props.name;\n this.scope = props.scope;\n this.laneHash = props.laneHash;\n this.history = props.history;\n }\n\n id() {\n return `${this.laneHash}:${LaneHistory.name}`;\n }\n\n static fromLaneObject(laneObject: Lane): LaneHistory {\n return new LaneHistory({\n scope: laneObject.scope,\n name: laneObject.name,\n laneHash: laneObject.hash().toString(),\n history: {},\n });\n }\n\n toObject(): Record<string, any> {\n return {\n name: this.name,\n scope: this.scope,\n laneHash: this.laneHash,\n history: this.history,\n };\n }\n\n toString(pretty: boolean): string {\n const args = getStringifyArgs(pretty);\n return JSON.stringify(this.toObject(), ...args);\n }\n\n toBuffer(pretty): Buffer {\n return Buffer.from(this.toString(pretty));\n }\n\n getHistory(): History {\n return this.history;\n }\n\n getHistoryIds(): string[] {\n return Object.entries(this.history)\n .sort(([, a], [, b]) => Number(a.log.date) - Number(b.log.date))\n .map(([id]) => id);\n }\n\n async addHistory(laneObj: Lane, msg?: string, historyKey?: string) {\n const log: Log = await getBasicLog();\n if (msg) log.message = msg;\n const components = laneObj.toComponentIds().toStringArray();\n const deleted = laneObj.components\n .filter((c) => c.isDeleted)\n .map((c) => c.id.changeVersion(c.head.toString()).toString());\n this.history[historyKey || v4()] = { log, components, ...(deleted.length && { deleted }) };\n }\n\n removeHistoryEntries(keys: string[]) {\n for (const key of keys) {\n delete this.history[key];\n }\n }\n\n merge(laneHistory: LaneHistory) {\n this.history = { ...this.history, ...laneHistory.history };\n }\n\n static create(name: string, scope: string, laneHash: string) {\n return new LaneHistory({\n name,\n scope,\n laneHash,\n history: {},\n });\n }\n\n static parse(contents: string): LaneHistory {\n const parsed = JSON.parse(contents);\n const props: LaneHistoryProps = {\n name: parsed.name,\n scope: parsed.scope,\n laneHash: parsed.laneHash,\n history: parsed.history,\n };\n return new LaneHistory(props);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_uuid","data","require","_legacy","_harmonyModules","_objects","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","LaneHistory","BitObject","constructor","props","name","scope","laneHash","history","id","fromLaneObject","laneObject","hash","toString","toObject","pretty","args","getStringifyArgs","JSON","stringify","toBuffer","Buffer","from","getHistory","getHistoryIds","entries","sort","a","b","log","date","map","addHistory","laneObj","msg","historyKey","getBasicLog","message","components","toComponentIds","toStringArray","deleted","c","isDeleted","changeVersion","head","updateDependents","v4","removeHistoryEntries","key","merge","laneHistory","create","parse","contents","parsed","exports"],"sources":["lane-history.ts"],"sourcesContent":["import { v4 } from 'uuid';\nimport { getStringifyArgs } from '@teambit/legacy.utils';\nimport { getBasicLog } from '@teambit/harmony.modules.get-basic-log';\nimport { BitObject } from '../objects';\nimport type Lane from './lane';\n\ntype Log = { date: string; username?: string; email?: string; message?: string };\n\nexport type HistoryItem = {\n log: Log;\n components: string[];\n deleted?: string[];\n // hidden lane.updateDependents at the time of the snapshot. Recorded in their own field so\n // `historyItem.components` keeps its workspace-checkout/revert contract intact — those flows\n // must not materialize hidden entries into the bitmap.\n updateDependents?: string[];\n};\n\ntype History = { [uuid: string]: HistoryItem };\n\ntype LaneHistoryProps = {\n name: string;\n scope: string;\n laneHash: string;\n history: History;\n};\n\nexport class LaneHistory extends BitObject {\n private name: string;\n private scope: string;\n private laneHash: string;\n private history: History;\n\n constructor(props: LaneHistoryProps) {\n super();\n this.name = props.name;\n this.scope = props.scope;\n this.laneHash = props.laneHash;\n this.history = props.history;\n }\n\n id() {\n return `${this.laneHash}:${LaneHistory.name}`;\n }\n\n static fromLaneObject(laneObject: Lane): LaneHistory {\n return new LaneHistory({\n scope: laneObject.scope,\n name: laneObject.name,\n laneHash: laneObject.hash().toString(),\n history: {},\n });\n }\n\n toObject(): Record<string, any> {\n return {\n name: this.name,\n scope: this.scope,\n laneHash: this.laneHash,\n history: this.history,\n };\n }\n\n toString(pretty: boolean): string {\n const args = getStringifyArgs(pretty);\n return JSON.stringify(this.toObject(), ...args);\n }\n\n toBuffer(pretty): Buffer {\n return Buffer.from(this.toString(pretty));\n }\n\n getHistory(): History {\n return this.history;\n }\n\n getHistoryIds(): string[] {\n return Object.entries(this.history)\n .sort(([, a], [, b]) => Number(a.log.date) - Number(b.log.date))\n .map(([id]) => id);\n }\n\n async addHistory(laneObj: Lane, msg?: string, historyKey?: string) {\n const log: Log = await getBasicLog();\n if (msg) log.message = msg;\n const components = laneObj.toComponentIds().toStringArray();\n const deleted = laneObj.components\n .filter((c) => c.isDeleted)\n .map((c) => c.id.changeVersion(c.head.toString()).toString());\n // Always write `updateDependents` (even when empty) so checkout/revert can distinguish a\n // post-PR entry that legitimately had no hidden entries (drop current hidden) from a legacy\n // pre-PR entry that never recorded the field at all (leave current hidden alone).\n const updateDependents = (laneObj.updateDependents || []).map((id) => id.toString());\n this.history[historyKey || v4()] = {\n log,\n components,\n ...(deleted.length && { deleted }),\n updateDependents,\n };\n }\n\n removeHistoryEntries(keys: string[]) {\n for (const key of keys) {\n delete this.history[key];\n }\n }\n\n merge(laneHistory: LaneHistory) {\n this.history = { ...this.history, ...laneHistory.history };\n }\n\n static create(name: string, scope: string, laneHash: string) {\n return new LaneHistory({\n name,\n scope,\n laneHash,\n history: {},\n });\n }\n\n static parse(contents: string): LaneHistory {\n const parsed = JSON.parse(contents);\n const props: LaneHistoryProps = {\n name: parsed.name,\n scope: parsed.scope,\n laneHash: parsed.laneHash,\n history: parsed.history,\n };\n return new LaneHistory(props);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -42,10 +42,11 @@ export default class Lane extends BitObject {
42
42
  isNew: boolean;
43
43
  hasChanged: boolean;
44
44
  /**
45
- * populated when a user clicks on "update" in the UI. it's a list of components that are dependents on the
46
- * components in the lane. their dependencies are updated according to the lane.
47
- * from the CLI perspective, it's added by "bit _snap" and merged by "bit _merge-lane".
48
- * otherwise, the user is not aware of it. it's not imported to the workspace and the objects are not fetched.
45
+ * components that are dependents of components in the lane and need to be re-snapped against the
46
+ * lane's heads. populated by the bare-scope cascade producer (UI "snap updates" / `bit _snap`)
47
+ * and by `bit _merge-lane`. these entries are part of the lane's graph (Ripple CI builds them,
48
+ * merge engine refreshes them) but are intentionally hidden from workspace-facing flows
49
+ * (`bit status`, `bit compile`, `bit install`, the bitmap).
49
50
  */
50
51
  updateDependents?: ComponentID[];
51
52
  private overrideUpdateDependents?;
@@ -82,18 +83,20 @@ export default class Lane extends BitObject {
82
83
  static parse(contents: string, hash: string): Lane;
83
84
  toBuffer(pretty?: boolean): Buffer<ArrayBuffer>;
84
85
  addComponent(component: LaneComponent): void;
86
+ findUpdateDependent(componentId: ComponentID): ComponentID | undefined;
87
+ getUpdateDependentAsLaneComponent(componentId: ComponentID): LaneComponent | undefined;
85
88
  removeComponentFromUpdateDependentsIfExist(componentId: ComponentID): void;
86
89
  addComponentToUpdateDependents(componentId: ComponentID): void;
87
90
  removeAllUpdateDependents(): void;
88
- shouldOverrideUpdateDependents(): boolean | undefined;
89
91
  /**
90
- * !!! important !!!
91
- * this should get called only on a "temp lane", such as running "bit _snap", which the scope gets destroys after the
92
- * command is done. when _scope exports the lane, this "overrideUpdateDependents" is not saved to the remote-scope.
93
- *
94
- * on a user local lane object, this prop should never be true. otherwise, it'll override the remote-scope data.
92
+ * Signals an explicit `_snap --update-dependents` insertion. On export, the receiving scope
93
+ * gates its "add this new hidden entry" branch on this flag so a stale workspace lane can't
94
+ * resurrect entries the Cloud UI dropped. Workspace cascades which only update existing
95
+ * entries — deliberately do NOT set the flag. The field is also serialized by `Lane.toObject`
96
+ * for older remotes that gate their pre-diverge-check override branch on it.
95
97
  */
96
98
  setOverrideUpdateDependents(overrideUpdateDependents: boolean): void;
99
+ shouldOverrideUpdateDependents(): boolean;
97
100
  removeComponent(id: ComponentID): boolean;
98
101
  getComponent(id: ComponentID): LaneComponent | undefined;
99
102
  getComponentHead(bitId: ComponentID): Ref | null;
@@ -134,10 +134,11 @@ class Lane extends _objects().BitObject {
134
134
  _defineProperty(this, "hasChanged", false);
135
135
  // doesn't get saved in the object. only needed for in-memory instance
136
136
  /**
137
- * populated when a user clicks on "update" in the UI. it's a list of components that are dependents on the
138
- * components in the lane. their dependencies are updated according to the lane.
139
- * from the CLI perspective, it's added by "bit _snap" and merged by "bit _merge-lane".
140
- * otherwise, the user is not aware of it. it's not imported to the workspace and the objects are not fetched.
137
+ * components that are dependents of components in the lane and need to be re-snapped against the
138
+ * lane's heads. populated by the bare-scope cascade producer (UI "snap updates" / `bit _snap`)
139
+ * and by `bit _merge-lane`. these entries are part of the lane's graph (Ripple CI builds them,
140
+ * merge engine refreshes them) but are intentionally hidden from workspace-facing flows
141
+ * (`bit status`, `bit compile`, `bit install`, the bitmap).
141
142
  */
142
143
  _defineProperty(this, "updateDependents", void 0);
143
144
  _defineProperty(this, "overrideUpdateDependents", void 0);
@@ -268,7 +269,9 @@ class Lane extends _objects().BitObject {
268
269
  addComponent(component) {
269
270
  const existsComponent = this.getComponent(component.id);
270
271
  if (existsComponent) {
271
- if (!existsComponent.head.isEqual(component.head)) this.hasChanged = true;
272
+ if (!existsComponent.head.isEqual(component.head) || Boolean(existsComponent.isDeleted) !== Boolean(component.isDeleted)) {
273
+ this.hasChanged = true;
274
+ }
272
275
  existsComponent.id = component.id;
273
276
  existsComponent.head = component.head;
274
277
  existsComponent.isDeleted = component.isDeleted;
@@ -278,38 +281,50 @@ class Lane extends _objects().BitObject {
278
281
  this.hasChanged = true;
279
282
  }
280
283
  }
284
+ findUpdateDependent(componentId) {
285
+ return this.updateDependents?.find(c => c.isEqualWithoutVersion(componentId));
286
+ }
287
+ getUpdateDependentAsLaneComponent(componentId) {
288
+ const found = this.findUpdateDependent(componentId);
289
+ if (!found?.version) return undefined;
290
+ return {
291
+ id: found.changeVersion(undefined),
292
+ head: _objects().Ref.from(found.version)
293
+ };
294
+ }
281
295
  removeComponentFromUpdateDependentsIfExist(componentId) {
282
- const updateDependentsList = _componentId().ComponentIdList.fromArray(this.updateDependents || []);
283
- const exist = updateDependentsList.searchWithoutVersion(componentId);
284
- if (!exist) return;
285
- this.updateDependents = updateDependentsList.removeIfExist(exist);
286
- if (!this.updateDependents.length) this.updateDependents = undefined;
296
+ if (!this.findUpdateDependent(componentId)) return;
297
+ this.updateDependents = this.updateDependents?.filter(c => !c.isEqualWithoutVersion(componentId));
298
+ if (!this.updateDependents?.length) this.updateDependents = undefined;
287
299
  this.hasChanged = true;
288
300
  }
289
301
  addComponentToUpdateDependents(componentId) {
302
+ if (!componentId.hasVersion()) {
303
+ throw new (_legacyCli().ValidationError)(`Lane.addComponentToUpdateDependents: ${componentId.toString()} is missing a version`);
304
+ }
290
305
  this.removeComponentFromUpdateDependentsIfExist(componentId);
291
306
  (this.updateDependents ||= []).push(componentId);
292
307
  this.hasChanged = true;
293
308
  }
294
309
  removeAllUpdateDependents() {
295
- if (this.updateDependents?.length) return;
310
+ if (!this.updateDependents?.length) return;
296
311
  this.updateDependents = undefined;
297
312
  this.hasChanged = true;
298
313
  }
299
- shouldOverrideUpdateDependents() {
300
- return this.overrideUpdateDependents;
301
- }
302
314
  /**
303
- * !!! important !!!
304
- * this should get called only on a "temp lane", such as running "bit _snap", which the scope gets destroys after the
305
- * command is done. when _scope exports the lane, this "overrideUpdateDependents" is not saved to the remote-scope.
306
- *
307
- * on a user local lane object, this prop should never be true. otherwise, it'll override the remote-scope data.
315
+ * Signals an explicit `_snap --update-dependents` insertion. On export, the receiving scope
316
+ * gates its "add this new hidden entry" branch on this flag so a stale workspace lane can't
317
+ * resurrect entries the Cloud UI dropped. Workspace cascades which only update existing
318
+ * entries — deliberately do NOT set the flag. The field is also serialized by `Lane.toObject`
319
+ * for older remotes that gate their pre-diverge-check override branch on it.
308
320
  */
309
321
  setOverrideUpdateDependents(overrideUpdateDependents) {
310
322
  this.overrideUpdateDependents = overrideUpdateDependents;
311
323
  this.hasChanged = true;
312
324
  }
325
+ shouldOverrideUpdateDependents() {
326
+ return Boolean(this.overrideUpdateDependents);
327
+ }
313
328
  removeComponent(id) {
314
329
  const existsComponent = this.getComponent(id);
315
330
  if (!existsComponent) return false;
@@ -328,9 +343,11 @@ class Lane extends _objects().BitObject {
328
343
  setLaneComponents(laneComponents) {
329
344
  // this gets called when adding lane-components from other lanes/remotes, so it's better to
330
345
  // clone the objects to not change the original data.
331
- this.components = laneComponents.map(c => ({
346
+ this.components = laneComponents.map(c => _objectSpread({
332
347
  id: c.id.clone(),
333
348
  head: c.head.clone()
349
+ }, c.isDeleted && {
350
+ isDeleted: c.isDeleted
334
351
  }));
335
352
  this.hasChanged = true;
336
353
  }
@@ -420,9 +437,7 @@ class Lane extends _objects().BitObject {
420
437
  getCompHeadIncludeUpdateDependents(componentId) {
421
438
  const comp = this.getComponent(componentId);
422
439
  if (comp) return comp.head;
423
- const fromUpdateDependents = this.updateDependents?.find(c => c.isEqualWithoutVersion(componentId));
424
- if (fromUpdateDependents) return _objects().Ref.from(fromUpdateDependents.version);
425
- return undefined;
440
+ return this.getUpdateDependentAsLaneComponent(componentId)?.head;
426
441
  }
427
442
  validate() {
428
443
  const message = `unable to save Lane object "${this.id()}"`;
@@ -444,15 +459,24 @@ class Lane extends _objects().BitObject {
444
459
  }
445
460
  isEqual(lane) {
446
461
  if (this.id() !== lane.id()) return false;
447
- const thisComponents = this.toComponentIds().toStringArray().sort();
448
- const otherComponents = lane.toComponentIds().toStringArray().sort();
449
- return (0, _lodash().isEqual)(thisComponents, otherComponents);
462
+ // include isDeleted in equality so a soft-delete flip with the same head still counts as a
463
+ // state change — `Lane.isEqual` is used by importers to decide whether to write a
464
+ // LaneHistory entry.
465
+ const normalize = l => l.components.map(c => ({
466
+ id: c.id.toStringWithoutVersion(),
467
+ head: c.head.toString(),
468
+ isDeleted: Boolean(c.isDeleted)
469
+ })).sort((a, b) => `${a.id}@${a.head}:${a.isDeleted ? 1 : 0}`.localeCompare(`${b.id}@${b.head}:${b.isDeleted ? 1 : 0}`));
470
+ const thisUpdDeps = (this.updateDependents || []).map(c => c.toString()).sort();
471
+ const otherUpdDeps = (lane.updateDependents || []).map(c => c.toString()).sort();
472
+ return (0, _lodash().isEqual)(normalize(this), normalize(lane)) && (0, _lodash().isEqual)(thisUpdDeps, otherUpdDeps);
450
473
  }
451
474
  clone() {
452
475
  return new Lane(_objectSpread(_objectSpread({}, this), {}, {
453
476
  hash: this._hash,
454
477
  overrideUpdateDependents: this.overrideUpdateDependents,
455
- components: (0, _lodash().cloneDeep)(this.components)
478
+ components: (0, _lodash().cloneDeep)(this.components),
479
+ updateDependents: this.updateDependents ? (0, _lodash().cloneDeep)(this.updateDependents) : undefined
456
480
  }));
457
481
  }
458
482
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_uuid","data","require","_semver","_lodash","_bitError","_componentId","_componentVersion","_laneId","_legacy","_legacyCli","_legacy2","_legacy3","_toolboxCrypto","_component","_objects","_configStore","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","OLD_LANE_SCHEMA","SCHEMA_INCLUDING_DELETED_COMPONENTS_DATA","CURRENT_LANE_SCHEMA","Lane","BitObject","constructor","props","name","scope","components","log","date","Date","now","toString","_hash","hash","readmeComponent","forkedFrom","schema","updateDependents","overrideUpdateDependents","id","LANE_REMOTE_DELIMITER","Error","Ref","changeName","hasChanged","changeScope","refs","map","c","head","validateBeforePersisting","str","logger","debug","lane","parse","validate","toObject","obj","pickBy","component","fullName","isDeleted","val","from","create","bitCloudUser","username","getConfig","CFG_USER_NAME_KEY","email","CFG_USER_EMAIL_KEY","profileImage","sha1","v4","isNew","contents","laneObject","JSON","ComponentID","fromObject","LaneId","fromString","toBuffer","pretty","args","getStringifyArgs","stringify","validateBeforePersist","Buffer","addComponent","existsComponent","getComponent","isEqual","removeComponentFromUpdateDependentsIfExist","componentId","updateDependentsList","ComponentIdList","fromArray","exist","searchWithoutVersion","removeIfExist","undefined","addComponentToUpdateDependents","removeAllUpdateDependents","shouldOverrideUpdateDependents","setOverrideUpdateDependents","removeComponent","isEqualWithoutVersion","find","getComponentHead","bitId","found","setLaneComponents","laneComponents","clone","setReadmeComponent","previousReadme","isFullyMerged","unmerged","getMergedAndUnmergedIds","merged","Promise","all","modelComponent","getModelComponentIfExist","startTraverseFrom","getHead","headExist","hasVersionByRef","objects","toBitIds","toComponentIds","changeVersion","toComponentIdsIncludeUpdateDependents","concat","toLaneId","collectObjectsById","repo","headVersion","load","collect","includeDeletedData","gte","setSchemaToSupportDeletedData","setSchemaToNotSupportDeletedData","getCompHeadIncludeUpdateDependents","comp","fromUpdateDependents","version","message","bitIds","filterWithoutVersion","ValidationError","isSnap","toStringWithoutVersion","DEFAULT_LANE","BitError","PREVIOUS_DEFAULT_LANE","thisComponents","toStringArray","sort","otherComponents","cloneDeep","exports","default"],"sources":["lane.ts"],"sourcesContent":["import { v4 } from 'uuid';\nimport { gte } from 'semver';\nimport { cloneDeep, isEqual, pickBy } from 'lodash';\nimport { BitError } from '@teambit/bit-error';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { isSnap } from '@teambit/component-version';\nimport { LaneId, DEFAULT_LANE, LANE_REMOTE_DELIMITER } from '@teambit/lane-id';\nimport type { Scope } from '@teambit/legacy.scope';\nimport { CFG_USER_EMAIL_KEY, CFG_USER_NAME_KEY, PREVIOUS_DEFAULT_LANE } from '@teambit/legacy.constants';\nimport { ValidationError } from '@teambit/legacy.cli.error';\nimport { logger } from '@teambit/legacy.logger';\nimport { getStringifyArgs } from '@teambit/legacy.utils';\nimport { sha1 } from '@teambit/toolbox.crypto.sha1';\nimport { hasVersionByRef } from '@teambit/component.snap-distance';\nimport type { Repository } from '../objects';\nimport { BitObject, Ref } from '../objects';\nimport type Version from './version';\nimport { getConfig } from '@teambit/config-store';\n\nexport type Log = { date: string; username?: string; email?: string; profileImage?: string };\n\nexport type LaneProps = {\n name: string;\n scope: string;\n log: Log;\n components?: LaneComponent[];\n hash: string;\n schema?: string;\n readmeComponent?: LaneReadmeComponent;\n forkedFrom?: LaneId;\n updateDependents?: ComponentID[];\n overrideUpdateDependents?: boolean;\n};\n\nconst OLD_LANE_SCHEMA = '0.0.0';\nconst SCHEMA_INCLUDING_DELETED_COMPONENTS_DATA = '1.0.0';\nconst CURRENT_LANE_SCHEMA = SCHEMA_INCLUDING_DELETED_COMPONENTS_DATA;\n\nexport type LaneComponent = { id: ComponentID; head: Ref; isDeleted?: boolean };\nexport type LaneReadmeComponent = { id: ComponentID; head: Ref | null };\nexport default class Lane extends BitObject {\n name: string;\n scope: string;\n components: LaneComponent[];\n log: Log;\n schema: string;\n readmeComponent?: LaneReadmeComponent;\n forkedFrom?: LaneId;\n _hash: string; // reason for the underscore prefix is that we already have hash as a method\n isNew = false; // doesn't get saved in the object. only needed for in-memory instance\n hasChanged = false; // doesn't get saved in the object. only needed for in-memory instance\n /**\n * populated when a user clicks on \"update\" in the UI. it's a list of components that are dependents on the\n * components in the lane. their dependencies are updated according to the lane.\n * from the CLI perspective, it's added by \"bit _snap\" and merged by \"bit _merge-lane\".\n * otherwise, the user is not aware of it. it's not imported to the workspace and the objects are not fetched.\n */\n updateDependents?: ComponentID[];\n private overrideUpdateDependents?: boolean;\n constructor(props: LaneProps) {\n super();\n if (!props.name) throw new TypeError('Lane constructor expects to get a name parameter');\n this.name = props.name;\n this.scope = props.scope;\n this.components = props.components || [];\n this.log = props.log || { date: Date.now().toString() };\n this._hash = props.hash;\n this.readmeComponent = props.readmeComponent;\n this.forkedFrom = props.forkedFrom;\n this.schema = props.schema || OLD_LANE_SCHEMA;\n this.updateDependents = props.updateDependents;\n this.overrideUpdateDependents = props.overrideUpdateDependents;\n }\n id(): string {\n return this.scope + LANE_REMOTE_DELIMITER + this.name;\n }\n hash(): Ref {\n if (!this._hash) {\n throw new Error('hash is missing from a Lane object');\n }\n return new Ref(this._hash);\n }\n changeName(name: string) {\n this.name = name;\n this.hasChanged = true;\n }\n changeScope(scope: string) {\n this.scope = scope;\n this.hasChanged = true;\n }\n refs(): Ref[] {\n return this.components.map((c) => c.head);\n }\n validateBeforePersisting(str: string) {\n logger.debug(`validating lane object: ${this.hash().toString()} ${this.id()}`);\n const lane = Lane.parse(str, this.hash().toString());\n lane.validate();\n }\n toObject() {\n const obj = pickBy(\n {\n name: this.name,\n scope: this.scope,\n components: this.components.map((component) => ({\n id: { scope: component.id.scope, name: component.id.fullName },\n head: component.head.toString(),\n ...(component.isDeleted && { isDeleted: component.isDeleted }),\n })),\n log: this.log,\n readmeComponent: this.readmeComponent && {\n id: { scope: this.readmeComponent.id.scope, name: this.readmeComponent.id.fullName },\n head: this.readmeComponent.head?.toString() ?? null,\n },\n forkedFrom: this.forkedFrom && this.forkedFrom.toObject(),\n schema: this.schema,\n updateDependents: this.updateDependents?.map((c) => c.toString()),\n overrideUpdateDependents: this.overrideUpdateDependents,\n },\n (val) => !!val\n );\n return obj;\n }\n static from(props: LaneProps): Lane {\n return new Lane(props);\n }\n static create(\n name: string,\n scope: string,\n forkedFrom?: LaneId,\n bitCloudUser?: {\n username?: string;\n email?: string;\n profileImage?: string;\n }\n ) {\n const log = {\n date: Date.now().toString(),\n username: bitCloudUser?.username || getConfig(CFG_USER_NAME_KEY),\n email: bitCloudUser?.email || getConfig(CFG_USER_EMAIL_KEY),\n profileImage: bitCloudUser?.profileImage,\n };\n const lane = new Lane({ name, scope, hash: sha1(v4()), log, forkedFrom, schema: CURRENT_LANE_SCHEMA });\n lane.isNew = true;\n lane.hasChanged = true;\n return lane;\n }\n static parse(contents: string, hash: string): Lane {\n const laneObject = JSON.parse(contents);\n return Lane.from({\n name: laneObject.name,\n scope: laneObject.scope,\n log: laneObject.log,\n components: laneObject.components.map((component) => ({\n id: ComponentID.fromObject({ scope: component.id.scope, name: component.id.name }),\n head: new Ref(component.head),\n isDeleted: component.isDeleted,\n })),\n readmeComponent: laneObject.readmeComponent && {\n id: ComponentID.fromObject({\n scope: laneObject.readmeComponent.id.scope,\n name: laneObject.readmeComponent.id.name,\n }),\n head: laneObject.readmeComponent.head && new Ref(laneObject.readmeComponent.head),\n },\n forkedFrom: laneObject.forkedFrom && LaneId.from(laneObject.forkedFrom.name, laneObject.forkedFrom.scope),\n updateDependents: laneObject.updateDependents?.map((c) => ComponentID.fromString(c)),\n overrideUpdateDependents: laneObject.overrideUpdateDependents,\n hash: laneObject.hash || hash,\n schema: laneObject.schema,\n });\n }\n toBuffer(pretty?: boolean) {\n const args = getStringifyArgs(pretty);\n const obj = this.toObject();\n const str = JSON.stringify(obj, ...args);\n if (this.validateBeforePersist) this.validateBeforePersisting(str);\n return Buffer.from(str);\n }\n addComponent(component: LaneComponent) {\n const existsComponent = this.getComponent(component.id);\n if (existsComponent) {\n if (!existsComponent.head.isEqual(component.head)) this.hasChanged = true;\n existsComponent.id = component.id;\n existsComponent.head = component.head;\n existsComponent.isDeleted = component.isDeleted;\n } else {\n logger.debug(`Lane.addComponent, adding component ${component.id.toString()} to lane ${this.id()}`);\n this.components.push(component);\n this.hasChanged = true;\n }\n }\n removeComponentFromUpdateDependentsIfExist(componentId: ComponentID) {\n const updateDependentsList = ComponentIdList.fromArray(this.updateDependents || []);\n const exist = updateDependentsList.searchWithoutVersion(componentId);\n if (!exist) return;\n this.updateDependents = updateDependentsList.removeIfExist(exist);\n if (!this.updateDependents.length) this.updateDependents = undefined;\n this.hasChanged = true;\n }\n addComponentToUpdateDependents(componentId: ComponentID) {\n this.removeComponentFromUpdateDependentsIfExist(componentId);\n (this.updateDependents ||= []).push(componentId);\n this.hasChanged = true;\n }\n removeAllUpdateDependents() {\n if (this.updateDependents?.length) return;\n this.updateDependents = undefined;\n this.hasChanged = true;\n }\n shouldOverrideUpdateDependents() {\n return this.overrideUpdateDependents;\n }\n /**\n * !!! important !!!\n * this should get called only on a \"temp lane\", such as running \"bit _snap\", which the scope gets destroys after the\n * command is done. when _scope exports the lane, this \"overrideUpdateDependents\" is not saved to the remote-scope.\n *\n * on a user local lane object, this prop should never be true. otherwise, it'll override the remote-scope data.\n */\n setOverrideUpdateDependents(overrideUpdateDependents: boolean) {\n this.overrideUpdateDependents = overrideUpdateDependents;\n this.hasChanged = true;\n }\n\n removeComponent(id: ComponentID): boolean {\n const existsComponent = this.getComponent(id);\n if (!existsComponent) return false;\n this.components = this.components.filter((c) => !c.id.isEqualWithoutVersion(id));\n this.hasChanged = true;\n return true;\n }\n getComponent(id: ComponentID): LaneComponent | undefined {\n return this.components.find((c) => c.id.isEqualWithoutVersion(id));\n }\n getComponentHead(bitId: ComponentID): Ref | null {\n const found = this.components.find((c) => c.id.isEqual(bitId));\n if (found) return found.head;\n return null;\n }\n setLaneComponents(laneComponents: LaneComponent[]) {\n // this gets called when adding lane-components from other lanes/remotes, so it's better to\n // clone the objects to not change the original data.\n this.components = laneComponents.map((c) => ({ id: c.id.clone(), head: c.head.clone() }));\n this.hasChanged = true;\n }\n setReadmeComponent(id?: ComponentID) {\n const previousReadme = this.readmeComponent;\n if (!id) {\n this.readmeComponent = undefined;\n if (previousReadme) this.hasChanged = true;\n return;\n }\n const readmeComponent = this.getComponent(id);\n if (!readmeComponent) {\n this.readmeComponent = { id, head: null };\n } else {\n this.readmeComponent = readmeComponent;\n }\n if (\n !previousReadme ||\n !previousReadme.id.isEqual(id) ||\n previousReadme.head?.toString() !== this.readmeComponent.head?.toString()\n ) {\n this.hasChanged = true;\n }\n }\n\n async isFullyMerged(scope: Scope): Promise<boolean> {\n const { unmerged } = await this.getMergedAndUnmergedIds(scope);\n return unmerged.length === 0;\n }\n async getMergedAndUnmergedIds(scope: Scope): Promise<{ merged: ComponentID[]; unmerged: ComponentID[] }> {\n const merged: ComponentID[] = [];\n const unmerged: ComponentID[] = [];\n await Promise.all(\n this.components.map(async (component) => {\n const modelComponent = await scope.getModelComponentIfExist(component.id);\n if (!modelComponent) {\n unmerged.push(component.id);\n return;\n }\n const startTraverseFrom = modelComponent.getHead() || null; // it's important to have it as null and not as undefined, see hasVersionByRef\n const headExist = await hasVersionByRef(modelComponent, component.head, scope.objects, startTraverseFrom);\n if (headExist) merged.push(component.id);\n else unmerged.push(component.id);\n })\n );\n return { merged, unmerged };\n }\n /**\n * @deprecated use toComponentIds instead\n */\n toBitIds(): ComponentIdList {\n return this.toComponentIds();\n }\n toComponentIds(): ComponentIdList {\n return ComponentIdList.fromArray(this.components.map((c) => c.id.changeVersion(c.head.toString())));\n }\n toComponentIdsIncludeUpdateDependents(): ComponentIdList {\n return ComponentIdList.fromArray(this.toComponentIds().concat(this.updateDependents || []));\n }\n toLaneId() {\n return new LaneId({ scope: this.scope, name: this.name });\n }\n collectObjectsById(repo: Repository): Promise<Array<{ id: ComponentID; objects: BitObject[] }>> {\n return Promise.all(\n this.components.map(async (component) => {\n const headVersion = (await component.head.load(repo)) as Version;\n const objects = [headVersion, ...headVersion.collect(repo)];\n return { id: component.id, objects };\n })\n );\n }\n includeDeletedData(): boolean {\n return gte(this.schema, SCHEMA_INCLUDING_DELETED_COMPONENTS_DATA);\n }\n setSchemaToSupportDeletedData() {\n this.schema = SCHEMA_INCLUDING_DELETED_COMPONENTS_DATA;\n this.hasChanged = true;\n }\n setSchemaToNotSupportDeletedData() {\n this.schema = OLD_LANE_SCHEMA;\n this.hasChanged = true;\n }\n getCompHeadIncludeUpdateDependents(componentId: ComponentID): Ref | undefined {\n const comp = this.getComponent(componentId);\n if (comp) return comp.head;\n const fromUpdateDependents = this.updateDependents?.find((c) => c.isEqualWithoutVersion(componentId));\n if (fromUpdateDependents) return Ref.from(fromUpdateDependents.version);\n return undefined;\n }\n validate() {\n const message = `unable to save Lane object \"${this.id()}\"`;\n const bitIds = this.toComponentIds();\n this.components.forEach((component) => {\n if (bitIds.filterWithoutVersion(component.id).length > 1) {\n throw new ValidationError(`${message}, the following component is duplicated \"${component.id.fullName}\"`);\n }\n if (!isSnap(component.head.hash)) {\n throw new ValidationError(\n `${message}, lane component ${component.id.toStringWithoutVersion()} head should be a hash, got ${\n component.head.hash\n }`\n );\n }\n });\n if (this.name === DEFAULT_LANE) {\n throw new BitError(`${message}, this name is reserved as the default lane`);\n }\n if (this.name === PREVIOUS_DEFAULT_LANE) {\n throw new BitError(`${message}, this name is reserved as the old default lane`);\n }\n }\n isEqual(lane: Lane): boolean {\n if (this.id() !== lane.id()) return false;\n const thisComponents = this.toComponentIds().toStringArray().sort();\n const otherComponents = lane.toComponentIds().toStringArray().sort();\n return isEqual(thisComponents, otherComponents);\n }\n clone() {\n return new Lane({\n ...this,\n hash: this._hash,\n overrideUpdateDependents: this.overrideUpdateDependents,\n components: cloneDeep(this.components),\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_uuid","data","require","_semver","_lodash","_bitError","_componentId","_componentVersion","_laneId","_legacy","_legacyCli","_legacy2","_legacy3","_toolboxCrypto","_component","_objects","_configStore","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","OLD_LANE_SCHEMA","SCHEMA_INCLUDING_DELETED_COMPONENTS_DATA","CURRENT_LANE_SCHEMA","Lane","BitObject","constructor","props","name","scope","components","log","date","Date","now","toString","_hash","hash","readmeComponent","forkedFrom","schema","updateDependents","overrideUpdateDependents","id","LANE_REMOTE_DELIMITER","Error","Ref","changeName","hasChanged","changeScope","refs","map","c","head","validateBeforePersisting","str","logger","debug","lane","parse","validate","toObject","obj","pickBy","component","fullName","isDeleted","val","from","create","bitCloudUser","username","getConfig","CFG_USER_NAME_KEY","email","CFG_USER_EMAIL_KEY","profileImage","sha1","v4","isNew","contents","laneObject","JSON","ComponentID","fromObject","LaneId","fromString","toBuffer","pretty","args","getStringifyArgs","stringify","validateBeforePersist","Buffer","addComponent","existsComponent","getComponent","isEqual","Boolean","findUpdateDependent","componentId","find","isEqualWithoutVersion","getUpdateDependentAsLaneComponent","found","version","undefined","changeVersion","removeComponentFromUpdateDependentsIfExist","addComponentToUpdateDependents","hasVersion","ValidationError","removeAllUpdateDependents","setOverrideUpdateDependents","shouldOverrideUpdateDependents","removeComponent","getComponentHead","bitId","setLaneComponents","laneComponents","clone","setReadmeComponent","previousReadme","isFullyMerged","unmerged","getMergedAndUnmergedIds","merged","Promise","all","modelComponent","getModelComponentIfExist","startTraverseFrom","getHead","headExist","hasVersionByRef","objects","toBitIds","toComponentIds","ComponentIdList","fromArray","toComponentIdsIncludeUpdateDependents","concat","toLaneId","collectObjectsById","repo","headVersion","load","collect","includeDeletedData","gte","setSchemaToSupportDeletedData","setSchemaToNotSupportDeletedData","getCompHeadIncludeUpdateDependents","comp","message","bitIds","filterWithoutVersion","isSnap","toStringWithoutVersion","DEFAULT_LANE","BitError","PREVIOUS_DEFAULT_LANE","normalize","l","sort","a","b","localeCompare","thisUpdDeps","otherUpdDeps","cloneDeep","exports","default"],"sources":["lane.ts"],"sourcesContent":["import { v4 } from 'uuid';\nimport { gte } from 'semver';\nimport { cloneDeep, isEqual, pickBy } from 'lodash';\nimport { BitError } from '@teambit/bit-error';\nimport { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport { isSnap } from '@teambit/component-version';\nimport { LaneId, DEFAULT_LANE, LANE_REMOTE_DELIMITER } from '@teambit/lane-id';\nimport type { Scope } from '@teambit/legacy.scope';\nimport { CFG_USER_EMAIL_KEY, CFG_USER_NAME_KEY, PREVIOUS_DEFAULT_LANE } from '@teambit/legacy.constants';\nimport { ValidationError } from '@teambit/legacy.cli.error';\nimport { logger } from '@teambit/legacy.logger';\nimport { getStringifyArgs } from '@teambit/legacy.utils';\nimport { sha1 } from '@teambit/toolbox.crypto.sha1';\nimport { hasVersionByRef } from '@teambit/component.snap-distance';\nimport type { Repository } from '../objects';\nimport { BitObject, Ref } from '../objects';\nimport type Version from './version';\nimport { getConfig } from '@teambit/config-store';\n\nexport type Log = { date: string; username?: string; email?: string; profileImage?: string };\n\nexport type LaneProps = {\n name: string;\n scope: string;\n log: Log;\n components?: LaneComponent[];\n hash: string;\n schema?: string;\n readmeComponent?: LaneReadmeComponent;\n forkedFrom?: LaneId;\n updateDependents?: ComponentID[];\n overrideUpdateDependents?: boolean;\n};\n\nconst OLD_LANE_SCHEMA = '0.0.0';\nconst SCHEMA_INCLUDING_DELETED_COMPONENTS_DATA = '1.0.0';\nconst CURRENT_LANE_SCHEMA = SCHEMA_INCLUDING_DELETED_COMPONENTS_DATA;\n\nexport type LaneComponent = { id: ComponentID; head: Ref; isDeleted?: boolean };\nexport type LaneReadmeComponent = { id: ComponentID; head: Ref | null };\nexport default class Lane extends BitObject {\n name: string;\n scope: string;\n components: LaneComponent[];\n log: Log;\n schema: string;\n readmeComponent?: LaneReadmeComponent;\n forkedFrom?: LaneId;\n _hash: string; // reason for the underscore prefix is that we already have hash as a method\n isNew = false; // doesn't get saved in the object. only needed for in-memory instance\n hasChanged = false; // doesn't get saved in the object. only needed for in-memory instance\n /**\n * components that are dependents of components in the lane and need to be re-snapped against the\n * lane's heads. populated by the bare-scope cascade producer (UI \"snap updates\" / `bit _snap`)\n * and by `bit _merge-lane`. these entries are part of the lane's graph (Ripple CI builds them,\n * merge engine refreshes them) but are intentionally hidden from workspace-facing flows\n * (`bit status`, `bit compile`, `bit install`, the bitmap).\n */\n updateDependents?: ComponentID[];\n private overrideUpdateDependents?: boolean;\n constructor(props: LaneProps) {\n super();\n if (!props.name) throw new TypeError('Lane constructor expects to get a name parameter');\n this.name = props.name;\n this.scope = props.scope;\n this.components = props.components || [];\n this.log = props.log || { date: Date.now().toString() };\n this._hash = props.hash;\n this.readmeComponent = props.readmeComponent;\n this.forkedFrom = props.forkedFrom;\n this.schema = props.schema || OLD_LANE_SCHEMA;\n this.updateDependents = props.updateDependents;\n this.overrideUpdateDependents = props.overrideUpdateDependents;\n }\n id(): string {\n return this.scope + LANE_REMOTE_DELIMITER + this.name;\n }\n hash(): Ref {\n if (!this._hash) {\n throw new Error('hash is missing from a Lane object');\n }\n return new Ref(this._hash);\n }\n changeName(name: string) {\n this.name = name;\n this.hasChanged = true;\n }\n changeScope(scope: string) {\n this.scope = scope;\n this.hasChanged = true;\n }\n refs(): Ref[] {\n return this.components.map((c) => c.head);\n }\n validateBeforePersisting(str: string) {\n logger.debug(`validating lane object: ${this.hash().toString()} ${this.id()}`);\n const lane = Lane.parse(str, this.hash().toString());\n lane.validate();\n }\n toObject() {\n const obj = pickBy(\n {\n name: this.name,\n scope: this.scope,\n components: this.components.map((component) => ({\n id: { scope: component.id.scope, name: component.id.fullName },\n head: component.head.toString(),\n ...(component.isDeleted && { isDeleted: component.isDeleted }),\n })),\n log: this.log,\n readmeComponent: this.readmeComponent && {\n id: { scope: this.readmeComponent.id.scope, name: this.readmeComponent.id.fullName },\n head: this.readmeComponent.head?.toString() ?? null,\n },\n forkedFrom: this.forkedFrom && this.forkedFrom.toObject(),\n schema: this.schema,\n updateDependents: this.updateDependents?.map((c) => c.toString()),\n overrideUpdateDependents: this.overrideUpdateDependents,\n },\n (val) => !!val\n );\n return obj;\n }\n static from(props: LaneProps): Lane {\n return new Lane(props);\n }\n static create(\n name: string,\n scope: string,\n forkedFrom?: LaneId,\n bitCloudUser?: {\n username?: string;\n email?: string;\n profileImage?: string;\n }\n ) {\n const log = {\n date: Date.now().toString(),\n username: bitCloudUser?.username || getConfig(CFG_USER_NAME_KEY),\n email: bitCloudUser?.email || getConfig(CFG_USER_EMAIL_KEY),\n profileImage: bitCloudUser?.profileImage,\n };\n const lane = new Lane({ name, scope, hash: sha1(v4()), log, forkedFrom, schema: CURRENT_LANE_SCHEMA });\n lane.isNew = true;\n lane.hasChanged = true;\n return lane;\n }\n static parse(contents: string, hash: string): Lane {\n const laneObject = JSON.parse(contents);\n return Lane.from({\n name: laneObject.name,\n scope: laneObject.scope,\n log: laneObject.log,\n components: laneObject.components.map((component) => ({\n id: ComponentID.fromObject({ scope: component.id.scope, name: component.id.name }),\n head: new Ref(component.head),\n isDeleted: component.isDeleted,\n })),\n readmeComponent: laneObject.readmeComponent && {\n id: ComponentID.fromObject({\n scope: laneObject.readmeComponent.id.scope,\n name: laneObject.readmeComponent.id.name,\n }),\n head: laneObject.readmeComponent.head && new Ref(laneObject.readmeComponent.head),\n },\n forkedFrom: laneObject.forkedFrom && LaneId.from(laneObject.forkedFrom.name, laneObject.forkedFrom.scope),\n updateDependents: laneObject.updateDependents?.map((c) => ComponentID.fromString(c)),\n overrideUpdateDependents: laneObject.overrideUpdateDependents,\n hash: laneObject.hash || hash,\n schema: laneObject.schema,\n });\n }\n toBuffer(pretty?: boolean) {\n const args = getStringifyArgs(pretty);\n const obj = this.toObject();\n const str = JSON.stringify(obj, ...args);\n if (this.validateBeforePersist) this.validateBeforePersisting(str);\n return Buffer.from(str);\n }\n addComponent(component: LaneComponent) {\n const existsComponent = this.getComponent(component.id);\n if (existsComponent) {\n if (\n !existsComponent.head.isEqual(component.head) ||\n Boolean(existsComponent.isDeleted) !== Boolean(component.isDeleted)\n ) {\n this.hasChanged = true;\n }\n existsComponent.id = component.id;\n existsComponent.head = component.head;\n existsComponent.isDeleted = component.isDeleted;\n } else {\n logger.debug(`Lane.addComponent, adding component ${component.id.toString()} to lane ${this.id()}`);\n this.components.push(component);\n this.hasChanged = true;\n }\n }\n findUpdateDependent(componentId: ComponentID): ComponentID | undefined {\n return this.updateDependents?.find((c) => c.isEqualWithoutVersion(componentId));\n }\n getUpdateDependentAsLaneComponent(componentId: ComponentID): LaneComponent | undefined {\n const found = this.findUpdateDependent(componentId);\n if (!found?.version) return undefined;\n return { id: found.changeVersion(undefined), head: Ref.from(found.version) };\n }\n removeComponentFromUpdateDependentsIfExist(componentId: ComponentID) {\n if (!this.findUpdateDependent(componentId)) return;\n this.updateDependents = this.updateDependents?.filter((c) => !c.isEqualWithoutVersion(componentId));\n if (!this.updateDependents?.length) this.updateDependents = undefined;\n this.hasChanged = true;\n }\n addComponentToUpdateDependents(componentId: ComponentID) {\n if (!componentId.hasVersion()) {\n throw new ValidationError(`Lane.addComponentToUpdateDependents: ${componentId.toString()} is missing a version`);\n }\n this.removeComponentFromUpdateDependentsIfExist(componentId);\n (this.updateDependents ||= []).push(componentId);\n this.hasChanged = true;\n }\n removeAllUpdateDependents() {\n if (!this.updateDependents?.length) return;\n this.updateDependents = undefined;\n this.hasChanged = true;\n }\n /**\n * Signals an explicit `_snap --update-dependents` insertion. On export, the receiving scope\n * gates its \"add this new hidden entry\" branch on this flag so a stale workspace lane can't\n * resurrect entries the Cloud UI dropped. Workspace cascades — which only update existing\n * entries — deliberately do NOT set the flag. The field is also serialized by `Lane.toObject`\n * for older remotes that gate their pre-diverge-check override branch on it.\n */\n setOverrideUpdateDependents(overrideUpdateDependents: boolean) {\n this.overrideUpdateDependents = overrideUpdateDependents;\n this.hasChanged = true;\n }\n\n shouldOverrideUpdateDependents(): boolean {\n return Boolean(this.overrideUpdateDependents);\n }\n\n removeComponent(id: ComponentID): boolean {\n const existsComponent = this.getComponent(id);\n if (!existsComponent) return false;\n this.components = this.components.filter((c) => !c.id.isEqualWithoutVersion(id));\n this.hasChanged = true;\n return true;\n }\n getComponent(id: ComponentID): LaneComponent | undefined {\n return this.components.find((c) => c.id.isEqualWithoutVersion(id));\n }\n getComponentHead(bitId: ComponentID): Ref | null {\n const found = this.components.find((c) => c.id.isEqual(bitId));\n if (found) return found.head;\n return null;\n }\n setLaneComponents(laneComponents: LaneComponent[]) {\n // this gets called when adding lane-components from other lanes/remotes, so it's better to\n // clone the objects to not change the original data.\n this.components = laneComponents.map((c) => ({\n id: c.id.clone(),\n head: c.head.clone(),\n ...(c.isDeleted && { isDeleted: c.isDeleted }),\n }));\n this.hasChanged = true;\n }\n setReadmeComponent(id?: ComponentID) {\n const previousReadme = this.readmeComponent;\n if (!id) {\n this.readmeComponent = undefined;\n if (previousReadme) this.hasChanged = true;\n return;\n }\n const readmeComponent = this.getComponent(id);\n if (!readmeComponent) {\n this.readmeComponent = { id, head: null };\n } else {\n this.readmeComponent = readmeComponent;\n }\n if (\n !previousReadme ||\n !previousReadme.id.isEqual(id) ||\n previousReadme.head?.toString() !== this.readmeComponent.head?.toString()\n ) {\n this.hasChanged = true;\n }\n }\n\n async isFullyMerged(scope: Scope): Promise<boolean> {\n const { unmerged } = await this.getMergedAndUnmergedIds(scope);\n return unmerged.length === 0;\n }\n async getMergedAndUnmergedIds(scope: Scope): Promise<{ merged: ComponentID[]; unmerged: ComponentID[] }> {\n const merged: ComponentID[] = [];\n const unmerged: ComponentID[] = [];\n await Promise.all(\n this.components.map(async (component) => {\n const modelComponent = await scope.getModelComponentIfExist(component.id);\n if (!modelComponent) {\n unmerged.push(component.id);\n return;\n }\n const startTraverseFrom = modelComponent.getHead() || null; // it's important to have it as null and not as undefined, see hasVersionByRef\n const headExist = await hasVersionByRef(modelComponent, component.head, scope.objects, startTraverseFrom);\n if (headExist) merged.push(component.id);\n else unmerged.push(component.id);\n })\n );\n return { merged, unmerged };\n }\n /**\n * @deprecated use toComponentIds instead\n */\n toBitIds(): ComponentIdList {\n return this.toComponentIds();\n }\n toComponentIds(): ComponentIdList {\n return ComponentIdList.fromArray(this.components.map((c) => c.id.changeVersion(c.head.toString())));\n }\n toComponentIdsIncludeUpdateDependents(): ComponentIdList {\n return ComponentIdList.fromArray(this.toComponentIds().concat(this.updateDependents || []));\n }\n toLaneId() {\n return new LaneId({ scope: this.scope, name: this.name });\n }\n collectObjectsById(repo: Repository): Promise<Array<{ id: ComponentID; objects: BitObject[] }>> {\n return Promise.all(\n this.components.map(async (component) => {\n const headVersion = (await component.head.load(repo)) as Version;\n const objects = [headVersion, ...headVersion.collect(repo)];\n return { id: component.id, objects };\n })\n );\n }\n includeDeletedData(): boolean {\n return gte(this.schema, SCHEMA_INCLUDING_DELETED_COMPONENTS_DATA);\n }\n setSchemaToSupportDeletedData() {\n this.schema = SCHEMA_INCLUDING_DELETED_COMPONENTS_DATA;\n this.hasChanged = true;\n }\n setSchemaToNotSupportDeletedData() {\n this.schema = OLD_LANE_SCHEMA;\n this.hasChanged = true;\n }\n getCompHeadIncludeUpdateDependents(componentId: ComponentID): Ref | undefined {\n const comp = this.getComponent(componentId);\n if (comp) return comp.head;\n return this.getUpdateDependentAsLaneComponent(componentId)?.head;\n }\n validate() {\n const message = `unable to save Lane object \"${this.id()}\"`;\n const bitIds = this.toComponentIds();\n this.components.forEach((component) => {\n if (bitIds.filterWithoutVersion(component.id).length > 1) {\n throw new ValidationError(`${message}, the following component is duplicated \"${component.id.fullName}\"`);\n }\n if (!isSnap(component.head.hash)) {\n throw new ValidationError(\n `${message}, lane component ${component.id.toStringWithoutVersion()} head should be a hash, got ${\n component.head.hash\n }`\n );\n }\n });\n if (this.name === DEFAULT_LANE) {\n throw new BitError(`${message}, this name is reserved as the default lane`);\n }\n if (this.name === PREVIOUS_DEFAULT_LANE) {\n throw new BitError(`${message}, this name is reserved as the old default lane`);\n }\n }\n isEqual(lane: Lane): boolean {\n if (this.id() !== lane.id()) return false;\n // include isDeleted in equality so a soft-delete flip with the same head still counts as a\n // state change — `Lane.isEqual` is used by importers to decide whether to write a\n // LaneHistory entry.\n const normalize = (l: Lane) =>\n l.components\n .map((c) => ({\n id: c.id.toStringWithoutVersion(),\n head: c.head.toString(),\n isDeleted: Boolean(c.isDeleted),\n }))\n .sort((a, b) =>\n `${a.id}@${a.head}:${a.isDeleted ? 1 : 0}`.localeCompare(`${b.id}@${b.head}:${b.isDeleted ? 1 : 0}`)\n );\n const thisUpdDeps = (this.updateDependents || []).map((c) => c.toString()).sort();\n const otherUpdDeps = (lane.updateDependents || []).map((c) => c.toString()).sort();\n return isEqual(normalize(this), normalize(lane)) && isEqual(thisUpdDeps, otherUpdDeps);\n }\n clone() {\n return new Lane({\n ...this,\n hash: this._hash,\n overrideUpdateDependents: this.overrideUpdateDependents,\n components: cloneDeep(this.components),\n updateDependents: this.updateDependents ? cloneDeep(this.updateDependents) : undefined,\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -258,6 +258,11 @@ export default class Component extends BitObject {
258
258
  * if no "specificVersion" is given, it returns according to the head
259
259
  */
260
260
  isDeprecated(repo: Repository, specificVersion?: string): Promise<boolean | null>;
261
+ /**
262
+ * whether the head is marked as internal. internal components are still versioned and exported,
263
+ * but are hidden by default in the UI (workspace, scope and Bit Cloud).
264
+ */
265
+ isInternal(repo: Repository): Promise<boolean | null>;
261
266
  isRemoved(repo: Repository, specificVersion?: string): Promise<boolean | null>;
262
267
  isLaneReadmeOf(repo: Repository): Promise<string[]>;
263
268
  /**
@@ -280,8 +285,21 @@ export default class Component extends BitObject {
280
285
  */
281
286
  getLocalVersions(): string[];
282
287
  hasLocalTag(tag: string): boolean;
283
- getLocalTagsOrHashes(repo: Repository, workspaceId?: ComponentID): Promise<string[]>;
284
- getLocalHashes(repo: Repository, workspaceId?: ComponentID): Promise<Ref[]>;
288
+ getLocalTagsOrHashes(repo: Repository, workspaceId?: ComponentID, lane?: Lane): Promise<string[]>;
289
+ /**
290
+ * Raw divergence (`snapsOnSourceOnly`). When `lane` is provided, applies the lean-lane filter:
291
+ * drops refs whose Version is main-origin. Those refs already live on the component's home
292
+ * scope (and on the destination too in the same-scope case), so `bit export` shouldn't be
293
+ * re-pushing them. Pass `lane` from status/export/reset to share the same "what's actually
294
+ * local on this lane" view.
295
+ *
296
+ * The lane's recorded head for this component is always kept, even if it's main-origin — the
297
+ * lane object references it and the destination scope must be able to resolve the hash. Versions
298
+ * marked `squashed` or `unrelated` are kept as well — they're locally-mutated and the
299
+ * destination needs them to reconstruct the lane history.
300
+ */
301
+ getLocalHashes(repo: Repository, workspaceId?: ComponentID, lane?: Lane): Promise<Ref[]>;
302
+ private filterLeanLaneRefs;
285
303
  /**
286
304
  * for most cases, use `isLocallyChanged`, which takes into account lanes.
287
305
  * this is for cases when we only care about the versions exist in the `state` prop.