@teambit/component-writer 0.0.98 → 0.0.100

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.
@@ -18,6 +18,7 @@ export declare type ComponentWriterProps = {
18
18
  ignoreBitDependencies?: boolean | BitIds;
19
19
  deleteBitDirContent?: boolean;
20
20
  existingComponentMap?: ComponentMap;
21
+ skipUpdatingBitMap?: boolean;
21
22
  };
22
23
  export default class ComponentWriter {
23
24
  component: Component;
@@ -32,7 +33,8 @@ export default class ComponentWriter {
32
33
  ignoreBitDependencies: boolean | BitIds;
33
34
  deleteBitDirContent: boolean | undefined;
34
35
  existingComponentMap: ComponentMap | undefined;
35
- constructor({ component, writeToPath, writeConfig, writePackageJson, override, isolated, consumer, scope, bitMap, ignoreBitDependencies, deleteBitDirContent, existingComponentMap, }: ComponentWriterProps);
36
+ skipUpdatingBitMap?: boolean;
37
+ constructor({ component, writeToPath, writeConfig, writePackageJson, override, isolated, consumer, scope, bitMap, ignoreBitDependencies, deleteBitDirContent, existingComponentMap, skipUpdatingBitMap, }: ComponentWriterProps);
36
38
  /**
37
39
  * write the component to the filesystem and update .bitmap with the details.
38
40
  *
@@ -89,7 +89,8 @@ class ComponentWriter {
89
89
  bitMap,
90
90
  ignoreBitDependencies = true,
91
91
  deleteBitDirContent,
92
- existingComponentMap
92
+ existingComponentMap,
93
+ skipUpdatingBitMap
93
94
  }) {
94
95
  (0, _defineProperty2().default)(this, "component", void 0);
95
96
  (0, _defineProperty2().default)(this, "writeToPath", void 0);
@@ -103,6 +104,7 @@ class ComponentWriter {
103
104
  (0, _defineProperty2().default)(this, "ignoreBitDependencies", void 0);
104
105
  (0, _defineProperty2().default)(this, "deleteBitDirContent", void 0);
105
106
  (0, _defineProperty2().default)(this, "existingComponentMap", void 0);
107
+ (0, _defineProperty2().default)(this, "skipUpdatingBitMap", void 0);
106
108
  this.component = component;
107
109
  this.writeToPath = writeToPath;
108
110
  this.writeConfig = writeConfig;
@@ -115,6 +117,7 @@ class ComponentWriter {
115
117
  this.ignoreBitDependencies = ignoreBitDependencies;
116
118
  this.deleteBitDirContent = deleteBitDirContent;
117
119
  this.existingComponentMap = existingComponentMap;
120
+ this.skipUpdatingBitMap = skipUpdatingBitMap;
118
121
  }
119
122
 
120
123
  /**
@@ -143,7 +146,9 @@ class ComponentWriter {
143
146
  this.component.componentMap = this.existingComponentMap || this.addComponentToBitMap(this.writeToPath);
144
147
  this.deleteBitDirContent = false;
145
148
  this._updateComponentRootPathAccordingToBitMap();
146
- this.component.componentMap = this.addComponentToBitMap(this.component.componentMap.rootDir);
149
+ if (!this.skipUpdatingBitMap) {
150
+ this.component.componentMap = this.addComponentToBitMap(this.component.componentMap.rootDir);
151
+ }
147
152
  this.writePackageJson = false;
148
153
  await this.populateFilesToWriteToComponentDir();
149
154
  return this.component;
@@ -1 +1 @@
1
- {"version":3,"names":["ComponentWriter","constructor","component","writeToPath","writeConfig","writePackageJson","override","isolated","consumer","scope","bitMap","ignoreBitDependencies","deleteBitDirContent","existingComponentMap","write","Error","populateComponentsFilesToWrite","dataToPersist","addBasePath","getPath","persistAllToFS","files","length","ShowDoctorError","id","toString","throwForImportingLegacyIntoHarmony","DataToPersist","_updateFilesBasePaths","componentMap","addComponentToBitMap","_updateComponentRootPathAccordingToBitMap","rootDir","populateFilesToWriteToComponentDir","isLegacy","removePath","RemovePath","forEach","file","map","addFile","license","contents","updatePaths","newBase","filesForBitMap","name","basename","relativePath","pathNormalizeToLinux","relative","test","addComponent","componentId","mainFile","getRootDir","writtenPath","_cleanOldNestedComponent","oldLocation","path","join","logger","debugAndAddBreadCrumb","fs","remove","_removeNodeModulesLinksFromDependents","removeComponent","directDependentIds","getAuthoredAndImportedDependentsIdsOf","Promise","all","dependentId","dependentComponentMap","getComponent","relativeLinkPath","getNodeModulesPathOfComponent","nodeModulesLinkAbs","toAbsolutePath","debug","resolve"],"sources":["component-writer.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport * as path from 'path';\nimport { BitIds } from '@teambit/legacy/dist/bit-id';\nimport ShowDoctorError from '@teambit/legacy/dist/error/show-doctor-error';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { Scope } from '@teambit/legacy/dist/scope';\nimport getNodeModulesPathOfComponent from '@teambit/legacy/dist/utils/bit/component-node-modules-path';\nimport { PathLinuxRelative, pathNormalizeToLinux } from '@teambit/legacy/dist/utils/path';\nimport BitMap from '@teambit/legacy/dist/consumer/bit-map/bit-map';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport Component from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport DataToPersist from '@teambit/legacy/dist/consumer/component/sources/data-to-persist';\nimport RemovePath from '@teambit/legacy/dist/consumer/component/sources/remove-path';\nimport Consumer from '@teambit/legacy/dist/consumer/consumer';\n\nexport type ComponentWriterProps = {\n component: Component;\n writeToPath: PathLinuxRelative;\n writeConfig?: boolean;\n writePackageJson?: boolean;\n override?: boolean;\n isolated?: boolean;\n consumer: Consumer | undefined;\n scope?: Scope | undefined;\n bitMap: BitMap;\n ignoreBitDependencies?: boolean | BitIds;\n deleteBitDirContent?: boolean;\n existingComponentMap?: ComponentMap;\n};\n\nexport default class ComponentWriter {\n component: Component;\n writeToPath: PathLinuxRelative;\n writeConfig?: boolean;\n writePackageJson?: boolean;\n override: boolean; // default to true\n isolated?: boolean;\n consumer: Consumer | undefined; // when using capsule, the consumer is not defined\n scope?: Scope | undefined;\n bitMap: BitMap;\n ignoreBitDependencies: boolean | BitIds;\n deleteBitDirContent: boolean | undefined;\n existingComponentMap: ComponentMap | undefined;\n\n constructor({\n component,\n writeToPath,\n writeConfig = false,\n writePackageJson = true,\n override = true,\n isolated = false,\n consumer,\n scope = consumer?.scope,\n bitMap,\n ignoreBitDependencies = true,\n deleteBitDirContent,\n existingComponentMap,\n }: ComponentWriterProps) {\n this.component = component;\n this.writeToPath = writeToPath;\n this.writeConfig = writeConfig;\n this.writePackageJson = writePackageJson;\n this.override = override;\n this.isolated = isolated;\n this.consumer = consumer;\n this.scope = scope;\n this.bitMap = bitMap;\n this.ignoreBitDependencies = ignoreBitDependencies;\n this.deleteBitDirContent = deleteBitDirContent;\n this.existingComponentMap = existingComponentMap;\n }\n\n /**\n * write the component to the filesystem and update .bitmap with the details.\n *\n * bitMap gets updated before writing the files to the filesystem, because as part of writing the\n * package-json file, the componentMap is needed to be stored with the updated version.\n *\n * when a component is not new, write the files according to the paths in .bitmap.\n */\n async write(): Promise<Component> {\n if (!this.consumer) throw new Error('ComponentWriter.write expect to have a consumer');\n await this.populateComponentsFilesToWrite();\n this.component.dataToPersist.addBasePath(this.consumer.getPath());\n await this.component.dataToPersist.persistAllToFS();\n return this.component;\n }\n\n async populateComponentsFilesToWrite(): Promise<Component> {\n if (this.isolated) throw new Error('for isolation, please use this.populateComponentsFilesToWriteForCapsule()');\n if (!this.component.files || !this.component.files.length) {\n throw new ShowDoctorError(`Component ${this.component.id.toString()} is invalid as it has no files`);\n }\n this.throwForImportingLegacyIntoHarmony();\n this.component.dataToPersist = new DataToPersist();\n this._updateFilesBasePaths();\n this.component.componentMap = this.existingComponentMap || this.addComponentToBitMap(this.writeToPath);\n this.deleteBitDirContent = false;\n this._updateComponentRootPathAccordingToBitMap();\n this.component.componentMap = this.addComponentToBitMap(this.component.componentMap.rootDir);\n this.writePackageJson = false;\n await this.populateFilesToWriteToComponentDir();\n return this.component;\n }\n\n private throwForImportingLegacyIntoHarmony() {\n if (this.component.isLegacy && this.consumer) {\n throw new Error(\n `unable to write component \"${this.component.id.toString()}\", it is a legacy component and this workspace is Harmony`\n );\n }\n }\n\n async populateFilesToWriteToComponentDir() {\n if (this.deleteBitDirContent) {\n this.component.dataToPersist.removePath(new RemovePath(this.writeToPath));\n }\n this.component.files.forEach((file) => (file.override = this.override));\n this.component.files.map((file) => this.component.dataToPersist.addFile(file));\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n if (this.component.license && this.component.license.contents) {\n this.component.license.updatePaths({ newBase: this.writeToPath });\n // $FlowFixMe this.component.license is set\n this.component.license.override = this.override;\n // $FlowFixMe this.component.license is set\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.component.dataToPersist.addFile(this.component.license);\n }\n }\n\n addComponentToBitMap(rootDir: string | undefined): ComponentMap {\n if (rootDir === '.') {\n throw new Error('addComponentToBitMap: rootDir cannot be \".\"');\n }\n const filesForBitMap = this.component.files.map((file) => {\n return { name: file.basename, relativePath: pathNormalizeToLinux(file.relative), test: file.test };\n });\n\n return this.bitMap.addComponent({\n componentId: this.component.id,\n files: filesForBitMap,\n mainFile: pathNormalizeToLinux(this.component.mainFile),\n rootDir,\n });\n }\n\n _updateComponentRootPathAccordingToBitMap() {\n // @ts-ignore this.component.componentMap is set\n this.writeToPath = this.component.componentMap.getRootDir();\n this.component.writtenPath = this.writeToPath;\n this._updateFilesBasePaths();\n }\n\n _updateFilesBasePaths() {\n const newBase = this.writeToPath || '.';\n this.component.files.forEach((file) => file.updatePaths({ newBase }));\n }\n\n async _cleanOldNestedComponent() {\n if (!this.consumer) throw new Error('ComponentWriter._cleanOldNestedComponent expect to have a consumer');\n // @ts-ignore this function gets called when it was previously NESTED, so the rootDir is set\n const oldLocation = path.join(this.consumer.getPath(), this.component.componentMap.rootDir);\n logger.debugAndAddBreadCrumb(\n 'component-writer._cleanOldNestedComponent',\n 'deleting the old directory of a component at {oldLocation}',\n { oldLocation }\n );\n await fs.remove(oldLocation);\n await this._removeNodeModulesLinksFromDependents();\n this.bitMap.removeComponent(this.component.id);\n }\n\n async _removeNodeModulesLinksFromDependents() {\n if (!this.consumer) {\n throw new Error('ComponentWriter._removeNodeModulesLinksFromDependents expect to have a consumer');\n }\n const directDependentIds = await this.consumer.getAuthoredAndImportedDependentsIdsOf([this.component]);\n await Promise.all(\n directDependentIds.map((dependentId) => {\n const dependentComponentMap = this.consumer ? this.consumer.bitMap.getComponent(dependentId) : null;\n const relativeLinkPath = this.consumer ? getNodeModulesPathOfComponent(this.component) : null;\n const nodeModulesLinkAbs =\n this.consumer && dependentComponentMap && relativeLinkPath\n ? this.consumer.toAbsolutePath(path.join(dependentComponentMap.getRootDir(), relativeLinkPath))\n : null;\n if (nodeModulesLinkAbs) {\n logger.debug(`deleting an obsolete link to node_modules at ${nodeModulesLinkAbs}`);\n }\n return nodeModulesLinkAbs ? fs.remove(nodeModulesLinkAbs) : Promise.resolve();\n })\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["ComponentWriter","constructor","component","writeToPath","writeConfig","writePackageJson","override","isolated","consumer","scope","bitMap","ignoreBitDependencies","deleteBitDirContent","existingComponentMap","skipUpdatingBitMap","write","Error","populateComponentsFilesToWrite","dataToPersist","addBasePath","getPath","persistAllToFS","files","length","ShowDoctorError","id","toString","throwForImportingLegacyIntoHarmony","DataToPersist","_updateFilesBasePaths","componentMap","addComponentToBitMap","_updateComponentRootPathAccordingToBitMap","rootDir","populateFilesToWriteToComponentDir","isLegacy","removePath","RemovePath","forEach","file","map","addFile","license","contents","updatePaths","newBase","filesForBitMap","name","basename","relativePath","pathNormalizeToLinux","relative","test","addComponent","componentId","mainFile","getRootDir","writtenPath","_cleanOldNestedComponent","oldLocation","path","join","logger","debugAndAddBreadCrumb","fs","remove","_removeNodeModulesLinksFromDependents","removeComponent","directDependentIds","getAuthoredAndImportedDependentsIdsOf","Promise","all","dependentId","dependentComponentMap","getComponent","relativeLinkPath","getNodeModulesPathOfComponent","nodeModulesLinkAbs","toAbsolutePath","debug","resolve"],"sources":["component-writer.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport * as path from 'path';\nimport { BitIds } from '@teambit/legacy/dist/bit-id';\nimport ShowDoctorError from '@teambit/legacy/dist/error/show-doctor-error';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { Scope } from '@teambit/legacy/dist/scope';\nimport getNodeModulesPathOfComponent from '@teambit/legacy/dist/utils/bit/component-node-modules-path';\nimport { PathLinuxRelative, pathNormalizeToLinux } from '@teambit/legacy/dist/utils/path';\nimport BitMap from '@teambit/legacy/dist/consumer/bit-map/bit-map';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport Component from '@teambit/legacy/dist/consumer/component/consumer-component';\nimport DataToPersist from '@teambit/legacy/dist/consumer/component/sources/data-to-persist';\nimport RemovePath from '@teambit/legacy/dist/consumer/component/sources/remove-path';\nimport Consumer from '@teambit/legacy/dist/consumer/consumer';\n\nexport type ComponentWriterProps = {\n component: Component;\n writeToPath: PathLinuxRelative;\n writeConfig?: boolean;\n writePackageJson?: boolean;\n override?: boolean;\n isolated?: boolean;\n consumer: Consumer | undefined;\n scope?: Scope | undefined;\n bitMap: BitMap;\n ignoreBitDependencies?: boolean | BitIds;\n deleteBitDirContent?: boolean;\n existingComponentMap?: ComponentMap;\n skipUpdatingBitMap?: boolean;\n};\n\nexport default class ComponentWriter {\n component: Component;\n writeToPath: PathLinuxRelative;\n writeConfig?: boolean;\n writePackageJson?: boolean;\n override: boolean; // default to true\n isolated?: boolean;\n consumer: Consumer | undefined; // when using capsule, the consumer is not defined\n scope?: Scope | undefined;\n bitMap: BitMap;\n ignoreBitDependencies: boolean | BitIds;\n deleteBitDirContent: boolean | undefined;\n existingComponentMap: ComponentMap | undefined;\n skipUpdatingBitMap?: boolean;\n\n constructor({\n component,\n writeToPath,\n writeConfig = false,\n writePackageJson = true,\n override = true,\n isolated = false,\n consumer,\n scope = consumer?.scope,\n bitMap,\n ignoreBitDependencies = true,\n deleteBitDirContent,\n existingComponentMap,\n skipUpdatingBitMap,\n }: ComponentWriterProps) {\n this.component = component;\n this.writeToPath = writeToPath;\n this.writeConfig = writeConfig;\n this.writePackageJson = writePackageJson;\n this.override = override;\n this.isolated = isolated;\n this.consumer = consumer;\n this.scope = scope;\n this.bitMap = bitMap;\n this.ignoreBitDependencies = ignoreBitDependencies;\n this.deleteBitDirContent = deleteBitDirContent;\n this.existingComponentMap = existingComponentMap;\n this.skipUpdatingBitMap = skipUpdatingBitMap;\n }\n\n /**\n * write the component to the filesystem and update .bitmap with the details.\n *\n * bitMap gets updated before writing the files to the filesystem, because as part of writing the\n * package-json file, the componentMap is needed to be stored with the updated version.\n *\n * when a component is not new, write the files according to the paths in .bitmap.\n */\n async write(): Promise<Component> {\n if (!this.consumer) throw new Error('ComponentWriter.write expect to have a consumer');\n await this.populateComponentsFilesToWrite();\n this.component.dataToPersist.addBasePath(this.consumer.getPath());\n await this.component.dataToPersist.persistAllToFS();\n return this.component;\n }\n\n async populateComponentsFilesToWrite(): Promise<Component> {\n if (this.isolated) throw new Error('for isolation, please use this.populateComponentsFilesToWriteForCapsule()');\n if (!this.component.files || !this.component.files.length) {\n throw new ShowDoctorError(`Component ${this.component.id.toString()} is invalid as it has no files`);\n }\n this.throwForImportingLegacyIntoHarmony();\n this.component.dataToPersist = new DataToPersist();\n this._updateFilesBasePaths();\n this.component.componentMap = this.existingComponentMap || this.addComponentToBitMap(this.writeToPath);\n this.deleteBitDirContent = false;\n this._updateComponentRootPathAccordingToBitMap();\n if (!this.skipUpdatingBitMap) {\n this.component.componentMap = this.addComponentToBitMap(this.component.componentMap.rootDir);\n }\n this.writePackageJson = false;\n await this.populateFilesToWriteToComponentDir();\n return this.component;\n }\n\n private throwForImportingLegacyIntoHarmony() {\n if (this.component.isLegacy && this.consumer) {\n throw new Error(\n `unable to write component \"${this.component.id.toString()}\", it is a legacy component and this workspace is Harmony`\n );\n }\n }\n\n async populateFilesToWriteToComponentDir() {\n if (this.deleteBitDirContent) {\n this.component.dataToPersist.removePath(new RemovePath(this.writeToPath));\n }\n this.component.files.forEach((file) => (file.override = this.override));\n this.component.files.map((file) => this.component.dataToPersist.addFile(file));\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n if (this.component.license && this.component.license.contents) {\n this.component.license.updatePaths({ newBase: this.writeToPath });\n // $FlowFixMe this.component.license is set\n this.component.license.override = this.override;\n // $FlowFixMe this.component.license is set\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n this.component.dataToPersist.addFile(this.component.license);\n }\n }\n\n addComponentToBitMap(rootDir: string | undefined): ComponentMap {\n if (rootDir === '.') {\n throw new Error('addComponentToBitMap: rootDir cannot be \".\"');\n }\n const filesForBitMap = this.component.files.map((file) => {\n return { name: file.basename, relativePath: pathNormalizeToLinux(file.relative), test: file.test };\n });\n\n return this.bitMap.addComponent({\n componentId: this.component.id,\n files: filesForBitMap,\n mainFile: pathNormalizeToLinux(this.component.mainFile),\n rootDir,\n });\n }\n\n _updateComponentRootPathAccordingToBitMap() {\n // @ts-ignore this.component.componentMap is set\n this.writeToPath = this.component.componentMap.getRootDir();\n this.component.writtenPath = this.writeToPath;\n this._updateFilesBasePaths();\n }\n\n _updateFilesBasePaths() {\n const newBase = this.writeToPath || '.';\n this.component.files.forEach((file) => file.updatePaths({ newBase }));\n }\n\n async _cleanOldNestedComponent() {\n if (!this.consumer) throw new Error('ComponentWriter._cleanOldNestedComponent expect to have a consumer');\n // @ts-ignore this function gets called when it was previously NESTED, so the rootDir is set\n const oldLocation = path.join(this.consumer.getPath(), this.component.componentMap.rootDir);\n logger.debugAndAddBreadCrumb(\n 'component-writer._cleanOldNestedComponent',\n 'deleting the old directory of a component at {oldLocation}',\n { oldLocation }\n );\n await fs.remove(oldLocation);\n await this._removeNodeModulesLinksFromDependents();\n this.bitMap.removeComponent(this.component.id);\n }\n\n async _removeNodeModulesLinksFromDependents() {\n if (!this.consumer) {\n throw new Error('ComponentWriter._removeNodeModulesLinksFromDependents expect to have a consumer');\n }\n const directDependentIds = await this.consumer.getAuthoredAndImportedDependentsIdsOf([this.component]);\n await Promise.all(\n directDependentIds.map((dependentId) => {\n const dependentComponentMap = this.consumer ? this.consumer.bitMap.getComponent(dependentId) : null;\n const relativeLinkPath = this.consumer ? getNodeModulesPathOfComponent(this.component) : null;\n const nodeModulesLinkAbs =\n this.consumer && dependentComponentMap && relativeLinkPath\n ? this.consumer.toAbsolutePath(path.join(dependentComponentMap.getRootDir(), relativeLinkPath))\n : null;\n if (nodeModulesLinkAbs) {\n logger.debug(`deleting an obsolete link to node_modules at ${nodeModulesLinkAbs}`);\n }\n return nodeModulesLinkAbs ? fs.remove(nodeModulesLinkAbs) : Promise.resolve();\n })\n );\n }\n}\n"],"mappings":"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"}
@@ -14,6 +14,7 @@ export interface ManyComponentsWriterParams {
14
14
  verbose?: boolean;
15
15
  resetConfig?: boolean;
16
16
  skipWritingToFs?: boolean;
17
+ skipUpdatingBitMap?: boolean;
17
18
  }
18
19
  export declare type ComponentWriterResults = {
19
20
  installationError?: Error;
@@ -139,7 +139,7 @@ class ComponentWriterMain {
139
139
  await this.populateComponentsFilesToWrite(opts);
140
140
  this.moveComponentsIfNeeded(opts);
141
141
  await this.persistComponentsData(opts);
142
- await this.consumer.writeBitMap();
142
+ if (!opts.skipUpdatingBitMap) await this.consumer.writeBitMap();
143
143
  let installationError;
144
144
  let compilationError;
145
145
  if (!opts.skipDependencyInstallation) {
@@ -268,7 +268,8 @@ class ComponentWriterMain {
268
268
  bitMap: this.consumer.bitMap,
269
269
  component,
270
270
  writeToPath: componentRootDir,
271
- writeConfig: opts.writeConfig
271
+ writeConfig: opts.writeConfig,
272
+ skipUpdatingBitMap: opts.skipUpdatingBitMap
272
273
  }, getParams());
273
274
  }
274
275
  moveComponentsIfNeeded(opts) {
@@ -1 +1 @@
1
- {"version":3,"names":["ComponentWriterMain","constructor","installer","compiler","workspace","logger","mover","consumer","writeMany","opts","debug","populateComponentsFilesToWrite","moveComponentsIfNeeded","persistComponentsData","writeBitMap","installationError","compilationError","skipDependencyInstallation","installPackagesGracefully","compileGracefully","installOpts","dedupe","updateExisting","import","install","undefined","err","consoleFailure","message","error","compileOnWorkspace","skipWritingToFs","dataToPersist","DataToPersist","components","forEach","component","merge","componentsConfig","config","hasChanged","jsonFiles","toVinyl","getPath","addManyFiles","addBasePath","persistAllToFS","writeComponentsParams","map","getWriteParamsOfOneComponent","componentWriterInstances","writeParams","ComponentWriter","fixDirsIfNested","componentWriter","existingComponentMap","addComponentToBitMap","writeToPath","resetConfig","mapSeries","allDirs","c","parentsOfOthersComps","filter","find","d","startsWith","length","parentsOfOthersCompsDirs","incrementPath","p","number","existingRootDirs","Object","keys","bitMap","getAllTrackDirs","allPaths","incrementRecursively","num","newPath","includes","componentRootDir","pathNormalizeToLinux","getPathRelativeToConsumer","path","resolve","composeRelativeComponentPath","id","getParams","componentMap","getComponentIfExist","ignoreVersion","throwErrorWhenDirectoryNotEmpty","toAbsolutePath","writeConfig","rootDir","GeneralError","relativeWrittenPath","writtenPath","absoluteWrittenPath","absoluteWriteToPath","moveExistingComponent","componentDir","fs","pathExistsSync","isDir","isDirEmptySync","throwForExistingDir","provider","loggerMain","createLogger","ComponentWriterAspect","InstallAspect","CompilerAspect","LoggerAspect","WorkspaceAspect","MoverAspect","MainRuntime","addRuntime"],"sources":["component-writer.main.runtime.ts"],"sourcesContent":["import { MainRuntime } from '@teambit/cli';\nimport { CompilerAspect, CompilerMain } from '@teambit/compiler';\nimport InstallAspect, { InstallMain } from '@teambit/install';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport fs from 'fs-extra';\nimport mapSeries from 'p-map-series';\nimport * as path from 'path';\nimport MoverAspect, { MoverMain } from '@teambit/mover';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport GeneralError from '@teambit/legacy/dist/error/general-error';\nimport { isDir, isDirEmptySync } from '@teambit/legacy/dist/utils';\nimport { PathLinuxRelative, pathNormalizeToLinux, PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport DataToPersist from '@teambit/legacy/dist/consumer/component/sources/data-to-persist';\nimport Consumer from '@teambit/legacy/dist/consumer/consumer';\nimport ComponentWriter, { ComponentWriterProps } from './component-writer';\nimport { ComponentWriterAspect } from './component-writer.aspect';\n\nexport interface ManyComponentsWriterParams {\n components: ConsumerComponent[];\n writeToPath?: string;\n throwForExistingDir?: boolean;\n writeConfig?: boolean;\n skipDependencyInstallation?: boolean;\n verbose?: boolean;\n resetConfig?: boolean;\n skipWritingToFs?: boolean;\n}\n\nexport type ComponentWriterResults = { installationError?: Error; compilationError?: Error };\n\nexport class ComponentWriterMain {\n constructor(\n private installer: InstallMain,\n private compiler: CompilerMain,\n private workspace: Workspace,\n private logger: Logger,\n private mover: MoverMain\n ) {}\n\n get consumer(): Consumer {\n return this.workspace.consumer;\n }\n\n async writeMany(opts: ManyComponentsWriterParams): Promise<ComponentWriterResults> {\n this.logger.debug('writeMany, started');\n await this.populateComponentsFilesToWrite(opts);\n this.moveComponentsIfNeeded(opts);\n await this.persistComponentsData(opts);\n await this.consumer.writeBitMap();\n let installationError: Error | undefined;\n let compilationError: Error | undefined;\n if (!opts.skipDependencyInstallation) {\n installationError = await this.installPackagesGracefully();\n // no point to compile if the installation is not running. the environment is not ready.\n compilationError = await this.compileGracefully();\n }\n this.logger.debug('writeMany, completed!');\n return { installationError, compilationError };\n }\n\n private async installPackagesGracefully(): Promise<Error | undefined> {\n this.logger.debug('installPackagesGracefully, start installing packages');\n try {\n const installOpts = {\n dedupe: true,\n updateExisting: false,\n import: false,\n };\n await this.installer.install(undefined, installOpts);\n this.logger.debug('installPackagesGracefully, completed installing packages successfully');\n return undefined;\n } catch (err: any) {\n this.logger.consoleFailure(`installation failed with the following error: ${err.message}`);\n this.logger.error('installPackagesGracefully, package-installer found an error', err);\n return err;\n }\n }\n private async compileGracefully(): Promise<Error | undefined> {\n try {\n await this.compiler.compileOnWorkspace();\n return undefined;\n } catch (err: any) {\n this.logger.consoleFailure(`compilation failed with the following error: ${err.message}`);\n this.logger.error('compileGracefully, compiler found an error', err);\n return err;\n }\n }\n private async persistComponentsData(opts: ManyComponentsWriterParams) {\n if (opts.skipWritingToFs) return;\n const dataToPersist = new DataToPersist();\n opts.components.forEach((component) => dataToPersist.merge(component.dataToPersist));\n const componentsConfig = this.consumer?.config?.componentsConfig;\n if (componentsConfig?.hasChanged) {\n const jsonFiles = await this.consumer?.config.toVinyl(this.consumer.getPath());\n if (jsonFiles) {\n dataToPersist.addManyFiles(jsonFiles);\n }\n }\n dataToPersist.addBasePath(this.consumer.getPath());\n await dataToPersist.persistAllToFS();\n }\n private async populateComponentsFilesToWrite(opts: ManyComponentsWriterParams) {\n const writeComponentsParams = opts.components.map((component) =>\n this.getWriteParamsOfOneComponent(component, opts)\n );\n const componentWriterInstances = writeComponentsParams.map((writeParams) => new ComponentWriter(writeParams));\n this.fixDirsIfNested(componentWriterInstances);\n // add componentMap entries into .bitmap before starting the process because steps like writing package-json\n // rely on .bitmap to determine whether a dependency exists and what's its origin\n componentWriterInstances.forEach((componentWriter: ComponentWriter) => {\n componentWriter.existingComponentMap =\n componentWriter.existingComponentMap || componentWriter.addComponentToBitMap(componentWriter.writeToPath);\n });\n if (opts.resetConfig) {\n componentWriterInstances.forEach((componentWriter: ComponentWriter) => {\n delete componentWriter.existingComponentMap?.config;\n });\n }\n await mapSeries(componentWriterInstances, (componentWriter: ComponentWriter) =>\n componentWriter.populateComponentsFilesToWrite()\n );\n }\n /**\n * e.g. [bar, bar/foo] => [bar_1, bar/foo]\n * otherwise, the bar/foo component will be saved inside \"bar\" component.\n * in case bar_1 is taken, increment to bar_2 until the name is available.\n */\n private fixDirsIfNested(componentWriterInstances: ComponentWriter[]) {\n const allDirs = componentWriterInstances.map((c) => c.writeToPath);\n\n // get all components that their root-dir is a parent of other components root-dir.\n const parentsOfOthersComps = componentWriterInstances.filter(({ writeToPath }) =>\n allDirs.find((d) => d.startsWith(`${writeToPath}/`))\n );\n if (!parentsOfOthersComps.length) {\n return;\n }\n const parentsOfOthersCompsDirs = parentsOfOthersComps.map((c) => c.writeToPath);\n\n const incrementPath = (p: string, number: number) => `${p}_${number}`;\n const existingRootDirs = Object.keys(this.consumer.bitMap.getAllTrackDirs());\n const allPaths: PathLinuxRelative[] = [...existingRootDirs, ...parentsOfOthersCompsDirs];\n const incrementRecursively = (p: string) => {\n let num = 1;\n let newPath = incrementPath(p, num);\n while (allPaths.includes(newPath)) {\n newPath = incrementPath(p, (num += 1));\n }\n return newPath;\n };\n\n // change the paths of all these parents root-dir to not collide with the children root-dir\n parentsOfOthersComps.forEach((componentWriter) => {\n if (existingRootDirs.includes(componentWriter.writeToPath)) return; // component already exists.\n const newPath = incrementRecursively(componentWriter.writeToPath);\n componentWriter.writeToPath = newPath;\n });\n }\n\n private getWriteParamsOfOneComponent(\n component: ConsumerComponent,\n opts: ManyComponentsWriterParams\n ): ComponentWriterProps {\n const componentRootDir: PathLinuxRelative = opts.writeToPath\n ? pathNormalizeToLinux(this.consumer.getPathRelativeToConsumer(path.resolve(opts.writeToPath)))\n : this.consumer.composeRelativeComponentPath(component.id);\n const getParams = () => {\n if (!this.consumer) {\n return {};\n }\n // components can't be saved with multiple versions, so we can ignore the version to find the component in bit.map\n const componentMap = this.consumer.bitMap.getComponentIfExist(component.id, {\n ignoreVersion: true,\n });\n this.throwErrorWhenDirectoryNotEmpty(this.consumer.toAbsolutePath(componentRootDir), componentMap, opts);\n return {\n existingComponentMap: componentMap,\n };\n };\n return {\n consumer: this.consumer,\n bitMap: this.consumer.bitMap,\n component,\n writeToPath: componentRootDir,\n writeConfig: opts.writeConfig,\n ...getParams(),\n };\n }\n private moveComponentsIfNeeded(opts: ManyComponentsWriterParams) {\n if (opts.writeToPath && this.consumer) {\n opts.components.forEach((component) => {\n const componentMap = component.componentMap as ComponentMap;\n if (!componentMap.rootDir) {\n throw new GeneralError(`unable to use \"--path\" flag.\nto move individual files, use bit move.\nto move all component files to a different directory, run bit remove and then bit import --path`);\n }\n const relativeWrittenPath = component.writtenPath;\n // @ts-ignore relativeWrittenPath is set at this point\n const absoluteWrittenPath = this.consumer.toAbsolutePath(relativeWrittenPath);\n // @ts-ignore this.writeToPath is set at this point\n const absoluteWriteToPath = path.resolve(opts.writeToPath); // don't use consumer.toAbsolutePath, it might be an inner dir\n if (relativeWrittenPath && absoluteWrittenPath !== absoluteWriteToPath) {\n this.mover.moveExistingComponent(component, absoluteWrittenPath, absoluteWriteToPath);\n }\n });\n }\n }\n private throwErrorWhenDirectoryNotEmpty(\n componentDir: PathOsBasedAbsolute,\n componentMap: ComponentMap | null | undefined,\n opts: ManyComponentsWriterParams\n ) {\n if (opts.skipWritingToFs) return;\n // if not writeToPath specified, it goes to the default directory. When componentMap exists, the\n // component is not new, and it's ok to override the existing directory.\n if (!opts.writeToPath && componentMap) return;\n // if writeToPath specified and that directory is already used for that component, it's ok to override\n if (opts.writeToPath && componentMap && componentMap.rootDir && componentMap.rootDir === opts.writeToPath) return;\n\n if (fs.pathExistsSync(componentDir)) {\n if (!isDir(componentDir)) {\n throw new GeneralError(`unable to import to ${componentDir} because it's a file`);\n }\n if (!isDirEmptySync(componentDir) && opts.throwForExistingDir) {\n throw new GeneralError(\n `unable to import to ${componentDir}, the directory is not empty. use --override flag to delete the directory and then import`\n );\n }\n }\n }\n\n static slots = [];\n static dependencies = [InstallAspect, CompilerAspect, LoggerAspect, WorkspaceAspect, MoverAspect];\n static runtime = MainRuntime;\n static async provider([install, compiler, loggerMain, workspace, mover]: [\n InstallMain,\n CompilerMain,\n LoggerMain,\n Workspace,\n MoverMain\n ]) {\n const logger = loggerMain.createLogger(ComponentWriterAspect.id);\n return new ComponentWriterMain(install, compiler, workspace, logger, mover);\n }\n}\n\nComponentWriterAspect.addRuntime(ComponentWriterMain);\n\nexport default ComponentWriterMain;\n"],"mappings":"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"}
1
+ {"version":3,"names":["ComponentWriterMain","constructor","installer","compiler","workspace","logger","mover","consumer","writeMany","opts","debug","populateComponentsFilesToWrite","moveComponentsIfNeeded","persistComponentsData","skipUpdatingBitMap","writeBitMap","installationError","compilationError","skipDependencyInstallation","installPackagesGracefully","compileGracefully","installOpts","dedupe","updateExisting","import","install","undefined","err","consoleFailure","message","error","compileOnWorkspace","skipWritingToFs","dataToPersist","DataToPersist","components","forEach","component","merge","componentsConfig","config","hasChanged","jsonFiles","toVinyl","getPath","addManyFiles","addBasePath","persistAllToFS","writeComponentsParams","map","getWriteParamsOfOneComponent","componentWriterInstances","writeParams","ComponentWriter","fixDirsIfNested","componentWriter","existingComponentMap","addComponentToBitMap","writeToPath","resetConfig","mapSeries","allDirs","c","parentsOfOthersComps","filter","find","d","startsWith","length","parentsOfOthersCompsDirs","incrementPath","p","number","existingRootDirs","Object","keys","bitMap","getAllTrackDirs","allPaths","incrementRecursively","num","newPath","includes","componentRootDir","pathNormalizeToLinux","getPathRelativeToConsumer","path","resolve","composeRelativeComponentPath","id","getParams","componentMap","getComponentIfExist","ignoreVersion","throwErrorWhenDirectoryNotEmpty","toAbsolutePath","writeConfig","rootDir","GeneralError","relativeWrittenPath","writtenPath","absoluteWrittenPath","absoluteWriteToPath","moveExistingComponent","componentDir","fs","pathExistsSync","isDir","isDirEmptySync","throwForExistingDir","provider","loggerMain","createLogger","ComponentWriterAspect","InstallAspect","CompilerAspect","LoggerAspect","WorkspaceAspect","MoverAspect","MainRuntime","addRuntime"],"sources":["component-writer.main.runtime.ts"],"sourcesContent":["import { MainRuntime } from '@teambit/cli';\nimport { CompilerAspect, CompilerMain } from '@teambit/compiler';\nimport InstallAspect, { InstallMain } from '@teambit/install';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport fs from 'fs-extra';\nimport mapSeries from 'p-map-series';\nimport * as path from 'path';\nimport MoverAspect, { MoverMain } from '@teambit/mover';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport GeneralError from '@teambit/legacy/dist/error/general-error';\nimport { isDir, isDirEmptySync } from '@teambit/legacy/dist/utils';\nimport { PathLinuxRelative, pathNormalizeToLinux, PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\nimport ComponentMap from '@teambit/legacy/dist/consumer/bit-map/component-map';\nimport DataToPersist from '@teambit/legacy/dist/consumer/component/sources/data-to-persist';\nimport Consumer from '@teambit/legacy/dist/consumer/consumer';\nimport ComponentWriter, { ComponentWriterProps } from './component-writer';\nimport { ComponentWriterAspect } from './component-writer.aspect';\n\nexport interface ManyComponentsWriterParams {\n components: ConsumerComponent[];\n writeToPath?: string;\n throwForExistingDir?: boolean;\n writeConfig?: boolean;\n skipDependencyInstallation?: boolean;\n verbose?: boolean;\n resetConfig?: boolean;\n skipWritingToFs?: boolean;\n skipUpdatingBitMap?: boolean;\n}\n\nexport type ComponentWriterResults = { installationError?: Error; compilationError?: Error };\n\nexport class ComponentWriterMain {\n constructor(\n private installer: InstallMain,\n private compiler: CompilerMain,\n private workspace: Workspace,\n private logger: Logger,\n private mover: MoverMain\n ) {}\n\n get consumer(): Consumer {\n return this.workspace.consumer;\n }\n\n async writeMany(opts: ManyComponentsWriterParams): Promise<ComponentWriterResults> {\n this.logger.debug('writeMany, started');\n await this.populateComponentsFilesToWrite(opts);\n this.moveComponentsIfNeeded(opts);\n await this.persistComponentsData(opts);\n if (!opts.skipUpdatingBitMap) await this.consumer.writeBitMap();\n let installationError: Error | undefined;\n let compilationError: Error | undefined;\n if (!opts.skipDependencyInstallation) {\n installationError = await this.installPackagesGracefully();\n // no point to compile if the installation is not running. the environment is not ready.\n compilationError = await this.compileGracefully();\n }\n this.logger.debug('writeMany, completed!');\n return { installationError, compilationError };\n }\n\n private async installPackagesGracefully(): Promise<Error | undefined> {\n this.logger.debug('installPackagesGracefully, start installing packages');\n try {\n const installOpts = {\n dedupe: true,\n updateExisting: false,\n import: false,\n };\n await this.installer.install(undefined, installOpts);\n this.logger.debug('installPackagesGracefully, completed installing packages successfully');\n return undefined;\n } catch (err: any) {\n this.logger.consoleFailure(`installation failed with the following error: ${err.message}`);\n this.logger.error('installPackagesGracefully, package-installer found an error', err);\n return err;\n }\n }\n private async compileGracefully(): Promise<Error | undefined> {\n try {\n await this.compiler.compileOnWorkspace();\n return undefined;\n } catch (err: any) {\n this.logger.consoleFailure(`compilation failed with the following error: ${err.message}`);\n this.logger.error('compileGracefully, compiler found an error', err);\n return err;\n }\n }\n private async persistComponentsData(opts: ManyComponentsWriterParams) {\n if (opts.skipWritingToFs) return;\n const dataToPersist = new DataToPersist();\n opts.components.forEach((component) => dataToPersist.merge(component.dataToPersist));\n const componentsConfig = this.consumer?.config?.componentsConfig;\n if (componentsConfig?.hasChanged) {\n const jsonFiles = await this.consumer?.config.toVinyl(this.consumer.getPath());\n if (jsonFiles) {\n dataToPersist.addManyFiles(jsonFiles);\n }\n }\n dataToPersist.addBasePath(this.consumer.getPath());\n await dataToPersist.persistAllToFS();\n }\n private async populateComponentsFilesToWrite(opts: ManyComponentsWriterParams) {\n const writeComponentsParams = opts.components.map((component) =>\n this.getWriteParamsOfOneComponent(component, opts)\n );\n const componentWriterInstances = writeComponentsParams.map((writeParams) => new ComponentWriter(writeParams));\n this.fixDirsIfNested(componentWriterInstances);\n // add componentMap entries into .bitmap before starting the process because steps like writing package-json\n // rely on .bitmap to determine whether a dependency exists and what's its origin\n componentWriterInstances.forEach((componentWriter: ComponentWriter) => {\n componentWriter.existingComponentMap =\n componentWriter.existingComponentMap || componentWriter.addComponentToBitMap(componentWriter.writeToPath);\n });\n if (opts.resetConfig) {\n componentWriterInstances.forEach((componentWriter: ComponentWriter) => {\n delete componentWriter.existingComponentMap?.config;\n });\n }\n await mapSeries(componentWriterInstances, (componentWriter: ComponentWriter) =>\n componentWriter.populateComponentsFilesToWrite()\n );\n }\n /**\n * e.g. [bar, bar/foo] => [bar_1, bar/foo]\n * otherwise, the bar/foo component will be saved inside \"bar\" component.\n * in case bar_1 is taken, increment to bar_2 until the name is available.\n */\n private fixDirsIfNested(componentWriterInstances: ComponentWriter[]) {\n const allDirs = componentWriterInstances.map((c) => c.writeToPath);\n\n // get all components that their root-dir is a parent of other components root-dir.\n const parentsOfOthersComps = componentWriterInstances.filter(({ writeToPath }) =>\n allDirs.find((d) => d.startsWith(`${writeToPath}/`))\n );\n if (!parentsOfOthersComps.length) {\n return;\n }\n const parentsOfOthersCompsDirs = parentsOfOthersComps.map((c) => c.writeToPath);\n\n const incrementPath = (p: string, number: number) => `${p}_${number}`;\n const existingRootDirs = Object.keys(this.consumer.bitMap.getAllTrackDirs());\n const allPaths: PathLinuxRelative[] = [...existingRootDirs, ...parentsOfOthersCompsDirs];\n const incrementRecursively = (p: string) => {\n let num = 1;\n let newPath = incrementPath(p, num);\n while (allPaths.includes(newPath)) {\n newPath = incrementPath(p, (num += 1));\n }\n return newPath;\n };\n\n // change the paths of all these parents root-dir to not collide with the children root-dir\n parentsOfOthersComps.forEach((componentWriter) => {\n if (existingRootDirs.includes(componentWriter.writeToPath)) return; // component already exists.\n const newPath = incrementRecursively(componentWriter.writeToPath);\n componentWriter.writeToPath = newPath;\n });\n }\n\n private getWriteParamsOfOneComponent(\n component: ConsumerComponent,\n opts: ManyComponentsWriterParams\n ): ComponentWriterProps {\n const componentRootDir: PathLinuxRelative = opts.writeToPath\n ? pathNormalizeToLinux(this.consumer.getPathRelativeToConsumer(path.resolve(opts.writeToPath)))\n : this.consumer.composeRelativeComponentPath(component.id);\n const getParams = () => {\n if (!this.consumer) {\n return {};\n }\n // components can't be saved with multiple versions, so we can ignore the version to find the component in bit.map\n const componentMap = this.consumer.bitMap.getComponentIfExist(component.id, {\n ignoreVersion: true,\n });\n this.throwErrorWhenDirectoryNotEmpty(this.consumer.toAbsolutePath(componentRootDir), componentMap, opts);\n return {\n existingComponentMap: componentMap,\n };\n };\n return {\n consumer: this.consumer,\n bitMap: this.consumer.bitMap,\n component,\n writeToPath: componentRootDir,\n writeConfig: opts.writeConfig,\n skipUpdatingBitMap: opts.skipUpdatingBitMap,\n ...getParams(),\n };\n }\n private moveComponentsIfNeeded(opts: ManyComponentsWriterParams) {\n if (opts.writeToPath && this.consumer) {\n opts.components.forEach((component) => {\n const componentMap = component.componentMap as ComponentMap;\n if (!componentMap.rootDir) {\n throw new GeneralError(`unable to use \"--path\" flag.\nto move individual files, use bit move.\nto move all component files to a different directory, run bit remove and then bit import --path`);\n }\n const relativeWrittenPath = component.writtenPath;\n // @ts-ignore relativeWrittenPath is set at this point\n const absoluteWrittenPath = this.consumer.toAbsolutePath(relativeWrittenPath);\n // @ts-ignore this.writeToPath is set at this point\n const absoluteWriteToPath = path.resolve(opts.writeToPath); // don't use consumer.toAbsolutePath, it might be an inner dir\n if (relativeWrittenPath && absoluteWrittenPath !== absoluteWriteToPath) {\n this.mover.moveExistingComponent(component, absoluteWrittenPath, absoluteWriteToPath);\n }\n });\n }\n }\n private throwErrorWhenDirectoryNotEmpty(\n componentDir: PathOsBasedAbsolute,\n componentMap: ComponentMap | null | undefined,\n opts: ManyComponentsWriterParams\n ) {\n if (opts.skipWritingToFs) return;\n // if not writeToPath specified, it goes to the default directory. When componentMap exists, the\n // component is not new, and it's ok to override the existing directory.\n if (!opts.writeToPath && componentMap) return;\n // if writeToPath specified and that directory is already used for that component, it's ok to override\n if (opts.writeToPath && componentMap && componentMap.rootDir && componentMap.rootDir === opts.writeToPath) return;\n\n if (fs.pathExistsSync(componentDir)) {\n if (!isDir(componentDir)) {\n throw new GeneralError(`unable to import to ${componentDir} because it's a file`);\n }\n if (!isDirEmptySync(componentDir) && opts.throwForExistingDir) {\n throw new GeneralError(\n `unable to import to ${componentDir}, the directory is not empty. use --override flag to delete the directory and then import`\n );\n }\n }\n }\n\n static slots = [];\n static dependencies = [InstallAspect, CompilerAspect, LoggerAspect, WorkspaceAspect, MoverAspect];\n static runtime = MainRuntime;\n static async provider([install, compiler, loggerMain, workspace, mover]: [\n InstallMain,\n CompilerMain,\n LoggerMain,\n Workspace,\n MoverMain\n ]) {\n const logger = loggerMain.createLogger(ComponentWriterAspect.id);\n return new ComponentWriterMain(install, compiler, workspace, logger, mover);\n }\n}\n\nComponentWriterAspect.addRuntime(ComponentWriterMain);\n\nexport default ComponentWriterMain;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/component-writer",
3
- "version": "0.0.98",
3
+ "version": "0.0.100",
4
4
  "homepage": "https://bit.cloud/teambit/component/component-writer",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "component-writer",
9
- "version": "0.0.98"
9
+ "version": "0.0.100"
10
10
  },
11
11
  "dependencies": {
12
12
  "fs-extra": "10.0.0",
@@ -14,12 +14,12 @@
14
14
  "core-js": "^3.0.0",
15
15
  "@babel/runtime": "7.20.0",
16
16
  "@teambit/harmony": "0.4.6",
17
- "@teambit/cli": "0.0.715",
18
- "@teambit/compiler": "0.0.1062",
19
- "@teambit/install": "0.0.170",
20
- "@teambit/logger": "0.0.808",
21
- "@teambit/mover": "0.0.93",
22
- "@teambit/workspace": "0.0.1062"
17
+ "@teambit/cli": "0.0.717",
18
+ "@teambit/compiler": "0.0.1064",
19
+ "@teambit/install": "0.0.172",
20
+ "@teambit/logger": "0.0.810",
21
+ "@teambit/mover": "0.0.95",
22
+ "@teambit/workspace": "0.0.1064"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/fs-extra": "9.0.7",
@@ -31,7 +31,7 @@
31
31
  "@types/testing-library__jest-dom": "5.9.5"
32
32
  },
33
33
  "peerDependencies": {
34
- "@teambit/legacy": "1.0.495",
34
+ "@teambit/legacy": "1.0.497",
35
35
  "react": "^16.8.0 || ^17.0.0",
36
36
  "react-dom": "^16.8.0 || ^17.0.0"
37
37
  },