@teambit/doctor 0.0.13 → 0.0.14

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.
@@ -1,5 +1,5 @@
1
1
  import execa from 'execa';
2
- import getGitExecutablePath from '@teambit/legacy/dist/utils/git/git-executable';
2
+ import { getGitExecutablePath } from '@teambit/git.modules.git-executable';
3
3
  import Diagnosis, { ExamineBareResult } from '../diagnosis';
4
4
 
5
5
  export const DIAGNOSIS_NAME_VALIDATE_GIT_EXEC = 'validate git exec';
@@ -11,9 +11,9 @@ function _execa() {
11
11
  };
12
12
  return data;
13
13
  }
14
- function _gitExecutable() {
15
- const data = _interopRequireDefault(require("@teambit/legacy/dist/utils/git/git-executable"));
16
- _gitExecutable = function () {
14
+ function _gitModules() {
15
+ const data = require("@teambit/git.modules.git-executable");
16
+ _gitModules = function () {
17
17
  return data;
18
18
  };
19
19
  return data;
@@ -46,7 +46,7 @@ class ValidateGitExec extends _diagnosis().default {
46
46
  return "please ensure that git is installed and/or git_path is configured correctly - 'bit config set git_path <GIT_PATH>'";
47
47
  }
48
48
  async _runExamine() {
49
- const gitExecutablePath = (0, _gitExecutable().default)();
49
+ const gitExecutablePath = (0, _gitModules().getGitExecutablePath)();
50
50
  try {
51
51
  await (0, _execa().default)(gitExecutablePath, ['--version']);
52
52
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["_execa","data","_interopRequireDefault","require","_gitExecutable","_diagnosis","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DIAGNOSIS_NAME_VALIDATE_GIT_EXEC","exports","ValidateGitExec","Diagnosis","constructor","args","_formatSymptoms","bareResult","_bareResult$data","gitExecutablePath","_formatManualTreat","_runExamine","getGitExecutablePath","execa","valid","err"],"sources":["validate-git-exec.ts"],"sourcesContent":["import execa from 'execa';\nimport getGitExecutablePath from '@teambit/legacy/dist/utils/git/git-executable';\nimport Diagnosis, { ExamineBareResult } from '../diagnosis';\n\nexport const DIAGNOSIS_NAME_VALIDATE_GIT_EXEC = 'validate git exec';\nexport default class ValidateGitExec extends Diagnosis {\n name = DIAGNOSIS_NAME_VALIDATE_GIT_EXEC;\n description = 'validate that git executable found';\n category = 'vendors';\n\n _formatSymptoms(bareResult: ExamineBareResult): string {\n const gitExecutablePath = bareResult?.data?.gitExecutablePath;\n return `git executable not found (path '${gitExecutablePath}')`;\n }\n\n _formatManualTreat() {\n return \"please ensure that git is installed and/or git_path is configured correctly - 'bit config set git_path <GIT_PATH>'\";\n }\n\n async _runExamine(): Promise<ExamineBareResult> {\n const gitExecutablePath = getGitExecutablePath();\n try {\n await execa(gitExecutablePath, ['--version']);\n return {\n valid: true,\n };\n } catch (err: any) {\n // if (err.code === 'ENOENT') {\n // }\n return {\n valid: false,\n data: {\n gitExecutablePath,\n },\n };\n }\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,eAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,cAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,WAAA;EAAA,MAAAJ,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAE,UAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA4D,SAAAC,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,gBAAAH,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAJ,CAAA,GAAAO,MAAA,CAAAC,cAAA,CAAAR,CAAA,EAAAI,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAZ,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAM,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAhB,CAAA,QAAAa,CAAA,GAAAb,CAAA,CAAAiB,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAErD,MAAMgB,gCAAgC,GAAAC,OAAA,CAAAD,gCAAA,GAAG,mBAAmB;AACpD,MAAME,eAAe,SAASC,oBAAS,CAAC;EAAAC,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAvB,eAAA,eAC9CkB,gCAAgC;IAAAlB,eAAA,sBACzB,oCAAoC;IAAAA,eAAA,mBACvC,SAAS;EAAA;EAEpBwB,eAAeA,CAACC,UAA6B,EAAU;IAAA,IAAAC,gBAAA;IACrD,MAAMC,iBAAiB,GAAGF,UAAU,aAAVA,UAAU,gBAAAC,gBAAA,GAAVD,UAAU,CAAEjC,IAAI,cAAAkC,gBAAA,uBAAhBA,gBAAA,CAAkBC,iBAAiB;IAC7D,OAAO,mCAAmCA,iBAAiB,IAAI;EACjE;EAEAC,kBAAkBA,CAAA,EAAG;IACnB,OAAO,oHAAoH;EAC7H;EAEA,MAAMC,WAAWA,CAAA,EAA+B;IAC9C,MAAMF,iBAAiB,GAAG,IAAAG,wBAAoB,EAAC,CAAC;IAChD,IAAI;MACF,MAAM,IAAAC,gBAAK,EAACJ,iBAAiB,EAAE,CAAC,WAAW,CAAC,CAAC;MAC7C,OAAO;QACLK,KAAK,EAAE;MACT,CAAC;IACH,CAAC,CAAC,OAAOC,GAAQ,EAAE;MACjB;MACA;MACA,OAAO;QACLD,KAAK,EAAE,KAAK;QACZxC,IAAI,EAAE;UACJmC;QACF;MACF,CAAC;IACH;EACF;AACF;AAACR,OAAA,CAAApB,OAAA,GAAAqB,eAAA","ignoreList":[]}
1
+ {"version":3,"names":["_execa","data","_interopRequireDefault","require","_gitModules","_diagnosis","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DIAGNOSIS_NAME_VALIDATE_GIT_EXEC","exports","ValidateGitExec","Diagnosis","constructor","args","_formatSymptoms","bareResult","_bareResult$data","gitExecutablePath","_formatManualTreat","_runExamine","getGitExecutablePath","execa","valid","err"],"sources":["validate-git-exec.ts"],"sourcesContent":["import execa from 'execa';\nimport { getGitExecutablePath } from '@teambit/git.modules.git-executable';\nimport Diagnosis, { ExamineBareResult } from '../diagnosis';\n\nexport const DIAGNOSIS_NAME_VALIDATE_GIT_EXEC = 'validate git exec';\nexport default class ValidateGitExec extends Diagnosis {\n name = DIAGNOSIS_NAME_VALIDATE_GIT_EXEC;\n description = 'validate that git executable found';\n category = 'vendors';\n\n _formatSymptoms(bareResult: ExamineBareResult): string {\n const gitExecutablePath = bareResult?.data?.gitExecutablePath;\n return `git executable not found (path '${gitExecutablePath}')`;\n }\n\n _formatManualTreat() {\n return \"please ensure that git is installed and/or git_path is configured correctly - 'bit config set git_path <GIT_PATH>'\";\n }\n\n async _runExamine(): Promise<ExamineBareResult> {\n const gitExecutablePath = getGitExecutablePath();\n try {\n await execa(gitExecutablePath, ['--version']);\n return {\n valid: true,\n };\n } catch (err: any) {\n // if (err.code === 'ENOENT') {\n // }\n return {\n valid: false,\n data: {\n gitExecutablePath,\n },\n };\n }\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,YAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,WAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,WAAA;EAAA,MAAAJ,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAE,UAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA4D,SAAAC,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,gBAAAH,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAJ,CAAA,GAAAO,MAAA,CAAAC,cAAA,CAAAR,CAAA,EAAAI,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAZ,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAM,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAhB,CAAA,QAAAa,CAAA,GAAAb,CAAA,CAAAiB,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAErD,MAAMgB,gCAAgC,GAAAC,OAAA,CAAAD,gCAAA,GAAG,mBAAmB;AACpD,MAAME,eAAe,SAASC,oBAAS,CAAC;EAAAC,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAvB,eAAA,eAC9CkB,gCAAgC;IAAAlB,eAAA,sBACzB,oCAAoC;IAAAA,eAAA,mBACvC,SAAS;EAAA;EAEpBwB,eAAeA,CAACC,UAA6B,EAAU;IAAA,IAAAC,gBAAA;IACrD,MAAMC,iBAAiB,GAAGF,UAAU,aAAVA,UAAU,gBAAAC,gBAAA,GAAVD,UAAU,CAAEjC,IAAI,cAAAkC,gBAAA,uBAAhBA,gBAAA,CAAkBC,iBAAiB;IAC7D,OAAO,mCAAmCA,iBAAiB,IAAI;EACjE;EAEAC,kBAAkBA,CAAA,EAAG;IACnB,OAAO,oHAAoH;EAC7H;EAEA,MAAMC,WAAWA,CAAA,EAA+B;IAC9C,MAAMF,iBAAiB,GAAG,IAAAG,kCAAoB,EAAC,CAAC;IAChD,IAAI;MACF,MAAM,IAAAC,gBAAK,EAACJ,iBAAiB,EAAE,CAAC,WAAW,CAAC,CAAC;MAC7C,OAAO;QACLK,KAAK,EAAE;MACT,CAAC;IACH,CAAC,CAAC,OAAOC,GAAQ,EAAE;MACjB;MACA;MACA,OAAO;QACLD,KAAK,EAAE,KAAK;QACZxC,IAAI,EAAE;UACJmC;QACF;MACF,CAAC;IACH;EACF;AACF;AAACR,OAAA,CAAApB,OAAA,GAAAqB,eAAA","ignoreList":[]}
package/dist/doctor.js CHANGED
@@ -55,9 +55,9 @@ function _constants() {
55
55
  };
56
56
  return data;
57
57
  }
58
- function _bitMap() {
59
- const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/bit-map"));
60
- _bitMap = function () {
58
+ function _legacy() {
59
+ const data = require("@teambit/legacy.bit-map");
60
+ _legacy = function () {
61
61
  return data;
62
62
  };
63
63
  return data;
@@ -97,9 +97,16 @@ function _logger() {
97
97
  };
98
98
  return data;
99
99
  }
100
- function _utils() {
101
- const data = require("@teambit/legacy/dist/utils");
102
- _utils = function () {
100
+ function _legacy2() {
101
+ const data = require("@teambit/legacy.utils");
102
+ _legacy2 = function () {
103
+ return data;
104
+ };
105
+ return data;
106
+ }
107
+ function _toolboxFs() {
108
+ const data = require("@teambit/toolbox.fs.extension-getter");
109
+ _toolboxFs = function () {
103
110
  return data;
104
111
  };
105
112
  return data;
@@ -218,13 +225,21 @@ async function _saveExamineResultsToFile(examineResults, envMeta, options) {
218
225
  });
219
226
  });
220
227
  }
228
+ function getWithoutExt(filename) {
229
+ const ext = (0, _toolboxFs().getExt)(filename);
230
+ // There is no extension just return the file name
231
+ if (ext === filename) {
232
+ return filename;
233
+ }
234
+ return filename.substring(0, filename.length - ext.length - 1); // -1 to remove the '.'
235
+ }
221
236
  function _calculateFinalFileName(fileName) {
222
237
  if (fileName === '.') {
223
238
  return _getDefaultFileName();
224
239
  }
225
240
  let finalFileName = fileName;
226
- if ((0, _utils().getExt)(fileName) !== 'tar' && (0, _utils().getExt)(fileName) !== 'tar.gz') {
227
- finalFileName = `${(0, _utils().getWithoutExt)(finalFileName)}.tar`;
241
+ if ((0, _toolboxFs().getExt)(fileName) !== 'tar' && (0, _toolboxFs().getExt)(fileName) !== 'tar.gz') {
242
+ finalFileName = `${getWithoutExt(finalFileName)}.tar`;
228
243
  }
229
244
  return finalFileName;
230
245
  }
@@ -328,7 +343,7 @@ async function _getDebugLogAsBuffer() {
328
343
  const exists = await _fsExtra().default.pathExists(_constants().DEBUG_LOG);
329
344
  if (!exists) return null;
330
345
  const log = await _fsExtra().default.readFile(_constants().DEBUG_LOG, 'utf-8');
331
- const logWithoutChalk = (0, _utils().removeChalkCharacters)(log);
346
+ const logWithoutChalk = (0, _legacy2().removeChalkCharacters)(log);
332
347
  return Buffer.from(logWithoutChalk);
333
348
  }
334
349
  async function _getConsumerInfo() {
@@ -336,7 +351,7 @@ async function _getConsumerInfo() {
336
351
  return consumerInfo;
337
352
  }
338
353
  function _getBitMap(workspaceDir) {
339
- return _bitMap().default.loadRawSync(workspaceDir);
354
+ return _legacy().BitMap.loadRawSync(workspaceDir);
340
355
  }
341
356
 
342
357
  //# sourceMappingURL=doctor.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_os","_path","_tarStream","_tarFs","_bit","_constants","_bitMap","_workspaceConfig","_consumerLocator","_doctorRegistrar","_doctorRegistrarBuilder","_logger","_utils","_scopeModules","globalConfig","_interopRequireWildcard","_validateNpmExec","_validateYarnExec","_diagnosisNotFound","_missingDiagnosisName","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_objectWithoutProperties","o","_objectWithoutPropertiesLoose","getOwnPropertySymbols","length","indexOf","propertyIsEnumerable","runningTimeStamp","runAll","options","registerCoreAndExtensionsDiagnoses","_getTimeStamp","doctorRegistrar","DoctorRegistrar","getInstance","examineP","diagnoses","map","diagnosis","examine","examineResults","Promise","all","envMeta","_getEnvMeta","savedFilePath","_saveExamineResultsToFile","metaData","runOne","_ref","diagnosisName","MissingDiagnosisName","getDiagnosisByName","DiagnosisNotFound","examineResult","listDiagnoses","resolve","filePath","undefined","finalFilePath","_calculateFinalFileName","packStream","_generateExamineResultsTarFile","yourTarball","fs","createWriteStream","pipe","on","logger","info","fileName","_getDefaultFileName","finalFileName","getExt","getWithoutExt","timestamp","d","Date","getTime","tarFilePath","archiveWorkspace","includeNodeModules","includePublic","excludeLocalScope","debugLog","_getDebugLogAsBuffer","consumerInfo","_getConsumerInfo","bitmap","path","_getBitMap","packExamineResults","pack","entry","name","JSON","stringify","hasConsumerConfig","scopePath","findScopePath","config","WorkspaceConfig","loadIfExist","legacyPlainConfig","_legacyPlainObject","finalize","tar","ignore","startsWith","sep","includes","isGit","isLocalScope","myPack","tarFS","finish","env","nodeVersion","process","version","runningTimestamp","platform","os","bitVersion","getBitVersion","npmVersion","getNpmVersion","yarnVersion","getYarnVersion","userDetails","_getUserDetails","getSync","CFG_USER_NAME_KEY","email","CFG_USER_EMAIL_KEY","exists","pathExists","DEBUG_LOG","log","readFile","logWithoutChalk","removeChalkCharacters","Buffer","from","getConsumerInfo","cwd","workspaceDir","BitMap","loadRawSync"],"sources":["doctor.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport os from 'os';\n// @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\nimport Stream from 'stream';\nimport path from 'path';\nimport tar from 'tar-stream';\nimport tarFS from 'tar-fs';\nimport { getBitVersion } from '@teambit/bit.get-bit-version';\nimport { CFG_USER_EMAIL_KEY, CFG_USER_NAME_KEY, DEBUG_LOG } from '@teambit/legacy/dist/constants';\nimport BitMap from '@teambit/legacy/dist/consumer/bit-map';\nimport WorkspaceConfig from '@teambit/legacy/dist/consumer/config/workspace-config';\nimport { ConsumerInfo, getConsumerInfo } from '@teambit/legacy/dist/consumer/consumer-locator';\nimport Diagnosis, { ExamineResult } from './diagnosis';\nimport DoctorRegistrar from './doctor-registrar';\nimport registerCoreAndExtensionsDiagnoses from './doctor-registrar-builder';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { getExt, getWithoutExt, removeChalkCharacters } from '@teambit/legacy/dist/utils';\nimport { findScopePath } from '@teambit/scope.modules.find-scope-path';\nimport * as globalConfig from '@teambit/legacy/dist/api/consumer/lib/global-config';\nimport { getNpmVersion } from './core-diagnoses/validate-npm-exec';\nimport { getYarnVersion } from './core-diagnoses/validate-yarn-exec';\nimport { DiagnosisNotFound } from './exceptions/diagnosis-not-found';\nimport { MissingDiagnosisName } from './exceptions/missing-diagnosis-name';\n\n// run specific check\nexport type DoctorMetaData = {\n nodeVersion: string;\n runningTimestamp: number;\n platform: string;\n bitVersion: string;\n npmVersion: string;\n yarnVersion: string;\n userDetails: string;\n};\nexport type DoctorRunAllResults = {\n examineResults: ExamineResult[];\n savedFilePath: string | null | undefined;\n metaData: DoctorMetaData;\n};\nexport type DoctorRunOneResult = {\n examineResult: ExamineResult;\n savedFilePath: string | null | undefined;\n metaData: DoctorMetaData;\n};\n\nlet runningTimeStamp;\n\nexport type DoctorOptions = {\n diagnosisName?: string;\n filePath?: string;\n archiveWorkspace?: boolean;\n includeNodeModules?: boolean;\n includePublic?: boolean;\n excludeLocalScope?: boolean;\n};\n\nexport default async function runAll(options: DoctorOptions): Promise<DoctorRunAllResults> {\n registerCoreAndExtensionsDiagnoses();\n runningTimeStamp = _getTimeStamp();\n const doctorRegistrar = DoctorRegistrar.getInstance();\n const examineP = doctorRegistrar.diagnoses.map((diagnosis) => diagnosis.examine());\n const examineResults = await Promise.all(examineP);\n const envMeta = await _getEnvMeta();\n const savedFilePath = await _saveExamineResultsToFile(examineResults, envMeta, options);\n return { examineResults, savedFilePath, metaData: envMeta };\n}\n\nexport async function runOne({ diagnosisName, ...options }: DoctorOptions): Promise<DoctorRunOneResult> {\n if (!diagnosisName) {\n throw new MissingDiagnosisName();\n }\n registerCoreAndExtensionsDiagnoses();\n runningTimeStamp = _getTimeStamp();\n const doctorRegistrar = DoctorRegistrar.getInstance();\n const diagnosis = doctorRegistrar.getDiagnosisByName(diagnosisName);\n if (!diagnosis) {\n throw new DiagnosisNotFound(diagnosisName);\n }\n const examineResult = await diagnosis.examine();\n const envMeta = await _getEnvMeta();\n const savedFilePath = await _saveExamineResultsToFile([examineResult], envMeta, options);\n return { examineResult, savedFilePath, metaData: envMeta };\n}\n\nexport async function listDiagnoses(): Promise<Diagnosis[]> {\n registerCoreAndExtensionsDiagnoses();\n const doctorRegistrar = DoctorRegistrar.getInstance();\n return Promise.resolve(doctorRegistrar.diagnoses);\n}\n\nasync function _saveExamineResultsToFile(\n examineResults: ExamineResult[],\n envMeta: DoctorMetaData,\n options: DoctorOptions\n): Promise<string | null | undefined> {\n if (!options.filePath) {\n return Promise.resolve(undefined);\n }\n const finalFilePath = _calculateFinalFileName(options.filePath);\n const packStream = await _generateExamineResultsTarFile(examineResults, envMeta, finalFilePath, options);\n\n const yourTarball = fs.createWriteStream(finalFilePath);\n\n packStream.pipe(yourTarball);\n\n return new Promise((resolve) => {\n yourTarball.on('close', function () {\n logger.info(`wrote a file by bit doctor, file path: ${finalFilePath}`);\n resolve(finalFilePath);\n // fs.stat(finalFilePath, function (err, stats) {\n // if (err) throw err\n // console.log(stats)\n // console.log('Got file info successfully!')\n // })\n });\n });\n}\n\nfunction _calculateFinalFileName(fileName: string): string {\n if (fileName === '.') {\n return _getDefaultFileName();\n }\n let finalFileName = fileName;\n if (getExt(fileName) !== 'tar' && getExt(fileName) !== 'tar.gz') {\n finalFileName = `${getWithoutExt(finalFileName)}.tar`;\n }\n return finalFileName;\n}\n\nfunction _getDefaultFileName() {\n const timestamp = runningTimeStamp || _getTimeStamp();\n return `doctor-results-${timestamp}.tar`;\n}\n\n// TODO: move to utils\nfunction _getTimeStamp() {\n const d = new Date();\n const timestamp = d.getTime();\n return timestamp;\n}\n\nasync function _generateExamineResultsTarFile(\n examineResults: ExamineResult[],\n envMeta: DoctorMetaData,\n tarFilePath: string,\n options: DoctorOptions\n): Promise<Stream.Readable> {\n const { archiveWorkspace, includeNodeModules, includePublic, excludeLocalScope } = options;\n const debugLog = await _getDebugLogAsBuffer();\n const consumerInfo = await _getConsumerInfo();\n let bitmap;\n if (consumerInfo && consumerInfo.path) {\n bitmap = _getBitMap(consumerInfo.path);\n }\n\n const packExamineResults = async (pack) => {\n pack.entry({ name: 'env-meta.json' }, JSON.stringify(envMeta, null, 2));\n pack.entry({ name: 'doc-results.json' }, JSON.stringify(examineResults, null, 2));\n if (debugLog) {\n pack.entry({ name: 'debug.log' }, debugLog);\n }\n if (!archiveWorkspace && bitmap) {\n pack.entry({ name: '.bitmap' }, bitmap);\n }\n if (consumerInfo && consumerInfo.hasConsumerConfig) {\n // TODO: support new config as well\n const scopePath = findScopePath(consumerInfo.path);\n const config = scopePath ? await WorkspaceConfig.loadIfExist(consumerInfo.path, scopePath) : undefined;\n const legacyPlainConfig = config?._legacyPlainObject();\n if (legacyPlainConfig) {\n pack.entry({ name: 'config.json' }, JSON.stringify(legacyPlainConfig, null, 4));\n }\n }\n\n pack.finalize();\n\n return pack;\n };\n\n if (!archiveWorkspace) {\n const pack = tar.pack(); // pack is a streams2 stream\n return packExamineResults(pack);\n }\n\n const ignore = (fileName: string) => {\n if (fileName === tarFilePath) return true;\n if (fileName === '.DS_Store') return true;\n if (\n !includeNodeModules &&\n (fileName.startsWith(`node_modules${path.sep}`) || fileName.includes(`${path.sep}node_modules${path.sep}`))\n )\n return true;\n if (\n !includePublic &&\n (fileName.startsWith(`public${path.sep}`) || fileName.includes(`${path.sep}public${path.sep}`))\n )\n return true;\n const isGit = fileName.startsWith(`.git${path.sep}`);\n const isLocalScope = fileName.startsWith(`.bit${path.sep}`) || fileName.startsWith(`.git${path.sep}bit${path.sep}`);\n if (excludeLocalScope && isLocalScope) return true;\n if (isGit && !isLocalScope) return true;\n return false;\n };\n\n const myPack = tarFS.pack('.', {\n ignore,\n finalize: false,\n finish: packExamineResults,\n });\n\n return myPack;\n}\n\nasync function _getEnvMeta(): Promise<DoctorMetaData> {\n const env = {\n nodeVersion: process.version,\n runningTimestamp: runningTimeStamp || _getTimeStamp(),\n platform: os.platform(),\n bitVersion: getBitVersion(),\n npmVersion: await getNpmVersion(),\n yarnVersion: await getYarnVersion(),\n userDetails: _getUserDetails(),\n };\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return env;\n}\n\nfunction _getUserDetails(): string {\n const name = globalConfig.getSync(CFG_USER_NAME_KEY) || '';\n const email = globalConfig.getSync(CFG_USER_EMAIL_KEY) || '';\n return `${name}<${email}>`;\n}\n\nasync function _getDebugLogAsBuffer(): Promise<Buffer | null | undefined> {\n const exists = await fs.pathExists(DEBUG_LOG);\n if (!exists) return null;\n const log = await fs.readFile(DEBUG_LOG, 'utf-8');\n const logWithoutChalk = removeChalkCharacters(log) as string;\n return Buffer.from(logWithoutChalk);\n}\n\nasync function _getConsumerInfo(): Promise<ConsumerInfo | null | undefined> {\n const consumerInfo = await getConsumerInfo(process.cwd());\n return consumerInfo;\n}\n\nfunction _getBitMap(workspaceDir): Buffer | null | undefined {\n return BitMap.loadRawSync(workspaceDir);\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,IAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,GAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAI,MAAA;EAAA,MAAAJ,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAE,KAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,WAAA;EAAA,MAAAL,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAG,UAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,OAAA;EAAA,MAAAN,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAI,MAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,KAAA;EAAA,MAAAP,IAAA,GAAAE,OAAA;EAAAK,IAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,WAAA;EAAA,MAAAR,IAAA,GAAAE,OAAA;EAAAM,UAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAS,QAAA;EAAA,MAAAT,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAO,OAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAU,iBAAA;EAAA,MAAAV,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAQ,gBAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAW,iBAAA;EAAA,MAAAX,IAAA,GAAAE,OAAA;EAAAS,gBAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAY,iBAAA;EAAA,MAAAZ,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAU,gBAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAa,wBAAA;EAAA,MAAAb,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAW,uBAAA,YAAAA,CAAA;IAAA,OAAAb,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAc,QAAA;EAAA,MAAAd,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAY,OAAA,YAAAA,CAAA;IAAA,OAAAd,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAe,OAAA;EAAA,MAAAf,IAAA,GAAAE,OAAA;EAAAa,MAAA,YAAAA,CAAA;IAAA,OAAAf,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAgB,cAAA;EAAA,MAAAhB,IAAA,GAAAE,OAAA;EAAAc,aAAA,YAAAA,CAAA;IAAA,OAAAhB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAiB,aAAA;EAAA,MAAAjB,IAAA,GAAAkB,uBAAA,CAAAhB,OAAA;EAAAe,YAAA,YAAAA,CAAA;IAAA,OAAAjB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAmB,iBAAA;EAAA,MAAAnB,IAAA,GAAAE,OAAA;EAAAiB,gBAAA,YAAAA,CAAA;IAAA,OAAAnB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAoB,kBAAA;EAAA,MAAApB,IAAA,GAAAE,OAAA;EAAAkB,iBAAA,YAAAA,CAAA;IAAA,OAAApB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAqB,mBAAA;EAAA,MAAArB,IAAA,GAAAE,OAAA;EAAAmB,kBAAA,YAAAA,CAAA;IAAA,OAAArB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAsB,sBAAA;EAAA,MAAAtB,IAAA,GAAAE,OAAA;EAAAoB,qBAAA,YAAAA,CAAA;IAAA,OAAAtB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA2E,MAAAuB,SAAA,sBApB3E;AAAA,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAP,wBAAAO,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAhC,uBAAAwB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAI,UAAA,GAAAJ,CAAA,KAAAK,OAAA,EAAAL,CAAA;AAAA,SAAAmB,yBAAAnB,CAAA,EAAAG,CAAA,gBAAAH,CAAA,iBAAAoB,CAAA,EAAAlB,CAAA,EAAAe,CAAA,GAAAI,6BAAA,CAAArB,CAAA,EAAAG,CAAA,OAAAQ,MAAA,CAAAW,qBAAA,QAAAd,CAAA,GAAAG,MAAA,CAAAW,qBAAA,CAAAtB,CAAA,QAAAE,CAAA,MAAAA,CAAA,GAAAM,CAAA,CAAAe,MAAA,EAAArB,CAAA,IAAAkB,CAAA,GAAAZ,CAAA,CAAAN,CAAA,GAAAC,CAAA,CAAAqB,OAAA,CAAAJ,CAAA,aAAAK,oBAAA,CAAAT,IAAA,CAAAhB,CAAA,EAAAoB,CAAA,MAAAH,CAAA,CAAAG,CAAA,IAAApB,CAAA,CAAAoB,CAAA,aAAAH,CAAA;AAAA,SAAAI,8BAAAnB,CAAA,EAAAF,CAAA,gBAAAE,CAAA,iBAAAC,CAAA,gBAAAK,CAAA,IAAAN,CAAA,SAAAa,cAAA,CAAAC,IAAA,CAAAd,CAAA,EAAAM,CAAA,SAAAR,CAAA,CAAAwB,OAAA,CAAAhB,CAAA,kBAAAL,CAAA,CAAAK,CAAA,IAAAN,CAAA,CAAAM,CAAA,YAAAL,CAAA;AAsBA;;AAqBA,IAAIuB,gBAAgB;AAWL,eAAeC,MAAMA,CAACC,OAAsB,EAAgC;EACzF,IAAAC,iCAAkC,EAAC,CAAC;EACpCH,gBAAgB,GAAGI,aAAa,CAAC,CAAC;EAClC,MAAMC,eAAe,GAAGC,0BAAe,CAACC,WAAW,CAAC,CAAC;EACrD,MAAMC,QAAQ,GAAGH,eAAe,CAACI,SAAS,CAACC,GAAG,CAAEC,SAAS,IAAKA,SAAS,CAACC,OAAO,CAAC,CAAC,CAAC;EAClF,MAAMC,cAAc,GAAG,MAAMC,OAAO,CAACC,GAAG,CAACP,QAAQ,CAAC;EAClD,MAAMQ,OAAO,GAAG,MAAMC,WAAW,CAAC,CAAC;EACnC,MAAMC,aAAa,GAAG,MAAMC,yBAAyB,CAACN,cAAc,EAAEG,OAAO,EAAEd,OAAO,CAAC;EACvF,OAAO;IAAEW,cAAc;IAAEK,aAAa;IAAEE,QAAQ,EAAEJ;EAAQ,CAAC;AAC7D;AAEO,eAAeK,MAAMA,CAAAC,IAAA,EAA4E;EAAA,IAA3E;MAAEC;IAAyC,CAAC,GAAAD,IAAA;IAAxBpB,OAAO,GAAAT,wBAAA,CAAA6B,IAAA,EAAAlD,SAAA;EACtD,IAAI,CAACmD,aAAa,EAAE;IAClB,MAAM,KAAIC,4CAAoB,EAAC,CAAC;EAClC;EACA,IAAArB,iCAAkC,EAAC,CAAC;EACpCH,gBAAgB,GAAGI,aAAa,CAAC,CAAC;EAClC,MAAMC,eAAe,GAAGC,0BAAe,CAACC,WAAW,CAAC,CAAC;EACrD,MAAMI,SAAS,GAAGN,eAAe,CAACoB,kBAAkB,CAACF,aAAa,CAAC;EACnE,IAAI,CAACZ,SAAS,EAAE;IACd,MAAM,KAAIe,sCAAiB,EAACH,aAAa,CAAC;EAC5C;EACA,MAAMI,aAAa,GAAG,MAAMhB,SAAS,CAACC,OAAO,CAAC,CAAC;EAC/C,MAAMI,OAAO,GAAG,MAAMC,WAAW,CAAC,CAAC;EACnC,MAAMC,aAAa,GAAG,MAAMC,yBAAyB,CAAC,CAACQ,aAAa,CAAC,EAAEX,OAAO,EAAEd,OAAO,CAAC;EACxF,OAAO;IAAEyB,aAAa;IAAET,aAAa;IAAEE,QAAQ,EAAEJ;EAAQ,CAAC;AAC5D;AAEO,eAAeY,aAAaA,CAAA,EAAyB;EAC1D,IAAAzB,iCAAkC,EAAC,CAAC;EACpC,MAAME,eAAe,GAAGC,0BAAe,CAACC,WAAW,CAAC,CAAC;EACrD,OAAOO,OAAO,CAACe,OAAO,CAACxB,eAAe,CAACI,SAAS,CAAC;AACnD;AAEA,eAAeU,yBAAyBA,CACtCN,cAA+B,EAC/BG,OAAuB,EACvBd,OAAsB,EACc;EACpC,IAAI,CAACA,OAAO,CAAC4B,QAAQ,EAAE;IACrB,OAAOhB,OAAO,CAACe,OAAO,CAACE,SAAS,CAAC;EACnC;EACA,MAAMC,aAAa,GAAGC,uBAAuB,CAAC/B,OAAO,CAAC4B,QAAQ,CAAC;EAC/D,MAAMI,UAAU,GAAG,MAAMC,8BAA8B,CAACtB,cAAc,EAAEG,OAAO,EAAEgB,aAAa,EAAE9B,OAAO,CAAC;EAExG,MAAMkC,WAAW,GAAGC,kBAAE,CAACC,iBAAiB,CAACN,aAAa,CAAC;EAEvDE,UAAU,CAACK,IAAI,CAACH,WAAW,CAAC;EAE5B,OAAO,IAAItB,OAAO,CAAEe,OAAO,IAAK;IAC9BO,WAAW,CAACI,EAAE,CAAC,OAAO,EAAE,YAAY;MAClCC,iBAAM,CAACC,IAAI,CAAC,0CAA0CV,aAAa,EAAE,CAAC;MACtEH,OAAO,CAACG,aAAa,CAAC;MACtB;MACA;MACA;MACA;MACA;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEA,SAASC,uBAAuBA,CAACU,QAAgB,EAAU;EACzD,IAAIA,QAAQ,KAAK,GAAG,EAAE;IACpB,OAAOC,mBAAmB,CAAC,CAAC;EAC9B;EACA,IAAIC,aAAa,GAAGF,QAAQ;EAC5B,IAAI,IAAAG,eAAM,EAACH,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAAG,eAAM,EAACH,QAAQ,CAAC,KAAK,QAAQ,EAAE;IAC/DE,aAAa,GAAG,GAAG,IAAAE,sBAAa,EAACF,aAAa,CAAC,MAAM;EACvD;EACA,OAAOA,aAAa;AACtB;AAEA,SAASD,mBAAmBA,CAAA,EAAG;EAC7B,MAAMI,SAAS,GAAGhD,gBAAgB,IAAII,aAAa,CAAC,CAAC;EACrD,OAAO,kBAAkB4C,SAAS,MAAM;AAC1C;;AAEA;AACA,SAAS5C,aAAaA,CAAA,EAAG;EACvB,MAAM6C,CAAC,GAAG,IAAIC,IAAI,CAAC,CAAC;EACpB,MAAMF,SAAS,GAAGC,CAAC,CAACE,OAAO,CAAC,CAAC;EAC7B,OAAOH,SAAS;AAClB;AAEA,eAAeb,8BAA8BA,CAC3CtB,cAA+B,EAC/BG,OAAuB,EACvBoC,WAAmB,EACnBlD,OAAsB,EACI;EAC1B,MAAM;IAAEmD,gBAAgB;IAAEC,kBAAkB;IAAEC,aAAa;IAAEC;EAAkB,CAAC,GAAGtD,OAAO;EAC1F,MAAMuD,QAAQ,GAAG,MAAMC,oBAAoB,CAAC,CAAC;EAC7C,MAAMC,YAAY,GAAG,MAAMC,gBAAgB,CAAC,CAAC;EAC7C,IAAIC,MAAM;EACV,IAAIF,YAAY,IAAIA,YAAY,CAACG,IAAI,EAAE;IACrCD,MAAM,GAAGE,UAAU,CAACJ,YAAY,CAACG,IAAI,CAAC;EACxC;EAEA,MAAME,kBAAkB,GAAG,MAAOC,IAAI,IAAK;IACzCA,IAAI,CAACC,KAAK,CAAC;MAAEC,IAAI,EAAE;IAAgB,CAAC,EAAEC,IAAI,CAACC,SAAS,CAACrD,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvEiD,IAAI,CAACC,KAAK,CAAC;MAAEC,IAAI,EAAE;IAAmB,CAAC,EAAEC,IAAI,CAACC,SAAS,CAACxD,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACjF,IAAI4C,QAAQ,EAAE;MACZQ,IAAI,CAACC,KAAK,CAAC;QAAEC,IAAI,EAAE;MAAY,CAAC,EAAEV,QAAQ,CAAC;IAC7C;IACA,IAAI,CAACJ,gBAAgB,IAAIQ,MAAM,EAAE;MAC/BI,IAAI,CAACC,KAAK,CAAC;QAAEC,IAAI,EAAE;MAAU,CAAC,EAAEN,MAAM,CAAC;IACzC;IACA,IAAIF,YAAY,IAAIA,YAAY,CAACW,iBAAiB,EAAE;MAClD;MACA,MAAMC,SAAS,GAAG,IAAAC,6BAAa,EAACb,YAAY,CAACG,IAAI,CAAC;MAClD,MAAMW,MAAM,GAAGF,SAAS,GAAG,MAAMG,0BAAe,CAACC,WAAW,CAAChB,YAAY,CAACG,IAAI,EAAES,SAAS,CAAC,GAAGxC,SAAS;MACtG,MAAM6C,iBAAiB,GAAGH,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEI,kBAAkB,CAAC,CAAC;MACtD,IAAID,iBAAiB,EAAE;QACrBX,IAAI,CAACC,KAAK,CAAC;UAAEC,IAAI,EAAE;QAAc,CAAC,EAAEC,IAAI,CAACC,SAAS,CAACO,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;MACjF;IACF;IAEAX,IAAI,CAACa,QAAQ,CAAC,CAAC;IAEf,OAAOb,IAAI;EACb,CAAC;EAED,IAAI,CAACZ,gBAAgB,EAAE;IACrB,MAAMY,IAAI,GAAGc,oBAAG,CAACd,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,OAAOD,kBAAkB,CAACC,IAAI,CAAC;EACjC;EAEA,MAAMe,MAAM,GAAIrC,QAAgB,IAAK;IACnC,IAAIA,QAAQ,KAAKS,WAAW,EAAE,OAAO,IAAI;IACzC,IAAIT,QAAQ,KAAK,WAAW,EAAE,OAAO,IAAI;IACzC,IACE,CAACW,kBAAkB,KAClBX,QAAQ,CAACsC,UAAU,CAAC,eAAenB,eAAI,CAACoB,GAAG,EAAE,CAAC,IAAIvC,QAAQ,CAACwC,QAAQ,CAAC,GAAGrB,eAAI,CAACoB,GAAG,eAAepB,eAAI,CAACoB,GAAG,EAAE,CAAC,CAAC,EAE3G,OAAO,IAAI;IACb,IACE,CAAC3B,aAAa,KACbZ,QAAQ,CAACsC,UAAU,CAAC,SAASnB,eAAI,CAACoB,GAAG,EAAE,CAAC,IAAIvC,QAAQ,CAACwC,QAAQ,CAAC,GAAGrB,eAAI,CAACoB,GAAG,SAASpB,eAAI,CAACoB,GAAG,EAAE,CAAC,CAAC,EAE/F,OAAO,IAAI;IACb,MAAME,KAAK,GAAGzC,QAAQ,CAACsC,UAAU,CAAC,OAAOnB,eAAI,CAACoB,GAAG,EAAE,CAAC;IACpD,MAAMG,YAAY,GAAG1C,QAAQ,CAACsC,UAAU,CAAC,OAAOnB,eAAI,CAACoB,GAAG,EAAE,CAAC,IAAIvC,QAAQ,CAACsC,UAAU,CAAC,OAAOnB,eAAI,CAACoB,GAAG,MAAMpB,eAAI,CAACoB,GAAG,EAAE,CAAC;IACnH,IAAI1B,iBAAiB,IAAI6B,YAAY,EAAE,OAAO,IAAI;IAClD,IAAID,KAAK,IAAI,CAACC,YAAY,EAAE,OAAO,IAAI;IACvC,OAAO,KAAK;EACd,CAAC;EAED,MAAMC,MAAM,GAAGC,gBAAK,CAACtB,IAAI,CAAC,GAAG,EAAE;IAC7Be,MAAM;IACNF,QAAQ,EAAE,KAAK;IACfU,MAAM,EAAExB;EACV,CAAC,CAAC;EAEF,OAAOsB,MAAM;AACf;AAEA,eAAerE,WAAWA,CAAA,EAA4B;EACpD,MAAMwE,GAAG,GAAG;IACVC,WAAW,EAAEC,OAAO,CAACC,OAAO;IAC5BC,gBAAgB,EAAE7F,gBAAgB,IAAII,aAAa,CAAC,CAAC;IACrD0F,QAAQ,EAAEC,aAAE,CAACD,QAAQ,CAAC,CAAC;IACvBE,UAAU,EAAE,IAAAC,oBAAa,EAAC,CAAC;IAC3BC,UAAU,EAAE,MAAM,IAAAC,gCAAa,EAAC,CAAC;IACjCC,WAAW,EAAE,MAAM,IAAAC,kCAAc,EAAC,CAAC;IACnCC,WAAW,EAAEC,eAAe,CAAC;EAC/B,CAAC;;EAED;EACA,OAAOd,GAAG;AACZ;AAEA,SAASc,eAAeA,CAAA,EAAW;EACjC,MAAMpC,IAAI,GAAGrG,YAAY,CAAD,CAAC,CAAC0I,OAAO,CAACC,8BAAiB,CAAC,IAAI,EAAE;EAC1D,MAAMC,KAAK,GAAG5I,YAAY,CAAD,CAAC,CAAC0I,OAAO,CAACG,+BAAkB,CAAC,IAAI,EAAE;EAC5D,OAAO,GAAGxC,IAAI,IAAIuC,KAAK,GAAG;AAC5B;AAEA,eAAehD,oBAAoBA,CAAA,EAAuC;EACxE,MAAMkD,MAAM,GAAG,MAAMvE,kBAAE,CAACwE,UAAU,CAACC,sBAAS,CAAC;EAC7C,IAAI,CAACF,MAAM,EAAE,OAAO,IAAI;EACxB,MAAMG,GAAG,GAAG,MAAM1E,kBAAE,CAAC2E,QAAQ,CAACF,sBAAS,EAAE,OAAO,CAAC;EACjD,MAAMG,eAAe,GAAG,IAAAC,8BAAqB,EAACH,GAAG,CAAW;EAC5D,OAAOI,MAAM,CAACC,IAAI,CAACH,eAAe,CAAC;AACrC;AAEA,eAAerD,gBAAgBA,CAAA,EAA6C;EAC1E,MAAMD,YAAY,GAAG,MAAM,IAAA0D,kCAAe,EAAC1B,OAAO,CAAC2B,GAAG,CAAC,CAAC,CAAC;EACzD,OAAO3D,YAAY;AACrB;AAEA,SAASI,UAAUA,CAACwD,YAAY,EAA6B;EAC3D,OAAOC,iBAAM,CAACC,WAAW,CAACF,YAAY,CAAC;AACzC","ignoreList":[]}
1
+ {"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_os","_path","_tarStream","_tarFs","_bit","_constants","_legacy","_workspaceConfig","_consumerLocator","_doctorRegistrar","_doctorRegistrarBuilder","_logger","_legacy2","_toolboxFs","_scopeModules","globalConfig","_interopRequireWildcard","_validateNpmExec","_validateYarnExec","_diagnosisNotFound","_missingDiagnosisName","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_objectWithoutProperties","o","_objectWithoutPropertiesLoose","getOwnPropertySymbols","length","indexOf","propertyIsEnumerable","runningTimeStamp","runAll","options","registerCoreAndExtensionsDiagnoses","_getTimeStamp","doctorRegistrar","DoctorRegistrar","getInstance","examineP","diagnoses","map","diagnosis","examine","examineResults","Promise","all","envMeta","_getEnvMeta","savedFilePath","_saveExamineResultsToFile","metaData","runOne","_ref","diagnosisName","MissingDiagnosisName","getDiagnosisByName","DiagnosisNotFound","examineResult","listDiagnoses","resolve","filePath","undefined","finalFilePath","_calculateFinalFileName","packStream","_generateExamineResultsTarFile","yourTarball","fs","createWriteStream","pipe","on","logger","info","getWithoutExt","filename","ext","getExt","substring","fileName","_getDefaultFileName","finalFileName","timestamp","d","Date","getTime","tarFilePath","archiveWorkspace","includeNodeModules","includePublic","excludeLocalScope","debugLog","_getDebugLogAsBuffer","consumerInfo","_getConsumerInfo","bitmap","path","_getBitMap","packExamineResults","pack","entry","name","JSON","stringify","hasConsumerConfig","scopePath","findScopePath","config","WorkspaceConfig","loadIfExist","legacyPlainConfig","_legacyPlainObject","finalize","tar","ignore","startsWith","sep","includes","isGit","isLocalScope","myPack","tarFS","finish","env","nodeVersion","process","version","runningTimestamp","platform","os","bitVersion","getBitVersion","npmVersion","getNpmVersion","yarnVersion","getYarnVersion","userDetails","_getUserDetails","getSync","CFG_USER_NAME_KEY","email","CFG_USER_EMAIL_KEY","exists","pathExists","DEBUG_LOG","log","readFile","logWithoutChalk","removeChalkCharacters","Buffer","from","getConsumerInfo","cwd","workspaceDir","BitMap","loadRawSync"],"sources":["doctor.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport os from 'os';\n// @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\nimport Stream from 'stream';\nimport path from 'path';\nimport tar from 'tar-stream';\nimport tarFS from 'tar-fs';\nimport { getBitVersion } from '@teambit/bit.get-bit-version';\nimport { CFG_USER_EMAIL_KEY, CFG_USER_NAME_KEY, DEBUG_LOG } from '@teambit/legacy/dist/constants';\nimport { BitMap } from '@teambit/legacy.bit-map';\nimport WorkspaceConfig from '@teambit/legacy/dist/consumer/config/workspace-config';\nimport { ConsumerInfo, getConsumerInfo } from '@teambit/legacy/dist/consumer/consumer-locator';\nimport Diagnosis, { ExamineResult } from './diagnosis';\nimport DoctorRegistrar from './doctor-registrar';\nimport registerCoreAndExtensionsDiagnoses from './doctor-registrar-builder';\nimport logger from '@teambit/legacy/dist/logger/logger';\nimport { removeChalkCharacters } from '@teambit/legacy.utils';\nimport { getExt } from '@teambit/toolbox.fs.extension-getter';\nimport { findScopePath } from '@teambit/scope.modules.find-scope-path';\nimport * as globalConfig from '@teambit/legacy/dist/api/consumer/lib/global-config';\nimport { getNpmVersion } from './core-diagnoses/validate-npm-exec';\nimport { getYarnVersion } from './core-diagnoses/validate-yarn-exec';\nimport { DiagnosisNotFound } from './exceptions/diagnosis-not-found';\nimport { MissingDiagnosisName } from './exceptions/missing-diagnosis-name';\n\n// run specific check\nexport type DoctorMetaData = {\n nodeVersion: string;\n runningTimestamp: number;\n platform: string;\n bitVersion: string;\n npmVersion: string;\n yarnVersion: string;\n userDetails: string;\n};\nexport type DoctorRunAllResults = {\n examineResults: ExamineResult[];\n savedFilePath: string | null | undefined;\n metaData: DoctorMetaData;\n};\nexport type DoctorRunOneResult = {\n examineResult: ExamineResult;\n savedFilePath: string | null | undefined;\n metaData: DoctorMetaData;\n};\n\nlet runningTimeStamp;\n\nexport type DoctorOptions = {\n diagnosisName?: string;\n filePath?: string;\n archiveWorkspace?: boolean;\n includeNodeModules?: boolean;\n includePublic?: boolean;\n excludeLocalScope?: boolean;\n};\n\nexport default async function runAll(options: DoctorOptions): Promise<DoctorRunAllResults> {\n registerCoreAndExtensionsDiagnoses();\n runningTimeStamp = _getTimeStamp();\n const doctorRegistrar = DoctorRegistrar.getInstance();\n const examineP = doctorRegistrar.diagnoses.map((diagnosis) => diagnosis.examine());\n const examineResults = await Promise.all(examineP);\n const envMeta = await _getEnvMeta();\n const savedFilePath = await _saveExamineResultsToFile(examineResults, envMeta, options);\n return { examineResults, savedFilePath, metaData: envMeta };\n}\n\nexport async function runOne({ diagnosisName, ...options }: DoctorOptions): Promise<DoctorRunOneResult> {\n if (!diagnosisName) {\n throw new MissingDiagnosisName();\n }\n registerCoreAndExtensionsDiagnoses();\n runningTimeStamp = _getTimeStamp();\n const doctorRegistrar = DoctorRegistrar.getInstance();\n const diagnosis = doctorRegistrar.getDiagnosisByName(diagnosisName);\n if (!diagnosis) {\n throw new DiagnosisNotFound(diagnosisName);\n }\n const examineResult = await diagnosis.examine();\n const envMeta = await _getEnvMeta();\n const savedFilePath = await _saveExamineResultsToFile([examineResult], envMeta, options);\n return { examineResult, savedFilePath, metaData: envMeta };\n}\n\nexport async function listDiagnoses(): Promise<Diagnosis[]> {\n registerCoreAndExtensionsDiagnoses();\n const doctorRegistrar = DoctorRegistrar.getInstance();\n return Promise.resolve(doctorRegistrar.diagnoses);\n}\n\nasync function _saveExamineResultsToFile(\n examineResults: ExamineResult[],\n envMeta: DoctorMetaData,\n options: DoctorOptions\n): Promise<string | null | undefined> {\n if (!options.filePath) {\n return Promise.resolve(undefined);\n }\n const finalFilePath = _calculateFinalFileName(options.filePath);\n const packStream = await _generateExamineResultsTarFile(examineResults, envMeta, finalFilePath, options);\n\n const yourTarball = fs.createWriteStream(finalFilePath);\n\n packStream.pipe(yourTarball);\n\n return new Promise((resolve) => {\n yourTarball.on('close', function () {\n logger.info(`wrote a file by bit doctor, file path: ${finalFilePath}`);\n resolve(finalFilePath);\n // fs.stat(finalFilePath, function (err, stats) {\n // if (err) throw err\n // console.log(stats)\n // console.log('Got file info successfully!')\n // })\n });\n });\n}\n\nfunction getWithoutExt(filename: string): string {\n const ext = getExt(filename);\n // There is no extension just return the file name\n if (ext === filename) {\n return filename;\n }\n return filename.substring(0, filename.length - ext.length - 1); // -1 to remove the '.'\n}\n\nfunction _calculateFinalFileName(fileName: string): string {\n if (fileName === '.') {\n return _getDefaultFileName();\n }\n let finalFileName = fileName;\n if (getExt(fileName) !== 'tar' && getExt(fileName) !== 'tar.gz') {\n finalFileName = `${getWithoutExt(finalFileName)}.tar`;\n }\n return finalFileName;\n}\n\nfunction _getDefaultFileName() {\n const timestamp = runningTimeStamp || _getTimeStamp();\n return `doctor-results-${timestamp}.tar`;\n}\n\n// TODO: move to utils\nfunction _getTimeStamp() {\n const d = new Date();\n const timestamp = d.getTime();\n return timestamp;\n}\n\nasync function _generateExamineResultsTarFile(\n examineResults: ExamineResult[],\n envMeta: DoctorMetaData,\n tarFilePath: string,\n options: DoctorOptions\n): Promise<Stream.Readable> {\n const { archiveWorkspace, includeNodeModules, includePublic, excludeLocalScope } = options;\n const debugLog = await _getDebugLogAsBuffer();\n const consumerInfo = await _getConsumerInfo();\n let bitmap;\n if (consumerInfo && consumerInfo.path) {\n bitmap = _getBitMap(consumerInfo.path);\n }\n\n const packExamineResults = async (pack) => {\n pack.entry({ name: 'env-meta.json' }, JSON.stringify(envMeta, null, 2));\n pack.entry({ name: 'doc-results.json' }, JSON.stringify(examineResults, null, 2));\n if (debugLog) {\n pack.entry({ name: 'debug.log' }, debugLog);\n }\n if (!archiveWorkspace && bitmap) {\n pack.entry({ name: '.bitmap' }, bitmap);\n }\n if (consumerInfo && consumerInfo.hasConsumerConfig) {\n // TODO: support new config as well\n const scopePath = findScopePath(consumerInfo.path);\n const config = scopePath ? await WorkspaceConfig.loadIfExist(consumerInfo.path, scopePath) : undefined;\n const legacyPlainConfig = config?._legacyPlainObject();\n if (legacyPlainConfig) {\n pack.entry({ name: 'config.json' }, JSON.stringify(legacyPlainConfig, null, 4));\n }\n }\n\n pack.finalize();\n\n return pack;\n };\n\n if (!archiveWorkspace) {\n const pack = tar.pack(); // pack is a streams2 stream\n return packExamineResults(pack);\n }\n\n const ignore = (fileName: string) => {\n if (fileName === tarFilePath) return true;\n if (fileName === '.DS_Store') return true;\n if (\n !includeNodeModules &&\n (fileName.startsWith(`node_modules${path.sep}`) || fileName.includes(`${path.sep}node_modules${path.sep}`))\n )\n return true;\n if (\n !includePublic &&\n (fileName.startsWith(`public${path.sep}`) || fileName.includes(`${path.sep}public${path.sep}`))\n )\n return true;\n const isGit = fileName.startsWith(`.git${path.sep}`);\n const isLocalScope = fileName.startsWith(`.bit${path.sep}`) || fileName.startsWith(`.git${path.sep}bit${path.sep}`);\n if (excludeLocalScope && isLocalScope) return true;\n if (isGit && !isLocalScope) return true;\n return false;\n };\n\n const myPack = tarFS.pack('.', {\n ignore,\n finalize: false,\n finish: packExamineResults,\n });\n\n return myPack;\n}\n\nasync function _getEnvMeta(): Promise<DoctorMetaData> {\n const env = {\n nodeVersion: process.version,\n runningTimestamp: runningTimeStamp || _getTimeStamp(),\n platform: os.platform(),\n bitVersion: getBitVersion(),\n npmVersion: await getNpmVersion(),\n yarnVersion: await getYarnVersion(),\n userDetails: _getUserDetails(),\n };\n\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n return env;\n}\n\nfunction _getUserDetails(): string {\n const name = globalConfig.getSync(CFG_USER_NAME_KEY) || '';\n const email = globalConfig.getSync(CFG_USER_EMAIL_KEY) || '';\n return `${name}<${email}>`;\n}\n\nasync function _getDebugLogAsBuffer(): Promise<Buffer | null | undefined> {\n const exists = await fs.pathExists(DEBUG_LOG);\n if (!exists) return null;\n const log = await fs.readFile(DEBUG_LOG, 'utf-8');\n const logWithoutChalk = removeChalkCharacters(log) as string;\n return Buffer.from(logWithoutChalk);\n}\n\nasync function _getConsumerInfo(): Promise<ConsumerInfo | null | undefined> {\n const consumerInfo = await getConsumerInfo(process.cwd());\n return consumerInfo;\n}\n\nfunction _getBitMap(workspaceDir): Buffer | null | undefined {\n return BitMap.loadRawSync(workspaceDir);\n}\n"],"mappings":"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","ignoreList":[]}
package/doctor.ts CHANGED
@@ -7,14 +7,15 @@ import tar from 'tar-stream';
7
7
  import tarFS from 'tar-fs';
8
8
  import { getBitVersion } from '@teambit/bit.get-bit-version';
9
9
  import { CFG_USER_EMAIL_KEY, CFG_USER_NAME_KEY, DEBUG_LOG } from '@teambit/legacy/dist/constants';
10
- import BitMap from '@teambit/legacy/dist/consumer/bit-map';
10
+ import { BitMap } from '@teambit/legacy.bit-map';
11
11
  import WorkspaceConfig from '@teambit/legacy/dist/consumer/config/workspace-config';
12
12
  import { ConsumerInfo, getConsumerInfo } from '@teambit/legacy/dist/consumer/consumer-locator';
13
13
  import Diagnosis, { ExamineResult } from './diagnosis';
14
14
  import DoctorRegistrar from './doctor-registrar';
15
15
  import registerCoreAndExtensionsDiagnoses from './doctor-registrar-builder';
16
16
  import logger from '@teambit/legacy/dist/logger/logger';
17
- import { getExt, getWithoutExt, removeChalkCharacters } from '@teambit/legacy/dist/utils';
17
+ import { removeChalkCharacters } from '@teambit/legacy.utils';
18
+ import { getExt } from '@teambit/toolbox.fs.extension-getter';
18
19
  import { findScopePath } from '@teambit/scope.modules.find-scope-path';
19
20
  import * as globalConfig from '@teambit/legacy/dist/api/consumer/lib/global-config';
20
21
  import { getNpmVersion } from './core-diagnoses/validate-npm-exec';
@@ -116,6 +117,15 @@ async function _saveExamineResultsToFile(
116
117
  });
117
118
  }
118
119
 
120
+ function getWithoutExt(filename: string): string {
121
+ const ext = getExt(filename);
122
+ // There is no extension just return the file name
123
+ if (ext === filename) {
124
+ return filename;
125
+ }
126
+ return filename.substring(0, filename.length - ext.length - 1); // -1 to remove the '.'
127
+ }
128
+
119
129
  function _calculateFinalFileName(fileName: string): string {
120
130
  if (fileName === '.') {
121
131
  return _getDefaultFileName();
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/doctor",
3
- "version": "0.0.13",
3
+ "version": "0.0.14",
4
4
  "homepage": "https://bit.cloud/teambit/harmony/doctor",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.harmony",
8
8
  "name": "doctor",
9
- "version": "0.0.13"
9
+ "version": "0.0.14"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -25,8 +25,12 @@
25
25
  "@teambit/component-id": "1.2.0",
26
26
  "@teambit/bvm.list": "0.1.13",
27
27
  "@teambit/bit-error": "0.0.404",
28
- "@teambit/cli": "0.0.907",
29
- "@teambit/bit.get-bit-version": "0.0.1"
28
+ "@teambit/cli": "0.0.908",
29
+ "@teambit/bit.get-bit-version": "0.0.1",
30
+ "@teambit/legacy.bit-map": "0.0.5",
31
+ "@teambit/legacy.utils": "0.0.3",
32
+ "@teambit/toolbox.fs.extension-getter": "0.0.1",
33
+ "@teambit/git.modules.git-executable": "0.0.1"
30
34
  },
31
35
  "devDependencies": {
32
36
  "@types/fs-extra": "9.0.7",
@@ -39,7 +43,7 @@
39
43
  "@types/testing-library__jest-dom": "5.9.5"
40
44
  },
41
45
  "peerDependencies": {
42
- "@teambit/legacy": "1.0.720",
46
+ "@teambit/legacy": "1.0.721",
43
47
  "react": "^16.8.0 || ^17.0.0",
44
48
  "react-dom": "^16.8.0 || ^17.0.0"
45
49
  },
package/tsconfig.json DELETED
@@ -1,45 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "lib": [
4
- "ES2022",
5
- "DOM",
6
- "DOM.Iterable",
7
- "ScriptHost"
8
- ],
9
- "target": "es2015",
10
- "module": "CommonJS",
11
- "jsx": "react",
12
- "allowJs": true,
13
- "composite": true,
14
- "declaration": true,
15
- "sourceMap": true,
16
- "skipLibCheck": true,
17
- "experimentalDecorators": true,
18
- "outDir": "dist",
19
- "moduleResolution": "node",
20
- "esModuleInterop": true,
21
- "rootDir": ".",
22
- "resolveJsonModule": true,
23
- "emitDeclarationOnly": true,
24
- "emitDecoratorMetadata": true,
25
- "allowSyntheticDefaultImports": true,
26
- "strictPropertyInitialization": false,
27
- "strict": true,
28
- "noImplicitAny": false,
29
- "preserveConstEnums": true
30
- },
31
- "exclude": [
32
- "artifacts",
33
- "public",
34
- "dist",
35
- "esm.mjs",
36
- "node_modules",
37
- "package.json",
38
- "**/*.cjs"
39
- ],
40
- "include": [
41
- "**/*",
42
- "**/*.json"
43
- ],
44
- "references": []
45
- }