@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,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,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export declare const traceUnhandled: {
7
+ initialize(): Promise<void>;
8
+ };
9
+ //# sourceMappingURL=trace-unhandled.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-unhandled.d.ts","sourceRoot":"","sources":["../../../src/util/trace-unhandled.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,cAAc;;CAU1B,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ const traceUnhandled = {
7
+ async initialize() {
8
+ if (!process.argv.includes("--trace-unhandled") && !process.env.MATTER_TRACE_UNHANDLED) {
9
+ return;
10
+ }
11
+ const { register } = await import("trace-unhandled");
12
+ register();
13
+ }
14
+ };
15
+ export {
16
+ traceUnhandled
17
+ };
18
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3V0aWwvdHJhY2UtdW5oYW5kbGVkLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMi0yMDI0IE1hdHRlci5qcyBBdXRob3JzXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmV4cG9ydCBjb25zdCB0cmFjZVVuaGFuZGxlZCA9IHtcbiAgICBhc3luYyBpbml0aWFsaXplKCkge1xuICAgICAgICAvLyBXZSBwcm9jZXNzIGFyZ3MgYW5kIGVudmlyb25tZW50IG1hbnVhbGx5IHNvIHdlIGRvbid0IG5lZWQgZGVwZW5kZW5jaWVzIGFuZCBjYW4gaW5zdGFsbCBhcyBlYXJseSBhcyBwb3NzaWJsZVxuICAgICAgICBpZiAoIXByb2Nlc3MuYXJndi5pbmNsdWRlcyhcIi0tdHJhY2UtdW5oYW5kbGVkXCIpICYmICFwcm9jZXNzLmVudi5NQVRURVJfVFJBQ0VfVU5IQU5ETEVEKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IHJlZ2lzdGVyIH0gPSBhd2FpdCBpbXBvcnQoXCJ0cmFjZS11bmhhbmRsZWRcIik7XG4gICAgICAgIHJlZ2lzdGVyKCk7XG4gICAgfSxcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTU8sTUFBTSxpQkFBaUI7QUFBQSxFQUMxQixNQUFNLGFBQWE7QUFFZixRQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsbUJBQW1CLEtBQUssQ0FBQyxRQUFRLElBQUksd0JBQXdCO0FBQ3BGO0FBQUEsSUFDSjtBQUVBLFVBQU0sRUFBRSxTQUFTLElBQUksTUFBTSxPQUFPLGlCQUFpQjtBQUNuRCxhQUFTO0FBQUEsRUFDYjtBQUNKOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util/trace-unhandled.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,MAAM,iBAAiB;AAAA,EAC1B,MAAM,aAAa;AAEf,QAAI,CAAC,QAAQ,KAAK,SAAS,mBAAmB,KAAK,CAAC,QAAQ,IAAI,wBAAwB;AACpF;AAAA,IACJ;AAEA,UAAM,EAAE,SAAS,IAAI,MAAM,OAAO,iBAAiB;AACnD,aAAS;AAAA,EACb;AACJ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export declare const wtf: {
7
+ initialize(): Promise<void>;
8
+ dump(): void;
9
+ };
10
+ //# sourceMappingURL=wtf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wtf.d.ts","sourceRoot":"","sources":["../../../src/util/wtf.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,GAAG;;;CAkBf,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ const wtf = {
7
+ async initialize() {
8
+ if (typeof process !== "object" || process?.release?.name !== "node") {
9
+ return;
10
+ }
11
+ if (!process.argv.includes("--wtf") && !process.env.MATTER_WTF) {
12
+ return;
13
+ }
14
+ const { dump } = await import("wtfnode");
15
+ this.dump = () => dump();
16
+ },
17
+ dump() {
18
+ }
19
+ };
20
+ export {
21
+ wtf
22
+ };
23
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3V0aWwvd3RmLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMi0yMDI0IE1hdHRlci5qcyBBdXRob3JzXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmV4cG9ydCBjb25zdCB3dGYgPSB7XG4gICAgYXN5bmMgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgLy8gVGhpcyB3aWxsIG9ubHkgd29yayB1bmRlciBhY3R1YWwgTm9kZS5qc1xuICAgICAgICBpZiAodHlwZW9mIHByb2Nlc3MgIT09IFwib2JqZWN0XCIgfHwgcHJvY2Vzcz8ucmVsZWFzZT8ubmFtZSAhPT0gXCJub2RlXCIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFdlIHByb2Nlc3MgYXJncyBhbmQgZW52aXJvbm1lbnQgbWFudWFsbHkgc28gd2UgZG9uJ3QgbmVlZCBkZXBlbmRlbmNpZXMgYW5kIGNhbiBpbnN0YWxsIHd0Zm5vZGUgYXMgZWFybHkgYXNcbiAgICAgICAgLy8gcG9zc2libGVcbiAgICAgICAgaWYgKCFwcm9jZXNzLmFyZ3YuaW5jbHVkZXMoXCItLXd0ZlwiKSAmJiAhcHJvY2Vzcy5lbnYuTUFUVEVSX1dURikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBkdW1wIH0gPSBhd2FpdCBpbXBvcnQoXCJ3dGZub2RlXCIpO1xuICAgICAgICB0aGlzLmR1bXAgPSAoKSA9PiBkdW1wKCk7XG4gICAgfSxcblxuICAgIGR1bXAoKSB7fSxcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTU8sTUFBTSxNQUFNO0FBQUEsRUFDZixNQUFNLGFBQWE7QUFFZixRQUFJLE9BQU8sWUFBWSxZQUFZLFNBQVMsU0FBUyxTQUFTLFFBQVE7QUFDbEU7QUFBQSxJQUNKO0FBSUEsUUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLE9BQU8sS0FBSyxDQUFDLFFBQVEsSUFBSSxZQUFZO0FBQzVEO0FBQUEsSUFDSjtBQUVBLFVBQU0sRUFBRSxLQUFLLElBQUksTUFBTSxPQUFPLFNBQVM7QUFDdkMsU0FBSyxPQUFPLE1BQU0sS0FBSztBQUFBLEVBQzNCO0FBQUEsRUFFQSxPQUFPO0FBQUEsRUFBQztBQUNaOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util/wtf.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,MAAM,MAAM;AAAA,EACf,MAAM,aAAa;AAEf,QAAI,OAAO,YAAY,YAAY,SAAS,SAAS,SAAS,QAAQ;AAClE;AAAA,IACJ;AAIA,QAAI,CAAC,QAAQ,KAAK,SAAS,OAAO,KAAK,CAAC,QAAQ,IAAI,YAAY;AAC5D;AAAA,IACJ;AAEA,UAAM,EAAE,KAAK,IAAI,MAAM,OAAO,SAAS;AACvC,SAAK,OAAO,MAAM,KAAK;AAAA,EAC3B;AAAA,EAEA,OAAO;AAAA,EAAC;AACZ;",
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
+ export declare function main(argv?: string[]): Promise<void>;
7
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/versioning/cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,wBAAsB,IAAI,CAAC,IAAI,WAAe,iBA8B7C"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import yargs from "yargs";
7
+ import { hideBin } from "yargs/helpers";
8
+ import { Package } from "../util/package.js";
9
+ import { Progress } from "../util/progress.js";
10
+ import { Versioner } from "./versioner.js";
11
+ async function main(argv = process.argv) {
12
+ const args = await yargs(hideBin(argv)).command("$0 [ver]", "Manipulate monorepo package versions.").option("prefix", { alias: "p", default: ".", type: "string", describe: "specify monorepo directory" }).option("set", { alias: "s", type: "boolean", describe: "Sets the release version" }).option("apply", { alias: "a", type: "boolean", describe: "Sets package versions to the release version" }).option("tag", { alias: "t", type: "boolean", describe: "Adds git tag for release version" }).wrap(Math.min(process.stdout.columns, 80)).strict().argv;
13
+ const version = args.ver;
14
+ const pkg = new Package({ path: args.prefix });
15
+ const versioner = new Versioner(pkg, version);
16
+ const progress = new Progress();
17
+ progress.startup(`Release ${versioner.version}`, versioner.pkg);
18
+ if (args.set) {
19
+ await progress.run(`Set version to ${progress.emphasize(versioner.version)}`, () => versioner.set());
20
+ }
21
+ if (args.apply) {
22
+ await versioner.apply(progress);
23
+ }
24
+ if (args.tag) {
25
+ await progress.run(`Tagging version ${progress.emphasize(versioner.version)}`, () => versioner.tag());
26
+ }
27
+ progress.shutdown();
28
+ }
29
+ export {
30
+ main
31
+ };
32
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3ZlcnNpb25pbmcvY2xpLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMi0yMDI0IE1hdHRlci5qcyBBdXRob3JzXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmltcG9ydCB5YXJncyBmcm9tIFwieWFyZ3NcIjtcbmltcG9ydCB7IGhpZGVCaW4gfSBmcm9tIFwieWFyZ3MvaGVscGVyc1wiO1xuaW1wb3J0IHsgUGFja2FnZSB9IGZyb20gXCIuLi91dGlsL3BhY2thZ2UuanNcIjtcbmltcG9ydCB7IFByb2dyZXNzIH0gZnJvbSBcIi4uL3V0aWwvcHJvZ3Jlc3MuanNcIjtcbmltcG9ydCB7IFZlcnNpb25lciB9IGZyb20gXCIuL3ZlcnNpb25lci5qc1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFpbihhcmd2ID0gcHJvY2Vzcy5hcmd2KSB7XG4gICAgY29uc3QgYXJncyA9IGF3YWl0IHlhcmdzKGhpZGVCaW4oYXJndikpXG4gICAgICAgIC5jb21tYW5kKFwiJDAgW3Zlcl1cIiwgXCJNYW5pcHVsYXRlIG1vbm9yZXBvIHBhY2thZ2UgdmVyc2lvbnMuXCIpXG4gICAgICAgIC5vcHRpb24oXCJwcmVmaXhcIiwgeyBhbGlhczogXCJwXCIsIGRlZmF1bHQ6IFwiLlwiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjcmliZTogXCJzcGVjaWZ5IG1vbm9yZXBvIGRpcmVjdG9yeVwiIH0pXG4gICAgICAgIC5vcHRpb24oXCJzZXRcIiwgeyBhbGlhczogXCJzXCIsIHR5cGU6IFwiYm9vbGVhblwiLCBkZXNjcmliZTogXCJTZXRzIHRoZSByZWxlYXNlIHZlcnNpb25cIiB9KVxuICAgICAgICAub3B0aW9uKFwiYXBwbHlcIiwgeyBhbGlhczogXCJhXCIsIHR5cGU6IFwiYm9vbGVhblwiLCBkZXNjcmliZTogXCJTZXRzIHBhY2thZ2UgdmVyc2lvbnMgdG8gdGhlIHJlbGVhc2UgdmVyc2lvblwiIH0pXG4gICAgICAgIC5vcHRpb24oXCJ0YWdcIiwgeyBhbGlhczogXCJ0XCIsIHR5cGU6IFwiYm9vbGVhblwiLCBkZXNjcmliZTogXCJBZGRzIGdpdCB0YWcgZm9yIHJlbGVhc2UgdmVyc2lvblwiIH0pXG4gICAgICAgIC53cmFwKE1hdGgubWluKHByb2Nlc3Muc3Rkb3V0LmNvbHVtbnMsIDgwKSlcbiAgICAgICAgLnN0cmljdCgpLmFyZ3Y7XG5cbiAgICBjb25zdCB2ZXJzaW9uID0gYXJncy52ZXIgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IHBrZyA9IG5ldyBQYWNrYWdlKHsgcGF0aDogYXJncy5wcmVmaXggfSk7XG4gICAgY29uc3QgdmVyc2lvbmVyID0gbmV3IFZlcnNpb25lcihwa2csIHZlcnNpb24pO1xuXG4gICAgY29uc3QgcHJvZ3Jlc3MgPSBuZXcgUHJvZ3Jlc3MoKTtcblxuICAgIHByb2dyZXNzLnN0YXJ0dXAoYFJlbGVhc2UgJHt2ZXJzaW9uZXIudmVyc2lvbn1gLCB2ZXJzaW9uZXIucGtnKTtcbiAgICBpZiAoYXJncy5zZXQpIHtcbiAgICAgICAgYXdhaXQgcHJvZ3Jlc3MucnVuKGBTZXQgdmVyc2lvbiB0byAke3Byb2dyZXNzLmVtcGhhc2l6ZSh2ZXJzaW9uZXIudmVyc2lvbil9YCwgKCkgPT4gdmVyc2lvbmVyLnNldCgpKTtcbiAgICB9XG5cbiAgICBpZiAoYXJncy5hcHBseSkge1xuICAgICAgICBhd2FpdCB2ZXJzaW9uZXIuYXBwbHkocHJvZ3Jlc3MpO1xuICAgIH1cblxuICAgIGlmIChhcmdzLnRhZykge1xuICAgICAgICBhd2FpdCBwcm9ncmVzcy5ydW4oYFRhZ2dpbmcgdmVyc2lvbiAke3Byb2dyZXNzLmVtcGhhc2l6ZSh2ZXJzaW9uZXIudmVyc2lvbil9YCwgKCkgPT4gdmVyc2lvbmVyLnRhZygpKTtcbiAgICB9XG5cbiAgICBwcm9ncmVzcy5zaHV0ZG93bigpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLE9BQU8sV0FBVztBQUNsQixTQUFTLGVBQWU7QUFDeEIsU0FBUyxlQUFlO0FBQ3hCLFNBQVMsZ0JBQWdCO0FBQ3pCLFNBQVMsaUJBQWlCO0FBRTFCLGVBQXNCLEtBQUssT0FBTyxRQUFRLE1BQU07QUFDNUMsUUFBTSxPQUFPLE1BQU0sTUFBTSxRQUFRLElBQUksQ0FBQyxFQUNqQyxRQUFRLFlBQVksdUNBQXVDLEVBQzNELE9BQU8sVUFBVSxFQUFFLE9BQU8sS0FBSyxTQUFTLEtBQUssTUFBTSxVQUFVLFVBQVUsNkJBQTZCLENBQUMsRUFDckcsT0FBTyxPQUFPLEVBQUUsT0FBTyxLQUFLLE1BQU0sV0FBVyxVQUFVLDJCQUEyQixDQUFDLEVBQ25GLE9BQU8sU0FBUyxFQUFFLE9BQU8sS0FBSyxNQUFNLFdBQVcsVUFBVSwrQ0FBK0MsQ0FBQyxFQUN6RyxPQUFPLE9BQU8sRUFBRSxPQUFPLEtBQUssTUFBTSxXQUFXLFVBQVUsbUNBQW1DLENBQUMsRUFDM0YsS0FBSyxLQUFLLElBQUksUUFBUSxPQUFPLFNBQVMsRUFBRSxDQUFDLEVBQ3pDLE9BQU8sRUFBRTtBQUVkLFFBQU0sVUFBVSxLQUFLO0FBQ3JCLFFBQU0sTUFBTSxJQUFJLFFBQVEsRUFBRSxNQUFNLEtBQUssT0FBTyxDQUFDO0FBQzdDLFFBQU0sWUFBWSxJQUFJLFVBQVUsS0FBSyxPQUFPO0FBRTVDLFFBQU0sV0FBVyxJQUFJLFNBQVM7QUFFOUIsV0FBUyxRQUFRLFdBQVcsVUFBVSxPQUFPLElBQUksVUFBVSxHQUFHO0FBQzlELE1BQUksS0FBSyxLQUFLO0FBQ1YsVUFBTSxTQUFTLElBQUksa0JBQWtCLFNBQVMsVUFBVSxVQUFVLE9BQU8sQ0FBQyxJQUFJLE1BQU0sVUFBVSxJQUFJLENBQUM7QUFBQSxFQUN2RztBQUVBLE1BQUksS0FBSyxPQUFPO0FBQ1osVUFBTSxVQUFVLE1BQU0sUUFBUTtBQUFBLEVBQ2xDO0FBRUEsTUFBSSxLQUFLLEtBQUs7QUFDVixVQUFNLFNBQVMsSUFBSSxtQkFBbUIsU0FBUyxVQUFVLFVBQVUsT0FBTyxDQUFDLElBQUksTUFBTSxVQUFVLElBQUksQ0FBQztBQUFBLEVBQ3hHO0FBRUEsV0FBUyxTQUFTO0FBQ3RCOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/versioning/cli.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO,WAAW;AAClB,SAAS,eAAe;AACxB,SAAS,eAAe;AACxB,SAAS,gBAAgB;AACzB,SAAS,iBAAiB;AAE1B,eAAsB,KAAK,OAAO,QAAQ,MAAM;AAC5C,QAAM,OAAO,MAAM,MAAM,QAAQ,IAAI,CAAC,EACjC,QAAQ,YAAY,uCAAuC,EAC3D,OAAO,UAAU,EAAE,OAAO,KAAK,SAAS,KAAK,MAAM,UAAU,UAAU,6BAA6B,CAAC,EACrG,OAAO,OAAO,EAAE,OAAO,KAAK,MAAM,WAAW,UAAU,2BAA2B,CAAC,EACnF,OAAO,SAAS,EAAE,OAAO,KAAK,MAAM,WAAW,UAAU,+CAA+C,CAAC,EACzG,OAAO,OAAO,EAAE,OAAO,KAAK,MAAM,WAAW,UAAU,mCAAmC,CAAC,EAC3F,KAAK,KAAK,IAAI,QAAQ,OAAO,SAAS,EAAE,CAAC,EACzC,OAAO,EAAE;AAEd,QAAM,UAAU,KAAK;AACrB,QAAM,MAAM,IAAI,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;AAC7C,QAAM,YAAY,IAAI,UAAU,KAAK,OAAO;AAE5C,QAAM,WAAW,IAAI,SAAS;AAE9B,WAAS,QAAQ,WAAW,UAAU,OAAO,IAAI,UAAU,GAAG;AAC9D,MAAI,KAAK,KAAK;AACV,UAAM,SAAS,IAAI,kBAAkB,SAAS,UAAU,UAAU,OAAO,CAAC,IAAI,MAAM,UAAU,IAAI,CAAC;AAAA,EACvG;AAEA,MAAI,KAAK,OAAO;AACZ,UAAM,UAAU,MAAM,QAAQ;AAAA,EAClC;AAEA,MAAI,KAAK,KAAK;AACV,UAAM,SAAS,IAAI,mBAAmB,SAAS,UAAU,UAAU,OAAO,CAAC,IAAI,MAAM,UAAU,IAAI,CAAC;AAAA,EACxG;AAEA,WAAS,SAAS;AACtB;",
5
+ "names": []
6
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Package } from "../util/package.js";
7
+ import { Progress } from "../util/progress.js";
8
+ export declare class Versioner {
9
+ #private;
10
+ get pkg(): Package;
11
+ get version(): string | undefined;
12
+ get appliedVersion(): string;
13
+ constructor(pkg: Package, version?: string);
14
+ set(): Promise<void>;
15
+ apply(progress?: Progress): Promise<void>;
16
+ tag(): Promise<void>;
17
+ }
18
+ //# sourceMappingURL=versioner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versioner.d.ts","sourceRoot":"","sources":["../../../src/versioning/versioner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAI/C,qBAAa,SAAS;;IAKlB,IAAI,GAAG,YAEN;IAED,IAAI,OAAO,uBAEV;IAED,IAAI,cAAc,WAEjB;gBAEW,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM;IAcpC,GAAG;IAIH,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAiBzB,GAAG;CAsEZ"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import colors from "ansi-colors";
7
+ import { existsSync, readFileSync } from "fs";
8
+ import { cp, writeFile } from "fs/promises";
9
+ import { Graph } from "../building/graph.js";
10
+ import { execute } from "../running/execute.js";
11
+ const VERSION_FILE = "version.txt";
12
+ class Versioner {
13
+ #pkg;
14
+ #version;
15
+ #members = /* @__PURE__ */ new Set();
16
+ get pkg() {
17
+ return this.#pkg;
18
+ }
19
+ get version() {
20
+ return this.#version;
21
+ }
22
+ get appliedVersion() {
23
+ return this.#pkg.json.version;
24
+ }
25
+ constructor(pkg, version) {
26
+ this.#pkg = pkg.workspace;
27
+ if (version === void 0) {
28
+ version = this.#readVersion();
29
+ }
30
+ if (version && !version.match(/^(?:\d+\.\d+\.\d+(?:-[a-z0-9.-]+)?|[a-z]+)$/)) {
31
+ throw new Error(`Version ${version} is invalid (must be semantic or single lowercase word)`);
32
+ }
33
+ this.#version = version;
34
+ }
35
+ async set() {
36
+ await writeFile(this.#versionFile, this.#definiteVersion);
37
+ }
38
+ async apply(progress) {
39
+ const graph = await Graph.load(this.#pkg);
40
+ this.#members = new Set(graph.nodes.map((node) => node.pkg.name));
41
+ for (const node of graph.nodes) {
42
+ const what = `Apply ${colors.bold(this.#definiteVersion)} to ${colors.bold(node.pkg.name)}`;
43
+ progress?.update(what);
44
+ if (this.#applyOne(node.pkg)) {
45
+ progress?.success(what);
46
+ await node.pkg.save();
47
+ } else {
48
+ progress?.success(`${what} (no change)`);
49
+ }
50
+ await cp(this.#pkg.resolve("LICENSE"), node.pkg.resolve("LICENSE"));
51
+ }
52
+ }
53
+ async tag() {
54
+ await execute("git", ["tag", "-f", `v${this.#definiteVersion}`]);
55
+ }
56
+ get #definiteVersion() {
57
+ if (this.#version === void 0) {
58
+ throw new Error(`No version supplied and ${this.#versionFile} does not exist`);
59
+ }
60
+ return this.#version;
61
+ }
62
+ get #versionFile() {
63
+ return this.#pkg.resolve(VERSION_FILE);
64
+ }
65
+ #readVersion() {
66
+ const versionFile = this.#versionFile;
67
+ if (!existsSync(versionFile)) {
68
+ return void 0;
69
+ }
70
+ const version = readFileSync(versionFile).toString().trim();
71
+ if (version.length === 0) {
72
+ throw new Error(`Version file ${versionFile} is empty`);
73
+ }
74
+ return version;
75
+ }
76
+ #applyOne(pkg) {
77
+ const json = pkg.json;
78
+ let changed = false;
79
+ if (json.version !== this.#definiteVersion) {
80
+ json.version = this.#definiteVersion;
81
+ changed = true;
82
+ }
83
+ for (const key in json) {
84
+ if (key !== "dependencies" && !key.endsWith("Dependencies")) {
85
+ continue;
86
+ }
87
+ const deps = json[key];
88
+ if (typeof deps !== "object") {
89
+ continue;
90
+ }
91
+ if (this.#applyToDeps(deps)) {
92
+ changed = true;
93
+ }
94
+ }
95
+ return changed;
96
+ }
97
+ #applyToDeps(deps) {
98
+ let changed = false;
99
+ const version = this.#definiteVersion;
100
+ for (const key in deps) {
101
+ if (this.#members.has(key)) {
102
+ if (deps[key] === version) {
103
+ continue;
104
+ }
105
+ deps[key] = this.#definiteVersion;
106
+ changed = true;
107
+ }
108
+ }
109
+ return changed;
110
+ }
111
+ }
112
+ export {
113
+ Versioner
114
+ };
115
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3ZlcnNpb25pbmcvdmVyc2lvbmVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMi0yMDI0IE1hdHRlci5qcyBBdXRob3JzXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmltcG9ydCBjb2xvcnMgZnJvbSBcImFuc2ktY29sb3JzXCI7XG5pbXBvcnQgeyBleGlzdHNTeW5jLCByZWFkRmlsZVN5bmMgfSBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IGNwLCB3cml0ZUZpbGUgfSBmcm9tIFwiZnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IEdyYXBoIH0gZnJvbSBcIi4uL2J1aWxkaW5nL2dyYXBoLmpzXCI7XG5pbXBvcnQgeyBleGVjdXRlIH0gZnJvbSBcIi4uL3J1bm5pbmcvZXhlY3V0ZS5qc1wiO1xuaW1wb3J0IHsgUGFja2FnZSB9IGZyb20gXCIuLi91dGlsL3BhY2thZ2UuanNcIjtcbmltcG9ydCB7IFByb2dyZXNzIH0gZnJvbSBcIi4uL3V0aWwvcHJvZ3Jlc3MuanNcIjtcblxuY29uc3QgVkVSU0lPTl9GSUxFID0gXCJ2ZXJzaW9uLnR4dFwiO1xuXG5leHBvcnQgY2xhc3MgVmVyc2lvbmVyIHtcbiAgICAjcGtnOiBQYWNrYWdlO1xuICAgICN2ZXJzaW9uPzogc3RyaW5nO1xuICAgICNtZW1iZXJzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICBnZXQgcGtnKCkge1xuICAgICAgICByZXR1cm4gdGhpcy4jcGtnO1xuICAgIH1cblxuICAgIGdldCB2ZXJzaW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy4jdmVyc2lvbjtcbiAgICB9XG5cbiAgICBnZXQgYXBwbGllZFZlcnNpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLiNwa2cuanNvbi52ZXJzaW9uO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHBrZzogUGFja2FnZSwgdmVyc2lvbj86IHN0cmluZykge1xuICAgICAgICB0aGlzLiNwa2cgPSBwa2cud29ya3NwYWNlO1xuXG4gICAgICAgIGlmICh2ZXJzaW9uID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHZlcnNpb24gPSB0aGlzLiNyZWFkVmVyc2lvbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZlcnNpb24gJiYgIXZlcnNpb24ubWF0Y2goL14oPzpcXGQrXFwuXFxkK1xcLlxcZCsoPzotW2EtejAtOS4tXSspP3xbYS16XSspJC8pKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFZlcnNpb24gJHt2ZXJzaW9ufSBpcyBpbnZhbGlkIChtdXN0IGJlIHNlbWFudGljIG9yIHNpbmdsZSBsb3dlcmNhc2Ugd29yZClgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuI3ZlcnNpb24gPSB2ZXJzaW9uO1xuICAgIH1cblxuICAgIGFzeW5jIHNldCgpIHtcbiAgICAgICAgYXdhaXQgd3JpdGVGaWxlKHRoaXMuI3ZlcnNpb25GaWxlLCB0aGlzLiNkZWZpbml0ZVZlcnNpb24pO1xuICAgIH1cblxuICAgIGFzeW5jIGFwcGx5KHByb2dyZXNzPzogUHJvZ3Jlc3MpIHtcbiAgICAgICAgY29uc3QgZ3JhcGggPSBhd2FpdCBHcmFwaC5sb2FkKHRoaXMuI3BrZyk7XG4gICAgICAgIHRoaXMuI21lbWJlcnMgPSBuZXcgU2V0KGdyYXBoLm5vZGVzLm1hcChub2RlID0+IG5vZGUucGtnLm5hbWUpKTtcblxuICAgICAgICBmb3IgKGNvbnN0IG5vZGUgb2YgZ3JhcGgubm9kZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHdoYXQgPSBgQXBwbHkgJHtjb2xvcnMuYm9sZCh0aGlzLiNkZWZpbml0ZVZlcnNpb24pfSB0byAke2NvbG9ycy5ib2xkKG5vZGUucGtnLm5hbWUpfWA7XG4gICAgICAgICAgICBwcm9ncmVzcz8udXBkYXRlKHdoYXQpO1xuICAgICAgICAgICAgaWYgKHRoaXMuI2FwcGx5T25lKG5vZGUucGtnKSkge1xuICAgICAgICAgICAgICAgIHByb2dyZXNzPy5zdWNjZXNzKHdoYXQpO1xuICAgICAgICAgICAgICAgIGF3YWl0IG5vZGUucGtnLnNhdmUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcHJvZ3Jlc3M/LnN1Y2Nlc3MoYCR7d2hhdH0gKG5vIGNoYW5nZSlgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF3YWl0IGNwKHRoaXMuI3BrZy5yZXNvbHZlKFwiTElDRU5TRVwiKSwgbm9kZS5wa2cucmVzb2x2ZShcIkxJQ0VOU0VcIikpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgdGFnKCkge1xuICAgICAgICBhd2FpdCBleGVjdXRlKFwiZ2l0XCIsIFtcInRhZ1wiLCBcIi1mXCIsIGB2JHt0aGlzLiNkZWZpbml0ZVZlcnNpb259YF0pO1xuICAgIH1cblxuICAgIGdldCAjZGVmaW5pdGVWZXJzaW9uKCkge1xuICAgICAgICBpZiAodGhpcy4jdmVyc2lvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHZlcnNpb24gc3VwcGxpZWQgYW5kICR7dGhpcy4jdmVyc2lvbkZpbGV9IGRvZXMgbm90IGV4aXN0YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuI3ZlcnNpb247XG4gICAgfVxuXG4gICAgZ2V0ICN2ZXJzaW9uRmlsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuI3BrZy5yZXNvbHZlKFZFUlNJT05fRklMRSk7XG4gICAgfVxuXG4gICAgI3JlYWRWZXJzaW9uKCkge1xuICAgICAgICBjb25zdCB2ZXJzaW9uRmlsZSA9IHRoaXMuI3ZlcnNpb25GaWxlO1xuICAgICAgICBpZiAoIWV4aXN0c1N5bmModmVyc2lvbkZpbGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmVyc2lvbiA9IHJlYWRGaWxlU3luYyh2ZXJzaW9uRmlsZSkudG9TdHJpbmcoKS50cmltKCk7XG4gICAgICAgIGlmICh2ZXJzaW9uLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBWZXJzaW9uIGZpbGUgJHt2ZXJzaW9uRmlsZX0gaXMgZW1wdHlgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2ZXJzaW9uO1xuICAgIH1cblxuICAgICNhcHBseU9uZShwa2c6IFBhY2thZ2UpIHtcbiAgICAgICAgY29uc3QganNvbiA9IHBrZy5qc29uO1xuICAgICAgICBsZXQgY2hhbmdlZCA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChqc29uLnZlcnNpb24gIT09IHRoaXMuI2RlZmluaXRlVmVyc2lvbikge1xuICAgICAgICAgICAganNvbi52ZXJzaW9uID0gdGhpcy4jZGVmaW5pdGVWZXJzaW9uO1xuICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBqc29uKSB7XG4gICAgICAgICAgICBpZiAoa2V5ICE9PSBcImRlcGVuZGVuY2llc1wiICYmICFrZXkuZW5kc1dpdGgoXCJEZXBlbmRlbmNpZXNcIikpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZGVwcyA9IGpzb25ba2V5XTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZGVwcyAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy4jYXBwbHlUb0RlcHMoZGVwcykpIHtcbiAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjaGFuZ2VkO1xuICAgIH1cblxuICAgICNhcHBseVRvRGVwcyhkZXBzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSB7XG4gICAgICAgIGxldCBjaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHZlcnNpb24gPSB0aGlzLiNkZWZpbml0ZVZlcnNpb247XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGRlcHMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLiNtZW1iZXJzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGRlcHNba2V5XSA9PT0gdmVyc2lvbikge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVwc1trZXldID0gdGhpcy4jZGVmaW5pdGVWZXJzaW9uO1xuICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjaGFuZ2VkO1xuICAgIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxPQUFPLFlBQVk7QUFDbkIsU0FBUyxZQUFZLG9CQUFvQjtBQUN6QyxTQUFTLElBQUksaUJBQWlCO0FBQzlCLFNBQVMsYUFBYTtBQUN0QixTQUFTLGVBQWU7QUFJeEIsTUFBTSxlQUFlO0FBRWQsTUFBTSxVQUFVO0FBQUEsRUFDbkI7QUFBQSxFQUNBO0FBQUEsRUFDQSxXQUFXLG9CQUFJLElBQVk7QUFBQSxFQUUzQixJQUFJLE1BQU07QUFDTixXQUFPLEtBQUs7QUFBQSxFQUNoQjtBQUFBLEVBRUEsSUFBSSxVQUFVO0FBQ1YsV0FBTyxLQUFLO0FBQUEsRUFDaEI7QUFBQSxFQUVBLElBQUksaUJBQWlCO0FBQ2pCLFdBQU8sS0FBSyxLQUFLLEtBQUs7QUFBQSxFQUMxQjtBQUFBLEVBRUEsWUFBWSxLQUFjLFNBQWtCO0FBQ3hDLFNBQUssT0FBTyxJQUFJO0FBRWhCLFFBQUksWUFBWSxRQUFXO0FBQ3ZCLGdCQUFVLEtBQUssYUFBYTtBQUFBLElBQ2hDO0FBRUEsUUFBSSxXQUFXLENBQUMsUUFBUSxN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
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/versioning/versioner.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
package/package.json ADDED
@@ -0,0 +1,82 @@
1
+ {
2
+ "name": "@matter/tools",
3
+ "version": "0.11.0-alpha.0-20241005-e3e4e4a7a",
4
+ "description": "Matter.js tooling",
5
+ "type": "module",
6
+ "scripts": {
7
+ "clean": "node bin/build.js clean",
8
+ "build": "node bin/build.js",
9
+ "build-clean": "node bin/build.js --clean",
10
+ "test": "node bin/test.js",
11
+ "version": "node bin/version.js"
12
+ },
13
+ "bin": {
14
+ "matter-build": "bin/build.js",
15
+ "matter-test": "bin/test.js",
16
+ "matter-run": "bin/run.js",
17
+ "matter-version": "bin/version.js"
18
+ },
19
+ "exports": {
20
+ ".": {
21
+ "import": {
22
+ "types": "./dist/esm/index.d.ts",
23
+ "default": "./dist/esm/index.js"
24
+ },
25
+ "require": {
26
+ "types": "./dist/cjs/index.d.ts",
27
+ "default": "./dist/cjs/index.js"
28
+ }
29
+ }
30
+ },
31
+ "main": "dist/cjs/index.js",
32
+ "module": "dist/esm/index.js",
33
+ "types": "dist/esm/index.d.ts",
34
+ "repository": {
35
+ "type": "git",
36
+ "url": "git+https://github.com/project-chip/matter.js.git"
37
+ },
38
+ "author": "matter.js authors",
39
+ "contributors": [
40
+ "Greg Lauckhart <greg@lauckhart.com>"
41
+ ],
42
+ "license": "Apache-2.0",
43
+ "bugs": {
44
+ "url": "https://github.com/project-chip/matter.js/issues"
45
+ },
46
+ "homepage": "https://github.com/project-chip/matter.js#readme",
47
+ "dependencies": {
48
+ "@npmcli/map-workspaces": "^3.0.6",
49
+ "@types/express": "^4.17.21",
50
+ "ansi-colors": "^4.1.3",
51
+ "chai": "^4.4.1",
52
+ "chai-as-promised": "^7.1.2",
53
+ "dockerode": "^4.0.2",
54
+ "esbuild": "^0.24.0",
55
+ "express": "^4.19.2",
56
+ "glob": "^10.4.5",
57
+ "mocha": "^10.7.3",
58
+ "playwright": "^1.46.1",
59
+ "trace-unhandled": "^2.0.1",
60
+ "typescript": "~5.6.2",
61
+ "wtfnode": "^0.9.3",
62
+ "yargs": "^17.7.2"
63
+ },
64
+ "optionalDependencies": {
65
+ "@esbuild/linux-x64": "^0.24.0",
66
+ "v8-profiler-next": "^1.10.0"
67
+ },
68
+ "devDependencies": {
69
+ "@types/chai": "^4.3.16",
70
+ "@types/chai-as-promised": "^7.1.8",
71
+ "@types/debug": "^4.1.12",
72
+ "@types/dockerode": "^3.3.30",
73
+ "@types/glob": "^8.1.0",
74
+ "@types/mocha": "^10.0.7",
75
+ "@types/npmcli__map-workspaces": "^3.0.4",
76
+ "@types/wtfnode": "^0.7.3",
77
+ "@types/yargs": "^17.0.33"
78
+ },
79
+ "publishConfig": {
80
+ "access": "public"
81
+ }
82
+ }
@@ -0,0 +1,216 @@
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 { createHash } from "crypto";
9
+ import { Progress } from "../util/progress.js";
10
+ import { BuildError } from "./error.js";
11
+ import { Graph } from "./graph.js";
12
+ import { BuildInformation, Project } from "./project.js";
13
+ import { createTypescriptContext } from "./typescript.js";
14
+ import { TypescriptContext } from "./typescript/context.js";
15
+
16
+ export enum Target {
17
+ clean = "clean",
18
+ types = "types",
19
+ esm = "esm",
20
+ cjs = "cjs",
21
+ }
22
+
23
+ export interface Options {
24
+ targets?: Target[];
25
+ clean?: boolean;
26
+ graph?: Graph;
27
+ }
28
+
29
+ /**
30
+ * High-level build coordination.
31
+ *
32
+ * Warning: This class is intended for command line use and will process.exit if things go wrong.
33
+ */
34
+ export class Builder {
35
+ unconditional: boolean;
36
+ tsContext?: TypescriptContext;
37
+ graph?: Graph;
38
+
39
+ constructor(private options: Options = {}) {
40
+ this.unconditional =
41
+ options.clean || (options.targets !== undefined && options.targets?.indexOf(Target.clean) !== -1);
42
+ }
43
+
44
+ public async configure(project: Project) {
45
+ if (!project.pkg.hasConfig) {
46
+ return;
47
+ }
48
+
49
+ const progress = project.pkg.start("Configuring");
50
+
51
+ try {
52
+ await project.configure(progress);
53
+ } catch (e: any) {
54
+ progress.shutdown();
55
+ process.stderr.write(`${e.stack ?? e.message}\n\n`);
56
+ process.exit(1);
57
+ }
58
+
59
+ progress.shutdown();
60
+ }
61
+
62
+ public async build(project: Project) {
63
+ const progress = project.pkg.start("Building");
64
+
65
+ try {
66
+ await this.#doBuild(project, progress);
67
+ } catch (e: any) {
68
+ progress.shutdown();
69
+ process.stderr.write(`${e.stack ?? e.message}\n\n`);
70
+ process.exit(1);
71
+ }
72
+
73
+ progress.shutdown();
74
+ }
75
+
76
+ async #doBuild(project: Project, progress: Progress) {
77
+ const targets = this.#selectTargets(project);
78
+
79
+ if (targets.has(Target.clean) || this.options.clean) {
80
+ await progress.run("Clean", () => project.clean());
81
+ }
82
+
83
+ if (!targets.has(Target.types) && !targets.has(Target.esm) && !targets.has(Target.cjs)) {
84
+ return;
85
+ }
86
+
87
+ const info: BuildInformation = {};
88
+
89
+ const config = await project.configure(progress);
90
+
91
+ await config?.before?.({ project, progress });
92
+
93
+ // If available we use graph to access dependency API shas
94
+ const graph = this.graph ?? (await Graph.forProject(project.pkg.path));
95
+ let node: Graph.Node | undefined;
96
+ if (graph) {
97
+ node = graph.get(project.pkg.name);
98
+ for (const dep of node.dependencies) {
99
+ if (dep.info.apiSha !== undefined) {
100
+ if (info.dependencyApiShas === undefined) {
101
+ info.dependencyApiShas = {};
102
+ }
103
+ info.dependencyApiShas[dep.pkg.name] = dep.info.apiSha;
104
+ }
105
+ }
106
+ }
107
+
108
+ if (targets.has(Target.types)) {
109
+ try {
110
+ // Obtain or initialize typescript solution builder
111
+ let context = this.tsContext;
112
+ if (context === undefined) {
113
+ context = this.tsContext = await createTypescriptContext(
114
+ project.pkg.workspace,
115
+ graph,
116
+ progress.refresh.bind(progress),
117
+ );
118
+ }
119
+
120
+ if (project.pkg.isLibrary) {
121
+ const apiSha = createHash("sha1");
122
+
123
+ // Our API SHA changes if that of any dependency changes
124
+ if (node) {
125
+ for (const dep of node.dependencies) {
126
+ if (dep.info.apiSha !== undefined) {
127
+ apiSha.update(dep.info.apiSha);
128
+ }
129
+ }
130
+ }
131
+
132
+ await progress.run(`Generate ${progress.emphasize("type declarations")}`, () =>
133
+ context.build(project.pkg, "src"),
134
+ );
135
+ await progress.run(`Install ${progress.emphasize("type declarations")}`, () =>
136
+ project.installDeclarations(apiSha),
137
+ );
138
+
139
+ info.apiSha = apiSha.digest("hex");
140
+ } else {
141
+ await progress.run(`Validate ${progress.emphasize("types")}`, () =>
142
+ context.build(project.pkg, "src", false),
143
+ );
144
+ }
145
+ if (project.pkg.hasTests) {
146
+ await progress.run(`Validate ${progress.emphasize("test types")}`, () =>
147
+ context.build(project.pkg, "test"),
148
+ );
149
+ }
150
+ } catch (e) {
151
+ if (e instanceof BuildError) {
152
+ progress.failure("Terminating due to type errors");
153
+ process.stderr.write(e.diagnostics);
154
+ process.exit(1);
155
+ }
156
+ throw e;
157
+ }
158
+ }
159
+
160
+ if (targets.has(Target.esm)) {
161
+ await this.#transpile(project, progress, Target.esm);
162
+ }
163
+
164
+ if (targets.has(Target.cjs)) {
165
+ await this.#transpile(project, progress, Target.cjs);
166
+ }
167
+
168
+ await config?.after?.({ project, progress });
169
+
170
+ // Only update build information when there are no explicit targets so we know it's a full build
171
+ if (!this.options.targets?.length) {
172
+ await project.recordBuildInfo(info);
173
+ if (node) {
174
+ node.info = info;
175
+ }
176
+ }
177
+ }
178
+
179
+ async #transpile(project: Project, progress: Progress, format: "esm" | "cjs") {
180
+ const fmt = format.toUpperCase();
181
+ await progress.run(`Transpile ${progress.emphasize("library")} to ${colors.bold(fmt)}`, () =>
182
+ project.buildSource(format),
183
+ );
184
+ if (project.pkg.hasTests) {
185
+ await progress.run(`Transpile ${progress.emphasize("tests")} to ${colors.bold(fmt)}`, () =>
186
+ project.buildTests(format),
187
+ );
188
+ }
189
+ }
190
+
191
+ #selectTargets(project: Project) {
192
+ const targets = new Set<string>(this.options.targets);
193
+
194
+ if (!targets.size) {
195
+ targets.add(Target.types);
196
+
197
+ if (project.pkg.supportsEsm) {
198
+ targets.add(Target.esm);
199
+ }
200
+
201
+ if (project.pkg.supportsCjs) {
202
+ targets.add(Target.cjs);
203
+ }
204
+ } else {
205
+ if (!project.pkg.supportsEsm) {
206
+ targets.delete(Target.esm);
207
+ }
208
+
209
+ if (!project.pkg.supportsCjs) {
210
+ targets.delete(Target.cjs);
211
+ }
212
+ }
213
+
214
+ return targets;
215
+ }
216
+ }