@form8ion/codecov 1.1.0-alpha.1 → 1.3.0

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/README.md CHANGED
@@ -103,7 +103,10 @@ details will only be scaffolded for public projects.
103
103
  Personal Access Token for accessing the [Codecov API](https://docs.codecov.com/reference).
104
104
  Providing an access token enables [fetching the `image_token` for the repository](https://docs.codecov.com/reference/repositories#get-a-single-repository)
105
105
  so that the coverage badge can display the proper coverage state of the
106
- project.
106
+ project when the project is not public.
107
+ Since the [Codecov API](https://docs.codecov.com/reference) appears to only
108
+ support GitHub at the time of this implementation, GitHub is the only VCS host
109
+ supported by this scaffolder at this time.
107
110
 
108
111
  ## Contributing
109
112
 
package/lib/index.cjs.js CHANGED
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var got = require('got');
6
+ var fs = require('fs');
6
7
 
7
8
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
9
 
@@ -13,14 +14,9 @@ function ownKeys(object, enumerableOnly) {
13
14
 
14
15
  if (Object.getOwnPropertySymbols) {
15
16
  var symbols = Object.getOwnPropertySymbols(object);
16
-
17
- if (enumerableOnly) {
18
- symbols = symbols.filter(function (sym) {
19
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
20
- });
21
- }
22
-
23
- keys.push.apply(keys, symbols);
17
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
18
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
19
+ })), keys.push.apply(keys, symbols);
24
20
  }
25
21
 
26
22
  return keys;
@@ -28,19 +24,12 @@ function ownKeys(object, enumerableOnly) {
28
24
 
29
25
  function _objectSpread2(target) {
30
26
  for (var i = 1; i < arguments.length; i++) {
31
- var source = arguments[i] != null ? arguments[i] : {};
32
-
33
- if (i % 2) {
34
- ownKeys(Object(source), true).forEach(function (key) {
35
- _defineProperty(target, key, source[key]);
36
- });
37
- } else if (Object.getOwnPropertyDescriptors) {
38
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
39
- } else {
40
- ownKeys(Object(source)).forEach(function (key) {
41
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
42
- });
43
- }
27
+ var source = null != arguments[i] ? arguments[i] : {};
28
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
29
+ _defineProperty(target, key, source[key]);
30
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
31
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
32
+ });
44
33
  }
45
34
 
46
35
  return target;
@@ -61,6 +50,50 @@ function _defineProperty(obj, key, value) {
61
50
  return obj;
62
51
  }
63
52
 
53
+ function _objectWithoutPropertiesLoose(source, excluded) {
54
+ if (source == null) return {};
55
+ var target = {};
56
+ var sourceKeys = Object.keys(source);
57
+ var key, i;
58
+
59
+ for (i = 0; i < sourceKeys.length; i++) {
60
+ key = sourceKeys[i];
61
+ if (excluded.indexOf(key) >= 0) continue;
62
+ target[key] = source[key];
63
+ }
64
+
65
+ return target;
66
+ }
67
+
68
+ function _objectWithoutProperties(source, excluded) {
69
+ if (source == null) return {};
70
+
71
+ var target = _objectWithoutPropertiesLoose(source, excluded);
72
+
73
+ var key, i;
74
+
75
+ if (Object.getOwnPropertySymbols) {
76
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
77
+
78
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
79
+ key = sourceSymbolKeys[i];
80
+ if (excluded.indexOf(key) >= 0) continue;
81
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
82
+ target[key] = source[key];
83
+ }
84
+ }
85
+
86
+ return target;
87
+ }
88
+
89
+ function coverageShouldBeReportedToCodecov({
90
+ vcs,
91
+ visibility,
92
+ apiAccessToken
93
+ }) {
94
+ return !!('Public' === visibility || apiAccessToken && 'github' === vcs.host);
95
+ }
96
+
64
97
  function scaffold$2() {
65
98
  return {
66
99
  devDependencies: ['codecov'],
@@ -70,6 +103,29 @@ function scaffold$2() {
70
103
  };
71
104
  }
72
105
 
106
+ const _excluded = ["scripts"],
107
+ _excluded2 = ["coverage:report"];
108
+ async function liftReporting ({
109
+ projectRoot
110
+ }) {
111
+ const pathToPackageJson = `${projectRoot}/package.json`;
112
+ const existingPackageContents = await fs.promises.readFile(pathToPackageJson, 'utf-8');
113
+
114
+ const _JSON$parse = JSON.parse(existingPackageContents),
115
+ {
116
+ scripts
117
+ } = _JSON$parse,
118
+ otherTopLevelProperties = _objectWithoutProperties(_JSON$parse, _excluded);
119
+
120
+ const otherScripts = _objectWithoutProperties(scripts, _excluded2);
121
+
122
+ if (scripts['coverage:report']) {
123
+ await fs.promises.writeFile(pathToPackageJson, JSON.stringify(_objectSpread2(_objectSpread2({}, otherTopLevelProperties), {}, {
124
+ scripts: otherScripts
125
+ })));
126
+ }
127
+ }
128
+
73
129
  async function fetchRepositoryDetails ({
74
130
  vcs,
75
131
  apiAccessToken
@@ -95,7 +151,7 @@ async function scaffold$1({
95
151
  badges: {
96
152
  status: {
97
153
  coverage: {
98
- img: `https://img.shields.io/codecov/c/${vcs.host}/${vcs.owner}/${vcs.name}.svg${apiAccessToken ? `?token=${(await fetchRepositoryDetails({
154
+ img: `https://img.shields.io/codecov/c/${vcs.host}/${vcs.owner}/${vcs.name}?logo=codecov${apiAccessToken ? `&token=${(await fetchRepositoryDetails({
99
155
  vcs,
100
156
  apiAccessToken
101
157
  })).image_token}` : ''}`,
@@ -112,13 +168,25 @@ async function scaffold({
112
168
  visibility,
113
169
  apiAccessToken
114
170
  }) {
115
- if ('Public' !== visibility && !apiAccessToken) return {};
116
- return _objectSpread2(_objectSpread2({}, scaffold$2()), await scaffold$1(_objectSpread2({
117
- vcs
118
- }, apiAccessToken && {
171
+ if (!coverageShouldBeReportedToCodecov({
172
+ vcs,
173
+ visibility,
119
174
  apiAccessToken
120
- })));
175
+ })) return {};
176
+ return _objectSpread2(_objectSpread2({}, scaffold$2()), await scaffold$1({
177
+ vcs,
178
+ apiAccessToken
179
+ }));
180
+ }
181
+
182
+ async function lift({
183
+ projectRoot
184
+ }) {
185
+ await liftReporting({
186
+ projectRoot
187
+ });
121
188
  }
122
189
 
190
+ exports.lift = lift;
123
191
  exports.scaffold = scaffold;
124
192
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../src/reporter.js","../src/repository-details-fetcher.js","../src/badge.js","../src/scaffolder.js"],"sourcesContent":["export function scaffold() {\n return {\n devDependencies: ['codecov'],\n scripts: {'coverage:report': 'c8 report --reporter=text-lcov > coverage.lcov && codecov'}\n };\n}\n","import got from '../thirdparty-wrappers/got';\n\nexport default async function ({vcs, apiAccessToken}) {\n const {body: {repo}} = await got(\n `https://codecov.io/api/gh/${vcs.owner}/${vcs.name}`,\n {headers: {Authorization: apiAccessToken}, responseType: 'json'}\n );\n\n return repo;\n}\n","import fetchRepositoryDetails from './repository-details-fetcher';\n\nexport async function scaffold({vcs, apiAccessToken}) {\n return {\n ...['github', 'gitlab', 'bitbucket'].includes(vcs?.host) && {\n badges: {\n status: {\n coverage: {\n img: `https://img.shields.io/codecov/c/${vcs.host}/${vcs.owner}/${vcs.name}.svg${\n apiAccessToken\n ? `?token=${(await fetchRepositoryDetails({vcs, apiAccessToken})).image_token}`\n : ''\n }`,\n link: `https://codecov.io/${vcs.host}/${vcs.owner}/${vcs.name}`,\n text: 'Codecov'\n }\n }\n }\n }\n };\n}\n","import {scaffold as scaffoldReporter} from './reporter';\nimport {scaffold as scaffoldBadge} from './badge';\n\nexport async function scaffold({vcs, visibility, apiAccessToken}) {\n if ('Public' !== visibility && !apiAccessToken) return {};\n\n return {\n ...scaffoldReporter(),\n ...await scaffoldBadge({vcs, ...apiAccessToken && {apiAccessToken}})\n };\n}\n"],"names":["scaffold","devDependencies","scripts","vcs","apiAccessToken","body","repo","got","owner","name","headers","Authorization","responseType","includes","host","badges","status","coverage","img","fetchRepositoryDetails","image_token","link","text","visibility","scaffoldReporter","scaffoldBadge"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,SAASA,UAAT,GAAoB;AACzB,SAAO;AACLC,IAAAA,eAAe,EAAE,CAAC,SAAD,CADZ;AAELC,IAAAA,OAAO,EAAE;AAAC,yBAAmB;AAApB;AAFJ,GAAP;AAID;;ACHc,uCAAgB;AAACC,EAAAA,GAAD;AAAMC,EAAAA;AAAN,CAAhB,EAAuC;AACpD,QAAM;AAACC,IAAAA,IAAI,EAAE;AAACC,MAAAA;AAAD;AAAP,MAAiB,MAAMC,uBAAG,CAC7B,6BAA4BJ,GAAG,CAACK,KAAM,IAAGL,GAAG,CAACM,IAAK,EADrB,EAE9B;AAACC,IAAAA,OAAO,EAAE;AAACC,MAAAA,aAAa,EAAEP;AAAhB,KAAV;AAA2CQ,IAAAA,YAAY,EAAE;AAAzD,GAF8B,CAAhC;AAKA,SAAON,IAAP;AACD;;ACPM,eAAeN,UAAf,CAAwB;AAACG,EAAAA,GAAD;AAAMC,EAAAA;AAAN,CAAxB,EAA+C;AACpD,4BACK,CAAC,QAAD,EAAW,QAAX,EAAqB,WAArB,EAAkCS,QAAlC,CAA2CV,GAA3C,aAA2CA,GAA3C,uBAA2CA,GAAG,CAAEW,IAAhD,KAAyD;AAC1DC,IAAAA,MAAM,EAAE;AACNC,MAAAA,MAAM,EAAE;AACNC,QAAAA,QAAQ,EAAE;AACRC,UAAAA,GAAG,EAAG,oCAAmCf,GAAG,CAACW,IAAK,IAAGX,GAAG,CAACK,KAAM,IAAGL,GAAG,CAACM,IAAK,OACzEL,cAAc,GACT,UAAS,CAAC,MAAMe,sBAAsB,CAAC;AAAChB,YAAAA,GAAD;AAAMC,YAAAA;AAAN,WAAD,CAA7B,EAAsDgB,WAAY,EADlE,GAEV,EACL,EALO;AAMRC,UAAAA,IAAI,EAAG,sBAAqBlB,GAAG,CAACW,IAAK,IAAGX,GAAG,CAACK,KAAM,IAAGL,GAAG,CAACM,IAAK,EANtD;AAORa,UAAAA,IAAI,EAAE;AAPE;AADJ;AADF;AADkD,GAD9D;AAiBD;;ACjBM,eAAetB,QAAf,CAAwB;AAACG,EAAAA,GAAD;AAAMoB,EAAAA,UAAN;AAAkBnB,EAAAA;AAAlB,CAAxB,EAA2D;AAChE,MAAI,aAAamB,UAAb,IAA2B,CAACnB,cAAhC,EAAgD,OAAO,EAAP;AAEhD,2CACKoB,UAAgB,EADrB,GAEK,MAAMC,UAAa;AAAEtB,IAAAA;AAAF,KAAUC,cAAc,IAAI;AAACA,IAAAA;AAAD,GAA5B,EAFxB;AAID;;;;"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/predicates.js","../src/reporter/scaffolder.js","../src/reporter/lifter.js","../src/badge/repository-details-fetcher.js","../src/badge/scaffolder.js","../src/scaffolder.js","../src/lifter.js"],"sourcesContent":["export function coverageShouldBeReportedToCodecov({vcs, visibility, apiAccessToken}) {\n return !!('Public' === visibility || (apiAccessToken && 'github' === vcs.host));\n}\n","export function scaffold() {\n return {\n devDependencies: ['codecov'],\n scripts: {'coverage:report': 'c8 report --reporter=text-lcov > coverage.lcov && codecov'}\n };\n}\n","import {promises as fs} from 'fs';\n\nexport default async function ({projectRoot}) {\n const pathToPackageJson = `${projectRoot}/package.json`;\n\n const existingPackageContents = await fs.readFile(pathToPackageJson, 'utf-8');\n const {scripts, ...otherTopLevelProperties} = JSON.parse(existingPackageContents);\n const {'coverage:report': reportCoverageScript, ...otherScripts} = scripts;\n\n if (scripts['coverage:report']) {\n await fs.writeFile(pathToPackageJson, JSON.stringify({...otherTopLevelProperties, scripts: otherScripts}));\n }\n}\n","import got from '../../thirdparty-wrappers/got';\n\nexport default async function ({vcs, apiAccessToken}) {\n const {body: {repo}} = await got(\n `https://codecov.io/api/gh/${vcs.owner}/${vcs.name}`,\n {headers: {Authorization: apiAccessToken}, responseType: 'json'}\n );\n\n return repo;\n}\n","import fetchRepositoryDetails from './repository-details-fetcher';\n\nexport async function scaffold({vcs, apiAccessToken}) {\n return {\n ...['github', 'gitlab', 'bitbucket'].includes(vcs?.host) && {\n badges: {\n status: {\n coverage: {\n img: `https://img.shields.io/codecov/c/${vcs.host}/${vcs.owner}/${vcs.name}?logo=codecov${\n apiAccessToken\n ? `&token=${(await fetchRepositoryDetails({vcs, apiAccessToken})).image_token}`\n : ''\n }`,\n link: `https://codecov.io/${vcs.host}/${vcs.owner}/${vcs.name}`,\n text: 'Codecov'\n }\n }\n }\n }\n };\n}\n","import {coverageShouldBeReportedToCodecov} from './predicates';\nimport {scaffold as scaffoldReporter} from './reporter';\nimport {scaffold as scaffoldBadge} from './badge';\n\nexport async function scaffold({vcs, visibility, apiAccessToken}) {\n if (!coverageShouldBeReportedToCodecov({vcs, visibility, apiAccessToken})) return {};\n\n return {\n ...scaffoldReporter(),\n ...await scaffoldBadge({vcs, apiAccessToken})\n };\n}\n","import {lift as liftReporting} from './reporter';\n\nexport async function lift({projectRoot}) {\n await liftReporting({projectRoot});\n}\n"],"names":["coverageShouldBeReportedToCodecov","vcs","visibility","apiAccessToken","host","scaffold","devDependencies","scripts","projectRoot","pathToPackageJson","existingPackageContents","fs","readFile","JSON","parse","otherTopLevelProperties","otherScripts","writeFile","stringify","body","repo","got","owner","name","headers","Authorization","responseType","includes","badges","status","coverage","img","fetchRepositoryDetails","image_token","link","text","scaffoldReporter","scaffoldBadge","lift","liftReporting"],"mappings":"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"}
package/lib/index.es.js CHANGED
@@ -1,18 +1,14 @@
1
1
  import got from 'got';
2
+ import { promises } from 'fs';
2
3
 
3
4
  function ownKeys(object, enumerableOnly) {
4
5
  var keys = Object.keys(object);
5
6
 
6
7
  if (Object.getOwnPropertySymbols) {
7
8
  var symbols = Object.getOwnPropertySymbols(object);
8
-
9
- if (enumerableOnly) {
10
- symbols = symbols.filter(function (sym) {
11
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
12
- });
13
- }
14
-
15
- keys.push.apply(keys, symbols);
9
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
10
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
11
+ })), keys.push.apply(keys, symbols);
16
12
  }
17
13
 
18
14
  return keys;
@@ -20,19 +16,12 @@ function ownKeys(object, enumerableOnly) {
20
16
 
21
17
  function _objectSpread2(target) {
22
18
  for (var i = 1; i < arguments.length; i++) {
23
- var source = arguments[i] != null ? arguments[i] : {};
24
-
25
- if (i % 2) {
26
- ownKeys(Object(source), true).forEach(function (key) {
27
- _defineProperty(target, key, source[key]);
28
- });
29
- } else if (Object.getOwnPropertyDescriptors) {
30
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
31
- } else {
32
- ownKeys(Object(source)).forEach(function (key) {
33
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
34
- });
35
- }
19
+ var source = null != arguments[i] ? arguments[i] : {};
20
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
21
+ _defineProperty(target, key, source[key]);
22
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
23
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
24
+ });
36
25
  }
37
26
 
38
27
  return target;
@@ -53,6 +42,50 @@ function _defineProperty(obj, key, value) {
53
42
  return obj;
54
43
  }
55
44
 
45
+ function _objectWithoutPropertiesLoose(source, excluded) {
46
+ if (source == null) return {};
47
+ var target = {};
48
+ var sourceKeys = Object.keys(source);
49
+ var key, i;
50
+
51
+ for (i = 0; i < sourceKeys.length; i++) {
52
+ key = sourceKeys[i];
53
+ if (excluded.indexOf(key) >= 0) continue;
54
+ target[key] = source[key];
55
+ }
56
+
57
+ return target;
58
+ }
59
+
60
+ function _objectWithoutProperties(source, excluded) {
61
+ if (source == null) return {};
62
+
63
+ var target = _objectWithoutPropertiesLoose(source, excluded);
64
+
65
+ var key, i;
66
+
67
+ if (Object.getOwnPropertySymbols) {
68
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
69
+
70
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
71
+ key = sourceSymbolKeys[i];
72
+ if (excluded.indexOf(key) >= 0) continue;
73
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
74
+ target[key] = source[key];
75
+ }
76
+ }
77
+
78
+ return target;
79
+ }
80
+
81
+ function coverageShouldBeReportedToCodecov({
82
+ vcs,
83
+ visibility,
84
+ apiAccessToken
85
+ }) {
86
+ return !!('Public' === visibility || apiAccessToken && 'github' === vcs.host);
87
+ }
88
+
56
89
  function scaffold$2() {
57
90
  return {
58
91
  devDependencies: ['codecov'],
@@ -62,6 +95,29 @@ function scaffold$2() {
62
95
  };
63
96
  }
64
97
 
98
+ const _excluded = ["scripts"],
99
+ _excluded2 = ["coverage:report"];
100
+ async function liftReporting ({
101
+ projectRoot
102
+ }) {
103
+ const pathToPackageJson = `${projectRoot}/package.json`;
104
+ const existingPackageContents = await promises.readFile(pathToPackageJson, 'utf-8');
105
+
106
+ const _JSON$parse = JSON.parse(existingPackageContents),
107
+ {
108
+ scripts
109
+ } = _JSON$parse,
110
+ otherTopLevelProperties = _objectWithoutProperties(_JSON$parse, _excluded);
111
+
112
+ const otherScripts = _objectWithoutProperties(scripts, _excluded2);
113
+
114
+ if (scripts['coverage:report']) {
115
+ await promises.writeFile(pathToPackageJson, JSON.stringify(_objectSpread2(_objectSpread2({}, otherTopLevelProperties), {}, {
116
+ scripts: otherScripts
117
+ })));
118
+ }
119
+ }
120
+
65
121
  async function fetchRepositoryDetails ({
66
122
  vcs,
67
123
  apiAccessToken
@@ -87,7 +143,7 @@ async function scaffold$1({
87
143
  badges: {
88
144
  status: {
89
145
  coverage: {
90
- img: `https://img.shields.io/codecov/c/${vcs.host}/${vcs.owner}/${vcs.name}.svg${apiAccessToken ? `?token=${(await fetchRepositoryDetails({
146
+ img: `https://img.shields.io/codecov/c/${vcs.host}/${vcs.owner}/${vcs.name}?logo=codecov${apiAccessToken ? `&token=${(await fetchRepositoryDetails({
91
147
  vcs,
92
148
  apiAccessToken
93
149
  })).image_token}` : ''}`,
@@ -104,13 +160,24 @@ async function scaffold({
104
160
  visibility,
105
161
  apiAccessToken
106
162
  }) {
107
- if ('Public' !== visibility && !apiAccessToken) return {};
108
- return _objectSpread2(_objectSpread2({}, scaffold$2()), await scaffold$1(_objectSpread2({
109
- vcs
110
- }, apiAccessToken && {
163
+ if (!coverageShouldBeReportedToCodecov({
164
+ vcs,
165
+ visibility,
111
166
  apiAccessToken
112
- })));
167
+ })) return {};
168
+ return _objectSpread2(_objectSpread2({}, scaffold$2()), await scaffold$1({
169
+ vcs,
170
+ apiAccessToken
171
+ }));
172
+ }
173
+
174
+ async function lift({
175
+ projectRoot
176
+ }) {
177
+ await liftReporting({
178
+ projectRoot
179
+ });
113
180
  }
114
181
 
115
- export { scaffold };
182
+ export { lift, scaffold };
116
183
  //# sourceMappingURL=index.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/reporter.js","../src/repository-details-fetcher.js","../src/badge.js","../src/scaffolder.js"],"sourcesContent":["export function scaffold() {\n return {\n devDependencies: ['codecov'],\n scripts: {'coverage:report': 'c8 report --reporter=text-lcov > coverage.lcov && codecov'}\n };\n}\n","import got from '../thirdparty-wrappers/got';\n\nexport default async function ({vcs, apiAccessToken}) {\n const {body: {repo}} = await got(\n `https://codecov.io/api/gh/${vcs.owner}/${vcs.name}`,\n {headers: {Authorization: apiAccessToken}, responseType: 'json'}\n );\n\n return repo;\n}\n","import fetchRepositoryDetails from './repository-details-fetcher';\n\nexport async function scaffold({vcs, apiAccessToken}) {\n return {\n ...['github', 'gitlab', 'bitbucket'].includes(vcs?.host) && {\n badges: {\n status: {\n coverage: {\n img: `https://img.shields.io/codecov/c/${vcs.host}/${vcs.owner}/${vcs.name}.svg${\n apiAccessToken\n ? `?token=${(await fetchRepositoryDetails({vcs, apiAccessToken})).image_token}`\n : ''\n }`,\n link: `https://codecov.io/${vcs.host}/${vcs.owner}/${vcs.name}`,\n text: 'Codecov'\n }\n }\n }\n }\n };\n}\n","import {scaffold as scaffoldReporter} from './reporter';\nimport {scaffold as scaffoldBadge} from './badge';\n\nexport async function scaffold({vcs, visibility, apiAccessToken}) {\n if ('Public' !== visibility && !apiAccessToken) return {};\n\n return {\n ...scaffoldReporter(),\n ...await scaffoldBadge({vcs, ...apiAccessToken && {apiAccessToken}})\n };\n}\n"],"names":["scaffold","devDependencies","scripts","vcs","apiAccessToken","body","repo","got","owner","name","headers","Authorization","responseType","includes","host","badges","status","coverage","img","fetchRepositoryDetails","image_token","link","text","visibility","scaffoldReporter","scaffoldBadge"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,SAASA,UAAT,GAAoB;AACzB,SAAO;AACLC,IAAAA,eAAe,EAAE,CAAC,SAAD,CADZ;AAELC,IAAAA,OAAO,EAAE;AAAC,yBAAmB;AAApB;AAFJ,GAAP;AAID;;ACHc,uCAAgB;AAACC,EAAAA,GAAD;AAAMC,EAAAA;AAAN,CAAhB,EAAuC;AACpD,QAAM;AAACC,IAAAA,IAAI,EAAE;AAACC,MAAAA;AAAD;AAAP,MAAiB,MAAMC,GAAG,CAC7B,6BAA4BJ,GAAG,CAACK,KAAM,IAAGL,GAAG,CAACM,IAAK,EADrB,EAE9B;AAACC,IAAAA,OAAO,EAAE;AAACC,MAAAA,aAAa,EAAEP;AAAhB,KAAV;AAA2CQ,IAAAA,YAAY,EAAE;AAAzD,GAF8B,CAAhC;AAKA,SAAON,IAAP;AACD;;ACPM,eAAeN,UAAf,CAAwB;AAACG,EAAAA,GAAD;AAAMC,EAAAA;AAAN,CAAxB,EAA+C;AACpD,4BACK,CAAC,QAAD,EAAW,QAAX,EAAqB,WAArB,EAAkCS,QAAlC,CAA2CV,GAA3C,aAA2CA,GAA3C,uBAA2CA,GAAG,CAAEW,IAAhD,KAAyD;AAC1DC,IAAAA,MAAM,EAAE;AACNC,MAAAA,MAAM,EAAE;AACNC,QAAAA,QAAQ,EAAE;AACRC,UAAAA,GAAG,EAAG,oCAAmCf,GAAG,CAACW,IAAK,IAAGX,GAAG,CAACK,KAAM,IAAGL,GAAG,CAACM,IAAK,OACzEL,cAAc,GACT,UAAS,CAAC,MAAMe,sBAAsB,CAAC;AAAChB,YAAAA,GAAD;AAAMC,YAAAA;AAAN,WAAD,CAA7B,EAAsDgB,WAAY,EADlE,GAEV,EACL,EALO;AAMRC,UAAAA,IAAI,EAAG,sBAAqBlB,GAAG,CAACW,IAAK,IAAGX,GAAG,CAACK,KAAM,IAAGL,GAAG,CAACM,IAAK,EANtD;AAORa,UAAAA,IAAI,EAAE;AAPE;AADJ;AADF;AADkD,GAD9D;AAiBD;;ACjBM,eAAetB,QAAf,CAAwB;AAACG,EAAAA,GAAD;AAAMoB,EAAAA,UAAN;AAAkBnB,EAAAA;AAAlB,CAAxB,EAA2D;AAChE,MAAI,aAAamB,UAAb,IAA2B,CAACnB,cAAhC,EAAgD,OAAO,EAAP;AAEhD,2CACKoB,UAAgB,EADrB,GAEK,MAAMC,UAAa;AAAEtB,IAAAA;AAAF,KAAUC,cAAc,IAAI;AAACA,IAAAA;AAAD,GAA5B,EAFxB;AAID;;;;"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/predicates.js","../src/reporter/scaffolder.js","../src/reporter/lifter.js","../src/badge/repository-details-fetcher.js","../src/badge/scaffolder.js","../src/scaffolder.js","../src/lifter.js"],"sourcesContent":["export function coverageShouldBeReportedToCodecov({vcs, visibility, apiAccessToken}) {\n return !!('Public' === visibility || (apiAccessToken && 'github' === vcs.host));\n}\n","export function scaffold() {\n return {\n devDependencies: ['codecov'],\n scripts: {'coverage:report': 'c8 report --reporter=text-lcov > coverage.lcov && codecov'}\n };\n}\n","import {promises as fs} from 'fs';\n\nexport default async function ({projectRoot}) {\n const pathToPackageJson = `${projectRoot}/package.json`;\n\n const existingPackageContents = await fs.readFile(pathToPackageJson, 'utf-8');\n const {scripts, ...otherTopLevelProperties} = JSON.parse(existingPackageContents);\n const {'coverage:report': reportCoverageScript, ...otherScripts} = scripts;\n\n if (scripts['coverage:report']) {\n await fs.writeFile(pathToPackageJson, JSON.stringify({...otherTopLevelProperties, scripts: otherScripts}));\n }\n}\n","import got from '../../thirdparty-wrappers/got';\n\nexport default async function ({vcs, apiAccessToken}) {\n const {body: {repo}} = await got(\n `https://codecov.io/api/gh/${vcs.owner}/${vcs.name}`,\n {headers: {Authorization: apiAccessToken}, responseType: 'json'}\n );\n\n return repo;\n}\n","import fetchRepositoryDetails from './repository-details-fetcher';\n\nexport async function scaffold({vcs, apiAccessToken}) {\n return {\n ...['github', 'gitlab', 'bitbucket'].includes(vcs?.host) && {\n badges: {\n status: {\n coverage: {\n img: `https://img.shields.io/codecov/c/${vcs.host}/${vcs.owner}/${vcs.name}?logo=codecov${\n apiAccessToken\n ? `&token=${(await fetchRepositoryDetails({vcs, apiAccessToken})).image_token}`\n : ''\n }`,\n link: `https://codecov.io/${vcs.host}/${vcs.owner}/${vcs.name}`,\n text: 'Codecov'\n }\n }\n }\n }\n };\n}\n","import {coverageShouldBeReportedToCodecov} from './predicates';\nimport {scaffold as scaffoldReporter} from './reporter';\nimport {scaffold as scaffoldBadge} from './badge';\n\nexport async function scaffold({vcs, visibility, apiAccessToken}) {\n if (!coverageShouldBeReportedToCodecov({vcs, visibility, apiAccessToken})) return {};\n\n return {\n ...scaffoldReporter(),\n ...await scaffoldBadge({vcs, apiAccessToken})\n };\n}\n","import {lift as liftReporting} from './reporter';\n\nexport async function lift({projectRoot}) {\n await liftReporting({projectRoot});\n}\n"],"names":["coverageShouldBeReportedToCodecov","vcs","visibility","apiAccessToken","host","scaffold","devDependencies","scripts","projectRoot","pathToPackageJson","existingPackageContents","fs","readFile","JSON","parse","otherTopLevelProperties","otherScripts","writeFile","stringify","body","repo","got","owner","name","headers","Authorization","responseType","includes","badges","status","coverage","img","fetchRepositoryDetails","image_token","link","text","scaffoldReporter","scaffoldBadge","lift","liftReporting"],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@form8ion/codecov",
3
3
  "description": "code coverage service plugin for form8ion",
4
4
  "license": "MIT",
5
- "version": "1.1.0-alpha.1",
5
+ "version": "1.3.0",
6
6
  "files": [
7
7
  "example.js",
8
8
  "lib/"
@@ -48,17 +48,17 @@
48
48
  "test:integration:focus": "run-s 'test:integration:base -- --profile focus'"
49
49
  },
50
50
  "devDependencies": {
51
- "@babel/register": "7.16.0",
51
+ "@babel/register": "7.16.5",
52
52
  "@cucumber/cucumber": "8.0.0-rc.1",
53
- "@form8ion/babel-preset": "1.6.71",
54
- "@form8ion/commitlint-config": "1.0.22",
55
- "@form8ion/eslint-config": "1.8.7",
53
+ "@form8ion/babel-preset": "1.6.73",
54
+ "@form8ion/commitlint-config": "1.0.23",
55
+ "@form8ion/eslint-config": "2.0.2",
56
56
  "@form8ion/eslint-config-cucumber": "1.4.0",
57
- "@form8ion/eslint-config-mocha": "1.2.12",
58
- "@form8ion/remark-lint-preset": "2.1.6",
57
+ "@form8ion/eslint-config-mocha": "1.2.17",
58
+ "@form8ion/remark-lint-preset": "2.1.7",
59
59
  "@rollup/plugin-babel": "5.3.0",
60
- "@travi/any": "2.0.18",
61
- "babel-plugin-istanbul": "6.1.1",
60
+ "@rollup/plugin-node-resolve": "13.1.1",
61
+ "@travi/any": "2.0.19",
62
62
  "ban-sensitive-files": "1.9.16",
63
63
  "c8": "7.10.0",
64
64
  "chai": "4.3.4",
@@ -71,14 +71,14 @@
71
71
  "lockfile-lint": "4.6.2",
72
72
  "mocha": "9.1.3",
73
73
  "mock-fs": "5.1.2",
74
- "nock": "13.2.0",
74
+ "nock": "13.2.1",
75
75
  "npm-run-all": "4.1.5",
76
76
  "package-preview": "4.0.0",
77
- "remark-cli": "10.0.0",
77
+ "remark-cli": "10.0.1",
78
78
  "remark-toc": "8.0.1",
79
79
  "remark-usage": "10.0.1",
80
80
  "rimraf": "3.0.2",
81
- "rollup": "2.59.0",
81
+ "rollup": "2.61.1",
82
82
  "rollup-plugin-auto-external": "2.0.0",
83
83
  "sinon": "12.0.1"
84
84
  },