@matter/testing 0.17.9 → 0.18.0-alpha.0-20260812-4d7f2790e

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 (277) hide show
  1. package/dist/cjs/chai.js +4 -4
  2. package/dist/cjs/chai.js.map +2 -2
  3. package/dist/cjs/chip/cert/cert-context.d.ts +115 -0
  4. package/dist/cjs/chip/cert/cert-context.d.ts.map +1 -0
  5. package/dist/cjs/chip/cert/cert-context.js +22 -0
  6. package/dist/cjs/chip/cert/cert-context.js.map +6 -0
  7. package/dist/cjs/chip/cert/cert-dsl.d.ts +48 -0
  8. package/dist/cjs/chip/cert/cert-dsl.d.ts.map +1 -0
  9. package/dist/cjs/chip/cert/cert-dsl.js +308 -0
  10. package/dist/cjs/chip/cert/cert-dsl.js.map +6 -0
  11. package/dist/cjs/chip/cert/cert-test.d.ts +46 -0
  12. package/dist/cjs/chip/cert/cert-test.d.ts.map +1 -0
  13. package/dist/cjs/chip/cert/cert-test.js +250 -0
  14. package/dist/cjs/chip/cert/cert-test.js.map +6 -0
  15. package/dist/cjs/chip/cert/chip-app-subject.d.ts +80 -0
  16. package/dist/cjs/chip/cert/chip-app-subject.d.ts.map +1 -0
  17. package/dist/cjs/chip/cert/chip-app-subject.js +337 -0
  18. package/dist/cjs/chip/cert/chip-app-subject.js.map +6 -0
  19. package/dist/cjs/chip/cert/controller-adapter.d.ts +119 -0
  20. package/dist/cjs/chip/cert/controller-adapter.d.ts.map +1 -0
  21. package/dist/cjs/chip/cert/controller-adapter.js +45 -0
  22. package/dist/cjs/chip/cert/controller-adapter.js.map +6 -0
  23. package/dist/cjs/chip/cert/device-config.d.ts +15 -0
  24. package/dist/cjs/chip/cert/device-config.d.ts.map +1 -0
  25. package/dist/cjs/chip/cert/device-config.js +43 -0
  26. package/dist/cjs/chip/cert/device-config.js.map +6 -0
  27. package/dist/cjs/chip/cert/evidence.d.ts +70 -0
  28. package/dist/cjs/chip/cert/evidence.d.ts.map +1 -0
  29. package/dist/cjs/chip/cert/evidence.js +128 -0
  30. package/dist/cjs/chip/cert/evidence.js.map +6 -0
  31. package/dist/cjs/chip/cert/log-follower.d.ts +96 -0
  32. package/dist/cjs/chip/cert/log-follower.d.ts.map +1 -0
  33. package/dist/cjs/chip/cert/log-follower.js +209 -0
  34. package/dist/cjs/chip/cert/log-follower.js.map +6 -0
  35. package/dist/cjs/chip/cert/matterjs-subject-registry.d.ts +22 -0
  36. package/dist/cjs/chip/cert/matterjs-subject-registry.d.ts.map +1 -0
  37. package/dist/cjs/chip/cert/matterjs-subject-registry.js +40 -0
  38. package/dist/cjs/chip/cert/matterjs-subject-registry.js.map +6 -0
  39. package/dist/cjs/chip/cert/prompt-driven-python-test.d.ts +40 -0
  40. package/dist/cjs/chip/cert/prompt-driven-python-test.d.ts.map +1 -0
  41. package/dist/cjs/chip/cert/prompt-driven-python-test.js +77 -0
  42. package/dist/cjs/chip/cert/prompt-driven-python-test.js.map +6 -0
  43. package/dist/cjs/chip/chip-bins.d.ts +132 -0
  44. package/dist/cjs/chip/chip-bins.d.ts.map +1 -0
  45. package/dist/cjs/chip/chip-bins.js +232 -0
  46. package/dist/cjs/chip/chip-bins.js.map +6 -0
  47. package/dist/cjs/chip/chip-test-common.d.ts.map +1 -1
  48. package/dist/cjs/chip/chip-test-common.js +1 -1
  49. package/dist/cjs/chip/chip-test-common.js.map +1 -1
  50. package/dist/cjs/chip/chip.d.ts.map +1 -1
  51. package/dist/cjs/chip/chip.js +1 -1
  52. package/dist/cjs/chip/chip.js.map +1 -1
  53. package/dist/cjs/chip/config.d.ts +26 -0
  54. package/dist/cjs/chip/config.d.ts.map +1 -1
  55. package/dist/cjs/chip/config.js +11 -3
  56. package/dist/cjs/chip/config.js.map +1 -1
  57. package/dist/cjs/chip/index.d.ts +26 -0
  58. package/dist/cjs/chip/index.d.ts.map +1 -1
  59. package/dist/cjs/chip/index.js +49 -0
  60. package/dist/cjs/chip/index.js.map +2 -2
  61. package/dist/cjs/chip/pics/file.d.ts +8 -0
  62. package/dist/cjs/chip/pics/file.d.ts.map +1 -1
  63. package/dist/cjs/chip/pics/file.js +4 -1
  64. package/dist/cjs/chip/pics/file.js.map +1 -1
  65. package/dist/cjs/chip/pics/source.d.ts +8 -5
  66. package/dist/cjs/chip/pics/source.d.ts.map +1 -1
  67. package/dist/cjs/chip/pics/source.js +25 -17
  68. package/dist/cjs/chip/pics/source.js.map +1 -1
  69. package/dist/cjs/chip/python-test.d.ts +12 -0
  70. package/dist/cjs/chip/python-test.d.ts.map +1 -1
  71. package/dist/cjs/chip/python-test.js +6 -4
  72. package/dist/cjs/chip/python-test.js.map +1 -1
  73. package/dist/cjs/chip/state.d.ts.map +1 -1
  74. package/dist/cjs/chip/state.js +24 -7
  75. package/dist/cjs/chip/state.js.map +1 -1
  76. package/dist/cjs/chip/yaml-test.js +1 -1
  77. package/dist/cjs/chip/yaml-test.js.map +1 -1
  78. package/dist/cjs/cli.d.ts.map +1 -1
  79. package/dist/cjs/cli.js +33 -2
  80. package/dist/cjs/cli.js.map +1 -1
  81. package/dist/cjs/device/backchannel.d.ts.map +1 -1
  82. package/dist/cjs/device/subject.d.ts.map +1 -1
  83. package/dist/cjs/device/test.d.ts.map +1 -1
  84. package/dist/cjs/docker/container.d.ts.map +1 -1
  85. package/dist/cjs/docker/docker.d.ts.map +1 -1
  86. package/dist/cjs/docker/edit.d.ts.map +1 -1
  87. package/dist/cjs/docker/errors.d.ts.map +1 -1
  88. package/dist/cjs/docker/network.d.ts.map +1 -1
  89. package/dist/cjs/docker/terminal.d.ts.map +1 -1
  90. package/dist/cjs/failure-reporter.d.ts.map +1 -1
  91. package/dist/cjs/global-declarations.d.js +0 -1
  92. package/dist/cjs/global-declarations.d.js.map +1 -1
  93. package/dist/cjs/global-declarations.d.ts +2 -2
  94. package/dist/cjs/global-definitions.js +17 -4
  95. package/dist/cjs/global-definitions.js.map +2 -2
  96. package/dist/cjs/index.d.js +2 -0
  97. package/dist/cjs/index.d.js.map +1 -1
  98. package/dist/cjs/index.d.ts +3 -0
  99. package/dist/cjs/index.js +2 -0
  100. package/dist/cjs/index.js.map +1 -1
  101. package/dist/cjs/mocha.d.ts.map +1 -1
  102. package/dist/cjs/mocha.js +5 -0
  103. package/dist/cjs/mocha.js.map +1 -1
  104. package/dist/cjs/mocharc.cjs +4 -3
  105. package/dist/cjs/options.d.ts.map +1 -1
  106. package/dist/cjs/print-report.js +1 -1
  107. package/dist/cjs/print-report.js.map +1 -1
  108. package/dist/cjs/test-descriptor.d.ts +1 -1
  109. package/dist/cjs/test-descriptor.d.ts.map +1 -1
  110. package/dist/cjs/text-diff.d.ts.map +1 -1
  111. package/dist/cjs/util/async.d.ts +30 -0
  112. package/dist/cjs/util/async.d.ts.map +1 -0
  113. package/dist/cjs/util/async.js +85 -0
  114. package/dist/cjs/util/async.js.map +6 -0
  115. package/dist/cjs/util/trace-unhandled.d.ts.map +1 -1
  116. package/dist/cjs/util/wtf.d.ts.map +1 -1
  117. package/dist/cjs/util/wtf.js +1 -1
  118. package/dist/cjs/util/wtf.js.map +1 -1
  119. package/dist/cjs/web.d.ts.map +1 -1
  120. package/dist/cjs/web.js +5 -1
  121. package/dist/cjs/web.js.map +1 -1
  122. package/dist/esm/chai.js +1 -1
  123. package/dist/esm/chai.js.map +1 -1
  124. package/dist/esm/chip/cert/cert-context.d.ts +115 -0
  125. package/dist/esm/chip/cert/cert-context.d.ts.map +1 -0
  126. package/dist/esm/chip/cert/cert-context.js +6 -0
  127. package/dist/esm/chip/cert/cert-context.js.map +6 -0
  128. package/dist/esm/chip/cert/cert-dsl.d.ts +48 -0
  129. package/dist/esm/chip/cert/cert-dsl.d.ts.map +1 -0
  130. package/dist/esm/chip/cert/cert-dsl.js +288 -0
  131. package/dist/esm/chip/cert/cert-dsl.js.map +6 -0
  132. package/dist/esm/chip/cert/cert-test.d.ts +46 -0
  133. package/dist/esm/chip/cert/cert-test.d.ts.map +1 -0
  134. package/dist/esm/chip/cert/cert-test.js +230 -0
  135. package/dist/esm/chip/cert/cert-test.js.map +6 -0
  136. package/dist/esm/chip/cert/chip-app-subject.d.ts +80 -0
  137. package/dist/esm/chip/cert/chip-app-subject.d.ts.map +1 -0
  138. package/dist/esm/chip/cert/chip-app-subject.js +317 -0
  139. package/dist/esm/chip/cert/chip-app-subject.js.map +6 -0
  140. package/dist/esm/chip/cert/controller-adapter.d.ts +119 -0
  141. package/dist/esm/chip/cert/controller-adapter.d.ts.map +1 -0
  142. package/dist/esm/chip/cert/controller-adapter.js +25 -0
  143. package/dist/esm/chip/cert/controller-adapter.js.map +6 -0
  144. package/dist/esm/chip/cert/device-config.d.ts +15 -0
  145. package/dist/esm/chip/cert/device-config.d.ts.map +1 -0
  146. package/dist/esm/chip/cert/device-config.js +23 -0
  147. package/dist/esm/chip/cert/device-config.js.map +6 -0
  148. package/dist/esm/chip/cert/evidence.d.ts +70 -0
  149. package/dist/esm/chip/cert/evidence.d.ts.map +1 -0
  150. package/dist/esm/chip/cert/evidence.js +108 -0
  151. package/dist/esm/chip/cert/evidence.js.map +6 -0
  152. package/dist/esm/chip/cert/log-follower.d.ts +96 -0
  153. package/dist/esm/chip/cert/log-follower.d.ts.map +1 -0
  154. package/dist/esm/chip/cert/log-follower.js +189 -0
  155. package/dist/esm/chip/cert/log-follower.js.map +6 -0
  156. package/dist/esm/chip/cert/matterjs-subject-registry.d.ts +22 -0
  157. package/dist/esm/chip/cert/matterjs-subject-registry.d.ts.map +1 -0
  158. package/dist/esm/chip/cert/matterjs-subject-registry.js +20 -0
  159. package/dist/esm/chip/cert/matterjs-subject-registry.js.map +6 -0
  160. package/dist/esm/chip/cert/prompt-driven-python-test.d.ts +40 -0
  161. package/dist/esm/chip/cert/prompt-driven-python-test.d.ts.map +1 -0
  162. package/dist/esm/chip/cert/prompt-driven-python-test.js +57 -0
  163. package/dist/esm/chip/cert/prompt-driven-python-test.js.map +6 -0
  164. package/dist/esm/chip/chip-bins.d.ts +132 -0
  165. package/dist/esm/chip/chip-bins.d.ts.map +1 -0
  166. package/dist/esm/chip/chip-bins.js +212 -0
  167. package/dist/esm/chip/chip-bins.js.map +6 -0
  168. package/dist/esm/chip/chip-test-common.d.ts.map +1 -1
  169. package/dist/esm/chip/chip-test-common.js +1 -1
  170. package/dist/esm/chip/chip-test-common.js.map +1 -1
  171. package/dist/esm/chip/chip.d.ts.map +1 -1
  172. package/dist/esm/chip/chip.js +1 -1
  173. package/dist/esm/chip/chip.js.map +1 -1
  174. package/dist/esm/chip/config.d.ts +26 -0
  175. package/dist/esm/chip/config.d.ts.map +1 -1
  176. package/dist/esm/chip/config.js +11 -3
  177. package/dist/esm/chip/config.js.map +1 -1
  178. package/dist/esm/chip/index.d.ts +26 -0
  179. package/dist/esm/chip/index.d.ts.map +1 -1
  180. package/dist/esm/chip/index.js +60 -0
  181. package/dist/esm/chip/index.js.map +1 -1
  182. package/dist/esm/chip/pics/file.d.ts +8 -0
  183. package/dist/esm/chip/pics/file.d.ts.map +1 -1
  184. package/dist/esm/chip/pics/file.js +4 -1
  185. package/dist/esm/chip/pics/file.js.map +1 -1
  186. package/dist/esm/chip/pics/source.d.ts +8 -5
  187. package/dist/esm/chip/pics/source.d.ts.map +1 -1
  188. package/dist/esm/chip/pics/source.js +24 -16
  189. package/dist/esm/chip/pics/source.js.map +1 -1
  190. package/dist/esm/chip/python-test.d.ts +12 -0
  191. package/dist/esm/chip/python-test.d.ts.map +1 -1
  192. package/dist/esm/chip/python-test.js +6 -4
  193. package/dist/esm/chip/python-test.js.map +1 -1
  194. package/dist/esm/chip/state.d.ts.map +1 -1
  195. package/dist/esm/chip/state.js +25 -8
  196. package/dist/esm/chip/state.js.map +1 -1
  197. package/dist/esm/chip/yaml-test.js +1 -1
  198. package/dist/esm/chip/yaml-test.js.map +1 -1
  199. package/dist/esm/cli.d.ts.map +1 -1
  200. package/dist/esm/cli.js +33 -2
  201. package/dist/esm/cli.js.map +1 -1
  202. package/dist/esm/device/backchannel.d.ts.map +1 -1
  203. package/dist/esm/device/subject.d.ts.map +1 -1
  204. package/dist/esm/device/test.d.ts.map +1 -1
  205. package/dist/esm/docker/container.d.ts.map +1 -1
  206. package/dist/esm/docker/docker.d.ts.map +1 -1
  207. package/dist/esm/docker/edit.d.ts.map +1 -1
  208. package/dist/esm/docker/errors.d.ts.map +1 -1
  209. package/dist/esm/docker/network.d.ts.map +1 -1
  210. package/dist/esm/docker/terminal.d.ts.map +1 -1
  211. package/dist/esm/failure-reporter.d.ts.map +1 -1
  212. package/dist/esm/global-declarations.d.js +0 -1
  213. package/dist/esm/global-declarations.d.js.map +1 -1
  214. package/dist/esm/global-declarations.d.ts +2 -2
  215. package/dist/esm/global-definitions.js +16 -3
  216. package/dist/esm/global-definitions.js.map +1 -1
  217. package/dist/esm/index.d.js +2 -0
  218. package/dist/esm/index.d.js.map +1 -1
  219. package/dist/esm/index.d.ts +3 -0
  220. package/dist/esm/index.js +2 -0
  221. package/dist/esm/index.js.map +1 -1
  222. package/dist/esm/mocha.d.ts.map +1 -1
  223. package/dist/esm/mocha.js +5 -0
  224. package/dist/esm/mocha.js.map +1 -1
  225. package/dist/esm/mocharc.cjs +4 -3
  226. package/dist/esm/options.d.ts.map +1 -1
  227. package/dist/esm/print-report.js +1 -1
  228. package/dist/esm/print-report.js.map +1 -1
  229. package/dist/esm/test-descriptor.d.ts +1 -1
  230. package/dist/esm/test-descriptor.d.ts.map +1 -1
  231. package/dist/esm/text-diff.d.ts.map +1 -1
  232. package/dist/esm/util/async.d.ts +30 -0
  233. package/dist/esm/util/async.d.ts.map +1 -0
  234. package/dist/esm/util/async.js +65 -0
  235. package/dist/esm/util/async.js.map +6 -0
  236. package/dist/esm/util/trace-unhandled.d.ts.map +1 -1
  237. package/dist/esm/util/wtf.d.ts.map +1 -1
  238. package/dist/esm/util/wtf.js +1 -1
  239. package/dist/esm/util/wtf.js.map +1 -1
  240. package/dist/esm/web.d.ts.map +1 -1
  241. package/dist/esm/web.js +5 -1
  242. package/dist/esm/web.js.map +1 -1
  243. package/package.json +9 -9
  244. package/src/chai.ts +3 -3
  245. package/src/chip/cert/cert-context.ts +126 -0
  246. package/src/chip/cert/cert-dsl.ts +451 -0
  247. package/src/chip/cert/cert-test.ts +360 -0
  248. package/src/chip/cert/chip-app-subject.ts +457 -0
  249. package/src/chip/cert/controller-adapter.ts +142 -0
  250. package/src/chip/cert/device-config.ts +33 -0
  251. package/src/chip/cert/evidence.ts +170 -0
  252. package/src/chip/cert/log-follower.ts +266 -0
  253. package/src/chip/cert/matterjs-subject-registry.ts +33 -0
  254. package/src/chip/cert/prompt-driven-python-test.ts +104 -0
  255. package/src/chip/chip-bins.ts +401 -0
  256. package/src/chip/chip-test-common.ts +3 -1
  257. package/src/chip/chip.ts +1 -1
  258. package/src/chip/config.ts +28 -1
  259. package/src/chip/index.ts +67 -0
  260. package/src/chip/pics/file.ts +8 -0
  261. package/src/chip/pics/source.ts +39 -19
  262. package/src/chip/python-test.ts +5 -4
  263. package/src/chip/state.ts +39 -8
  264. package/src/chip/yaml-test.ts +1 -1
  265. package/src/cli.ts +40 -2
  266. package/src/global-declarations.d.ts +2 -2
  267. package/src/global-definitions.ts +27 -3
  268. package/src/index.d.ts +3 -0
  269. package/src/index.js +1 -0
  270. package/src/mocha.ts +13 -0
  271. package/src/mocharc.cjs +4 -3
  272. package/src/print-report.ts +1 -1
  273. package/src/test-descriptor.ts +1 -1
  274. package/src/util/async.ts +83 -0
  275. package/src/util/wtf.ts +3 -1
  276. package/src/web.ts +5 -1
  277. package/test/util/AsyncTest.ts +68 -0
@@ -0,0 +1,232 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var chip_bins_exports = {};
20
+ __export(chip_bins_exports, {
21
+ CERT_BINS_IMAGE: () => CERT_BINS_IMAGE,
22
+ CERT_BINS_PLATFORM: () => CERT_BINS_PLATFORM,
23
+ ChipBinsOwnershipError: () => ChipBinsOwnershipError,
24
+ ChipBinsPermissionError: () => ChipBinsPermissionError,
25
+ DEFAULT_CERT_BINS_TAG: () => DEFAULT_CERT_BINS_TAG,
26
+ assertChipBinsDirOwnership: () => assertChipBinsDirOwnership,
27
+ chipBinsDir: () => chipBinsDir,
28
+ chipBinsExtractionDir: () => chipBinsExtractionDir,
29
+ chipBinsPlatformSupported: () => chipBinsPlatformSupported,
30
+ ensureChipBins: () => ensureChipBins,
31
+ parseDockerHubTagsResponse: () => parseDockerHubTagsResponse,
32
+ prepareChipBins: () => prepareChipBins,
33
+ requestedChipBinsTag: () => requestedChipBinsTag,
34
+ resetChipBinsPrepareCacheForTesting: () => resetChipBinsPrepareCacheForTesting,
35
+ resolveChipBinsSource: () => resolveChipBinsSource,
36
+ resolveChipBinsTag: () => resolveChipBinsTag
37
+ });
38
+ module.exports = __toCommonJS(chip_bins_exports);
39
+ var import_promises = require("node:fs/promises");
40
+ var import_node_os = require("node:os");
41
+ var import_node_path = require("node:path");
42
+ var import_node_process = require("node:process");
43
+ var import_docker = require("../docker/docker.js");
44
+ /**
45
+ * @license
46
+ * Copyright 2022-2026 Matter.js Authors
47
+ * SPDX-License-Identifier: Apache-2.0
48
+ */
49
+ const CERT_BINS_IMAGE = "connectedhomeip/chip-cert-bins";
50
+ const DEFAULT_CERT_BINS_TAG = "df8bd0308caa0680e2a78cda724a959e5b385205";
51
+ const CERT_BINS_PLATFORM = "linux/arm64";
52
+ function chipBinsPlatformSupported(platform) {
53
+ return platform === CERT_BINS_PLATFORM;
54
+ }
55
+ const STAMP_FILE = "CHIP_REF";
56
+ function isChipBinsSource(value) {
57
+ return value === "matterjs" || value === "cert-bins";
58
+ }
59
+ function resolveChipBinsSource() {
60
+ const value = import_node_process.env.MATTER_CHIP_BINS_SOURCE;
61
+ if (value === void 0 || value === "") {
62
+ return "matterjs";
63
+ }
64
+ if (isChipBinsSource(value)) {
65
+ return value;
66
+ }
67
+ throw new Error(`Unknown MATTER_CHIP_BINS_SOURCE "${value}" (expected "matterjs" or "cert-bins")`);
68
+ }
69
+ function requestedChipBinsTag() {
70
+ return import_node_process.env.MATTER_CHIP_BINS_TAG || DEFAULT_CERT_BINS_TAG;
71
+ }
72
+ function defaultChipBinsDirUser() {
73
+ const { uid, username } = (0, import_node_os.userInfo)();
74
+ return uid !== -1 ? String(uid) : username;
75
+ }
76
+ function chipBinsDir() {
77
+ return import_node_process.env.MATTER_CHIP_BINS_DIR || (0, import_node_path.join)((0, import_node_os.tmpdir)(), `matter-js-chip-cert-bins-${defaultChipBinsDirUser()}`);
78
+ }
79
+ const VALID_TAG = /^[A-Za-z0-9_][A-Za-z0-9_.-]{0,127}$/;
80
+ function assertValidTag(tag) {
81
+ if (!VALID_TAG.test(tag)) {
82
+ throw new Error(`Invalid chip-cert-bins tag "${tag}" (expected Docker's tag grammar, e.g. a commit SHA)`);
83
+ }
84
+ }
85
+ function chipBinsExtractionDir(tag, baseDir = chipBinsDir()) {
86
+ assertValidTag(tag);
87
+ return (0, import_node_path.join)(baseDir, tag);
88
+ }
89
+ const COMMIT_SHA_TAG = /^[0-9a-f]{40}$/;
90
+ function isRecord(value) {
91
+ return typeof value === "object" && value !== null && !Array.isArray(value);
92
+ }
93
+ function isDockerHubTag(value) {
94
+ return isRecord(value) && typeof value.name === "string" && typeof value.tag_last_pushed === "string";
95
+ }
96
+ function parseDockerHubTagsResponse(body) {
97
+ if (!isRecord(body) || body.results !== void 0 && !Array.isArray(body.results)) {
98
+ throw new Error(
99
+ `Docker Hub tags response for ${CERT_BINS_IMAGE} did not match the expected shape (expected { results?: Array<{ name: string, tag_last_pushed: string }> })`
100
+ );
101
+ }
102
+ const { results } = body;
103
+ if (results === void 0) {
104
+ return [];
105
+ }
106
+ if (!results.every(isDockerHubTag)) {
107
+ throw new Error(
108
+ `Docker Hub tags response for ${CERT_BINS_IMAGE} contained a tag entry that did not match the expected shape ({ name: string, tag_last_pushed: string })`
109
+ );
110
+ }
111
+ return results;
112
+ }
113
+ async function fetchLatestChipBinsTag() {
114
+ const response = await fetch(`https://hub.docker.com/v2/repositories/${CERT_BINS_IMAGE}/tags?page_size=100`);
115
+ if (!response.ok) {
116
+ throw new Error(`Docker Hub tag lookup for ${CERT_BINS_IMAGE} failed: HTTP ${response.status}`);
117
+ }
118
+ const shaTags = parseDockerHubTagsResponse(await response.json()).filter((tag) => COMMIT_SHA_TAG.test(tag.name));
119
+ if (!shaTags.length) {
120
+ throw new Error(`Docker Hub returned no commit-SHA tags for ${CERT_BINS_IMAGE}`);
121
+ }
122
+ shaTags.sort((a, b) => b.tag_last_pushed.localeCompare(a.tag_last_pushed));
123
+ return shaTags[0].name;
124
+ }
125
+ async function resolveChipBinsTag(requested, fetchLatest = fetchLatestChipBinsTag) {
126
+ if (requested !== "latest") {
127
+ return requested;
128
+ }
129
+ return fetchLatest();
130
+ }
131
+ function realChipBinsDockerHandle() {
132
+ const docker = new import_docker.Docker();
133
+ return {
134
+ pull(imageRef, platform) {
135
+ return docker.pull(imageRef, platform);
136
+ },
137
+ async extractApps(imageRef, platform, targetDir) {
138
+ const uid = process.getuid?.();
139
+ const gid = process.getgid?.();
140
+ const chownStep = uid !== void 0 && gid !== void 0 ? ` && { chown -R ${uid}:${gid} /out || true; }` : "";
141
+ const container = await docker.start({
142
+ image: imageRef,
143
+ platform,
144
+ command: ["bash", "-c", `rm -rf /out/* && cp -a /root/apps/. /out/${chownStep}`],
145
+ binds: { [targetDir]: "/out" },
146
+ autoRemove: true
147
+ });
148
+ await container.wait();
149
+ }
150
+ };
151
+ }
152
+ async function readStamp(stampPath) {
153
+ try {
154
+ return (await (0, import_promises.readFile)(stampPath, "utf-8")).trim();
155
+ } catch {
156
+ return void 0;
157
+ }
158
+ }
159
+ function isErrnoException(value) {
160
+ return value instanceof Error && "code" in value;
161
+ }
162
+ class ChipBinsPermissionError extends Error {
163
+ }
164
+ async function writeStamp(stampPath, tag, targetDir) {
165
+ try {
166
+ await (0, import_promises.writeFile)(stampPath, tag);
167
+ } catch (e) {
168
+ if (isErrnoException(e) && (e.code === "EACCES" || e.code === "EPERM")) {
169
+ throw new ChipBinsPermissionError(
170
+ `chip-cert-bins:${tag} extracted into ${targetDir}, but writing the extraction stamp there failed (${e.code}). This typically means the extraction container's UID mapping left the directory unwritable by this host user \u2014 common on rootless Docker/Podman, where container root already maps to the invoking host user and remapping ownership can instead land on an unrelated subuid. Point MATTER_CHIP_BINS_DIR at a directory this host user can write to regardless of the extraction container's UID mapping, or adjust your Docker/Podman UID-mapping configuration.`
171
+ );
172
+ }
173
+ throw e;
174
+ }
175
+ }
176
+ class ChipBinsOwnershipError extends Error {
177
+ }
178
+ async function assertChipBinsDirOwnership(dir) {
179
+ const getuid = process.getuid;
180
+ if (getuid === void 0 || import_node_process.env.MATTER_CHIP_BINS_DIR) {
181
+ return;
182
+ }
183
+ let stats;
184
+ try {
185
+ stats = await (0, import_promises.stat)(dir);
186
+ } catch (e) {
187
+ if (isErrnoException(e) && e.code === "ENOENT") {
188
+ return;
189
+ }
190
+ throw e;
191
+ }
192
+ const uid = getuid();
193
+ if (stats.uid !== uid) {
194
+ throw new ChipBinsOwnershipError(
195
+ `chip-cert-bins extraction directory ${dir} is owned by uid ${stats.uid}, not this process's uid ${uid} \u2014 on a multi-user host another local user could have pre-created it and planted binaries this harness later spawns. Point MATTER_CHIP_BINS_DIR at a directory only this user can write to.`
196
+ );
197
+ }
198
+ }
199
+ async function ensureChipBins(tag, targetDir, docker = realChipBinsDockerHandle()) {
200
+ await assertChipBinsDirOwnership(targetDir);
201
+ const stampPath = (0, import_node_path.join)(targetDir, STAMP_FILE);
202
+ const cachedTag = await readStamp(stampPath);
203
+ if (cachedTag === tag) {
204
+ return { tag, dir: targetDir, extracted: false };
205
+ }
206
+ await (0, import_promises.mkdir)(targetDir, { recursive: true, mode: 448 });
207
+ const imageRef = `${CERT_BINS_IMAGE}:${tag}`;
208
+ await docker.pull(imageRef, CERT_BINS_PLATFORM);
209
+ await docker.extractApps(imageRef, CERT_BINS_PLATFORM, targetDir);
210
+ await writeStamp(stampPath, tag, targetDir);
211
+ return { tag, dir: targetDir, extracted: true };
212
+ }
213
+ let preparePromise;
214
+ function prepareChipBins(docker = realChipBinsDockerHandle()) {
215
+ if (preparePromise === void 0) {
216
+ const promise = (async () => {
217
+ const tag = await resolveChipBinsTag(requestedChipBinsTag());
218
+ return ensureChipBins(tag, chipBinsExtractionDir(tag), docker);
219
+ })();
220
+ preparePromise = promise;
221
+ promise.catch(() => {
222
+ if (preparePromise === promise) {
223
+ preparePromise = void 0;
224
+ }
225
+ });
226
+ }
227
+ return preparePromise;
228
+ }
229
+ function resetChipBinsPrepareCacheForTesting() {
230
+ preparePromise = void 0;
231
+ }
232
+ //# sourceMappingURL=chip-bins.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/chip/chip-bins.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"chip-test-common.d.ts","sourceRoot":"","sources":["../../../src/chip/chip-test-common.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,UAQnE"}
1
+ {"version":3,"file":"chip-test-common.d.ts","sourceRoot":"","sources":["../../../src/chip/chip-test-common.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,UAUnE"}
@@ -38,7 +38,7 @@ var import_ansi_colors = __toESM(require("ansi-colors"), 1);
38
38
  * SPDX-License-Identifier: Apache-2.0
39
39
  */
40
40
  function parseStep(line, step) {
41
- const stepMatch = line.match(/^(.*\s\*{5})\s+(Test Step \d+)\s+:(?:\s+(\S.*)|\S.*)$/);
41
+ const stepMatch = line.match(/^(.*\s\*{5})\s+(Test Step \S+)\s+:(?:\s+(\S.*)|\S.*)$/);
42
42
  if (stepMatch) {
43
43
  const [, prefix, stepNum, stepName] = stepMatch;
44
44
  step(stepName);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/chip/chip-test-common.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,yBAAmB;AANnB;AAAA;AAAA;AAAA;AAAA;AAaO,SAAS,UAAU,MAAc,MAA8B;AAClE,QAAM,YAAY,KAAK,MAAM,uDAAuD;AACpF,MAAI,WAAW;AACX,UAAM,CAAC,EAAE,QAAQ,SAAS,QAAQ,IAAI;AACtC,SAAK,QAAQ;AACb,WAAO,GAAG,MAAM,IAAI,mBAAAA,QAAO,MAAM,YAAY,GAAG,mBAAAA,QAAO,KAAK,OAAO,CAAC,MAAM,QAAQ,EAAE,CAAC;AAAA,EACzF;AACA,SAAO;AACX;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,yBAAmB;AANnB;AAAA;AAAA;AAAA;AAAA;AAaO,SAAS,UAAU,MAAc,MAA8B;AAGlE,QAAM,YAAY,KAAK,MAAM,uDAAuD;AACpF,MAAI,WAAW;AACX,UAAM,CAAC,EAAE,QAAQ,SAAS,QAAQ,IAAI;AACtC,SAAK,QAAQ;AACb,WAAO,GAAG,MAAM,IAAI,mBAAAA,QAAO,MAAM,YAAY,GAAG,mBAAAA,QAAO,KAAK,OAAO,CAAC,MAAM,QAAQ,EAAE,CAAC;AAAA,EACzF;AACA,SAAO;AACX;",
5
5
  "names": ["colors"]
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../../src/chip/chip.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../../src/chip/chip.ts"],"names":[],"mappings":"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"}
@@ -53,7 +53,7 @@ function createBuilder(initial) {
53
53
  }
54
54
  const tests = import_test_descriptor.TestDescriptor.filter(chip.tests.descriptor, {
55
55
  includePaths: [...includePaths],
56
- kinds: ["py", "yaml"],
56
+ kinds: ["py", "yaml", "cert"],
57
57
  pics: subject?.pics ?? chip.defaultPics
58
58
  });
59
59
  if (!tests?.members) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/chip/chip.ts"],
4
- "mappings": "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",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,sBAAyB;AAIzB,mBAAoC;AACpC,oBAAsC;AACtC,6BAA+B;AAE/B,mBAAsB;AAdtB;AAAA;AAAA;AAAA;AAAA;AAyHA,SAAS,cAAc,SAON;AACb,QAAM,kBAAkB,oBAAI,IAAgC;AAC5D,MAAI;AACJ,MAAI;AACJ,MAAI,OAAO;AACX,QAAM,mBAAmB,MAAuB;AAChD,QAAM,kBAAkB,MAAuB;AAC/C,QAAM,OAAO,MAAc;AAE3B,QAAM,UAAwB;AAAA,IAC1B,WAAW,MAAgB;AACvB,YAAM,eAAe,oBAAI,IAAY;AACrC,iBAAW,WAAW,MAAM;AACxB,cAAM,YAAQ,0BAAS,SAAS,KAAK,KAAK;AAE1C,YAAI,CAAC,MAAM,QAAQ;AACf,gBAAM,IAAI,MAAM,8BAA8B,OAAO,EAAE;AAAA,QAC3D;AAEA,mBAAW,QAAQ,OAAO;AACtB,uBAAa,IAAI,IAAI;AAAA,QACzB;AAAA,MACJ;AAEA,YAAM,QAAQ,sCAAe,OAAO,KAAK,MAAM,YAAY;AAAA,QACvD,cAAc,CAAC,GAAG,YAAY;AAAA,QAC9B,OAAO,CAAC,MAAM,QAAQ,MAAM;AAAA,QAC5B,MAAM,SAAS,QAAQ,KAAK;AAAA,MAChC,CAAC;AAED,UAAI,CAAC,OAAO,SAAS;AACjB,eAAO;AAAA,MACX;AAEA,iBAAW,UAAU,MAAM,SAAS;AAChC,oBAAY,MAAM;AAAA,MACtB;AAEA,aAAO;AAAA,IACX;AAAA,IAEA,WAAW,MAAgB;AACvB,YAAM,QAAQ,sCAAe,OAAO,KAAK,MAAM,YAAY,EAAE,kBAAc,0BAAS,MAAM,KAAK,KAAK,EAAE,CAAC;AAEvG,UAAI,CAAC,OAAO;AACR,eAAO;AAAA,MACX;AAEA,4CAAe,MAAM,OAAO,gBAAc;AACtC,cAAM,OAAO,gBAAgB,IAAI,UAAU;AAC3C,YAAI,CAAC,MAAM;AACP;AAAA,QACJ;AAEA,wBAAgB,OAAO,UAAU;AACjC,YAAI,CAAC,MAAM,QAAQ;AACf;AAAA,QACJ;AAEA,cAAM,MAAM,KAAK,OAAO,MAAM,QAAQ,IAAI;AAC1C,YAAI,QAAQ,IAAI;AACZ,eAAK,OAAO,MAAM,OAAO,KAAK,CAAC;AAAA,QACnC;AAAA,MACJ,CAAC;AAED,aAAO;AAAA,IACX;AAAA,IAEA,QAAQ,YAA6B;AACjC,gBAAU;AACV,aAAO;AAAA,IACX;AAAA,IAEA,YAAY,MAAuB;AAC/B,uBAAiB,KAAK,IAAI;AAC1B,aAAO;AAAA,IACX;AAAA,IAEA,WAAW,MAAuB;AAC9B,sBAAgB,KAAK,IAAI;AACzB,aAAO;AAAA,IACX;AAAA,IAEA,QAAQ,SAA8B;AAClC,WAAK,KAAK,GAAG,QAAQ,IAAI,SAAO,GAAG,GAAG,EAAE,CAAC;AACzC,aAAO;AAAA,IACX;AAAA,IAEA,iBAAiB;AACb,0BAAoB;AACpB,aAAO;AAAA,IACX;AAAA,IAEA,eAAe;AACX,0BAAoB;AACpB,aAAO;AAAA,IACX;AAAA,IAEA,OAAO;AACH,aAAO;AACP,aAAO;AAAA,IACX;AAAA,EACJ;AAEA,aAAW,OAAO,SAAS;AACvB,UAAM,KAAM,QAAwE,GAAG;AACvF,QAAI,OAAO,OAAO,YAAY;AAC1B,YAAM,MAAM,QAAQ,GAA2B;AAC/C,UAAI,MAAM,QAAQ,GAAG,GAAG;AACpB,WAAG,GAAG,GAAG;AAAA,MACb,OAAO;AACH,WAAG,GAAG;AAAA,MACV;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO;AAEP,WAAS,YAAY,YAA4B;AAC7C,YAAQ,WAAW,MAAM;AAAA,MACrB,KAAK;AACD,oBAAY,UAAU;AACtB;AAAA,MAEJ;AACI,mBAAW,UAAU;AACrB;AAAA,IACR;AAAA,EACJ;AAEA,WAAS,YAAY,YAA4B;AAC7C,UAAM,YAAQ,qCAAsB;AAEpC,UAAM,EAAE,MAAM,QAAQ,IAAI;AAC1B,QAAI,CAAC,SAAS,QAAQ;AAClB;AAAA,IACJ;AAEA,QAAI,WAAW,SAAS,MAAM,MAAM,OAAO;AACvC,iBAAW,UAAU,SAAS;AAC1B,oBAAY,MAAM;AAAA,MACtB;AACA;AAAA,IACJ;AAEA,eAAW,SAAS,MAAM,MAAM,QAAQ;AACpC,UAAI,MAAM,UAAU,MAAM;AACtB,cAAM,cAAc,MAAM;AAC1B,YAAI;AACA,gBAAM,QAAQ;AACd,qBAAW,UAAU,SAAS;AAC1B,wBAAY,MAAM;AAAA,UACtB;AAAA,QACJ,UAAE;AACE,gBAAM,QAAQ;AAAA,QAClB;AACA;AAAA,MACJ;AAAA,IACJ;AAEA,aAAS,MAAM,MAAM;AACjB,iBAAW,UAAU,SAAS;AAC1B,oBAAY,MAAM;AAAA,MACtB;AAAA,IACJ,CAAC;AAAA,EACL;AAEA,WAAS,WAAW,YAA4B;AAC5C,uBAAM,QAAQ;AACd,UAAM,OAAO,KAAK,QAAQ,UAAU;AAEpC,UAAM,OAAO,OAAO,GAAG,OAAO;AAC9B,UAAM,YAAY,KAAK,WAAW,MAAM,WAAY;AAChD,WAAK,QAAQ,WAAW,aAAa,KAAK,gBAAgB;AAC1D,aAAO,mBAAM,IAAI,MAAM,MAAM,CAACA,UAASC,UAAS,eAAe,iBAAiBD,UAASC,KAAI,CAAC;AAAA,IAClG,CAAC;AAID,gCAAU,WAAW,iBAAqC;AAMtD,UAAI,UAAU;AACd,UAAI;AACJ,UAAI,YAAY,QAAW;AAEvB,kBAAU,aAAa,UAAU;AAAA,MACrC,WAAW,WAAW,QAAQ,QAAW;AACrC,kBAAU,mBAAM,cAAc,WAAW,GAAG;AAC5C,YAAI,YAAY,QAAW;AACvB,eAAK,KAAK;AAAA,QACd;AAIA,kBAAU,aAAa,UAAU;AAAA,MACrC;AACA,UAAI,YAAY,QAAW;AACvB,kBAAU,mBAAM;AAAA,MACpB;AAEA,YAAM,mBAAM;AAAA,QACR;AAAA,QACA,qBAAqB,CAAC,WAAW;AAAA,QACjC;AAAA,QACA,CAACD,UAASC,UAAS,eAAe,kBAAkBD,UAASC,KAAI;AAAA,QACjE;AAAA,MACJ;AAAA,IACJ,CAAC;AAED,cAAU,aAAa,KAAK;AAC5B,oBAAgB,IAAI,YAAY,SAAS;AAEzC,+BAAS,WAAW,mBAAM,iBAAiB;AAAA,EAC/C;AACJ;AAEA,SAAS,aAAa,YAAkD;AACpE,QAAM,MAAM,WAAW,SAAS,UAAU;AAC1C,MAAI,QAAQ,OAAW,QAAO;AAC9B,MAAI,MAAM,QAAQ,GAAG,EAAG,QAAO,IAAI,IAAI,MAAM;AAC7C,MAAI,OAAO,QAAQ,UAAU;AACzB,UAAM,UAAU,IAAI,KAAK;AACzB,WAAO,YAAY,KAAK,SAAY,QAAQ,MAAM,KAAK;AAAA,EAC3D;AACA,SAAO;AACX;AAEA,SAAS,OAAO,4BAAkE,SAAiC;AAC/G,MAAI,OAAO,4BAA4B,YAAY;AAC/C,WAAO,KAAK,EACP,QAAQ,uBAAuB,EAC/B,QAAQ,GAAG,OAAO;AAAA,EAC3B;AAEA,MAAI,OAAO,4BAA4B,UAAU;AAC7C,cAAU,CAAC,yBAAyB,GAAG,OAAO;AAAA,EAClD;AAEA,SAAO,cAAc,EAAE,SAAS,CAAC,GAAG,OAAO,EAAE,CAAC;AAClD;AAEA,OAAO,iBAAiB,QAAQ;AAAA,EAC5B,gBAAgB;AAAA,IACZ,IAAI,SAA0B;AAC1B,yBAAM,UAAU;AAAA,IACpB;AAAA,EACJ;AAAA,EAEA,YAAY;AAAA,IACR,OAAO,CAAC,KAAa,YAA6B;AAC9C,yBAAM,sBAAsB,KAAK,OAAO;AAAA,IAC5C;AAAA,EACJ;AAAA,EAEA,YAAY;AAAA,IACR,KAAK,MAAM,mBAAM;AAAA,EACrB;AAAA,EAEA,WAAW;AAAA,IACP,KAAK,MAAM,mBAAM;AAAA,EACrB;AAAA,EAEA,OAAO;AAAA,IACH,KAAK,MAAM,mBAAM;AAAA,EACrB;AAAA,EAEA,eAAe;AAAA,IACX,KAAK,MAAM,mBAAM;AAAA,EACrB;AAAA,EAEA,aAAa;AAAA,IACT,KAAK,MAAM,mBAAM;AAAA,EACrB;AAAA,EAEA,qBAAqB;AAAA,IACjB,KAAK,MAAM,mBAAM;AAAA,EACrB;AAAA,EAEA,mBAAmB;AAAA,IACf,MAAM;AACF,aAAO,mBAAM;AAAA,IACjB;AAAA,IAEA,IAAI,OAAgB;AAChB,yBAAM,oBAAoB;AAAA,IAC9B;AAAA,EACJ;AAAA,EAEA,YAAY,EAAE,OAAO,mBAAM,WAAW,KAAK,kBAAK,EAAE;AAAA,EAClD,OAAO,EAAE,OAAO,mBAAM,MAAM,KAAK,kBAAK,EAAE;AAAA,EACxC,UAAU,EAAE,OAAO,mBAAM,SAAS,KAAK,kBAAK,EAAE;AAAA,EAC9C,SAAS,EAAE,OAAO,mBAAM,QAAQ,KAAK,kBAAK,EAAE;AAAA,EAC5C,SAAS,EAAE,OAAO,mBAAM,QAAQ,KAAK,kBAAK,EAAE;AAAA,EAC5C,WAAW,EAAE,OAAO,mBAAM,UAAU,KAAK,kBAAK,EAAE;AACpD,CAAC;AAEM,MAAM,OAAO;AAEpB,KAAK,mBAAmB,KAAK,KAAK;AAElC,SAAS,eAAe,UAA6B,MAAmC;AACpF,QAAM,WAAW,IAAI,MAAqB;AAC1C,aAAW,QAAQ,OAAO;AACtB,UAAM,UAAU,KAAK,GAAG,IAAI;AAC5B,QAAI,SAAS;AACT,eAAS,KAAK,OAAO;AAAA,IACzB;AAAA,EACJ;AACA,MAAI,UAAU;AACV,WAAO,QAAQ,IAAI,QAAQ,EAAE,KAAK,MAAM;AAAA,IAAC,CAAC;AAAA,EAC9C;AACJ;",
5
5
  "names": ["subject", "test"]
6
6
  }
@@ -17,10 +17,27 @@ export declare namespace ContainerPaths {
17
17
  const chipPics = "/src/app/tests/suites/certification/ci-pics-values";
18
18
  const accessoryClient = "/usr/local/lib/python3.12/dist-packages/matter/yamltests/pseudo_clusters/clusters/accessory_server_bridge.py";
19
19
  const dummyWsServer = "/bin/mjs-ws-dummy";
20
+ /**
21
+ * Where the harness "chip" container's `configureContainer()` bind-mounts the host directory
22
+ * `chip-bins.ts`'s extraction fills, when `MATTER_CHIP_BINS_SOURCE=cert-bins` selects the
23
+ * official `connectedhomeip/chip-cert-bins` binaries for the classic yaml/python tests.
24
+ */
25
+ const officialChipBinsDir = "/official-chip-bins";
20
26
  }
21
27
  export type ContainerPathsType = typeof ContainerPaths;
22
28
  export interface ContainerPaths extends ContainerPathsType {
23
29
  }
30
+ /** Name of the shared harness composition `chip/state.ts`'s `configureContainer()` starts. */
31
+ export declare const HARNESS_COMPOSITION_NAME = "matter.js";
32
+ /** Part name of the harness composition's dbus sidecar. */
33
+ export declare const HARNESS_DBUS_PART_NAME = "dbus";
34
+ /**
35
+ * Container name of the harness composition's dbus sidecar (`Composition.add` names containers
36
+ * `<composition>-<part>`). Cert-test chip-docker subjects check for this container and reuse the
37
+ * harness's dbus/mdns pair instead of starting their own — see `chip/cert/chip-app-subject.ts`'s
38
+ * `ChipDockerDevice`.
39
+ */
40
+ export declare const HARNESS_DBUS_CONTAINER = "matter.js-dbus";
24
41
  /**
25
42
  * Specify the base filename to use for a test. This specifies a "winner" in the case of conflicts.
26
43
  */
@@ -48,6 +65,15 @@ export declare namespace Constants {
48
65
  const controllerPort: number;
49
66
  const initTimeout = 60000;
50
67
  const defaultTimeoutMs = 60000;
68
+ /**
69
+ * The server will not find chip-tool unless we provide an explicit path. The failure mode is a little
70
+ * non-obvious as it doesn't try to start the server but attempts to establish a websocket connection regardless.
71
+ *
72
+ * When MATTER_CHIP_BINS_SOURCE=cert-bins, points at the official chip-tool binary bind-mounted
73
+ * into the container at {@link ContainerPaths.officialChipBinsDir} (see chip/state.ts's
74
+ * configureContainer) instead of the one baked into matter.js's own image.
75
+ */
76
+ const chipToolPath: string;
51
77
  /**
52
78
  * Default arguments provided to the YAML runner.
53
79
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/chip/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;GAKG;AACH,yBAAiB,cAAc,CAAC,CAAC;IACtB,MAAM,UAAU,wCAAwC,CAAC;IACzD,MAAM,cAAc,8BAA8B,CAAC;IACnD,MAAM,kBAAkB,sCAAsC,CAAC;IAC/D,MAAM,QAAQ,uDAAuD,CAAC;IACtE,MAAM,eAAe,iHACsF,CAAC;IAC5G,MAAM,aAAa,sBAAsB,CAAC;CACpD;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,cAAc,CAAC;AACvD,MAAM,WAAW,cAAe,SAAQ,kBAAkB;CAAG;AAE7D;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,yBAAiB,SAAS,CAAC,CAAC;IACjB,MAAM,gBAAgB,oBAA2B,CAAC;IAEzD;;;;OAIG;IACI,MAAM,QAAQ,QAAoC,CAAC;IAEnD,MAAM,WAAW,mBAAmB,CAAC;IAE5C;;OAEG;IACI,MAAM,SAAS,QAA2D,CAAC;IAC3E,MAAM,cAAc,QAA6C,CAAC;IAElE,MAAM,kBAAkB,SAAgC,CAAC;IACzD,MAAM,cAAc,QAA+E,CAAC;IAEpG,MAAM,WAAW,QAAS,CAAC;IAC3B,MAAM,gBAAgB,QAAS,CAAC;IAoBvC;;OAEG;IACI,MAAM,cAAc,UAc1B,CAAC;IAEF;;;;;OAKG;IACI,MAAM,cAAc,mBAAmB,CAAC;IACxC,MAAM,eAAe,wBAA2B,CAAC;IAExD;;OAEG;IACI,MAAM,gBAAgB,UAAoE,CAAC;IAE3F,MAAM,WAAW,EAAE,UAMzB,CAAC;CACL"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/chip/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;GAKG;AACH,yBAAiB,cAAc,CAAC;IACrB,MAAM,UAAU,wCAAwC,CAAC;IACzD,MAAM,cAAc,8BAA8B,CAAC;IACnD,MAAM,kBAAkB,sCAAsC,CAAC;IAC/D,MAAM,QAAQ,uDAAuD,CAAC;IACtE,MAAM,eAAe,iHACsF,CAAC;IAC5G,MAAM,aAAa,sBAAsB,CAAC;IAEjD;;;;OAIG;IACI,MAAM,mBAAmB,wBAAwB,CAAC;CAC5D;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,cAAc,CAAC;AACvD,MAAM,WAAW,cAAe,SAAQ,kBAAkB;CAAG;AAE7D,8FAA8F;AAC9F,eAAO,MAAM,wBAAwB,cAAc,CAAC;AAEpD,2DAA2D;AAC3D,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,mBAA0D,CAAC;AAE9F;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,yBAAiB,SAAS,CAAC;IAChB,MAAM,gBAAgB,oBAA2B,CAAC;IAEzD;;;;OAIG;IACI,MAAM,QAAQ,QAAoC,CAAC;IAEnD,MAAM,WAAW,mBAAmB,CAAC;IAE5C;;OAEG;IACI,MAAM,SAAS,QAA2D,CAAC;IAC3E,MAAM,cAAc,QAA6C,CAAC;IAElE,MAAM,kBAAkB,SAAgC,CAAC;IACzD,MAAM,cAAc,QAA+E,CAAC;IAEpG,MAAM,WAAW,QAAS,CAAC;IAC3B,MAAM,gBAAgB,QAAS,CAAC;IAcvC;;;;;;;OAOG;IACI,MAAM,YAAY,QACyF,CAAC;IAEnH;;OAEG;IACI,MAAM,cAAc,UAc1B,CAAC;IAEF;;;;;OAKG;IACI,MAAM,cAAc,mBAAmB,CAAC;IACxC,MAAM,eAAe,wBAA2B,CAAC;IAExD;;OAEG;IACI,MAAM,gBAAgB,UAAoE,CAAC;IAE3F,MAAM,WAAW,EAAE,UAMzB,CAAC;CACL"}
@@ -19,10 +19,14 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var config_exports = {};
20
20
  __export(config_exports, {
21
21
  Constants: () => Constants,
22
- ContainerPaths: () => ContainerPaths
22
+ ContainerPaths: () => ContainerPaths,
23
+ HARNESS_COMPOSITION_NAME: () => HARNESS_COMPOSITION_NAME,
24
+ HARNESS_DBUS_CONTAINER: () => HARNESS_DBUS_CONTAINER,
25
+ HARNESS_DBUS_PART_NAME: () => HARNESS_DBUS_PART_NAME
23
26
  });
24
27
  module.exports = __toCommonJS(config_exports);
25
28
  var import_node_process = require("node:process");
29
+ var import_chip_bins = require("./chip-bins.js");
26
30
  var import_container_command_pipe = require("./container-command-pipe.js");
27
31
  /**
28
32
  * @license
@@ -37,7 +41,11 @@ var ContainerPaths;
37
41
  ContainerPaths2.chipPics = "/src/app/tests/suites/certification/ci-pics-values";
38
42
  ContainerPaths2.accessoryClient = "/usr/local/lib/python3.12/dist-packages/matter/yamltests/pseudo_clusters/clusters/accessory_server_bridge.py";
39
43
  ContainerPaths2.dummyWsServer = "/bin/mjs-ws-dummy";
44
+ ContainerPaths2.officialChipBinsDir = "/official-chip-bins";
40
45
  })(ContainerPaths || (ContainerPaths = {}));
46
+ const HARNESS_COMPOSITION_NAME = "matter.js";
47
+ const HARNESS_DBUS_PART_NAME = "dbus";
48
+ const HARNESS_DBUS_CONTAINER = `${HARNESS_COMPOSITION_NAME}-${HARNESS_DBUS_PART_NAME}`;
41
49
  var Constants;
42
50
  ((Constants2) => {
43
51
  Constants2.selectedPlatform = import_node_process.env.MATTER_CHIP_PLATFORM;
@@ -51,7 +59,7 @@ var Constants;
51
59
  Constants2.defaultTimeoutMs = 6e4;
52
60
  const subjectCommissioningTimeoutS = 3;
53
61
  const delayAfterOpeningCommissioningWindowMs = 500;
54
- const chipToolPath = "/bin/chip-tool";
62
+ Constants2.chipToolPath = (0, import_chip_bins.resolveChipBinsSource)() === "cert-bins" ? `${ContainerPaths.officialChipBinsDir}/chip-tool` : "/bin/chip-tool";
55
63
  Constants2.YamlRunnerArgs = [
56
64
  // This makes CHIP logs unconditional which would be nice if it intermingled with our logs but currently they
57
65
  // only appear once test is run; haven't tracked down how to stream them yet
@@ -62,7 +70,7 @@ var Constants;
62
70
  "--waitAfterCommissioning",
63
71
  `${delayAfterOpeningCommissioningWindowMs}`,
64
72
  "--server_path",
65
- chipToolPath
73
+ Constants2.chipToolPath
66
74
  ];
67
75
  Constants2.RestartFlagDir = "/restart-flags";
68
76
  Constants2.RestartFlagFile = `${Constants2.RestartFlagDir}/flag`;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/chip/config.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,0BAAoB;AACpB,oCAA0B;AAP1B;AAAA;AAAA;AAAA;AAAA;AAgBO,IAAU;AAAA,CAAV,CAAUA,oBAAV;AACI,EAAMA,gBAAA,aAAa;AACnB,EAAMA,gBAAA,iBAAiB;AACvB,EAAMA,gBAAA,qBAAqB;AAC3B,EAAMA,gBAAA,WAAW;AACjB,EAAMA,gBAAA,kBACT;AACG,EAAMA,gBAAA,gBAAgB;AAAA,GAPhB;AAuBV,IAAU;AAAA,CAAV,CAAUC,eAAV;AACI,EAAMA,WAAA,mBAAmB,wBAAI;AAO7B,EAAMA,WAAA,WAAWA,WAAA,oBAAoB;AAErC,EAAMA,WAAA,cAAc;AAKpB,EAAMA,WAAA,YAAY,wBAAI,qBAAqB;AAC3C,EAAMA,WAAA,iBAAiB,wBAAI,sBAAsB;AAEjD,EAAMA,WAAA,qBAAqB,CAAC,CAAC,wBAAI;AACjC,EAAMA,WAAA,iBAAiB,wBAAI,yBAAyB,SAAS,wBAAI,wBAAwB,EAAE,IAAI;AAE/F,EAAMA,WAAA,cAAc;AACpB,EAAMA,WAAA,mBAAmB;AAMhC,QAAM,+BAA+B;AAMrC,QAAM,yCAAyC;AAM/C,QAAM,eAAe;AAKd,EAAMA,WAAA,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,IAM1B;AAAA,IACA,GAAG,4BAA4B;AAAA,IAE/B;AAAA,IACA,GAAG,sCAAsC;AAAA,IAEzC;AAAA,IACA;AAAA,EACJ;AAQO,EAAMA,WAAA,iBAAiB;AACvB,EAAMA,WAAA,kBAAkB,GAAGA,WAAA,cAAc;AAKzC,EAAMA,WAAA,mBAAmB,CAAC,cAAc,yCAAW,uBAAuBA,WAAA,eAAe;AAEzF,EAAMA,WAAA,cAA0B;AAAA,IACnC,MAAM;AAAA,IACN,SAAS;AAAA,MACL,EAAE,MAAM,QAAQ,MAAM,eAAe,SAAS;AAAA,MAC9C,EAAE,MAAM,QAAQ,MAAM,qCAAqC;AAAA,IAC/D;AAAA,EACJ;AAAA,GAjFa;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,0BAAoB;AACpB,uBAAsC;AACtC,oCAA0B;AAR1B;AAAA;AAAA;AAAA;AAAA;AAiBO,IAAU;AAAA,CAAV,CAAUA,oBAAV;AACI,EAAMA,gBAAA,aAAa;AACnB,EAAMA,gBAAA,iBAAiB;AACvB,EAAMA,gBAAA,qBAAqB;AAC3B,EAAMA,gBAAA,WAAW;AACjB,EAAMA,gBAAA,kBACT;AACG,EAAMA,gBAAA,gBAAgB;AAOtB,EAAMA,gBAAA,sBAAsB;AAAA,GAdtB;AAqBV,MAAM,2BAA2B;AAGjC,MAAM,yBAAyB;AAQ/B,MAAM,yBAAyB,GAAG,wBAAwB,IAAI,sBAAsB;AAYpF,IAAU;AAAA,CAAV,CAAUC,eAAV;AACI,EAAMA,WAAA,mBAAmB,wBAAI;AAO7B,EAAMA,WAAA,WAAWA,WAAA,oBAAoB;AAErC,EAAMA,WAAA,cAAc;AAKpB,EAAMA,WAAA,YAAY,wBAAI,qBAAqB;AAC3C,EAAMA,WAAA,iBAAiB,wBAAI,sBAAsB;AAEjD,EAAMA,WAAA,qBAAqB,CAAC,CAAC,wBAAI;AACjC,EAAMA,WAAA,iBAAiB,wBAAI,yBAAyB,SAAS,wBAAI,wBAAwB,EAAE,IAAI;AAE/F,EAAMA,WAAA,cAAc;AACpB,EAAMA,WAAA,mBAAmB;AAMhC,QAAM,+BAA+B;AAMrC,QAAM,yCAAyC;AAUxC,EAAMA,WAAA,mBACT,wCAAsB,MAAM,cAAc,GAAG,eAAe,mBAAmB,eAAe;AAK3F,EAAMA,WAAA,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,IAM1B;AAAA,IACA,GAAG,4BAA4B;AAAA,IAE/B;AAAA,IACA,GAAG,sCAAsC;AAAA,IAEzC;AAAA,IACAA,WAAA;AAAA,EACJ;AAQO,EAAMA,WAAA,iBAAiB;AACvB,EAAMA,WAAA,kBAAkB,GAAGA,WAAA,cAAc;AAKzC,EAAMA,WAAA,mBAAmB,CAAC,cAAc,yCAAW,uBAAuBA,WAAA,eAAe;AAEzF,EAAMA,WAAA,cAA0B;AAAA,IACnC,MAAM;AAAA,IACN,SAAS;AAAA,MACL,EAAE,MAAM,QAAQ,MAAM,eAAe,SAAS;AAAA,MAC9C,EAAE,MAAM,QAAQ,MAAM,qCAAqC;AAAA,IAC/D;AAAA,EACJ;AAAA,GAtFa;",
5
5
  "names": ["ContainerPaths", "Constants"]
6
6
  }
@@ -3,6 +3,32 @@
3
3
  * Copyright 2022-2026 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ export type { CertDevice, CertDeviceFactory, CertStepContext, CertStepDefinition, CertTestDefinition, CheckRecord, DeviceExitInfo, DeviceFlavor, LogSource, StepRecorder, StepVerdict, } from "./cert/cert-context.js";
7
+ export { certTest, MultiDeviceUnsupportedError } from "./cert/cert-dsl.js";
8
+ export type { CertStepOptions, CertTestBuilder, CertTestOptions } from "./cert/cert-dsl.js";
9
+ /** @internal Test seam — not API. Production cert tests go through the `certTest()` DSL, not this class directly. */
10
+ export { CertTest } from "./cert/cert-test.js";
11
+ export { ChipDockerSubject, ChipLocalSubject } from "./cert/chip-app-subject.js";
12
+ /** @internal Test seam — not API. `ChipDockerDevice`'s own constructor, and its Docker collaborator types. */
13
+ export { ChipDockerDevice, HARNESS_DBUS_CONTAINER } from "./cert/chip-app-subject.js";
14
+ /** @internal Test seam — not API. */
15
+ export type { CompositionHandle, DockerHandle } from "./cert/chip-app-subject.js";
16
+ export { registerControllerAdapterFactory } from "./cert/controller-adapter.js";
17
+ export type { AttributePathSpec, CertNodeApi, CertNodeRef, CommissioningTarget, ControllerAdapter, ControllerAdapterFactory, ReadAttributeOptions, SubscribeOptions, } from "./cert/controller-adapter.js";
18
+ export { resolveDeviceFlavor } from "./cert/device-config.js";
19
+ export { EvidenceRecorder } from "./cert/evidence.js";
20
+ export type { RunRecord, StepRecord } from "./cert/evidence.js";
21
+ export { CertLogClosedError, CertLogTimeoutError, LogFollower } from "./cert/log-follower.js";
22
+ export type { LogExpectOptions, LogExpectPatterns, LogExpectResult, LogLine } from "./cert/log-follower.js";
23
+ export { registerMatterJsCertSubject } from "./cert/matterjs-subject-registry.js";
24
+ export { PromptDrivenPythonTest } from "./cert/prompt-driven-python-test.js";
25
+ export type { PromptHandler } from "./cert/prompt-driven-python-test.js";
26
+ export { assertChipBinsDirOwnership, CERT_BINS_IMAGE, CERT_BINS_PLATFORM, ChipBinsOwnershipError, ChipBinsPermissionError, chipBinsDir, chipBinsExtractionDir, chipBinsPlatformSupported, DEFAULT_CERT_BINS_TAG, ensureChipBins, prepareChipBins, requestedChipBinsTag, resolveChipBinsSource, resolveChipBinsTag, } from "./chip-bins.js";
27
+ export type { ChipBinsSource, EnsureChipBinsResult } from "./chip-bins.js";
28
+ /** @internal Test seam — not API. */
29
+ export { parseDockerHubTagsResponse, resetChipBinsPrepareCacheForTesting } from "./chip-bins.js";
30
+ /** @internal Test seam — not API. */
31
+ export type { ChipBinsDockerHandle } from "./chip-bins.js";
6
32
  export * from "./chip.js";
7
33
  export * from "./command-pipe.js";
8
34
  export * from "./pics/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chip/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chip/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,YAAY,EACR,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,WAAW,GACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAC3E,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC5F,qHAAqH;AACrH,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACjF,8GAA8G;AAC9G,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACtF,qCAAqC;AACrC,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,gCAAgC,EAAE,MAAM,8BAA8B,CAAC;AAChF,YAAY,EACR,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,GACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC9F,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC5G,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,YAAY,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EACH,0BAA0B,EAC1B,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,WAAW,EACX,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,GACrB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,qCAAqC;AACrC,OAAO,EAAE,0BAA0B,EAAE,mCAAmC,EAAE,MAAM,gBAAgB,CAAC;AACjG,qCAAqC;AACrC,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
@@ -3,6 +3,10 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
6
10
  var __copyProps = (to, from, except, desc) => {
7
11
  if (from && typeof from === "object" || typeof from === "function") {
8
12
  for (let key of __getOwnPropNames(from))
@@ -14,7 +18,52 @@ var __copyProps = (to, from, except, desc) => {
14
18
  var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
19
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
20
  var chip_exports = {};
21
+ __export(chip_exports, {
22
+ CERT_BINS_IMAGE: () => import_chip_bins.CERT_BINS_IMAGE,
23
+ CERT_BINS_PLATFORM: () => import_chip_bins.CERT_BINS_PLATFORM,
24
+ CertLogClosedError: () => import_log_follower.CertLogClosedError,
25
+ CertLogTimeoutError: () => import_log_follower.CertLogTimeoutError,
26
+ CertTest: () => import_cert_test.CertTest,
27
+ ChipBinsOwnershipError: () => import_chip_bins.ChipBinsOwnershipError,
28
+ ChipBinsPermissionError: () => import_chip_bins.ChipBinsPermissionError,
29
+ ChipDockerDevice: () => import_chip_app_subject2.ChipDockerDevice,
30
+ ChipDockerSubject: () => import_chip_app_subject.ChipDockerSubject,
31
+ ChipLocalSubject: () => import_chip_app_subject.ChipLocalSubject,
32
+ DEFAULT_CERT_BINS_TAG: () => import_chip_bins.DEFAULT_CERT_BINS_TAG,
33
+ EvidenceRecorder: () => import_evidence.EvidenceRecorder,
34
+ HARNESS_DBUS_CONTAINER: () => import_chip_app_subject2.HARNESS_DBUS_CONTAINER,
35
+ LogFollower: () => import_log_follower.LogFollower,
36
+ MultiDeviceUnsupportedError: () => import_cert_dsl.MultiDeviceUnsupportedError,
37
+ PromptDrivenPythonTest: () => import_prompt_driven_python_test.PromptDrivenPythonTest,
38
+ assertChipBinsDirOwnership: () => import_chip_bins.assertChipBinsDirOwnership,
39
+ certTest: () => import_cert_dsl.certTest,
40
+ chipBinsDir: () => import_chip_bins.chipBinsDir,
41
+ chipBinsExtractionDir: () => import_chip_bins.chipBinsExtractionDir,
42
+ chipBinsPlatformSupported: () => import_chip_bins.chipBinsPlatformSupported,
43
+ ensureChipBins: () => import_chip_bins.ensureChipBins,
44
+ parseDockerHubTagsResponse: () => import_chip_bins2.parseDockerHubTagsResponse,
45
+ prepareChipBins: () => import_chip_bins.prepareChipBins,
46
+ registerControllerAdapterFactory: () => import_controller_adapter.registerControllerAdapterFactory,
47
+ registerMatterJsCertSubject: () => import_matterjs_subject_registry.registerMatterJsCertSubject,
48
+ requestedChipBinsTag: () => import_chip_bins.requestedChipBinsTag,
49
+ resetChipBinsPrepareCacheForTesting: () => import_chip_bins2.resetChipBinsPrepareCacheForTesting,
50
+ resolveChipBinsSource: () => import_chip_bins.resolveChipBinsSource,
51
+ resolveChipBinsTag: () => import_chip_bins.resolveChipBinsTag,
52
+ resolveDeviceFlavor: () => import_device_config.resolveDeviceFlavor
53
+ });
17
54
  module.exports = __toCommonJS(chip_exports);
55
+ var import_cert_dsl = require("./cert/cert-dsl.js");
56
+ var import_cert_test = require("./cert/cert-test.js");
57
+ var import_chip_app_subject = require("./cert/chip-app-subject.js");
58
+ var import_chip_app_subject2 = require("./cert/chip-app-subject.js");
59
+ var import_controller_adapter = require("./cert/controller-adapter.js");
60
+ var import_device_config = require("./cert/device-config.js");
61
+ var import_evidence = require("./cert/evidence.js");
62
+ var import_log_follower = require("./cert/log-follower.js");
63
+ var import_matterjs_subject_registry = require("./cert/matterjs-subject-registry.js");
64
+ var import_prompt_driven_python_test = require("./cert/prompt-driven-python-test.js");
65
+ var import_chip_bins = require("./chip-bins.js");
66
+ var import_chip_bins2 = require("./chip-bins.js");
18
67
  __reExport(chip_exports, require("./chip.js"), module.exports);
19
68
  __reExport(chip_exports, require("./command-pipe.js"), module.exports);
20
69
  __reExport(chip_exports, require("./pics/index.js"), module.exports);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/chip/index.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,yBAAc,sBANd;AAOA,yBAAc,8BAPd;AAQA,yBAAc,4BARd;AAAA;AAAA;AAAA;AAAA;AAAA;",
5
- "names": []
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAwBA,sBAAsD;AAGtD,uBAAyB;AACzB,8BAAoD;AAEpD,IAAAA,2BAAyD;AAGzD,gCAAiD;AAWjD,2BAAoC;AACpC,sBAAiC;AAEjC,0BAAqE;AAErE,uCAA4C;AAC5C,uCAAuC;AAEvC,uBAeO;AAGP,IAAAC,oBAAgF;AAGhF,yBAAc,sBAzEd;AA0EA,yBAAc,8BA1Ed;AA2EA,yBAAc,4BA3Ed;AAAA;AAAA;AAAA;AAAA;AAAA;",
5
+ "names": ["import_chip_app_subject", "import_chip_bins"]
6
6
  }
@@ -4,6 +4,14 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { PicsValues } from "./values.js";
7
+ /**
8
+ * Thrown by a `Subject.pics` accessor (or `chip.defaultPics`) when no PICS file is available for
9
+ * the subject — e.g. the harness hasn't initialized one, or the device kind has none at all.
10
+ * Distinct from other errors a PICS accessor may raise: "no PICS" means PICS gating is simply
11
+ * inactive, not that something is broken (see `cert-test.ts`'s `resolvePicsFile`).
12
+ */
13
+ export declare class PicsUnavailableError extends Error {
14
+ }
7
15
  /**
8
16
  * In-memory Matter PICS file.
9
17
  *
@@ -1 +1 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../../src/chip/pics/file.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;;;;;GASG;AACH,qBAAa,QAAQ;;IAIjB,YAAY,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,EAMpC;IAED,IAAI,KAAK,aAER;IAED,IAAI,MAAM,eAST;IAED,QAAQ,WAEP;IAED,KAAK,CAAC,KAAK,EAAE,QAAQ,QA4BpB;CACJ;AAED,yBAAiB,QAAQ,CAAC,CAAC;IACvB,UAAiB,MAAM;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;KACxB;CACJ"}
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../../src/chip/pics/file.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;CAAG;AAElD;;;;;;;;;GASG;AACH,qBAAa,QAAQ;;IAIjB,YAAY,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,EAMpC;IAED,IAAI,KAAK,aAER;IAED,IAAI,MAAM,eAST;IAED,QAAQ,WAEP;IAED,KAAK,CAAC,KAAK,EAAE,QAAQ,QA4BpB;CACJ;AAED,yBAAiB,QAAQ,CAAC;IACtB,UAAiB,MAAM;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;KACxB;CACJ"}
@@ -18,7 +18,8 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var file_exports = {};
20
20
  __export(file_exports, {
21
- PicsFile: () => PicsFile
21
+ PicsFile: () => PicsFile,
22
+ PicsUnavailableError: () => PicsUnavailableError
22
23
  });
23
24
  module.exports = __toCommonJS(file_exports);
24
25
  /**
@@ -26,6 +27,8 @@ module.exports = __toCommonJS(file_exports);
26
27
  * Copyright 2022-2026 Matter.js Authors
27
28
  * SPDX-License-Identifier: Apache-2.0
28
29
  */
30
+ class PicsUnavailableError extends Error {
31
+ }
29
32
  class PicsFile {
30
33
  #lines;
31
34
  #values;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/chip/pics/file.ts"],
4
- "mappings": "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",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcO,MAAM,6BAA6B,MAAM;AAAC;AAY1C,MAAM,SAAS;AAAA,EAClB;AAAA,EACA;AAAA,EAEA,YAAY,OAA2B;AACnC,QAAI,OAAO,UAAU,UAAU;AAC3B,WAAK,SAAS,MAAM,MAAM,IAAI,EAAE,IAAI,OAAK,EAAE,KAAK,CAAC;AAAA,IACrD,OAAO;AACH,WAAK,SAAS,SAAS,CAAC;AAAA,IAC5B;AAAA,EACJ;AAAA,EAEA,IAAI,QAAQ;AACR,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,SAAS;AACT,QAAI,CAAC,KAAK,SAAS;AACf,YAAM,SAAS,CAAC;AAChB,iBAAW,QAAQ,KAAK,OAAO;AAC3B,kBAAU,MAAM,MAAM;AAAA,MAC1B;AACA,WAAK,UAAU;AAAA,IACnB;AACA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,WAAW;AACP,WAAO,KAAK,OAAO,KAAK,IAAI,IAAI;AAAA,EACpC;AAAA,EAEA,MAAM,OAAiB;AACnB,UAAM,YAAY,EAAE,GAAG,MAAM,OAAO;AAEpC,UAAM,WAAW,IAAI,MAAc;AACnC,eAAW,QAAQ,KAAK,OAAO;AAC3B,YAAM,aAAa,CAAC;AACpB,UAAI,CAAC,UAAU,MAAM,UAAU,GAAG;AAC9B,iBAAS,KAAK,IAAI;AAClB;AAAA,MACJ;AAEA,iBAAW,OAAO,YAAY;AAC1B,cAAM,WAAW,UAAU,GAAG;AAC9B,YAAI,aAAa,QAAW;AACxB,mBAAS,KAAK,GAAG,GAAG,IAAI,QAAQ,EAAE;AAClC,iBAAO,UAAU,GAAG;AAAA,QACxB,OAAO;AACH,mBAAS,KAAK,GAAG,GAAG,IAAI,WAAW,GAAG,CAAC,EAAE;AAAA,QAC7C;AAAA,MACJ;AAAA,IACJ;AAEA,eAAW,OAAO,WAAW;AACzB,eAAS,KAAK,GAAG,GAAG,IAAI,UAAU,GAAG,CAAC,EAAE;AAAA,IAC5C;AAEA,SAAK,UAAU;AACf,SAAK,SAAS;AAAA,EAClB;AACJ;AAQA,SAAS,UAAU,MAAc,QAA6B;AAC1D,SAAO,KAAK,KAAK;AACjB,MAAI,KAAK,WAAW,GAAG,GAAG;AACtB,WAAO;AAAA,EACX;AAEA,QAAM,aAAa,KAAK,MAAM,kBAAkB;AAChD,MAAI,CAAC,YAAY;AACb,WAAO;AAAA,EACX;AAEA,QAAM,CAAC,EAAE,KAAK,QAAQ,IAAI;AAC1B,MAAI;AACJ,UAAQ,UAAU;AAAA,IACd,KAAK;AACD,cAAQ;AACR;AAAA,IAEJ,KAAK;AACD,cAAQ;AACR;AAAA,IAEJ;AACI,aAAO;AAAA,EACf;AAEA,QAAM,SAAS,IAAI,QAAQ,IAAI;AAC/B,MAAI,WAAW,IAAI;AACf,WAAO,GAAG,IAAI;AACd,WAAO;AAAA,EACX;AAEA,QAAM,OAAO,IAAI,MAAM,GAAG,MAAM;AAChC,QAAM,OAAO,IAAI,MAAM,SAAS,CAAC;AACjC,QAAM,YAAY,KAAK,QAAQ,GAAG;AAClC,QAAM,UAAU,cAAc,KAAK,OAAO,KAAK,MAAM,GAAG,SAAS;AACjE,QAAM,SAAS,cAAc,KAAK,KAAK,KAAK,MAAM,SAAS;AAC3D,QAAM,cAAc,KAAK,MAAM,GAAG,KAAK,SAAS,QAAQ,MAAM;AAC9D,QAAM,YAAY,KAAK,MAAM,YAAY,MAAM;AAC/C,QAAM,cAAc;AAEpB,QAAM,eAAe,OAAO,SAAS,WAAW,EAAE;AAClD,MAAI,CAAC,OAAO,SAAS,YAAY,GAAG;AAChC,UAAM,IAAI,MAAM,gCAAgC,GAAG,aAAa;AAAA,EACpE;AAEA,QAAM,aAAa,OAAO,SAAS,SAAS,EAAE;AAC9C,MAAI,CAAC,OAAO,SAAS,UAAU,GAAG;AAC9B,UAAM,IAAI,MAAM,8BAA8B,GAAG,aAAa;AAAA,EAClE;AAEA,MAAI,aAAa,cAAc;AAC3B,UAAM,IAAI,MAAM,2BAA2B,UAAU,gCAAgC,YAAY,EAAE;AAAA,EACvG;AAEA,WAAS,IAAI,cAAc,KAAK,YAAY,KAAK;AAC7C,WAAO,cAAc,EAAE,SAAS,EAAE,EAAE,SAAS,QAAQ,QAAQ,GAAG,IAAI,WAAW,IAAI;AAAA,EACvF;AAEA,SAAO;AACX;",
5
5
  "names": []
6
6
  }