@relative-ci/cli 5.0.0-alpha.2

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/bin/index.js ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+
3
+ const cli = require('../lib/cjs/index'); // eslint-disable-line
4
+
5
+ (async () => {
6
+ try {
7
+ await cli(process.argv);
8
+ } catch (error) {
9
+ console.error(error);
10
+ process.exit(1);
11
+ }
12
+ })();
@@ -0,0 +1,76 @@
1
+ 'use strict';
2
+
3
+ var path = require('node:path');
4
+ var _ = require('lodash');
5
+ var fsExtra = require('fs-extra');
6
+ var cosmiconfig = require('cosmiconfig');
7
+ var yargs = require('yargs/yargs');
8
+ var helpers = require('yargs/helpers');
9
+ var core = require('@relative-ci/core');
10
+ var ingest = require('@relative-ci/core/ingest');
11
+ var LOCALES = require('@relative-ci/core/locales/en');
12
+
13
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
+
15
+ function _interopNamespace(e) {
16
+ if (e && e.__esModule) return e;
17
+ var n = Object.create(null);
18
+ if (e) {
19
+ Object.keys(e).forEach(function (k) {
20
+ if (k !== 'default') {
21
+ var d = Object.getOwnPropertyDescriptor(e, k);
22
+ Object.defineProperty(n, k, d.get ? d : {
23
+ enumerable: true,
24
+ get: function () { return e[k]; }
25
+ });
26
+ }
27
+ });
28
+ }
29
+ n.default = e;
30
+ return Object.freeze(n);
31
+ }
32
+
33
+ var path__default = /*#__PURE__*/_interopDefault(path);
34
+ var ___default = /*#__PURE__*/_interopDefault(_);
35
+ var yargs__default = /*#__PURE__*/_interopDefault(yargs);
36
+ var ingest__default = /*#__PURE__*/_interopDefault(ingest);
37
+ var LOCALES__namespace = /*#__PURE__*/_interopNamespace(LOCALES);
38
+
39
+ async function cli(processArgs) {
40
+ const args = await yargs__default.default(helpers.hideBin(processArgs))
41
+ .usage('Usage: $0 OPTIONS')
42
+ .option('config-dir', { describe: 'Config directory', default: '', alias: 'c' })
43
+ .option('commit', { describe: 'Commit SHA', default: '' })
44
+ .option('commit-message', { describe: 'Commit message', default: '', alias: 'commitMessage' })
45
+ .option('branch', { describe: 'Branch name', default: '' })
46
+ .option('pr', { describe: 'Pull Request number', default: '' })
47
+ .option('slug', { describe: 'Project slug', default: '' })
48
+ .help()
49
+ .argv;
50
+ const searchConfig = cosmiconfig.cosmiconfigSync('relativeci', {
51
+ searchStrategy: 'global',
52
+ }).search('config-dir' in args ? args['config-dir'] : undefined);
53
+ core.debug('Config', searchConfig);
54
+ if (!searchConfig) {
55
+ throw new Error(LOCALES__namespace.CLI_MISSING_CONFIGURATION_ERROR);
56
+ }
57
+ const { config } = searchConfig;
58
+ if (!___default.default.get(config, 'webpack.stats')) {
59
+ throw new Error(LOCALES__namespace.CLI_INVALID_CONFIGURATION_ERROR);
60
+ }
61
+ // Load webpack stats file relative to the config file
62
+ const webpackArtifactFilepath = path__default.default.join(path__default.default.dirname(searchConfig.filepath), ___default.default.get(config, 'webpack.stats'));
63
+ if (!fsExtra.pathExistsSync(webpackArtifactFilepath)) {
64
+ throw new Error(LOCALES__namespace.CLI_MISSING_STATS_FILE_ERROR);
65
+ }
66
+ const data = fsExtra.readJSONSync(webpackArtifactFilepath);
67
+ core.validateWebpackStats(data);
68
+ core.debug('CLI arguments', args);
69
+ const params = core.normalizeParams(args, config);
70
+ const artifactsData = core.filterArtifacts([{ key: core.SOURCE_WEBPACK_STATS, data }]);
71
+ const response = await ingest__default.default(artifactsData, params, config);
72
+ core.logResponse(response);
73
+ }
74
+
75
+ module.exports = cli;
76
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":[null],"names":["yargs","hideBin","cosmiconfigSync","debug","LOCALES","_","path","pathExistsSync","readJSONSync","validateWebpackStats","normalizeParams","filterArtifacts","SOURCE_WEBPACK_STATS","ingest","logResponse"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBe,eAAe,GAAG,CAAC,WAA0B,EAAA;IAC1D,MAAM,IAAI,GAAG,MAAMA,sBAAK,CAACC,eAAO,CAAC,WAAW,CAAC;SAC1C,KAAK,CAAC,mBAAmB;AAEzB,SAAA,MAAM,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;AAE9E,SAAA,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;AACxD,SAAA,MAAM,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE;AAC5F,SAAA,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;AACzD,SAAA,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,qBAAqB,EAAE,OAAO,EAAE,EAAE,EAAE;AAC7D,SAAA,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,EAAE;AAExD,SAAA,IAAI;AACJ,SAAA,IAAI;AAEP,IAAA,MAAM,YAAY,GAAGC,2BAAe,CAAC,YAAY,EAAE;AACjD,QAAA,cAAc,EAAE,QAAQ;AACzB,KAAA,CAAC,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;AAEhE,IAAAC,UAAK,CAAC,QAAQ,EAAE,YAAY,CAAC;IAE7B,IAAI,CAAC,YAAY,EAAE;AACjB,QAAA,MAAM,IAAI,KAAK,CAACC,kBAAO,CAAC,+BAA+B,CAAC;;AAG1D,IAAA,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY;IAE/B,IAAI,CAACC,kBAAC,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE;AACnC,QAAA,MAAM,IAAI,KAAK,CAACD,kBAAO,CAAC,+BAA+B,CAAC;;;IAI1D,MAAM,uBAAuB,GAAGE,qBAAI,CAAC,IAAI,CACvCA,qBAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,EACnCD,kBAAC,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAC/B;AAED,IAAA,IAAI,CAACE,sBAAc,CAAC,uBAAuB,CAAC,EAAE;AAC5C,QAAA,MAAM,IAAI,KAAK,CAACH,kBAAO,CAAC,4BAA4B,CAAC;;AAGvD,IAAA,MAAM,IAAI,GAAGI,oBAAY,CAAC,uBAAuB,CAAC;IAElDC,yBAAoB,CAAC,IAAI,CAAC;AAE1B,IAAAN,UAAK,CAAC,eAAe,EAAE,IAAI,CAAC;IAE5B,MAAM,MAAM,GAAGO,oBAAe,CAAC,IAAI,EAAE,MAAM,CAAC;AAC5C,IAAA,MAAM,aAAa,GAAGC,oBAAe,CAAC,CAAC,EAAE,GAAG,EAAEC,yBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5E,MAAM,QAAQ,GAAG,MAAMC,uBAAM,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC;IAC5DC,gBAAW,CAAC,QAAQ,CAAC;AACvB;;;;"}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -0,0 +1,48 @@
1
+ import path from 'node:path';
2
+ import _ from 'lodash';
3
+ import { pathExistsSync, readJSONSync } from 'fs-extra';
4
+ import { cosmiconfigSync } from 'cosmiconfig';
5
+ import yargs from 'yargs/yargs';
6
+ import { hideBin } from 'yargs/helpers';
7
+ import { debug, validateWebpackStats, normalizeParams, filterArtifacts, SOURCE_WEBPACK_STATS, logResponse } from '@relative-ci/core';
8
+ import ingest from '@relative-ci/core/ingest';
9
+ import * as LOCALES from '@relative-ci/core/locales/en';
10
+
11
+ async function cli(processArgs) {
12
+ const args = await yargs(hideBin(processArgs))
13
+ .usage('Usage: $0 OPTIONS')
14
+ .option('config-dir', { describe: 'Config directory', default: '', alias: 'c' })
15
+ .option('commit', { describe: 'Commit SHA', default: '' })
16
+ .option('commit-message', { describe: 'Commit message', default: '', alias: 'commitMessage' })
17
+ .option('branch', { describe: 'Branch name', default: '' })
18
+ .option('pr', { describe: 'Pull Request number', default: '' })
19
+ .option('slug', { describe: 'Project slug', default: '' })
20
+ .help()
21
+ .argv;
22
+ const searchConfig = cosmiconfigSync('relativeci', {
23
+ searchStrategy: 'global',
24
+ }).search('config-dir' in args ? args['config-dir'] : undefined);
25
+ debug('Config', searchConfig);
26
+ if (!searchConfig) {
27
+ throw new Error(LOCALES.CLI_MISSING_CONFIGURATION_ERROR);
28
+ }
29
+ const { config } = searchConfig;
30
+ if (!_.get(config, 'webpack.stats')) {
31
+ throw new Error(LOCALES.CLI_INVALID_CONFIGURATION_ERROR);
32
+ }
33
+ // Load webpack stats file relative to the config file
34
+ const webpackArtifactFilepath = path.join(path.dirname(searchConfig.filepath), _.get(config, 'webpack.stats'));
35
+ if (!pathExistsSync(webpackArtifactFilepath)) {
36
+ throw new Error(LOCALES.CLI_MISSING_STATS_FILE_ERROR);
37
+ }
38
+ const data = readJSONSync(webpackArtifactFilepath);
39
+ validateWebpackStats(data);
40
+ debug('CLI arguments', args);
41
+ const params = normalizeParams(args, config);
42
+ const artifactsData = filterArtifacts([{ key: SOURCE_WEBPACK_STATS, data }]);
43
+ const response = await ingest(artifactsData, params, config);
44
+ logResponse(response);
45
+ }
46
+
47
+ export { cli as default };
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;AAoBe,eAAe,GAAG,CAAC,WAA0B,EAAA;IAC1D,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;SAC1C,KAAK,CAAC,mBAAmB;AAEzB,SAAA,MAAM,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;AAE9E,SAAA,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;AACxD,SAAA,MAAM,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE;AAC5F,SAAA,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;AACzD,SAAA,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,qBAAqB,EAAE,OAAO,EAAE,EAAE,EAAE;AAC7D,SAAA,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,EAAE;AAExD,SAAA,IAAI;AACJ,SAAA,IAAI;AAEP,IAAA,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,EAAE;AACjD,QAAA,cAAc,EAAE,QAAQ;AACzB,KAAA,CAAC,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;AAEhE,IAAA,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC;IAE7B,IAAI,CAAC,YAAY,EAAE;AACjB,QAAA,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,+BAA+B,CAAC;;AAG1D,IAAA,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY;IAE/B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE;AACnC,QAAA,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,+BAA+B,CAAC;;;IAI1D,MAAM,uBAAuB,GAAG,IAAI,CAAC,IAAI,CACvC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,EACnC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAC/B;AAED,IAAA,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,EAAE;AAC5C,QAAA,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,4BAA4B,CAAC;;AAGvD,IAAA,MAAM,IAAI,GAAG,YAAY,CAAC,uBAAuB,CAAC;IAElD,oBAAoB,CAAC,IAAI,CAAC;AAE1B,IAAA,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC;IAE5B,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC;AAC5C,IAAA,MAAM,aAAa,GAAG,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5E,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC;IAC5D,WAAW,CAAC,QAAQ,CAAC;AACvB;;;;"}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1 @@
1
+ export default function cli(processArgs: Array<string>): Promise<void>;
package/package.json ADDED
@@ -0,0 +1,69 @@
1
+ {
2
+ "name": "@relative-ci/cli",
3
+ "version": "5.0.0-alpha.2",
4
+ "description": "Send bundle stats and CI build information to RelativeCI CLI",
5
+ "keywords": [
6
+ "webpack",
7
+ "vitejs",
8
+ "rspack",
9
+ "rollup",
10
+ "bundle-size",
11
+ "bundle-analyzer",
12
+ "bundle-stats",
13
+ "stats",
14
+ "bundle",
15
+ "size",
16
+ "assets",
17
+ "chunks",
18
+ "modules"
19
+ ],
20
+ "repository": "https://github.com/relative-ci/agent",
21
+ "bugs": {
22
+ "url": "https://github.com/relative-ci/agent/issues"
23
+ },
24
+ "homepage": "https://relative-ci.com/documentation/setup",
25
+ "license": "MIT",
26
+ "author": {
27
+ "name": "Viorel Cojocaru",
28
+ "email": "vio@relative-ci.com",
29
+ "url": "https://relative-ci.com"
30
+ },
31
+ "engines": {
32
+ "node": ">= 18.0.0"
33
+ },
34
+ "main": "./lib/cjs/index.js",
35
+ "module": "./lib/esm/index.js",
36
+ "types": "./lib/types/index.d.ts",
37
+ "bin": {
38
+ "relative-ci": "bin/index.js",
39
+ "relative-ci-agent": "bin/index.js"
40
+ },
41
+ "scripts": {
42
+ "build": "npm run clean && rollup -c && npm run build-type",
43
+ "build-type": "echo '{\"type\":\"commonjs\"}' > lib/cjs/package.json && echo '{\"type\":\"module\"}' > lib/esm/package.json",
44
+ "clean": "rimraf ./lib",
45
+ "lint": "eslint .",
46
+ "test": "vitest src --passWithNoTests --run"
47
+ },
48
+ "devDependencies": {
49
+ "@rollup/plugin-commonjs": "28.0.3",
50
+ "@rollup/plugin-node-resolve": "16.0.0",
51
+ "@rollup/plugin-replace": "6.0.2",
52
+ "@rollup/plugin-typescript": "12.1.2",
53
+ "@tsconfig/node18": "^18.2.4",
54
+ "@types/fs-extra": "11.0.4",
55
+ "@types/lodash": "4.17.16",
56
+ "rimraf": "6.0.1",
57
+ "rollup": "4.35.0",
58
+ "rollup-plugin-node-externals": "8.0.0",
59
+ "typescript": "5.8.2",
60
+ "vitest": "3.0.8"
61
+ },
62
+ "dependencies": {
63
+ "@relative-ci/core": "*",
64
+ "cosmiconfig": "9.0.0",
65
+ "fs-extra": "11.3.0",
66
+ "lodash": "4.17.21",
67
+ "yargs": "17.7.2"
68
+ }
69
+ }