@percy/cli-config 1.0.0-beta.76 → 1.0.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@percy/cli-config",
3
- "version": "1.0.0-beta.76",
3
+ "version": "1.0.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -10,13 +10,15 @@
10
10
  "publishConfig": {
11
11
  "access": "public"
12
12
  },
13
- "main": "dist/index.js",
14
- "files": [
15
- "dist"
16
- ],
17
13
  "engines": {
18
- "node": ">=12"
14
+ "node": ">=14"
19
15
  },
16
+ "files": [
17
+ "./dist"
18
+ ],
19
+ "main": "./dist/index.js",
20
+ "type": "module",
21
+ "exports": "./dist/index.js",
20
22
  "scripts": {
21
23
  "build": "node ../../scripts/build",
22
24
  "lint": "eslint --ignore-path ../../.gitignore .",
@@ -30,8 +32,7 @@
30
32
  ]
31
33
  },
32
34
  "dependencies": {
33
- "@percy/cli-command": "1.0.0-beta.76",
34
- "@percy/config": "1.0.0-beta.76"
35
+ "@percy/cli-command": "1.0.0"
35
36
  },
36
- "gitHead": "445af68d8e270e2a35fc74e26422ed5d3c91d2ae"
37
+ "gitHead": "6df509421a60144e4f9f5d59dc57a5675372a0b2"
37
38
  }
package/dist/config.js DELETED
@@ -1,24 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = exports.config = void 0;
7
-
8
- var _cliCommand = _interopRequireDefault(require("@percy/cli-command"));
9
-
10
- var _create = _interopRequireDefault(require("./create"));
11
-
12
- var _validate = _interopRequireDefault(require("./validate"));
13
-
14
- var _migrate = _interopRequireDefault(require("./migrate"));
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- const config = (0, _cliCommand.default)('config', {
19
- description: 'Manage Percy config files',
20
- commands: [_create.default, _validate.default, _migrate.default]
21
- });
22
- exports.config = config;
23
- var _default = config;
24
- exports.default = _default;
package/dist/create.js DELETED
@@ -1,93 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = exports.create = void 0;
7
-
8
- var _fs = _interopRequireDefault(require("fs"));
9
-
10
- var _path = _interopRequireDefault(require("path"));
11
-
12
- var _cliCommand = _interopRequireDefault(require("@percy/cli-command"));
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
-
18
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
-
20
- const DEFAULT_FILES = {
21
- rc: '.percyrc',
22
- yaml: '.percy.yaml',
23
- yml: '.percy.yml',
24
- json: '.percy.json',
25
- js: '.percy.js'
26
- };
27
- const FILETYPES = Object.keys(DEFAULT_FILES);
28
- const create = (0, _cliCommand.default)('create', {
29
- description: 'Create a Percy config file',
30
- args: [{
31
- name: 'filepath',
32
- description: 'Optional config filepath'
33
- }],
34
- flags: [{
35
- name: 'rc',
36
- description: 'Create a .percyrc file',
37
- conflicts: FILETYPES.filter(t => t !== 'rc'),
38
- type: 'boolean'
39
- }, {
40
- name: 'yaml',
41
- description: 'Create a .percy.yaml file',
42
- conflicts: FILETYPES.filter(t => t !== 'yaml'),
43
- type: 'boolean'
44
- }, {
45
- name: 'yml',
46
- description: 'Create a .percy.yml file',
47
- conflicts: FILETYPES.filter(t => t !== 'yml'),
48
- type: 'boolean'
49
- }, {
50
- name: 'json',
51
- description: 'Create a .percy.json file',
52
- conflicts: FILETYPES.filter(t => t !== 'json'),
53
- type: 'boolean'
54
- }, {
55
- name: 'js',
56
- description: 'Create a .percy.js file',
57
- conflicts: FILETYPES.filter(t => t !== 'js'),
58
- type: 'boolean'
59
- }],
60
- examples: ['$0', '$0 --yaml', '$0 --json', '$0 --js', '$0 --rc', '$0 ./config/percy.yml']
61
- }, async ({
62
- flags,
63
- args,
64
- log,
65
- exit
66
- }) => {
67
- var _FILETYPES$find;
68
-
69
- let PercyConfig = await Promise.resolve().then(() => _interopRequireWildcard(require('@percy/config'))); // discern the filetype
70
-
71
- let filetype = args.filepath ? _path.default.extname(args.filepath).replace(/^./, '') : (_FILETYPES$find = FILETYPES.find(t => flags[t])) !== null && _FILETYPES$find !== void 0 ? _FILETYPES$find : 'yml'; // verify the filetype is supported
72
-
73
- if (!DEFAULT_FILES[filetype]) {
74
- exit(1, `Unsupported filetype: ${filetype}`);
75
- } // default filepath based on filetype
76
-
77
-
78
- let filepath = args.filepath || DEFAULT_FILES[filetype]; // verify the file does not already exist
79
-
80
- if (_fs.default.existsSync(filepath)) {
81
- exit(1, `Percy config already exists: ${filepath}`);
82
- } // write stringified default config options to the filepath
83
-
84
-
85
- let format = ['rc', 'yaml', 'yml'].includes(filetype) ? 'yaml' : filetype;
86
-
87
- _fs.default.writeFileSync(filepath, PercyConfig.stringify(format));
88
-
89
- log.info(`Created Percy config: ${filepath}`);
90
- });
91
- exports.create = create;
92
- var _default = create;
93
- exports.default = _default;
package/dist/index.js DELETED
@@ -1,47 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "config", {
7
- enumerable: true,
8
- get: function () {
9
- return _config.config;
10
- }
11
- });
12
- Object.defineProperty(exports, "create", {
13
- enumerable: true,
14
- get: function () {
15
- return _create.create;
16
- }
17
- });
18
- Object.defineProperty(exports, "default", {
19
- enumerable: true,
20
- get: function () {
21
- return _config.default;
22
- }
23
- });
24
- Object.defineProperty(exports, "migrate", {
25
- enumerable: true,
26
- get: function () {
27
- return _migrate.migrate;
28
- }
29
- });
30
- Object.defineProperty(exports, "validate", {
31
- enumerable: true,
32
- get: function () {
33
- return _validate.validate;
34
- }
35
- });
36
-
37
- var _config = _interopRequireWildcard(require("./config"));
38
-
39
- var _create = require("./create");
40
-
41
- var _validate = require("./validate");
42
-
43
- var _migrate = require("./migrate");
44
-
45
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
46
-
47
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
package/dist/migrate.js DELETED
@@ -1,97 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.migrate = exports.default = void 0;
7
-
8
- var _fs = _interopRequireDefault(require("fs"));
9
-
10
- var _path = _interopRequireDefault(require("path"));
11
-
12
- var _cliCommand = _interopRequireDefault(require("@percy/cli-command"));
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
-
18
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
-
20
- const migrate = (0, _cliCommand.default)('migrate', {
21
- description: 'Migrate a Percy config file to the latest version',
22
- args: [{
23
- name: 'filepath',
24
- description: 'Current config filepath, detected by default'
25
- }, {
26
- name: 'output',
27
- description: 'New config filepath to write to, defaults to \'filepath\''
28
- }],
29
- flags: [{
30
- name: 'dry-run',
31
- description: 'Print the new config without writing it',
32
- short: 'd'
33
- }],
34
- examples: ['$0', '$0 --dry-run', '$0 ./config/percy.yml', '$0 .percy.yml .percy.js']
35
- }, async ({
36
- args,
37
- flags,
38
- log,
39
- exit
40
- }) => {
41
- let PercyConfig = await Promise.resolve().then(() => _interopRequireWildcard(require('@percy/config')));
42
- let {
43
- config,
44
- filepath: input
45
- } = PercyConfig.search(args.filepath);
46
- let output = args.output ? _path.default.resolve(args.output) : input;
47
- if (!config) exit(1, 'Config file not found');
48
- log.info(`Found config file: ${_path.default.relative('', input)}`); // if migrating versions, warn when latest
49
-
50
- if (input === output && config.version === 2) {
51
- exit(0, 'Config is already the latest version');
52
- } // migrate config
53
-
54
-
55
- log.info('Migrating config file...');
56
- let format = _path.default.extname(output).replace(/^./, '') || 'yaml';
57
- let migrated = PercyConfig.migrate(config); // prefer kebab-case for yaml
58
-
59
- if (/^ya?ml$/.test(format)) {
60
- migrated = PercyConfig.normalize(migrated, {
61
- schema: '/config',
62
- kebab: true
63
- });
64
- } // stringify to the desired format
65
-
66
-
67
- let body = PercyConfig.stringify(format, migrated);
68
-
69
- if (!flags.dryRun) {
70
- let content = body;
71
-
72
- if (_path.default.basename(output) === 'package.json') {
73
- // update the package.json entry by reading and modifying it
74
- let pkg = JSON.parse(_fs.default.readFileSync(output));
75
- content = PercyConfig.stringify(format, { ...pkg,
76
- percy: migrated
77
- });
78
- } else if (input === output) {
79
- // rename input if it is the output
80
- let old = input.replace(_path.default.extname(input), '.old$&');
81
-
82
- _fs.default.renameSync(input, old);
83
- } // write to output
84
-
85
-
86
- _fs.default.writeFileSync(output, content);
87
- }
88
-
89
- log.info('Config file migrated!'); // when dry-running, print config to stdout when finished
90
-
91
- if (flags.dryRun) {
92
- log.stdout.write('\n' + body);
93
- }
94
- });
95
- exports.migrate = migrate;
96
- var _default = migrate;
97
- exports.default = _default;
package/dist/validate.js DELETED
@@ -1,46 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.validate = exports.default = void 0;
7
-
8
- var _cliCommand = _interopRequireDefault(require("@percy/cli-command"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
-
14
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
-
16
- const validate = (0, _cliCommand.default)('validate', {
17
- description: 'Validate a Percy config file',
18
- args: [{
19
- name: 'filepath',
20
- description: 'Config filepath, detected by default'
21
- }],
22
- examples: ['$0', '$0 ./config/percy.yml']
23
- }, async ({
24
- args,
25
- log,
26
- exit
27
- }) => {
28
- let PercyConfig = await Promise.resolve().then(() => _interopRequireWildcard(require('@percy/config'))); // verify a config file can be located
29
-
30
- let {
31
- config,
32
- filepath
33
- } = PercyConfig.search(args.filepath);
34
- if (!config) exit(1, 'Config file not found'); // when `bail` is true, .load() returns undefined when validation fails
35
-
36
- let result = PercyConfig.load({
37
- path: filepath,
38
- print: true,
39
- bail: true
40
- }); // exit 1 when config is empty
41
-
42
- if (!result) exit(1);
43
- });
44
- exports.validate = validate;
45
- var _default = validate;
46
- exports.default = _default;