@form8ion/codecov 4.0.1 → 5.0.0-beta.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.
package/README.md CHANGED
@@ -6,13 +6,13 @@ code coverage service plugin for form8ion
6
6
 
7
7
  [![Node CI Workflow Status][github-actions-ci-badge]][github-actions-ci-link]
8
8
  [![Codecov][coverage-badge]][coverage-link]
9
+ ![SLSA Level 2][slsa-badge]
9
10
 
10
11
  <!--status-badges end -->
11
12
 
12
13
  ## Table of Contents
13
14
 
14
15
  * [Features](#features)
15
- * [Scaffold](#scaffold)
16
16
  * [Lift](#lift)
17
17
  * [Usage](#usage)
18
18
  * [Installation](#installation)
@@ -20,29 +20,22 @@ code coverage service plugin for form8ion
20
20
  * [Import](#import)
21
21
  * [Execute](#execute)
22
22
  * [API](#api)
23
- * [scaffold](#scaffold-1)
24
- * [`vcs` __object__ (_required_)](#vcs-object-required)
25
- * [`visibility` __string__ (_required_)](#visibility-string-required)
26
- * [`apiAccessToken` __string__ (_optional_)](#apiaccesstoken-string-optional)
23
+ * [scaffold](#scaffold)
27
24
  * [lift](#lift-1)
28
25
  * [`projectRoot` __string__ (_required_)](#projectroot-string-required)
29
26
  * [`packageManager` __string__ (_required_)](#packagemanager-string-required)
27
+ * [`vcs` __object__ (_required_)](#vcs-object-required)
30
28
  * [Contributing](#contributing)
31
29
  * [Dependencies](#dependencies)
32
30
  * [Verification](#verification)
33
31
 
34
32
  ## Features
35
33
 
36
- ### Scaffold
34
+ ### Lift
37
35
 
38
36
  * Define a coverage status badge to communicate current coverage details
39
37
  * Link from the status badge to further details on the [Codecov](https://codecov.io/)
40
38
  site
41
- * Define a coverage status badge for private projects when an [`apiAccessToken` __string__ (_optional_)](#apiaccesstoken-string-optional)
42
- is provided
43
-
44
- ### Lift
45
-
46
39
  * Migrate from the [legacy node uploader](https://github.com/codecov/codecov-node)
47
40
  to the [modern uploader](https://docs.codecov.com/docs/codecov-uploader)
48
41
  * Currently supports the following CI Providers:
@@ -78,26 +71,17 @@ import {scaffold, lift} from '@form8ion/codecov';
78
71
 
79
72
  ```javascript
80
73
  (async () => {
81
- await scaffold({
82
- visibility: 'Public',
83
- vcs: {
84
- host: 'github',
85
- owner: 'foo',
86
- name: 'bar'
87
- }
88
- });
74
+ await scaffold();
89
75
 
90
- await scaffold({
91
- visibility: 'Private',
76
+ await lift({
77
+ projectRoot: process.cwd(),
78
+ packageManager: packageManagers.NPM,
92
79
  vcs: {
93
80
  host: 'github',
94
81
  owner: 'foo',
95
82
  name: 'bar'
96
- },
97
- apiAccessToken: 'XXXXXX'
83
+ }
98
84
  });
99
-
100
- await lift({projectRoot: process.cwd(), packageManager: packageManagers.NPM});
101
85
  })();
102
86
  ```
103
87
 
@@ -105,35 +89,8 @@ import {scaffold, lift} from '@form8ion/codecov';
105
89
 
106
90
  #### scaffold
107
91
 
108
- Scaffolder for configuring reporting of coverage data to [Codecov](https://codecov.io/)
109
- and providing visibility to the current coverage status through a README badge
110
-
111
- Takes a single options object as an argument, containing:
112
-
113
- ##### `vcs` __object__ (_required_)
114
-
115
- * `host` __string__ (_required_)
116
- VCS hosting service
117
- * `owner` __string__ (_required_)
118
- account name on the host service for the repository
119
- * `name` __string__ (_required_)
120
- repository name
121
-
122
- ##### `visibility` __string__ (_required_)
123
-
124
- Visibility of the project (`Public` or `Private`).
125
- Unless [`apiAccessToken`](#apiaccesstoken-string-optional) is provided, Codecov
126
- details will only be scaffolded for public projects.
127
-
128
- ##### `apiAccessToken` __string__ (_optional_)
129
-
130
- Personal Access Token for accessing the [Codecov API](https://docs.codecov.com/reference).
131
- Providing an access token enables [fetching the `image_token` for the repository](https://docs.codecov.com/reference/repositories#get-a-single-repository)
132
- so that the coverage badge can display the proper coverage state of the
133
- project when the project is not public.
134
- Since the [Codecov API](https://docs.codecov.com/reference) appears to only
135
- support GitHub at the time of this implementation, GitHub is the only VCS host
136
- supported by this scaffolder at this time.
92
+ The scaffolder of this plugin is currently a no-op since the work is all done
93
+ as part of the lifting process
137
94
 
138
95
  #### lift
139
96
 
@@ -151,6 +108,15 @@ path to the root of the project
151
108
  chosen [package manager](https://github.com/form8ion/javascript-core#packagemanagers)
152
109
  to be used for the project
153
110
 
111
+ ##### `vcs` __object__ (_required_)
112
+
113
+ * `host` __string__ (_required_)
114
+ VCS hosting service
115
+ * `owner` __string__ (_required_)
116
+ account name on the host service for the repository
117
+ * `name` __string__ (_required_)
118
+ repository name
119
+
154
120
  ## Contributing
155
121
 
156
122
  <!--contribution-badges start -->
@@ -190,7 +156,7 @@ $ npm test
190
156
 
191
157
  [semantic-release-link]: https://github.com/semantic-release/semantic-release
192
158
 
193
- [semantic-release-badge]: https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
159
+ [semantic-release-badge]: https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release
194
160
 
195
161
  [renovate-link]: https://renovatebot.com
196
162
 
@@ -217,3 +183,5 @@ $ npm test
217
183
  [runkit-badge]: https://badge.runkitcdn.com/@form8ion/codecov.svg
218
184
 
219
185
  [node-badge]: https://img.shields.io/node/v/@form8ion/codecov?logo=node.js
186
+
187
+ [slsa-badge]: https://slsa.dev/images/gh-badge-level2.svg
package/example.js CHANGED
@@ -16,24 +16,15 @@ nock('https://codecov.io/')
16
16
  // #### Execute
17
17
 
18
18
  (async () => {
19
- await scaffold({
20
- visibility: 'Public',
21
- vcs: {
22
- host: 'github',
23
- owner: 'foo',
24
- name: 'bar'
25
- }
26
- });
19
+ await scaffold();
27
20
 
28
- await scaffold({
29
- visibility: 'Private',
21
+ await lift({
22
+ projectRoot: process.cwd(),
23
+ packageManager: packageManagers.NPM,
30
24
  vcs: {
31
25
  host: 'github',
32
26
  owner: 'foo',
33
27
  name: 'bar'
34
- },
35
- apiAccessToken: 'XXXXXX'
28
+ }
36
29
  });
37
-
38
- await lift({projectRoot: process.cwd(), packageManager: packageManagers.NPM});
39
30
  })();
package/lib/index.cjs.js CHANGED
@@ -1,31 +1,26 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var got = require('got');
3
+ var deepmerge = require('deepmerge');
6
4
  var fs = require('fs');
7
5
  var execa = require('execa');
8
6
  var jsYaml = require('js-yaml');
9
7
  var core = require('@form8ion/core');
8
+ var got = require('got');
10
9
 
11
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
-
13
- var got__default = /*#__PURE__*/_interopDefaultLegacy(got);
14
- var execa__default = /*#__PURE__*/_interopDefaultLegacy(execa);
10
+ async function scaffold$1() {
11
+ return {};
12
+ }
15
13
 
16
14
  function ownKeys(object, enumerableOnly) {
17
15
  var keys = Object.keys(object);
18
-
19
16
  if (Object.getOwnPropertySymbols) {
20
17
  var symbols = Object.getOwnPropertySymbols(object);
21
18
  enumerableOnly && (symbols = symbols.filter(function (sym) {
22
19
  return Object.getOwnPropertyDescriptor(object, sym).enumerable;
23
20
  })), keys.push.apply(keys, symbols);
24
21
  }
25
-
26
22
  return keys;
27
23
  }
28
-
29
24
  function _objectSpread2(target) {
30
25
  for (var i = 1; i < arguments.length; i++) {
31
26
  var source = null != arguments[i] ? arguments[i] : {};
@@ -35,11 +30,10 @@ function _objectSpread2(target) {
35
30
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
36
31
  });
37
32
  }
38
-
39
33
  return target;
40
34
  }
41
-
42
35
  function _defineProperty(obj, key, value) {
36
+ key = _toPropertyKey(key);
43
37
  if (key in obj) {
44
38
  Object.defineProperty(obj, key, {
45
39
  value: value,
@@ -50,35 +44,26 @@ function _defineProperty(obj, key, value) {
50
44
  } else {
51
45
  obj[key] = value;
52
46
  }
53
-
54
47
  return obj;
55
48
  }
56
-
57
49
  function _objectWithoutPropertiesLoose(source, excluded) {
58
50
  if (source == null) return {};
59
51
  var target = {};
60
52
  var sourceKeys = Object.keys(source);
61
53
  var key, i;
62
-
63
54
  for (i = 0; i < sourceKeys.length; i++) {
64
55
  key = sourceKeys[i];
65
56
  if (excluded.indexOf(key) >= 0) continue;
66
57
  target[key] = source[key];
67
58
  }
68
-
69
59
  return target;
70
60
  }
71
-
72
61
  function _objectWithoutProperties(source, excluded) {
73
62
  if (source == null) return {};
74
-
75
63
  var target = _objectWithoutPropertiesLoose(source, excluded);
76
-
77
64
  var key, i;
78
-
79
65
  if (Object.getOwnPropertySymbols) {
80
66
  var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
81
-
82
67
  for (i = 0; i < sourceSymbolKeys.length; i++) {
83
68
  key = sourceSymbolKeys[i];
84
69
  if (excluded.indexOf(key) >= 0) continue;
@@ -86,16 +71,21 @@ function _objectWithoutProperties(source, excluded) {
86
71
  target[key] = source[key];
87
72
  }
88
73
  }
89
-
90
74
  return target;
91
75
  }
92
-
93
- function coverageShouldBeReportedToCodecov({
94
- vcs,
95
- visibility,
96
- apiAccessToken
97
- }) {
98
- return !!('Public' === visibility || apiAccessToken && 'github' === vcs.host);
76
+ function _toPrimitive(input, hint) {
77
+ if (typeof input !== "object" || input === null) return input;
78
+ var prim = input[Symbol.toPrimitive];
79
+ if (prim !== undefined) {
80
+ var res = prim.call(input, hint || "default");
81
+ if (typeof res !== "object") return res;
82
+ throw new TypeError("@@toPrimitive must return a primitive value.");
83
+ }
84
+ return (hint === "string" ? String : Number)(input);
85
+ }
86
+ function _toPropertyKey(arg) {
87
+ var key = _toPrimitive(arg, "string");
88
+ return typeof key === "symbol" ? key : String(key);
99
89
  }
100
90
 
101
91
  async function fetchRepositoryDetails ({
@@ -106,7 +96,7 @@ async function fetchRepositoryDetails ({
106
96
  body: {
107
97
  repo
108
98
  }
109
- } = await got__default["default"](`https://codecov.io/api/gh/${vcs.owner}/${vcs.name}`, {
99
+ } = await got(`https://codecov.io/api/gh/${vcs.owner}/${vcs.name}`, {
110
100
  headers: {
111
101
  Authorization: apiAccessToken
112
102
  },
@@ -115,7 +105,7 @@ async function fetchRepositoryDetails ({
115
105
  return repo;
116
106
  }
117
107
 
118
- async function scaffold$1({
108
+ async function scaffold({
119
109
  vcs,
120
110
  apiAccessToken
121
111
  }) {
@@ -135,26 +125,9 @@ async function scaffold$1({
135
125
  });
136
126
  }
137
127
 
138
- async function scaffold({
139
- vcs,
140
- visibility,
141
- apiAccessToken
142
- }) {
143
- if (!coverageShouldBeReportedToCodecov({
144
- vcs,
145
- visibility,
146
- apiAccessToken
147
- })) return {};
148
- return _objectSpread2({}, await scaffold$1({
149
- vcs,
150
- apiAccessToken
151
- }));
152
- }
153
-
154
128
  function getPathToWorkflowFile(projectRoot) {
155
129
  return `${projectRoot}/.github/workflows/node-ci.yml`;
156
130
  }
157
-
158
131
  function test({
159
132
  projectRoot
160
133
  }) {
@@ -172,10 +145,8 @@ async function lift$1({
172
145
  }
173
146
  }
174
147
  } = workflowDetails;
175
-
176
148
  if (!steps.find(step => {
177
149
  var _step$uses;
178
-
179
150
  return (_step$uses = step.uses) === null || _step$uses === void 0 ? void 0 : _step$uses.startsWith('codecov/codecov-action');
180
151
  })) {
181
152
  const stepsWithLegacyReportingRemoved = steps.filter(({
@@ -206,17 +177,14 @@ async function liftReporting ({
206
177
  const {
207
178
  scripts
208
179
  } = parsedPackageContents;
209
-
210
180
  const otherScripts = _objectWithoutProperties(scripts, _excluded);
211
-
212
181
  if (ciProviderCanBeLifted) await lift$1({
213
182
  projectRoot
214
183
  });
215
-
216
184
  if (scripts['coverage:report']) {
217
185
  parsedPackageContents.scripts = otherScripts;
218
186
  await fs.promises.writeFile(pathToPackageJson, JSON.stringify(parsedPackageContents));
219
- await execa__default["default"](packageManager, ['remove', 'codecov']);
187
+ await execa(packageManager, ['remove', 'codecov']);
220
188
  return _objectSpread2({}, !ciProviderCanBeLifted && {
221
189
  nextSteps: [{
222
190
  summary: 'Configure modern reporting to Codecov on your CI service',
@@ -224,20 +192,23 @@ async function liftReporting ({
224
192
  }]
225
193
  });
226
194
  }
227
-
228
195
  return {};
229
196
  }
230
197
 
231
- function lift({
198
+ async function lift({
232
199
  projectRoot,
233
- packageManager
200
+ packageManager,
201
+ vcs
234
202
  }) {
235
- return liftReporting({
203
+ const [reportingResults, badgeResults] = await Promise.all([liftReporting({
236
204
  projectRoot,
237
205
  packageManager
238
- });
206
+ }), scaffold({
207
+ vcs
208
+ })]);
209
+ return deepmerge.all([reportingResults, badgeResults]);
239
210
  }
240
211
 
241
212
  exports.lift = lift;
242
- exports.scaffold = scaffold;
213
+ exports.scaffold = scaffold$1;
243
214
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../src/predicates.js","../src/badge/repository-details-fetcher.js","../src/badge/scaffolder.js","../src/scaffolder.js","../src/reporter/ci-providers/github-workflows/lifter.js","../src/reporter/lifter.js","../src/lifter.js"],"sourcesContent":["export function coverageShouldBeReportedToCodecov({vcs, visibility, apiAccessToken}) {\n return !!('Public' === visibility || (apiAccessToken && 'github' === vcs.host));\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 scaffoldBadge} from './badge';\n\nexport async function scaffold({vcs, visibility, apiAccessToken}) {\n if (!coverageShouldBeReportedToCodecov({vcs, visibility, apiAccessToken})) return {};\n\n return {\n ...await scaffoldBadge({vcs, apiAccessToken})\n };\n}\n","import {promises as fs} from 'fs';\nimport {dump, load} from 'js-yaml';\nimport {fileExists} from '@form8ion/core';\n\nfunction getPathToWorkflowFile(projectRoot) {\n return `${projectRoot}/.github/workflows/node-ci.yml`;\n}\n\nexport function test({projectRoot}) {\n return fileExists(getPathToWorkflowFile(projectRoot));\n}\n\nexport async function lift({projectRoot}) {\n const pathToWorkflowFile = getPathToWorkflowFile(projectRoot);\n\n const workflowDetails = load(await fs.readFile(pathToWorkflowFile, 'utf-8'));\n const {jobs: {verify: {steps}}} = workflowDetails;\n\n if (!steps.find(step => step.uses?.startsWith('codecov/codecov-action'))) {\n const stepsWithLegacyReportingRemoved = steps.filter(({run}) => 'npm run coverage:report' !== run);\n\n await fs.writeFile(\n pathToWorkflowFile,\n dump({\n ...workflowDetails,\n jobs: {\n ...workflowDetails.jobs,\n verify: {\n ...workflowDetails.jobs.verify,\n steps: [...stepsWithLegacyReportingRemoved, {uses: 'codecov/codecov-action@v3'}]\n }\n }\n })\n );\n }\n}\n","import {promises as fs} from 'fs';\n\nimport execa from '../../thirdparty-wrappers/execa';\nimport {lift as liftCiProvider, test as ciProviderIsLiftable} from './ci-providers';\n\nexport default async function ({projectRoot, packageManager}) {\n const pathToPackageJson = `${projectRoot}/package.json`;\n\n const [ciProviderCanBeLifted, existingPackageContents] = await Promise.all([\n ciProviderIsLiftable({projectRoot}),\n fs.readFile(pathToPackageJson, 'utf-8')\n ]);\n const parsedPackageContents = JSON.parse(existingPackageContents);\n const {scripts} = parsedPackageContents;\n const {'coverage:report': reportCoverageScript, ...otherScripts} = scripts;\n\n if (ciProviderCanBeLifted) await liftCiProvider({projectRoot});\n\n if (scripts['coverage:report']) {\n parsedPackageContents.scripts = otherScripts;\n await fs.writeFile(pathToPackageJson, JSON.stringify(parsedPackageContents));\n\n await execa(packageManager, ['remove', 'codecov']);\n\n return {\n ...!ciProviderCanBeLifted && {\n nextSteps: [{\n summary: 'Configure modern reporting to Codecov on your CI service',\n description: 'Configure the [Codecov Uploader](https://docs.codecov.com/docs/codecov-uploader) appropriately'\n + ' for your CI Provider. If available for your provider, prefer one of the dedicated wrappers.'\n }]\n }\n };\n }\n\n return {};\n}\n","import {lift as liftReporting} from './reporter';\n\nexport function lift({projectRoot, packageManager}) {\n return liftReporting({projectRoot, packageManager});\n}\n"],"names":["coverageShouldBeReportedToCodecov","vcs","visibility","apiAccessToken","host","body","repo","got","owner","name","headers","Authorization","responseType","scaffold","_objectSpread","includes","badges","status","coverage","img","fetchRepositoryDetails","image_token","link","text","scaffoldBadge","getPathToWorkflowFile","projectRoot","test","fileExists","lift","pathToWorkflowFile","workflowDetails","load","fs","readFile","jobs","verify","steps","find","step","uses","startsWith","stepsWithLegacyReportingRemoved","filter","run","writeFile","dump","packageManager","pathToPackageJson","ciProviderCanBeLifted","existingPackageContents","Promise","all","ciProviderIsLiftable","parsedPackageContents","JSON","parse","scripts","otherScripts","liftCiProvider","stringify","execa","nextSteps","summary","description","liftReporting"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/scaffolder.js","../src/badge/repository-details-fetcher.js","../src/badge/scaffolder.js","../src/reporter/ci-providers/github-workflows/lifter.js","../src/reporter/lifter.js","../src/lifter.js"],"sourcesContent":["export async function scaffold() {\n return {};\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 {promises as fs} from 'fs';\nimport {dump, load} from 'js-yaml';\nimport {fileExists} from '@form8ion/core';\n\nfunction getPathToWorkflowFile(projectRoot) {\n return `${projectRoot}/.github/workflows/node-ci.yml`;\n}\n\nexport function test({projectRoot}) {\n return fileExists(getPathToWorkflowFile(projectRoot));\n}\n\nexport async function lift({projectRoot}) {\n const pathToWorkflowFile = getPathToWorkflowFile(projectRoot);\n\n const workflowDetails = load(await fs.readFile(pathToWorkflowFile, 'utf-8'));\n const {jobs: {verify: {steps}}} = workflowDetails;\n\n if (!steps.find(step => step.uses?.startsWith('codecov/codecov-action'))) {\n const stepsWithLegacyReportingRemoved = steps.filter(({run}) => 'npm run coverage:report' !== run);\n\n await fs.writeFile(\n pathToWorkflowFile,\n dump({\n ...workflowDetails,\n jobs: {\n ...workflowDetails.jobs,\n verify: {\n ...workflowDetails.jobs.verify,\n steps: [...stepsWithLegacyReportingRemoved, {uses: 'codecov/codecov-action@v3'}]\n }\n }\n })\n );\n }\n}\n","import {promises as fs} from 'fs';\n\nimport execa from '../../thirdparty-wrappers/execa';\nimport {lift as liftCiProvider, test as ciProviderIsLiftable} from './ci-providers';\n\nexport default async function ({projectRoot, packageManager}) {\n const pathToPackageJson = `${projectRoot}/package.json`;\n\n const [ciProviderCanBeLifted, existingPackageContents] = await Promise.all([\n ciProviderIsLiftable({projectRoot}),\n fs.readFile(pathToPackageJson, 'utf-8')\n ]);\n const parsedPackageContents = JSON.parse(existingPackageContents);\n const {scripts} = parsedPackageContents;\n const {'coverage:report': reportCoverageScript, ...otherScripts} = scripts;\n\n if (ciProviderCanBeLifted) await liftCiProvider({projectRoot});\n\n if (scripts['coverage:report']) {\n parsedPackageContents.scripts = otherScripts;\n await fs.writeFile(pathToPackageJson, JSON.stringify(parsedPackageContents));\n\n await execa(packageManager, ['remove', 'codecov']);\n\n return {\n ...!ciProviderCanBeLifted && {\n nextSteps: [{\n summary: 'Configure modern reporting to Codecov on your CI service',\n description: 'Configure the [Codecov Uploader](https://docs.codecov.com/docs/codecov-uploader) appropriately'\n + ' for your CI Provider. If available for your provider, prefer one of the dedicated wrappers.'\n }]\n }\n };\n }\n\n return {};\n}\n","import deepmerge from 'deepmerge';\n\nimport {scaffold as scaffoldBadge} from './badge';\nimport {lift as liftReporting} from './reporter';\n\nexport async function lift({projectRoot, packageManager, vcs}) {\n const [reportingResults, badgeResults] = await Promise.all([\n liftReporting({projectRoot, packageManager}),\n scaffoldBadge({vcs})\n ]);\n\n return deepmerge.all([reportingResults, badgeResults]);\n}\n"],"names":["scaffold","vcs","apiAccessToken","body","repo","got","owner","name","headers","Authorization","responseType","_objectSpread","includes","host","badges","status","coverage","img","fetchRepositoryDetails","image_token","link","text","getPathToWorkflowFile","projectRoot","test","fileExists","lift","pathToWorkflowFile","workflowDetails","load","fs","readFile","jobs","verify","steps","find","step","_step$uses","uses","startsWith","stepsWithLegacyReportingRemoved","filter","run","writeFile","dump","packageManager","pathToPackageJson","ciProviderCanBeLifted","existingPackageContents","Promise","all","ciProviderIsLiftable","parsedPackageContents","JSON","parse","scripts","otherScripts","_objectWithoutProperties","_excluded","liftCiProvider","stringify","execa","nextSteps","summary","description","reportingResults","badgeResults","liftReporting","scaffoldBadge","deepmerge"],"mappings":"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"}
package/lib/index.es.js CHANGED
@@ -1,22 +1,24 @@
1
- import got from 'got';
1
+ import deepmerge from 'deepmerge';
2
2
  import { promises } from 'fs';
3
3
  import execa from 'execa';
4
4
  import { load, dump } from 'js-yaml';
5
5
  import { fileExists } from '@form8ion/core';
6
+ import got from 'got';
7
+
8
+ async function scaffold$1() {
9
+ return {};
10
+ }
6
11
 
7
12
  function ownKeys(object, enumerableOnly) {
8
13
  var keys = Object.keys(object);
9
-
10
14
  if (Object.getOwnPropertySymbols) {
11
15
  var symbols = Object.getOwnPropertySymbols(object);
12
16
  enumerableOnly && (symbols = symbols.filter(function (sym) {
13
17
  return Object.getOwnPropertyDescriptor(object, sym).enumerable;
14
18
  })), keys.push.apply(keys, symbols);
15
19
  }
16
-
17
20
  return keys;
18
21
  }
19
-
20
22
  function _objectSpread2(target) {
21
23
  for (var i = 1; i < arguments.length; i++) {
22
24
  var source = null != arguments[i] ? arguments[i] : {};
@@ -26,11 +28,10 @@ function _objectSpread2(target) {
26
28
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
27
29
  });
28
30
  }
29
-
30
31
  return target;
31
32
  }
32
-
33
33
  function _defineProperty(obj, key, value) {
34
+ key = _toPropertyKey(key);
34
35
  if (key in obj) {
35
36
  Object.defineProperty(obj, key, {
36
37
  value: value,
@@ -41,35 +42,26 @@ function _defineProperty(obj, key, value) {
41
42
  } else {
42
43
  obj[key] = value;
43
44
  }
44
-
45
45
  return obj;
46
46
  }
47
-
48
47
  function _objectWithoutPropertiesLoose(source, excluded) {
49
48
  if (source == null) return {};
50
49
  var target = {};
51
50
  var sourceKeys = Object.keys(source);
52
51
  var key, i;
53
-
54
52
  for (i = 0; i < sourceKeys.length; i++) {
55
53
  key = sourceKeys[i];
56
54
  if (excluded.indexOf(key) >= 0) continue;
57
55
  target[key] = source[key];
58
56
  }
59
-
60
57
  return target;
61
58
  }
62
-
63
59
  function _objectWithoutProperties(source, excluded) {
64
60
  if (source == null) return {};
65
-
66
61
  var target = _objectWithoutPropertiesLoose(source, excluded);
67
-
68
62
  var key, i;
69
-
70
63
  if (Object.getOwnPropertySymbols) {
71
64
  var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
72
-
73
65
  for (i = 0; i < sourceSymbolKeys.length; i++) {
74
66
  key = sourceSymbolKeys[i];
75
67
  if (excluded.indexOf(key) >= 0) continue;
@@ -77,16 +69,21 @@ function _objectWithoutProperties(source, excluded) {
77
69
  target[key] = source[key];
78
70
  }
79
71
  }
80
-
81
72
  return target;
82
73
  }
83
-
84
- function coverageShouldBeReportedToCodecov({
85
- vcs,
86
- visibility,
87
- apiAccessToken
88
- }) {
89
- return !!('Public' === visibility || apiAccessToken && 'github' === vcs.host);
74
+ function _toPrimitive(input, hint) {
75
+ if (typeof input !== "object" || input === null) return input;
76
+ var prim = input[Symbol.toPrimitive];
77
+ if (prim !== undefined) {
78
+ var res = prim.call(input, hint || "default");
79
+ if (typeof res !== "object") return res;
80
+ throw new TypeError("@@toPrimitive must return a primitive value.");
81
+ }
82
+ return (hint === "string" ? String : Number)(input);
83
+ }
84
+ function _toPropertyKey(arg) {
85
+ var key = _toPrimitive(arg, "string");
86
+ return typeof key === "symbol" ? key : String(key);
90
87
  }
91
88
 
92
89
  async function fetchRepositoryDetails ({
@@ -106,7 +103,7 @@ async function fetchRepositoryDetails ({
106
103
  return repo;
107
104
  }
108
105
 
109
- async function scaffold$1({
106
+ async function scaffold({
110
107
  vcs,
111
108
  apiAccessToken
112
109
  }) {
@@ -126,26 +123,9 @@ async function scaffold$1({
126
123
  });
127
124
  }
128
125
 
129
- async function scaffold({
130
- vcs,
131
- visibility,
132
- apiAccessToken
133
- }) {
134
- if (!coverageShouldBeReportedToCodecov({
135
- vcs,
136
- visibility,
137
- apiAccessToken
138
- })) return {};
139
- return _objectSpread2({}, await scaffold$1({
140
- vcs,
141
- apiAccessToken
142
- }));
143
- }
144
-
145
126
  function getPathToWorkflowFile(projectRoot) {
146
127
  return `${projectRoot}/.github/workflows/node-ci.yml`;
147
128
  }
148
-
149
129
  function test({
150
130
  projectRoot
151
131
  }) {
@@ -163,10 +143,8 @@ async function lift$1({
163
143
  }
164
144
  }
165
145
  } = workflowDetails;
166
-
167
146
  if (!steps.find(step => {
168
147
  var _step$uses;
169
-
170
148
  return (_step$uses = step.uses) === null || _step$uses === void 0 ? void 0 : _step$uses.startsWith('codecov/codecov-action');
171
149
  })) {
172
150
  const stepsWithLegacyReportingRemoved = steps.filter(({
@@ -197,13 +175,10 @@ async function liftReporting ({
197
175
  const {
198
176
  scripts
199
177
  } = parsedPackageContents;
200
-
201
178
  const otherScripts = _objectWithoutProperties(scripts, _excluded);
202
-
203
179
  if (ciProviderCanBeLifted) await lift$1({
204
180
  projectRoot
205
181
  });
206
-
207
182
  if (scripts['coverage:report']) {
208
183
  parsedPackageContents.scripts = otherScripts;
209
184
  await promises.writeFile(pathToPackageJson, JSON.stringify(parsedPackageContents));
@@ -215,19 +190,22 @@ async function liftReporting ({
215
190
  }]
216
191
  });
217
192
  }
218
-
219
193
  return {};
220
194
  }
221
195
 
222
- function lift({
196
+ async function lift({
223
197
  projectRoot,
224
- packageManager
198
+ packageManager,
199
+ vcs
225
200
  }) {
226
- return liftReporting({
201
+ const [reportingResults, badgeResults] = await Promise.all([liftReporting({
227
202
  projectRoot,
228
203
  packageManager
229
- });
204
+ }), scaffold({
205
+ vcs
206
+ })]);
207
+ return deepmerge.all([reportingResults, badgeResults]);
230
208
  }
231
209
 
232
- export { lift, scaffold };
210
+ export { lift, scaffold$1 as scaffold };
233
211
  //# sourceMappingURL=index.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/predicates.js","../src/badge/repository-details-fetcher.js","../src/badge/scaffolder.js","../src/scaffolder.js","../src/reporter/ci-providers/github-workflows/lifter.js","../src/reporter/lifter.js","../src/lifter.js"],"sourcesContent":["export function coverageShouldBeReportedToCodecov({vcs, visibility, apiAccessToken}) {\n return !!('Public' === visibility || (apiAccessToken && 'github' === vcs.host));\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 scaffoldBadge} from './badge';\n\nexport async function scaffold({vcs, visibility, apiAccessToken}) {\n if (!coverageShouldBeReportedToCodecov({vcs, visibility, apiAccessToken})) return {};\n\n return {\n ...await scaffoldBadge({vcs, apiAccessToken})\n };\n}\n","import {promises as fs} from 'fs';\nimport {dump, load} from 'js-yaml';\nimport {fileExists} from '@form8ion/core';\n\nfunction getPathToWorkflowFile(projectRoot) {\n return `${projectRoot}/.github/workflows/node-ci.yml`;\n}\n\nexport function test({projectRoot}) {\n return fileExists(getPathToWorkflowFile(projectRoot));\n}\n\nexport async function lift({projectRoot}) {\n const pathToWorkflowFile = getPathToWorkflowFile(projectRoot);\n\n const workflowDetails = load(await fs.readFile(pathToWorkflowFile, 'utf-8'));\n const {jobs: {verify: {steps}}} = workflowDetails;\n\n if (!steps.find(step => step.uses?.startsWith('codecov/codecov-action'))) {\n const stepsWithLegacyReportingRemoved = steps.filter(({run}) => 'npm run coverage:report' !== run);\n\n await fs.writeFile(\n pathToWorkflowFile,\n dump({\n ...workflowDetails,\n jobs: {\n ...workflowDetails.jobs,\n verify: {\n ...workflowDetails.jobs.verify,\n steps: [...stepsWithLegacyReportingRemoved, {uses: 'codecov/codecov-action@v3'}]\n }\n }\n })\n );\n }\n}\n","import {promises as fs} from 'fs';\n\nimport execa from '../../thirdparty-wrappers/execa';\nimport {lift as liftCiProvider, test as ciProviderIsLiftable} from './ci-providers';\n\nexport default async function ({projectRoot, packageManager}) {\n const pathToPackageJson = `${projectRoot}/package.json`;\n\n const [ciProviderCanBeLifted, existingPackageContents] = await Promise.all([\n ciProviderIsLiftable({projectRoot}),\n fs.readFile(pathToPackageJson, 'utf-8')\n ]);\n const parsedPackageContents = JSON.parse(existingPackageContents);\n const {scripts} = parsedPackageContents;\n const {'coverage:report': reportCoverageScript, ...otherScripts} = scripts;\n\n if (ciProviderCanBeLifted) await liftCiProvider({projectRoot});\n\n if (scripts['coverage:report']) {\n parsedPackageContents.scripts = otherScripts;\n await fs.writeFile(pathToPackageJson, JSON.stringify(parsedPackageContents));\n\n await execa(packageManager, ['remove', 'codecov']);\n\n return {\n ...!ciProviderCanBeLifted && {\n nextSteps: [{\n summary: 'Configure modern reporting to Codecov on your CI service',\n description: 'Configure the [Codecov Uploader](https://docs.codecov.com/docs/codecov-uploader) appropriately'\n + ' for your CI Provider. If available for your provider, prefer one of the dedicated wrappers.'\n }]\n }\n };\n }\n\n return {};\n}\n","import {lift as liftReporting} from './reporter';\n\nexport function lift({projectRoot, packageManager}) {\n return liftReporting({projectRoot, packageManager});\n}\n"],"names":["coverageShouldBeReportedToCodecov","vcs","visibility","apiAccessToken","host","body","repo","got","owner","name","headers","Authorization","responseType","scaffold","_objectSpread","includes","badges","status","coverage","img","fetchRepositoryDetails","image_token","link","text","scaffoldBadge","getPathToWorkflowFile","projectRoot","test","fileExists","lift","pathToWorkflowFile","workflowDetails","load","fs","readFile","jobs","verify","steps","find","step","uses","startsWith","stepsWithLegacyReportingRemoved","filter","run","writeFile","dump","packageManager","pathToPackageJson","ciProviderCanBeLifted","existingPackageContents","Promise","all","ciProviderIsLiftable","parsedPackageContents","JSON","parse","scripts","otherScripts","liftCiProvider","stringify","execa","nextSteps","summary","description","liftReporting"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,SAASA,iCAAT,CAA2C;EAACC,GAAD;EAAMC,UAAN;AAAkBC,EAAAA,cAAAA;AAAlB,CAA3C,EAA8E;EACnF,OAAO,CAAC,EAAE,QAAA,KAAaD,UAAb,IAA4BC,cAAc,IAAI,QAAaF,KAAAA,GAAG,CAACG,IAAjE,CAAR,CAAA;AACD;;ACAc,qCAAgB,EAAA;EAACH,GAAD;AAAME,EAAAA,cAAAA;AAAN,CAAhB,EAAuC;EACpD,MAAM;AAACE,IAAAA,IAAI,EAAE;AAACC,MAAAA,IAAAA;AAAD,KAAA;AAAP,GAAA,GAAiB,MAAMC,GAAG,CAC7B,CAAA,0BAAA,EAA4BN,GAAG,CAACO,KAAM,CAAA,CAAA,EAAGP,GAAG,CAACQ,IAAK,CAAA,CADrB,EAE9B;AAACC,IAAAA,OAAO,EAAE;AAACC,MAAAA,aAAa,EAAER,cAAAA;KAA1B;AAA2CS,IAAAA,YAAY,EAAE,MAAA;AAAzD,GAF8B,CAAhC,CAAA;AAKA,EAAA,OAAON,IAAP,CAAA;AACD;;ACPM,eAAeO,UAAf,CAAwB;EAACZ,GAAD;AAAME,EAAAA,cAAAA;AAAN,CAAxB,EAA+C;AACpD,EAAA,OAAAW,cAAA,CAAA,EAAA,EACK,CAAC,QAAD,EAAW,QAAX,EAAqB,WAArB,CAAkCC,CAAAA,QAAlC,CAA2Cd,GAA3C,aAA2CA,GAA3C,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA2CA,GAAG,CAAEG,IAAhD,CAAyD,IAAA;AAC1DY,IAAAA,MAAM,EAAE;AACNC,MAAAA,MAAM,EAAE;AACNC,QAAAA,QAAQ,EAAE;UACRC,GAAG,EAAG,oCAAmClB,GAAG,CAACG,IAAK,CAAGH,CAAAA,EAAAA,GAAG,CAACO,KAAM,CAAA,CAAA,EAAGP,GAAG,CAACQ,IAAK,gBACzEN,cAAc,GACT,UAAS,CAAC,MAAMiB,sBAAsB,CAAC;YAACnB,GAAD;AAAME,YAAAA,cAAAA;AAAN,WAAD,CAA7B,EAAsDkB,WAAY,CADlE,CAAA,GAEV,EACL,CALO,CAAA;AAMRC,UAAAA,IAAI,EAAG,CAAA,mBAAA,EAAqBrB,GAAG,CAACG,IAAK,CAAA,CAAA,EAAGH,GAAG,CAACO,KAAM,CAAA,CAAA,EAAGP,GAAG,CAACQ,IAAK,CANtD,CAAA;AAORc,UAAAA,IAAI,EAAE,SAAA;AAPE,SAAA;AADJ,OAAA;AADF,KAAA;GAFZ,CAAA,CAAA;AAiBD;;ACjBM,eAAeV,QAAf,CAAwB;EAACZ,GAAD;EAAMC,UAAN;AAAkBC,EAAAA,cAAAA;AAAlB,CAAxB,EAA2D;EAChE,IAAI,CAACH,iCAAiC,CAAC;IAACC,GAAD;IAAMC,UAAN;AAAkBC,IAAAA,cAAAA;GAAnB,CAAtC,EAA2E,OAAO,EAAP,CAAA;EAE3E,OACKW,cAAA,CAAA,EAAA,EAAA,MAAMU,UAAa,CAAC;IAACvB,GAAD;AAAME,IAAAA,cAAAA;AAAN,GAAD,CADxB,CAAA,CAAA;AAGD;;ACLD,SAASsB,qBAAT,CAA+BC,WAA/B,EAA4C;EAC1C,OAAQ,CAAA,EAAEA,WAAY,CAAtB,8BAAA,CAAA,CAAA;AACD,CAAA;;AAEM,SAASC,IAAT,CAAc;AAACD,EAAAA,WAAAA;AAAD,CAAd,EAA6B;AAClC,EAAA,OAAOE,UAAU,CAACH,qBAAqB,CAACC,WAAD,CAAtB,CAAjB,CAAA;AACD,CAAA;AAEM,eAAeG,MAAf,CAAoB;AAACH,EAAAA,WAAAA;AAAD,CAApB,EAAmC;AACxC,EAAA,MAAMI,kBAAkB,GAAGL,qBAAqB,CAACC,WAAD,CAAhD,CAAA;AAEA,EAAA,MAAMK,eAAe,GAAGC,IAAI,CAAC,MAAMC,QAAE,CAACC,QAAH,CAAYJ,kBAAZ,EAAgC,OAAhC,CAAP,CAA5B,CAAA;EACA,MAAM;AAACK,IAAAA,IAAI,EAAE;AAACC,MAAAA,MAAM,EAAE;AAACC,QAAAA,KAAAA;AAAD,OAAA;AAAT,KAAA;AAAP,GAAA,GAA4BN,eAAlC,CAAA;;AAEA,EAAA,IAAI,CAACM,KAAK,CAACC,IAAN,CAAWC,IAAI,IAAA;AAAA,IAAA,IAAA,UAAA,CAAA;;IAAA,OAAIA,CAAAA,UAAAA,GAAAA,IAAI,CAACC,IAAT,MAAA,IAAA,IAAA,UAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAI,WAAWC,UAAX,CAAsB,wBAAtB,CAAJ,CAAA;AAAA,GAAf,CAAL,EAA0E;AACxE,IAAA,MAAMC,+BAA+B,GAAGL,KAAK,CAACM,MAAN,CAAa,CAAC;AAACC,MAAAA,GAAAA;KAAF,KAAW,yBAA8BA,KAAAA,GAAtD,CAAxC,CAAA;IAEA,MAAMX,QAAE,CAACY,SAAH,CACJf,kBADI,EAEJgB,IAAI,mCACCf,eADD,CAAA,EAAA,EAAA,EAAA;MAEFI,IAAI,EAAArB,cAAA,CAAAA,cAAA,CAAA,EAAA,EACCiB,eAAe,CAACI,IADjB,CAAA,EAAA,EAAA,EAAA;AAEFC,QAAAA,MAAM,EACDL,cAAAA,CAAAA,cAAAA,CAAAA,EAAAA,EAAAA,eAAe,CAACI,IAAhB,CAAqBC,MADpB,CAAA,EAAA,EAAA,EAAA;AAEJC,UAAAA,KAAK,EAAE,CAAC,GAAGK,+BAAJ,EAAqC;AAACF,YAAAA,IAAI,EAAE,2BAAA;WAA5C,CAAA;AAFH,SAAA,CAAA;AAFJ,OAAA,CAAA;AAFF,KAAA,CAAA,CAFA,CAAN,CAAA;AAaD,GAAA;AACF;;;AC9Bc,4BAAgB,EAAA;EAACd,WAAD;AAAcqB,EAAAA,cAAAA;AAAd,CAAhB,EAA+C;AAC5D,EAAA,MAAMC,iBAAiB,GAAI,CAAEtB,EAAAA,WAAY,CAAzC,aAAA,CAAA,CAAA;AAEA,EAAA,MAAM,CAACuB,qBAAD,EAAwBC,uBAAxB,CAAmD,GAAA,MAAMC,OAAO,CAACC,GAAR,CAAY,CACzEC,IAAoB,CAAC;AAAC3B,IAAAA,WAAAA;GAAF,CADqD,EAEzEO,QAAE,CAACC,QAAH,CAAYc,iBAAZ,EAA+B,OAA/B,CAFyE,CAAZ,CAA/D,CAAA;AAIA,EAAA,MAAMM,qBAAqB,GAAGC,IAAI,CAACC,KAAL,CAAWN,uBAAX,CAA9B,CAAA;EACA,MAAM;AAACO,IAAAA,OAAAA;AAAD,GAAA,GAAYH,qBAAlB,CAAA;;EACM,MAA6CI,YAAnD,4BAAmED,OAAnE,EAAA,SAAA,EAAA;;AAEA,EAAA,IAAIR,qBAAJ,EAA2B,MAAMU,MAAc,CAAC;AAACjC,IAAAA,WAAAA;AAAD,GAAD,CAApB,CAAA;;AAE3B,EAAA,IAAI+B,OAAO,CAAC,iBAAD,CAAX,EAAgC;IAC9BH,qBAAqB,CAACG,OAAtB,GAAgCC,YAAhC,CAAA;AACA,IAAA,MAAMzB,QAAE,CAACY,SAAH,CAAaG,iBAAb,EAAgCO,IAAI,CAACK,SAAL,CAAeN,qBAAf,CAAhC,CAAN,CAAA;IAEA,MAAMO,KAAK,CAACd,cAAD,EAAiB,CAAC,QAAD,EAAW,SAAX,CAAjB,CAAX,CAAA;IAEA,OACKjC,cAAA,CAAA,EAAA,EAAA,CAACmC,qBAAD,IAA0B;AAC3Ba,MAAAA,SAAS,EAAE,CAAC;AACVC,QAAAA,OAAO,EAAE,0DADC;AAEVC,QAAAA,WAAW,EAAE,gGACT,GAAA,8FAAA;OAHK,CAAA;KAFf,CAAA,CAAA;AASD,GAAA;;AAED,EAAA,OAAO,EAAP,CAAA;AACD;;AClCM,SAASnC,IAAT,CAAc;EAACH,WAAD;AAAcqB,EAAAA,cAAAA;AAAd,CAAd,EAA6C;AAClD,EAAA,OAAOkB,aAAa,CAAC;IAACvC,WAAD;AAAcqB,IAAAA,cAAAA;AAAd,GAAD,CAApB,CAAA;AACD;;;;"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/scaffolder.js","../src/badge/repository-details-fetcher.js","../src/badge/scaffolder.js","../src/reporter/ci-providers/github-workflows/lifter.js","../src/reporter/lifter.js","../src/lifter.js"],"sourcesContent":["export async function scaffold() {\n return {};\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 {promises as fs} from 'fs';\nimport {dump, load} from 'js-yaml';\nimport {fileExists} from '@form8ion/core';\n\nfunction getPathToWorkflowFile(projectRoot) {\n return `${projectRoot}/.github/workflows/node-ci.yml`;\n}\n\nexport function test({projectRoot}) {\n return fileExists(getPathToWorkflowFile(projectRoot));\n}\n\nexport async function lift({projectRoot}) {\n const pathToWorkflowFile = getPathToWorkflowFile(projectRoot);\n\n const workflowDetails = load(await fs.readFile(pathToWorkflowFile, 'utf-8'));\n const {jobs: {verify: {steps}}} = workflowDetails;\n\n if (!steps.find(step => step.uses?.startsWith('codecov/codecov-action'))) {\n const stepsWithLegacyReportingRemoved = steps.filter(({run}) => 'npm run coverage:report' !== run);\n\n await fs.writeFile(\n pathToWorkflowFile,\n dump({\n ...workflowDetails,\n jobs: {\n ...workflowDetails.jobs,\n verify: {\n ...workflowDetails.jobs.verify,\n steps: [...stepsWithLegacyReportingRemoved, {uses: 'codecov/codecov-action@v3'}]\n }\n }\n })\n );\n }\n}\n","import {promises as fs} from 'fs';\n\nimport execa from '../../thirdparty-wrappers/execa';\nimport {lift as liftCiProvider, test as ciProviderIsLiftable} from './ci-providers';\n\nexport default async function ({projectRoot, packageManager}) {\n const pathToPackageJson = `${projectRoot}/package.json`;\n\n const [ciProviderCanBeLifted, existingPackageContents] = await Promise.all([\n ciProviderIsLiftable({projectRoot}),\n fs.readFile(pathToPackageJson, 'utf-8')\n ]);\n const parsedPackageContents = JSON.parse(existingPackageContents);\n const {scripts} = parsedPackageContents;\n const {'coverage:report': reportCoverageScript, ...otherScripts} = scripts;\n\n if (ciProviderCanBeLifted) await liftCiProvider({projectRoot});\n\n if (scripts['coverage:report']) {\n parsedPackageContents.scripts = otherScripts;\n await fs.writeFile(pathToPackageJson, JSON.stringify(parsedPackageContents));\n\n await execa(packageManager, ['remove', 'codecov']);\n\n return {\n ...!ciProviderCanBeLifted && {\n nextSteps: [{\n summary: 'Configure modern reporting to Codecov on your CI service',\n description: 'Configure the [Codecov Uploader](https://docs.codecov.com/docs/codecov-uploader) appropriately'\n + ' for your CI Provider. If available for your provider, prefer one of the dedicated wrappers.'\n }]\n }\n };\n }\n\n return {};\n}\n","import deepmerge from 'deepmerge';\n\nimport {scaffold as scaffoldBadge} from './badge';\nimport {lift as liftReporting} from './reporter';\n\nexport async function lift({projectRoot, packageManager, vcs}) {\n const [reportingResults, badgeResults] = await Promise.all([\n liftReporting({projectRoot, packageManager}),\n scaffoldBadge({vcs})\n ]);\n\n return deepmerge.all([reportingResults, badgeResults]);\n}\n"],"names":["scaffold","vcs","apiAccessToken","body","repo","got","owner","name","headers","Authorization","responseType","_objectSpread","includes","host","badges","status","coverage","img","fetchRepositoryDetails","image_token","link","text","getPathToWorkflowFile","projectRoot","test","fileExists","lift","pathToWorkflowFile","workflowDetails","load","fs","readFile","jobs","verify","steps","find","step","_step$uses","uses","startsWith","stepsWithLegacyReportingRemoved","filter","run","writeFile","dump","packageManager","pathToPackageJson","ciProviderCanBeLifted","existingPackageContents","Promise","all","ciProviderIsLiftable","parsedPackageContents","JSON","parse","scripts","otherScripts","_objectWithoutProperties","_excluded","liftCiProvider","stringify","execa","nextSteps","summary","description","reportingResults","badgeResults","liftReporting","scaffoldBadge","deepmerge"],"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": "4.0.1",
5
+ "version": "5.0.0-beta.1",
6
6
  "engines": {
7
7
  "node": ">=16"
8
8
  },
@@ -41,56 +41,60 @@
41
41
  "test:integration:wip": "run-s 'test:integration:base -- --profile wip'",
42
42
  "test:integration:wip:debug": "DEBUG=test run-s 'test:integration:wip'",
43
43
  "test:integration:focus": "run-s 'test:integration:base -- --profile focus'",
44
- "lint:engines": "ls-engines"
44
+ "lint:engines": "ls-engines",
45
+ "lint:publish": "publint"
45
46
  },
46
47
  "files": [
47
48
  "example.js",
48
49
  "lib/"
49
50
  ],
50
51
  "publishConfig": {
51
- "access": "public"
52
+ "access": "public",
53
+ "provenance": true
52
54
  },
53
55
  "dependencies": {
54
56
  "@form8ion/core": "^2.0.0",
57
+ "deepmerge": "^4.3.1",
55
58
  "execa": "^5.1.1",
56
59
  "got": "^11.8.5",
57
60
  "js-yaml": "^4.1.0"
58
61
  },
59
62
  "devDependencies": {
60
- "@babel/register": "7.18.9",
61
- "@cucumber/cucumber": "8.5.2",
62
- "@form8ion/babel-preset": "1.6.95",
63
- "@form8ion/commitlint-config": "1.0.38",
64
- "@form8ion/eslint-config": "5.0.9",
63
+ "@babel/register": "7.22.5",
64
+ "@cucumber/cucumber": "9.3.0",
65
+ "@form8ion/babel-preset": "1.6.107",
66
+ "@form8ion/commitlint-config": "1.0.53",
67
+ "@form8ion/eslint-config": "6.0.0",
65
68
  "@form8ion/eslint-config-cucumber": "1.4.1",
66
- "@form8ion/eslint-config-mocha": "2.0.3",
67
- "@form8ion/javascript-core": "7.0.1",
68
- "@form8ion/remark-lint-preset": "4.0.2",
69
- "@rollup/plugin-babel": "5.3.1",
70
- "@rollup/plugin-node-resolve": "13.3.0",
71
- "@travi/any": "2.1.5",
72
- "ban-sensitive-files": "1.9.18",
73
- "c8": "7.12.0",
74
- "chai": "4.3.6",
69
+ "@form8ion/eslint-config-mocha": "3.0.0",
70
+ "@form8ion/javascript-core": "10.0.1",
71
+ "@form8ion/remark-lint-preset": "6.0.0",
72
+ "@rollup/plugin-babel": "6.0.3",
73
+ "@rollup/plugin-node-resolve": "15.1.0",
74
+ "@travi/any": "2.1.8",
75
+ "ban-sensitive-files": "1.9.19",
76
+ "c8": "8.0.1",
77
+ "chai": "4.3.7",
75
78
  "cross-env": "7.0.3",
76
79
  "cz-conventional-changelog": "3.3.0",
77
80
  "gherkin-lint": "4.2.2",
78
81
  "http-status-codes": "2.2.0",
79
- "husky": "8.0.1",
80
- "lockfile-lint": "4.8.0",
81
- "ls-engines": "0.7.0",
82
- "mocha": "10.0.0",
83
- "mock-fs": "5.1.4",
84
- "nock": "13.2.9",
82
+ "husky": "8.0.3",
83
+ "lockfile-lint": "4.12.0",
84
+ "ls-engines": "0.9.0",
85
+ "mocha": "10.2.0",
86
+ "mock-fs": "5.2.0",
87
+ "nock": "13.3.2",
85
88
  "npm-run-all": "4.1.5",
86
89
  "package-preview": "4.0.0",
90
+ "publint": "0.2.0",
87
91
  "remark-cli": "11.0.0",
88
92
  "remark-toc": "8.0.1",
89
93
  "remark-usage": "10.0.1",
90
- "rimraf": "3.0.2",
91
- "rollup": "2.79.0",
94
+ "rimraf": "5.0.1",
95
+ "rollup": "3.27.2",
92
96
  "rollup-plugin-auto-external": "2.0.0",
93
- "sinon": "14.0.0",
94
- "testdouble": "3.16.6"
97
+ "sinon": "15.2.0",
98
+ "testdouble": "3.16.7"
95
99
  }
96
100
  }