@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.
Files changed (226) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +40 -0
  3. package/bin/test.js +7 -0
  4. package/chip/Dockerfile +23 -0
  5. package/dist/cjs/chip/pics-file.d.ts +20 -0
  6. package/dist/cjs/chip/pics-file.d.ts.map +1 -0
  7. package/dist/cjs/chip/pics-file.js +79 -0
  8. package/dist/cjs/chip/pics-file.js.map +6 -0
  9. package/dist/cjs/chip.d.ts +60 -0
  10. package/dist/cjs/chip.d.ts.map +1 -0
  11. package/dist/cjs/chip.js +306 -0
  12. package/dist/cjs/chip.js.map +6 -0
  13. package/dist/cjs/cli.d.ts +9 -0
  14. package/dist/cjs/cli.d.ts.map +1 -0
  15. package/dist/cjs/cli.js +115 -0
  16. package/dist/cjs/cli.js.map +6 -0
  17. package/dist/cjs/failure-detail.d.ts +19 -0
  18. package/dist/cjs/failure-detail.d.ts.map +1 -0
  19. package/dist/cjs/failure-detail.js +143 -0
  20. package/dist/cjs/failure-detail.js.map +6 -0
  21. package/dist/cjs/global-declarations.d.ts +38 -0
  22. package/dist/cjs/global-declarations.d.ts.map +1 -0
  23. package/dist/cjs/global-declarations.js +8 -0
  24. package/dist/cjs/global-declarations.js.map +6 -0
  25. package/dist/cjs/global-definitions.d.ts +7 -0
  26. package/dist/cjs/global-definitions.d.ts.map +1 -0
  27. package/dist/cjs/global-definitions.js +50 -0
  28. package/dist/cjs/global-definitions.js.map +6 -0
  29. package/dist/cjs/index.d.ts +10 -0
  30. package/dist/cjs/index.d.ts.map +1 -0
  31. package/dist/cjs/index.js +27 -0
  32. package/dist/cjs/index.js.map +6 -0
  33. package/dist/cjs/mocha.d.ts +36 -0
  34. package/dist/cjs/mocha.d.ts.map +1 -0
  35. package/dist/cjs/mocha.js +155 -0
  36. package/dist/cjs/mocha.js.map +6 -0
  37. package/dist/cjs/mocharc.cjs +68 -0
  38. package/dist/cjs/mocharc.d.cts +7 -0
  39. package/dist/cjs/mocks/crypto.d.ts +7 -0
  40. package/dist/cjs/mocks/crypto.d.ts.map +1 -0
  41. package/dist/cjs/mocks/crypto.js +79 -0
  42. package/dist/cjs/mocks/crypto.js.map +6 -0
  43. package/dist/cjs/mocks/environment.d.ts +7 -0
  44. package/dist/cjs/mocks/environment.d.ts.map +1 -0
  45. package/dist/cjs/mocks/environment.js +7 -0
  46. package/dist/cjs/mocks/environment.js.map +6 -0
  47. package/dist/cjs/mocks/index.d.ts +10 -0
  48. package/dist/cjs/mocks/index.d.ts.map +1 -0
  49. package/dist/cjs/mocks/index.js +27 -0
  50. package/dist/cjs/mocks/index.js.map +6 -0
  51. package/dist/cjs/mocks/logging.d.ts +28 -0
  52. package/dist/cjs/mocks/logging.d.ts.map +1 -0
  53. package/dist/cjs/mocks/logging.js +93 -0
  54. package/dist/cjs/mocks/logging.js.map +6 -0
  55. package/dist/cjs/mocks/time.d.ts +88 -0
  56. package/dist/cjs/mocks/time.d.ts.map +1 -0
  57. package/dist/cjs/mocks/time.js +251 -0
  58. package/dist/cjs/mocks/time.js.map +6 -0
  59. package/dist/cjs/node.d.ts +9 -0
  60. package/dist/cjs/node.d.ts.map +1 -0
  61. package/dist/cjs/node.js +112 -0
  62. package/dist/cjs/node.js.map +6 -0
  63. package/dist/cjs/options.d.ts +19 -0
  64. package/dist/cjs/options.d.ts.map +1 -0
  65. package/dist/cjs/options.js +62 -0
  66. package/dist/cjs/options.js.map +6 -0
  67. package/dist/cjs/package.json +6 -0
  68. package/dist/cjs/reporter.d.ts +50 -0
  69. package/dist/cjs/reporter.d.ts.map +1 -0
  70. package/dist/cjs/reporter.js +137 -0
  71. package/dist/cjs/reporter.js.map +6 -0
  72. package/dist/cjs/runner.d.ts +21 -0
  73. package/dist/cjs/runner.d.ts.map +1 -0
  74. package/dist/cjs/runner.js +113 -0
  75. package/dist/cjs/runner.js.map +6 -0
  76. package/dist/cjs/util/docker.d.ts +27 -0
  77. package/dist/cjs/util/docker.d.ts.map +1 -0
  78. package/dist/cjs/util/docker.js +163 -0
  79. package/dist/cjs/util/docker.js.map +6 -0
  80. package/dist/cjs/util/files.d.ts +7 -0
  81. package/dist/cjs/util/files.d.ts.map +1 -0
  82. package/dist/cjs/util/files.js +42 -0
  83. package/dist/cjs/util/files.js.map +6 -0
  84. package/dist/cjs/util/node-shims.d.ts +7 -0
  85. package/dist/cjs/util/node-shims.d.ts.map +1 -0
  86. package/dist/cjs/util/node-shims.js +12 -0
  87. package/dist/cjs/util/node-shims.js.map +6 -0
  88. package/dist/cjs/util/trace-unhandled.d.ts +9 -0
  89. package/dist/cjs/util/trace-unhandled.d.ts.map +1 -0
  90. package/dist/cjs/util/trace-unhandled.js +48 -0
  91. package/dist/cjs/util/trace-unhandled.js.map +6 -0
  92. package/dist/cjs/util/wtf.d.ts +10 -0
  93. package/dist/cjs/util/wtf.d.ts.map +1 -0
  94. package/dist/cjs/util/wtf.js +53 -0
  95. package/dist/cjs/util/wtf.js.map +6 -0
  96. package/dist/cjs/web.d.ts +8 -0
  97. package/dist/cjs/web.d.ts.map +1 -0
  98. package/dist/cjs/web.js +165 -0
  99. package/dist/cjs/web.js.map +6 -0
  100. package/dist/esm/chip/pics-file.d.ts +20 -0
  101. package/dist/esm/chip/pics-file.d.ts.map +1 -0
  102. package/dist/esm/chip/pics-file.js +59 -0
  103. package/dist/esm/chip/pics-file.js.map +6 -0
  104. package/dist/esm/chip.d.ts +60 -0
  105. package/dist/esm/chip.d.ts.map +1 -0
  106. package/dist/esm/chip.js +286 -0
  107. package/dist/esm/chip.js.map +6 -0
  108. package/dist/esm/cli.d.ts +9 -0
  109. package/dist/esm/cli.d.ts.map +1 -0
  110. package/dist/esm/cli.js +85 -0
  111. package/dist/esm/cli.js.map +6 -0
  112. package/dist/esm/failure-detail.d.ts +19 -0
  113. package/dist/esm/failure-detail.d.ts.map +1 -0
  114. package/dist/esm/failure-detail.js +113 -0
  115. package/dist/esm/failure-detail.js.map +6 -0
  116. package/dist/esm/global-declarations.d.ts +38 -0
  117. package/dist/esm/global-declarations.d.ts.map +1 -0
  118. package/dist/esm/global-declarations.js +7 -0
  119. package/dist/esm/global-declarations.js.map +6 -0
  120. package/dist/esm/global-definitions.d.ts +7 -0
  121. package/dist/esm/global-definitions.d.ts.map +1 -0
  122. package/dist/esm/global-definitions.js +27 -0
  123. package/dist/esm/global-definitions.js.map +6 -0
  124. package/dist/esm/index.d.ts +10 -0
  125. package/dist/esm/index.d.ts.map +1 -0
  126. package/dist/esm/index.js +10 -0
  127. package/dist/esm/index.js.map +6 -0
  128. package/dist/esm/mocha.d.ts +36 -0
  129. package/dist/esm/mocha.d.ts.map +1 -0
  130. package/dist/esm/mocha.js +135 -0
  131. package/dist/esm/mocha.js.map +6 -0
  132. package/dist/esm/mocharc.cjs +68 -0
  133. package/dist/esm/mocharc.d.cts +7 -0
  134. package/dist/esm/mocks/crypto.d.ts +7 -0
  135. package/dist/esm/mocks/crypto.d.ts.map +1 -0
  136. package/dist/esm/mocks/crypto.js +59 -0
  137. package/dist/esm/mocks/crypto.js.map +6 -0
  138. package/dist/esm/mocks/environment.d.ts +7 -0
  139. package/dist/esm/mocks/environment.d.ts.map +1 -0
  140. package/dist/esm/mocks/environment.js +6 -0
  141. package/dist/esm/mocks/environment.js.map +6 -0
  142. package/dist/esm/mocks/index.d.ts +10 -0
  143. package/dist/esm/mocks/index.d.ts.map +1 -0
  144. package/dist/esm/mocks/index.js +10 -0
  145. package/dist/esm/mocks/index.js.map +6 -0
  146. package/dist/esm/mocks/logging.d.ts +28 -0
  147. package/dist/esm/mocks/logging.d.ts.map +1 -0
  148. package/dist/esm/mocks/logging.js +63 -0
  149. package/dist/esm/mocks/logging.js.map +6 -0
  150. package/dist/esm/mocks/time.d.ts +88 -0
  151. package/dist/esm/mocks/time.d.ts.map +1 -0
  152. package/dist/esm/mocks/time.js +231 -0
  153. package/dist/esm/mocks/time.js.map +6 -0
  154. package/dist/esm/node.d.ts +9 -0
  155. package/dist/esm/node.d.ts.map +1 -0
  156. package/dist/esm/node.js +82 -0
  157. package/dist/esm/node.js.map +6 -0
  158. package/dist/esm/options.d.ts +19 -0
  159. package/dist/esm/options.d.ts.map +1 -0
  160. package/dist/esm/options.js +42 -0
  161. package/dist/esm/options.js.map +6 -0
  162. package/dist/esm/package.json +6 -0
  163. package/dist/esm/reporter.d.ts +50 -0
  164. package/dist/esm/reporter.d.ts.map +1 -0
  165. package/dist/esm/reporter.js +107 -0
  166. package/dist/esm/reporter.js.map +6 -0
  167. package/dist/esm/runner.d.ts +21 -0
  168. package/dist/esm/runner.d.ts.map +1 -0
  169. package/dist/esm/runner.js +83 -0
  170. package/dist/esm/runner.js.map +6 -0
  171. package/dist/esm/util/docker.d.ts +27 -0
  172. package/dist/esm/util/docker.d.ts.map +1 -0
  173. package/dist/esm/util/docker.js +133 -0
  174. package/dist/esm/util/docker.js.map +6 -0
  175. package/dist/esm/util/files.d.ts +7 -0
  176. package/dist/esm/util/files.d.ts.map +1 -0
  177. package/dist/esm/util/files.js +22 -0
  178. package/dist/esm/util/files.js.map +6 -0
  179. package/dist/esm/util/node-shims.d.ts +7 -0
  180. package/dist/esm/util/node-shims.d.ts.map +1 -0
  181. package/dist/esm/util/node-shims.js +11 -0
  182. package/dist/esm/util/node-shims.js.map +6 -0
  183. package/dist/esm/util/trace-unhandled.d.ts +9 -0
  184. package/dist/esm/util/trace-unhandled.d.ts.map +1 -0
  185. package/dist/esm/util/trace-unhandled.js +18 -0
  186. package/dist/esm/util/trace-unhandled.js.map +6 -0
  187. package/dist/esm/util/wtf.d.ts +10 -0
  188. package/dist/esm/util/wtf.d.ts.map +1 -0
  189. package/dist/esm/util/wtf.js +23 -0
  190. package/dist/esm/util/wtf.js.map +6 -0
  191. package/dist/esm/web.d.ts +8 -0
  192. package/dist/esm/web.d.ts.map +1 -0
  193. package/dist/esm/web.js +135 -0
  194. package/dist/esm/web.js.map +6 -0
  195. package/package.json +72 -0
  196. package/src/chip/pics-file.ts +71 -0
  197. package/src/chip/pics.properties +52 -0
  198. package/src/chip.ts +420 -0
  199. package/src/cli.ts +122 -0
  200. package/src/failure-detail.ts +126 -0
  201. package/src/global-declarations.ts +50 -0
  202. package/src/global-definitions.ts +35 -0
  203. package/src/index.html +16 -0
  204. package/src/index.ts +10 -0
  205. package/src/mocha.ts +162 -0
  206. package/src/mocharc.cjs +68 -0
  207. package/src/mocharc.d.cts +7 -0
  208. package/src/mocks/crypto.ts +70 -0
  209. package/src/mocks/environment.ts +7 -0
  210. package/src/mocks/index.ts +10 -0
  211. package/src/mocks/logging.ts +99 -0
  212. package/src/mocks/time.ts +295 -0
  213. package/src/node.ts +106 -0
  214. package/src/options.ts +58 -0
  215. package/src/reporter.ts +144 -0
  216. package/src/runner.ts +92 -0
  217. package/src/tsconfig.json +12 -0
  218. package/src/util/docker.ts +176 -0
  219. package/src/util/files.ts +25 -0
  220. package/src/util/node-shims.ts +13 -0
  221. package/src/util/trace-unhandled.ts +17 -0
  222. package/src/util/wtf.ts +25 -0
  223. package/src/web.ts +174 -0
  224. package/test/mocks/MockTimeTest.ts +113 -0
  225. package/test/tsconfig.json +18 -0
  226. 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,6 @@
1
+ {
2
+ "type": "commonjs",
3
+ "imports": {
4
+ "#tools": "@matter/tools"
5
+ }
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,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export declare function listSupportFiles(format?: string): string[];
7
+ //# sourceMappingURL=files.d.ts.map
@@ -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,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import "mocha";
7
+ //# sourceMappingURL=node-shims.d.ts.map
@@ -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