create-polyfill-service-url 2.2.5 → 2.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 +27 -4
- package/index.js +27 -90
- package/package.json +20 -11
- package/src/analyse.js +120 -0
- package/src/index.js +28 -7
- package/.eslintrc.js +0 -17
- package/.github/CODEOWNERS +0 -7
- package/.github/ISSUE_TEMPLATE.md +0 -37
- package/.github/dependabot.yml +0 -21
- package/.github/workflows/add-new-issues-and-pull-requests-to-origami-project-board.yml +0 -16
- package/.github/workflows/apply-labels.yml +0 -14
- package/.github/workflows/auto-approve.yml +0 -12
- package/.github/workflows/automatic-tag-and-release.yml +0 -22
- package/.github/workflows/automerge.yml +0 -40
- package/.github/workflows/npm-audit-fix.yml +0 -22
- package/.github/workflows/publish-to-npm-as-latest.yml +0 -22
- package/.github/workflows/publish-to-npm-as-prerelease.yml +0 -22
- package/.github/workflows/sync-repo-labels.yml +0 -13
- package/.github/workflows/test.yml +0 -11
- package/.snyk +0 -170
- package/origami.json +0 -17
- package/test/index.test.js +0 -66
package/README.md
CHANGED
@@ -22,19 +22,42 @@ A Node.js command-line application for analysing your JavaScript file and genera
|
|
22
22
|
|
23
23
|
|
24
24
|
## Usage
|
25
|
-
|
25
|
+
### CLI
|
26
26
|
This project requires [Node.js] 10.x and [npm]. You can run it with:
|
27
27
|
|
28
28
|
```bash
|
29
|
-
> npx create-polyfill-service-url analyse --file bundle.js
|
29
|
+
> npx create-polyfill-service-url analyse --file bundle.js [--cwd "/custom/pwd" --omit "Array.prototype.includes" --hostname "polyfill.io"]
|
30
30
|
```
|
31
|
-
|
32
31
|
You can pass multiple files as argument if you split your bundle files:
|
33
|
-
|
34
32
|
```bash
|
35
33
|
npx create-polyfill-service-url analyse --file app.js vendor.js
|
36
34
|
```
|
37
35
|
|
36
|
+
| Option | Description | Default |
|
37
|
+
|-------------------------------|-------------------------------------------------------------------------------------------------------------|-----------------|
|
38
|
+
| --file | The path to the JavaScript file(s) to analyse | |
|
39
|
+
| --cwd | The current working directory | `process.cwd()` |
|
40
|
+
| --omit | A list of features to omit. Example: `Array.prototype.map` | |
|
41
|
+
| --hostname | The hostname of the polyfill service to use. | `polyfill.io` |
|
42
|
+
| --use-compute-at-edge-backend | Defines the compute-at-edge-backend usage policy: `yes` or `no`. If empty the server will decide. | |
|
43
|
+
| --flags | Configuration settings for every polyfill being requested. Possible values are `always` and `gated` or both | |
|
44
|
+
| --unknown | Defines the policy for unsupported browsers: `polyfill` or `ignore` | `polyfill` |
|
45
|
+
|
46
|
+
### JS API
|
47
|
+
```js
|
48
|
+
const analyze = require('create-polyfill-service-url');
|
49
|
+
|
50
|
+
const result = await analyze({
|
51
|
+
file: ['bundle.js'],
|
52
|
+
cwd: '/foo/bar', // Defaults to process.cwd()
|
53
|
+
omit: ['Array.prototype.includes'], // Defaults to []
|
54
|
+
hostname: 'example.com', // Defaults to 'polyfill.io'
|
55
|
+
unknown: 'polyfill', // Defaults to null. Accepts 'polyfill' or 'ignore'
|
56
|
+
useComputeAtEdgeBackend: 'yes', // Defaults to null. Accepts 'yes' or 'no'
|
57
|
+
flags: 'gated', // Defaults to null. Accepts 'always', 'gated' or both ['always', 'gated']
|
58
|
+
});
|
59
|
+
```
|
60
|
+
|
38
61
|
## Contributing
|
39
62
|
|
40
63
|
This module has a full suite of unit tests, and is verified with ESLint. You can use the following commands to check your code before opening a pull request:
|
package/index.js
CHANGED
@@ -14,97 +14,34 @@ require('yargs')
|
|
14
14
|
describe: 'The file that should be analysed',
|
15
15
|
demandOption: true,
|
16
16
|
},
|
17
|
+
omit: {
|
18
|
+
array: true,
|
19
|
+
string: true,
|
20
|
+
describe: 'The list of features to omit',
|
21
|
+
},
|
22
|
+
cwd: {
|
23
|
+
string: true,
|
24
|
+
describe: 'The current working directory. Defaults to process.cwd()',
|
25
|
+
},
|
26
|
+
hostname: {
|
27
|
+
string: true,
|
28
|
+
describe: 'The hostname to use for the generated URL. Defaults to polyfill.io',
|
29
|
+
},
|
30
|
+
useComputeAtEdgeBackend: {
|
31
|
+
string: true,
|
32
|
+
describe: 'Defines the compute-at-edge-backend usage policy: `yes` or `no`. If empty the server will decide.',
|
33
|
+
},
|
34
|
+
flags: {
|
35
|
+
array: true,
|
36
|
+
string: true,
|
37
|
+
describe: 'Configuration settings for every polyfill being requested. Possible values are `always` and `gated` or both',
|
38
|
+
},
|
39
|
+
unknown: {
|
40
|
+
string: true,
|
41
|
+
describe: 'Defines the policy for unsupported browsers: `polyfill` or `ignore`. Defaults to `polyfill`',
|
42
|
+
},
|
17
43
|
},
|
18
|
-
|
19
|
-
const browserslist = require('browserslist');
|
20
|
-
const browsersListConfig = browserslist.loadConfig({
|
21
|
-
path: process.cwd(),
|
22
|
-
});
|
23
|
-
let browsers = [];
|
24
|
-
if (browsersListConfig) {
|
25
|
-
browsers = browserslist(browsersListConfig);
|
26
|
-
}
|
27
|
-
|
28
|
-
const generatePolyfillURL = require('./src/index.js');
|
29
|
-
const path = require('path');
|
30
|
-
const babel = require('@babel/core');
|
31
|
-
const plugin = require('@financial-times/js-features-analyser/src/index.js');
|
32
|
-
const fs = require('fs');
|
33
|
-
const os = require('os');
|
34
|
-
const promisify = require('util').promisify;
|
35
|
-
const readFile = promisify(fs.readFile);
|
36
|
-
const mkdtemp = promisify(fs.mkdtemp);
|
37
|
-
|
38
|
-
const promiseList = argv.file.map(async filename => {
|
39
|
-
const file = path.join(process.cwd(), filename);
|
40
|
-
const fileContents = await readFile(file, 'utf-8');
|
41
|
-
const tempFolder = await mkdtemp(
|
42
|
-
path.join(os.tmpdir(), 'js-features-analyser')
|
43
|
-
);
|
44
|
-
const outputDestination = path.join(tempFolder, 'features.json');
|
45
|
-
|
46
|
-
try {
|
47
|
-
babel.transformSync(fileContents, {
|
48
|
-
plugins: [
|
49
|
-
[
|
50
|
-
plugin,
|
51
|
-
{
|
52
|
-
outputDestination,
|
53
|
-
},
|
54
|
-
],
|
55
|
-
],
|
56
|
-
filename: file,
|
57
|
-
ast: false,
|
58
|
-
code: false,
|
59
|
-
});
|
60
|
-
|
61
|
-
return JSON.parse(fs.readFileSync(outputDestination, 'utf-8'));
|
62
|
-
} catch (error) {
|
63
|
-
if (error instanceof SyntaxError) {
|
64
|
-
console.error(
|
65
|
-
'Failed to parse the JavaScript from xxx because it has a syntax error.'
|
66
|
-
);
|
67
|
-
delete error.stack;
|
68
|
-
delete error.code;
|
69
|
-
delete error.pos;
|
70
|
-
delete error.loc;
|
71
|
-
const result = /: (?<errorType>[\w ]+) \((?<position>\d+:\d+)\)/.exec(
|
72
|
-
error.message
|
73
|
-
);
|
74
|
-
console.error(result.groups.errorType);
|
75
|
-
error.message = error.message.replace(
|
76
|
-
` ${result.groups.errorType} `,
|
77
|
-
''
|
78
|
-
);
|
79
|
-
error.message = error.message.replace(
|
80
|
-
`(${result.groups.position})`,
|
81
|
-
result.groups.position
|
82
|
-
);
|
83
|
-
console.error(error.message);
|
84
|
-
} else {
|
85
|
-
console.error(
|
86
|
-
'Failed to parse the JavaScript from xxx because an error occured:'
|
87
|
-
);
|
88
|
-
console.error(error);
|
89
|
-
}
|
90
|
-
}
|
91
|
-
});
|
92
|
-
|
93
|
-
const resultList = await Promise.all(promiseList);
|
94
|
-
const featureList = resultList.reduce(
|
95
|
-
(carry, item) => [...carry, ...item],
|
96
|
-
[]
|
97
|
-
);
|
98
|
-
const uniqueFeatureList = [...new Set(featureList)];
|
99
|
-
|
100
|
-
const result = await generatePolyfillURL(uniqueFeatureList, browsers);
|
101
|
-
|
102
|
-
if (result.type === generatePolyfillURL.TYPE_URL) {
|
103
|
-
console.log(result.message);
|
104
|
-
} else if (result.type === generatePolyfillURL.TYPE_NOTHING) {
|
105
|
-
console.error(result.message);
|
106
|
-
}
|
107
|
-
}
|
44
|
+
require('./src/analyse')
|
108
45
|
)
|
109
46
|
.help()
|
110
47
|
.strict().argv;
|
package/package.json
CHANGED
@@ -1,6 +1,14 @@
|
|
1
1
|
{
|
2
2
|
"name": "create-polyfill-service-url",
|
3
3
|
"bin": "./index.js",
|
4
|
+
"main": "./src/analyse.js",
|
5
|
+
"files": [
|
6
|
+
"index.js",
|
7
|
+
"src",
|
8
|
+
"README.md",
|
9
|
+
"CHANGELOG.md",
|
10
|
+
"LICENSE.md"
|
11
|
+
],
|
4
12
|
"scripts": {
|
5
13
|
"fix": "eslint . --fix",
|
6
14
|
"lint": "eslint .",
|
@@ -9,19 +17,20 @@
|
|
9
17
|
"prepare": "npm run snyk-protect"
|
10
18
|
},
|
11
19
|
"devDependencies": {
|
12
|
-
"eslint": "^
|
13
|
-
"jest": "^
|
20
|
+
"eslint": "^8.40.0",
|
21
|
+
"jest": "^29.5.0",
|
22
|
+
"tinysh": "^1.0.0"
|
14
23
|
},
|
15
|
-
"version": "2.
|
24
|
+
"version": "2.3.0",
|
16
25
|
"dependencies": {
|
17
|
-
"@babel/core": "^7.
|
18
|
-
"@financial-times/js-features-analyser": "0.
|
19
|
-
"browserslist": "^4.
|
20
|
-
"execa": "^
|
21
|
-
"polyfill-library": "^
|
22
|
-
"semver": "^7.
|
23
|
-
"yargs": "^
|
24
|
-
"snyk": "^1.
|
26
|
+
"@babel/core": "^7.21.8",
|
27
|
+
"@financial-times/js-features-analyser": "^0.4.3",
|
28
|
+
"browserslist": "^4.21.5",
|
29
|
+
"execa": "^7.1.1",
|
30
|
+
"polyfill-library": "^4.7.0",
|
31
|
+
"semver": "^7.5.0",
|
32
|
+
"yargs": "^17.7.2",
|
33
|
+
"snyk": "^1.1153.0"
|
25
34
|
},
|
26
35
|
"repository": {
|
27
36
|
"type": "git",
|
package/src/analyse.js
ADDED
@@ -0,0 +1,120 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
module.exports = async function parseFile(argv) {
|
4
|
+
const {
|
5
|
+
cwd = process.cwd(),
|
6
|
+
hostname,
|
7
|
+
flags,
|
8
|
+
useComputeAtEdgeBackend,
|
9
|
+
unknown,
|
10
|
+
} = argv;
|
11
|
+
const omitList = argv.omit || [];
|
12
|
+
const browserslist = require('browserslist');
|
13
|
+
const browsersListConfig = browserslist.loadConfig({
|
14
|
+
path: cwd,
|
15
|
+
});
|
16
|
+
let browsers = [];
|
17
|
+
if (browsersListConfig) {
|
18
|
+
browsers = browserslist(browsersListConfig);
|
19
|
+
}
|
20
|
+
|
21
|
+
const generatePolyfillURL = require('./index.js');
|
22
|
+
const path = require('path');
|
23
|
+
const babel = require('@babel/core');
|
24
|
+
const plugin = require('@financial-times/js-features-analyser/src/index.js');
|
25
|
+
const fs = require('fs');
|
26
|
+
const os = require('os');
|
27
|
+
const promisify = require('util').promisify;
|
28
|
+
const readFile = promisify(fs.readFile);
|
29
|
+
const mkdtemp = promisify(fs.mkdtemp);
|
30
|
+
|
31
|
+
const promiseList = argv.file.map(async filename => {
|
32
|
+
const file = path.join(cwd, filename);
|
33
|
+
const fileContents = await readFile(file, 'utf-8');
|
34
|
+
const tempFolder = await mkdtemp(
|
35
|
+
path.join(os.tmpdir(), 'js-features-analyser')
|
36
|
+
);
|
37
|
+
const outputDestination = path.join(tempFolder, 'features.json');
|
38
|
+
|
39
|
+
try {
|
40
|
+
babel.transformSync(fileContents, {
|
41
|
+
plugins: [
|
42
|
+
[
|
43
|
+
plugin,
|
44
|
+
{
|
45
|
+
outputDestination,
|
46
|
+
},
|
47
|
+
],
|
48
|
+
],
|
49
|
+
filename: file,
|
50
|
+
ast: false,
|
51
|
+
code: false,
|
52
|
+
});
|
53
|
+
|
54
|
+
return JSON.parse(fs.readFileSync(outputDestination, 'utf-8'));
|
55
|
+
} catch (error) {
|
56
|
+
if (error instanceof SyntaxError) {
|
57
|
+
console.error(
|
58
|
+
'Failed to parse the JavaScript from xxx because it has a syntax error.'
|
59
|
+
);
|
60
|
+
delete error.stack;
|
61
|
+
delete error.code;
|
62
|
+
delete error.pos;
|
63
|
+
delete error.loc;
|
64
|
+
const result = /: (?<errorType>[\w ]+) \((?<position>\d+:\d+)\)/.exec(
|
65
|
+
error.message
|
66
|
+
);
|
67
|
+
console.error(result.groups.errorType);
|
68
|
+
error.message = error.message.replace(
|
69
|
+
` ${result.groups.errorType} `,
|
70
|
+
''
|
71
|
+
);
|
72
|
+
error.message = error.message.replace(
|
73
|
+
`(${result.groups.position})`,
|
74
|
+
result.groups.position
|
75
|
+
);
|
76
|
+
console.error(error.message);
|
77
|
+
} else {
|
78
|
+
console.error(
|
79
|
+
'Failed to parse the JavaScript from xxx because an error occured:'
|
80
|
+
);
|
81
|
+
console.error(error);
|
82
|
+
}
|
83
|
+
}
|
84
|
+
});
|
85
|
+
|
86
|
+
const resultList = await Promise.all(promiseList);
|
87
|
+
const featureList = resultList.reduce(
|
88
|
+
(carry, item) => [...carry, ...item],
|
89
|
+
[]
|
90
|
+
);
|
91
|
+
|
92
|
+
const clonedFeatureList = [...featureList];
|
93
|
+
|
94
|
+
for (const feature of clonedFeatureList) {
|
95
|
+
const parts = feature.split('.');
|
96
|
+
if (parts.length >= 2 && parts[1] === 'prototype') {
|
97
|
+
if (parts[0] === 'Document') {
|
98
|
+
parts[0] = parts[0].toLowerCase();
|
99
|
+
}
|
100
|
+
else if (parts[0] === 'element') {
|
101
|
+
parts[0] = parts[0].toUpperCase();
|
102
|
+
}
|
103
|
+
parts[0] = parts[0].toLowerCase();
|
104
|
+
featureList.push(parts[0] + '.' + parts.slice(2).join('.'))
|
105
|
+
}
|
106
|
+
}
|
107
|
+
|
108
|
+
const filteredFeatureList = featureList.filter((feat) => !omitList.includes(feat))
|
109
|
+
const uniqueFeatureList = [...new Set(filteredFeatureList)];
|
110
|
+
|
111
|
+
const result = await generatePolyfillURL(uniqueFeatureList, browsers, hostname, flags, useComputeAtEdgeBackend, unknown);
|
112
|
+
|
113
|
+
if (result.type === generatePolyfillURL.TYPE_URL) {
|
114
|
+
console.log(result.message);
|
115
|
+
} else if (result.type === generatePolyfillURL.TYPE_NOTHING) {
|
116
|
+
console.error(result.message);
|
117
|
+
}
|
118
|
+
|
119
|
+
return result;
|
120
|
+
};
|
package/src/index.js
CHANGED
@@ -62,11 +62,18 @@ function normaliseBrowsers(browsers) {
|
|
62
62
|
a => a.split(" ")
|
63
63
|
);
|
64
64
|
}
|
65
|
-
async function generatePolyfillURL(
|
65
|
+
async function generatePolyfillURL(
|
66
|
+
features = [],
|
67
|
+
supportedBrowsers = [],
|
68
|
+
hostname = "polyfill.io",
|
69
|
+
flags = null,
|
70
|
+
useComputeAtEdgeBackend = null,
|
71
|
+
unknown = null
|
72
|
+
) {
|
66
73
|
if (supportedBrowsers) {
|
67
74
|
supportedBrowsers = normaliseBrowsers(supportedBrowsers);
|
68
75
|
}
|
69
|
-
const polyfillUrl =
|
76
|
+
const polyfillUrl = new URL('/v3/polyfill.min.js', 'https://' + hostname);
|
70
77
|
const aliases = await polyfillLibrary.listAliases();
|
71
78
|
const polyfills = await polyfillLibrary.listAllPolyfills();
|
72
79
|
const featuresInPolyfillLibrary = new Set();
|
@@ -156,12 +163,26 @@ async function generatePolyfillURL(features = [], supportedBrowsers = []) {
|
|
156
163
|
type: TYPE_NOTHING,
|
157
164
|
message: "You do not need to use polyfill.io as all your supported browsers support all the features your website currently uses."
|
158
165
|
};
|
159
|
-
} else {
|
160
|
-
return {
|
161
|
-
type: TYPE_URL,
|
162
|
-
message: `${polyfillUrl}?features=${sortedFeatures.join(",")}`
|
163
|
-
}
|
164
166
|
}
|
167
|
+
|
168
|
+
polyfillUrl.searchParams.set("features", sortedFeatures.join(","));
|
169
|
+
|
170
|
+
if (flags) {
|
171
|
+
polyfillUrl.searchParams.set("flags", Array.isArray(flags) ? flags.join(",") : flags);
|
172
|
+
}
|
173
|
+
|
174
|
+
if (useComputeAtEdgeBackend) {
|
175
|
+
polyfillUrl.searchParams.set("use-compute-at-edge-backend", useComputeAtEdgeBackend);
|
176
|
+
}
|
177
|
+
|
178
|
+
if (unknown) {
|
179
|
+
polyfillUrl.searchParams.set("unknown", unknown);
|
180
|
+
}
|
181
|
+
|
182
|
+
return {
|
183
|
+
type: TYPE_URL,
|
184
|
+
message: polyfillUrl.toString().replace(/%2C/g, ",")
|
185
|
+
};
|
165
186
|
}
|
166
187
|
|
167
188
|
module.exports = generatePolyfillURL;
|
package/.eslintrc.js
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
module.exports = {
|
2
|
-
"env": {
|
3
|
-
"commonjs": true,
|
4
|
-
"es6": true,
|
5
|
-
"node": true
|
6
|
-
},
|
7
|
-
"extends": "eslint:recommended",
|
8
|
-
"globals": {
|
9
|
-
"Atomics": "readonly",
|
10
|
-
"SharedArrayBuffer": "readonly"
|
11
|
-
},
|
12
|
-
"parserOptions": {
|
13
|
-
"ecmaVersion": 2018
|
14
|
-
},
|
15
|
-
"rules": {
|
16
|
-
}
|
17
|
-
};
|
package/.github/CODEOWNERS
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
# The Origami Core team is the default owner of all Origami-supported repositories.
|
2
|
-
# This file adds the owner as a reviewer for all pull requests made to this repository.
|
3
|
-
# It references owners by source order - the last matching pattern takes the most precedence.
|
4
|
-
|
5
|
-
# If you would like to be added as an owner, please get in touch with the Origami team at origami.support@ft.com or #origami-support on Slack
|
6
|
-
|
7
|
-
* @Financial-Times/origami-core
|
@@ -1,37 +0,0 @@
|
|
1
|
-
---
|
2
|
-
title: Issue: [type] [short description]
|
3
|
-
---
|
4
|
-
<!-- [type]: What is this issue for? A bug report? A feature request? -->
|
5
|
-
|
6
|
-
<!--
|
7
|
-
Please make sure you've checked that your issue hasn't already been raised within this repository.
|
8
|
-
|
9
|
-
If you need help with submitting an issue, please get in touch with the Origami Team at origami.support@ft.com or #origami-support on Slack.
|
10
|
-
-->
|
11
|
-
## What
|
12
|
-
<!-- A clear description of what the problem or feature request is -->
|
13
|
-
|
14
|
-
## Details
|
15
|
-
<!--
|
16
|
-
If it is a bug:
|
17
|
-
- describe what the expected behaviour is, and what is actually happening
|
18
|
-
- add steps on how to reproduce it
|
19
|
-
- describe the environment you are having this problem in
|
20
|
-
- Browser + version (e.g. Chrome 70)
|
21
|
-
- Device (e.g. iPhone X, Desktop)
|
22
|
-
- provide screenshots to illustrate your problem
|
23
|
-
|
24
|
-
If it is a feature request:
|
25
|
-
- explain what prompted this request — e.g. is it something that you regularly make a workaround for?
|
26
|
-
- describe what the new feature would do and how it would be used
|
27
|
-
- explain what alternatives you have explored / considered
|
28
|
-
- where possible, attach designs for the style of the new feature
|
29
|
-
-->
|
30
|
-
|
31
|
-
<!--
|
32
|
-
## Additional information
|
33
|
-
For either type of issue:
|
34
|
-
- please add any other comments or details you might have
|
35
|
-
- if you've had a conversation about this with someone, please reference that person in this issue
|
36
|
-
- if there is a similar or related issue, please link to it
|
37
|
-
-->
|
package/.github/dependabot.yml
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
version: 2
|
2
|
-
updates:
|
3
|
-
# Maintain dependencies for npm
|
4
|
-
- package-ecosystem: "npm"
|
5
|
-
open-pull-requests-limit: 1
|
6
|
-
directory: "/"
|
7
|
-
schedule:
|
8
|
-
interval: "daily"
|
9
|
-
allow:
|
10
|
-
- dependency-type: "development"
|
11
|
-
labels:
|
12
|
-
- "dependencies"
|
13
|
-
ignore:
|
14
|
-
- dependency-name: "snyk"
|
15
|
-
# Maintain dependencies for GitHub Actions
|
16
|
-
- package-ecosystem: "github-actions"
|
17
|
-
directory: "/"
|
18
|
-
schedule:
|
19
|
-
interval: "daily"
|
20
|
-
labels:
|
21
|
-
- "dependencies"
|
@@ -1,16 +0,0 @@
|
|
1
|
-
name: Add new issues and pull requests to Origami Project Board
|
2
|
-
on:
|
3
|
-
- issues
|
4
|
-
- pull_request_target
|
5
|
-
- pull_request
|
6
|
-
|
7
|
-
jobs:
|
8
|
-
origami_project_board_job:
|
9
|
-
runs-on: ubuntu-latest
|
10
|
-
name: Add new issue or pull request to Origami Project Board
|
11
|
-
steps:
|
12
|
-
- name: Add new issue or pull request to Origami Project Board
|
13
|
-
id: origami-project-board
|
14
|
-
uses: Financial-Times/origami-project-board-action@v1
|
15
|
-
with:
|
16
|
-
origami-fox-access-token: ${{ secrets.ORIGAMI_FOX_ACCESS_TOKEN }}
|
@@ -1,14 +0,0 @@
|
|
1
|
-
name: Apply Origami labels
|
2
|
-
on:
|
3
|
-
- issues
|
4
|
-
- pull_request_target
|
5
|
-
- pull_request
|
6
|
-
jobs:
|
7
|
-
apply-labels:
|
8
|
-
runs-on: ubuntu-latest
|
9
|
-
name: Apply Origami labels to new issues and pull requests.
|
10
|
-
steps:
|
11
|
-
- uses: actions/checkout@v2
|
12
|
-
- uses: Financial-Times/origami-apply-labels@v1
|
13
|
-
with:
|
14
|
-
github-token: ${{ secrets.GITHUB_TOKEN }}
|
@@ -1,12 +0,0 @@
|
|
1
|
-
name: Auto Approve Dependabot PRs
|
2
|
-
|
3
|
-
on: pull_request
|
4
|
-
|
5
|
-
jobs:
|
6
|
-
auto-approve:
|
7
|
-
runs-on: ubuntu-latest
|
8
|
-
steps:
|
9
|
-
- uses: hmarr/auto-approve-action@v2.0.0
|
10
|
-
if: github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]'
|
11
|
-
with:
|
12
|
-
github-token: "${{ secrets.ORIGAMI_FOX_ACCESS_TOKEN }}"
|
@@ -1,22 +0,0 @@
|
|
1
|
-
on:
|
2
|
-
pull_request:
|
3
|
-
types: [closed] # Merged pull-requests count as closed pull-requests.
|
4
|
-
|
5
|
-
jobs:
|
6
|
-
create-new-version:
|
7
|
-
runs-on: ubuntu-latest
|
8
|
-
name: Create new version/tag
|
9
|
-
steps:
|
10
|
-
- uses: actions/checkout@v2
|
11
|
-
if: github.event.pull_request.merged # Only run on merged pull-requests
|
12
|
-
with:
|
13
|
-
ref: ${{ github.event.pull_request.merge_commit_sha }} # Checkout the merged commit
|
14
|
-
fetch-depth: 0
|
15
|
-
token: ${{ secrets.ORIGAMI_VERSION_TOKEN }}
|
16
|
-
- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* # Get all tags from the origin
|
17
|
-
if: github.event.pull_request.merged # Only run on merged pull-requests
|
18
|
-
- uses: Financial-Times/origami-version@v1.2.0
|
19
|
-
name: Create new version/tag
|
20
|
-
if: github.event.pull_request.merged # Only run on merged pull-requests
|
21
|
-
with:
|
22
|
-
github-token: ${{ secrets.ORIGAMI_GITHUB_TOKEN }}
|
@@ -1,40 +0,0 @@
|
|
1
|
-
name: automerge
|
2
|
-
on:
|
3
|
-
pull_request:
|
4
|
-
types:
|
5
|
-
- labeled
|
6
|
-
- unlabeled
|
7
|
-
- synchronize
|
8
|
-
- opened
|
9
|
-
- edited
|
10
|
-
- ready_for_review
|
11
|
-
- reopened
|
12
|
-
- unlocked
|
13
|
-
pull_request_review:
|
14
|
-
types:
|
15
|
-
- submitted
|
16
|
-
check_suite:
|
17
|
-
types:
|
18
|
-
- completed
|
19
|
-
status: {}
|
20
|
-
jobs:
|
21
|
-
automerge:
|
22
|
-
runs-on: ubuntu-latest
|
23
|
-
if: github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]'
|
24
|
-
timeout-minutes: 120
|
25
|
-
steps:
|
26
|
-
- name: 'Wait for status checks'
|
27
|
-
id: waitforstatuschecks
|
28
|
-
uses: "WyriHaximus/github-action-wait-for-status@v1.3"
|
29
|
-
with:
|
30
|
-
ignoreActions: automerge
|
31
|
-
checkInterval: 13
|
32
|
-
env:
|
33
|
-
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
34
|
-
- name: automerge
|
35
|
-
uses: "pascalgn/automerge-action@v0.13.0"
|
36
|
-
env:
|
37
|
-
GITHUB_TOKEN: "${{ secrets.ORIGAMI_GITHUB_TOKEN }}"
|
38
|
-
MERGE_LABELS: "dependencies"
|
39
|
-
MERGE_METHOD: "rebase"
|
40
|
-
MERGE_FORKS: "false"
|
@@ -1,22 +0,0 @@
|
|
1
|
-
name: npm audit fix
|
2
|
-
|
3
|
-
on:
|
4
|
-
schedule:
|
5
|
-
- cron: 0 0 * * * # Runs at 00:00 UTC every day
|
6
|
-
|
7
|
-
# on:
|
8
|
-
# push:
|
9
|
-
# branches:
|
10
|
-
# - master
|
11
|
-
|
12
|
-
jobs:
|
13
|
-
run:
|
14
|
-
runs-on: ubuntu-latest
|
15
|
-
steps:
|
16
|
-
- uses: actions/checkout@v2
|
17
|
-
- uses: ybiquitous/npm-audit-fix-action@v2.1.6
|
18
|
-
with:
|
19
|
-
github_token: ${{ secrets.ORIGAMI_GITHUB_TOKEN }}
|
20
|
-
# branch: "npm-audit-fix"
|
21
|
-
# default_branch: master
|
22
|
-
# commit_title: "chore(deps): npm audit fix"
|
@@ -1,22 +0,0 @@
|
|
1
|
-
name: Publish to npm as latest version
|
2
|
-
on:
|
3
|
-
push:
|
4
|
-
tags:
|
5
|
-
- 'v[0-9]+.[0-9]+.[0-9]+' # non-prerelease tag
|
6
|
-
jobs:
|
7
|
-
publish-latest:
|
8
|
-
runs-on: ubuntu-latest
|
9
|
-
steps:
|
10
|
-
- uses: actions/checkout@v2
|
11
|
-
- uses: actions/setup-node@v2.1.4
|
12
|
-
with:
|
13
|
-
node-version: '12.x'
|
14
|
-
registry-url: 'https://registry.npmjs.org'
|
15
|
-
- run: npm ci
|
16
|
-
- name: Get the version
|
17
|
-
id: version
|
18
|
-
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
|
19
|
-
- run: npm version --no-git-tag-version ${{ steps.version.outputs.VERSION }}
|
20
|
-
- run: npm publish
|
21
|
-
env:
|
22
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
@@ -1,22 +0,0 @@
|
|
1
|
-
name: Publish to npm as prerelease version
|
2
|
-
on:
|
3
|
-
push:
|
4
|
-
tags:
|
5
|
-
- 'v[0-9]+.[0-9]+.[0-9]+-*' # prerelease tag
|
6
|
-
jobs:
|
7
|
-
publish-prerelease:
|
8
|
-
runs-on: ubuntu-latest
|
9
|
-
steps:
|
10
|
-
- uses: actions/checkout@v2
|
11
|
-
- uses: actions/setup-node@v2.1.4
|
12
|
-
with:
|
13
|
-
node-version: '12.x'
|
14
|
-
registry-url: 'https://registry.npmjs.org'
|
15
|
-
- run: npm ci
|
16
|
-
- name: Get the version
|
17
|
-
id: version
|
18
|
-
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
|
19
|
-
- run: npm version --no-git-tag-version ${{ steps.version.outputs.VERSION }}
|
20
|
-
- run: npm publish --tag prerelease
|
21
|
-
env:
|
22
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
name: Sync Origami labels
|
2
|
-
on:
|
3
|
-
- issues
|
4
|
-
- pull_request_target
|
5
|
-
- pull_request
|
6
|
-
jobs:
|
7
|
-
sync-labels:
|
8
|
-
runs-on: ubuntu-latest
|
9
|
-
name: Sync repository labels
|
10
|
-
steps:
|
11
|
-
- uses: Financial-Times/origami-labels@v1
|
12
|
-
with:
|
13
|
-
github-token: ${{ secrets.GITHUB_TOKEN }}
|
package/.snyk
DELETED
@@ -1,170 +0,0 @@
|
|
1
|
-
# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.
|
2
|
-
version: v1.14.1
|
3
|
-
ignore: {}
|
4
|
-
# patches apply the minimum changes required to fix a vulnerability
|
5
|
-
patch:
|
6
|
-
SNYK-JS-LODASH-567746:
|
7
|
-
- '@babel/core > lodash':
|
8
|
-
patched: '2020-05-06T18:55:45.980Z'
|
9
|
-
- '@babel/core > @babel/types > lodash':
|
10
|
-
patched: '2020-05-06T18:55:45.980Z'
|
11
|
-
- '@babel/core > @babel/generator > lodash':
|
12
|
-
patched: '2020-05-06T18:55:45.980Z'
|
13
|
-
- '@babel/core > @babel/traverse > lodash':
|
14
|
-
patched: '2020-05-06T18:55:45.980Z'
|
15
|
-
- '@babel/core > @babel/helper-module-transforms > lodash':
|
16
|
-
patched: '2020-05-06T18:55:45.980Z'
|
17
|
-
- '@financial-times/js-features-analyser > @babel/core > lodash':
|
18
|
-
patched: '2020-05-06T18:55:45.980Z'
|
19
|
-
- '@babel/core > @babel/generator > @babel/types > lodash':
|
20
|
-
patched: '2020-05-06T18:55:45.980Z'
|
21
|
-
- '@babel/core > @babel/traverse > @babel/types > lodash':
|
22
|
-
patched: '2020-05-06T18:55:45.980Z'
|
23
|
-
- '@babel/core > @babel/template > @babel/types > lodash':
|
24
|
-
patched: '2020-05-06T18:55:45.980Z'
|
25
|
-
- '@babel/core > @babel/helper-module-transforms > @babel/types > lodash':
|
26
|
-
patched: '2020-05-06T18:55:45.980Z'
|
27
|
-
- '@babel/core > @babel/helpers > @babel/types > lodash':
|
28
|
-
patched: '2020-05-06T18:55:45.980Z'
|
29
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/types > lodash':
|
30
|
-
patched: '2020-05-06T18:55:45.980Z'
|
31
|
-
- '@babel/core > @babel/traverse > @babel/generator > lodash':
|
32
|
-
patched: '2020-05-06T18:55:45.980Z'
|
33
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/generator > lodash':
|
34
|
-
patched: '2020-05-06T18:55:45.980Z'
|
35
|
-
- '@babel/core > @babel/helpers > @babel/traverse > lodash':
|
36
|
-
patched: '2020-05-06T18:55:45.980Z'
|
37
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/traverse > lodash':
|
38
|
-
patched: '2020-05-06T18:55:45.980Z'
|
39
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helper-module-transforms > lodash':
|
40
|
-
patched: '2020-05-06T18:55:45.980Z'
|
41
|
-
- '@babel/core > @babel/traverse > @babel/generator > @babel/types > lodash':
|
42
|
-
patched: '2020-05-06T18:55:45.980Z'
|
43
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/generator > @babel/types > lodash':
|
44
|
-
patched: '2020-05-06T18:55:45.980Z'
|
45
|
-
- '@babel/core > @babel/traverse > @babel/helper-function-name > @babel/types > lodash':
|
46
|
-
patched: '2020-05-06T18:55:45.980Z'
|
47
|
-
- '@babel/core > @babel/helpers > @babel/traverse > @babel/types > lodash':
|
48
|
-
patched: '2020-05-06T18:55:45.980Z'
|
49
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/traverse > @babel/types > lodash':
|
50
|
-
patched: '2020-05-06T18:55:45.980Z'
|
51
|
-
- '@babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/types > lodash':
|
52
|
-
patched: '2020-05-06T18:55:45.980Z'
|
53
|
-
- '@babel/core > @babel/helper-module-transforms > @babel/template > @babel/types > lodash':
|
54
|
-
patched: '2020-05-06T18:55:45.980Z'
|
55
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/template > @babel/types > lodash':
|
56
|
-
patched: '2020-05-06T18:55:45.980Z'
|
57
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helper-module-transforms > @babel/types > lodash':
|
58
|
-
patched: '2020-05-06T18:55:45.980Z'
|
59
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helpers > @babel/types > lodash':
|
60
|
-
patched: '2020-05-06T18:55:45.980Z'
|
61
|
-
- '@babel/core > @babel/helpers > @babel/traverse > @babel/generator > lodash':
|
62
|
-
patched: '2020-05-06T18:55:45.980Z'
|
63
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/traverse > @babel/generator > lodash':
|
64
|
-
patched: '2020-05-06T18:55:45.980Z'
|
65
|
-
- '@babel/core > @babel/helper-module-transforms > @babel/helper-module-imports > @babel/types > lodash':
|
66
|
-
patched: '2020-05-06T18:55:45.980Z'
|
67
|
-
- '@babel/core > @babel/helpers > @babel/template > @babel/types > lodash':
|
68
|
-
patched: '2020-05-06T18:55:45.980Z'
|
69
|
-
- '@babel/core > @babel/traverse > @babel/helper-split-export-declaration > @babel/types > lodash':
|
70
|
-
patched: '2020-05-06T18:55:45.980Z'
|
71
|
-
- '@babel/core > @babel/helper-module-transforms > @babel/helper-split-export-declaration > @babel/types > lodash':
|
72
|
-
patched: '2020-05-06T18:55:45.980Z'
|
73
|
-
- '@babel/core > @babel/helper-module-transforms > @babel/helper-simple-access > @babel/types > lodash':
|
74
|
-
patched: '2020-05-06T18:55:45.980Z'
|
75
|
-
- '@babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/traverse > lodash':
|
76
|
-
patched: '2020-05-06T18:55:45.980Z'
|
77
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helpers > @babel/traverse > lodash':
|
78
|
-
patched: '2020-05-06T18:55:45.980Z'
|
79
|
-
- '@babel/core > @babel/helpers > @babel/traverse > @babel/generator > @babel/types > lodash':
|
80
|
-
patched: '2020-05-06T18:55:45.980Z'
|
81
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/traverse > @babel/generator > @babel/types > lodash':
|
82
|
-
patched: '2020-05-06T18:55:45.980Z'
|
83
|
-
- '@babel/core > @babel/helpers > @babel/traverse > @babel/helper-function-name > @babel/types > lodash':
|
84
|
-
patched: '2020-05-06T18:55:45.980Z'
|
85
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/traverse > @babel/helper-function-name > @babel/types > lodash':
|
86
|
-
patched: '2020-05-06T18:55:45.980Z'
|
87
|
-
- '@babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/traverse > @babel/types > lodash':
|
88
|
-
patched: '2020-05-06T18:55:45.980Z'
|
89
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helpers > @babel/traverse > @babel/types > lodash':
|
90
|
-
patched: '2020-05-06T18:55:45.980Z'
|
91
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/types > lodash':
|
92
|
-
patched: '2020-05-06T18:55:45.980Z'
|
93
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helper-module-transforms > @babel/template > @babel/types > lodash':
|
94
|
-
patched: '2020-05-06T18:55:45.980Z'
|
95
|
-
- '@babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/traverse > @babel/generator > lodash':
|
96
|
-
patched: '2020-05-06T18:55:45.980Z'
|
97
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helpers > @babel/traverse > @babel/generator > lodash':
|
98
|
-
patched: '2020-05-06T18:55:45.980Z'
|
99
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helper-module-transforms > @babel/helper-module-imports > @babel/types > lodash':
|
100
|
-
patched: '2020-05-06T18:55:45.980Z'
|
101
|
-
- '@babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/helper-member-expression-to-functions > @babel/types > lodash':
|
102
|
-
patched: '2020-05-06T18:55:45.980Z'
|
103
|
-
- '@babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/helper-optimise-call-expression > @babel/types > lodash':
|
104
|
-
patched: '2020-05-06T18:55:45.980Z'
|
105
|
-
- '@babel/core > @babel/traverse > @babel/helper-function-name > @babel/helper-get-function-arity > @babel/types > lodash':
|
106
|
-
patched: '2020-05-06T18:55:45.980Z'
|
107
|
-
- '@babel/core > @babel/traverse > @babel/helper-function-name > @babel/template > @babel/types > lodash':
|
108
|
-
patched: '2020-05-06T18:55:45.980Z'
|
109
|
-
- '@babel/core > @babel/helper-module-transforms > @babel/helper-simple-access > @babel/template > @babel/types > lodash':
|
110
|
-
patched: '2020-05-06T18:55:45.980Z'
|
111
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helpers > @babel/template > @babel/types > lodash':
|
112
|
-
patched: '2020-05-06T18:55:45.980Z'
|
113
|
-
- '@babel/core > @babel/helpers > @babel/traverse > @babel/helper-split-export-declaration > @babel/types > lodash':
|
114
|
-
patched: '2020-05-06T18:55:45.980Z'
|
115
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/traverse > @babel/helper-split-export-declaration > @babel/types > lodash':
|
116
|
-
patched: '2020-05-06T18:55:45.980Z'
|
117
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helper-module-transforms > @babel/helper-split-export-declaration > @babel/types > lodash':
|
118
|
-
patched: '2020-05-06T18:55:45.980Z'
|
119
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helper-module-transforms > @babel/helper-simple-access > @babel/types > lodash':
|
120
|
-
patched: '2020-05-06T18:55:45.980Z'
|
121
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/traverse > lodash':
|
122
|
-
patched: '2020-05-06T18:55:45.980Z'
|
123
|
-
- '@babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/traverse > @babel/generator > @babel/types > lodash':
|
124
|
-
patched: '2020-05-06T18:55:45.980Z'
|
125
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helpers > @babel/traverse > @babel/generator > @babel/types > lodash':
|
126
|
-
patched: '2020-05-06T18:55:45.980Z'
|
127
|
-
- '@babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/traverse > @babel/helper-function-name > @babel/types > lodash':
|
128
|
-
patched: '2020-05-06T18:55:45.980Z'
|
129
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helpers > @babel/traverse > @babel/helper-function-name > @babel/types > lodash':
|
130
|
-
patched: '2020-05-06T18:55:45.980Z'
|
131
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/traverse > @babel/types > lodash':
|
132
|
-
patched: '2020-05-06T18:55:45.980Z'
|
133
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/traverse > @babel/generator > lodash':
|
134
|
-
patched: '2020-05-06T18:55:45.980Z'
|
135
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/helper-member-expression-to-functions > @babel/types > lodash':
|
136
|
-
patched: '2020-05-06T18:55:45.980Z'
|
137
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/helper-optimise-call-expression > @babel/types > lodash':
|
138
|
-
patched: '2020-05-06T18:55:45.980Z'
|
139
|
-
- '@babel/core > @babel/helpers > @babel/traverse > @babel/helper-function-name > @babel/helper-get-function-arity > @babel/types > lodash':
|
140
|
-
patched: '2020-05-06T18:55:45.980Z'
|
141
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/traverse > @babel/helper-function-name > @babel/helper-get-function-arity > @babel/types > lodash':
|
142
|
-
patched: '2020-05-06T18:55:45.980Z'
|
143
|
-
- '@babel/core > @babel/helpers > @babel/traverse > @babel/helper-function-name > @babel/template > @babel/types > lodash':
|
144
|
-
patched: '2020-05-06T18:55:45.980Z'
|
145
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/traverse > @babel/helper-function-name > @babel/template > @babel/types > lodash':
|
146
|
-
patched: '2020-05-06T18:55:45.980Z'
|
147
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helper-module-transforms > @babel/helper-simple-access > @babel/template > @babel/types > lodash':
|
148
|
-
patched: '2020-05-06T18:55:45.980Z'
|
149
|
-
- '@babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/traverse > @babel/helper-split-export-declaration > @babel/types > lodash':
|
150
|
-
patched: '2020-05-06T18:55:45.980Z'
|
151
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helpers > @babel/traverse > @babel/helper-split-export-declaration > @babel/types > lodash':
|
152
|
-
patched: '2020-05-06T18:55:45.980Z'
|
153
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/traverse > @babel/generator > @babel/types > lodash':
|
154
|
-
patched: '2020-05-06T18:55:45.980Z'
|
155
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/traverse > @babel/helper-function-name > @babel/types > lodash':
|
156
|
-
patched: '2020-05-06T18:55:45.980Z'
|
157
|
-
- '@babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/traverse > @babel/helper-function-name > @babel/helper-get-function-arity > @babel/types > lodash':
|
158
|
-
patched: '2020-05-06T18:55:45.980Z'
|
159
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helpers > @babel/traverse > @babel/helper-function-name > @babel/helper-get-function-arity > @babel/types > lodash':
|
160
|
-
patched: '2020-05-06T18:55:45.980Z'
|
161
|
-
- '@babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/traverse > @babel/helper-function-name > @babel/template > @babel/types > lodash':
|
162
|
-
patched: '2020-05-06T18:55:45.980Z'
|
163
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helpers > @babel/traverse > @babel/helper-function-name > @babel/template > @babel/types > lodash':
|
164
|
-
patched: '2020-05-06T18:55:45.980Z'
|
165
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/traverse > @babel/helper-split-export-declaration > @babel/types > lodash':
|
166
|
-
patched: '2020-05-06T18:55:45.980Z'
|
167
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/traverse > @babel/helper-function-name > @babel/helper-get-function-arity > @babel/types > lodash':
|
168
|
-
patched: '2020-05-06T18:55:45.980Z'
|
169
|
-
- '@financial-times/js-features-analyser > @babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/traverse > @babel/helper-function-name > @babel/template > @babel/types > lodash':
|
170
|
-
patched: '2020-05-06T18:55:45.980Z'
|
package/origami.json
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"description": "Analyse your JavaScript file and generate a polyfill.io URL based on all the features that are being used from within the JavaScript file.",
|
3
|
-
"origamiType": "cli",
|
4
|
-
"origamiVersion": 1,
|
5
|
-
"keywords": [
|
6
|
-
"polyfills",
|
7
|
-
"bundle",
|
8
|
-
"generator",
|
9
|
-
"analysis"
|
10
|
-
],
|
11
|
-
"support": "https://github.com/Financial-Times/polyfill-service-url-builder/issues",
|
12
|
-
"supportStatus": "active",
|
13
|
-
"supportContact": {
|
14
|
-
"email": "origami.support@ft.com",
|
15
|
-
"slack": "financialtimes/origami-support"
|
16
|
-
}
|
17
|
-
}
|
package/test/index.test.js
DELETED
@@ -1,66 +0,0 @@
|
|
1
|
-
/* eslint-env jest */
|
2
|
-
|
3
|
-
const generatePolyfillURL = require('../src/index');
|
4
|
-
|
5
|
-
test('Adds a feature to the features querystring if it exists in polyfill-library', async () => {
|
6
|
-
const expected = 'https://polyfill.io/v3/polyfill.min.js?features=Array.prototype.forEach';
|
7
|
-
const actual = await generatePolyfillURL(["Array.prototype.forEach"])
|
8
|
-
expect(actual.message).toEqual(expected);
|
9
|
-
});
|
10
|
-
|
11
|
-
test('Does not add duplicated features to the features querystring', async () => {
|
12
|
-
const expected = 'https://polyfill.io/v3/polyfill.min.js?features=Array.prototype.forEach';
|
13
|
-
const actual = await generatePolyfillURL(["Array.prototype.forEach", "Array.prototype.forEach"])
|
14
|
-
expect(actual.message).toEqual(expected);
|
15
|
-
});
|
16
|
-
|
17
|
-
test('Does not add features to the features querystring which do not exist in polyfill-library', async () => {
|
18
|
-
const expected = 'https://polyfill.io/v3/polyfill.min.js?features=Array.prototype.forEach';
|
19
|
-
const actual = await generatePolyfillURL(["Array.prototype.forEach", "Carrot"])
|
20
|
-
expect(actual.message).toEqual(expected);
|
21
|
-
});
|
22
|
-
|
23
|
-
test('Adds a feature to the features querystring if it exists as an alias of a polyfill from within polyfill-library', async () => {
|
24
|
-
const expected = 'https://polyfill.io/v3/polyfill.min.js?features=ArrayBuffer';
|
25
|
-
const actual = await generatePolyfillURL(["ArrayBuffer"])
|
26
|
-
expect(actual.message).toEqual(expected);
|
27
|
-
});
|
28
|
-
|
29
|
-
test('Adds an alias to the features querystring if it matches multiple features and does not includes polyfill which are not in the features array', async () => {
|
30
|
-
const expected = 'https://polyfill.io/v3/polyfill.min.js?features=es2017';
|
31
|
-
const actual = await generatePolyfillURL(["Object.entries",
|
32
|
-
"Object.getOwnPropertyDescriptors",
|
33
|
-
"Object.values",
|
34
|
-
"String.prototype.padEnd",
|
35
|
-
"String.prototype.padStart"
|
36
|
-
])
|
37
|
-
expect(actual.message).toEqual(expected);
|
38
|
-
});
|
39
|
-
|
40
|
-
test('Adds the constructor of a feature to the features querystring if the specific feature does not exist from within polyfill-library', async () => {
|
41
|
-
const expected = 'https://polyfill.io/v3/polyfill.min.js?features=DOMTokenList';
|
42
|
-
const actual = await generatePolyfillURL([
|
43
|
-
"DOMTokenList.prototype.add"
|
44
|
-
]);
|
45
|
-
expect(actual.message).toEqual(expected);
|
46
|
-
});
|
47
|
-
|
48
|
-
test('Sorts the features in alphabetical order to make spotting changes when updating the url simpler', async () => {
|
49
|
-
const expected = 'https://polyfill.io/v3/polyfill.min.js?features=Array.from,DOMTokenList,fetch,String.prototype.padStart,WeakSet';
|
50
|
-
const actual = await generatePolyfillURL([
|
51
|
-
"String.prototype.padStart",
|
52
|
-
"fetch",
|
53
|
-
"WeakSet.prototype.delete",
|
54
|
-
"DOMTokenList.prototype.add",
|
55
|
-
"Array.from"
|
56
|
-
]);
|
57
|
-
expect(actual.message).toEqual(expected);
|
58
|
-
});
|
59
|
-
|
60
|
-
test('Accepts a browserlist array', async () => {
|
61
|
-
const expected = 'https://polyfill.io/v3/polyfill.min.js?features=Array.from';
|
62
|
-
const actual = await generatePolyfillURL([
|
63
|
-
"Array.from"
|
64
|
-
], ["op_mini *"]);
|
65
|
-
expect(actual.message).toEqual(expected);
|
66
|
-
});
|