@matter/testing 0.13.1-alpha.0-20250502-43a54f780 → 0.13.1-alpha.0-20250506-f9ad9c3d8

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 (161) hide show
  1. package/bin/test.js +1 -2
  2. package/dist/cjs/chip/chip.d.ts +7 -2
  3. package/dist/cjs/chip/chip.d.ts.map +1 -1
  4. package/dist/cjs/chip/chip.js +20 -15
  5. package/dist/cjs/chip/chip.js.map +1 -1
  6. package/dist/cjs/chip/command-pipe.d.ts +2 -1
  7. package/dist/cjs/chip/command-pipe.d.ts.map +1 -1
  8. package/dist/cjs/chip/command-pipe.js +5 -2
  9. package/dist/cjs/chip/command-pipe.js.map +1 -1
  10. package/dist/cjs/chip/config.d.ts +2 -2
  11. package/dist/cjs/chip/config.d.ts.map +1 -1
  12. package/dist/cjs/chip/config.js +7 -6
  13. package/dist/cjs/chip/config.js.map +1 -1
  14. package/dist/cjs/chip/container-command-pipe.d.ts +2 -1
  15. package/dist/cjs/chip/container-command-pipe.d.ts.map +1 -1
  16. package/dist/cjs/chip/container-command-pipe.js +26 -24
  17. package/dist/cjs/chip/container-command-pipe.js.map +1 -1
  18. package/dist/cjs/chip/index.d.ts +1 -1
  19. package/dist/cjs/chip/index.d.ts.map +1 -1
  20. package/dist/cjs/chip/index.js +1 -1
  21. package/dist/cjs/chip/index.js.map +1 -1
  22. package/dist/cjs/chip/{pics-expression.d.ts → pics/expression.d.ts} +2 -2
  23. package/dist/cjs/chip/pics/expression.d.ts.map +1 -0
  24. package/dist/cjs/chip/{pics-expression.js → pics/expression.js} +6 -6
  25. package/dist/cjs/chip/pics/expression.js.map +6 -0
  26. package/dist/cjs/chip/{pics-file.d.ts → pics/file.d.ts} +10 -5
  27. package/dist/cjs/chip/pics/file.d.ts.map +1 -0
  28. package/dist/cjs/chip/{pics-file.js → pics/file.js} +21 -13
  29. package/dist/cjs/chip/pics/file.js.map +6 -0
  30. package/dist/cjs/chip/pics/index.d.ts +10 -0
  31. package/dist/cjs/chip/pics/index.d.ts.map +1 -0
  32. package/dist/cjs/chip/pics/index.js +27 -0
  33. package/dist/cjs/chip/pics/index.js.map +6 -0
  34. package/dist/cjs/chip/pics/source.d.ts +52 -0
  35. package/dist/cjs/chip/pics/source.d.ts.map +1 -0
  36. package/dist/cjs/chip/pics/source.js +117 -0
  37. package/dist/cjs/chip/pics/source.js.map +6 -0
  38. package/dist/cjs/chip/pics/values.d.ts +9 -0
  39. package/dist/cjs/chip/pics/values.d.ts.map +1 -0
  40. package/dist/cjs/chip/pics/values.js +22 -0
  41. package/dist/cjs/chip/pics/values.js.map +6 -0
  42. package/dist/cjs/chip/python-test.d.ts.map +1 -1
  43. package/dist/cjs/chip/python-test.js +14 -7
  44. package/dist/cjs/chip/python-test.js.map +1 -1
  45. package/dist/cjs/chip/state.d.ts +3 -2
  46. package/dist/cjs/chip/state.d.ts.map +1 -1
  47. package/dist/cjs/chip/state.js +38 -25
  48. package/dist/cjs/chip/state.js.map +1 -1
  49. package/dist/cjs/chip/yaml-test.d.ts +1 -1
  50. package/dist/cjs/chip/yaml-test.d.ts.map +1 -1
  51. package/dist/cjs/chip/yaml-test.js +5 -1
  52. package/dist/cjs/chip/yaml-test.js.map +1 -1
  53. package/dist/cjs/cli.d.ts.map +1 -1
  54. package/dist/cjs/cli.js +18 -3
  55. package/dist/cjs/cli.js.map +2 -2
  56. package/dist/cjs/device/subject.d.ts +4 -0
  57. package/dist/cjs/device/subject.d.ts.map +1 -1
  58. package/dist/cjs/failure-reporter.js +4 -6
  59. package/dist/cjs/failure-reporter.js.map +1 -1
  60. package/dist/cjs/print-report.d.ts +3 -0
  61. package/dist/cjs/print-report.d.ts.map +1 -1
  62. package/dist/cjs/print-report.js +13 -16
  63. package/dist/cjs/print-report.js.map +2 -2
  64. package/dist/cjs/test-descriptor.d.ts +18 -13
  65. package/dist/cjs/test-descriptor.d.ts.map +1 -1
  66. package/dist/cjs/test-descriptor.js +48 -49
  67. package/dist/cjs/test-descriptor.js.map +2 -2
  68. package/dist/esm/chip/chip.d.ts +7 -2
  69. package/dist/esm/chip/chip.d.ts.map +1 -1
  70. package/dist/esm/chip/chip.js +20 -15
  71. package/dist/esm/chip/chip.js.map +1 -1
  72. package/dist/esm/chip/command-pipe.d.ts +2 -1
  73. package/dist/esm/chip/command-pipe.d.ts.map +1 -1
  74. package/dist/esm/chip/command-pipe.js +5 -2
  75. package/dist/esm/chip/command-pipe.js.map +1 -1
  76. package/dist/esm/chip/config.d.ts +2 -2
  77. package/dist/esm/chip/config.d.ts.map +1 -1
  78. package/dist/esm/chip/config.js +7 -6
  79. package/dist/esm/chip/config.js.map +1 -1
  80. package/dist/esm/chip/container-command-pipe.d.ts +2 -1
  81. package/dist/esm/chip/container-command-pipe.d.ts.map +1 -1
  82. package/dist/esm/chip/container-command-pipe.js +26 -24
  83. package/dist/esm/chip/container-command-pipe.js.map +1 -1
  84. package/dist/esm/chip/index.d.ts +1 -1
  85. package/dist/esm/chip/index.d.ts.map +1 -1
  86. package/dist/esm/chip/index.js +1 -1
  87. package/dist/esm/chip/{pics-expression.d.ts → pics/expression.d.ts} +2 -2
  88. package/dist/esm/chip/pics/expression.d.ts.map +1 -0
  89. package/dist/esm/chip/{pics-expression.js → pics/expression.js} +3 -3
  90. package/dist/esm/chip/pics/expression.js.map +6 -0
  91. package/dist/esm/chip/{pics-file.d.ts → pics/file.d.ts} +10 -5
  92. package/dist/esm/chip/pics/file.d.ts.map +1 -0
  93. package/dist/esm/chip/{pics-file.js → pics/file.js} +18 -10
  94. package/dist/esm/chip/pics/file.js.map +6 -0
  95. package/dist/esm/chip/pics/index.d.ts +10 -0
  96. package/dist/esm/chip/pics/index.d.ts.map +1 -0
  97. package/dist/esm/chip/pics/index.js +10 -0
  98. package/dist/esm/chip/pics/index.js.map +6 -0
  99. package/dist/esm/chip/pics/source.d.ts +52 -0
  100. package/dist/esm/chip/pics/source.d.ts.map +1 -0
  101. package/dist/esm/chip/pics/source.js +97 -0
  102. package/dist/esm/chip/pics/source.js.map +6 -0
  103. package/dist/esm/chip/pics/values.d.ts +9 -0
  104. package/dist/esm/chip/pics/values.d.ts.map +1 -0
  105. package/dist/esm/chip/pics/values.js +6 -0
  106. package/dist/esm/chip/pics/values.js.map +6 -0
  107. package/dist/esm/chip/python-test.d.ts.map +1 -1
  108. package/dist/esm/chip/python-test.js +14 -7
  109. package/dist/esm/chip/python-test.js.map +1 -1
  110. package/dist/esm/chip/state.d.ts +3 -2
  111. package/dist/esm/chip/state.d.ts.map +1 -1
  112. package/dist/esm/chip/state.js +39 -26
  113. package/dist/esm/chip/state.js.map +1 -1
  114. package/dist/esm/chip/yaml-test.d.ts +1 -1
  115. package/dist/esm/chip/yaml-test.d.ts.map +1 -1
  116. package/dist/esm/chip/yaml-test.js +5 -1
  117. package/dist/esm/chip/yaml-test.js.map +1 -1
  118. package/dist/esm/cli.d.ts.map +1 -1
  119. package/dist/esm/cli.js +19 -4
  120. package/dist/esm/cli.js.map +2 -2
  121. package/dist/esm/device/subject.d.ts +4 -0
  122. package/dist/esm/device/subject.d.ts.map +1 -1
  123. package/dist/esm/failure-reporter.js +4 -6
  124. package/dist/esm/failure-reporter.js.map +1 -1
  125. package/dist/esm/print-report.d.ts +3 -0
  126. package/dist/esm/print-report.d.ts.map +1 -1
  127. package/dist/esm/print-report.js +12 -15
  128. package/dist/esm/print-report.js.map +2 -2
  129. package/dist/esm/test-descriptor.d.ts +18 -13
  130. package/dist/esm/test-descriptor.d.ts.map +1 -1
  131. package/dist/esm/test-descriptor.js +48 -49
  132. package/dist/esm/test-descriptor.js.map +2 -2
  133. package/package.json +2 -2
  134. package/src/chip/chip.ts +31 -17
  135. package/src/chip/command-pipe.ts +6 -2
  136. package/src/chip/config.ts +9 -9
  137. package/src/chip/container-command-pipe.ts +28 -30
  138. package/src/chip/index.ts +1 -1
  139. package/src/chip/matter-js-pics.properties +7 -4
  140. package/src/chip/{pics-expression.ts → pics/expression.ts} +4 -3
  141. package/src/chip/{pics-file.ts → pics/file.ts} +30 -13
  142. package/src/chip/pics/index.ts +10 -0
  143. package/src/chip/pics/source.ts +163 -0
  144. package/src/chip/pics/values.ts +9 -0
  145. package/src/chip/python-test.ts +18 -11
  146. package/src/chip/state.ts +56 -33
  147. package/src/chip/yaml-test.ts +6 -1
  148. package/src/cli.ts +29 -5
  149. package/src/device/subject.ts +4 -0
  150. package/src/failure-reporter.ts +4 -4
  151. package/src/print-report.ts +13 -18
  152. package/src/test-descriptor.ts +70 -61
  153. package/src/tsconfig.json +6 -2
  154. package/dist/cjs/chip/pics-expression.d.ts.map +0 -1
  155. package/dist/cjs/chip/pics-expression.js.map +0 -6
  156. package/dist/cjs/chip/pics-file.d.ts.map +0 -1
  157. package/dist/cjs/chip/pics-file.js.map +0 -6
  158. package/dist/esm/chip/pics-expression.d.ts.map +0 -1
  159. package/dist/esm/chip/pics-expression.js.map +0 -6
  160. package/dist/esm/chip/pics-file.d.ts.map +0 -1
  161. package/dist/esm/chip/pics-file.js.map +0 -6
package/bin/test.js CHANGED
@@ -16,8 +16,7 @@ try {
16
16
  }
17
17
  }
18
18
 
19
- // Ensure test suite is compiled. This is redundant when run under matter-run but allows us to avoid the extra process
20
- // during development (e.g. in launch.json)
19
+ // Ensure test suite is compiled
21
20
  await import("@matter/tools/bootstrap");
22
21
  await (await import("@matter/tools")).ensureCompiled(import.meta.url);
23
22
 
@@ -9,7 +9,7 @@ import { Test } from "../device/test.js";
9
9
  import type { Container } from "../docker/container.js";
10
10
  import type { TestRunner } from "../runner.js";
11
11
  import { TestDescriptor } from "../test-descriptor.js";
12
- import { PicsFile } from "./pics-file.js";
12
+ import { PicsFile } from "./pics/file.js";
13
13
  /**
14
14
  * CHIP test harness.
15
15
  *
@@ -23,6 +23,7 @@ import { PicsFile } from "./pics-file.js";
23
23
  * We execute test logic within a Docker container available at {@link https://github.com/matter-js/matter.js-chip}.
24
24
  */
25
25
  export interface Chip extends chip.Builder {
26
+ (subject: Subject): chip.Builder;
26
27
  (...include: string[]): chip.Builder;
27
28
  /**
28
29
  * Testing controller. Must be set prior to use of other methods.
@@ -79,7 +80,11 @@ export interface Chip extends chip.Builder {
79
80
  /**
80
81
  * The active PICS configuration.
81
82
  */
82
- pics: PicsFile;
83
+ defaultPics: PicsFile;
84
+ /**
85
+ * The filename for default PICS in the container.
86
+ */
87
+ defaultPicsFile: string;
83
88
  /**
84
89
  * The timeout for tests without an explicit timeout (defaults to 30s).
85
90
  */
@@ -1 +1 @@
1
- {"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../../src/chip/chip.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,IAAK,SAAQ,IAAI,CAAC,OAAO;IACtC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;IAErC;;OAEG;IACH,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC;IAE/B;;OAEG;IACH,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC;IAEzB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEvC;;OAEG;IACH,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC;IAEnD;;OAEG;IACH,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC;IAEhC;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B;;OAEG;IACH,SAAS,EAAE,SAAS,CAAC;IAErB;;OAEG;IACH,UAAU,EAAE,IAAI,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,cAAc,CAAC,UAAU,CAAC;IAEjC;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAC;IAEf;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAC;CAC9B;AA4PD,eAAO,MAAM,IAAI,EAAa,IAAI,CAAC;AAiBnC,yBAAiB,IAAI,CAAC;IAClB;;OAEG;IACH,KAAY,aAAa,GAAG,IAAI,GAAG,MAAM,CAAC;IAE1C,UAAiB,UAAU;QACvB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACxD;IAED,UAAiB,iBAAiB;QAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB;IAED,UAAiB,OAAO;QACpB;;;;WAIG;QACH,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAEpC;;WAEG;QACH,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAEpC;;WAEG;QACH,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAE3C;;WAEG;QACH,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;QAEvC;;WAEG;QACH,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;QAEtC;;WAEG;QACH,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC;QAE5C;;WAEG;QACH,cAAc,IAAI,OAAO,CAAC;KAC7B;CACJ"}
1
+ {"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../../src/chip/chip.ts"],"names":[],"mappings":"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"}
@@ -49,12 +49,11 @@ function createBuilder(initial) {
49
49
  includePaths.add(path);
50
50
  }
51
51
  }
52
- const predicate = import_test_descriptor.TestDescriptor.predicateFor({
52
+ const tests = import_test_descriptor.TestDescriptor.filter(chip.tests.descriptor, {
53
53
  includePaths: [...includePaths],
54
54
  kinds: ["py", "yaml"],
55
- pics: chip.pics
55
+ pics: subject?.pics ?? chip.defaultPics
56
56
  });
57
- const tests = import_test_descriptor.TestDescriptor.filter(chip.tests.descriptor, predicate);
58
57
  if (!tests?.members) {
59
58
  return this;
60
59
  }
@@ -64,10 +63,7 @@ function createBuilder(initial) {
64
63
  return this;
65
64
  },
66
65
  exclude(...glob) {
67
- const tests = import_test_descriptor.TestDescriptor.filter(
68
- chip.tests.descriptor,
69
- import_test_descriptor.TestDescriptor.predicateFor({ includePaths: (0, import_tools.globSync)(glob, chip.tests) })
70
- );
66
+ const tests = import_test_descriptor.TestDescriptor.filter(chip.tests.descriptor, { includePaths: (0, import_tools.globSync)(glob, chip.tests) });
71
67
  if (!tests) {
72
68
  return this;
73
69
  }
@@ -123,14 +119,14 @@ function createBuilder(initial) {
123
119
  function defineTests(descriptor) {
124
120
  switch (descriptor.kind) {
125
121
  case "suite":
126
- implementSuite(descriptor);
122
+ defineSuite(descriptor);
127
123
  break;
128
124
  default:
129
- implementTest(descriptor);
125
+ defineTest(descriptor);
130
126
  break;
131
127
  }
132
128
  }
133
- function implementSuite(descriptor) {
129
+ function defineSuite(descriptor) {
134
130
  const mocha = import_state.State.mocha;
135
131
  const { name, members } = descriptor;
136
132
  if (!members?.length) {
@@ -162,7 +158,7 @@ function createBuilder(initial) {
162
158
  }
163
159
  });
164
160
  }
165
- function implementTest(descriptor) {
161
+ function defineTest(descriptor) {
166
162
  import_state.State.install();
167
163
  const test = chip.testFor(descriptor);
168
164
  const mochaTest = it(descriptor.name, function() {
@@ -183,8 +179,14 @@ function createBuilder(initial) {
183
179
  (0, import_mocha2.afterOne)(mochaTest, import_state.State.deactivateSubject);
184
180
  }
185
181
  }
186
- function chipFn(...include) {
187
- return createBuilder({ include });
182
+ function chipFn(subjectOrFirstInclusion, ...include) {
183
+ if (typeof subjectOrFirstInclusion === "function") {
184
+ return chip.subject(subjectOrFirstInclusion).include(...include);
185
+ }
186
+ if (typeof subjectOrFirstInclusion === "string") {
187
+ include = [subjectOrFirstInclusion, ...include];
188
+ }
189
+ return createBuilder({ include: [...include] });
188
190
  }
189
191
  Object.defineProperties(chipFn, {
190
192
  runner: {
@@ -214,8 +216,11 @@ Object.defineProperties(chipFn, {
214
216
  isInitialized: {
215
217
  get: () => import_state.State.isInitialized
216
218
  },
217
- pics: {
218
- get: () => import_state.State.pics
219
+ defaultPics: {
220
+ get: () => import_state.State.defaultPics
221
+ },
222
+ defaultPicsFilename: {
223
+ get: () => import_state.State.defaultPicsFilename
219
224
  },
220
225
  pullBeforeTesting: {
221
226
  get() {
@@ -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": "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",
5
5
  "names": ["import_mocha", "subject", "test"]
6
6
  }
@@ -11,7 +11,8 @@ import { BackchannelCommand } from "../device/backchannel.js";
11
11
  */
12
12
  export declare abstract class CommandPipe {
13
13
  #private;
14
- constructor(subject: BackchannelCommand.Subject, appName: string);
14
+ constructor(subject: BackchannelCommand.Subject, filename: string);
15
+ static filenameFor(app: string): string;
15
16
  get filename(): string;
16
17
  abstract initialize(): Promise<void>;
17
18
  abstract close(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"command-pipe.d.ts","sourceRoot":"","sources":["../../../src/chip/command-pipe.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAI9D;;;;GAIG;AACH,8BAAsB,WAAW;;gBAIjB,OAAO,EAAE,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM;IAKhE,IAAI,QAAQ,WAEX;IAED,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACpC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAE/B,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;CA6C7C"}
1
+ {"version":3,"file":"command-pipe.d.ts","sourceRoot":"","sources":["../../../src/chip/command-pipe.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAI9D;;;;GAIG;AACH,8BAAsB,WAAW;;gBAIjB,OAAO,EAAE,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM;IAKjE,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM;IAI9B,IAAI,QAAQ,WAEX;IAED,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACpC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAE/B,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;CA6C7C"}
@@ -30,9 +30,12 @@ const utf8 = new TextDecoder();
30
30
  class CommandPipe {
31
31
  #filename;
32
32
  #subject;
33
- constructor(subject, appName) {
33
+ constructor(subject, filename) {
34
34
  this.#subject = subject;
35
- this.#filename = `/tmp/chip_${appName}_fifo_${process.pid}`;
35
+ this.#filename = filename;
36
+ }
37
+ static filenameFor(app) {
38
+ return `/tmp/chip_${app}_fifo_${process.pid}`;
36
39
  }
37
40
  get filename() {
38
41
  return this.#filename;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/chip/command-pipe.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,MAAM,OAAO,IAAI,YAAY;AAOtB,MAAe,YAAY;AAAA,EAC9B;AAAA,EACA;AAAA,EAEA,YAAY,SAAqC,SAAiB;AAC9D,SAAK,WAAW;AAChB,SAAK,YAAY,aAAa,OAAO,SAAS,QAAQ,GAAG;AAAA,EAC7D;AAAA,EAEA,IAAI,WAAW;AACX,WAAO,KAAK;AAAA,EAChB;AAAA,EAKU,OAAO,MAA2B;AACxC,QAAI,OAAO,SAAS,UAAU;AAC1B,aAAO,KAAK,OAAO,IAAI;AAAA,IAC3B;AAEA,QAAI;AACJ,QAAI;AACA,aAAO,KAAK,MAAM,IAAI;AAAA,IAC1B,SAAS,OAAO;AACZ,cAAQ,MAAM,+BAA+B,KAAK;AAClD;AAAA,IACJ;AAEA,QAAI,OAAO,SAAS,YAAY,SAAS,MAAM;AAC3C,cAAQ,MAAM,kCAAkC,IAAI;AACpD;AAAA,IACJ;AAEA,QAAI,OAAO,KAAK,SAAS,UAAU;AAC/B,cAAQ,MAAM,sCAAsC,IAAI;AACxD;AAAA,IACJ;AAEA,SAAK,OAAO,KAAK,KAAK,MAAM,GAAG,CAAC,EAAE,YAAY,IAAI,KAAK,KAAK,MAAM,CAAC;AAEnE,WAAO,OAAO;AAAA,MACV,OAAO,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM;AACjC,YAAI,EAAE,MAAM,GAAG,CAAC,EAAE,YAAY,IAAI,EAAE,MAAM,CAAC;AAC3C,eAAO,CAAC,GAAG,CAAC;AAAA,MAChB,CAAC;AAAA,IACL;AAEA,QAAI;AACA,YAAM,SAAS,KAAK,SAAS,YAAY,IAA0B;AACnE,UAAI,QAAQ;AACR,eAAO,MAAM,aAAa;AAAA,MAC9B;AAAA,IACJ,SAAS,OAAO;AACZ,oBAAc,KAAK;AAAA,IACvB;AAEA,aAAS,cAAc,OAAgB;AACnC,cAAQ,MAAM,6CAA6C,KAAK;AAAA,IACpE;AAAA,EACJ;AACJ;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,MAAM,OAAO,IAAI,YAAY;AAOtB,MAAe,YAAY;AAAA,EAC9B;AAAA,EACA;AAAA,EAEA,YAAY,SAAqC,UAAkB;AAC/D,SAAK,WAAW;AAChB,SAAK,YAAY;AAAA,EACrB;AAAA,EAEA,OAAO,YAAY,KAAa;AAC5B,WAAO,aAAa,GAAG,SAAS,QAAQ,GAAG;AAAA,EAC/C;AAAA,EAEA,IAAI,WAAW;AACX,WAAO,KAAK;AAAA,EAChB;AAAA,EAKU,OAAO,MAA2B;AACxC,QAAI,OAAO,SAAS,UAAU;AAC1B,aAAO,KAAK,OAAO,IAAI;AAAA,IAC3B;AAEA,QAAI;AACJ,QAAI;AACA,aAAO,KAAK,MAAM,IAAI;AAAA,IAC1B,SAAS,OAAO;AACZ,cAAQ,MAAM,+BAA+B,KAAK;AAClD;AAAA,IACJ;AAEA,QAAI,OAAO,SAAS,YAAY,SAAS,MAAM;AAC3C,cAAQ,MAAM,kCAAkC,IAAI;AACpD;AAAA,IACJ;AAEA,QAAI,OAAO,KAAK,SAAS,UAAU;AAC/B,cAAQ,MAAM,sCAAsC,IAAI;AACxD;AAAA,IACJ;AAEA,SAAK,OAAO,KAAK,KAAK,MAAM,GAAG,CAAC,EAAE,YAAY,IAAI,KAAK,KAAK,MAAM,CAAC;AAEnE,WAAO,OAAO;AAAA,MACV,OAAO,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM;AACjC,YAAI,EAAE,MAAM,GAAG,CAAC,EAAE,YAAY,IAAI,EAAE,MAAM,CAAC;AAC3C,eAAO,CAAC,GAAG,CAAC;AAAA,MAChB,CAAC;AAAA,IACL;AAEA,QAAI;AACA,YAAM,SAAS,KAAK,SAAS,YAAY,IAA0B;AACnE,UAAI,QAAQ;AACR,eAAO,MAAM,aAAa;AAAA,MAC9B;AAAA,IACJ,SAAS,OAAO;AACZ,oBAAc,KAAK;AAAA,IACvB;AAEA,aAAS,cAAc,OAAgB;AACnC,cAAQ,MAAM,6CAA6C,KAAK;AAAA,IACpE;AAAA,EACJ;AACJ;",
5
5
  "names": []
6
6
  }
@@ -3,6 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { PicsSource } from "./pics/source.js";
6
7
  /**
7
8
  * Significant locations within the test container.
8
9
  *
@@ -14,7 +15,6 @@ export declare namespace ContainerPaths {
14
15
  const descriptorFile = "/lib/test-descriptor.json";
15
16
  const pythonCommissioner = "/src/python_testing/hello_test.py";
16
17
  const chipPics = "/src/app/tests/suites/certification/ci-pics-values";
17
- const matterJsPics = "/matter-js-pics.properties";
18
18
  const accessoryClient = "/scripts/py_matter_yamltests/matter_yamltests/pseudo_clusters/clusters/accessory_server_bridge.py";
19
19
  }
20
20
  export type ContainerPathsType = typeof ContainerPaths;
@@ -45,7 +45,6 @@ export declare namespace Constants {
45
45
  const mdnsVolumeName: string;
46
46
  const initTimeout = 60000;
47
47
  const defaultTimeoutMs = 60000;
48
- const localPicsOverrideFile = "src/chip/matter-js-pics.properties";
49
48
  /**
50
49
  * Default arguments provided to the YAML runner.
51
50
  */
@@ -54,5 +53,6 @@ export declare namespace Constants {
54
53
  * Default arguments provided to the Python runner.
55
54
  */
56
55
  const PythonRunnerArgs: string[];
56
+ const defaultPics: PicsSource;
57
57
  }
58
58
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/chip/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;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,YAAY,+BAA+B,CAAC;IAClD,MAAM,eAAe,sGAC2E,CAAC;CAC3G;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;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,WAAW,QAAS,CAAC;IAC3B,MAAM,gBAAgB,QAAS,CAAC;IAEhC,MAAM,qBAAqB,uCAAuC,CAAC;IAc1E;;OAEG;IACI,MAAM,cAAc,UAc1B,CAAC;IAEF;;OAEG;IACI,MAAM,gBAAgB,UAQ5B,CAAC;CACL"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/chip/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,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,sGAC2E,CAAC;CAC3G;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;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,WAAW,QAAS,CAAC;IAC3B,MAAM,gBAAgB,QAAS,CAAC;IAcvC;;OAEG;IACI,MAAM,cAAc,UAW1B,CAAC;IAEF;;OAEG;IACI,MAAM,gBAAgB,UAK5B,CAAC;IAEK,MAAM,WAAW,EAAE,UAMzB,CAAC;CACL"}
@@ -34,7 +34,6 @@ var ContainerPaths;
34
34
  ContainerPaths2.descriptorFile = `/lib/test-descriptor.json`;
35
35
  ContainerPaths2.pythonCommissioner = `/src/python_testing/hello_test.py`;
36
36
  ContainerPaths2.chipPics = "/src/app/tests/suites/certification/ci-pics-values";
37
- ContainerPaths2.matterJsPics = "/matter-js-pics.properties";
38
37
  ContainerPaths2.accessoryClient = "/scripts/py_matter_yamltests/matter_yamltests/pseudo_clusters/clusters/accessory_server_bridge.py";
39
38
  })(ContainerPaths || (ContainerPaths = {}));
40
39
  var Constants;
@@ -46,12 +45,9 @@ var Constants;
46
45
  Constants2.mdnsVolumeName = import_node_process.env.MATTER_MDNS_VOLUME || "matter.js-mdns";
47
46
  Constants2.initTimeout = 6e4;
48
47
  Constants2.defaultTimeoutMs = 6e4;
49
- Constants2.localPicsOverrideFile = "src/chip/matter-js-pics.properties";
50
48
  const subjectCommissioningTimeoutS = 3;
51
49
  const delayAfterOpeningCommissioningWindowMs = 500;
52
50
  Constants2.YamlRunnerArgs = [
53
- "--PICS",
54
- ContainerPaths.matterJsPics,
55
51
  // This makes CHIP logs unconditional which would be nice if it intermingled with our logs but currently they
56
52
  // only appear once test is run; haven't tracked down how to stream them yet
57
53
  // "--show_adapter_logs",
@@ -62,12 +58,17 @@ var Constants;
62
58
  `${delayAfterOpeningCommissioningWindowMs}`
63
59
  ];
64
60
  Constants2.PythonRunnerArgs = [
65
- "--PICS",
66
- ContainerPaths.matterJsPics,
67
61
  // Our PID is meaningless within the container but Python uses in the name of the command pipe. We pass in our
68
62
  // actual PID to ensure no collision if multiple instances run
69
63
  "--app-pid",
70
64
  process.pid.toString()
71
65
  ];
66
+ Constants2.defaultPics = {
67
+ kind: "composite",
68
+ sources: [
69
+ { kind: "chip", name: ContainerPaths.chipPics },
70
+ { kind: "file", name: "src/chip/matter-js-pics.properties" }
71
+ ]
72
+ };
72
73
  })(Constants || (Constants = {}));
73
74
  //# sourceMappingURL=config.js.map
@@ -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;AANpB;AAAA;AAAA;AAAA;AAAA;AAcO,IAAU;AAAA,CAAV,CAAUA,oBAAV;AACI,EAAMA,gBAAA,aAAa;AACnB,EAAMA,gBAAA,iBAAiB;AACvB,EAAMA,gBAAA,qBAAqB;AAC3B,EAAMA,gBAAA,WAAW;AACjB,EAAMA,gBAAA,eAAe;AACrB,EAAMA,gBAAA,kBACT;AAAA,GAPS;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,cAAc;AACpB,EAAMA,WAAA,mBAAmB;AAEzB,EAAMA,WAAA,wBAAwB;AAMrC,QAAM,+BAA+B;AAMrC,QAAM,yCAAyC;AAKxC,EAAMA,WAAA,iBAAiB;AAAA,IAC1B;AAAA,IACA,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,IAOf;AAAA,IACA,GAAG,4BAA4B;AAAA,IAE/B;AAAA,IACA,GAAG,sCAAsC;AAAA,EAC7C;AAKO,EAAMA,WAAA,mBAAmB;AAAA,IAC5B;AAAA,IACA,eAAe;AAAA;AAAA;AAAA,IAIf;AAAA,IACA,QAAQ,IAAI,SAAS;AAAA,EACzB;AAAA,GAjEa;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,0BAAoB;AANpB;AAAA;AAAA;AAAA;AAAA;AAeO,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;AAAA,GANS;AAsBV,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,cAAc;AACpB,EAAMA,WAAA,mBAAmB;AAMhC,QAAM,+BAA+B;AAMrC,QAAM,yCAAyC;AAKxC,EAAMA,WAAA,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,IAM1B;AAAA,IACA,GAAG,4BAA4B;AAAA,IAE/B;AAAA,IACA,GAAG,sCAAsC;AAAA,EAC7C;AAKO,EAAMA,WAAA,mBAAmB;AAAA;AAAA;AAAA,IAG5B;AAAA,IACA,QAAQ,IAAI,SAAS;AAAA,EACzB;AAEO,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,GAjEa;",
5
5
  "names": ["ContainerPaths", "Constants"]
6
6
  }
@@ -11,8 +11,9 @@ import { CommandPipe } from "./command-pipe.js";
11
11
  */
12
12
  export declare class ContainerCommandPipe extends CommandPipe {
13
13
  #private;
14
- constructor(container: Container, subject: BackchannelCommand.Subject, appName: string);
14
+ constructor(container: Container, subject: BackchannelCommand.Subject);
15
15
  initialize(): Promise<void>;
16
+ installForApp(name: string): Promise<void>;
16
17
  close(): Promise<void>;
17
18
  }
18
19
  //# sourceMappingURL=container-command-pipe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"container-command-pipe.d.ts","sourceRoot":"","sources":["../../../src/chip/container-command-pipe.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;;gBAKrC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM;IAKvE,UAAU;IAUV,KAAK;CAoDvB"}
1
+ {"version":3,"file":"container-command-pipe.d.ts","sourceRoot":"","sources":["../../../src/chip/container-command-pipe.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;;gBAKrC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,CAAC,OAAO;IAKtD,UAAU;IAOnB,aAAa,CAAC,IAAI,EAAE,MAAM;IAIjB,KAAK;CAiDvB"}
@@ -21,6 +21,7 @@ __export(container_command_pipe_exports, {
21
21
  ContainerCommandPipe: () => ContainerCommandPipe
22
22
  });
23
23
  module.exports = __toCommonJS(container_command_pipe_exports);
24
+ var import_terminal = require("../docker/terminal.js");
24
25
  var import_command_pipe = require("./command-pipe.js");
25
26
  /**
26
27
  * @license
@@ -32,15 +33,17 @@ class ContainerCommandPipe extends import_command_pipe.CommandPipe {
32
33
  #container;
33
34
  #deactivate;
34
35
  #stopped;
35
- constructor(container, subject, appName) {
36
- super(subject, appName);
36
+ constructor(container, subject) {
37
+ super(subject, "/command-pipe.fifo");
37
38
  this.#container = container;
38
39
  }
39
40
  async initialize() {
40
41
  await this.#container.createPipe(FIFO_PATH);
41
- await this.#container.exec(["ln", "-sf", "/command-pipe.fifo", this.filename]);
42
42
  this.#stopped = this.#processCommands();
43
43
  }
44
+ async installForApp(name) {
45
+ await this.#container.exec(["ln", "-sf", this.filename, ContainerCommandPipe.filenameFor(name)]);
46
+ }
44
47
  async close() {
45
48
  this.#deactivate?.();
46
49
  this.#deactivate = void 0;
@@ -48,34 +51,33 @@ class ContainerCommandPipe extends import_command_pipe.CommandPipe {
48
51
  this.#stopped = void 0;
49
52
  }
50
53
  async #processCommands() {
51
- let terminal;
54
+ let commands;
52
55
  try {
53
- terminal = await this.#container.follow(FIFO_PATH);
54
- const iterator = terminal[Symbol.asyncIterator]();
56
+ commands = await this.#container.exec(
57
+ ["bash", "-c", `while true; do cat ${FIFO_PATH}; done`],
58
+ import_terminal.Terminal.StdoutLine
59
+ );
60
+ const deactivated = new Promise((resolve) => {
61
+ this.#deactivate = resolve;
62
+ });
63
+ const iterator = commands[Symbol.asyncIterator]();
55
64
  while (true) {
56
- let deactivator;
57
- const deactivated = new Promise((resolve) => {
58
- deactivator = this.#deactivate = resolve;
59
- });
60
- const iteration = iterator.next().then((result) => result.value);
61
- try {
62
- const line = await Promise.race([deactivated, iteration]);
63
- if (line === void 0) {
64
- break;
65
- }
66
- this.onData(line);
67
- } finally {
68
- if (this.#deactivate === deactivator) {
69
- this.#deactivate = void 0;
70
- }
65
+ const command = await Promise.race([
66
+ deactivated,
67
+ iterator.next().then((result) => result.value)
68
+ ]);
69
+ if (command === void 0) {
70
+ break;
71
71
  }
72
+ this.onData(command);
72
73
  }
74
+ await deactivated;
73
75
  } finally {
74
- if (terminal) {
76
+ if (commands) {
75
77
  try {
76
- await terminal.close();
78
+ await commands.close();
77
79
  } catch (e) {
78
- console.warn(`Error closing FIFO listener for ${this.filename}:`, e);
80
+ console.warn(`Error closing command proxy for ${this.filename}:`, e);
79
81
  }
80
82
  }
81
83
  try {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/chip/container-command-pipe.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,0BAA4B;AAT5B;AAAA;AAAA;AAAA;AAAA;AAWA,MAAM,YAAY;AAKX,MAAM,6BAA6B,gCAAY;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,WAAsB,SAAqC,SAAiB;AACpF,UAAM,SAAS,OAAO;AACtB,SAAK,aAAa;AAAA,EACtB;AAAA,EAEA,MAAe,aAAa;AAIxB,UAAM,KAAK,WAAW,WAAW,SAAS;AAC1C,UAAM,KAAK,WAAW,KAAK,CAAC,MAAM,OAAO,sBAAsB,KAAK,QAAQ,CAAC;AAE7E,SAAK,WAAW,KAAK,iBAAiB;AAAA,EAC1C;AAAA,EAEA,MAAe,QAAQ;AACnB,SAAK,cAAc;AACnB,SAAK,cAAc;AAEnB,UAAM,KAAK;AACX,SAAK,WAAW;AAAA,EACpB;AAAA,EAEA,MAAM,mBAAmB;AACrB,QAAI;AACJ,QAAI;AACA,iBAAW,MAAM,KAAK,WAAW,OAAO,SAAS;AAEjD,YAAM,WAAW,SAAS,OAAO,aAAa,EAAE;AAEhD,aAAO,MAAM;AACT,YAAI;AACJ,cAAM,cAAc,IAAI,QAAc,aAAW;AAC7C,wBAAc,KAAK,cAAc;AAAA,QACrC,CAAC;AAED,cAAM,YAAY,SAAS,KAAK,EAAE,KAAK,YAAU,OAAO,KAA2B;AAEnF,YAAI;AACA,gBAAM,OAAO,MAAM,QAAQ,KAAK,CAAC,aAAa,SAAS,CAAC;AACxD,cAAI,SAAS,QAAW;AACpB;AAAA,UACJ;AAEA,eAAK,OAAO,IAAI;AAAA,QACpB,UAAE;AACE,cAAI,KAAK,gBAAgB,aAAa;AAClC,iBAAK,cAAc;AAAA,UACvB;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ,UAAE;AACE,UAAI,UAAU;AACV,YAAI;AACA,gBAAM,SAAS,MAAM;AAAA,QACzB,SAAS,GAAG;AACR,kBAAQ,KAAK,mCAAmC,KAAK,QAAQ,KAAK,CAAC;AAAA,QACvE;AAAA,MACJ;AAEA,UAAI;AACA,cAAM,KAAK,WAAW,OAAO,KAAK,UAAU,EAAE,OAAO,KAAK,CAAC;AAAA,MAC/D,SAAS,GAAG;AACR,gBAAQ,KAAK,uBAAuB,KAAK,QAAQ,KAAK,CAAC;AAAA,MAC3D;AAAA,IACJ;AAAA,EACJ;AACJ;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,sBAAyB;AACzB,0BAA4B;AAT5B;AAAA;AAAA;AAAA;AAAA;AAWA,MAAM,YAAY;AAKX,MAAM,6BAA6B,gCAAY;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,WAAsB,SAAqC;AACnE,UAAM,SAAS,oBAAoB;AACnC,SAAK,aAAa;AAAA,EACtB;AAAA,EAEA,MAAe,aAAa;AAExB,UAAM,KAAK,WAAW,WAAW,SAAS;AAE1C,SAAK,WAAW,KAAK,iBAAiB;AAAA,EAC1C;AAAA,EAEA,MAAM,cAAc,MAAc;AAC9B,UAAM,KAAK,WAAW,KAAK,CAAC,MAAM,OAAO,KAAK,UAAU,qBAAqB,YAAY,IAAI,CAAC,CAAC;AAAA,EACnG;AAAA,EAEA,MAAe,QAAQ;AACnB,SAAK,cAAc;AACnB,SAAK,cAAc;AAEnB,UAAM,KAAK;AACX,SAAK,WAAW;AAAA,EACpB;AAAA,EAEA,MAAM,mBAAmB;AACrB,QAAI;AACJ,QAAI;AACA,iBAAW,MAAM,KAAK,WAAW;AAAA,QAC7B,CAAC,QAAQ,MAAM,sBAAsB,SAAS,QAAQ;AAAA,QACtD,yBAAS;AAAA,MACb;AAEA,YAAM,cAAc,IAAI,QAAc,aAAW;AAC7C,aAAK,cAAc;AAAA,MACvB,CAAC;AAED,YAAM,WAAW,SAAS,OAAO,aAAa,EAAE;AAEhD,aAAO,MAAM;AACT,cAAM,UAAU,MAAM,QAAQ,KAAK;AAAA,UAC/B;AAAA,UACA,SAAS,KAAK,EAAE,KAAK,YAAU,OAAO,KAAe;AAAA,QACzD,CAAC;AACD,YAAI,YAAY,QAAW;AACvB;AAAA,QACJ;AACA,aAAK,OAAO,OAAO;AAAA,MACvB;AACA,YAAM;AAAA,IACV,UAAE;AACE,UAAI,UAAU;AACV,YAAI;AACA,gBAAM,SAAS,MAAM;AAAA,QACzB,SAAS,GAAG;AACR,kBAAQ,KAAK,mCAAmC,KAAK,QAAQ,KAAK,CAAC;AAAA,QACvE;AAAA,MACJ;AAEA,UAAI;AACA,cAAM,KAAK,WAAW,OAAO,KAAK,UAAU,EAAE,OAAO,KAAK,CAAC;AAAA,MAC/D,SAAS,GAAG;AACR,gBAAQ,KAAK,uBAAuB,KAAK,QAAQ,KAAK,CAAC;AAAA,MAC3D;AAAA,IACJ;AAAA,EACJ;AACJ;",
5
5
  "names": []
6
6
  }
@@ -5,5 +5,5 @@
5
5
  */
6
6
  export * from "./chip.js";
7
7
  export * from "./command-pipe.js";
8
- export * from "./pics-expression.js";
8
+ export * from "./pics/index.js";
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -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,sBAAsB,CAAC"}
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"}
@@ -17,7 +17,7 @@ var chip_exports = {};
17
17
  module.exports = __toCommonJS(chip_exports);
18
18
  __reExport(chip_exports, require("./chip.js"), module.exports);
19
19
  __reExport(chip_exports, require("./command-pipe.js"), module.exports);
20
- __reExport(chip_exports, require("./pics-expression.js"), module.exports);
20
+ __reExport(chip_exports, require("./pics/index.js"), module.exports);
21
21
  /**
22
22
  * @license
23
23
  * Copyright 2022-2025 Matter.js Authors
@@ -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,iCARd;AAAA;AAAA;AAAA;AAAA;AAAA;",
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,yBAAc,sBANd;AAOA,yBAAc,8BAPd;AAQA,yBAAc,4BARd;AAAA;AAAA;AAAA;AAAA;AAAA;",
5
5
  "names": []
6
6
  }
@@ -3,7 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { PicsFile } from "./pics-file.js";
6
+ import { PicsFile } from "./file.js";
7
7
  /**
8
8
  * A set of PICS specifiers, each of which must be true for the set to apply.
9
9
  */
@@ -26,4 +26,4 @@ type Token = {
26
26
  kind: SymbolName;
27
27
  } | Name;
28
28
  export {};
29
- //# sourceMappingURL=pics-expression.d.ts.map
29
+ //# sourceMappingURL=expression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../../src/chip/pics/expression.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC;;GAEG;AACH,qBAAa,cAAc;;gBAIX,UAAU,EAAE,MAAM;IAK9B,QAAQ,CAAC,IAAI,EAAE,QAAQ;IAIvB,QAAQ;CAGX;AAED,UAAU,IAAI;IACV,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAeD,qBAAa,0BAA2B,SAAQ,KAAK;gBACrC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAShD;AAiED,QAAA,MAAM,OAAO,oCAAqC,CAAC;AACnD,KAAK,UAAU,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3C,KAAK,KAAK,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG,IAAI,CAAC"}
@@ -16,12 +16,12 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var pics_expression_exports = {};
20
- __export(pics_expression_exports, {
19
+ var expression_exports = {};
20
+ __export(expression_exports, {
21
21
  InvalidPicsExpressionError: () => InvalidPicsExpressionError,
22
22
  PicsExpression: () => PicsExpression
23
23
  });
24
- module.exports = __toCommonJS(pics_expression_exports);
24
+ module.exports = __toCommonJS(expression_exports);
25
25
  /**
26
26
  * @license
27
27
  * Copyright 2022-2025 Matter.js Authors
@@ -96,7 +96,7 @@ function parse(definition) {
96
96
  }
97
97
  }
98
98
  const result = parseExpr();
99
- if (tokenizer2.peek() !== void 0) {
99
+ if (tokenizer2.peek() !== void 0 && tokenizer2.peek()?.kind !== "(") {
100
100
  throw new InvalidPicsExpressionError(definition, tokenizer2.peek());
101
101
  }
102
102
  return result;
@@ -156,7 +156,7 @@ function test(ast, file) {
156
156
  case "!":
157
157
  return !test(ast.operand, file);
158
158
  case "name":
159
- return file.values[ast.name] === "1";
159
+ return file.values[ast.name] === 1;
160
160
  case "&":
161
161
  return test(ast.lhs, file) && test(ast.rhs, file);
162
162
  case "|":
@@ -165,4 +165,4 @@ function test(ast, file) {
165
165
  throw new Error(`Internal error: Invalid PICS AST kind "${ast.kind}"`);
166
166
  }
167
167
  }
168
- //# sourceMappingURL=pics-expression.js.map
168
+ //# sourceMappingURL=expression.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/chip/pics/expression.ts"],
4
+ "mappings": "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",
5
+ "names": ["tokenizer", "result"]
6
+ }
@@ -3,8 +3,9 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { PicsValues } from "./values.js";
6
7
  /**
7
- * Manages Matter PICS files.
8
+ * In-memory Matter PICS file.
8
9
  *
9
10
  * Supports extended syntax for defining ranges of values of the form "NAMExx..yy=*" where xx and yy are hexadecimal
10
11
  * numbers specifying the start and end of a range (inclusive). These are expanded in {@link patch} which modifies the
@@ -15,11 +16,15 @@
15
16
  */
16
17
  export declare class PicsFile {
17
18
  #private;
18
- constructor(pathOrBody: string, inline?: boolean);
19
+ constructor(lines?: string | string[]);
19
20
  get lines(): string[];
20
- get values(): Record<string, string>;
21
+ get values(): PicsValues;
21
22
  toString(): string;
22
23
  patch(other: PicsFile): void;
23
- save(path: string): void;
24
24
  }
25
- //# sourceMappingURL=pics-file.d.ts.map
25
+ export declare namespace PicsFile {
26
+ interface Values {
27
+ [key: string]: 0 | 1;
28
+ }
29
+ }
30
+ //# sourceMappingURL=file.d.ts.map
@@ -0,0 +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;;gBAIL,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAQrC,IAAI,KAAK,aAER;IAED,IAAI,MAAM,eAST;IAED,QAAQ;IAIR,KAAK,CAAC,KAAK,EAAE,QAAQ;CA6BxB;AAED,yBAAiB,QAAQ,CAAC;IACtB,UAAiB,MAAM;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;KACxB;CACJ"}
@@ -16,12 +16,11 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var pics_file_exports = {};
20
- __export(pics_file_exports, {
19
+ var file_exports = {};
20
+ __export(file_exports, {
21
21
  PicsFile: () => PicsFile
22
22
  });
23
- module.exports = __toCommonJS(pics_file_exports);
24
- var import_node_fs = require("node:fs");
23
+ module.exports = __toCommonJS(file_exports);
25
24
  /**
26
25
  * @license
27
26
  * Copyright 2022-2025 Matter.js Authors
@@ -30,11 +29,12 @@ var import_node_fs = require("node:fs");
30
29
  class PicsFile {
31
30
  #lines;
32
31
  #values;
33
- constructor(pathOrBody, inline = false) {
34
- if (inline === false) {
35
- pathOrBody = (0, import_node_fs.readFileSync)(pathOrBody, "utf-8");
32
+ constructor(lines) {
33
+ if (typeof lines === "string") {
34
+ this.#lines = lines.split("\n").map((l) => l.trim());
35
+ } else {
36
+ this.#lines = lines ?? [];
36
37
  }
37
- this.#lines = pathOrBody.split("\n").map((l) => l.trim());
38
38
  }
39
39
  get lines() {
40
40
  return this.#lines;
@@ -77,9 +77,6 @@ class PicsFile {
77
77
  this.#values = void 0;
78
78
  this.#lines = newLines;
79
79
  }
80
- save(path) {
81
- (0, import_node_fs.writeFileSync)(path, this.toString());
82
- }
83
80
  }
84
81
  function parseLine(line, values) {
85
82
  line = line.trim();
@@ -90,7 +87,18 @@ function parseLine(line, values) {
90
87
  if (!valueMatch) {
91
88
  return false;
92
89
  }
93
- const [, key, value] = valueMatch;
90
+ const [, key, valueStr] = valueMatch;
91
+ let value;
92
+ switch (valueStr) {
93
+ case "0":
94
+ value = 0;
95
+ break;
96
+ case "1":
97
+ value = 1;
98
+ break;
99
+ default:
100
+ return false;
101
+ }
94
102
  const rangeMatch = key.match(/^(\S+)\.\.([\da-f]+)$/i);
95
103
  if (!rangeMatch) {
96
104
  values[key] = value;
@@ -115,4 +123,4 @@ function parseLine(line, values) {
115
123
  }
116
124
  return true;
117
125
  }
118
- //# sourceMappingURL=pics-file.js.map
126
+ //# sourceMappingURL=file.js.map