@teambit/issues 0.0.0-45aa80d74c83c2589ebd613af6d347809773ff1e
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.
- package/dist/esm.mjs +6 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/issues-cmd.d.ts +20 -0
- package/dist/issues-cmd.js +43 -0
- package/dist/issues-cmd.js.map +1 -0
- package/dist/issues.aspect.d.ts +2 -0
- package/dist/issues.aspect.js +18 -0
- package/dist/issues.aspect.js.map +1 -0
- package/dist/issues.main.runtime.d.ts +38 -0
- package/dist/issues.main.runtime.js +136 -0
- package/dist/issues.main.runtime.js.map +1 -0
- package/dist/non-exist-issue-error.d.ts +4 -0
- package/dist/non-exist-issue-error.js +29 -0
- package/dist/non-exist-issue-error.js.map +1 -0
- package/dist/preview-1752165283597.js +7 -0
- package/esm.mjs +6 -0
- package/package.json +56 -0
- package/types/asset.d.ts +41 -0
- package/types/style.d.ts +42 -0
package/dist/esm.mjs
ADDED
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
Object.defineProperty(exports, "IssuesAspect", {
|
7
|
+
enumerable: true,
|
8
|
+
get: function () {
|
9
|
+
return _issues().IssuesAspect;
|
10
|
+
}
|
11
|
+
});
|
12
|
+
exports.default = void 0;
|
13
|
+
function _issues() {
|
14
|
+
const data = require("./issues.aspect");
|
15
|
+
_issues = function () {
|
16
|
+
return data;
|
17
|
+
};
|
18
|
+
return data;
|
19
|
+
}
|
20
|
+
var _default = exports.default = _issues().IssuesAspect;
|
21
|
+
|
22
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["_issues","data","require","_default","exports","default","IssuesAspect"],"sources":["index.ts"],"sourcesContent":["import { IssuesAspect } from './issues.aspect';\n\nexport type { IssuesMain } from './issues.main.runtime';\nexport default IssuesAspect;\nexport { IssuesAspect };\n"],"mappings":";;;;;;;;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA+C,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAGhCC,sBAAY","ignoreList":[]}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { Command, CommandOptions } from '@teambit/cli';
|
2
|
+
import { IssuesMain } from './issues.main.runtime';
|
3
|
+
export declare class ComponentIssuesCmd implements Command {
|
4
|
+
private issues;
|
5
|
+
name: string;
|
6
|
+
description: string;
|
7
|
+
alias: string;
|
8
|
+
group: string;
|
9
|
+
options: CommandOptions;
|
10
|
+
loader: boolean;
|
11
|
+
private: boolean;
|
12
|
+
constructor(issues: IssuesMain);
|
13
|
+
report(): Promise<string>;
|
14
|
+
json(): Promise<{
|
15
|
+
name: string;
|
16
|
+
description: string;
|
17
|
+
solution: string;
|
18
|
+
isTagBlocker: boolean;
|
19
|
+
}[]>;
|
20
|
+
}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.ComponentIssuesCmd = void 0;
|
7
|
+
function _chalk() {
|
8
|
+
const data = _interopRequireDefault(require("chalk"));
|
9
|
+
_chalk = function () {
|
10
|
+
return data;
|
11
|
+
};
|
12
|
+
return data;
|
13
|
+
}
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
15
|
+
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; }
|
16
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
17
|
+
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); }
|
18
|
+
class ComponentIssuesCmd {
|
19
|
+
constructor(issues) {
|
20
|
+
this.issues = issues;
|
21
|
+
_defineProperty(this, "name", 'component-issues');
|
22
|
+
_defineProperty(this, "description", 'list available component-issues');
|
23
|
+
_defineProperty(this, "alias", '');
|
24
|
+
_defineProperty(this, "group", 'info-analysis');
|
25
|
+
_defineProperty(this, "options", [['j', 'json', 'output issues in json format']]);
|
26
|
+
_defineProperty(this, "loader", true);
|
27
|
+
_defineProperty(this, "private", true);
|
28
|
+
}
|
29
|
+
async report() {
|
30
|
+
const results = await this.json();
|
31
|
+
return results.map(result => `${_chalk().default.bold(result.name)}
|
32
|
+
${result.description}
|
33
|
+
Possible solution: ${result.solution}
|
34
|
+
Is Tag/Snap blocker: ${result.isTagBlocker ? 'yes' : 'no'}
|
35
|
+
`).join('\n');
|
36
|
+
}
|
37
|
+
async json() {
|
38
|
+
return this.issues.listIssues();
|
39
|
+
}
|
40
|
+
}
|
41
|
+
exports.ComponentIssuesCmd = ComponentIssuesCmd;
|
42
|
+
|
43
|
+
//# sourceMappingURL=issues-cmd.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["_chalk","data","_interopRequireDefault","require","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ComponentIssuesCmd","constructor","issues","report","results","json","map","result","chalk","bold","name","description","solution","isTagBlocker","join","listIssues","exports"],"sources":["issues-cmd.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { IssuesMain } from './issues.main.runtime';\n\nexport class ComponentIssuesCmd implements Command {\n name = 'component-issues';\n description = 'list available component-issues';\n alias = '';\n group = 'info-analysis';\n options = [['j', 'json', 'output issues in json format']] as CommandOptions;\n loader = true;\n private = true;\n\n constructor(private issues: IssuesMain) {}\n\n async report() {\n const results = await this.json();\n return results\n .map(\n (result) => `${chalk.bold(result.name)}\n${result.description}\nPossible solution: ${result.solution}\nIs Tag/Snap blocker: ${result.isTagBlocker ? 'yes' : 'no'}\n`\n )\n .join('\\n');\n }\n\n async json() {\n return this.issues.listIssues();\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;AAA0B,SAAAC,uBAAAE,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;AAInB,MAAMgB,kBAAkB,CAAoB;EASjDC,WAAWA,CAASC,MAAkB,EAAE;IAAA,KAApBA,MAAkB,GAAlBA,MAAkB;IAAApB,eAAA,eAR/B,kBAAkB;IAAAA,eAAA,sBACX,iCAAiC;IAAAA,eAAA,gBACvC,EAAE;IAAAA,eAAA,gBACF,eAAe;IAAAA,eAAA,kBACb,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,8BAA8B,CAAC,CAAC;IAAAA,eAAA,iBAChD,IAAI;IAAAA,eAAA,kBACH,IAAI;EAE2B;EAEzC,MAAMqB,MAAMA,CAAA,EAAG;IACb,MAAMC,OAAO,GAAG,MAAM,IAAI,CAACC,IAAI,CAAC,CAAC;IACjC,OAAOD,OAAO,CACXE,GAAG,CACDC,MAAM,IAAK,GAAGC,gBAAK,CAACC,IAAI,CAACF,MAAM,CAACG,IAAI,CAAC;AAC9C,EAAEH,MAAM,CAACI,WAAW;AACpB,qBAAqBJ,MAAM,CAACK,QAAQ;AACpC,uBAAuBL,MAAM,CAACM,YAAY,GAAG,KAAK,GAAG,IAAI;AACzD,CACM,CAAC,CACAC,IAAI,CAAC,IAAI,CAAC;EACf;EAEA,MAAMT,IAAIA,CAAA,EAAG;IACX,OAAO,IAAI,CAACH,MAAM,CAACa,UAAU,CAAC,CAAC;EACjC;AACF;AAACC,OAAA,CAAAhB,kBAAA,GAAAA,kBAAA","ignoreList":[]}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.IssuesAspect = void 0;
|
7
|
+
function _harmony() {
|
8
|
+
const data = require("@teambit/harmony");
|
9
|
+
_harmony = function () {
|
10
|
+
return data;
|
11
|
+
};
|
12
|
+
return data;
|
13
|
+
}
|
14
|
+
const IssuesAspect = exports.IssuesAspect = _harmony().Aspect.create({
|
15
|
+
id: 'teambit.component/issues'
|
16
|
+
});
|
17
|
+
|
18
|
+
//# sourceMappingURL=issues.aspect.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["_harmony","data","require","IssuesAspect","exports","Aspect","create","id"],"sources":["issues.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const IssuesAspect = Aspect.create({\n id: 'teambit.component/issues',\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":[]}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import { CLIMain } from '@teambit/cli';
|
2
|
+
import { Component } from '@teambit/component';
|
3
|
+
import { SlotRegistry } from '@teambit/harmony';
|
4
|
+
export type IssuesConfig = {
|
5
|
+
ignoreIssues: string[];
|
6
|
+
};
|
7
|
+
export type AddComponentsIssues = (components: Component[], issuesToIgnore: string[]) => Promise<void>;
|
8
|
+
export type AddComponentsIssuesSlot = SlotRegistry<AddComponentsIssues>;
|
9
|
+
export declare class IssuesMain {
|
10
|
+
private config;
|
11
|
+
private addComponentsIssuesSlot;
|
12
|
+
constructor(config: IssuesConfig, addComponentsIssuesSlot: AddComponentsIssuesSlot);
|
13
|
+
getIssuesToIgnoreGlobally(): string[];
|
14
|
+
getIssuesToIgnorePerComponent(component: Component): string[];
|
15
|
+
private validateIssueNames;
|
16
|
+
listIssues(): {
|
17
|
+
name: string;
|
18
|
+
description: string;
|
19
|
+
solution: string;
|
20
|
+
isTagBlocker: boolean;
|
21
|
+
}[];
|
22
|
+
removeIgnoredIssuesFromComponents(components: Component[], extraIssuesToIgnore?: string[]): void;
|
23
|
+
/**
|
24
|
+
* register to this slot in order to add a component-issue in bit-status and bit-snap/tag.
|
25
|
+
* your function gets all components in one param and the issuesToIgnore as a second param, you don't need to check
|
26
|
+
* for issuesToIgnore. if the issue you added is configured to be ignored, it'll be ignored later in the process.
|
27
|
+
* this is useful for optimization, if you don't want to calculate the component issue when it's ignored.
|
28
|
+
*/
|
29
|
+
registerAddComponentsIssues(addComponentsIssues: AddComponentsIssues): void;
|
30
|
+
triggerAddComponentIssues(components: Component[], issuesToIgnore: string[]): Promise<void>;
|
31
|
+
static slots: ((registerFn: () => string) => SlotRegistry<AddComponentsIssues>)[];
|
32
|
+
static dependencies: import("@teambit/harmony").Aspect[];
|
33
|
+
static defaultConfig: {
|
34
|
+
ignoreIssues: never[];
|
35
|
+
};
|
36
|
+
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
37
|
+
static provider([cli]: [CLIMain], config: IssuesConfig, [addComponentsIssuesSlot]: [AddComponentsIssuesSlot]): Promise<IssuesMain>;
|
38
|
+
}
|
@@ -0,0 +1,136 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.IssuesMain = void 0;
|
7
|
+
function _cli() {
|
8
|
+
const data = require("@teambit/cli");
|
9
|
+
_cli = function () {
|
10
|
+
return data;
|
11
|
+
};
|
12
|
+
return data;
|
13
|
+
}
|
14
|
+
function _componentIssues() {
|
15
|
+
const data = require("@teambit/component-issues");
|
16
|
+
_componentIssues = function () {
|
17
|
+
return data;
|
18
|
+
};
|
19
|
+
return data;
|
20
|
+
}
|
21
|
+
function _harmony() {
|
22
|
+
const data = require("@teambit/harmony");
|
23
|
+
_harmony = function () {
|
24
|
+
return data;
|
25
|
+
};
|
26
|
+
return data;
|
27
|
+
}
|
28
|
+
function _pMapSeries() {
|
29
|
+
const data = _interopRequireDefault(require("p-map-series"));
|
30
|
+
_pMapSeries = function () {
|
31
|
+
return data;
|
32
|
+
};
|
33
|
+
return data;
|
34
|
+
}
|
35
|
+
function _issuesCmd() {
|
36
|
+
const data = require("./issues-cmd");
|
37
|
+
_issuesCmd = function () {
|
38
|
+
return data;
|
39
|
+
};
|
40
|
+
return data;
|
41
|
+
}
|
42
|
+
function _issues() {
|
43
|
+
const data = require("./issues.aspect");
|
44
|
+
_issues = function () {
|
45
|
+
return data;
|
46
|
+
};
|
47
|
+
return data;
|
48
|
+
}
|
49
|
+
function _nonExistIssueError() {
|
50
|
+
const data = require("./non-exist-issue-error");
|
51
|
+
_nonExistIssueError = function () {
|
52
|
+
return data;
|
53
|
+
};
|
54
|
+
return data;
|
55
|
+
}
|
56
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
57
|
+
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; }
|
58
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
59
|
+
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); }
|
60
|
+
class IssuesMain {
|
61
|
+
constructor(config, addComponentsIssuesSlot) {
|
62
|
+
this.config = config;
|
63
|
+
this.addComponentsIssuesSlot = addComponentsIssuesSlot;
|
64
|
+
}
|
65
|
+
getIssuesToIgnoreGlobally() {
|
66
|
+
const issuesToIgnore = this.config.ignoreIssues || [];
|
67
|
+
this.validateIssueNames(issuesToIgnore);
|
68
|
+
return issuesToIgnore;
|
69
|
+
}
|
70
|
+
getIssuesToIgnorePerComponent(component) {
|
71
|
+
const issuesToIgnore = component.state.aspects.get(_issues().IssuesAspect.id)?.config.ignoreIssues;
|
72
|
+
if (!issuesToIgnore) return [];
|
73
|
+
this.validateIssueNames(issuesToIgnore);
|
74
|
+
return issuesToIgnore;
|
75
|
+
}
|
76
|
+
validateIssueNames(issues) {
|
77
|
+
const allIssues = this.listIssues().map(issue => issue.name);
|
78
|
+
issues.forEach(issue => {
|
79
|
+
if (!allIssues.includes(issue)) {
|
80
|
+
throw new (_nonExistIssueError().NonExistIssueError)(issue);
|
81
|
+
}
|
82
|
+
});
|
83
|
+
}
|
84
|
+
listIssues() {
|
85
|
+
const instances = Object.keys(_componentIssues().IssuesClasses).map(issueClass => new (_componentIssues().IssuesClasses[issueClass])());
|
86
|
+
const issuesList = new (_componentIssues().IssuesList)(instances);
|
87
|
+
const allIssues = issuesList.getAllIssues();
|
88
|
+
return allIssues.map(issueInstance => {
|
89
|
+
return {
|
90
|
+
name: issueInstance.constructor.name,
|
91
|
+
description: issueInstance.description,
|
92
|
+
solution: issueInstance.solution,
|
93
|
+
isTagBlocker: issueInstance.isTagBlocker
|
94
|
+
};
|
95
|
+
});
|
96
|
+
}
|
97
|
+
removeIgnoredIssuesFromComponents(components, extraIssuesToIgnore = []) {
|
98
|
+
const issuesToIgnoreGlobally = this.getIssuesToIgnoreGlobally();
|
99
|
+
components.forEach(component => {
|
100
|
+
const issuesToIgnoreForThisComp = this.getIssuesToIgnorePerComponent(component);
|
101
|
+
const issuesToIgnore = [...issuesToIgnoreGlobally, ...issuesToIgnoreForThisComp, ...extraIssuesToIgnore];
|
102
|
+
issuesToIgnore.forEach(issueToIgnore => {
|
103
|
+
component.state.issues.delete(_componentIssues().IssuesClasses[issueToIgnore]);
|
104
|
+
});
|
105
|
+
});
|
106
|
+
}
|
107
|
+
|
108
|
+
/**
|
109
|
+
* register to this slot in order to add a component-issue in bit-status and bit-snap/tag.
|
110
|
+
* your function gets all components in one param and the issuesToIgnore as a second param, you don't need to check
|
111
|
+
* for issuesToIgnore. if the issue you added is configured to be ignored, it'll be ignored later in the process.
|
112
|
+
* this is useful for optimization, if you don't want to calculate the component issue when it's ignored.
|
113
|
+
*/
|
114
|
+
registerAddComponentsIssues(addComponentsIssues) {
|
115
|
+
this.addComponentsIssuesSlot.register(addComponentsIssues);
|
116
|
+
}
|
117
|
+
async triggerAddComponentIssues(components, issuesToIgnore) {
|
118
|
+
const allFunctions = this.addComponentsIssuesSlot.values();
|
119
|
+
await (0, _pMapSeries().default)(allFunctions, func => func(components, issuesToIgnore));
|
120
|
+
}
|
121
|
+
static async provider([cli], config, [addComponentsIssuesSlot]) {
|
122
|
+
const issuesMain = new IssuesMain(config, addComponentsIssuesSlot);
|
123
|
+
cli.register(new (_issuesCmd().ComponentIssuesCmd)(issuesMain));
|
124
|
+
return issuesMain;
|
125
|
+
}
|
126
|
+
}
|
127
|
+
exports.IssuesMain = IssuesMain;
|
128
|
+
_defineProperty(IssuesMain, "slots", [_harmony().Slot.withType()]);
|
129
|
+
_defineProperty(IssuesMain, "dependencies", [_cli().CLIAspect]);
|
130
|
+
_defineProperty(IssuesMain, "defaultConfig", {
|
131
|
+
ignoreIssues: []
|
132
|
+
});
|
133
|
+
_defineProperty(IssuesMain, "runtime", _cli().MainRuntime);
|
134
|
+
_issues().IssuesAspect.addRuntime(IssuesMain);
|
135
|
+
|
136
|
+
//# sourceMappingURL=issues.main.runtime.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["_cli","data","require","_componentIssues","_harmony","_pMapSeries","_interopRequireDefault","_issuesCmd","_issues","_nonExistIssueError","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","IssuesMain","constructor","config","addComponentsIssuesSlot","getIssuesToIgnoreGlobally","issuesToIgnore","ignoreIssues","validateIssueNames","getIssuesToIgnorePerComponent","component","state","aspects","get","IssuesAspect","id","issues","allIssues","listIssues","map","issue","name","forEach","includes","NonExistIssueError","instances","keys","IssuesClasses","issueClass","issuesList","IssuesList","getAllIssues","issueInstance","description","solution","isTagBlocker","removeIgnoredIssuesFromComponents","components","extraIssuesToIgnore","issuesToIgnoreGlobally","issuesToIgnoreForThisComp","issueToIgnore","delete","registerAddComponentsIssues","addComponentsIssues","register","triggerAddComponentIssues","allFunctions","values","pMapSeries","func","provider","cli","issuesMain","ComponentIssuesCmd","exports","Slot","withType","CLIAspect","MainRuntime","addRuntime"],"sources":["issues.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component } from '@teambit/component';\nimport { IssuesClasses, IssuesList } from '@teambit/component-issues';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport pMapSeries from 'p-map-series';\nimport { ComponentIssuesCmd } from './issues-cmd';\nimport { IssuesAspect } from './issues.aspect';\nimport { NonExistIssueError } from './non-exist-issue-error';\n\nexport type IssuesConfig = {\n ignoreIssues: string[];\n};\n\nexport type AddComponentsIssues = (components: Component[], issuesToIgnore: string[]) => Promise<void>;\n\nexport type AddComponentsIssuesSlot = SlotRegistry<AddComponentsIssues>;\n\nexport class IssuesMain {\n constructor(\n private config: IssuesConfig,\n private addComponentsIssuesSlot: AddComponentsIssuesSlot\n ) {}\n\n getIssuesToIgnoreGlobally(): string[] {\n const issuesToIgnore = this.config.ignoreIssues || [];\n this.validateIssueNames(issuesToIgnore);\n return issuesToIgnore;\n }\n\n getIssuesToIgnorePerComponent(component: Component): string[] {\n const issuesToIgnore = component.state.aspects.get(IssuesAspect.id)?.config.ignoreIssues;\n if (!issuesToIgnore) return [];\n this.validateIssueNames(issuesToIgnore);\n return issuesToIgnore;\n }\n\n private validateIssueNames(issues: string[]) {\n const allIssues = this.listIssues().map((issue) => issue.name);\n issues.forEach((issue) => {\n if (!allIssues.includes(issue)) {\n throw new NonExistIssueError(issue);\n }\n });\n }\n\n listIssues() {\n const instances = Object.keys(IssuesClasses).map((issueClass) => new IssuesClasses[issueClass]());\n const issuesList = new IssuesList(instances);\n const allIssues = issuesList.getAllIssues();\n return allIssues.map((issueInstance) => {\n return {\n name: issueInstance.constructor.name,\n description: issueInstance.description,\n solution: issueInstance.solution,\n isTagBlocker: issueInstance.isTagBlocker,\n };\n });\n }\n\n removeIgnoredIssuesFromComponents(components: Component[], extraIssuesToIgnore: string[] = []) {\n const issuesToIgnoreGlobally = this.getIssuesToIgnoreGlobally();\n components.forEach((component) => {\n const issuesToIgnoreForThisComp = this.getIssuesToIgnorePerComponent(component);\n const issuesToIgnore = [...issuesToIgnoreGlobally, ...issuesToIgnoreForThisComp, ...extraIssuesToIgnore];\n issuesToIgnore.forEach((issueToIgnore) => {\n component.state.issues.delete(IssuesClasses[issueToIgnore]);\n });\n });\n }\n\n /**\n * register to this slot in order to add a component-issue in bit-status and bit-snap/tag.\n * your function gets all components in one param and the issuesToIgnore as a second param, you don't need to check\n * for issuesToIgnore. if the issue you added is configured to be ignored, it'll be ignored later in the process.\n * this is useful for optimization, if you don't want to calculate the component issue when it's ignored.\n */\n registerAddComponentsIssues(addComponentsIssues: AddComponentsIssues) {\n this.addComponentsIssuesSlot.register(addComponentsIssues);\n }\n\n async triggerAddComponentIssues(components: Component[], issuesToIgnore: string[]) {\n const allFunctions = this.addComponentsIssuesSlot.values();\n await pMapSeries(allFunctions, (func) => func(components, issuesToIgnore));\n }\n\n static slots = [Slot.withType<AddComponentsIssues>()];\n static dependencies = [CLIAspect];\n static defaultConfig = {\n ignoreIssues: [],\n };\n static runtime = MainRuntime;\n static async provider([cli]: [CLIMain], config: IssuesConfig, [addComponentsIssuesSlot]: [AddComponentsIssuesSlot]) {\n const issuesMain = new IssuesMain(config, addComponentsIssuesSlot);\n cli.register(new ComponentIssuesCmd(issuesMain));\n return issuesMain;\n }\n}\n\nIssuesAspect.addRuntime(IssuesMain);\n"],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.NonExistIssueError = void 0;
|
7
|
+
function _bitError() {
|
8
|
+
const data = require("@teambit/bit-error");
|
9
|
+
_bitError = function () {
|
10
|
+
return data;
|
11
|
+
};
|
12
|
+
return data;
|
13
|
+
}
|
14
|
+
function _issues() {
|
15
|
+
const data = require("./issues.aspect");
|
16
|
+
_issues = function () {
|
17
|
+
return data;
|
18
|
+
};
|
19
|
+
return data;
|
20
|
+
}
|
21
|
+
class NonExistIssueError extends _bitError().BitError {
|
22
|
+
constructor(issueToIgnore) {
|
23
|
+
super(`fatal: a non-existing component-issue "${issueToIgnore}" was configured for ${_issues().IssuesAspect.id} aspect.
|
24
|
+
to get the list of component-issues, please run "bit component-issues"`);
|
25
|
+
}
|
26
|
+
}
|
27
|
+
exports.NonExistIssueError = NonExistIssueError;
|
28
|
+
|
29
|
+
//# sourceMappingURL=non-exist-issue-error.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["_bitError","data","require","_issues","NonExistIssueError","BitError","constructor","issueToIgnore","IssuesAspect","id","exports"],"sources":["non-exist-issue-error.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport { IssuesAspect } from './issues.aspect';\n\nexport class NonExistIssueError extends BitError {\n constructor(issueToIgnore: string) {\n super(`fatal: a non-existing component-issue \"${issueToIgnore}\" was configured for ${IssuesAspect.id} aspect.\nto get the list of component-issues, please run \"bit component-issues\"`);\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,UAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,SAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,QAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,OAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAMG,kBAAkB,SAASC,oBAAQ,CAAC;EAC/CC,WAAWA,CAACC,aAAqB,EAAE;IACjC,KAAK,CAAC,0CAA0CA,aAAa,wBAAwBC,sBAAY,CAACC,EAAE;AACxG,uEAAuE,CAAC;EACtE;AACF;AAACC,OAAA,CAAAN,kBAAA,GAAAA,kBAAA","ignoreList":[]}
|
package/esm.mjs
ADDED
package/package.json
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
{
|
2
|
+
"name": "@teambit/issues",
|
3
|
+
"version": "0.0.0-45aa80d74c83c2589ebd613af6d347809773ff1e",
|
4
|
+
"homepage": "https://bit.cloud/teambit/component/issues",
|
5
|
+
"main": "dist/index.js",
|
6
|
+
"componentId": {
|
7
|
+
"scope": "teambit.component",
|
8
|
+
"name": "issues",
|
9
|
+
"version": "45aa80d74c83c2589ebd613af6d347809773ff1e"
|
10
|
+
},
|
11
|
+
"dependencies": {
|
12
|
+
"chalk": "4.1.2",
|
13
|
+
"p-map-series": "2.1.0",
|
14
|
+
"@teambit/harmony": "0.4.7",
|
15
|
+
"@teambit/bit-error": "0.0.404",
|
16
|
+
"@teambit/cli": "0.0.0-387ca83bd6d05e8441bf8d4e938b4a402307cc6b",
|
17
|
+
"@teambit/component-issues": "0.0.159",
|
18
|
+
"@teambit/component": "0.0.0-12e3e6054e5668c98e66feab14480e7e9f7467cd"
|
19
|
+
},
|
20
|
+
"devDependencies": {
|
21
|
+
"@types/mocha": "9.1.0",
|
22
|
+
"@teambit/harmony.envs.core-aspect-env": "0.0.69"
|
23
|
+
},
|
24
|
+
"peerDependencies": {},
|
25
|
+
"license": "Apache-2.0",
|
26
|
+
"optionalDependencies": {},
|
27
|
+
"peerDependenciesMeta": {},
|
28
|
+
"exports": {
|
29
|
+
".": {
|
30
|
+
"node": {
|
31
|
+
"require": "./dist/index.js",
|
32
|
+
"import": "./dist/esm.mjs"
|
33
|
+
},
|
34
|
+
"default": "./dist/index.js"
|
35
|
+
},
|
36
|
+
"./dist/*": "./dist/*",
|
37
|
+
"./artifacts/*": "./artifacts/*",
|
38
|
+
"./*": "./*.ts"
|
39
|
+
},
|
40
|
+
"private": false,
|
41
|
+
"engines": {
|
42
|
+
"node": ">=16.0.0"
|
43
|
+
},
|
44
|
+
"repository": {
|
45
|
+
"type": "git",
|
46
|
+
"url": "https://github.com/teambit/bit"
|
47
|
+
},
|
48
|
+
"keywords": [
|
49
|
+
"bit",
|
50
|
+
"bit-aspect",
|
51
|
+
"bit-core-aspect",
|
52
|
+
"components",
|
53
|
+
"collaboration",
|
54
|
+
"web"
|
55
|
+
]
|
56
|
+
}
|
package/types/asset.d.ts
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
declare module '*.png' {
|
2
|
+
const value: any;
|
3
|
+
export = value;
|
4
|
+
}
|
5
|
+
declare module '*.svg' {
|
6
|
+
import type { FunctionComponent, SVGProps } from 'react';
|
7
|
+
|
8
|
+
export const ReactComponent: FunctionComponent<
|
9
|
+
SVGProps<SVGSVGElement> & { title?: string }
|
10
|
+
>;
|
11
|
+
const src: string;
|
12
|
+
export default src;
|
13
|
+
}
|
14
|
+
declare module '*.jpg' {
|
15
|
+
const value: any;
|
16
|
+
export = value;
|
17
|
+
}
|
18
|
+
declare module '*.jpeg' {
|
19
|
+
const value: any;
|
20
|
+
export = value;
|
21
|
+
}
|
22
|
+
declare module '*.gif' {
|
23
|
+
const value: any;
|
24
|
+
export = value;
|
25
|
+
}
|
26
|
+
declare module '*.bmp' {
|
27
|
+
const value: any;
|
28
|
+
export = value;
|
29
|
+
}
|
30
|
+
declare module '*.otf' {
|
31
|
+
const value: any;
|
32
|
+
export = value;
|
33
|
+
}
|
34
|
+
declare module '*.woff' {
|
35
|
+
const value: any;
|
36
|
+
export = value;
|
37
|
+
}
|
38
|
+
declare module '*.woff2' {
|
39
|
+
const value: any;
|
40
|
+
export = value;
|
41
|
+
}
|
package/types/style.d.ts
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
declare module '*.module.css' {
|
2
|
+
const classes: { readonly [key: string]: string };
|
3
|
+
export default classes;
|
4
|
+
}
|
5
|
+
declare module '*.module.scss' {
|
6
|
+
const classes: { readonly [key: string]: string };
|
7
|
+
export default classes;
|
8
|
+
}
|
9
|
+
declare module '*.module.sass' {
|
10
|
+
const classes: { readonly [key: string]: string };
|
11
|
+
export default classes;
|
12
|
+
}
|
13
|
+
|
14
|
+
declare module '*.module.less' {
|
15
|
+
const classes: { readonly [key: string]: string };
|
16
|
+
export default classes;
|
17
|
+
}
|
18
|
+
|
19
|
+
declare module '*.less' {
|
20
|
+
const classes: { readonly [key: string]: string };
|
21
|
+
export default classes;
|
22
|
+
}
|
23
|
+
|
24
|
+
declare module '*.css' {
|
25
|
+
const classes: { readonly [key: string]: string };
|
26
|
+
export default classes;
|
27
|
+
}
|
28
|
+
|
29
|
+
declare module '*.sass' {
|
30
|
+
const classes: { readonly [key: string]: string };
|
31
|
+
export default classes;
|
32
|
+
}
|
33
|
+
|
34
|
+
declare module '*.scss' {
|
35
|
+
const classes: { readonly [key: string]: string };
|
36
|
+
export default classes;
|
37
|
+
}
|
38
|
+
|
39
|
+
declare module '*.mdx' {
|
40
|
+
const component: any;
|
41
|
+
export default component;
|
42
|
+
}
|