@matter/tools 0.11.0-alpha.0-20241005-e3e4e4a7a

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 (414) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +100 -0
  3. package/bin/build.js +10 -0
  4. package/bin/prepare-chip.js +5 -0
  5. package/bin/run.js +7 -0
  6. package/bin/test.js +7 -0
  7. package/bin/version.js +7 -0
  8. package/chip/Dockerfile +23 -0
  9. package/dist/cjs/building/builder.d.ts +35 -0
  10. package/dist/cjs/building/builder.d.ts.map +1 -0
  11. package/dist/cjs/building/builder.js +210 -0
  12. package/dist/cjs/building/builder.js.map +6 -0
  13. package/dist/cjs/building/cli.d.ts +7 -0
  14. package/dist/cjs/building/cli.d.ts.map +1 -0
  15. package/dist/cjs/building/cli.js +100 -0
  16. package/dist/cjs/building/cli.js.map +6 -0
  17. package/dist/cjs/building/error.d.ts +16 -0
  18. package/dist/cjs/building/error.d.ts.map +1 -0
  19. package/dist/cjs/building/error.js +50 -0
  20. package/dist/cjs/building/error.js.map +6 -0
  21. package/dist/cjs/building/graph.d.ts +37 -0
  22. package/dist/cjs/building/graph.d.ts.map +1 -0
  23. package/dist/cjs/building/graph.js +222 -0
  24. package/dist/cjs/building/graph.js.map +6 -0
  25. package/dist/cjs/building/project.d.ts +56 -0
  26. package/dist/cjs/building/project.d.ts.map +1 -0
  27. package/dist/cjs/building/project.js +239 -0
  28. package/dist/cjs/building/project.js.map +6 -0
  29. package/dist/cjs/building/tsconfig.d.ts +16 -0
  30. package/dist/cjs/building/tsconfig.d.ts.map +1 -0
  31. package/dist/cjs/building/tsconfig.js +70 -0
  32. package/dist/cjs/building/tsconfig.js.map +6 -0
  33. package/dist/cjs/building/typescript/context.d.ts +16 -0
  34. package/dist/cjs/building/typescript/context.d.ts.map +1 -0
  35. package/dist/cjs/building/typescript/context.js +82 -0
  36. package/dist/cjs/building/typescript/context.js.map +6 -0
  37. package/dist/cjs/building/typescript/incremental-compiler.d.ts +10 -0
  38. package/dist/cjs/building/typescript/incremental-compiler.d.ts.map +1 -0
  39. package/dist/cjs/building/typescript/incremental-compiler.js +119 -0
  40. package/dist/cjs/building/typescript/incremental-compiler.js.map +6 -0
  41. package/dist/cjs/building/typescript/language-service.d.ts +13 -0
  42. package/dist/cjs/building/typescript/language-service.d.ts.map +1 -0
  43. package/dist/cjs/building/typescript/language-service.js +109 -0
  44. package/dist/cjs/building/typescript/language-service.js.map +6 -0
  45. package/dist/cjs/building/typescript/solution-builder.d.ts +10 -0
  46. package/dist/cjs/building/typescript/solution-builder.d.ts.map +1 -0
  47. package/dist/cjs/building/typescript/solution-builder.js +72 -0
  48. package/dist/cjs/building/typescript/solution-builder.js.map +6 -0
  49. package/dist/cjs/building/typescript.d.ts +13 -0
  50. package/dist/cjs/building/typescript.d.ts.map +1 -0
  51. package/dist/cjs/building/typescript.js +31 -0
  52. package/dist/cjs/building/typescript.js.map +6 -0
  53. package/dist/cjs/index.d.ts +15 -0
  54. package/dist/cjs/index.d.ts.map +1 -0
  55. package/dist/cjs/index.js +32 -0
  56. package/dist/cjs/index.js.map +6 -0
  57. package/dist/cjs/package.json +3 -0
  58. package/dist/cjs/running/cli.d.ts +19 -0
  59. package/dist/cjs/running/cli.d.ts.map +1 -0
  60. package/dist/cjs/running/cli.js +82 -0
  61. package/dist/cjs/running/cli.js.map +6 -0
  62. package/dist/cjs/running/execute.d.ts +8 -0
  63. package/dist/cjs/running/execute.d.ts.map +1 -0
  64. package/dist/cjs/running/execute.js +82 -0
  65. package/dist/cjs/running/execute.js.map +6 -0
  66. package/dist/cjs/testing/chip/pics-file.d.ts +20 -0
  67. package/dist/cjs/testing/chip/pics-file.d.ts.map +1 -0
  68. package/dist/cjs/testing/chip/pics-file.js +79 -0
  69. package/dist/cjs/testing/chip/pics-file.js.map +6 -0
  70. package/dist/cjs/testing/chip.d.ts +60 -0
  71. package/dist/cjs/testing/chip.d.ts.map +1 -0
  72. package/dist/cjs/testing/chip.js +306 -0
  73. package/dist/cjs/testing/chip.js.map +6 -0
  74. package/dist/cjs/testing/cli.d.ts +9 -0
  75. package/dist/cjs/testing/cli.d.ts.map +1 -0
  76. package/dist/cjs/testing/cli.js +117 -0
  77. package/dist/cjs/testing/cli.js.map +6 -0
  78. package/dist/cjs/testing/failure-detail.d.ts +19 -0
  79. package/dist/cjs/testing/failure-detail.d.ts.map +1 -0
  80. package/dist/cjs/testing/failure-detail.js +143 -0
  81. package/dist/cjs/testing/failure-detail.js.map +6 -0
  82. package/dist/cjs/testing/files.d.ts +8 -0
  83. package/dist/cjs/testing/files.d.ts.map +1 -0
  84. package/dist/cjs/testing/files.js +52 -0
  85. package/dist/cjs/testing/files.js.map +6 -0
  86. package/dist/cjs/testing/global-declarations.d.ts +38 -0
  87. package/dist/cjs/testing/global-declarations.d.ts.map +1 -0
  88. package/dist/cjs/testing/global-declarations.js +8 -0
  89. package/dist/cjs/testing/global-declarations.js.map +6 -0
  90. package/dist/cjs/testing/global-definitions.d.ts +7 -0
  91. package/dist/cjs/testing/global-definitions.d.ts.map +1 -0
  92. package/dist/cjs/testing/global-definitions.js +50 -0
  93. package/dist/cjs/testing/global-definitions.js.map +6 -0
  94. package/dist/cjs/testing/mocha.d.ts +36 -0
  95. package/dist/cjs/testing/mocha.d.ts.map +1 -0
  96. package/dist/cjs/testing/mocha.js +155 -0
  97. package/dist/cjs/testing/mocha.js.map +6 -0
  98. package/dist/cjs/testing/mocharc.cjs +68 -0
  99. package/dist/cjs/testing/mocharc.d.cts +7 -0
  100. package/dist/cjs/testing/mocks/crypto.d.ts +7 -0
  101. package/dist/cjs/testing/mocks/crypto.d.ts.map +1 -0
  102. package/dist/cjs/testing/mocks/crypto.js +79 -0
  103. package/dist/cjs/testing/mocks/crypto.js.map +6 -0
  104. package/dist/cjs/testing/mocks/environment.d.ts +7 -0
  105. package/dist/cjs/testing/mocks/environment.d.ts.map +1 -0
  106. package/dist/cjs/testing/mocks/environment.js +7 -0
  107. package/dist/cjs/testing/mocks/environment.js.map +6 -0
  108. package/dist/cjs/testing/mocks/index.d.ts +10 -0
  109. package/dist/cjs/testing/mocks/index.d.ts.map +1 -0
  110. package/dist/cjs/testing/mocks/index.js +27 -0
  111. package/dist/cjs/testing/mocks/index.js.map +6 -0
  112. package/dist/cjs/testing/mocks/logging.d.ts +28 -0
  113. package/dist/cjs/testing/mocks/logging.d.ts.map +1 -0
  114. package/dist/cjs/testing/mocks/logging.js +93 -0
  115. package/dist/cjs/testing/mocks/logging.js.map +6 -0
  116. package/dist/cjs/testing/mocks/time.d.ts +88 -0
  117. package/dist/cjs/testing/mocks/time.d.ts.map +1 -0
  118. package/dist/cjs/testing/mocks/time.js +250 -0
  119. package/dist/cjs/testing/mocks/time.js.map +6 -0
  120. package/dist/cjs/testing/node.d.ts +16 -0
  121. package/dist/cjs/testing/node.d.ts.map +1 -0
  122. package/dist/cjs/testing/node.js +108 -0
  123. package/dist/cjs/testing/node.js.map +6 -0
  124. package/dist/cjs/testing/options.d.ts +19 -0
  125. package/dist/cjs/testing/options.d.ts.map +1 -0
  126. package/dist/cjs/testing/options.js +62 -0
  127. package/dist/cjs/testing/options.js.map +6 -0
  128. package/dist/cjs/testing/reporter.d.ts +50 -0
  129. package/dist/cjs/testing/reporter.d.ts.map +1 -0
  130. package/dist/cjs/testing/reporter.js +137 -0
  131. package/dist/cjs/testing/reporter.js.map +6 -0
  132. package/dist/cjs/testing/runner.d.ts +22 -0
  133. package/dist/cjs/testing/runner.d.ts.map +1 -0
  134. package/dist/cjs/testing/runner.js +116 -0
  135. package/dist/cjs/testing/runner.js.map +6 -0
  136. package/dist/cjs/testing/web.d.ts +8 -0
  137. package/dist/cjs/testing/web.d.ts.map +1 -0
  138. package/dist/cjs/testing/web.js +165 -0
  139. package/dist/cjs/testing/web.js.map +6 -0
  140. package/dist/cjs/util/bootstrap.mjs +105 -0
  141. package/dist/cjs/util/docker.d.ts +27 -0
  142. package/dist/cjs/util/docker.d.ts.map +1 -0
  143. package/dist/cjs/util/docker.js +163 -0
  144. package/dist/cjs/util/docker.js.map +6 -0
  145. package/dist/cjs/util/errors.d.ts +8 -0
  146. package/dist/cjs/util/errors.d.ts.map +1 -0
  147. package/dist/cjs/util/errors.js +55 -0
  148. package/dist/cjs/util/errors.js.map +6 -0
  149. package/dist/cjs/util/index.d.ts +8 -0
  150. package/dist/cjs/util/index.d.ts.map +1 -0
  151. package/dist/cjs/util/index.js +25 -0
  152. package/dist/cjs/util/index.js.map +6 -0
  153. package/dist/cjs/util/node-shims.d.ts +7 -0
  154. package/dist/cjs/util/node-shims.d.ts.map +1 -0
  155. package/dist/cjs/util/node-shims.js +12 -0
  156. package/dist/cjs/util/node-shims.js.map +6 -0
  157. package/dist/cjs/util/package.d.ts +61 -0
  158. package/dist/cjs/util/package.d.ts.map +1 -0
  159. package/dist/cjs/util/package.js +324 -0
  160. package/dist/cjs/util/package.js.map +6 -0
  161. package/dist/cjs/util/progress.d.ts +31 -0
  162. package/dist/cjs/util/progress.d.ts.map +1 -0
  163. package/dist/cjs/util/progress.js +232 -0
  164. package/dist/cjs/util/progress.js.map +6 -0
  165. package/dist/cjs/util/tools-path.cjs +13 -0
  166. package/dist/cjs/util/tools-path.d.cts +7 -0
  167. package/dist/cjs/util/trace-unhandled.d.ts +9 -0
  168. package/dist/cjs/util/trace-unhandled.d.ts.map +1 -0
  169. package/dist/cjs/util/trace-unhandled.js +48 -0
  170. package/dist/cjs/util/trace-unhandled.js.map +6 -0
  171. package/dist/cjs/util/wtf.d.ts +10 -0
  172. package/dist/cjs/util/wtf.d.ts.map +1 -0
  173. package/dist/cjs/util/wtf.js +53 -0
  174. package/dist/cjs/util/wtf.js.map +6 -0
  175. package/dist/cjs/versioning/cli.d.ts +7 -0
  176. package/dist/cjs/versioning/cli.d.ts.map +1 -0
  177. package/dist/cjs/versioning/cli.js +62 -0
  178. package/dist/cjs/versioning/cli.js.map +6 -0
  179. package/dist/cjs/versioning/versioner.d.ts +18 -0
  180. package/dist/cjs/versioning/versioner.d.ts.map +1 -0
  181. package/dist/cjs/versioning/versioner.js +145 -0
  182. package/dist/cjs/versioning/versioner.js.map +6 -0
  183. package/dist/esm/building/builder.d.ts +35 -0
  184. package/dist/esm/building/builder.d.ts.map +1 -0
  185. package/dist/esm/building/builder.js +180 -0
  186. package/dist/esm/building/builder.js.map +6 -0
  187. package/dist/esm/building/cli.d.ts +7 -0
  188. package/dist/esm/building/cli.d.ts.map +1 -0
  189. package/dist/esm/building/cli.js +70 -0
  190. package/dist/esm/building/cli.js.map +6 -0
  191. package/dist/esm/building/error.d.ts +16 -0
  192. package/dist/esm/building/error.d.ts.map +1 -0
  193. package/dist/esm/building/error.js +30 -0
  194. package/dist/esm/building/error.js.map +6 -0
  195. package/dist/esm/building/graph.d.ts +37 -0
  196. package/dist/esm/building/graph.d.ts.map +1 -0
  197. package/dist/esm/building/graph.js +192 -0
  198. package/dist/esm/building/graph.js.map +6 -0
  199. package/dist/esm/building/project.d.ts +56 -0
  200. package/dist/esm/building/project.d.ts.map +1 -0
  201. package/dist/esm/building/project.js +219 -0
  202. package/dist/esm/building/project.js.map +6 -0
  203. package/dist/esm/building/tsconfig.d.ts +16 -0
  204. package/dist/esm/building/tsconfig.d.ts.map +1 -0
  205. package/dist/esm/building/tsconfig.js +50 -0
  206. package/dist/esm/building/tsconfig.js.map +6 -0
  207. package/dist/esm/building/typescript/context.d.ts +16 -0
  208. package/dist/esm/building/typescript/context.d.ts.map +1 -0
  209. package/dist/esm/building/typescript/context.js +68 -0
  210. package/dist/esm/building/typescript/context.js.map +6 -0
  211. package/dist/esm/building/typescript/incremental-compiler.d.ts +10 -0
  212. package/dist/esm/building/typescript/incremental-compiler.d.ts.map +1 -0
  213. package/dist/esm/building/typescript/incremental-compiler.js +99 -0
  214. package/dist/esm/building/typescript/incremental-compiler.js.map +6 -0
  215. package/dist/esm/building/typescript/language-service.d.ts +13 -0
  216. package/dist/esm/building/typescript/language-service.d.ts.map +1 -0
  217. package/dist/esm/building/typescript/language-service.js +99 -0
  218. package/dist/esm/building/typescript/language-service.js.map +6 -0
  219. package/dist/esm/building/typescript/solution-builder.d.ts +10 -0
  220. package/dist/esm/building/typescript/solution-builder.d.ts.map +1 -0
  221. package/dist/esm/building/typescript/solution-builder.js +52 -0
  222. package/dist/esm/building/typescript/solution-builder.js.map +6 -0
  223. package/dist/esm/building/typescript.d.ts +13 -0
  224. package/dist/esm/building/typescript.d.ts.map +1 -0
  225. package/dist/esm/building/typescript.js +11 -0
  226. package/dist/esm/building/typescript.js.map +6 -0
  227. package/dist/esm/index.d.ts +15 -0
  228. package/dist/esm/index.d.ts.map +1 -0
  229. package/dist/esm/index.js +15 -0
  230. package/dist/esm/index.js.map +6 -0
  231. package/dist/esm/package.json +3 -0
  232. package/dist/esm/running/cli.d.ts +19 -0
  233. package/dist/esm/running/cli.d.ts.map +1 -0
  234. package/dist/esm/running/cli.js +62 -0
  235. package/dist/esm/running/cli.js.map +6 -0
  236. package/dist/esm/running/execute.d.ts +8 -0
  237. package/dist/esm/running/execute.d.ts.map +1 -0
  238. package/dist/esm/running/execute.js +52 -0
  239. package/dist/esm/running/execute.js.map +6 -0
  240. package/dist/esm/testing/chip/pics-file.d.ts +20 -0
  241. package/dist/esm/testing/chip/pics-file.d.ts.map +1 -0
  242. package/dist/esm/testing/chip/pics-file.js +59 -0
  243. package/dist/esm/testing/chip/pics-file.js.map +6 -0
  244. package/dist/esm/testing/chip.d.ts +60 -0
  245. package/dist/esm/testing/chip.d.ts.map +1 -0
  246. package/dist/esm/testing/chip.js +286 -0
  247. package/dist/esm/testing/chip.js.map +6 -0
  248. package/dist/esm/testing/cli.d.ts +9 -0
  249. package/dist/esm/testing/cli.d.ts.map +1 -0
  250. package/dist/esm/testing/cli.js +87 -0
  251. package/dist/esm/testing/cli.js.map +6 -0
  252. package/dist/esm/testing/failure-detail.d.ts +19 -0
  253. package/dist/esm/testing/failure-detail.d.ts.map +1 -0
  254. package/dist/esm/testing/failure-detail.js +113 -0
  255. package/dist/esm/testing/failure-detail.js.map +6 -0
  256. package/dist/esm/testing/files.d.ts +8 -0
  257. package/dist/esm/testing/files.d.ts.map +1 -0
  258. package/dist/esm/testing/files.js +32 -0
  259. package/dist/esm/testing/files.js.map +6 -0
  260. package/dist/esm/testing/global-declarations.d.ts +38 -0
  261. package/dist/esm/testing/global-declarations.d.ts.map +1 -0
  262. package/dist/esm/testing/global-declarations.js +7 -0
  263. package/dist/esm/testing/global-declarations.js.map +6 -0
  264. package/dist/esm/testing/global-definitions.d.ts +7 -0
  265. package/dist/esm/testing/global-definitions.d.ts.map +1 -0
  266. package/dist/esm/testing/global-definitions.js +27 -0
  267. package/dist/esm/testing/global-definitions.js.map +6 -0
  268. package/dist/esm/testing/mocha.d.ts +36 -0
  269. package/dist/esm/testing/mocha.d.ts.map +1 -0
  270. package/dist/esm/testing/mocha.js +135 -0
  271. package/dist/esm/testing/mocha.js.map +6 -0
  272. package/dist/esm/testing/mocharc.cjs +68 -0
  273. package/dist/esm/testing/mocharc.d.cts +7 -0
  274. package/dist/esm/testing/mocks/crypto.d.ts +7 -0
  275. package/dist/esm/testing/mocks/crypto.d.ts.map +1 -0
  276. package/dist/esm/testing/mocks/crypto.js +59 -0
  277. package/dist/esm/testing/mocks/crypto.js.map +6 -0
  278. package/dist/esm/testing/mocks/environment.d.ts +7 -0
  279. package/dist/esm/testing/mocks/environment.d.ts.map +1 -0
  280. package/dist/esm/testing/mocks/environment.js +6 -0
  281. package/dist/esm/testing/mocks/environment.js.map +6 -0
  282. package/dist/esm/testing/mocks/index.d.ts +10 -0
  283. package/dist/esm/testing/mocks/index.d.ts.map +1 -0
  284. package/dist/esm/testing/mocks/index.js +10 -0
  285. package/dist/esm/testing/mocks/index.js.map +6 -0
  286. package/dist/esm/testing/mocks/logging.d.ts +28 -0
  287. package/dist/esm/testing/mocks/logging.d.ts.map +1 -0
  288. package/dist/esm/testing/mocks/logging.js +63 -0
  289. package/dist/esm/testing/mocks/logging.js.map +6 -0
  290. package/dist/esm/testing/mocks/time.d.ts +88 -0
  291. package/dist/esm/testing/mocks/time.d.ts.map +1 -0
  292. package/dist/esm/testing/mocks/time.js +230 -0
  293. package/dist/esm/testing/mocks/time.js.map +6 -0
  294. package/dist/esm/testing/node.d.ts +16 -0
  295. package/dist/esm/testing/node.d.ts.map +1 -0
  296. package/dist/esm/testing/node.js +78 -0
  297. package/dist/esm/testing/node.js.map +6 -0
  298. package/dist/esm/testing/options.d.ts +19 -0
  299. package/dist/esm/testing/options.d.ts.map +1 -0
  300. package/dist/esm/testing/options.js +42 -0
  301. package/dist/esm/testing/options.js.map +6 -0
  302. package/dist/esm/testing/reporter.d.ts +50 -0
  303. package/dist/esm/testing/reporter.d.ts.map +1 -0
  304. package/dist/esm/testing/reporter.js +107 -0
  305. package/dist/esm/testing/reporter.js.map +6 -0
  306. package/dist/esm/testing/runner.d.ts +22 -0
  307. package/dist/esm/testing/runner.d.ts.map +1 -0
  308. package/dist/esm/testing/runner.js +86 -0
  309. package/dist/esm/testing/runner.js.map +6 -0
  310. package/dist/esm/testing/web.d.ts +8 -0
  311. package/dist/esm/testing/web.d.ts.map +1 -0
  312. package/dist/esm/testing/web.js +135 -0
  313. package/dist/esm/testing/web.js.map +6 -0
  314. package/dist/esm/util/bootstrap.mjs +105 -0
  315. package/dist/esm/util/docker.d.ts +27 -0
  316. package/dist/esm/util/docker.d.ts.map +1 -0
  317. package/dist/esm/util/docker.js +133 -0
  318. package/dist/esm/util/docker.js.map +6 -0
  319. package/dist/esm/util/errors.d.ts +8 -0
  320. package/dist/esm/util/errors.d.ts.map +1 -0
  321. package/dist/esm/util/errors.js +35 -0
  322. package/dist/esm/util/errors.js.map +6 -0
  323. package/dist/esm/util/index.d.ts +8 -0
  324. package/dist/esm/util/index.d.ts.map +1 -0
  325. package/dist/esm/util/index.js +8 -0
  326. package/dist/esm/util/index.js.map +6 -0
  327. package/dist/esm/util/node-shims.d.ts +7 -0
  328. package/dist/esm/util/node-shims.d.ts.map +1 -0
  329. package/dist/esm/util/node-shims.js +11 -0
  330. package/dist/esm/util/node-shims.js.map +6 -0
  331. package/dist/esm/util/package.d.ts +61 -0
  332. package/dist/esm/util/package.d.ts.map +1 -0
  333. package/dist/esm/util/package.js +304 -0
  334. package/dist/esm/util/package.js.map +6 -0
  335. package/dist/esm/util/progress.d.ts +31 -0
  336. package/dist/esm/util/progress.d.ts.map +1 -0
  337. package/dist/esm/util/progress.js +202 -0
  338. package/dist/esm/util/progress.js.map +6 -0
  339. package/dist/esm/util/tools-path.cjs +13 -0
  340. package/dist/esm/util/tools-path.d.cts +7 -0
  341. package/dist/esm/util/trace-unhandled.d.ts +9 -0
  342. package/dist/esm/util/trace-unhandled.d.ts.map +1 -0
  343. package/dist/esm/util/trace-unhandled.js +18 -0
  344. package/dist/esm/util/trace-unhandled.js.map +6 -0
  345. package/dist/esm/util/wtf.d.ts +10 -0
  346. package/dist/esm/util/wtf.d.ts.map +1 -0
  347. package/dist/esm/util/wtf.js +23 -0
  348. package/dist/esm/util/wtf.js.map +6 -0
  349. package/dist/esm/versioning/cli.d.ts +7 -0
  350. package/dist/esm/versioning/cli.d.ts.map +1 -0
  351. package/dist/esm/versioning/cli.js +32 -0
  352. package/dist/esm/versioning/cli.js.map +6 -0
  353. package/dist/esm/versioning/versioner.d.ts +18 -0
  354. package/dist/esm/versioning/versioner.d.ts.map +1 -0
  355. package/dist/esm/versioning/versioner.js +115 -0
  356. package/dist/esm/versioning/versioner.js.map +6 -0
  357. package/package.json +82 -0
  358. package/src/building/builder.ts +216 -0
  359. package/src/building/cli.ts +89 -0
  360. package/src/building/error.ts +29 -0
  361. package/src/building/graph.ts +251 -0
  362. package/src/building/project.ts +313 -0
  363. package/src/building/tsconfig.ts +69 -0
  364. package/src/building/typescript/context.ts +85 -0
  365. package/src/building/typescript/incremental-compiler.ts +126 -0
  366. package/src/building/typescript/language-service.ts +132 -0
  367. package/src/building/typescript/solution-builder.ts +67 -0
  368. package/src/building/typescript.ts +15 -0
  369. package/src/index.ts +15 -0
  370. package/src/running/cli.ts +95 -0
  371. package/src/running/execute.ts +63 -0
  372. package/src/testing/chip/pics-file.ts +71 -0
  373. package/src/testing/chip/pics.properties +53 -0
  374. package/src/testing/chip.ts +420 -0
  375. package/src/testing/cli.ts +122 -0
  376. package/src/testing/failure-detail.ts +126 -0
  377. package/src/testing/files.ts +35 -0
  378. package/src/testing/global-declarations.ts +50 -0
  379. package/src/testing/global-definitions.ts +35 -0
  380. package/src/testing/index.html +16 -0
  381. package/src/testing/mocha.ts +162 -0
  382. package/src/testing/mocharc.cjs +68 -0
  383. package/src/testing/mocharc.d.cts +7 -0
  384. package/src/testing/mocks/crypto.ts +70 -0
  385. package/src/testing/mocks/environment.ts +7 -0
  386. package/src/testing/mocks/index.ts +10 -0
  387. package/src/testing/mocks/logging.ts +99 -0
  388. package/src/testing/mocks/time.ts +294 -0
  389. package/src/testing/node.ts +114 -0
  390. package/src/testing/options.ts +58 -0
  391. package/src/testing/reporter.ts +144 -0
  392. package/src/testing/runner.ts +98 -0
  393. package/src/testing/web.ts +174 -0
  394. package/src/tsconfig.json +14 -0
  395. package/src/util/bootstrap.mjs +105 -0
  396. package/src/util/docker.ts +176 -0
  397. package/src/util/errors.ts +33 -0
  398. package/src/util/index.ts +8 -0
  399. package/src/util/node-shims.ts +13 -0
  400. package/src/util/package.ts +369 -0
  401. package/src/util/progress.ts +252 -0
  402. package/src/util/tools-path.cjs +13 -0
  403. package/src/util/tools-path.d.cts +7 -0
  404. package/src/util/trace-unhandled.ts +17 -0
  405. package/src/util/wtf.ts +25 -0
  406. package/src/versioning/cli.ts +43 -0
  407. package/src/versioning/versioner.ts +139 -0
  408. package/test/testing/mocks/MockTimeTest.ts +113 -0
  409. package/test/tsconfig.json +15 -0
  410. package/tsc/tsconfig.app.json +7 -0
  411. package/tsc/tsconfig.base.json +41 -0
  412. package/tsc/tsconfig.lib.json +12 -0
  413. package/tsc/tsconfig.test.json +7 -0
  414. package/tsconfig.json +5 -0
@@ -0,0 +1,369 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { existsSync, readFileSync, statSync } from "fs";
8
+ import { readdir, readFile, stat, writeFile } from "fs/promises";
9
+ import { glob } from "glob";
10
+ import { dirname, join, relative, resolve } from "path";
11
+ import { maybeStatSync } from "../testing/files.js";
12
+ import { ignoreError, ignoreErrorSync } from "./errors.js";
13
+ import { Progress } from "./progress.js";
14
+ import { toolsPath } from "./tools-path.cjs";
15
+
16
+ export class JsonNotFoundError extends Error {}
17
+
18
+ export const CONFIG_PATH = `src/build.config.ts`;
19
+ export const CODEGEN_PATH = `codegen`;
20
+
21
+ const packageForPath = {} as Record<string, Package | undefined | null>;
22
+
23
+ function findJson(filename: string, path: string = ".", title?: string) {
24
+ path = resolve(path);
25
+ while (true) {
26
+ const json = ignoreErrorSync(["ENOENT", "ENOTDIR"], () =>
27
+ JSON.parse(readFileSync(resolve(path, filename)).toString()),
28
+ );
29
+ if (json) {
30
+ if (title === undefined || json.name === title) {
31
+ return { root: path, json };
32
+ }
33
+ }
34
+ const parent = dirname(path);
35
+ if (parent === path) {
36
+ throw new JsonNotFoundError(`Could not locate ${title ?? filename}`);
37
+ }
38
+ path = parent;
39
+ }
40
+ }
41
+
42
+ function isDirectory(path: string) {
43
+ return !!ignoreErrorSync("ENOENT", () => statSync(path).isDirectory());
44
+ }
45
+
46
+ export class Package {
47
+ path: string;
48
+ json: PackageJson;
49
+ supportsEsm: boolean;
50
+ supportsCjs: boolean;
51
+ hasSrc: boolean;
52
+ hasTests: boolean;
53
+ hasConfig: boolean;
54
+ isLibrary: boolean;
55
+ #aliases?: Record<string, string>;
56
+
57
+ constructor({
58
+ path = ".",
59
+ name,
60
+ }: {
61
+ path?: string;
62
+ name?: string;
63
+ } = {}) {
64
+ const { root, json } = findJson("package.json", path, name);
65
+ this.path = root;
66
+ this.json = json;
67
+
68
+ const { esm, cjs } = selectFormats(this.json);
69
+ this.supportsEsm = esm;
70
+ this.supportsCjs = cjs;
71
+
72
+ this.hasSrc = isDirectory(this.resolve("src"));
73
+ this.hasTests = isDirectory(this.resolve("test"));
74
+
75
+ this.isLibrary = !!(this.json.main || this.json.module || this.json.exports);
76
+
77
+ this.hasConfig = this.hasFile(this.resolve(CONFIG_PATH));
78
+ }
79
+
80
+ get name() {
81
+ return this.json.name;
82
+ }
83
+
84
+ get exports() {
85
+ return this.json.exports;
86
+ }
87
+
88
+ get hasCodegen() {
89
+ return this.hasDirectory(CODEGEN_PATH);
90
+ }
91
+
92
+ resolve(path: string) {
93
+ return resolve(this.path, path);
94
+ }
95
+
96
+ relative(path: string) {
97
+ return relative(this.path, path);
98
+ }
99
+
100
+ async glob(pattern: string) {
101
+ // Glob only understands forward-slash as separator because reasons
102
+ pattern = this.resolve(pattern).replace(/\\/g, "/");
103
+
104
+ return await glob(pattern);
105
+ }
106
+
107
+ start(what: string) {
108
+ const progress = new Progress();
109
+ progress.startup(what, this);
110
+ return progress;
111
+ }
112
+
113
+ async lastModified(...paths: string[]) {
114
+ return this.lastModifiedAbsolute(paths.map(p => this.resolve(p)));
115
+ }
116
+
117
+ private async lastModifiedAbsolute(paths: string[]) {
118
+ let mtime = 0;
119
+ await Promise.all(
120
+ paths.map(async p => {
121
+ const stats = await ignoreError("ENOENT", async () => await stat(p));
122
+ if (!stats) {
123
+ return;
124
+ }
125
+
126
+ let thisMtime;
127
+ if (stats.isDirectory()) {
128
+ const paths = (await readdir(p)).map(p2 => resolve(p, p2));
129
+ thisMtime = await this.lastModifiedAbsolute(paths);
130
+ } else {
131
+ thisMtime = stats.mtimeMs;
132
+ }
133
+ if (thisMtime > mtime) {
134
+ mtime = thisMtime;
135
+ }
136
+ }),
137
+ );
138
+ return mtime;
139
+ }
140
+
141
+ get dependencies() {
142
+ let result = Array<string>();
143
+ for (const type of ["dependencies", "optionalDependencies", "devDependencies", "peerDependencies"]) {
144
+ if (typeof this.json[type] === "object" && this.json[type] !== null) {
145
+ result = [...result, ...Object.keys(this.json[type])];
146
+ }
147
+ }
148
+ return [...new Set(result)];
149
+ }
150
+
151
+ get workspace() {
152
+ return Package.workspaceFor(this.path);
153
+ }
154
+
155
+ static set workingDir(wd: string) {
156
+ workingDir = wd;
157
+ }
158
+
159
+ static get workspace() {
160
+ return this.workspaceFor(workingDir);
161
+ }
162
+
163
+ static workspaceFor(cwd: string) {
164
+ if (!workspace) {
165
+ workspace = find(cwd, pkg => Array.isArray(pkg.json.workspaces));
166
+ }
167
+ return workspace;
168
+ }
169
+
170
+ static get tools() {
171
+ if (!tools) {
172
+ tools = new Package({ path: toolsPath });
173
+ }
174
+ return tools;
175
+ }
176
+
177
+ static findExport(name: string, type: "cjs" | "esm" = "esm") {
178
+ return this.workspace.resolveImport(name, type);
179
+ }
180
+
181
+ resolveExport(name: string, type: "cjs" | "esm" = "esm") {
182
+ if (!name.startsWith(".")) {
183
+ name = `./${name}`;
184
+ }
185
+ const exportDetail = this.exports?.[name];
186
+
187
+ if (exportDetail) {
188
+ const exp = findExportCondition(exportDetail, type);
189
+ if (exp) {
190
+ return this.resolve(exp);
191
+ }
192
+ }
193
+
194
+ if (name === ".") {
195
+ if (type === "esm" && this.json.module) {
196
+ return this.resolve(this.json.module);
197
+ }
198
+ if (this.json.main) {
199
+ return this.resolve(this.json.main);
200
+ }
201
+ }
202
+
203
+ throw new Error(`Cannot resolve export ${name} in package ${this.name}`);
204
+ }
205
+
206
+ resolveImport(name: string, type: "cjs" | "esm" = "esm") {
207
+ const segments = name.split("/");
208
+ let subdir = segments.shift() as string;
209
+ if (subdir.startsWith("@") && segments.length) {
210
+ subdir = `${subdir}/${segments.shift()}`;
211
+ }
212
+
213
+ let resolveIn = this.path;
214
+ while (true) {
215
+ if (isDirectory(resolve(resolveIn, "node_modules", subdir))) {
216
+ break;
217
+ }
218
+ const nextResolveIn = dirname(resolveIn);
219
+ if (nextResolveIn === resolveIn) {
220
+ throw new Error(`Cannot find module ${subdir} from ${this.path}`);
221
+ }
222
+ resolveIn = nextResolveIn;
223
+ }
224
+
225
+ const pkg = Package.forPath(resolve(resolveIn, "node_modules", subdir));
226
+ return pkg.resolveExport(segments.length ? segments.join("/") : ".", type);
227
+ }
228
+
229
+ hasFile(path: string) {
230
+ return !!this.#maybeStat(path)?.isFile();
231
+ }
232
+
233
+ hasDirectory(path: string) {
234
+ return !!this.#maybeStat(path)?.isDirectory();
235
+ }
236
+
237
+ async readFile(path: string) {
238
+ return readFile(this.resolve(path), "utf-8");
239
+ }
240
+
241
+ readFileSync(path: string) {
242
+ return readFileSync(this.resolve(path), "utf-8");
243
+ }
244
+
245
+ async writeFile(path: string, contents: unknown) {
246
+ await writeFile(this.resolve(path), `${contents}`);
247
+ }
248
+
249
+ async save() {
250
+ await this.writeFile(join(this.path, "package.json"), JSON.stringify(this.json, undefined, 4));
251
+ }
252
+
253
+ async readJson(path: string) {
254
+ const text = await this.readFile(path);
255
+ try {
256
+ return JSON.parse(text);
257
+ } catch (e) {
258
+ if (!(e instanceof Error)) {
259
+ e = new Error(`${e}`);
260
+ }
261
+ (e as Error).message = `Error parsing "${this.resolve(path)}": ${(e as Error).message}`;
262
+ }
263
+ return JSON.parse(await this.readFile(path));
264
+ }
265
+
266
+ async writeJson(path: string, value: {}) {
267
+ await this.writeFile(path, JSON.stringify(value, undefined, 4));
268
+ }
269
+
270
+ static maybeForPath(path: string) {
271
+ function find(path: string): Package | null {
272
+ let result = packageForPath[path];
273
+ if (result === undefined) {
274
+ if (existsSync(join(path, "package.json"))) {
275
+ result = new Package({ path });
276
+ } else {
277
+ result = find(dirname(path));
278
+ }
279
+ packageForPath[path] = result;
280
+ }
281
+ return result;
282
+ }
283
+
284
+ const result = find(path);
285
+
286
+ return result ?? undefined;
287
+ }
288
+
289
+ static forPath(path: string) {
290
+ const result = this.maybeForPath(path);
291
+ if (result !== undefined) {
292
+ return result;
293
+ }
294
+ throw new Error(`Cannot find package.json for "${path}"`);
295
+ }
296
+
297
+ get aliases(): Record<string, string> {
298
+ if (this.#aliases !== undefined) {
299
+ return this.#aliases;
300
+ }
301
+
302
+ this.#aliases = {
303
+ ...Package.maybeForPath(dirname(this.path))?.aliases,
304
+ ...this.json.imports,
305
+ };
306
+
307
+ return this.#aliases;
308
+ }
309
+
310
+ #maybeStat(path: string) {
311
+ return maybeStatSync(this.resolve(path));
312
+ }
313
+ }
314
+
315
+ export type PackageJson = {
316
+ name: string;
317
+ version: string;
318
+ imports: Record<string, string>;
319
+ [key: string]: any;
320
+ };
321
+
322
+ let workingDir = ".";
323
+ let workspace: Package | undefined;
324
+ let tools: Package | undefined;
325
+
326
+ function find(startDir: string, selector: (pkg: Package) => boolean): Package {
327
+ let pkg = new Package({ path: startDir });
328
+ while (!selector(pkg)) {
329
+ pkg = new Package({ path: dirname(pkg.path) });
330
+ }
331
+ return pkg;
332
+ }
333
+
334
+ function selectFormats(json: any) {
335
+ let esm: boolean, cjs: boolean;
336
+
337
+ if (json.type === "module") {
338
+ esm = true;
339
+ cjs =
340
+ (json.main !== undefined && json.module !== undefined) ||
341
+ !!Object.values(json.exports ?? {}).find((exp: any) => exp.require);
342
+ } else {
343
+ cjs = true;
344
+ esm = !!json.module || !!Object.values(json.exports ?? {}).find((exp: any) => exp.import);
345
+ }
346
+
347
+ return { esm, cjs };
348
+ }
349
+
350
+ function findExportCondition(detail: Record<string, any>, type: "esm" | "cjs"): string | undefined {
351
+ if (type === "esm" && detail.import) {
352
+ let exp = detail.import;
353
+ if (exp && typeof exp !== "string") {
354
+ exp = findExportCondition(exp, type);
355
+ }
356
+ if (exp) {
357
+ return exp;
358
+ }
359
+ }
360
+
361
+ let exp = detail.require ?? detail.node ?? detail.default;
362
+ if (exp && typeof exp !== "string") {
363
+ exp = findExportCondition(exp, type);
364
+ }
365
+
366
+ if (typeof exp === "string") {
367
+ return exp;
368
+ }
369
+ }
@@ -0,0 +1,252 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import colors from "ansi-colors";
8
+ import { stderr, stdout } from "process";
9
+ import { Package } from "./package.js";
10
+
11
+ const CLEAR = "\x1b[K";
12
+ const SPINNER = "◐◓◑◒"; //"⡜⠔⠢⢣"; //["⚫︎", "⚪︎"]; "⡈⠔⠢⢁";
13
+ const SPINNER_INTERVAL = 100;
14
+
15
+ function packageIdentity(pkg: Package) {
16
+ let identity = colors.bold(pkg.json.name);
17
+ if (pkg.json.version) {
18
+ identity = `${identity}@${pkg.json.version}`;
19
+ }
20
+ return identity;
21
+ }
22
+
23
+ /**
24
+ * Intercept writes to stderr and stdout so we can ensure our updates appear on different lines from other output.
25
+ */
26
+ const writeStatus = (() => {
27
+ let lastStatus: undefined | string;
28
+ let needNewline = false;
29
+
30
+ function intercept(stream: NodeJS.WriteStream) {
31
+ const actualWrite = stream.write;
32
+ stream.write = (payload: Uint8Array | string, ...params: any[]) => {
33
+ if (lastStatus) {
34
+ actualWrite.call(stream, "\n");
35
+ lastStatus = undefined;
36
+ }
37
+
38
+ if (!payload.length) {
39
+ return true;
40
+ }
41
+
42
+ // Require a newline for status updates any time the cursor does not end at the beginning of a line
43
+ needNewline =
44
+ // Update ends in newline
45
+ payload[payload.length - 1] === "\n" &&
46
+ // Update ends in carriage return
47
+ payload[payload.length - 1] !== "\r";
48
+
49
+ return actualWrite.call(stream, payload, ...params);
50
+ };
51
+ }
52
+
53
+ intercept(stdout);
54
+ intercept(stderr);
55
+
56
+ return function writeStatus(text: string, willOverwrite = false) {
57
+ const columns = process.stdout.columns;
58
+ if (willOverwrite && columns !== undefined && text.length > columns - 2) {
59
+ text = filterAnsi(text, columns - 2) + "…";
60
+ }
61
+
62
+ text += willOverwrite ? "\r" : "\n";
63
+ if (text === lastStatus) {
64
+ return;
65
+ }
66
+
67
+ if (lastStatus) {
68
+ lastStatus = undefined;
69
+ stdout.write(CLEAR);
70
+ } else if (needNewline && !text.startsWith("\n")) {
71
+ stdout.write("\n");
72
+ }
73
+
74
+ stdout.write(text);
75
+
76
+ lastStatus = text;
77
+ };
78
+ })();
79
+
80
+ export class Progress {
81
+ status = Progress.Status.Startup;
82
+ #ongoingText?: string;
83
+ #start?: number;
84
+ #spinner = "⧗";
85
+ #refreshInterval?: ReturnType<typeof setInterval>;
86
+ #spinnerPosition = 0;
87
+ #spinnerWindow?: number;
88
+
89
+ constructor() {}
90
+
91
+ emphasize(text: unknown) {
92
+ return colors.bold(`${text}`);
93
+ }
94
+
95
+ deemphasize(text: unknown) {
96
+ return colors.dim(`${text}`);
97
+ }
98
+
99
+ skip(why: string, pkg: Package) {
100
+ stdout.write(colors.dim(`Skip ${packageIdentity(pkg)}: ${why}\n\n`));
101
+ }
102
+
103
+ startup(what: string, pkgOrOverwrite?: Package | boolean) {
104
+ if (process.stdout.isTTY) {
105
+ this.#updateSpinner();
106
+ this.#refreshInterval = setInterval(this.refresh.bind(this), SPINNER_INTERVAL);
107
+ }
108
+
109
+ this.status = Progress.Status.Startup;
110
+ if (pkgOrOverwrite === undefined || typeof pkgOrOverwrite === "boolean") {
111
+ writeStatus(what, pkgOrOverwrite ?? true);
112
+ } else {
113
+ writeStatus(`${what} ${packageIdentity(pkgOrOverwrite)}`);
114
+ }
115
+ }
116
+
117
+ update(text: string, extra?: string) {
118
+ this.status = Progress.Status.Ongoing;
119
+ let duration;
120
+ if (this.#start === undefined) {
121
+ this.#start = new Date().getTime();
122
+ duration = "";
123
+ } else {
124
+ duration = this.#duration;
125
+ }
126
+ extra = extra === undefined ? "" : ` ${extra}`;
127
+ this.#ongoingText = `${text} ${duration}${extra}`;
128
+ this.#writeOngoing();
129
+ }
130
+
131
+ #writeOngoing() {
132
+ if (!this.#ongoingText) {
133
+ return;
134
+ }
135
+
136
+ writeStatus(` ${colors.yellow(this.#spinner)} ${this.#ongoingText}`, true);
137
+ }
138
+
139
+ success(text: string) {
140
+ this.status = Progress.Status.Success;
141
+ writeStatus(` ${colors.green("✓")} ${text} ${this.#duration}`);
142
+ this.#start = this.#ongoingText = undefined;
143
+ }
144
+
145
+ failure(text: string) {
146
+ this.status = Progress.Status.Failure;
147
+ writeStatus(` ${colors.redBright("✗")} ${text} ${this.#duration}`);
148
+ this.#start = this.#ongoingText = undefined;
149
+ }
150
+
151
+ info(label: string, value?: any) {
152
+ if (value) {
153
+ label = `${colors.dim(label)} ${value}`;
154
+ }
155
+ writeStatus(` ${colors.dim("‣")} ${label}`);
156
+ }
157
+
158
+ shutdown() {
159
+ if (this.#refreshInterval) {
160
+ clearInterval(this.#refreshInterval);
161
+ this.#refreshInterval = undefined;
162
+ }
163
+ writeStatus("");
164
+ }
165
+
166
+ refresh() {
167
+ if (this.#updateSpinner()) {
168
+ this.#writeOngoing();
169
+ }
170
+ }
171
+
172
+ #updateSpinner() {
173
+ if (!stdout.isTTY) {
174
+ return false;
175
+ }
176
+
177
+ const window = Math.floor(new Date().getTime() / SPINNER_INTERVAL);
178
+ if (this.#spinnerWindow === window) {
179
+ return false;
180
+ }
181
+ this.#spinnerWindow = window;
182
+
183
+ this.#spinnerPosition = (this.#spinnerPosition + 1) % SPINNER.length;
184
+ this.#spinner = SPINNER[this.#spinnerPosition];
185
+
186
+ return true;
187
+ }
188
+
189
+ async run(what: string, fn: () => void | Promise<void>) {
190
+ this.update(what);
191
+ try {
192
+ await fn();
193
+ } catch (e) {
194
+ this.failure(what);
195
+ throw e;
196
+ }
197
+ this.success(what);
198
+ }
199
+
200
+ get #duration() {
201
+ let ms = this.#start ? new Date().getTime() - this.#start : 0;
202
+ if (ms < 1000) {
203
+ ms = Math.round(ms / 10) / 100;
204
+ } else if (ms < 10000) {
205
+ ms = Math.round(ms / 100) / 10;
206
+ } else {
207
+ ms = Math.trunc(ms / 1000);
208
+ }
209
+ return colors.dim.yellow(`(${ms}s)`);
210
+ }
211
+ }
212
+
213
+ export namespace Progress {
214
+ export enum Status {
215
+ Startup = "startup",
216
+ Ongoing = "ongoing",
217
+ Success = "success",
218
+ Failure = "failure",
219
+ }
220
+ }
221
+
222
+ // See https://stackoverflow.com/questions/26238553/how-can-i-truncate-a-string-to-a-maximum-length-without-breaking-ansi-escape-cod
223
+ // TODO - this function doesn't seem entirely correct, still seems to truncate too much
224
+ // Crop the length of lines, ANSI escape code aware
225
+ // Always outputs every escape char, regardless of length (so we always end up with a sane state)
226
+ // Visible characters are filtered out once length is exceeded
227
+ function filterAnsi(str: string, len: number) {
228
+ if (!len || len < 10) return str; // probably not a valid console -- send back the whole line
229
+ let count = 0, // number of visible chars on line so far
230
+ esc = false, // in an escape sequence
231
+ longesc = false; // in a multi-character escape sequence
232
+ let outp = true; // should output this character
233
+ return str
234
+ .split("")
235
+ .filter(function (c) {
236
+ // filter characters...
237
+ if (esc && !longesc && c == "[") longesc = true; // have seen an escape, now '[', start multi-char escape
238
+ if (c == "\x1b") esc = true; // start of escape sequence
239
+
240
+ outp = count < len || esc; // if length exceeded, don't output non-escape chars
241
+ if (!esc && !longesc) count++; // if not in escape, count visible char
242
+
243
+ if (esc && !longesc && c != "\x1b") esc = false; // out of single char escape
244
+ if (longesc && c != "[" && c >= "@" && c <= "~") {
245
+ esc = false;
246
+ longesc = false;
247
+ } // end of multi-char escape
248
+
249
+ return outp; // result for filter
250
+ })
251
+ .join(""); // glue chars back into string
252
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ const { resolve } = require("path");
8
+
9
+ // Node makes it impossible to obtain the path of the current file in a matter that transpiles cleanly to both ESM and
10
+ // CJS. __dirname is not available in ESM but you can't reference import.meta.url in CJS even conditionally because it
11
+ // is a compile-time error. So instead we locate the root of the tools package in this file which always runs as CJS
12
+ // and is thus importable into both ESM and CJS.
13
+ exports.toolsPath = resolve(__dirname, "../..");
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ export declare const toolsPath: string;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ export const traceUnhandled = {
8
+ async initialize() {
9
+ // We process args and environment manually so we don't need dependencies and can install as early as possible
10
+ if (!process.argv.includes("--trace-unhandled") && !process.env.MATTER_TRACE_UNHANDLED) {
11
+ return;
12
+ }
13
+
14
+ const { register } = await import("trace-unhandled");
15
+ register();
16
+ },
17
+ };
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ export const wtf = {
8
+ async initialize() {
9
+ // This will only work under actual Node.js
10
+ if (typeof process !== "object" || process?.release?.name !== "node") {
11
+ return;
12
+ }
13
+
14
+ // We process args and environment manually so we don't need dependencies and can install wtfnode as early as
15
+ // possible
16
+ if (!process.argv.includes("--wtf") && !process.env.MATTER_WTF) {
17
+ return;
18
+ }
19
+
20
+ const { dump } = await import("wtfnode");
21
+ this.dump = () => dump();
22
+ },
23
+
24
+ dump() {},
25
+ };