@teambit/doctor 0.0.1

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.
Files changed (83) hide show
  1. package/core-diagnoses/broken-symlink-files.ts +78 -0
  2. package/core-diagnoses/orphan-symlink-objects.ts +51 -0
  3. package/core-diagnoses/validate-bit-version.ts +56 -0
  4. package/core-diagnoses/validate-git-exec.ts +38 -0
  5. package/core-diagnoses/validate-npm-exec.ts +40 -0
  6. package/core-diagnoses/validate-workspace-bit-json-syntax.ts +35 -0
  7. package/core-diagnoses/validate-yarn-exec.ts +40 -0
  8. package/diagnosis-list-template.ts +28 -0
  9. package/diagnosis.ts +81 -0
  10. package/dist/core-diagnoses/broken-symlink-files.d.ts +15 -0
  11. package/dist/core-diagnoses/broken-symlink-files.js +127 -0
  12. package/dist/core-diagnoses/broken-symlink-files.js.map +1 -0
  13. package/dist/core-diagnoses/orphan-symlink-objects.d.ts +10 -0
  14. package/dist/core-diagnoses/orphan-symlink-objects.js +84 -0
  15. package/dist/core-diagnoses/orphan-symlink-objects.js.map +1 -0
  16. package/dist/core-diagnoses/validate-bit-version.d.ts +9 -0
  17. package/dist/core-diagnoses/validate-bit-version.js +94 -0
  18. package/dist/core-diagnoses/validate-bit-version.js.map +1 -0
  19. package/dist/core-diagnoses/validate-git-exec.d.ts +10 -0
  20. package/dist/core-diagnoses/validate-git-exec.js +69 -0
  21. package/dist/core-diagnoses/validate-git-exec.js.map +1 -0
  22. package/dist/core-diagnoses/validate-npm-exec.d.ts +10 -0
  23. package/dist/core-diagnoses/validate-npm-exec.js +73 -0
  24. package/dist/core-diagnoses/validate-npm-exec.js.map +1 -0
  25. package/dist/core-diagnoses/validate-workspace-bit-json-syntax.d.ts +9 -0
  26. package/dist/core-diagnoses/validate-workspace-bit-json-syntax.js +67 -0
  27. package/dist/core-diagnoses/validate-workspace-bit-json-syntax.js.map +1 -0
  28. package/dist/core-diagnoses/validate-yarn-exec.d.ts +10 -0
  29. package/dist/core-diagnoses/validate-yarn-exec.js +72 -0
  30. package/dist/core-diagnoses/validate-yarn-exec.js.map +1 -0
  31. package/dist/diagnosis-list-template.d.ts +2 -0
  32. package/dist/diagnosis-list-template.js +42 -0
  33. package/dist/diagnosis-list-template.js.map +1 -0
  34. package/dist/diagnosis.d.ts +41 -0
  35. package/dist/diagnosis.js +74 -0
  36. package/dist/diagnosis.js.map +1 -0
  37. package/dist/doctor-cmd.d.ts +21 -0
  38. package/dist/doctor-cmd.js +125 -0
  39. package/dist/doctor-cmd.js.map +1 -0
  40. package/dist/doctor-registrar-builder.d.ts +2 -0
  41. package/dist/doctor-registrar-builder.js +69 -0
  42. package/dist/doctor-registrar-builder.js.map +1 -0
  43. package/dist/doctor-registrar.d.ts +21 -0
  44. package/dist/doctor-registrar.js +63 -0
  45. package/dist/doctor-registrar.js.map +1 -0
  46. package/dist/doctor-results-template.d.ts +2 -0
  47. package/dist/doctor-results-template.js +115 -0
  48. package/dist/doctor-results-template.js.map +1 -0
  49. package/dist/doctor.aspect.d.ts +2 -0
  50. package/dist/doctor.aspect.js +18 -0
  51. package/dist/doctor.aspect.js.map +1 -0
  52. package/dist/doctor.d.ts +31 -0
  53. package/dist/doctor.js +342 -0
  54. package/dist/doctor.js.map +1 -0
  55. package/dist/doctor.main.runtime.d.ts +8 -0
  56. package/dist/doctor.main.runtime.js +44 -0
  57. package/dist/doctor.main.runtime.js.map +1 -0
  58. package/dist/esm.mjs +6 -0
  59. package/dist/exceptions/diagnosis-not-found.d.ts +5 -0
  60. package/dist/exceptions/diagnosis-not-found.js +30 -0
  61. package/dist/exceptions/diagnosis-not-found.js.map +1 -0
  62. package/dist/exceptions/missing-diagnosis-name.d.ts +4 -0
  63. package/dist/exceptions/missing-diagnosis-name.js +21 -0
  64. package/dist/exceptions/missing-diagnosis-name.js.map +1 -0
  65. package/dist/index.d.ts +6 -0
  66. package/dist/index.js +48 -0
  67. package/dist/index.js.map +1 -0
  68. package/dist/preview-1719544843434.js +7 -0
  69. package/doctor-cmd.ts +97 -0
  70. package/doctor-registrar-builder.ts +22 -0
  71. package/doctor-registrar.ts +58 -0
  72. package/doctor-results-template.ts +105 -0
  73. package/doctor.aspect.ts +5 -0
  74. package/doctor.main.runtime.ts +17 -0
  75. package/doctor.ts +250 -0
  76. package/esm.mjs +6 -0
  77. package/exceptions/diagnosis-not-found.ts +8 -0
  78. package/exceptions/missing-diagnosis-name.ts +7 -0
  79. package/index.ts +7 -0
  80. package/package.json +54 -0
  81. package/tsconfig.json +45 -0
  82. package/types/asset.d.ts +29 -0
  83. package/types/style.d.ts +42 -0
@@ -0,0 +1,41 @@
1
+ export type ExamineBareResult = {
2
+ valid: boolean;
3
+ data?: Record<string, any>;
4
+ };
5
+ export type DiagnosisMetaData = {
6
+ name: string;
7
+ description: string;
8
+ category: string;
9
+ };
10
+ export type ExamineResult = {
11
+ diagnosisMetaData: DiagnosisMetaData;
12
+ bareResult: ExamineBareResult;
13
+ formattedSymptoms: string;
14
+ formattedManualTreat: string;
15
+ };
16
+ export default class Diagnosis {
17
+ name: string;
18
+ description: string;
19
+ category: string;
20
+ result: Record<string, any>;
21
+ /**
22
+ * A function that actually runs the examination
23
+ */
24
+ _runExamine(): Promise<ExamineBareResult>;
25
+ /**
26
+ * Returns a descriptive symptoms message which might include specific data from the examination
27
+ * @param bareResult ExamineBareResult
28
+ */
29
+ _formatSymptoms(bareResult: ExamineBareResult): string;
30
+ /**
31
+ * Returns a descriptive instruction to handle the issue (might include specific data from the examination)
32
+ * @param bareResult ExamineBareResult
33
+ */
34
+ _formatManualTreat(bareResult: ExamineBareResult): string;
35
+ getMeta(): {
36
+ category: string;
37
+ name: string;
38
+ description: string;
39
+ };
40
+ examine(): Promise<ExamineResult>;
41
+ }
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
8
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
9
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
+ class Diagnosis {
11
+ constructor() {
12
+ // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
13
+ _defineProperty(this, "name", void 0);
14
+ // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
15
+ _defineProperty(this, "description", void 0);
16
+ // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
17
+ _defineProperty(this, "category", void 0);
18
+ // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
19
+ _defineProperty(this, "result", void 0);
20
+ }
21
+ /**
22
+ * A function that actually runs the examination
23
+ */
24
+ async _runExamine() {
25
+ throw new Error('You must implement this method');
26
+ }
27
+
28
+ /**
29
+ * Returns a descriptive symptoms message which might include specific data from the examination
30
+ * @param bareResult ExamineBareResult
31
+ */
32
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
33
+ _formatSymptoms(bareResult) {
34
+ throw new Error('You must implement this method');
35
+ }
36
+
37
+ /**
38
+ * Returns a descriptive instruction to handle the issue (might include specific data from the examination)
39
+ * @param bareResult ExamineBareResult
40
+ */
41
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
42
+ _formatManualTreat(bareResult) {
43
+ throw new Error('You must implement this method');
44
+ }
45
+ getMeta() {
46
+ return {
47
+ category: this.category,
48
+ name: this.name,
49
+ description: this.description
50
+ };
51
+ }
52
+ async examine() {
53
+ const bareResult = await this._runExamine();
54
+ if (bareResult.valid) {
55
+ return {
56
+ diagnosisMetaData: this.getMeta(),
57
+ bareResult,
58
+ formattedSymptoms: '',
59
+ formattedManualTreat: ''
60
+ };
61
+ }
62
+ const formattedSymptoms = this._formatSymptoms(bareResult);
63
+ const formattedManualTreat = this._formatManualTreat(bareResult);
64
+ return {
65
+ diagnosisMetaData: this.getMeta(),
66
+ bareResult,
67
+ formattedSymptoms,
68
+ formattedManualTreat
69
+ };
70
+ }
71
+ }
72
+ exports.default = Diagnosis;
73
+
74
+ //# sourceMappingURL=diagnosis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Diagnosis","constructor","_defineProperty","_runExamine","Error","_formatSymptoms","bareResult","_formatManualTreat","getMeta","category","name","description","examine","valid","diagnosisMetaData","formattedSymptoms","formattedManualTreat","exports","default"],"sources":["diagnosis.ts"],"sourcesContent":["export type ExamineBareResult = {\n valid: boolean;\n data?: Record<string, any>;\n};\n\nexport type DiagnosisMetaData = {\n name: string;\n description: string;\n category: string;\n};\n\nexport type ExamineResult = {\n diagnosisMetaData: DiagnosisMetaData;\n bareResult: ExamineBareResult;\n formattedSymptoms: string; // A human readable of the found issues\n formattedManualTreat: string; // human readable steps to fix\n};\n\nexport default class Diagnosis {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n name: string;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n description: string;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n category: string;\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n result: Record<string, any>;\n\n /**\n * A function that actually runs the examination\n */\n async _runExamine(): Promise<ExamineBareResult> {\n throw new Error('You must implement this method');\n }\n\n /**\n * Returns a descriptive symptoms message which might include specific data from the examination\n * @param bareResult ExamineBareResult\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _formatSymptoms(bareResult: ExamineBareResult): string {\n throw new Error('You must implement this method');\n }\n\n /**\n * Returns a descriptive instruction to handle the issue (might include specific data from the examination)\n * @param bareResult ExamineBareResult\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _formatManualTreat(bareResult: ExamineBareResult): string {\n throw new Error('You must implement this method');\n }\n\n getMeta() {\n return {\n category: this.category,\n name: this.name,\n description: this.description,\n };\n }\n\n async examine(): Promise<ExamineResult> {\n const bareResult = await this._runExamine();\n if (bareResult.valid) {\n return {\n diagnosisMetaData: this.getMeta(),\n bareResult,\n formattedSymptoms: '',\n formattedManualTreat: '',\n };\n }\n const formattedSymptoms = this._formatSymptoms(bareResult);\n const formattedManualTreat = this._formatManualTreat(bareResult);\n return {\n diagnosisMetaData: this.getMeta(),\n bareResult,\n formattedSymptoms,\n formattedManualTreat,\n };\n }\n}\n"],"mappings":";;;;;;;;;AAkBe,MAAMA,SAAS,CAAC;EAAAC,YAAA;IAC7B;IAAAC,eAAA;IAEA;IAAAA,eAAA;IAEA;IAAAA,eAAA;IAEA;IAAAA,eAAA;EAAA;EAGA;AACF;AACA;EACE,MAAMC,WAAWA,CAAA,EAA+B;IAC9C,MAAM,IAAIC,KAAK,CAAC,gCAAgC,CAAC;EACnD;;EAEA;AACF;AACA;AACA;EACE;EACAC,eAAeA,CAACC,UAA6B,EAAU;IACrD,MAAM,IAAIF,KAAK,CAAC,gCAAgC,CAAC;EACnD;;EAEA;AACF;AACA;AACA;EACE;EACAG,kBAAkBA,CAACD,UAA6B,EAAU;IACxD,MAAM,IAAIF,KAAK,CAAC,gCAAgC,CAAC;EACnD;EAEAI,OAAOA,CAAA,EAAG;IACR,OAAO;MACLC,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBC,IAAI,EAAE,IAAI,CAACA,IAAI;MACfC,WAAW,EAAE,IAAI,CAACA;IACpB,CAAC;EACH;EAEA,MAAMC,OAAOA,CAAA,EAA2B;IACtC,MAAMN,UAAU,GAAG,MAAM,IAAI,CAACH,WAAW,CAAC,CAAC;IAC3C,IAAIG,UAAU,CAACO,KAAK,EAAE;MACpB,OAAO;QACLC,iBAAiB,EAAE,IAAI,CAACN,OAAO,CAAC,CAAC;QACjCF,UAAU;QACVS,iBAAiB,EAAE,EAAE;QACrBC,oBAAoB,EAAE;MACxB,CAAC;IACH;IACA,MAAMD,iBAAiB,GAAG,IAAI,CAACV,eAAe,CAACC,UAAU,CAAC;IAC1D,MAAMU,oBAAoB,GAAG,IAAI,CAACT,kBAAkB,CAACD,UAAU,CAAC;IAChE,OAAO;MACLQ,iBAAiB,EAAE,IAAI,CAACN,OAAO,CAAC,CAAC;MACjCF,UAAU;MACVS,iBAAiB;MACjBC;IACF,CAAC;EACH;AACF;AAACC,OAAA,CAAAC,OAAA,GAAAlB,SAAA","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ import { Command, CommandOptions } from '@teambit/cli';
2
+ type Flags = {
3
+ list?: boolean;
4
+ save?: string;
5
+ archive?: string;
6
+ includeNodeModules?: boolean;
7
+ includePublic?: boolean;
8
+ excludeLocalScope?: boolean;
9
+ };
10
+ export declare class DoctorCmd implements Command {
11
+ name: string;
12
+ description: string;
13
+ group: string;
14
+ alias: string;
15
+ loadAspects: boolean;
16
+ options: CommandOptions;
17
+ report([diagnosisName]: string[], flags: Flags): Promise<string>;
18
+ json([diagnosisName]: string[], flags: Flags): Promise<any>;
19
+ private runDiag;
20
+ }
21
+ export {};
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DoctorCmd = void 0;
7
+ function _doctor() {
8
+ const data = _interopRequireWildcard(require("./doctor"));
9
+ _doctor = function () {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
14
+ function _diagnosisListTemplate() {
15
+ const data = _interopRequireDefault(require("./diagnosis-list-template"));
16
+ _diagnosisListTemplate = function () {
17
+ return data;
18
+ };
19
+ return data;
20
+ }
21
+ function _doctorResultsTemplate() {
22
+ const data = _interopRequireDefault(require("./doctor-results-template"));
23
+ _doctorResultsTemplate = function () {
24
+ return data;
25
+ };
26
+ return data;
27
+ }
28
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
29
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
30
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
31
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
32
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
33
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
34
+ class DoctorCmd {
35
+ constructor() {
36
+ _defineProperty(this, "name", 'doctor [diagnosis-name]');
37
+ _defineProperty(this, "description", 'diagnose a bit workspace');
38
+ _defineProperty(this, "group", 'general');
39
+ _defineProperty(this, "alias", '');
40
+ _defineProperty(this, "loadAspects", false);
41
+ _defineProperty(this, "options", [['j', 'json', 'return diagnoses in json format'], ['', 'list', 'list all available diagnoses'], ['s', 'save [filePath]', 'save diagnoses to a file'], ['a', 'archive [filePath]', 'archive the workspace including diagnosis info (by default exclude node-modules and include .bit)'], ['n', 'include-node-modules', 'relevant for --archive. include node_modules in the archive file'], ['p', 'include-public', 'relevant for --archive. include public folder in the archive file'], ['e', 'exclude-local-scope', 'relevant for --archive. exclude .bit or .git/bit from the archive file']]);
42
+ }
43
+ async report([diagnosisName], flags) {
44
+ const res = await this.runDiag(diagnosisName, flags);
45
+ if (flags.list) {
46
+ return (0, _diagnosisListTemplate().default)(res);
47
+ }
48
+ if (diagnosisName) {
49
+ const {
50
+ examineResult,
51
+ savedFilePath,
52
+ metaData
53
+ } = res;
54
+ return (0, _doctorResultsTemplate().default)({
55
+ examineResults: [examineResult],
56
+ savedFilePath,
57
+ metaData
58
+ });
59
+ }
60
+ const {
61
+ examineResults,
62
+ savedFilePath,
63
+ metaData
64
+ } = res;
65
+ return (0, _doctorResultsTemplate().default)({
66
+ examineResults,
67
+ savedFilePath,
68
+ metaData
69
+ });
70
+ }
71
+ async json([diagnosisName], flags) {
72
+ const res = await this.runDiag(diagnosisName, flags);
73
+ if (flags.list) {
74
+ return res;
75
+ }
76
+ const {
77
+ examineResults,
78
+ examineResult,
79
+ savedFilePath
80
+ } = res;
81
+ const fullJson = {
82
+ savedFilePath,
83
+ examineResult,
84
+ examineResults
85
+ };
86
+ return fullJson;
87
+ }
88
+ async runDiag(diagnosisName, flags = {}) {
89
+ const {
90
+ list = false,
91
+ save,
92
+ archive,
93
+ includeNodeModules = false,
94
+ includePublic = false,
95
+ excludeLocalScope = false
96
+ } = flags;
97
+ if (list) {
98
+ return (0, _doctor().listDiagnoses)();
99
+ }
100
+ if ((includeNodeModules || excludeLocalScope) && !archive) {
101
+ throw new Error('to use --include-node-modules or --exclude-local-scope please specify --archive');
102
+ }
103
+ let filePath = save;
104
+ // Happen when used --save without specify the location
105
+ // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
106
+ if (save === true || archive === true) {
107
+ filePath = '.';
108
+ }
109
+ if (typeof archive === 'string') {
110
+ filePath = archive;
111
+ }
112
+ const doctorOptions = {
113
+ diagnosisName,
114
+ filePath,
115
+ archiveWorkspace: Boolean(archive),
116
+ includeNodeModules,
117
+ includePublic,
118
+ excludeLocalScope
119
+ };
120
+ return diagnosisName ? (0, _doctor().runOne)(doctorOptions) : (0, _doctor().default)(doctorOptions);
121
+ }
122
+ }
123
+ exports.DoctorCmd = DoctorCmd;
124
+
125
+ //# sourceMappingURL=doctor-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_doctor","data","_interopRequireWildcard","require","_diagnosisListTemplate","_interopRequireDefault","_doctorResultsTemplate","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","DoctorCmd","constructor","report","diagnosisName","flags","res","runDiag","list","formatDiagnosesList","examineResult","savedFilePath","metaData","formatDiagnosesResult","examineResults","json","fullJson","save","archive","includeNodeModules","includePublic","excludeLocalScope","listDiagnoses","Error","filePath","doctorOptions","archiveWorkspace","Boolean","runOne","runAll","exports"],"sources":["doctor-cmd.ts"],"sourcesContent":["import runAll, { DoctorOptions, listDiagnoses, runOne } from './doctor';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport formatDiagnosesList from './diagnosis-list-template';\nimport formatDiagnosesResult from './doctor-results-template';\n\ntype Flags = {\n list?: boolean;\n save?: string;\n archive?: string;\n includeNodeModules?: boolean;\n includePublic?: boolean;\n excludeLocalScope?: boolean;\n};\n\nexport class DoctorCmd implements Command {\n name = 'doctor [diagnosis-name]';\n description = 'diagnose a bit workspace';\n group = 'general';\n alias = '';\n loadAspects = false;\n options = [\n ['j', 'json', 'return diagnoses in json format'],\n ['', 'list', 'list all available diagnoses'],\n ['s', 'save [filePath]', 'save diagnoses to a file'],\n [\n 'a',\n 'archive [filePath]',\n 'archive the workspace including diagnosis info (by default exclude node-modules and include .bit)',\n ],\n ['n', 'include-node-modules', 'relevant for --archive. include node_modules in the archive file'],\n ['p', 'include-public', 'relevant for --archive. include public folder in the archive file'],\n ['e', 'exclude-local-scope', 'relevant for --archive. exclude .bit or .git/bit from the archive file'],\n ] as CommandOptions;\n\n async report([diagnosisName]: string[], flags: Flags) {\n const res = await this.runDiag(diagnosisName, flags);\n if (flags.list) {\n return formatDiagnosesList(res);\n }\n if (diagnosisName) {\n const { examineResult, savedFilePath, metaData } = res;\n return formatDiagnosesResult({ examineResults: [examineResult], savedFilePath, metaData });\n }\n const { examineResults, savedFilePath, metaData } = res;\n return formatDiagnosesResult({ examineResults, savedFilePath, metaData });\n }\n\n async json([diagnosisName]: string[], flags: Flags) {\n const res = await this.runDiag(diagnosisName, flags);\n if (flags.list) {\n return res;\n }\n const { examineResults, examineResult, savedFilePath } = res;\n const fullJson = {\n savedFilePath,\n examineResult,\n examineResults,\n };\n return fullJson;\n }\n\n private async runDiag(diagnosisName?: string, flags: Flags = {}): Promise<any> {\n const {\n list = false,\n save,\n archive,\n includeNodeModules = false,\n includePublic = false,\n excludeLocalScope = false,\n } = flags;\n\n if (list) {\n return listDiagnoses();\n }\n if ((includeNodeModules || excludeLocalScope) && !archive) {\n throw new Error('to use --include-node-modules or --exclude-local-scope please specify --archive');\n }\n let filePath = save;\n // Happen when used --save without specify the location\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n if (save === true || archive === true) {\n filePath = '.';\n }\n if (typeof archive === 'string') {\n filePath = archive;\n }\n const doctorOptions: DoctorOptions = {\n diagnosisName,\n filePath,\n archiveWorkspace: Boolean(archive),\n includeNodeModules,\n includePublic,\n excludeLocalScope,\n };\n return diagnosisName ? runOne(doctorOptions) : runAll(doctorOptions);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import Diagnosis from './diagnosis';
2
+ export default function registerCoreAndExtensionsDiagnoses(extensionDiagnoses?: Diagnosis[]): void;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = registerCoreAndExtensionsDiagnoses;
7
+ function _brokenSymlinkFiles() {
8
+ const data = _interopRequireDefault(require("./core-diagnoses/broken-symlink-files"));
9
+ _brokenSymlinkFiles = function () {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
14
+ function _orphanSymlinkObjects() {
15
+ const data = _interopRequireDefault(require("./core-diagnoses/orphan-symlink-objects"));
16
+ _orphanSymlinkObjects = function () {
17
+ return data;
18
+ };
19
+ return data;
20
+ }
21
+ function _validateBitVersion() {
22
+ const data = _interopRequireDefault(require("./core-diagnoses/validate-bit-version"));
23
+ _validateBitVersion = function () {
24
+ return data;
25
+ };
26
+ return data;
27
+ }
28
+ function _validateGitExec() {
29
+ const data = _interopRequireDefault(require("./core-diagnoses/validate-git-exec"));
30
+ _validateGitExec = function () {
31
+ return data;
32
+ };
33
+ return data;
34
+ }
35
+ function _validateNpmExec() {
36
+ const data = _interopRequireDefault(require("./core-diagnoses/validate-npm-exec"));
37
+ _validateNpmExec = function () {
38
+ return data;
39
+ };
40
+ return data;
41
+ }
42
+ function _validateWorkspaceBitJsonSyntax() {
43
+ const data = _interopRequireDefault(require("./core-diagnoses/validate-workspace-bit-json-syntax"));
44
+ _validateWorkspaceBitJsonSyntax = function () {
45
+ return data;
46
+ };
47
+ return data;
48
+ }
49
+ function _validateYarnExec() {
50
+ const data = _interopRequireDefault(require("./core-diagnoses/validate-yarn-exec"));
51
+ _validateYarnExec = function () {
52
+ return data;
53
+ };
54
+ return data;
55
+ }
56
+ function _doctorRegistrar() {
57
+ const data = _interopRequireDefault(require("./doctor-registrar"));
58
+ _doctorRegistrar = function () {
59
+ return data;
60
+ };
61
+ return data;
62
+ }
63
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
64
+ function registerCoreAndExtensionsDiagnoses(extensionDiagnoses = []) {
65
+ const diagnoses = [new (_validateWorkspaceBitJsonSyntax().default)(), new (_validateGitExec().default)(), new (_orphanSymlinkObjects().default)(), new (_brokenSymlinkFiles().default)(), new (_validateNpmExec().default)(), new (_validateYarnExec().default)(), new (_validateBitVersion().default)()].concat(extensionDiagnoses);
66
+ _doctorRegistrar().default.init(diagnoses);
67
+ }
68
+
69
+ //# sourceMappingURL=doctor-registrar-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_brokenSymlinkFiles","data","_interopRequireDefault","require","_orphanSymlinkObjects","_validateBitVersion","_validateGitExec","_validateNpmExec","_validateWorkspaceBitJsonSyntax","_validateYarnExec","_doctorRegistrar","e","__esModule","default","registerCoreAndExtensionsDiagnoses","extensionDiagnoses","diagnoses","ValidateWorkspaceBitJsonSyntax","ValidateGitExec","OrphanSymlinkObjects","BrokenSymlinkFiles","ValidateNpmExec","ValidateYarnExec","ValidateBitVersion","concat","DoctorRegistrar","init"],"sources":["doctor-registrar-builder.ts"],"sourcesContent":["import BrokenSymlinkFiles from './core-diagnoses/broken-symlink-files';\nimport OrphanSymlinkObjects from './core-diagnoses/orphan-symlink-objects';\nimport ValidateBitVersion from './core-diagnoses/validate-bit-version';\nimport ValidateGitExec from './core-diagnoses/validate-git-exec';\nimport ValidateNpmExec from './core-diagnoses/validate-npm-exec';\nimport ValidateWorkspaceBitJsonSyntax from './core-diagnoses/validate-workspace-bit-json-syntax';\nimport ValidateYarnExec from './core-diagnoses/validate-yarn-exec';\nimport Diagnosis from './diagnosis';\nimport DoctorRegistrar from './doctor-registrar';\n\nexport default function registerCoreAndExtensionsDiagnoses(extensionDiagnoses: Diagnosis[] = []) {\n const diagnoses = [\n new ValidateWorkspaceBitJsonSyntax(),\n new ValidateGitExec(),\n new OrphanSymlinkObjects(),\n new BrokenSymlinkFiles(),\n new ValidateNpmExec(),\n new ValidateYarnExec(),\n new ValidateBitVersion(),\n ].concat(extensionDiagnoses);\n DoctorRegistrar.init(diagnoses);\n}\n"],"mappings":";;;;;;AAAA,SAAAA,oBAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,mBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,sBAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,qBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,oBAAA;EAAA,MAAAJ,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAE,mBAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,iBAAA;EAAA,MAAAL,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAG,gBAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,iBAAA;EAAA,MAAAN,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAI,gBAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,gCAAA;EAAA,MAAAP,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAK,+BAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,kBAAA;EAAA,MAAAR,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAM,iBAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAS,iBAAA;EAAA,MAAAT,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAO,gBAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAiD,SAAAC,uBAAAS,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAElC,SAASG,kCAAkCA,CAACC,kBAA+B,GAAG,EAAE,EAAE;EAC/F,MAAMC,SAAS,GAAG,CAChB,KAAIC,yCAA8B,EAAC,CAAC,EACpC,KAAIC,0BAAe,EAAC,CAAC,EACrB,KAAIC,+BAAoB,EAAC,CAAC,EAC1B,KAAIC,6BAAkB,EAAC,CAAC,EACxB,KAAIC,0BAAe,EAAC,CAAC,EACrB,KAAIC,2BAAgB,EAAC,CAAC,EACtB,KAAIC,6BAAkB,EAAC,CAAC,CACzB,CAACC,MAAM,CAACT,kBAAkB,CAAC;EAC5BU,0BAAe,CAACC,IAAI,CAACV,SAAS,CAAC;AACjC","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ import Diagnosis from './diagnosis';
2
+ export default class DoctorRegistrar {
3
+ diagnoses: Diagnosis[];
4
+ constructor();
5
+ /**
6
+ * Initialize the default diagnoses
7
+ */
8
+ static init(diagnoses?: Diagnosis[]): void;
9
+ /**
10
+ * Get the instance of the DoctorRegistrar
11
+ * @return {DoctorRegistrar} instance of the DoctorRegistrar
12
+ *
13
+ */
14
+ static getInstance(): DoctorRegistrar;
15
+ /**
16
+ * Register a new diagnosis
17
+ * @param {Diagnosis} diagnosis
18
+ */
19
+ registerDiagnosis(diagnosis: Diagnosis): void;
20
+ getDiagnosisByName(name: string): Diagnosis | undefined;
21
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
8
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
9
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
+ /*
11
+ * Setting up block level variable to store class state
12
+ * set's to null by default.
13
+ */
14
+ let instance = null;
15
+ const _checkName = name => diagnosis => {
16
+ return diagnosis.name === name;
17
+ };
18
+ class DoctorRegistrar {
19
+ constructor() {
20
+ // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
21
+ _defineProperty(this, "diagnoses", void 0);
22
+ if (!instance) {
23
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
24
+ instance = this;
25
+ }
26
+ return instance;
27
+ }
28
+
29
+ /**
30
+ * Initialize the default diagnoses
31
+ */
32
+ static init(diagnoses = []) {
33
+ const self = new DoctorRegistrar();
34
+ self.diagnoses = diagnoses;
35
+ // diagnoses.forEach(diagnosis => self.diagnoses.push(diagnosis));
36
+ }
37
+
38
+ /**
39
+ * Get the instance of the DoctorRegistrar
40
+ * @return {DoctorRegistrar} instance of the DoctorRegistrar
41
+ *
42
+ */
43
+ static getInstance() {
44
+ if (!instance) {
45
+ DoctorRegistrar.init();
46
+ }
47
+ return instance;
48
+ }
49
+
50
+ /**
51
+ * Register a new diagnosis
52
+ * @param {Diagnosis} diagnosis
53
+ */
54
+ registerDiagnosis(diagnosis) {
55
+ this.diagnoses.push(diagnosis);
56
+ }
57
+ getDiagnosisByName(name) {
58
+ return this.diagnoses.find(_checkName(name));
59
+ }
60
+ }
61
+ exports.default = DoctorRegistrar;
62
+
63
+ //# sourceMappingURL=doctor-registrar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["instance","_checkName","name","diagnosis","DoctorRegistrar","constructor","_defineProperty","init","diagnoses","self","getInstance","registerDiagnosis","push","getDiagnosisByName","find","exports","default"],"sources":["doctor-registrar.ts"],"sourcesContent":["import Diagnosis from './diagnosis';\n\n/*\n * Setting up block level variable to store class state\n * set's to null by default.\n */\nlet instance: DoctorRegistrar | null = null;\n\nconst _checkName = (name) => (diagnosis: Diagnosis) => {\n return diagnosis.name === name;\n};\n\nexport default class DoctorRegistrar {\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n diagnoses: Diagnosis[];\n\n constructor() {\n if (!instance) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n instance = this;\n }\n\n return instance;\n }\n\n /**\n * Initialize the default diagnoses\n */\n static init(diagnoses: Diagnosis[] = []) {\n const self = new DoctorRegistrar();\n self.diagnoses = diagnoses;\n // diagnoses.forEach(diagnosis => self.diagnoses.push(diagnosis));\n }\n\n /**\n * Get the instance of the DoctorRegistrar\n * @return {DoctorRegistrar} instance of the DoctorRegistrar\n *\n */\n static getInstance(): DoctorRegistrar {\n if (!instance) {\n DoctorRegistrar.init();\n }\n return instance as DoctorRegistrar;\n }\n\n /**\n * Register a new diagnosis\n * @param {Diagnosis} diagnosis\n */\n registerDiagnosis(diagnosis: Diagnosis) {\n this.diagnoses.push(diagnosis);\n }\n\n getDiagnosisByName(name: string) {\n return this.diagnoses.find(_checkName(name));\n }\n}\n"],"mappings":";;;;;;;;;AAEA;AACA;AACA;AACA;AACA,IAAIA,QAAgC,GAAG,IAAI;AAE3C,MAAMC,UAAU,GAAIC,IAAI,IAAMC,SAAoB,IAAK;EACrD,OAAOA,SAAS,CAACD,IAAI,KAAKA,IAAI;AAChC,CAAC;AAEc,MAAME,eAAe,CAAC;EAInCC,WAAWA,CAAA,EAAG;IAHd;IAAAC,eAAA;IAIE,IAAI,CAACN,QAAQ,EAAE;MACb;MACAA,QAAQ,GAAG,IAAI;IACjB;IAEA,OAAOA,QAAQ;EACjB;;EAEA;AACF;AACA;EACE,OAAOO,IAAIA,CAACC,SAAsB,GAAG,EAAE,EAAE;IACvC,MAAMC,IAAI,GAAG,IAAIL,eAAe,CAAC,CAAC;IAClCK,IAAI,CAACD,SAAS,GAAGA,SAAS;IAC1B;EACF;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOE,WAAWA,CAAA,EAAoB;IACpC,IAAI,CAACV,QAAQ,EAAE;MACbI,eAAe,CAACG,IAAI,CAAC,CAAC;IACxB;IACA,OAAOP,QAAQ;EACjB;;EAEA;AACF;AACA;AACA;EACEW,iBAAiBA,CAACR,SAAoB,EAAE;IACtC,IAAI,CAACK,SAAS,CAACI,IAAI,CAACT,SAAS,CAAC;EAChC;EAEAU,kBAAkBA,CAACX,IAAY,EAAE;IAC/B,OAAO,IAAI,CAACM,SAAS,CAACM,IAAI,CAACb,UAAU,CAACC,IAAI,CAAC,CAAC;EAC9C;AACF;AAACa,OAAA,CAAAC,OAAA,GAAAZ,eAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import { DoctorRunAllResults } from './doctor';
2
+ export default function render({ examineResults, savedFilePath, metaData }: DoctorRunAllResults): string;
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = render;
7
+ function _chalk() {
8
+ const data = _interopRequireDefault(require("chalk"));
9
+ _chalk = function () {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
14
+ function _table() {
15
+ const data = require("table");
16
+ _table = function () {
17
+ return data;
18
+ };
19
+ return data;
20
+ }
21
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
+ // const NAME_COLUMN_WIDTH = 100;
23
+ // const DESCRIPTION_COLUMN_WIDTH = 30;
24
+
25
+ const summeryTableColumnConfig = {
26
+ columnDefault: {
27
+ alignment: 'left'
28
+ }
29
+ };
30
+ function _formatStatusCell(status) {
31
+ if (status) {
32
+ return _chalk().default.green('passed');
33
+ }
34
+ return _chalk().default.red('failed');
35
+ }
36
+ function _createSummeryRow(examineResult) {
37
+ const meta = examineResult.diagnosisMetaData;
38
+ const status = _formatStatusCell(examineResult.bareResult.valid);
39
+ return [meta.category, meta.name, meta.description, status];
40
+ }
41
+ function _createSummeryTable(examineResult) {
42
+ const header = [_chalk().default.bold('category'), _chalk().default.bold('name'), _chalk().default.bold('description'), _chalk().default.bold('status')];
43
+ const rows = examineResult.map(_createSummeryRow);
44
+ // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
45
+ rows.unshift(header);
46
+ const output = (0, _table().table)(rows, summeryTableColumnConfig);
47
+ return output;
48
+ }
49
+ function _createSummerySection(examineResult) {
50
+ // A placeholder if we will decide we want a title
51
+ const title = _chalk().default.underline('');
52
+ const summeryTable = _createSummeryTable(examineResult);
53
+ return `${title}\n${summeryTable}`;
54
+ }
55
+ function _createFullReportForDiagnosis(examineResult) {
56
+ if (examineResult.bareResult.valid) {
57
+ return '';
58
+ }
59
+ const title = _chalk().default.underline(examineResult.diagnosisMetaData.name);
60
+ const symptomsTitle = _chalk().default.underline('symptoms');
61
+ const symptomsText = examineResult.formattedSymptoms;
62
+ const cureTitle = _chalk().default.underline('cure');
63
+ const cureText = examineResult.formattedManualTreat;
64
+ return `${title}
65
+ ${symptomsTitle}
66
+ ${symptomsText}
67
+ ${cureTitle}
68
+ ${cureText}\n`;
69
+ }
70
+ function _createFullReportForDiagnoses(examineResult) {
71
+ const fullDiagnosesReport = examineResult.map(_createFullReportForDiagnosis).join('\n');
72
+ return fullDiagnosesReport;
73
+ }
74
+ function _createFullReportSection(examineResult) {
75
+ const title = _chalk().default.underline('Error report');
76
+ const fullDiagnosesReport = _createFullReportForDiagnoses(examineResult);
77
+ if (fullDiagnosesReport.trim() === '') {
78
+ return '';
79
+ }
80
+ return `${title}
81
+ ${fullDiagnosesReport}`;
82
+ }
83
+ function _createWrittenFileSection(savedFilePath) {
84
+ if (!savedFilePath) {
85
+ return '';
86
+ }
87
+ return `File written to ${savedFilePath}`;
88
+ }
89
+ function _createMetaSection(metaData) {
90
+ return `
91
+ bit version : ${metaData.bitVersion}
92
+ node version : ${metaData.nodeVersion}
93
+ npm version : ${metaData.npmVersion || 'NA'}
94
+ yarn version : ${metaData.yarnVersion || 'NA'}
95
+ platform : ${metaData.platform}
96
+ user details : ${metaData.userDetails}
97
+ `;
98
+ }
99
+ function render({
100
+ examineResults,
101
+ savedFilePath,
102
+ metaData
103
+ }) {
104
+ const meatSection = _createMetaSection(metaData);
105
+ const summerySection = _createSummerySection(examineResults);
106
+ const fullReportSection = _createFullReportSection(examineResults);
107
+ const writtenFileSection = _createWrittenFileSection(savedFilePath);
108
+ const output = `${meatSection}
109
+ ${summerySection}
110
+ ${fullReportSection}
111
+ ${writtenFileSection}`;
112
+ return output;
113
+ }
114
+
115
+ //# sourceMappingURL=doctor-results-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_table","e","__esModule","default","summeryTableColumnConfig","columnDefault","alignment","_formatStatusCell","status","chalk","green","red","_createSummeryRow","examineResult","meta","diagnosisMetaData","bareResult","valid","category","name","description","_createSummeryTable","header","bold","rows","map","unshift","output","table","_createSummerySection","title","underline","summeryTable","_createFullReportForDiagnosis","symptomsTitle","symptomsText","formattedSymptoms","cureTitle","cureText","formattedManualTreat","_createFullReportForDiagnoses","fullDiagnosesReport","join","_createFullReportSection","trim","_createWrittenFileSection","savedFilePath","_createMetaSection","metaData","bitVersion","nodeVersion","npmVersion","yarnVersion","platform","userDetails","render","examineResults","meatSection","summerySection","fullReportSection","writtenFileSection"],"sources":["doctor-results-template.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { table } from 'table';\nimport { DoctorMetaData, DoctorRunAllResults } from './doctor';\nimport { ExamineResult } from './diagnosis';\n\n// const NAME_COLUMN_WIDTH = 100;\n// const DESCRIPTION_COLUMN_WIDTH = 30;\n\nconst summeryTableColumnConfig = {\n columnDefault: {\n alignment: 'left',\n },\n};\n\ntype SummeryRow = [string, string, string, string];\n\nfunction _formatStatusCell(status: boolean): string {\n if (status) {\n return chalk.green('passed');\n }\n return chalk.red('failed');\n}\n\nfunction _createSummeryRow(examineResult: ExamineResult): SummeryRow {\n const meta = examineResult.diagnosisMetaData;\n const status = _formatStatusCell(examineResult.bareResult.valid);\n return [meta.category, meta.name, meta.description, status];\n}\n\nfunction _createSummeryTable(examineResult: ExamineResult[]): string {\n const header = [chalk.bold('category'), chalk.bold('name'), chalk.bold('description'), chalk.bold('status')];\n const rows = examineResult.map(_createSummeryRow);\n // @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!\n rows.unshift(header);\n const output = table(rows, summeryTableColumnConfig);\n return output;\n}\n\nfunction _createSummerySection(examineResult: ExamineResult[]): string {\n // A placeholder if we will decide we want a title\n const title = chalk.underline('');\n const summeryTable = _createSummeryTable(examineResult);\n return `${title}\\n${summeryTable}`;\n}\n\nfunction _createFullReportForDiagnosis(examineResult: ExamineResult): string {\n if (examineResult.bareResult.valid) {\n return '';\n }\n const title = chalk.underline(examineResult.diagnosisMetaData.name);\n const symptomsTitle = chalk.underline('symptoms');\n const symptomsText = examineResult.formattedSymptoms;\n const cureTitle = chalk.underline('cure');\n const cureText = examineResult.formattedManualTreat;\n return `${title}\n ${symptomsTitle}\n ${symptomsText}\n ${cureTitle}\n ${cureText}\\n`;\n}\n\nfunction _createFullReportForDiagnoses(examineResult: ExamineResult[]): string {\n const fullDiagnosesReport = examineResult.map(_createFullReportForDiagnosis).join('\\n');\n return fullDiagnosesReport;\n}\n\nfunction _createFullReportSection(examineResult: ExamineResult[]): string {\n const title = chalk.underline('Error report');\n const fullDiagnosesReport = _createFullReportForDiagnoses(examineResult);\n if (fullDiagnosesReport.trim() === '') {\n return '';\n }\n return `${title}\n${fullDiagnosesReport}`;\n}\n\nfunction _createWrittenFileSection(savedFilePath) {\n if (!savedFilePath) {\n return '';\n }\n return `File written to ${savedFilePath}`;\n}\n\nfunction _createMetaSection(metaData: DoctorMetaData) {\n return `\n bit version : ${metaData.bitVersion}\n node version : ${metaData.nodeVersion}\n npm version : ${metaData.npmVersion || 'NA'}\n yarn version : ${metaData.yarnVersion || 'NA'}\n platform : ${metaData.platform}\n user details : ${metaData.userDetails}\n`;\n}\n\nexport default function render({ examineResults, savedFilePath, metaData }: DoctorRunAllResults): string {\n const meatSection = _createMetaSection(metaData);\n const summerySection = _createSummerySection(examineResults);\n const fullReportSection = _createFullReportSection(examineResults);\n const writtenFileSection = _createWrittenFileSection(savedFilePath);\n const output = `${meatSection}\n${summerySection}\n${fullReportSection}\n${writtenFileSection}`;\n return output;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import { Aspect } from '@teambit/harmony';
2
+ export declare const DoctorAspect: Aspect;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DoctorAspect = void 0;
7
+ function _harmony() {
8
+ const data = require("@teambit/harmony");
9
+ _harmony = function () {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
14
+ const DoctorAspect = exports.DoctorAspect = _harmony().Aspect.create({
15
+ id: 'teambit.harmony/doctor'
16
+ });
17
+
18
+ //# sourceMappingURL=doctor.aspect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_harmony","data","require","DoctorAspect","exports","Aspect","create","id"],"sources":["doctor.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const DoctorAspect = Aspect.create({\n id: 'teambit.harmony/doctor',\n});\n"],"mappings":";;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAME,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAGE,iBAAM,CAACC,MAAM,CAAC;EACxCC,EAAE,EAAE;AACN,CAAC,CAAC","ignoreList":[]}