@matter/testing 0.11.0-alpha.0-20241027-de3c9d280
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/LICENSE +201 -0
- package/README.md +40 -0
- package/bin/test.js +7 -0
- package/chip/Dockerfile +23 -0
- package/dist/cjs/chip/pics-file.d.ts +20 -0
- package/dist/cjs/chip/pics-file.d.ts.map +1 -0
- package/dist/cjs/chip/pics-file.js +79 -0
- package/dist/cjs/chip/pics-file.js.map +6 -0
- package/dist/cjs/chip.d.ts +60 -0
- package/dist/cjs/chip.d.ts.map +1 -0
- package/dist/cjs/chip.js +306 -0
- package/dist/cjs/chip.js.map +6 -0
- package/dist/cjs/cli.d.ts +9 -0
- package/dist/cjs/cli.d.ts.map +1 -0
- package/dist/cjs/cli.js +115 -0
- package/dist/cjs/cli.js.map +6 -0
- package/dist/cjs/failure-detail.d.ts +19 -0
- package/dist/cjs/failure-detail.d.ts.map +1 -0
- package/dist/cjs/failure-detail.js +143 -0
- package/dist/cjs/failure-detail.js.map +6 -0
- package/dist/cjs/global-declarations.d.ts +38 -0
- package/dist/cjs/global-declarations.d.ts.map +1 -0
- package/dist/cjs/global-declarations.js +8 -0
- package/dist/cjs/global-declarations.js.map +6 -0
- package/dist/cjs/global-definitions.d.ts +7 -0
- package/dist/cjs/global-definitions.d.ts.map +1 -0
- package/dist/cjs/global-definitions.js +50 -0
- package/dist/cjs/global-definitions.js.map +6 -0
- package/dist/cjs/index.d.ts +10 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +27 -0
- package/dist/cjs/index.js.map +6 -0
- package/dist/cjs/mocha.d.ts +36 -0
- package/dist/cjs/mocha.d.ts.map +1 -0
- package/dist/cjs/mocha.js +155 -0
- package/dist/cjs/mocha.js.map +6 -0
- package/dist/cjs/mocharc.cjs +68 -0
- package/dist/cjs/mocharc.d.cts +7 -0
- package/dist/cjs/mocks/crypto.d.ts +7 -0
- package/dist/cjs/mocks/crypto.d.ts.map +1 -0
- package/dist/cjs/mocks/crypto.js +79 -0
- package/dist/cjs/mocks/crypto.js.map +6 -0
- package/dist/cjs/mocks/environment.d.ts +7 -0
- package/dist/cjs/mocks/environment.d.ts.map +1 -0
- package/dist/cjs/mocks/environment.js +7 -0
- package/dist/cjs/mocks/environment.js.map +6 -0
- package/dist/cjs/mocks/index.d.ts +10 -0
- package/dist/cjs/mocks/index.d.ts.map +1 -0
- package/dist/cjs/mocks/index.js +27 -0
- package/dist/cjs/mocks/index.js.map +6 -0
- package/dist/cjs/mocks/logging.d.ts +28 -0
- package/dist/cjs/mocks/logging.d.ts.map +1 -0
- package/dist/cjs/mocks/logging.js +93 -0
- package/dist/cjs/mocks/logging.js.map +6 -0
- package/dist/cjs/mocks/time.d.ts +88 -0
- package/dist/cjs/mocks/time.d.ts.map +1 -0
- package/dist/cjs/mocks/time.js +251 -0
- package/dist/cjs/mocks/time.js.map +6 -0
- package/dist/cjs/node.d.ts +9 -0
- package/dist/cjs/node.d.ts.map +1 -0
- package/dist/cjs/node.js +112 -0
- package/dist/cjs/node.js.map +6 -0
- package/dist/cjs/options.d.ts +19 -0
- package/dist/cjs/options.d.ts.map +1 -0
- package/dist/cjs/options.js +62 -0
- package/dist/cjs/options.js.map +6 -0
- package/dist/cjs/package.json +6 -0
- package/dist/cjs/reporter.d.ts +50 -0
- package/dist/cjs/reporter.d.ts.map +1 -0
- package/dist/cjs/reporter.js +137 -0
- package/dist/cjs/reporter.js.map +6 -0
- package/dist/cjs/runner.d.ts +21 -0
- package/dist/cjs/runner.d.ts.map +1 -0
- package/dist/cjs/runner.js +113 -0
- package/dist/cjs/runner.js.map +6 -0
- package/dist/cjs/util/docker.d.ts +27 -0
- package/dist/cjs/util/docker.d.ts.map +1 -0
- package/dist/cjs/util/docker.js +163 -0
- package/dist/cjs/util/docker.js.map +6 -0
- package/dist/cjs/util/files.d.ts +7 -0
- package/dist/cjs/util/files.d.ts.map +1 -0
- package/dist/cjs/util/files.js +42 -0
- package/dist/cjs/util/files.js.map +6 -0
- package/dist/cjs/util/node-shims.d.ts +7 -0
- package/dist/cjs/util/node-shims.d.ts.map +1 -0
- package/dist/cjs/util/node-shims.js +12 -0
- package/dist/cjs/util/node-shims.js.map +6 -0
- package/dist/cjs/util/trace-unhandled.d.ts +9 -0
- package/dist/cjs/util/trace-unhandled.d.ts.map +1 -0
- package/dist/cjs/util/trace-unhandled.js +48 -0
- package/dist/cjs/util/trace-unhandled.js.map +6 -0
- package/dist/cjs/util/wtf.d.ts +10 -0
- package/dist/cjs/util/wtf.d.ts.map +1 -0
- package/dist/cjs/util/wtf.js +53 -0
- package/dist/cjs/util/wtf.js.map +6 -0
- package/dist/cjs/web.d.ts +8 -0
- package/dist/cjs/web.d.ts.map +1 -0
- package/dist/cjs/web.js +165 -0
- package/dist/cjs/web.js.map +6 -0
- package/dist/esm/chip/pics-file.d.ts +20 -0
- package/dist/esm/chip/pics-file.d.ts.map +1 -0
- package/dist/esm/chip/pics-file.js +59 -0
- package/dist/esm/chip/pics-file.js.map +6 -0
- package/dist/esm/chip.d.ts +60 -0
- package/dist/esm/chip.d.ts.map +1 -0
- package/dist/esm/chip.js +286 -0
- package/dist/esm/chip.js.map +6 -0
- package/dist/esm/cli.d.ts +9 -0
- package/dist/esm/cli.d.ts.map +1 -0
- package/dist/esm/cli.js +85 -0
- package/dist/esm/cli.js.map +6 -0
- package/dist/esm/failure-detail.d.ts +19 -0
- package/dist/esm/failure-detail.d.ts.map +1 -0
- package/dist/esm/failure-detail.js +113 -0
- package/dist/esm/failure-detail.js.map +6 -0
- package/dist/esm/global-declarations.d.ts +38 -0
- package/dist/esm/global-declarations.d.ts.map +1 -0
- package/dist/esm/global-declarations.js +7 -0
- package/dist/esm/global-declarations.js.map +6 -0
- package/dist/esm/global-definitions.d.ts +7 -0
- package/dist/esm/global-definitions.d.ts.map +1 -0
- package/dist/esm/global-definitions.js +27 -0
- package/dist/esm/global-definitions.js.map +6 -0
- package/dist/esm/index.d.ts +10 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +10 -0
- package/dist/esm/index.js.map +6 -0
- package/dist/esm/mocha.d.ts +36 -0
- package/dist/esm/mocha.d.ts.map +1 -0
- package/dist/esm/mocha.js +135 -0
- package/dist/esm/mocha.js.map +6 -0
- package/dist/esm/mocharc.cjs +68 -0
- package/dist/esm/mocharc.d.cts +7 -0
- package/dist/esm/mocks/crypto.d.ts +7 -0
- package/dist/esm/mocks/crypto.d.ts.map +1 -0
- package/dist/esm/mocks/crypto.js +59 -0
- package/dist/esm/mocks/crypto.js.map +6 -0
- package/dist/esm/mocks/environment.d.ts +7 -0
- package/dist/esm/mocks/environment.d.ts.map +1 -0
- package/dist/esm/mocks/environment.js +6 -0
- package/dist/esm/mocks/environment.js.map +6 -0
- package/dist/esm/mocks/index.d.ts +10 -0
- package/dist/esm/mocks/index.d.ts.map +1 -0
- package/dist/esm/mocks/index.js +10 -0
- package/dist/esm/mocks/index.js.map +6 -0
- package/dist/esm/mocks/logging.d.ts +28 -0
- package/dist/esm/mocks/logging.d.ts.map +1 -0
- package/dist/esm/mocks/logging.js +63 -0
- package/dist/esm/mocks/logging.js.map +6 -0
- package/dist/esm/mocks/time.d.ts +88 -0
- package/dist/esm/mocks/time.d.ts.map +1 -0
- package/dist/esm/mocks/time.js +231 -0
- package/dist/esm/mocks/time.js.map +6 -0
- package/dist/esm/node.d.ts +9 -0
- package/dist/esm/node.d.ts.map +1 -0
- package/dist/esm/node.js +82 -0
- package/dist/esm/node.js.map +6 -0
- package/dist/esm/options.d.ts +19 -0
- package/dist/esm/options.d.ts.map +1 -0
- package/dist/esm/options.js +42 -0
- package/dist/esm/options.js.map +6 -0
- package/dist/esm/package.json +6 -0
- package/dist/esm/reporter.d.ts +50 -0
- package/dist/esm/reporter.d.ts.map +1 -0
- package/dist/esm/reporter.js +107 -0
- package/dist/esm/reporter.js.map +6 -0
- package/dist/esm/runner.d.ts +21 -0
- package/dist/esm/runner.d.ts.map +1 -0
- package/dist/esm/runner.js +83 -0
- package/dist/esm/runner.js.map +6 -0
- package/dist/esm/util/docker.d.ts +27 -0
- package/dist/esm/util/docker.d.ts.map +1 -0
- package/dist/esm/util/docker.js +133 -0
- package/dist/esm/util/docker.js.map +6 -0
- package/dist/esm/util/files.d.ts +7 -0
- package/dist/esm/util/files.d.ts.map +1 -0
- package/dist/esm/util/files.js +22 -0
- package/dist/esm/util/files.js.map +6 -0
- package/dist/esm/util/node-shims.d.ts +7 -0
- package/dist/esm/util/node-shims.d.ts.map +1 -0
- package/dist/esm/util/node-shims.js +11 -0
- package/dist/esm/util/node-shims.js.map +6 -0
- package/dist/esm/util/trace-unhandled.d.ts +9 -0
- package/dist/esm/util/trace-unhandled.d.ts.map +1 -0
- package/dist/esm/util/trace-unhandled.js +18 -0
- package/dist/esm/util/trace-unhandled.js.map +6 -0
- package/dist/esm/util/wtf.d.ts +10 -0
- package/dist/esm/util/wtf.d.ts.map +1 -0
- package/dist/esm/util/wtf.js +23 -0
- package/dist/esm/util/wtf.js.map +6 -0
- package/dist/esm/web.d.ts +8 -0
- package/dist/esm/web.d.ts.map +1 -0
- package/dist/esm/web.js +135 -0
- package/dist/esm/web.js.map +6 -0
- package/package.json +72 -0
- package/src/chip/pics-file.ts +71 -0
- package/src/chip/pics.properties +52 -0
- package/src/chip.ts +420 -0
- package/src/cli.ts +122 -0
- package/src/failure-detail.ts +126 -0
- package/src/global-declarations.ts +50 -0
- package/src/global-definitions.ts +35 -0
- package/src/index.html +16 -0
- package/src/index.ts +10 -0
- package/src/mocha.ts +162 -0
- package/src/mocharc.cjs +68 -0
- package/src/mocharc.d.cts +7 -0
- package/src/mocks/crypto.ts +70 -0
- package/src/mocks/environment.ts +7 -0
- package/src/mocks/index.ts +10 -0
- package/src/mocks/logging.ts +99 -0
- package/src/mocks/time.ts +295 -0
- package/src/node.ts +106 -0
- package/src/options.ts +58 -0
- package/src/reporter.ts +144 -0
- package/src/runner.ts +92 -0
- package/src/tsconfig.json +12 -0
- package/src/util/docker.ts +176 -0
- package/src/util/files.ts +25 -0
- package/src/util/node-shims.ts +13 -0
- package/src/util/trace-unhandled.ts +17 -0
- package/src/util/wtf.ts +25 -0
- package/src/web.ts +174 -0
- package/test/mocks/MockTimeTest.ts +113 -0
- package/test/tsconfig.json +18 -0
- package/tsconfig.json +5 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/options.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBA,SAAS,OAAoC,SAAsB,MAAS;AACxE,MAAI,QAAQ,IAAI,MAAM,UAAa,QAAQ,IAAI,MAAM,MAAM;AACvD,WAAO,QAAQ,IAAI;AAAA,EACvB;AAGA,MAAI,OAAO,YAAY,aAAa;AAChC;AAAA,EACJ;AAEA,SAAO,QAAQ,MACX,YACI,KACK,MAAM,aAAa,GAClB,IAAI,OAAK,EAAE,YAAY,CAAC,EACzB,KAAK,GAAG,CACrB;AACJ;AAEO,IAAU;AAAA,CAAV,CAAUA,iBAAV;AACI,WAAS,MAAM,OAAc,SAAsB;AACtD,UAAM,OAAO,OAAO,SAAS,MAAM;AACnC,QAAI,MAAM;AACN,YAAM,KAAK,IAAI;AAAA,IACnB;AACA,UAAM,QAAQ,OAAO,SAAS,OAAO;AACrC,QAAI,OAAO;AACP,YAAM,MAAM,KAAK;AAAA,IACrB;AACA,UAAM,SAAS,OAAO,SAAS,QAAQ;AACvC,QAAI,QAAQ;AACR,YAAM,OAAO;AAAA,IACjB;AACA,UAAM,UAAU,OAAO,SAAS,SAAS;AACzC,QAAI,SAAS;AACT,UAAI,OAAO,eAAe,aAAa;AACnC,mBAAW,UAAU;AAAA,MACzB;AAAA,IACJ;AAAA,EACJ;AAnBO,EAAAA,aAAS;AAAA,GADH;",
|
|
5
|
+
"names": ["TestOptions"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Progress } from "#tools";
|
|
7
|
+
import { FailureDetail } from "./failure-detail.js";
|
|
8
|
+
export type Stats = {
|
|
9
|
+
total: number;
|
|
10
|
+
complete: number;
|
|
11
|
+
failures: number;
|
|
12
|
+
};
|
|
13
|
+
export interface Reporter {
|
|
14
|
+
beginRun(name: string, stats?: Stats, supportsSuites?: boolean): void;
|
|
15
|
+
beginSuite(name: string[], stats?: Stats): void;
|
|
16
|
+
beginTest(name: string, stats?: Stats): void;
|
|
17
|
+
failTest(name: string, detail: FailureDetail): void;
|
|
18
|
+
endRun(stats?: Stats): void;
|
|
19
|
+
failRun(detail: FailureDetail): void;
|
|
20
|
+
}
|
|
21
|
+
export interface Failure {
|
|
22
|
+
suite: string[];
|
|
23
|
+
test: string;
|
|
24
|
+
detail: FailureDetail;
|
|
25
|
+
}
|
|
26
|
+
export declare abstract class ProgressReporter implements Reporter {
|
|
27
|
+
#private;
|
|
28
|
+
private progress;
|
|
29
|
+
private run;
|
|
30
|
+
private suite;
|
|
31
|
+
private failures;
|
|
32
|
+
private lastTitle?;
|
|
33
|
+
constructor(progress: Progress);
|
|
34
|
+
beginRun(name: string, stats: Stats | undefined, supportsSuites?: boolean): void;
|
|
35
|
+
beginSuite(name: string[]): void;
|
|
36
|
+
beginTest(name: string, stats?: Stats): void;
|
|
37
|
+
failTest(name: string, detail: FailureDetail): void;
|
|
38
|
+
abstract failRun(detail: FailureDetail): void;
|
|
39
|
+
endRun(stats?: Stats): void;
|
|
40
|
+
}
|
|
41
|
+
export declare class ConsoleProxyReporter implements Reporter {
|
|
42
|
+
static FLAG: string;
|
|
43
|
+
beginRun(name: string, stats?: Stats): void;
|
|
44
|
+
beginSuite(name: string[], stats?: Stats): void;
|
|
45
|
+
beginTest(name: string, stats?: Stats): void;
|
|
46
|
+
endRun(stats?: Stats): void;
|
|
47
|
+
failTest(name: string, detail: FailureDetail): void;
|
|
48
|
+
failRun(detail: FailureDetail): void;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=reporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/reporter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,MAAM,KAAK,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,QAAQ;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACtE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAChD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IACpD,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,OAAO;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,CAAC;CACzB;AAED,8BAAsB,gBAAiB,YAAW,QAAQ;;IAM1C,OAAO,CAAC,QAAQ;IAL5B,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,SAAS,CAAC,CAAS;gBAEP,QAAQ,EAAE,QAAQ;IAEtC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,cAAc,UAAO,GAAG,IAAI;IAS7E,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAIhC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAS5C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;IAQ5C,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAE7C,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;CAqC9B;AASD,qBAAa,oBAAqB,YAAW,QAAQ;IACjD,MAAM,CAAC,IAAI,SAAiB;IAE5B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;IAIpC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK;IAIxC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;IAIrC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK;IAIpB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;IAI5C,OAAO,CAAC,MAAM,EAAE,aAAa;CAGhC"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var reporter_exports = {};
|
|
30
|
+
__export(reporter_exports, {
|
|
31
|
+
ConsoleProxyReporter: () => ConsoleProxyReporter,
|
|
32
|
+
ProgressReporter: () => ProgressReporter
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(reporter_exports);
|
|
35
|
+
var import_ansi_colors = __toESM(require("ansi-colors"), 1);
|
|
36
|
+
var import_failure_detail = require("./failure-detail.js");
|
|
37
|
+
/**
|
|
38
|
+
* @license
|
|
39
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
40
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
41
|
+
*/
|
|
42
|
+
class ProgressReporter {
|
|
43
|
+
constructor(progress) {
|
|
44
|
+
this.progress = progress;
|
|
45
|
+
}
|
|
46
|
+
run = "";
|
|
47
|
+
suite = Array();
|
|
48
|
+
failures = Array();
|
|
49
|
+
lastTitle;
|
|
50
|
+
beginRun(name, stats, supportsSuites = true) {
|
|
51
|
+
this.run = name;
|
|
52
|
+
this.suite = [];
|
|
53
|
+
this.failures = [];
|
|
54
|
+
if (!supportsSuites) {
|
|
55
|
+
this.progress.update(this.#summarize(stats));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
beginSuite(name) {
|
|
59
|
+
this.suite = name;
|
|
60
|
+
}
|
|
61
|
+
beginTest(name, stats) {
|
|
62
|
+
const title = process.stdout.isTTY ? this.#formatName(this.suite, name) : this.suite[0];
|
|
63
|
+
if (this.lastTitle !== title) {
|
|
64
|
+
this.lastTitle = title;
|
|
65
|
+
this.progress.update(this.#summarize(stats), title);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
failTest(name, detail) {
|
|
69
|
+
this.failures.push({
|
|
70
|
+
suite: this.suite,
|
|
71
|
+
test: name,
|
|
72
|
+
detail
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
endRun(stats) {
|
|
76
|
+
if (this.failures.length) {
|
|
77
|
+
this.progress.failure(this.#summarize(stats));
|
|
78
|
+
this.#dumpFailures();
|
|
79
|
+
} else if (stats && !stats.complete) {
|
|
80
|
+
this.progress.failure("No tests found");
|
|
81
|
+
} else {
|
|
82
|
+
this.progress.success(this.#summarize(stats));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
#summarize(stats) {
|
|
86
|
+
let statStr;
|
|
87
|
+
if (stats) {
|
|
88
|
+
const complete = import_ansi_colors.default.dim(`${stats.complete}/${stats.total}`);
|
|
89
|
+
const failures = stats.failures ? import_ansi_colors.default.redBright(` ${stats.failures.toString()} failed`) : "";
|
|
90
|
+
statStr = ` ${complete}${failures}`;
|
|
91
|
+
} else {
|
|
92
|
+
statStr = "";
|
|
93
|
+
}
|
|
94
|
+
return `${import_ansi_colors.default.bold(this.run)}${statStr}`;
|
|
95
|
+
}
|
|
96
|
+
#dumpFailures() {
|
|
97
|
+
for (let i = 0; i < this.failures.length; i++) {
|
|
98
|
+
const failure = this.failures[i];
|
|
99
|
+
const index = `Failure ${import_ansi_colors.default.bold((i + 1).toString())} of ${this.failures.length}`;
|
|
100
|
+
process.stdout.write(`
|
|
101
|
+
${index} ${this.#formatName(failure.suite, failure.test)}
|
|
102
|
+
|
|
103
|
+
`);
|
|
104
|
+
import_failure_detail.FailureDetail.dump(failure.detail, " ");
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
#formatName(suite, test) {
|
|
108
|
+
return `${suite.join(" \u27A1 ")} \u27A1 ${import_ansi_colors.default.bold(test)}`;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
const actualConsole = console;
|
|
112
|
+
const actualLog = actualConsole.log;
|
|
113
|
+
function proxy(...args) {
|
|
114
|
+
actualLog.call(actualConsole, `${ConsoleProxyReporter.FLAG}${JSON.stringify(args)}`);
|
|
115
|
+
}
|
|
116
|
+
class ConsoleProxyReporter {
|
|
117
|
+
static FLAG = "<<REPORT>> ";
|
|
118
|
+
beginRun(name, stats) {
|
|
119
|
+
proxy("beginRun", name, stats);
|
|
120
|
+
}
|
|
121
|
+
beginSuite(name, stats) {
|
|
122
|
+
proxy("beginSuite", name, stats);
|
|
123
|
+
}
|
|
124
|
+
beginTest(name, stats) {
|
|
125
|
+
proxy("beginTest", name, stats);
|
|
126
|
+
}
|
|
127
|
+
endRun(stats) {
|
|
128
|
+
proxy("endRun", stats);
|
|
129
|
+
}
|
|
130
|
+
failTest(name, detail) {
|
|
131
|
+
proxy("failTest", name, detail);
|
|
132
|
+
}
|
|
133
|
+
failRun(detail) {
|
|
134
|
+
proxy("failRun", detail);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=reporter.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/reporter.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["colors"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Package, Progress } from "#tools";
|
|
7
|
+
import { TestOptions } from "./options.js";
|
|
8
|
+
import { Reporter } from "./reporter.js";
|
|
9
|
+
export declare class TestRunner {
|
|
10
|
+
readonly pkg: Package;
|
|
11
|
+
readonly progress: Progress;
|
|
12
|
+
readonly options: TestOptions;
|
|
13
|
+
readonly reporter: Reporter;
|
|
14
|
+
private spec;
|
|
15
|
+
constructor(pkg: Package, progress: Progress, options: TestOptions);
|
|
16
|
+
runNode(format?: "esm" | "cjs"): Promise<void>;
|
|
17
|
+
runWeb(manual?: boolean): Promise<void>;
|
|
18
|
+
loadFiles(format: "esm" | "cjs"): Promise<string[]>;
|
|
19
|
+
private run;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAO3C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAoB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAI3D,qBAAa,UAAU;IAKf,QAAQ,CAAC,GAAG,EAAE,OAAO;IACrB,QAAQ,CAAC,QAAQ,EAAE,QAAQ;IAC3B,QAAQ,CAAC,OAAO,EAAE,WAAW;IANjC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,OAAO,CAAC,IAAI,CAAmB;gBAGlB,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,WAAW;IA4B3B,OAAO,CAAC,MAAM,GAAE,KAAK,GAAG,KAAa;IAIrC,MAAM,CAAC,MAAM,UAAQ;IAIrB,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK;YAmBvB,GAAG;CAMpB"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var runner_exports = {};
|
|
30
|
+
__export(runner_exports, {
|
|
31
|
+
TestRunner: () => TestRunner
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(runner_exports);
|
|
34
|
+
var import_tools = require("#tools");
|
|
35
|
+
var import_ansi_colors = __toESM(require("ansi-colors"), 1);
|
|
36
|
+
var import_debug = __toESM(require("debug"), 1);
|
|
37
|
+
var import_path = require("path");
|
|
38
|
+
var import_chip = require("./chip.js");
|
|
39
|
+
var import_failure_detail = require("./failure-detail.js");
|
|
40
|
+
var import_node = require("./node.js");
|
|
41
|
+
var import_reporter = require("./reporter.js");
|
|
42
|
+
var import_files = require("./util/files.js");
|
|
43
|
+
var import_web = require("./web.js");
|
|
44
|
+
/**
|
|
45
|
+
* @license
|
|
46
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
47
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
48
|
+
*/
|
|
49
|
+
class TestRunner {
|
|
50
|
+
constructor(pkg, progress, options) {
|
|
51
|
+
this.pkg = pkg;
|
|
52
|
+
this.progress = progress;
|
|
53
|
+
this.options = options;
|
|
54
|
+
import_chip.Chip.config = { runner: this };
|
|
55
|
+
this.reporter = new class extends import_reporter.ProgressReporter {
|
|
56
|
+
constructor() {
|
|
57
|
+
super(progress);
|
|
58
|
+
}
|
|
59
|
+
failRun(detail) {
|
|
60
|
+
process.stdout.write("\n");
|
|
61
|
+
import_failure_detail.FailureDetail.dump(detail);
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
}();
|
|
65
|
+
if (options.spec === void 0) {
|
|
66
|
+
this.spec = ["test/**/*Test.ts"];
|
|
67
|
+
} else if (Array.isArray(options.spec)) {
|
|
68
|
+
this.spec = options.spec;
|
|
69
|
+
} else {
|
|
70
|
+
this.spec = [options.spec];
|
|
71
|
+
}
|
|
72
|
+
if (options.debug) {
|
|
73
|
+
import_debug.default.enable("mocha:*");
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
reporter;
|
|
77
|
+
spec = Array();
|
|
78
|
+
async runNode(format = "esm") {
|
|
79
|
+
await this.run(this.progress, () => (0, import_node.testNode)(this, format));
|
|
80
|
+
}
|
|
81
|
+
async runWeb(manual = false) {
|
|
82
|
+
await this.run(this.progress, () => (0, import_web.testWeb)(this, manual));
|
|
83
|
+
}
|
|
84
|
+
async loadFiles(format) {
|
|
85
|
+
const tests = [];
|
|
86
|
+
for (let spec of this.spec) {
|
|
87
|
+
spec = spec.replace(/\.ts$/, ".js");
|
|
88
|
+
spec = (0, import_path.relative)(this.pkg.path, spec);
|
|
89
|
+
if (!spec.startsWith(".") && !spec.startsWith("build/") && !spec.startsWith("dist/")) {
|
|
90
|
+
spec = `build/${format}/${spec}`;
|
|
91
|
+
}
|
|
92
|
+
tests.push(...await this.pkg.glob(spec));
|
|
93
|
+
}
|
|
94
|
+
if (!tests.length) {
|
|
95
|
+
fatal(`No files match ${this.spec.join(", ")}`);
|
|
96
|
+
}
|
|
97
|
+
return [...(0, import_files.listSupportFiles)(format), ...tests];
|
|
98
|
+
}
|
|
99
|
+
async run(progress, runner) {
|
|
100
|
+
await runner();
|
|
101
|
+
if (progress.status !== import_tools.Progress.Status.Success) {
|
|
102
|
+
fatal(`Test ${progress.status.toLowerCase()}, aborting`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
function fatal(message) {
|
|
107
|
+
process.stderr.write(import_ansi_colors.default.redBright(`
|
|
108
|
+
${message}
|
|
109
|
+
|
|
110
|
+
`));
|
|
111
|
+
process.exit(1);
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=runner.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/runner.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,mBAAkC;AAClC,yBAAmB;AACnB,mBAAkB;AAClB,kBAAyB;AACzB,kBAAqB;AACrB,4BAA8B;AAC9B,kBAAyB;AAEzB,sBAA2C;AAC3C,mBAAiC;AACjC,iBAAwB;AAhBxB;AAAA;AAAA;AAAA;AAAA;AAkBO,MAAM,WAAW;AAAA,EAIpB,YACa,KACA,UACA,SACX;AAHW;AACA;AACA;AAET,qBAAK,SAAS,EAAE,QAAQ,KAAK;AAE7B,SAAK,WAAW,IAAK,cAAc,iCAAiB;AAAA,MAChD,cAAc;AACV,cAAM,QAAQ;AAAA,MAClB;AAAA,MACS,QAAQ,QAAuB;AACpC,gBAAQ,OAAO,MAAM,IAAI;AACzB,4CAAc,KAAK,MAAM;AACzB,gBAAQ,KAAK,CAAC;AAAA,MAClB;AAAA,IACJ,EAAG;AAEH,QAAI,QAAQ,SAAS,QAAW;AAC5B,WAAK,OAAO,CAAC,kBAAkB;AAAA,IACnC,WAAW,MAAM,QAAQ,QAAQ,IAAI,GAAG;AACpC,WAAK,OAAO,QAAQ;AAAA,IACxB,OAAO;AACH,WAAK,OAAO,CAAC,QAAQ,IAAI;AAAA,IAC7B;AAEA,QAAI,QAAQ,OAAO;AACf,mBAAAA,QAAM,OAAO,SAAS;AAAA,IAC1B;AAAA,EACJ;AAAA,EAhCS;AAAA,EACD,OAAO,MAAc;AAAA,EAiC7B,MAAM,QAAQ,SAAwB,OAAO;AACzC,UAAM,KAAK,IAAI,KAAK,UAAU,UAAM,sBAAS,MAAM,MAAM,CAAC;AAAA,EAC9D;AAAA,EAEA,MAAM,OAAO,SAAS,OAAO;AACzB,UAAM,KAAK,IAAI,KAAK,UAAU,UAAM,oBAAQ,MAAM,MAAM,CAAC;AAAA,EAC7D;AAAA,EAEA,MAAM,UAAU,QAAuB;AACnC,UAAM,QAAQ,CAAC;AACf,aAAS,QAAQ,KAAK,MAAM;AACxB,aAAO,KAAK,QAAQ,SAAS,KAAK;AAClC,iBAAO,sBAAS,KAAK,IAAI,MAAM,IAAI;AACnC,UAAI,CAAC,KAAK,WAAW,GAAG,KAAK,CAAC,KAAK,WAAW,QAAQ,KAAK,CAAC,KAAK,WAAW,OAAO,GAAG;AAClF,eAAO,SAAS,MAAM,IAAI,IAAI;AAAA,MAClC;AAEA,YAAM,KAAK,GAAI,MAAM,KAAK,IAAI,KAAK,IAAI,CAAE;AAAA,IAC7C;AAEA,QAAI,CAAC,MAAM,QAAQ;AACf,YAAM,kBAAkB,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE;AAAA,IAClD;AAEA,WAAO,CAAC,OAAG,+BAAiB,MAAM,GAAG,GAAG,KAAK;AAAA,EACjD;AAAA,EAEA,MAAc,IAAI,UAAoB,QAA6B;AAC/D,UAAM,OAAO;AACb,QAAI,SAAS,WAAW,sBAAS,OAAO,SAAS;AAC7C,YAAM,QAAQ,SAAS,OAAO,YAAY,CAAC,YAAY;AAAA,IAC3D;AAAA,EACJ;AACJ;AAEA,SAAS,MAAM,SAAiB;AAC5B,UAAQ,OAAO,MAAM,mBAAAC,QAAO,UAAU;AAAA,EAAK,OAAO;AAAA;AAAA,CAAM,CAAC;AACzD,UAAQ,KAAK,CAAC;AAClB;",
|
|
5
|
+
"names": ["debug", "colors"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* A high-level docker control API specialized for our purposes.
|
|
8
|
+
*/
|
|
9
|
+
export declare class Docker {
|
|
10
|
+
#private;
|
|
11
|
+
run(imageName: string, options?: Docker.RunOptions): AsyncGenerator<string, void, unknown>;
|
|
12
|
+
readFileFromImage(imageName: string, pathInImage: string): Promise<string>;
|
|
13
|
+
resolveGlobFromImage(imageName: string, glob: string): Promise<string[]>;
|
|
14
|
+
buildImage(name: string, path: string): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
declare namespace Docker {
|
|
17
|
+
interface RunOptions {
|
|
18
|
+
entrypoint?: string | string[];
|
|
19
|
+
args?: string | string[];
|
|
20
|
+
env?: Record<string, string>;
|
|
21
|
+
privileged?: boolean;
|
|
22
|
+
binds?: Record<string, string>;
|
|
23
|
+
network?: "host";
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=docker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../../src/util/docker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH;;GAEG;AACH,qBAAa,MAAM;;IAGR,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,UAAU;IAkDnD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAaxD,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAgBpD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CA6B9C;AAED,kBAAU,MAAM,CAAC;IACb,UAAiB,UAAU;QACvB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QACzB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB;CACJ"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var docker_exports = {};
|
|
30
|
+
__export(docker_exports, {
|
|
31
|
+
Docker: () => Docker
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(docker_exports);
|
|
34
|
+
var import_promises = require("fs/promises");
|
|
35
|
+
var import_stream = require("stream");
|
|
36
|
+
var import_dockerode = __toESM(require("dockerode"), 1);
|
|
37
|
+
/**
|
|
38
|
+
* @license
|
|
39
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
40
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
41
|
+
*/
|
|
42
|
+
class Docker {
|
|
43
|
+
#intf = new import_dockerode.default();
|
|
44
|
+
async *run(imageName, options) {
|
|
45
|
+
const { args, createOptions } = configureRun(options);
|
|
46
|
+
let resolve;
|
|
47
|
+
let reject;
|
|
48
|
+
let signal;
|
|
49
|
+
function newSignal() {
|
|
50
|
+
signal = new Promise((newResolve, newReject) => {
|
|
51
|
+
resolve = (text) => {
|
|
52
|
+
newResolve(text);
|
|
53
|
+
newSignal();
|
|
54
|
+
};
|
|
55
|
+
reject = newReject;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
newSignal();
|
|
59
|
+
const output = new import_stream.Writable();
|
|
60
|
+
output._write = (chunk, _encoding, done) => {
|
|
61
|
+
resolve(chunk.toString("utf-8"));
|
|
62
|
+
newSignal();
|
|
63
|
+
done();
|
|
64
|
+
};
|
|
65
|
+
this.#intf.run(imageName, args, output, createOptions).then(
|
|
66
|
+
(result) => {
|
|
67
|
+
const statusCode = result?.[0]?.StatusCode;
|
|
68
|
+
if (typeof statusCode !== "number") {
|
|
69
|
+
throw new Error(`Process exit status "${statusCode}" is non-numeric`);
|
|
70
|
+
}
|
|
71
|
+
if (statusCode === 0) {
|
|
72
|
+
resolve(void 0);
|
|
73
|
+
} else {
|
|
74
|
+
reject(new Error(`Process exited with error status "${statusCode}"`));
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
(error) => reject(error)
|
|
78
|
+
);
|
|
79
|
+
while (true) {
|
|
80
|
+
const value = await signal;
|
|
81
|
+
if (value === void 0) {
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
yield value;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
async readFileFromImage(imageName, pathInImage) {
|
|
88
|
+
const output = Array();
|
|
89
|
+
for await (const chunk of this.run(imageName, {
|
|
90
|
+
entrypoint: "/usr/bin/cat",
|
|
91
|
+
args: [pathInImage]
|
|
92
|
+
})) {
|
|
93
|
+
output.push(chunk);
|
|
94
|
+
}
|
|
95
|
+
return output.join("").replace(/\r\n/g, "\n");
|
|
96
|
+
}
|
|
97
|
+
async resolveGlobFromImage(imageName, glob) {
|
|
98
|
+
const output = Array();
|
|
99
|
+
for await (const chunk of this.run(imageName, {
|
|
100
|
+
entrypoint: ["/bin/bash", "-c"],
|
|
101
|
+
args: `ls ${glob}`
|
|
102
|
+
})) {
|
|
103
|
+
output.push(chunk);
|
|
104
|
+
}
|
|
105
|
+
return output.join("").split(/\r?\n/).filter((line) => line !== "");
|
|
106
|
+
}
|
|
107
|
+
async buildImage(name, path) {
|
|
108
|
+
const files = await (0, import_promises.readdir)(path);
|
|
109
|
+
const stream = await this.#intf.buildImage(
|
|
110
|
+
{
|
|
111
|
+
context: path,
|
|
112
|
+
src: files
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
t: name
|
|
116
|
+
}
|
|
117
|
+
);
|
|
118
|
+
await new Promise((resolve, reject) => {
|
|
119
|
+
this.#intf.modem.followProgress(stream, (error, result) => {
|
|
120
|
+
if (error) {
|
|
121
|
+
reject(error);
|
|
122
|
+
}
|
|
123
|
+
const finalMessage = result[result.length - 1];
|
|
124
|
+
const errorMessage = finalMessage?.error ?? finalMessage?.errorDetail?.message;
|
|
125
|
+
if (errorMessage) {
|
|
126
|
+
reject(new Error(errorMessage));
|
|
127
|
+
}
|
|
128
|
+
resolve();
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
function configureRun(options) {
|
|
134
|
+
if (options === void 0) {
|
|
135
|
+
options = {};
|
|
136
|
+
}
|
|
137
|
+
let { args } = options;
|
|
138
|
+
if (args === void 0) {
|
|
139
|
+
args = [];
|
|
140
|
+
} else if (typeof args === "string") {
|
|
141
|
+
args = [args];
|
|
142
|
+
}
|
|
143
|
+
const createOptions = {
|
|
144
|
+
HostConfig: {
|
|
145
|
+
AutoRemove: true
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
const { entrypoint, env, binds, network } = options ?? {};
|
|
149
|
+
if (entrypoint !== void 0) {
|
|
150
|
+
createOptions.Entrypoint = entrypoint;
|
|
151
|
+
}
|
|
152
|
+
if (env) {
|
|
153
|
+
createOptions.Env = Object.entries(env).map(([k, v]) => `${k}=${v}`);
|
|
154
|
+
}
|
|
155
|
+
if (binds) {
|
|
156
|
+
createOptions.HostConfig.Binds = Object.entries(binds).map(([k, v]) => `${k}:${v}`);
|
|
157
|
+
}
|
|
158
|
+
if (network) {
|
|
159
|
+
createOptions.HostConfig.NetworkMode = network;
|
|
160
|
+
}
|
|
161
|
+
return { args, createOptions };
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=docker.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/util/docker.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["Dockerode"]
|
|
6
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/util/files.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,wBAAgB,gBAAgB,CAAC,MAAM,SAAQ,YAe9C"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var files_exports = {};
|
|
20
|
+
__export(files_exports, {
|
|
21
|
+
listSupportFiles: () => listSupportFiles
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(files_exports);
|
|
24
|
+
var import_tools = require("#tools");
|
|
25
|
+
var import_fs = require("fs");
|
|
26
|
+
/**
|
|
27
|
+
* @license
|
|
28
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
29
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
30
|
+
*/
|
|
31
|
+
function listSupportFiles(format = "cjs") {
|
|
32
|
+
const files = Array();
|
|
33
|
+
const testing = import_tools.Package.tools.findPackage("@matter/testing");
|
|
34
|
+
files.push(testing.resolve("dist/esm/global-definitions.js"));
|
|
35
|
+
files.push(testing.resolve("dist/esm/mocks/index.js"));
|
|
36
|
+
const config = new import_tools.Package().resolve(`build/${format}/test/test.config.js`);
|
|
37
|
+
if ((0, import_fs.existsSync)(config)) {
|
|
38
|
+
files.push(config);
|
|
39
|
+
}
|
|
40
|
+
return files;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=files.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/util/files.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,mBAAwB;AACxB,gBAA2B;AAP3B;AAAA;AAAA;AAAA;AAAA;AASO,SAAS,iBAAiB,SAAS,OAAO;AAC7C,QAAM,QAAQ,MAAc;AAG5B,QAAM,UAAU,qBAAQ,MAAM,YAAY,iBAAiB;AAC3D,QAAM,KAAK,QAAQ,QAAQ,gCAAgC,CAAC;AAC5D,QAAM,KAAK,QAAQ,QAAQ,yBAAyB,CAAC;AAGrD,QAAM,SAAS,IAAI,qBAAQ,EAAE,QAAQ,SAAS,MAAM,sBAAsB;AAC1E,UAAI,sBAAW,MAAM,GAAG;AACpB,UAAM,KAAK,MAAM;AAAA,EACrB;AAEA,SAAO;AACX;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-shims.d.ts","sourceRoot":"","sources":["../../../src/util/node-shims.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,OAAO,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var import_mocha = require("mocha");
|
|
3
|
+
var import_node_crypto = require("node:crypto");
|
|
4
|
+
/**
|
|
5
|
+
* @license
|
|
6
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
7
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
8
|
+
*/
|
|
9
|
+
if (globalThis.crypto === void 0) {
|
|
10
|
+
Object.assign(globalThis, { crypto: import_node_crypto.webcrypto });
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=node-shims.js.map
|