@teambit/objects 0.0.0-e3cd688a6d951b041e2c8a696dde85dbff77f871 → 0.0.0-e3cf7f3d7781c10c64c41c87ea7fd04ceaec8da3

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.
@@ -33,7 +33,8 @@ export declare class LaneHistory extends BitObject {
33
33
  toBuffer(pretty: any): Buffer;
34
34
  getHistory(): History;
35
35
  getHistoryIds(): string[];
36
- addHistory(laneObj: Lane, msg?: string): Promise<void>;
36
+ addHistory(laneObj: Lane, msg?: string, historyKey?: string): Promise<void>;
37
+ removeHistoryEntries(keys: string[]): void;
37
38
  merge(laneHistory: LaneHistory): void;
38
39
  static create(name: string, scope: string, laneHash: string): LaneHistory;
39
40
  static parse(contents: string): LaneHistory;
@@ -81,18 +81,23 @@ class LaneHistory extends _objects().BitObject {
81
81
  getHistoryIds() {
82
82
  return Object.entries(this.history).sort(([, a], [, b]) => Number(a.log.date) - Number(b.log.date)).map(([id]) => id);
83
83
  }
84
- async addHistory(laneObj, msg) {
84
+ async addHistory(laneObj, msg, historyKey) {
85
85
  const log = await (0, _harmonyModules().getBasicLog)();
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[(0, _uuid().v4)()] = _objectSpread({
89
+ this.history[historyKey || (0, _uuid().v4)()] = _objectSpread({
90
90
  log,
91
91
  components
92
92
  }, deleted.length && {
93
93
  deleted
94
94
  });
95
95
  }
96
+ removeHistoryEntries(keys) {
97
+ for (const key of keys) {
98
+ delete this.history[key];
99
+ }
100
+ }
96
101
  merge(laneHistory) {
97
102
  this.history = _objectSpread(_objectSpread({}, this.history), laneHistory.history);
98
103
  }
@@ -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","getBasicLog","message","components","toComponentIds","toStringArray","deleted","c","isDeleted","changeVersion","head","v4","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) {\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[v4()] = { log, components, ...(deleted.length && { deleted }) };\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","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":[]}
@@ -88,10 +88,17 @@ export default class Lane extends BitObject {
88
88
  shouldOverrideUpdateDependents(): boolean | undefined;
89
89
  /**
90
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.
91
+ * this flag is a one-shot instruction to the next export: "I've rewritten updateDependents
92
+ * locally push them as-is instead of treating them as unchanged". Two callers are allowed to
93
+ * persist it on a local lane:
94
+ * - bare-scope `bit _snap --update-dependents` (the scope is destroyed after the command)
95
+ * - workspace `bit snap` when it cascades updateDependents via `includeUpdateDependentsInSnap`
96
+ * In the workspace case, `updateLanesAfterExport` clears the flag immediately after a successful
97
+ * export, so the lane is never left in the "override" state once a push has synced with the
98
+ * remote. The flag is never serialized to the remote-scope (see the toObject/parse pair).
93
99
  *
94
- * on a user local lane object, this prop should never be true. otherwise, it'll override the remote-scope data.
100
+ * Do NOT leave it set without following up with an export otherwise, a later fetch could
101
+ * surprise callers by treating stale local state as authoritative.
95
102
  */
96
103
  setOverrideUpdateDependents(overrideUpdateDependents: boolean): void;
97
104
  removeComponent(id: ComponentID): boolean;
@@ -301,10 +301,17 @@ class Lane extends _objects().BitObject {
301
301
  }
302
302
  /**
303
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.
304
+ * this flag is a one-shot instruction to the next export: "I've rewritten updateDependents
305
+ * locally push them as-is instead of treating them as unchanged". Two callers are allowed to
306
+ * persist it on a local lane:
307
+ * - bare-scope `bit _snap --update-dependents` (the scope is destroyed after the command)
308
+ * - workspace `bit snap` when it cascades updateDependents via `includeUpdateDependentsInSnap`
309
+ * In the workspace case, `updateLanesAfterExport` clears the flag immediately after a successful
310
+ * export, so the lane is never left in the "override" state once a push has synced with the
311
+ * remote. The flag is never serialized to the remote-scope (see the toObject/parse pair).
306
312
  *
307
- * on a user local lane object, this prop should never be true. otherwise, it'll override the remote-scope data.
313
+ * Do NOT leave it set without following up with an export otherwise, a later fetch could
314
+ * surprise callers by treating stale local state as authoritative.
308
315
  */
309
316
  setOverrideUpdateDependents(overrideUpdateDependents) {
310
317
  this.overrideUpdateDependents = overrideUpdateDependents;
@@ -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","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 flag is a one-shot instruction to the next export: \"I've rewritten updateDependents\n * locally — push them as-is instead of treating them as unchanged\". Two callers are allowed to\n * persist it on a local lane:\n * - bare-scope `bit _snap --update-dependents` (the scope is destroyed after the command)\n * - workspace `bit snap` when it cascades updateDependents via `includeUpdateDependentsInSnap`\n * In the workspace case, `updateLanesAfterExport` clears the flag immediately after a successful\n * export, so the lane is never left in the \"override\" state once a push has synced with the\n * remote. The flag is never serialized to the remote-scope (see the toObject/parse pair).\n *\n * Do NOT leave it set without following up with an export — otherwise, a later fetch could\n * surprise callers by treating stale local state as authoritative.\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":";;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,QAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,OAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,QAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,OAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,UAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,SAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,aAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,YAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,kBAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,iBAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,QAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,OAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAQ,QAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,OAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAS,WAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,UAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAU,SAAA;EAAA,MAAAV,IAAA,GAAAC,OAAA;EAAAS,QAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAW,SAAA;EAAA,MAAAX,IAAA,GAAAC,OAAA;EAAAU,QAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAY,eAAA;EAAA,MAAAZ,IAAA,GAAAC,OAAA;EAAAW,cAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAa,WAAA;EAAA,MAAAb,IAAA,GAAAC,OAAA;EAAAY,UAAA,YAAAA,CAAA;IAAA,OAAAb,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAc,SAAA;EAAA,MAAAd,IAAA,GAAAC,OAAA;EAAAa,QAAA,YAAAA,CAAA;IAAA,OAAAd,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAe,aAAA;EAAA,MAAAf,IAAA,GAAAC,OAAA;EAAAc,YAAA,YAAAA,CAAA;IAAA,OAAAf,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAkD,SAAAgB,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAAA,SAAAgB,gBAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAD,CAAA,GAAAG,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAAvB,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAoB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA3B,CAAA,QAAAwB,CAAA,GAAAxB,CAAA,CAAA4B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA;AAiBlD,MAAM8B,eAAe,GAAG,OAAO;AAC/B,MAAMC,wCAAwC,GAAG,OAAO;AACxD,MAAMC,mBAAmB,GAAGD,wCAAwC;AAIrD,MAAME,IAAI,SAASC,oBAAS,CAAC;EAmB1CC,WAAWA,CAACC,KAAgB,EAAE;IAC5B,KAAK,CAAC,CAAC;IAACtB,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAZK;IAAAA,eAAA,gBACP,KAAK;IAAE;IAAAA,eAAA,qBACF,KAAK;IAAE;IACpB;AACF;AACA;AACA;AACA;AACA;IALEA,eAAA;IAAAA,eAAA;IAUE,IAAI,CAACsB,KAAK,CAACC,IAAI,EAAE,MAAM,IAAIV,SAAS,CAAC,kDAAkD,CAAC;IACxF,IAAI,CAACU,IAAI,GAAGD,KAAK,CAACC,IAAI;IACtB,IAAI,CAACC,KAAK,GAAGF,KAAK,CAACE,KAAK;IACxB,IAAI,CAACC,UAAU,GAAGH,KAAK,CAACG,UAAU,IAAI,EAAE;IACxC,IAAI,CAACC,GAAG,GAAGJ,KAAK,CAACI,GAAG,IAAI;MAAEC,IAAI,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC;IAAE,CAAC;IACvD,IAAI,CAACC,KAAK,GAAGT,KAAK,CAACU,IAAI;IACvB,IAAI,CAACC,eAAe,GAAGX,KAAK,CAACW,eAAe;IAC5C,IAAI,CAACC,UAAU,GAAGZ,KAAK,CAACY,UAAU;IAClC,IAAI,CAACC,MAAM,GAAGb,KAAK,CAACa,MAAM,IAAInB,eAAe;IAC7C,IAAI,CAACoB,gBAAgB,GAAGd,KAAK,CAACc,gBAAgB;IAC9C,IAAI,CAACC,wBAAwB,GAAGf,KAAK,CAACe,wBAAwB;EAChE;EACAC,EAAEA,CAAA,EAAW;IACX,OAAO,IAAI,CAACd,KAAK,GAAGe,+BAAqB,GAAG,IAAI,CAAChB,IAAI;EACvD;EACAS,IAAIA,CAAA,EAAQ;IACV,IAAI,CAAC,IAAI,CAACD,KAAK,EAAE;MACf,MAAM,IAAIS,KAAK,CAAC,oCAAoC,CAAC;IACvD;IACA,OAAO,KAAIC,cAAG,EAAC,IAAI,CAACV,KAAK,CAAC;EAC5B;EACAW,UAAUA,CAACnB,IAAY,EAAE;IACvB,IAAI,CAACA,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACoB,UAAU,GAAG,IAAI;EACxB;EACAC,WAAWA,CAACpB,KAAa,EAAE;IACzB,IAAI,CAACA,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACmB,UAAU,GAAG,IAAI;EACxB;EACAE,IAAIA,CAAA,EAAU;IACZ,OAAO,IAAI,CAACpB,UAAU,CAACqB,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,IAAI,CAAC;EAC3C;EACAC,wBAAwBA,CAACC,GAAW,EAAE;IACpCC,iBAAM,CAACC,KAAK,CAAC,2BAA2B,IAAI,CAACpB,IAAI,CAAC,CAAC,CAACF,QAAQ,CAAC,CAAC,IAAI,IAAI,CAACQ,EAAE,CAAC,CAAC,EAAE,CAAC;IAC9E,MAAMe,IAAI,GAAGlC,IAAI,CAACmC,KAAK,CAACJ,GAAG,EAAE,IAAI,CAAClB,IAAI,CAAC,CAAC,CAACF,QAAQ,CAAC,CAAC,CAAC;IACpDuB,IAAI,CAACE,QAAQ,CAAC,CAAC;EACjB;EACAC,QAAQA,CAAA,EAAG;IACT,MAAMC,GAAG,GAAG,IAAAC,gBAAM,EAChB;MACEnC,IAAI,EAAE,IAAI,CAACA,IAAI;MACfC,KAAK,EAAE,IAAI,CAACA,KAAK;MACjBC,UAAU,EAAE,IAAI,CAACA,UAAU,CAACqB,GAAG,CAAEa,SAAS,IAAA/D,aAAA;QACxC0C,EAAE,EAAE;UAAEd,KAAK,EAAEmC,SAAS,CAACrB,EAAE,CAACd,KAAK;UAAED,IAAI,EAAEoC,SAAS,CAACrB,EAAE,CAACsB;QAAS,CAAC;QAC9DZ,IAAI,EAAEW,SAAS,CAACX,IAAI,CAAClB,QAAQ,CAAC;MAAC,GAC3B6B,SAAS,CAACE,SAAS,IAAI;QAAEA,SAAS,EAAEF,SAAS,CAACE;MAAU,CAAC,CAC7D,CAAC;MACHnC,GAAG,EAAE,IAAI,CAACA,GAAG;MACbO,eAAe,EAAE,IAAI,CAACA,eAAe,IAAI;QACvCK,EAAE,EAAE;UAAEd,KAAK,EAAE,IAAI,CAACS,eAAe,CAACK,EAAE,CAACd,KAAK;UAAED,IAAI,EAAE,IAAI,CAACU,eAAe,CAACK,EAAE,CAACsB;QAAS,CAAC;QACpFZ,IAAI,EAAE,IAAI,CAACf,eAAe,CAACe,IAAI,EAAElB,QAAQ,CAAC,CAAC,IAAI;MACjD,CAAC;MACDI,UAAU,EAAE,IAAI,CAACA,UAAU,IAAI,IAAI,CAACA,UAAU,CAACsB,QAAQ,CAAC,CAAC;MACzDrB,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBC,gBAAgB,EAAE,IAAI,CAACA,gBAAgB,EAAEU,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACjB,QAAQ,CAAC,CAAC,CAAC;MACjEO,wBAAwB,EAAE,IAAI,CAACA;IACjC,CAAC,EACAyB,GAAG,IAAK,CAAC,CAACA,GACb,CAAC;IACD,OAAOL,GAAG;EACZ;EACA,OAAOM,IAAIA,CAACzC,KAAgB,EAAQ;IAClC,OAAO,IAAIH,IAAI,CAACG,KAAK,CAAC;EACxB;EACA,OAAO0C,MAAMA,CACXzC,IAAY,EACZC,KAAa,EACbU,UAAmB,EACnB+B,YAIC,EACD;IACA,MAAMvC,GAAG,GAAG;MACVC,IAAI,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;MAC3BoC,QAAQ,EAAED,YAAY,EAAEC,QAAQ,IAAI,IAAAC,wBAAS,EAACC,2BAAiB,CAAC;MAChEC,KAAK,EAAEJ,YAAY,EAAEI,KAAK,IAAI,IAAAF,wBAAS,EAACG,4BAAkB,CAAC;MAC3DC,YAAY,EAAEN,YAAY,EAAEM;IAC9B,CAAC;IACD,MAAMlB,IAAI,GAAG,IAAIlC,IAAI,CAAC;MAAEI,IAAI;MAAEC,KAAK;MAAEQ,IAAI,EAAE,IAAAwC,qBAAI,EAAC,IAAAC,UAAE,EAAC,CAAC,CAAC;MAAE/C,GAAG;MAAEQ,UAAU;MAAEC,MAAM,EAAEjB;IAAoB,CAAC,CAAC;IACtGmC,IAAI,CAACqB,KAAK,GAAG,IAAI;IACjBrB,IAAI,CAACV,UAAU,GAAG,IAAI;IACtB,OAAOU,IAAI;EACb;EACA,OAAOC,KAAKA,CAACqB,QAAgB,EAAE3C,IAAY,EAAQ;IACjD,MAAM4C,UAAU,GAAGC,IAAI,CAACvB,KAAK,CAACqB,QAAQ,CAAC;IACvC,OAAOxD,IAAI,CAAC4C,IAAI,CAAC;MACfxC,IAAI,EAAEqD,UAAU,CAACrD,IAAI;MACrBC,KAAK,EAAEoD,UAAU,CAACpD,KAAK;MACvBE,GAAG,EAAEkD,UAAU,CAAClD,GAAG;MACnBD,UAAU,EAAEmD,UAAU,CAACnD,UAAU,CAACqB,GAAG,CAAEa,SAAS,KAAM;QACpDrB,EAAE,EAAEwC,0BAAW,CAACC,UAAU,CAAC;UAAEvD,KAAK,EAAEmC,SAAS,CAACrB,EAAE,CAACd,KAAK;UAAED,IAAI,EAAEoC,SAAS,CAACrB,EAAE,CAACf;QAAK,CAAC,CAAC;QAClFyB,IAAI,EAAE,KAAIP,cAAG,EAACkB,SAAS,CAACX,IAAI,CAAC;QAC7Ba,SAAS,EAAEF,SAAS,CAACE;MACvB,CAAC,CAAC,CAAC;MACH5B,eAAe,EAAE2C,UAAU,CAAC3C,eAAe,IAAI;QAC7CK,EAAE,EAAEwC,0BAAW,CAACC,UAAU,CAAC;UACzBvD,KAAK,EAAEoD,UAAU,CAAC3C,eAAe,CAACK,EAAE,CAACd,KAAK;UAC1CD,IAAI,EAAEqD,UAAU,CAAC3C,eAAe,CAACK,EAAE,CAACf;QACtC,CAAC,CAAC;QACFyB,IAAI,EAAE4B,UAAU,CAAC3C,eAAe,CAACe,IAAI,IAAI,KAAIP,cAAG,EAACmC,UAAU,CAAC3C,eAAe,CAACe,IAAI;MAClF,CAAC;MACDd,UAAU,EAAE0C,UAAU,CAAC1C,UAAU,IAAI8C,gBAAM,CAACjB,IAAI,CAACa,UAAU,CAAC1C,UAAU,CAACX,IAAI,EAAEqD,UAAU,CAAC1C,UAAU,CAACV,KAAK,CAAC;MACzGY,gBAAgB,EAAEwC,UAAU,CAACxC,gBAAgB,EAAEU,GAAG,CAAEC,CAAC,IAAK+B,0BAAW,CAACG,UAAU,CAAClC,CAAC,CAAC,CAAC;MACpFV,wBAAwB,EAAEuC,UAAU,CAACvC,wBAAwB;MAC7DL,IAAI,EAAE4C,UAAU,CAAC5C,IAAI,IAAIA,IAAI;MAC7BG,MAAM,EAAEyC,UAAU,CAACzC;IACrB,CAAC,CAAC;EACJ;EACA+C,QAAQA,CAACC,MAAgB,EAAE;IACzB,MAAMC,IAAI,GAAG,IAAAC,2BAAgB,EAACF,MAAM,CAAC;IACrC,MAAM1B,GAAG,GAAG,IAAI,CAACD,QAAQ,CAAC,CAAC;IAC3B,MAAMN,GAAG,GAAG2B,IAAI,CAACS,SAAS,CAAC7B,GAAG,EAAE,GAAG2B,IAAI,CAAC;IACxC,IAAI,IAAI,CAACG,qBAAqB,EAAE,IAAI,CAACtC,wBAAwB,CAACC,GAAG,CAAC;IAClE,OAAOsC,MAAM,CAACzB,IAAI,CAACb,GAAG,CAAC;EACzB;EACAuC,YAAYA,CAAC9B,SAAwB,EAAE;IACrC,MAAM+B,eAAe,GAAG,IAAI,CAACC,YAAY,CAAChC,SAAS,CAACrB,EAAE,CAAC;IACvD,IAAIoD,eAAe,EAAE;MACnB,IAAI,CAACA,eAAe,CAAC1C,IAAI,CAAC4C,OAAO,CAACjC,SAAS,CAACX,IAAI,CAAC,EAAE,IAAI,CAACL,UAAU,GAAG,IAAI;MACzE+C,eAAe,CAACpD,EAAE,GAAGqB,SAAS,CAACrB,EAAE;MACjCoD,eAAe,CAAC1C,IAAI,GAAGW,SAAS,CAACX,IAAI;MACrC0C,eAAe,CAAC7B,SAAS,GAAGF,SAAS,CAACE,SAAS;IACjD,CAAC,MAAM;MACLV,iBAAM,CAACC,KAAK,CAAC,uCAAuCO,SAAS,CAACrB,EAAE,CAACR,QAAQ,CAAC,CAAC,YAAY,IAAI,CAACQ,EAAE,CAAC,CAAC,EAAE,CAAC;MACnG,IAAI,CAACb,UAAU,CAAC/B,IAAI,CAACiE,SAAS,CAAC;MAC/B,IAAI,CAAChB,UAAU,GAAG,IAAI;IACxB;EACF;EACAkD,0CAA0CA,CAACC,WAAwB,EAAE;IACnE,MAAMC,oBAAoB,GAAGC,8BAAe,CAACC,SAAS,CAAC,IAAI,CAAC7D,gBAAgB,IAAI,EAAE,CAAC;IACnF,MAAM8D,KAAK,GAAGH,oBAAoB,CAACI,oBAAoB,CAACL,WAAW,CAAC;IACpE,IAAI,CAACI,KAAK,EAAE;IACZ,IAAI,CAAC9D,gBAAgB,GAAG2D,oBAAoB,CAACK,aAAa,CAACF,KAAK,CAAC;IACjE,IAAI,CAAC,IAAI,CAAC9D,gBAAgB,CAACtC,MAAM,EAAE,IAAI,CAACsC,gBAAgB,GAAGiE,SAAS;IACpE,IAAI,CAAC1D,UAAU,GAAG,IAAI;EACxB;EACA2D,8BAA8BA,CAACR,WAAwB,EAAE;IACvD,IAAI,CAACD,0CAA0C,CAACC,WAAW,CAAC;IAC5D,CAAC,IAAI,CAAC1D,gBAAgB,KAAK,EAAE,EAAE1C,IAAI,CAACoG,WAAW,CAAC;IAChD,IAAI,CAACnD,UAAU,GAAG,IAAI;EACxB;EACA4D,yBAAyBA,CAAA,EAAG;IAC1B,IAAI,IAAI,CAACnE,gBAAgB,EAAEtC,MAAM,EAAE;IACnC,IAAI,CAACsC,gBAAgB,GAAGiE,SAAS;IACjC,IAAI,CAAC1D,UAAU,GAAG,IAAI;EACxB;EACA6D,8BAA8BA,CAAA,EAAG;IAC/B,OAAO,IAAI,CAACnE,wBAAwB;EACtC;EACA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEoE,2BAA2BA,CAACpE,wBAAiC,EAAE;IAC7D,IAAI,CAACA,wBAAwB,GAAGA,wBAAwB;IACxD,IAAI,CAACM,UAAU,GAAG,IAAI;EACxB;EAEA+D,eAAeA,CAACpE,EAAe,EAAW;IACxC,MAAMoD,eAAe,GAAG,IAAI,CAACC,YAAY,CAACrD,EAAE,CAAC;IAC7C,IAAI,CAACoD,eAAe,EAAE,OAAO,KAAK;IAClC,IAAI,CAACjE,UAAU,GAAG,IAAI,CAACA,UAAU,CAAClC,MAAM,CAAEwD,CAAC,IAAK,CAACA,CAAC,CAACT,EAAE,CAACqE,qBAAqB,CAACrE,EAAE,CAAC,CAAC;IAChF,IAAI,CAACK,UAAU,GAAG,IAAI;IACtB,OAAO,IAAI;EACb;EACAgD,YAAYA,CAACrD,EAAe,EAA6B;IACvD,OAAO,IAAI,CAACb,UAAU,CAACmF,IAAI,CAAE7D,CAAC,IAAKA,CAAC,CAACT,EAAE,CAACqE,qBAAqB,CAACrE,EAAE,CAAC,CAAC;EACpE;EACAuE,gBAAgBA,CAACC,KAAkB,EAAc;IAC/C,MAAMC,KAAK,GAAG,IAAI,CAACtF,UAAU,CAACmF,IAAI,CAAE7D,CAAC,IAAKA,CAAC,CAACT,EAAE,CAACsD,OAAO,CAACkB,KAAK,CAAC,CAAC;IAC9D,IAAIC,KAAK,EAAE,OAAOA,KAAK,CAAC/D,IAAI;IAC5B,OAAO,IAAI;EACb;EACAgE,iBAAiBA,CAACC,cAA+B,EAAE;IACjD;IACA;IACA,IAAI,CAACxF,UAAU,GAAGwF,cAAc,CAACnE,GAAG,CAAEC,CAAC,KAAM;MAAET,EAAE,EAAES,CAAC,CAACT,EAAE,CAAC4E,KAAK,CAAC,CAAC;MAAElE,IAAI,EAAED,CAAC,CAACC,IAAI,CAACkE,KAAK,CAAC;IAAE,CAAC,CAAC,CAAC;IACzF,IAAI,CAACvE,UAAU,GAAG,IAAI;EACxB;EACAwE,kBAAkBA,CAAC7E,EAAgB,EAAE;IACnC,MAAM8E,cAAc,GAAG,IAAI,CAACnF,eAAe;IAC3C,IAAI,CAACK,EAAE,EAAE;MACP,IAAI,CAACL,eAAe,GAAGoE,SAAS;MAChC,IAAIe,cAAc,EAAE,IAAI,CAACzE,UAAU,GAAG,IAAI;MAC1C;IACF;IACA,MAAMV,eAAe,GAAG,IAAI,CAAC0D,YAAY,CAACrD,EAAE,CAAC;IAC7C,IAAI,CAACL,eAAe,EAAE;MACpB,IAAI,CAACA,eAAe,GAAG;QAAEK,EAAE;QAAEU,IAAI,EAAE;MAAK,CAAC;IAC3C,CAAC,MAAM;MACL,IAAI,CAACf,eAAe,GAAGA,eAAe;IACxC;IACA,IACE,CAACmF,cAAc,IACf,CAACA,cAAc,CAAC9E,EAAE,CAACsD,OAAO,CAACtD,EAAE,CAAC,IAC9B8E,cAAc,CAACpE,IAAI,EAAElB,QAAQ,CAAC,CAAC,KAAK,IAAI,CAACG,eAAe,CAACe,IAAI,EAAElB,QAAQ,CAAC,CAAC,EACzE;MACA,IAAI,CAACa,UAAU,GAAG,IAAI;IACxB;EACF;EAEA,MAAM0E,aAAaA,CAAC7F,KAAY,EAAoB;IAClD,MAAM;MAAE8F;IAAS,CAAC,GAAG,MAAM,IAAI,CAACC,uBAAuB,CAAC/F,KAAK,CAAC;IAC9D,OAAO8F,QAAQ,CAACxH,MAAM,KAAK,CAAC;EAC9B;EACA,MAAMyH,uBAAuBA,CAAC/F,KAAY,EAA+D;IACvG,MAAMgG,MAAqB,GAAG,EAAE;IAChC,MAAMF,QAAuB,GAAG,EAAE;IAClC,MAAMG,OAAO,CAACC,GAAG,CACf,IAAI,CAACjG,UAAU,CAACqB,GAAG,CAAC,MAAOa,SAAS,IAAK;MACvC,MAAMgE,cAAc,GAAG,MAAMnG,KAAK,CAACoG,wBAAwB,CAACjE,SAAS,CAACrB,EAAE,CAAC;MACzE,IAAI,CAACqF,cAAc,EAAE;QACnBL,QAAQ,CAAC5H,IAAI,CAACiE,SAAS,CAACrB,EAAE,CAAC;QAC3B;MACF;MACA,MAAMuF,iBAAiB,GAAGF,cAAc,CAACG,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;MAC5D,MAAMC,SAAS,GAAG,MAAM,IAAAC,4BAAe,EAACL,cAAc,EAAEhE,SAAS,CAACX,IAAI,EAAExB,KAAK,CAACyG,OAAO,EAAEJ,iBAAiB,CAAC;MACzG,IAAIE,SAAS,EAAEP,MAAM,CAAC9H,IAAI,CAACiE,SAAS,CAACrB,EAAE,CAAC,CAAC,KACpCgF,QAAQ,CAAC5H,IAAI,CAACiE,SAAS,CAACrB,EAAE,CAAC;IAClC,CAAC,CACH,CAAC;IACD,OAAO;MAAEkF,MAAM;MAAEF;IAAS,CAAC;EAC7B;EACA;AACF;AACA;EACEY,QAAQA,CAAA,EAAoB;IAC1B,OAAO,IAAI,CAACC,cAAc,CAAC,CAAC;EAC9B;EACAA,cAAcA,CAAA,EAAoB;IAChC,OAAOnC,8BAAe,CAACC,SAAS,CAAC,IAAI,CAACxE,UAAU,CAACqB,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACT,EAAE,CAAC8F,aAAa,CAACrF,CAAC,CAACC,IAAI,CAAClB,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;EACrG;EACAuG,qCAAqCA,CAAA,EAAoB;IACvD,OAAOrC,8BAAe,CAACC,SAAS,CAAC,IAAI,CAACkC,cAAc,CAAC,CAAC,CAACG,MAAM,CAAC,IAAI,CAAClG,gBAAgB,IAAI,EAAE,CAAC,CAAC;EAC7F;EACAmG,QAAQA,CAAA,EAAG;IACT,OAAO,KAAIvD,gBAAM,EAAC;MAAExD,KAAK,EAAE,IAAI,CAACA,KAAK;MAAED,IAAI,EAAE,IAAI,CAACA;IAAK,CAAC,CAAC;EAC3D;EACAiH,kBAAkBA,CAACC,IAAgB,EAA6D;IAC9F,OAAOhB,OAAO,CAACC,GAAG,CAChB,IAAI,CAACjG,UAAU,CAACqB,GAAG,CAAC,MAAOa,SAAS,IAAK;MACvC,MAAM+E,WAAW,GAAI,MAAM/E,SAAS,CAACX,IAAI,CAAC2F,IAAI,CAACF,IAAI,CAAa;MAChE,MAAMR,OAAO,GAAG,CAACS,WAAW,EAAE,GAAGA,WAAW,CAACE,OAAO,CAACH,IAAI,CAAC,CAAC;MAC3D,OAAO;QAAEnG,EAAE,EAAEqB,SAAS,CAACrB,EAAE;QAAE2F;MAAQ,CAAC;IACtC,CAAC,CACH,CAAC;EACH;EACAY,kBAAkBA,CAAA,EAAY;IAC5B,OAAO,IAAAC,aAAG,EAAC,IAAI,CAAC3G,MAAM,EAAElB,wCAAwC,CAAC;EACnE;EACA8H,6BAA6BA,CAAA,EAAG;IAC9B,IAAI,CAAC5G,MAAM,GAAGlB,wCAAwC;IACtD,IAAI,CAAC0B,UAAU,GAAG,IAAI;EACxB;EACAqG,gCAAgCA,CAAA,EAAG;IACjC,IAAI,CAAC7G,MAAM,GAAGnB,eAAe;IAC7B,IAAI,CAAC2B,UAAU,GAAG,IAAI;EACxB;EACAsG,kCAAkCA,CAACnD,WAAwB,EAAmB;IAC5E,MAAMoD,IAAI,GAAG,IAAI,CAACvD,YAAY,CAACG,WAAW,CAAC;IAC3C,IAAIoD,IAAI,EAAE,OAAOA,IAAI,CAAClG,IAAI;IAC1B,MAAMmG,oBAAoB,GAAG,IAAI,CAAC/G,gBAAgB,EAAEwE,IAAI,CAAE7D,CAAC,IAAKA,CAAC,CAAC4D,qBAAqB,CAACb,WAAW,CAAC,CAAC;IACrG,IAAIqD,oBAAoB,EAAE,OAAO1G,cAAG,CAACsB,IAAI,CAACoF,oBAAoB,CAACC,OAAO,CAAC;IACvE,OAAO/C,SAAS;EAClB;EACA9C,QAAQA,CAAA,EAAG;IACT,MAAM8F,OAAO,GAAG,+BAA+B,IAAI,CAAC/G,EAAE,CAAC,CAAC,GAAG;IAC3D,MAAMgH,MAAM,GAAG,IAAI,CAACnB,cAAc,CAAC,CAAC;IACpC,IAAI,CAAC1G,UAAU,CAAC1B,OAAO,CAAE4D,SAAS,IAAK;MACrC,IAAI2F,MAAM,CAACC,oBAAoB,CAAC5F,SAAS,CAACrB,EAAE,CAAC,CAACxC,MAAM,GAAG,CAAC,EAAE;QACxD,MAAM,KAAI0J,4BAAe,EAAC,GAAGH,OAAO,4CAA4C1F,SAAS,CAACrB,EAAE,CAACsB,QAAQ,GAAG,CAAC;MAC3G;MACA,IAAI,CAAC,IAAA6F,0BAAM,EAAC9F,SAAS,CAACX,IAAI,CAAChB,IAAI,CAAC,EAAE;QAChC,MAAM,KAAIwH,4BAAe,EACvB,GAAGH,OAAO,oBAAoB1F,SAAS,CAACrB,EAAE,CAACoH,sBAAsB,CAAC,CAAC,+BACjE/F,SAAS,CAACX,IAAI,CAAChB,IAAI,EAEvB,CAAC;MACH;IACF,CAAC,CAAC;IACF,IAAI,IAAI,CAACT,IAAI,KAAKoI,sBAAY,EAAE;MAC9B,MAAM,KAAIC,oBAAQ,EAAC,GAAGP,OAAO,6CAA6C,CAAC;IAC7E;IACA,IAAI,IAAI,CAAC9H,IAAI,KAAKsI,+BAAqB,EAAE;MACvC,MAAM,KAAID,oBAAQ,EAAC,GAAGP,OAAO,iDAAiD,CAAC;IACjF;EACF;EACAzD,OAAOA,CAACvC,IAAU,EAAW;IAC3B,IAAI,IAAI,CAACf,EAAE,CAAC,CAAC,KAAKe,IAAI,CAACf,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK;IACzC,MAAMwH,cAAc,GAAG,IAAI,CAAC3B,cAAc,CAAC,CAAC,CAAC4B,aAAa,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC;IACnE,MAAMC,eAAe,GAAG5G,IAAI,CAAC8E,cAAc,CAAC,CAAC,CAAC4B,aAAa,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC;IACpE,OAAO,IAAApE,iBAAO,EAACkE,cAAc,EAAEG,eAAe,CAAC;EACjD;EACA/C,KAAKA,CAAA,EAAG;IACN,OAAO,IAAI/F,IAAI,CAAAvB,aAAA,CAAAA,aAAA,KACV,IAAI;MACPoC,IAAI,EAAE,IAAI,CAACD,KAAK;MAChBM,wBAAwB,EAAE,IAAI,CAACA,wBAAwB;MACvDZ,UAAU,EAAE,IAAAyI,mBAAS,EAAC,IAAI,CAACzI,UAAU;IAAC,EACvC,CAAC;EACJ;AACF;AAAC0I,OAAA,CAAAC,OAAA,GAAAjJ,IAAA","ignoreList":[]}
@@ -1071,10 +1071,14 @@ consider using --ignore-missing-artifacts flag if you're sure the artifacts are
1071
1071
  if (versionStr !== _componentVersion().LATEST_VERSION && !(0, _componentVersion().isTag)(versionStr) && !(0, _componentVersion().isSnap)(versionStr) && version.hash().toString() !== versionStr) {
1072
1072
  componentVersion = new (_legacy6().ComponentVersion)(this, version.hash().toString());
1073
1073
  }
1074
+ const resolvedVersion = componentVersion.version;
1074
1075
  const loadFileInstance = ClassName => async file => {
1075
1076
  const loadP = file.file.load(repository);
1076
1077
  const content = await loadP;
1077
- if (!content) throw new (_bitError().BitError)(`failed loading file ${file.relativePath} from the model of ${this.id()}@${versionStr}`);
1078
+ if (!content) throw new (_bitError().BitError)(`failed loading file ${file.relativePath} (ref: ${file.file.toString()}) from the model of ${this.id()}@${resolvedVersion}.
1079
+ The Source object is missing from the local scope.
1080
+ To fix, run:
1081
+ bit import ${this.id()}@${resolvedVersion} --objects --all-history`);
1078
1082
  return new ClassName({
1079
1083
  base: '.',
1080
1084
  path: file.relativePath,