node-devicectl 1.2.1 → 1.3.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/CHANGELOG.md +12 -0
- package/build/lib/devicectl.d.ts +8 -8
- package/build/lib/devicectl.d.ts.map +1 -1
- package/build/lib/devicectl.js +13 -12
- package/build/lib/devicectl.js.map +1 -1
- package/build/lib/mixins/process.d.ts.map +1 -1
- package/build/lib/mixins/process.js +2 -6
- package/build/lib/mixins/process.js.map +1 -1
- package/build/lib/types.d.ts +1 -1
- package/build/lib/types.d.ts.map +1 -1
- package/lib/devicectl.ts +18 -16
- package/lib/mixins/process.ts +4 -3
- package/lib/types.ts +1 -1
- package/package.json +1 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [1.3.1](https://github.com/appium/node-devicectl/compare/v1.3.0...v1.3.1) (2026-05-08)
|
|
2
|
+
|
|
3
|
+
### Miscellaneous Chores
|
|
4
|
+
|
|
5
|
+
* Enable strict TS mode ([#17](https://github.com/appium/node-devicectl/issues/17)) ([b8a6127](https://github.com/appium/node-devicectl/commit/b8a61277de3552cd96c3b38aeb8e255a27386bfa))
|
|
6
|
+
|
|
7
|
+
## [1.3.0](https://github.com/appium/node-devicectl/compare/v1.2.1...v1.3.0) (2026-04-25)
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* Ditch lodash ([#16](https://github.com/appium/node-devicectl/issues/16)) ([0370889](https://github.com/appium/node-devicectl/commit/03708896fca2b4fd706e7665f64c6c7f522be99c))
|
|
12
|
+
|
|
1
13
|
## [1.2.1](https://github.com/appium/node-devicectl/compare/v1.2.0...v1.2.1) (2026-04-10)
|
|
2
14
|
|
|
3
15
|
### Miscellaneous Chores
|
package/build/lib/devicectl.d.ts
CHANGED
|
@@ -13,6 +13,14 @@ import * as listMixins from './mixins/list';
|
|
|
13
13
|
export declare class Devicectl {
|
|
14
14
|
/** The unique device identifier */
|
|
15
15
|
readonly udid: string;
|
|
16
|
+
sendMemoryWarning: typeof processMixins.sendMemoryWarning;
|
|
17
|
+
sendSignalToProcess: typeof processMixins.sendSignalToProcess;
|
|
18
|
+
launchApp: typeof processMixins.launchApp;
|
|
19
|
+
listProcesses: typeof infoMixins.listProcesses;
|
|
20
|
+
listApps: typeof infoMixins.listApps;
|
|
21
|
+
listFiles: typeof copyMixins.listFiles;
|
|
22
|
+
pullFile: typeof copyMixins.pullFile;
|
|
23
|
+
listDevices: typeof listMixins.listDevices;
|
|
16
24
|
private readonly preferNonRootWhenSudo;
|
|
17
25
|
private readonly sudoUser;
|
|
18
26
|
/**
|
|
@@ -29,14 +37,6 @@ export declare class Devicectl {
|
|
|
29
37
|
* @returns Promise that resolves to the command result
|
|
30
38
|
*/
|
|
31
39
|
execute<T extends ExecuteOptions>(subcommand: string[], opts?: T): Promise<ExecuteResult<T>>;
|
|
32
|
-
sendMemoryWarning: typeof processMixins.sendMemoryWarning;
|
|
33
|
-
sendSignalToProcess: typeof processMixins.sendSignalToProcess;
|
|
34
|
-
launchApp: typeof processMixins.launchApp;
|
|
35
|
-
listProcesses: typeof infoMixins.listProcesses;
|
|
36
|
-
listApps: typeof infoMixins.listApps;
|
|
37
|
-
listFiles: typeof copyMixins.listFiles;
|
|
38
|
-
pullFile: typeof copyMixins.pullFile;
|
|
39
|
-
listDevices: typeof listMixins.listDevices;
|
|
40
40
|
private resolveSudoUser;
|
|
41
41
|
}
|
|
42
42
|
//# sourceMappingURL=devicectl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devicectl.d.ts","sourceRoot":"","sources":["../../lib/devicectl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"devicectl.d.ts","sourceRoot":"","sources":["../../lib/devicectl.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AAC7E,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAM5C;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,mCAAmC;IACnC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B,iBAAiB,yCAAmC;IACpD,mBAAmB,2CAAqC;IACxD,SAAS,iCAA2B;IAEpC,aAAa,kCAA4B;IACzC,QAAQ,6BAAuB;IAE/B,SAAS,8BAAwB;IACjC,QAAQ,6BAAuB;IAE/B,WAAW,gCAA0B;IAErC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAU;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAE3C;;;;OAIG;gBACS,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB;IAMjD;;;;;;OAMG;IACG,OAAO,CAAC,CAAC,SAAS,cAAc,EACpC,UAAU,EAAE,MAAM,EAAE,EACpB,IAAI,CAAC,EAAE,CAAC,GACP,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAoD5B,OAAO,CAAC,eAAe;CAYxB"}
|
package/build/lib/devicectl.js
CHANGED
|
@@ -38,7 +38,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.Devicectl = void 0;
|
|
40
40
|
const teen_process_1 = require("teen_process");
|
|
41
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
42
41
|
const logger_1 = __importDefault(require("@appium/logger"));
|
|
43
42
|
const processMixins = __importStar(require("./mixins/process"));
|
|
44
43
|
const infoMixins = __importStar(require("./mixins/info"));
|
|
@@ -56,6 +55,14 @@ const LOG_TAG = 'Devicectl';
|
|
|
56
55
|
class Devicectl {
|
|
57
56
|
/** The unique device identifier */
|
|
58
57
|
udid;
|
|
58
|
+
sendMemoryWarning = processMixins.sendMemoryWarning;
|
|
59
|
+
sendSignalToProcess = processMixins.sendSignalToProcess;
|
|
60
|
+
launchApp = processMixins.launchApp;
|
|
61
|
+
listProcesses = infoMixins.listProcesses;
|
|
62
|
+
listApps = infoMixins.listApps;
|
|
63
|
+
listFiles = copyMixins.listFiles;
|
|
64
|
+
pullFile = copyMixins.pullFile;
|
|
65
|
+
listDevices = listMixins.listDevices;
|
|
59
66
|
preferNonRootWhenSudo;
|
|
60
67
|
sudoUser;
|
|
61
68
|
/**
|
|
@@ -78,7 +85,7 @@ class Devicectl {
|
|
|
78
85
|
async execute(subcommand, opts) {
|
|
79
86
|
const { logStdout = false, asynchronous = false, asJson = true, noDevice = false, subcommandOptions, timeout, runAsNonRootWhenSudo = this.preferNonRootWhenSudo, } = opts ?? {};
|
|
80
87
|
const finalArgs = ['devicectl', ...subcommand, ...(noDevice ? [] : ['--device', this.udid])];
|
|
81
|
-
if (subcommandOptions &&
|
|
88
|
+
if (subcommandOptions && subcommandOptions.length > 0) {
|
|
82
89
|
finalArgs.push(...(Array.isArray(subcommandOptions) ? subcommandOptions : [subcommandOptions]));
|
|
83
90
|
}
|
|
84
91
|
if (asJson) {
|
|
@@ -95,7 +102,7 @@ class Devicectl {
|
|
|
95
102
|
}
|
|
96
103
|
const execOpts = {
|
|
97
104
|
...userOpts,
|
|
98
|
-
...(
|
|
105
|
+
...(typeof timeout === 'number' ? { timeout } : {}),
|
|
99
106
|
};
|
|
100
107
|
const result = await (0, teen_process_1.exec)(XCRUN, finalArgs, execOpts);
|
|
101
108
|
if (logStdout) {
|
|
@@ -104,17 +111,11 @@ class Devicectl {
|
|
|
104
111
|
return result;
|
|
105
112
|
}
|
|
106
113
|
catch (e) {
|
|
107
|
-
throw new Error(`'${cmdStr}' failed. Original error: ${e.stderr || e.stdout || e.message}
|
|
114
|
+
throw new Error(`'${cmdStr}' failed. Original error: ${e.stderr || e.stdout || e.message}`, {
|
|
115
|
+
cause: e,
|
|
116
|
+
});
|
|
108
117
|
}
|
|
109
118
|
}
|
|
110
|
-
sendMemoryWarning = processMixins.sendMemoryWarning;
|
|
111
|
-
sendSignalToProcess = processMixins.sendSignalToProcess;
|
|
112
|
-
launchApp = processMixins.launchApp;
|
|
113
|
-
listProcesses = infoMixins.listProcesses;
|
|
114
|
-
listApps = infoMixins.listApps;
|
|
115
|
-
listFiles = copyMixins.listFiles;
|
|
116
|
-
pullFile = copyMixins.pullFile;
|
|
117
|
-
listDevices = listMixins.listDevices;
|
|
118
119
|
resolveSudoUser() {
|
|
119
120
|
if (!process.geteuid || process.geteuid() !== 0) {
|
|
120
121
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devicectl.js","sourceRoot":"","sources":["../../lib/devicectl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"devicectl.js","sourceRoot":"","sources":["../../lib/devicectl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../lib/mixins/process.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../lib/mixins/process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAE5C;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI5F;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,MAAM,GAAG,MAAM,EACpB,MAAM,EAAE,MAAM,GAAG,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.sendMemoryWarning = sendMemoryWarning;
|
|
7
4
|
exports.sendSignalToProcess = sendSignalToProcess;
|
|
8
5
|
exports.launchApp = launchApp;
|
|
9
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
10
6
|
/**
|
|
11
7
|
* Simulates memory warning for the process with the given PID
|
|
12
8
|
*/
|
|
@@ -34,8 +30,8 @@ async function launchApp(bundleId, opts = {}) {
|
|
|
34
30
|
if (terminateExisting) {
|
|
35
31
|
subcommandOptions.push('--terminate-existing');
|
|
36
32
|
}
|
|
37
|
-
if (
|
|
38
|
-
subcommandOptions.push('--environment-variables', JSON.stringify(
|
|
33
|
+
if (env && Object.keys(env).length > 0) {
|
|
34
|
+
subcommandOptions.push('--environment-variables', JSON.stringify(Object.fromEntries(Object.entries(env).map(([key, value]) => [key, String(value)]))));
|
|
39
35
|
}
|
|
40
36
|
// The bundle id should be the last to apply arguments properly.
|
|
41
37
|
// devicectl command might not raise exception while the order is wrong.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../../lib/mixins/process.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../../lib/mixins/process.ts"],"names":[],"mappings":";;AAMA,8CAIC;AAKD,kDAQC;AAOD,8BA8BC;AAzDD;;GAEG;AACI,KAAK,UAAU,iBAAiB,CAAkB,GAAoB;IAC3E,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,mBAAmB,CAAC,EAAE;QAC7D,iBAAiB,EAAE,CAAC,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC;KACvC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,mBAAmB,CAEvC,GAAoB,EACpB,MAAuB;IAEvB,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE;QAClD,iBAAiB,EAAE,CAAC,UAAU,EAAE,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC;KAChE,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,SAAS,CAE7B,QAAgB,EAChB,OAAyB,EAAE;IAE3B,MAAM,EAAC,GAAG,EAAE,iBAAiB,GAAG,KAAK,EAAC,GAAG,IAAI,CAAC;IAE9C,MAAM,iBAAiB,GAAa,EAAE,CAAC;IAEvC,IAAI,iBAAiB,EAAE,CAAC;QACtB,iBAAiB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,iBAAiB,CAAC,IAAI,CACpB,yBAAyB,EACzB,IAAI,CAAC,SAAS,CACZ,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACpF,CACF,CAAC;IACJ,CAAC;IAED,gEAAgE;IAChE,wEAAwE;IACxE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEjC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE;QAClD,iBAAiB;QACjB,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;AACL,CAAC"}
|
package/build/lib/types.d.ts
CHANGED
package/build/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,qBAAqB,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"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"}
|
package/lib/devicectl.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import {exec, SubProcess} from 'teen_process';
|
|
2
|
-
import _ from 'lodash';
|
|
3
2
|
import logger from '@appium/logger';
|
|
4
3
|
import type {DevicectlOptions, ExecuteOptions, ExecuteResult} from './types';
|
|
5
4
|
import * as processMixins from './mixins/process';
|
|
@@ -21,6 +20,19 @@ type SudoUser = {uid: number; gid: number};
|
|
|
21
20
|
export class Devicectl {
|
|
22
21
|
/** The unique device identifier */
|
|
23
22
|
public readonly udid: string;
|
|
23
|
+
|
|
24
|
+
sendMemoryWarning = processMixins.sendMemoryWarning;
|
|
25
|
+
sendSignalToProcess = processMixins.sendSignalToProcess;
|
|
26
|
+
launchApp = processMixins.launchApp;
|
|
27
|
+
|
|
28
|
+
listProcesses = infoMixins.listProcesses;
|
|
29
|
+
listApps = infoMixins.listApps;
|
|
30
|
+
|
|
31
|
+
listFiles = copyMixins.listFiles;
|
|
32
|
+
pullFile = copyMixins.pullFile;
|
|
33
|
+
|
|
34
|
+
listDevices = listMixins.listDevices;
|
|
35
|
+
|
|
24
36
|
private readonly preferNonRootWhenSudo: boolean;
|
|
25
37
|
private readonly sudoUser: SudoUser | null;
|
|
26
38
|
|
|
@@ -58,7 +70,7 @@ export class Devicectl {
|
|
|
58
70
|
|
|
59
71
|
const finalArgs = ['devicectl', ...subcommand, ...(noDevice ? [] : ['--device', this.udid])];
|
|
60
72
|
|
|
61
|
-
if (subcommandOptions &&
|
|
73
|
+
if (subcommandOptions && subcommandOptions.length > 0) {
|
|
62
74
|
finalArgs.push(
|
|
63
75
|
...(Array.isArray(subcommandOptions) ? subcommandOptions : [subcommandOptions]),
|
|
64
76
|
);
|
|
@@ -81,7 +93,7 @@ export class Devicectl {
|
|
|
81
93
|
|
|
82
94
|
const execOpts = {
|
|
83
95
|
...userOpts,
|
|
84
|
-
...(
|
|
96
|
+
...(typeof timeout === 'number' ? {timeout} : {}),
|
|
85
97
|
};
|
|
86
98
|
const result = await exec(XCRUN, finalArgs, execOpts);
|
|
87
99
|
|
|
@@ -91,22 +103,12 @@ export class Devicectl {
|
|
|
91
103
|
|
|
92
104
|
return result as ExecuteResult<T>;
|
|
93
105
|
} catch (e: any) {
|
|
94
|
-
throw new Error(`'${cmdStr}' failed. Original error: ${e.stderr || e.stdout || e.message}
|
|
106
|
+
throw new Error(`'${cmdStr}' failed. Original error: ${e.stderr || e.stdout || e.message}`, {
|
|
107
|
+
cause: e,
|
|
108
|
+
});
|
|
95
109
|
}
|
|
96
110
|
}
|
|
97
111
|
|
|
98
|
-
sendMemoryWarning = processMixins.sendMemoryWarning;
|
|
99
|
-
sendSignalToProcess = processMixins.sendSignalToProcess;
|
|
100
|
-
launchApp = processMixins.launchApp;
|
|
101
|
-
|
|
102
|
-
listProcesses = infoMixins.listProcesses;
|
|
103
|
-
listApps = infoMixins.listApps;
|
|
104
|
-
|
|
105
|
-
listFiles = copyMixins.listFiles;
|
|
106
|
-
pullFile = copyMixins.pullFile;
|
|
107
|
-
|
|
108
|
-
listDevices = listMixins.listDevices;
|
|
109
|
-
|
|
110
112
|
private resolveSudoUser(): SudoUser | null {
|
|
111
113
|
if (!process.geteuid || process.geteuid() !== 0) {
|
|
112
114
|
return null;
|
package/lib/mixins/process.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _ from 'lodash';
|
|
2
1
|
import type {LaunchAppOptions} from '../types';
|
|
3
2
|
import type {Devicectl} from '../devicectl';
|
|
4
3
|
|
|
@@ -42,10 +41,12 @@ export async function launchApp(
|
|
|
42
41
|
subcommandOptions.push('--terminate-existing');
|
|
43
42
|
}
|
|
44
43
|
|
|
45
|
-
if (
|
|
44
|
+
if (env && Object.keys(env).length > 0) {
|
|
46
45
|
subcommandOptions.push(
|
|
47
46
|
'--environment-variables',
|
|
48
|
-
JSON.stringify(
|
|
47
|
+
JSON.stringify(
|
|
48
|
+
Object.fromEntries(Object.entries(env).map(([key, value]) => [key, String(value)])),
|
|
49
|
+
),
|
|
49
50
|
);
|
|
50
51
|
}
|
|
51
52
|
|
package/lib/types.ts
CHANGED
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"device",
|
|
9
9
|
"xcode"
|
|
10
10
|
],
|
|
11
|
-
"version": "1.
|
|
11
|
+
"version": "1.3.1",
|
|
12
12
|
"author": "Appium Contributors",
|
|
13
13
|
"license": "Apache-2.0",
|
|
14
14
|
"repository": {
|
|
@@ -35,7 +35,6 @@
|
|
|
35
35
|
],
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@appium/logger": "^2.0.0-rc.1",
|
|
38
|
-
"lodash": "^4.2.1",
|
|
39
38
|
"teen_process": "^4.1.0"
|
|
40
39
|
},
|
|
41
40
|
"scripts": {
|
|
@@ -63,7 +62,6 @@
|
|
|
63
62
|
"@semantic-release/changelog": "^6.0.1",
|
|
64
63
|
"@semantic-release/git": "^10.0.1",
|
|
65
64
|
"@types/chai": "^5.2.3",
|
|
66
|
-
"@types/lodash": "^4.14.196",
|
|
67
65
|
"@types/mocha": "^10.0.1",
|
|
68
66
|
"@types/node": "^25.0.3",
|
|
69
67
|
"chai": "^6.0.0",
|