@oclif/core 4.0.0-beta.1 → 4.0.0-beta.10

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.
Files changed (70) hide show
  1. package/lib/args.d.ts +4 -4
  2. package/lib/cache.d.ts +3 -3
  3. package/lib/cache.js +1 -1
  4. package/lib/command.d.ts +18 -18
  5. package/lib/command.js +11 -20
  6. package/lib/config/config.d.ts +12 -37
  7. package/lib/config/config.js +82 -118
  8. package/lib/config/plugin-loader.d.ts +6 -6
  9. package/lib/config/plugin-loader.js +4 -28
  10. package/lib/config/plugin.d.ts +3 -3
  11. package/lib/config/plugin.js +9 -11
  12. package/lib/config/ts-path.d.ts +1 -1
  13. package/lib/config/ts-path.js +6 -7
  14. package/lib/config/util.d.ts +1 -1
  15. package/lib/config/util.js +5 -21
  16. package/lib/errors/error.js +3 -3
  17. package/lib/errors/errors/cli.d.ts +5 -5
  18. package/lib/errors/errors/cli.js +2 -2
  19. package/lib/errors/errors/pretty-print.d.ts +2 -2
  20. package/lib/errors/errors/pretty-print.js +2 -2
  21. package/lib/errors/handle.js +4 -11
  22. package/lib/errors/index.d.ts +0 -2
  23. package/lib/errors/index.js +1 -5
  24. package/lib/errors/warn.d.ts +2 -8
  25. package/lib/errors/warn.js +12 -11
  26. package/lib/flags.d.ts +4 -4
  27. package/lib/flush.js +2 -2
  28. package/lib/help/formatter.d.ts +3 -3
  29. package/lib/help/index.d.ts +1 -0
  30. package/lib/help/index.js +19 -10
  31. package/lib/index.d.ts +5 -5
  32. package/lib/index.js +4 -2
  33. package/lib/interfaces/config.d.ts +9 -21
  34. package/lib/interfaces/errors.d.ts +5 -5
  35. package/lib/interfaces/flags.d.ts +2 -2
  36. package/lib/interfaces/index.d.ts +2 -1
  37. package/lib/interfaces/logger.d.ts +9 -0
  38. package/lib/interfaces/logger.js +2 -0
  39. package/lib/interfaces/parser.d.ts +6 -6
  40. package/lib/interfaces/pjson.d.ts +217 -150
  41. package/lib/interfaces/plugin.d.ts +26 -24
  42. package/lib/interfaces/topic.d.ts +2 -2
  43. package/lib/logger.d.ts +14 -0
  44. package/lib/logger.js +90 -0
  45. package/lib/main.js +5 -3
  46. package/lib/parser/errors.d.ts +1 -1
  47. package/lib/parser/parse.js +2 -1
  48. package/lib/performance.js +3 -2
  49. package/lib/settings.d.ts +5 -11
  50. package/lib/util/determine-priority.d.ts +21 -0
  51. package/lib/util/determine-priority.js +55 -0
  52. package/lib/util/find-root.d.ts +1 -0
  53. package/lib/util/find-root.js +19 -19
  54. package/lib/util/fs.js +12 -0
  55. package/lib/util/ids.d.ts +1 -1
  56. package/lib/util/read-pjson.d.ts +7 -0
  57. package/lib/util/read-pjson.js +60 -0
  58. package/lib/util/read-tsconfig.js +4 -9
  59. package/lib/ux/colorize-json.d.ts +2 -2
  60. package/lib/ux/index.d.ts +7 -2
  61. package/lib/ux/index.js +15 -3
  62. package/lib/ux/theme.d.ts +1 -1
  63. package/package.json +30 -14
  64. package/flush.d.ts +0 -3
  65. package/flush.js +0 -1
  66. package/handle.js +0 -1
  67. package/lib/errors/config.d.ts +0 -6
  68. package/lib/errors/config.js +0 -38
  69. package/lib/errors/logger.d.ts +0 -8
  70. package/lib/errors/logger.js +0 -48
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@oclif/core",
3
3
  "description": "base library for oclif CLIs",
4
- "version": "4.0.0-beta.1",
4
+ "version": "4.0.0-beta.10",
5
5
  "author": "Salesforce",
6
6
  "bugs": "https://github.com/oclif/core/issues",
7
7
  "dependencies": {
@@ -9,6 +9,7 @@
9
9
  "ansis": "^3.0.1",
10
10
  "clean-stack": "^3.0.1",
11
11
  "cli-spinners": "^2.9.2",
12
+ "cosmiconfig": "^9.0.0",
12
13
  "debug": "^4.3.4",
13
14
  "ejs": "^3.1.10",
14
15
  "get-package-type": "^0.1.0",
@@ -17,6 +18,7 @@
17
18
  "is-wsl": "^2.2.0",
18
19
  "minimatch": "^9.0.4",
19
20
  "string-width": "^4.2.3",
21
+ "supports-color": "^9.4.0",
20
22
  "widest-line": "^3.1.0",
21
23
  "wordwrap": "^1.0.0",
22
24
  "wrap-ansi": "^7.0.0"
@@ -26,6 +28,7 @@
26
28
  "@oclif/plugin-help": "^6",
27
29
  "@oclif/plugin-plugins": "^5",
28
30
  "@oclif/prettier-config": "^0.2.1",
31
+ "@oclif/test": "^4",
29
32
  "@types/benchmark": "^2.1.5",
30
33
  "@types/chai": "^4.3.11",
31
34
  "@types/chai-as-promised": "^7.1.8",
@@ -45,10 +48,9 @@
45
48
  "commitlint": "^19",
46
49
  "cross-env": "^7.0.3",
47
50
  "eslint": "^8.57.0",
48
- "eslint-config-oclif": "^5.1.1",
49
- "eslint-config-oclif-typescript": "^3.1.4",
51
+ "eslint-config-oclif": "^5.2.0",
52
+ "eslint-config-oclif-typescript": "^3.1.7",
50
53
  "eslint-config-prettier": "^9.1.0",
51
- "globby": "^11.1.0",
52
54
  "husky": "^9",
53
55
  "lint-staged": "^15",
54
56
  "madge": "^6.1.0",
@@ -56,7 +58,7 @@
56
58
  "nyc": "^15.1.0",
57
59
  "prettier": "^3.2.5",
58
60
  "shx": "^0.3.4",
59
- "sinon": "^17",
61
+ "sinon": "^18",
60
62
  "ts-node": "^10.9.2",
61
63
  "tsd": "^0.31.0",
62
64
  "typescript": "^5"
@@ -65,10 +67,7 @@
65
67
  "node": ">=18.0.0"
66
68
  },
67
69
  "files": [
68
- "/lib",
69
- "/flush.js",
70
- "/flush.d.ts",
71
- "/handle.js"
70
+ "/lib"
72
71
  ],
73
72
  "homepage": "https://github.com/oclif/core",
74
73
  "keywords": [
@@ -81,7 +80,26 @@
81
80
  "argv"
82
81
  ],
83
82
  "license": "MIT",
84
- "main": "./lib/index.js",
83
+ "exports": {
84
+ ".": "./lib/index.js",
85
+ "./args": "./lib/args.js",
86
+ "./command": "./lib/command.js",
87
+ "./config": "./lib/config/index.js",
88
+ "./errors": "./lib/errors/index.js",
89
+ "./execute": "./lib/execute.js",
90
+ "./flags": "./lib/flags.js",
91
+ "./flush": "./lib/flush.js",
92
+ "./handle": "./lib/errors/handle.js",
93
+ "./help": "./lib/help/index.js",
94
+ "./hooks": "./lib/interfaces/hooks.js",
95
+ "./interfaces": "./lib/interfaces/index.js",
96
+ "./logger": "./lib/logger.js",
97
+ "./performance": "./lib/performance.js",
98
+ "./run": "./lib/main.js",
99
+ "./settings": "./lib/settings.js",
100
+ "./util/ids": "./lib/util/ids.js",
101
+ "./ux": "./lib/ux/index.js"
102
+ },
85
103
  "repository": "oclif/core",
86
104
  "oclif": {
87
105
  "bin": "oclif",
@@ -95,20 +113,18 @@
95
113
  },
96
114
  "scripts": {
97
115
  "build": "shx rm -rf lib && tsc",
98
- "commitlint": "commitlint",
99
116
  "compile": "tsc",
100
117
  "format": "prettier --write \"+(src|test)/**/*.+(ts|js|json)\"",
101
118
  "lint": "eslint . --ext .ts",
102
119
  "posttest": "yarn lint && yarn test:circular-deps",
103
120
  "prepack": "yarn run build",
104
121
  "prepare": "husky",
105
- "pretest": "yarn build && tsc -p test --noEmit --skipLibCheck",
106
- "test:circular-deps": "madge lib/ -c",
122
+ "test:circular-deps": "yarn build && madge lib/ -c",
107
123
  "test:debug": "nyc mocha --debug-brk --inspect \"test/**/*.test.ts\"",
108
124
  "test:integration": "mocha --forbid-only \"test/**/*.integration.ts\" --parallel --timeout 1200000",
109
125
  "test:interoperability": "cross-env DEBUG=integration:* ts-node test/integration/interop.ts",
110
126
  "test:perf": "ts-node test/perf/parser.perf.ts",
111
- "test": "nyc mocha --forbid-only \"test/**/*.test.ts\""
127
+ "test": "nyc mocha --forbid-only \"test/**/*.test.ts\" --parallel"
112
128
  },
113
129
  "types": "lib/index.d.ts"
114
130
  }
package/flush.d.ts DELETED
@@ -1,3 +0,0 @@
1
- declare const flush: () => Promise<void>
2
-
3
- export = flush
package/flush.js DELETED
@@ -1 +0,0 @@
1
- module.exports = require('./lib/cli-ux/flush').flush
package/handle.js DELETED
@@ -1 +0,0 @@
1
- module.exports = async error => require('./lib/errors/handle').handle(error)
@@ -1,6 +0,0 @@
1
- import { Logger } from './logger';
2
- export declare const config: {
3
- debug: boolean;
4
- errlog: string | undefined;
5
- errorLogger: Logger | undefined;
6
- };
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.config = void 0;
4
- const settings_1 = require("../settings");
5
- const logger_1 = require("./logger");
6
- function displayWarnings() {
7
- if (process.listenerCount('warning') > 1)
8
- return;
9
- process.on('warning', (warning) => {
10
- console.error(warning.stack);
11
- if (warning.detail)
12
- console.error(warning.detail);
13
- });
14
- }
15
- exports.config = {
16
- get debug() {
17
- return Boolean(settings_1.settings.debug);
18
- },
19
- set debug(enabled) {
20
- settings_1.settings.debug = enabled;
21
- if (enabled)
22
- displayWarnings();
23
- },
24
- get errlog() {
25
- return settings_1.settings.errlog;
26
- },
27
- set errlog(errlog) {
28
- if (errlog) {
29
- this.errorLogger = new logger_1.Logger(errlog);
30
- settings_1.settings.errlog = errlog;
31
- }
32
- else {
33
- delete this.errorLogger;
34
- delete settings_1.settings.errlog;
35
- }
36
- },
37
- errorLogger: undefined,
38
- };
@@ -1,8 +0,0 @@
1
- export declare class Logger {
2
- file: string;
3
- protected buffer: string[];
4
- protected flushing: Promise<void>;
5
- constructor(file: string);
6
- flush(waitForMs?: number): Promise<void>;
7
- log(msg: string): void;
8
- }
@@ -1,48 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Logger = void 0;
7
- const ansis_1 = __importDefault(require("ansis"));
8
- const promises_1 = require("node:fs/promises");
9
- const node_path_1 = require("node:path");
10
- const timestamp = () => new Date().toISOString();
11
- let timer;
12
- const wait = (ms) => new Promise((resolve) => {
13
- if (timer)
14
- timer.unref();
15
- timer = setTimeout(() => resolve(null), ms);
16
- });
17
- function chomp(s) {
18
- if (s.endsWith('\n'))
19
- return s.replace(/\n$/, '');
20
- return s;
21
- }
22
- class Logger {
23
- file;
24
- buffer = [];
25
- flushing = Promise.resolve();
26
- constructor(file) {
27
- this.file = file;
28
- }
29
- async flush(waitForMs = 0) {
30
- await wait(waitForMs);
31
- this.flushing = this.flushing.then(async () => {
32
- if (this.buffer.length === 0)
33
- return;
34
- const mylines = this.buffer;
35
- this.buffer = [];
36
- await (0, promises_1.mkdir)((0, node_path_1.dirname)(this.file), { recursive: true });
37
- await (0, promises_1.appendFile)(this.file, mylines.join('\n') + '\n');
38
- });
39
- await this.flushing;
40
- }
41
- log(msg) {
42
- msg = ansis_1.default.strip(chomp(msg));
43
- const lines = msg.split('\n').map((l) => `${timestamp()} ${l}`.trimEnd());
44
- this.buffer.push(...lines);
45
- this.flush(50).catch(console.error);
46
- }
47
- }
48
- exports.Logger = Logger;