doc-detective 4.38.0 → 4.41.4

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 (234) hide show
  1. package/README.md +4 -4
  2. package/dist/agents/adapters/claude-code.d.ts.map +1 -1
  3. package/dist/agents/adapters/claude-code.js +1 -2
  4. package/dist/agents/adapters/claude-code.js.map +1 -1
  5. package/dist/agents/adapters/codex.d.ts.map +1 -1
  6. package/dist/agents/adapters/codex.js +3 -4
  7. package/dist/agents/adapters/codex.js.map +1 -1
  8. package/dist/agents/adapters/copilot-cli.d.ts.map +1 -1
  9. package/dist/agents/adapters/copilot-cli.js +1 -2
  10. package/dist/agents/adapters/copilot-cli.js.map +1 -1
  11. package/dist/agents/adapters/gemini-cli.d.ts.map +1 -1
  12. package/dist/agents/adapters/gemini-cli.js +1 -2
  13. package/dist/agents/adapters/gemini-cli.js.map +1 -1
  14. package/dist/agents/adapters/opencode.d.ts.map +1 -1
  15. package/dist/agents/adapters/opencode.js +1 -2
  16. package/dist/agents/adapters/opencode.js.map +1 -1
  17. package/dist/agents/adapters/qwen-code.d.ts.map +1 -1
  18. package/dist/agents/adapters/qwen-code.js +1 -2
  19. package/dist/agents/adapters/qwen-code.js.map +1 -1
  20. package/dist/agents/fetcher.d.ts.map +1 -1
  21. package/dist/agents/fetcher.js +1 -2
  22. package/dist/agents/fetcher.js.map +1 -1
  23. package/dist/common/src/ajv.d.ts +30 -0
  24. package/dist/common/src/ajv.d.ts.map +1 -0
  25. package/dist/common/src/ajv.js +131 -0
  26. package/dist/common/src/ajv.js.map +1 -0
  27. package/dist/common/src/detectTests.d.ts +2 -18
  28. package/dist/common/src/detectTests.d.ts.map +1 -1
  29. package/dist/common/src/detectTests.js +8 -77
  30. package/dist/common/src/detectTests.js.map +1 -1
  31. package/dist/common/src/schemas/referenced.d.ts +12 -0
  32. package/dist/common/src/schemas/referenced.d.ts.map +1 -0
  33. package/dist/common/src/schemas/referenced.js +10 -0
  34. package/dist/common/src/schemas/referenced.js.map +1 -0
  35. package/dist/common/src/schemas/schemas.json +2 -2
  36. package/dist/common/src/schemas/schemasReferenced.json +14871 -0
  37. package/dist/common/src/schemas/validators.cjs +509 -0
  38. package/dist/common/src/schemas/validatorsCheck.cjs +2 -0
  39. package/dist/common/src/textUtils.d.ts +25 -0
  40. package/dist/common/src/textUtils.d.ts.map +1 -0
  41. package/dist/common/src/textUtils.js +84 -0
  42. package/dist/common/src/textUtils.js.map +1 -0
  43. package/dist/common/src/types/generated/annotate_v3.d.ts.map +1 -1
  44. package/dist/common/src/types/generated/annotation_v3.d.ts.map +1 -1
  45. package/dist/common/src/types/generated/click_v3.d.ts +153 -0
  46. package/dist/common/src/types/generated/click_v3.d.ts.map +1 -1
  47. package/dist/common/src/types/generated/config_v3.d.ts +13753 -207
  48. package/dist/common/src/types/generated/config_v3.d.ts.map +1 -1
  49. package/dist/common/src/types/generated/dragAndDrop_v3.d.ts +72 -0
  50. package/dist/common/src/types/generated/dragAndDrop_v3.d.ts.map +1 -1
  51. package/dist/common/src/types/generated/find_v3.d.ts +632 -0
  52. package/dist/common/src/types/generated/find_v3.d.ts.map +1 -1
  53. package/dist/common/src/types/generated/goTo_v3.d.ts +31 -0
  54. package/dist/common/src/types/generated/goTo_v3.d.ts.map +1 -1
  55. package/dist/common/src/types/generated/httpRequest_v3.d.ts +181 -0
  56. package/dist/common/src/types/generated/httpRequest_v3.d.ts.map +1 -1
  57. package/dist/common/src/types/generated/loadCookie_v3.d.ts +30 -0
  58. package/dist/common/src/types/generated/loadCookie_v3.d.ts.map +1 -1
  59. package/dist/common/src/types/generated/report_v3.d.ts +28234 -321
  60. package/dist/common/src/types/generated/report_v3.d.ts.map +1 -1
  61. package/dist/common/src/types/generated/resolvedTests_v3.d.ts +42281 -822
  62. package/dist/common/src/types/generated/resolvedTests_v3.d.ts.map +1 -1
  63. package/dist/common/src/types/generated/saveCookie_v3.d.ts +35 -0
  64. package/dist/common/src/types/generated/saveCookie_v3.d.ts.map +1 -1
  65. package/dist/common/src/types/generated/screenshot_v3.d.ts +45 -0
  66. package/dist/common/src/types/generated/screenshot_v3.d.ts.map +1 -1
  67. package/dist/common/src/types/generated/spec_v3.d.ts +28188 -275
  68. package/dist/common/src/types/generated/spec_v3.d.ts.map +1 -1
  69. package/dist/common/src/types/generated/startSurface_v3.d.ts +63 -1
  70. package/dist/common/src/types/generated/startSurface_v3.d.ts.map +1 -1
  71. package/dist/common/src/types/generated/step_v3.d.ts +5186 -523
  72. package/dist/common/src/types/generated/step_v3.d.ts.map +1 -1
  73. package/dist/common/src/types/generated/test_v3.d.ts +13268 -3582
  74. package/dist/common/src/types/generated/test_v3.d.ts.map +1 -1
  75. package/dist/common/src/types/generated/type_v3.d.ts +62 -0
  76. package/dist/common/src/types/generated/type_v3.d.ts.map +1 -1
  77. package/dist/common/src/types/generated/waitUntil_v3.d.ts +62 -0
  78. package/dist/common/src/types/generated/waitUntil_v3.d.ts.map +1 -1
  79. package/dist/common/src/validate.d.ts +1 -1
  80. package/dist/common/src/validate.d.ts.map +1 -1
  81. package/dist/common/src/validate.js +29 -75
  82. package/dist/common/src/validate.js.map +1 -1
  83. package/dist/core/appium.d.ts +3 -2
  84. package/dist/core/appium.d.ts.map +1 -1
  85. package/dist/core/appium.js +63 -89
  86. package/dist/core/appium.js.map +1 -1
  87. package/dist/core/appiumReuse.d.ts +43 -0
  88. package/dist/core/appiumReuse.d.ts.map +1 -0
  89. package/dist/core/appiumReuse.js +226 -0
  90. package/dist/core/appiumReuse.js.map +1 -0
  91. package/dist/core/config.d.ts +10 -2
  92. package/dist/core/config.d.ts.map +1 -1
  93. package/dist/core/config.js +37 -7
  94. package/dist/core/config.js.map +1 -1
  95. package/dist/core/detectTests.d.ts.map +1 -1
  96. package/dist/core/detectTests.js +51 -17
  97. package/dist/core/detectTests.js.map +1 -1
  98. package/dist/core/files.d.ts.map +1 -1
  99. package/dist/core/files.js +3 -4
  100. package/dist/core/files.js.map +1 -1
  101. package/dist/core/index.d.ts +2 -2
  102. package/dist/core/index.d.ts.map +1 -1
  103. package/dist/core/index.js +132 -21
  104. package/dist/core/index.js.map +1 -1
  105. package/dist/core/integrations/heretto.d.ts +1 -1
  106. package/dist/core/integrations/heretto.d.ts.map +1 -1
  107. package/dist/core/integrations/heretto.js +7 -6
  108. package/dist/core/integrations/heretto.js.map +1 -1
  109. package/dist/core/lazyYaml.d.ts +2 -0
  110. package/dist/core/lazyYaml.d.ts.map +1 -0
  111. package/dist/core/lazyYaml.js +13 -0
  112. package/dist/core/lazyYaml.js.map +1 -0
  113. package/dist/core/resolveTests.js +1 -1
  114. package/dist/core/resolveTests.js.map +1 -1
  115. package/dist/core/telem.d.ts +1 -1
  116. package/dist/core/telem.d.ts.map +1 -1
  117. package/dist/core/telem.js +2 -11
  118. package/dist/core/telem.js.map +1 -1
  119. package/dist/core/telemLite.d.ts +10 -0
  120. package/dist/core/telemLite.d.ts.map +1 -0
  121. package/dist/core/telemLite.js +101 -0
  122. package/dist/core/telemLite.js.map +1 -0
  123. package/dist/core/tests/androidEmulator.d.ts +67 -4
  124. package/dist/core/tests/androidEmulator.d.ts.map +1 -1
  125. package/dist/core/tests/androidEmulator.js +366 -37
  126. package/dist/core/tests/androidEmulator.js.map +1 -1
  127. package/dist/core/tests/appSurface.d.ts +25 -6
  128. package/dist/core/tests/appSurface.d.ts.map +1 -1
  129. package/dist/core/tests/appSurface.js +88 -52
  130. package/dist/core/tests/appSurface.js.map +1 -1
  131. package/dist/core/tests/browserSessions.d.ts +2 -1
  132. package/dist/core/tests/browserSessions.d.ts.map +1 -1
  133. package/dist/core/tests/browserSessions.js +7 -1
  134. package/dist/core/tests/browserSessions.js.map +1 -1
  135. package/dist/core/tests/checkLink.d.ts +1 -0
  136. package/dist/core/tests/checkLink.d.ts.map +1 -1
  137. package/dist/core/tests/checkLink.js +14 -5
  138. package/dist/core/tests/checkLink.js.map +1 -1
  139. package/dist/core/tests/closeSurface.d.ts.map +1 -1
  140. package/dist/core/tests/closeSurface.js +4 -3
  141. package/dist/core/tests/closeSurface.js.map +1 -1
  142. package/dist/core/tests/findStrategies.d.ts.map +1 -1
  143. package/dist/core/tests/findStrategies.js +153 -116
  144. package/dist/core/tests/findStrategies.js.map +1 -1
  145. package/dist/core/tests/geckoDriver.d.ts +16 -0
  146. package/dist/core/tests/geckoDriver.d.ts.map +1 -0
  147. package/dist/core/tests/geckoDriver.js +127 -0
  148. package/dist/core/tests/geckoDriver.js.map +1 -0
  149. package/dist/core/tests/goTo.d.ts.map +1 -1
  150. package/dist/core/tests/goTo.js +12 -33
  151. package/dist/core/tests/goTo.js.map +1 -1
  152. package/dist/core/tests/httpRequest.d.ts.map +1 -1
  153. package/dist/core/tests/httpRequest.js +4 -3
  154. package/dist/core/tests/httpRequest.js.map +1 -1
  155. package/dist/core/tests/iosSimulator.d.ts +4 -1
  156. package/dist/core/tests/iosSimulator.d.ts.map +1 -1
  157. package/dist/core/tests/iosSimulator.js +49 -1
  158. package/dist/core/tests/iosSimulator.js.map +1 -1
  159. package/dist/core/tests/mobileBrowser.d.ts +2 -1
  160. package/dist/core/tests/mobileBrowser.d.ts.map +1 -1
  161. package/dist/core/tests/mobileBrowser.js +5 -2
  162. package/dist/core/tests/mobileBrowser.js.map +1 -1
  163. package/dist/core/tests/runCode.d.ts +9 -1
  164. package/dist/core/tests/runCode.d.ts.map +1 -1
  165. package/dist/core/tests/runCode.js +58 -2
  166. package/dist/core/tests/runCode.js.map +1 -1
  167. package/dist/core/tests/saveScreenshot.d.ts +18 -2
  168. package/dist/core/tests/saveScreenshot.d.ts.map +1 -1
  169. package/dist/core/tests/saveScreenshot.js +159 -4
  170. package/dist/core/tests/saveScreenshot.js.map +1 -1
  171. package/dist/core/tests/startRecording.d.ts.map +1 -1
  172. package/dist/core/tests/startRecording.js +6 -4
  173. package/dist/core/tests/startRecording.js.map +1 -1
  174. package/dist/core/tests/startSurface.d.ts.map +1 -1
  175. package/dist/core/tests/startSurface.js +8 -2
  176. package/dist/core/tests/startSurface.js.map +1 -1
  177. package/dist/core/tests.d.ts +21 -7
  178. package/dist/core/tests.d.ts.map +1 -1
  179. package/dist/core/tests.js +372 -121
  180. package/dist/core/tests.js.map +1 -1
  181. package/dist/core/utils.d.ts +68 -3
  182. package/dist/core/utils.d.ts.map +1 -1
  183. package/dist/core/utils.js +551 -18
  184. package/dist/core/utils.js.map +1 -1
  185. package/dist/core/verification.d.ts +17 -0
  186. package/dist/core/verification.d.ts.map +1 -0
  187. package/dist/core/verification.js +850 -0
  188. package/dist/core/verification.js.map +1 -0
  189. package/dist/debug/appium.js +2 -2
  190. package/dist/debug/appium.js.map +1 -1
  191. package/dist/debug/findings.js +2 -2
  192. package/dist/debug/findings.js.map +1 -1
  193. package/dist/debug/tools.d.ts +8 -0
  194. package/dist/debug/tools.d.ts.map +1 -1
  195. package/dist/debug/tools.js +60 -22
  196. package/dist/debug/tools.js.map +1 -1
  197. package/dist/hints/context.d.ts.map +1 -1
  198. package/dist/hints/context.js +2 -2
  199. package/dist/hints/context.js.map +1 -1
  200. package/dist/index.cjs +25777 -4
  201. package/dist/reporters/htmlReporter.js +1 -1
  202. package/dist/runtime/androidInstaller.d.ts +45 -0
  203. package/dist/runtime/androidInstaller.d.ts.map +1 -1
  204. package/dist/runtime/androidInstaller.js +88 -5
  205. package/dist/runtime/androidInstaller.js.map +1 -1
  206. package/dist/runtime/browsers.d.ts +87 -7
  207. package/dist/runtime/browsers.d.ts.map +1 -1
  208. package/dist/runtime/browsers.js +308 -41
  209. package/dist/runtime/browsers.js.map +1 -1
  210. package/dist/runtime/cacheDir.d.ts +1 -1
  211. package/dist/runtime/cacheDir.d.ts.map +1 -1
  212. package/dist/runtime/cacheDir.js +5 -2
  213. package/dist/runtime/cacheDir.js.map +1 -1
  214. package/dist/runtime/heavyDeps.d.ts.map +1 -1
  215. package/dist/runtime/heavyDeps.js.map +1 -1
  216. package/dist/runtime/installCommand.d.ts.map +1 -1
  217. package/dist/runtime/installCommand.js +23 -0
  218. package/dist/runtime/installCommand.js.map +1 -1
  219. package/dist/runtime/loader.d.ts +13 -0
  220. package/dist/runtime/loader.d.ts.map +1 -1
  221. package/dist/runtime/loader.js +50 -0
  222. package/dist/runtime/loader.js.map +1 -1
  223. package/dist/runtime/wdaProducts.d.ts +12 -1
  224. package/dist/runtime/wdaProducts.d.ts.map +1 -1
  225. package/dist/runtime/wdaProducts.js +27 -2
  226. package/dist/runtime/wdaProducts.js.map +1 -1
  227. package/dist/runtime/windowsBash.d.ts +6 -1
  228. package/dist/runtime/windowsBash.d.ts.map +1 -1
  229. package/dist/runtime/windowsBash.js +45 -4
  230. package/dist/runtime/windowsBash.js.map +1 -1
  231. package/dist/utils.d.ts.map +1 -1
  232. package/dist/utils.js +19 -5
  233. package/dist/utils.js.map +1 -1
  234. package/package.json +43 -41
@@ -109,12 +109,74 @@ export type ByName2 = string;
109
109
  */
110
110
  export type ElementCriteria = {
111
111
  [k: string]: unknown;
112
+ } & {
113
+ /**
114
+ * Selector for the element to wait for. On browser surfaces, a CSS selector. On app surfaces, a native selector — an XPath (`//`), or `~` for an accessibility id; CSS is rejected at runtime.
115
+ */
116
+ selector?: string;
117
+ /**
118
+ * Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax.
119
+ */
120
+ elementText?: string;
121
+ /**
122
+ * ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax.
123
+ */
124
+ elementId?: string;
125
+ /**
126
+ * data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax.
127
+ */
128
+ elementTestId?: string;
129
+ /**
130
+ * Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes.
131
+ */
132
+ elementClass?: string | string[];
133
+ /**
134
+ * Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.
135
+ */
136
+ elementAttribute?: {
137
+ [k: string]: string | number | boolean;
138
+ };
139
+ /**
140
+ * Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax.
141
+ */
142
+ elementAria?: string;
112
143
  };
113
144
  /**
114
145
  * Wait for a specific element to exist on the app surface. Fields with no accessibility mapping on the target platform fail at runtime with the supported alternative named.
115
146
  */
116
147
  export type ElementCriteria1 = {
117
148
  [k: string]: unknown;
149
+ } & {
150
+ /**
151
+ * Selector for the element to wait for. On browser surfaces, a CSS selector. On app surfaces, a native selector — an XPath (`//`), or `~` for an accessibility id; CSS is rejected at runtime.
152
+ */
153
+ selector?: string;
154
+ /**
155
+ * Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax.
156
+ */
157
+ elementText?: string;
158
+ /**
159
+ * ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax.
160
+ */
161
+ elementId?: string;
162
+ /**
163
+ * data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax.
164
+ */
165
+ elementTestId?: string;
166
+ /**
167
+ * Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes.
168
+ */
169
+ elementClass?: string | string[];
170
+ /**
171
+ * Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.
172
+ */
173
+ elementAttribute?: {
174
+ [k: string]: string | number | boolean;
175
+ };
176
+ /**
177
+ * Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax.
178
+ */
179
+ elementAria?: string;
118
180
  };
119
181
  export interface ProcessSurface {
120
182
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"type_v3.d.ts","sourceRoot":"","sources":["../../../../../src/common/src/types/generated/type_v3.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type_v3.d.ts","sourceRoot":"","sources":["../../../../../src/common/src/types/generated/type_v3.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,gBAAgB,CAAC;AACzD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAC/C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,eAAe,CAAC;IACtB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,YAAY,CAAC;IAC/D;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC;;OAEG;IACH,gBAAgB,CAAC,EAAE;QACjB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;KACxC,CAAC;IACF;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,yBAAyB,GAC3B,sCAAsC,GACtC,oCAAoC,GACpC,oCAAoC,GACpC,6BAA6B,GAC7B,gDAAgD,CAAC;AACnD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAChD;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,aAAa,GAAG,cAAc,GAAG,cAAc,GAAG,UAAU,CAAC;AACnF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AACnC;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;AAC9D;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAC7B;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAC5B;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,CAAC;AAClE;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAC9B;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAC7B;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,CAAC;AACjE;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAC9B;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAC7B;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB,GAAG;IACF;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC;;OAEG;IACH,gBAAgB,CAAC,EAAE;QACjB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;KACxC,CAAC;IACF;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AACF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB,GAAG;IACF;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC;;OAEG;IACH,gBAAgB,CAAC,EAAE;QACjB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;KACxC,CAAC;IACF;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC7D;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,GAAG,CAAC,EAAE,kBAAkB,CAAC;CAC1B;AACD,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AACD,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AACD,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AACD,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AACD,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB;AACD,MAAM,WAAW,yBAAyB;IACxC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AACD,MAAM,WAAW,sCAAsC;IACrD,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AACD,MAAM,WAAW,oCAAoC;IACnD,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AACD,MAAM,WAAW,oCAAoC;IACnD,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AACD,MAAM,WAAW,6BAA6B;IAC5C,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AACD,MAAM,WAAW,gDAAgD;IAC/D,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB"}
@@ -11,12 +11,74 @@ export type WaitUntil = BrowserReadiness | ProcessReadiness | AppReadiness;
11
11
  */
12
12
  export type ElementCriteria = {
13
13
  [k: string]: unknown;
14
+ } & {
15
+ /**
16
+ * Selector for the element to wait for. On browser surfaces, a CSS selector. On app surfaces, a native selector — an XPath (`//`), or `~` for an accessibility id; CSS is rejected at runtime.
17
+ */
18
+ selector?: string;
19
+ /**
20
+ * Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax.
21
+ */
22
+ elementText?: string;
23
+ /**
24
+ * ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax.
25
+ */
26
+ elementId?: string;
27
+ /**
28
+ * data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax.
29
+ */
30
+ elementTestId?: string;
31
+ /**
32
+ * Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes.
33
+ */
34
+ elementClass?: string | string[];
35
+ /**
36
+ * Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.
37
+ */
38
+ elementAttribute?: {
39
+ [k: string]: string | number | boolean;
40
+ };
41
+ /**
42
+ * Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax.
43
+ */
44
+ elementAria?: string;
14
45
  };
15
46
  /**
16
47
  * Wait for a specific element to exist on the app surface. Fields with no accessibility mapping on the target platform fail at runtime with the supported alternative named.
17
48
  */
18
49
  export type ElementCriteria1 = {
19
50
  [k: string]: unknown;
51
+ } & {
52
+ /**
53
+ * Selector for the element to wait for. On browser surfaces, a CSS selector. On app surfaces, a native selector — an XPath (`//`), or `~` for an accessibility id; CSS is rejected at runtime.
54
+ */
55
+ selector?: string;
56
+ /**
57
+ * Text content the element must contain. Supports exact match or regex pattern using /pattern/ syntax.
58
+ */
59
+ elementText?: string;
60
+ /**
61
+ * ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax.
62
+ */
63
+ elementId?: string;
64
+ /**
65
+ * data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax.
66
+ */
67
+ elementTestId?: string;
68
+ /**
69
+ * Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes.
70
+ */
71
+ elementClass?: string | string[];
72
+ /**
73
+ * Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.
74
+ */
75
+ elementAttribute?: {
76
+ [k: string]: string | number | boolean;
77
+ };
78
+ /**
79
+ * Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax.
80
+ */
81
+ elementAria?: string;
20
82
  };
21
83
  export interface BrowserReadiness {
22
84
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"waitUntil_v3.d.ts","sourceRoot":"","sources":["../../../../../src/common/src/types/generated/waitUntil_v3.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,YAAY,CAAC;AAC3E;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB,CAAC;AACF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AACD,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB"}
1
+ {"version":3,"file":"waitUntil_v3.d.ts","sourceRoot":"","sources":["../../../../../src/common/src/types/generated/waitUntil_v3.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,YAAY,CAAC;AAC3E;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB,GAAG;IACF;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC;;OAEG;IACH,gBAAgB,CAAC,EAAE;QACjB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;KACxC,CAAC;IACF;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AACF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB,GAAG;IACF;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC;;OAEG;IACH,gBAAgB,CAAC,EAAE;QACjB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;KACxC,CAAC;IACF;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AACD,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB"}
@@ -1,4 +1,4 @@
1
- import { ErrorObject } from "ajv";
1
+ import type { ErrorObject } from "ajv";
2
2
  export interface ValidateOptions {
3
3
  schemaKey: string;
4
4
  object: any;
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/common/src/validate.ts"],"names":[],"mappings":"AACA,OAAY,EAAoB,WAAW,EAAE,MAAM,KAAK,CAAC;AAiIzD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC;IACZ,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,GAAG,CAAC;IACZ;;;;OAIG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC9B;AAWD,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC;CACb;AAYD;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,EACvB,SAAS,EACT,MAAM,EACN,WAAkB,EAClB,gBAAwB,GACzB,EAAE,eAAe,GAAG,cAAc,CAsIlC;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,aAAkB,EAClB,YAAiB,EACjB,MAAW,GACZ,EAAE,gBAAgB,GAAG,GAAG,CA4YxB"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/common/src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,WAAW,EAAE,MAAM,KAAK,CAAC;AAqFzD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC;IACZ,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,GAAG,CAAC;IACZ;;;;OAIG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC9B;AAWD,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC;CACb;AAYD;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,EACvB,SAAS,EACT,MAAM,EACN,WAAkB,EAClB,gBAAwB,GACzB,EAAE,eAAe,GAAG,cAAc,CAsIlC;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,aAAkB,EAClB,YAAiB,EACjB,MAAW,GACZ,EAAE,gBAAgB,GAAG,GAAG,CA4YxB"}
@@ -1,81 +1,35 @@
1
- import { schemas } from "./schemas/index.js";
2
- import Ajv from "ajv";
3
- // Ajv extra formats: https://ajv.js.org/packages/ajv-formats.html
4
- import addFormats from "ajv-formats";
5
- // Ajv extra keywords: https://ajv.js.org/packages/ajv-keywords.html
6
- import addKeywords from "ajv-keywords";
7
- // Ajv custom errors: https://ajv.js.org/packages/ajv-errors.html
8
- import addErrors from "ajv-errors";
9
- import dynamicDefaultsDef from "ajv-keywords/dist/definitions/dynamicDefaults.js";
10
- // Browser-compatible UUID function
11
- /* c8 ignore next 10 - crypto.randomUUID always available in Node.js; fallback is for browsers */
12
- function getRandomUUID() {
13
- if (typeof crypto !== 'undefined' && crypto.randomUUID) {
14
- return crypto.randomUUID();
15
- }
16
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
17
- const r = Math.random() * 16 | 0;
18
- const v = c === 'x' ? r : (r & 0x3 | 0x8);
19
- return v.toString(16);
20
- });
21
- }
22
- // Configure base Ajv. This is the MUTATING validator: `useDefaults` fills in
23
- // schema defaults and `coerceTypes` rewrites values in place. Both mutate the
24
- // data they validate, which is why every validation runs against a clone.
25
- // @ts-expect-error - CJS/ESM interop: Ajv constructor is callable at runtime
26
- const ajv = new Ajv({
27
- strictSchema: false,
28
- useDefaults: true,
29
- allErrors: true,
30
- allowUnionTypes: true,
31
- coerceTypes: true,
32
- });
33
- // A second, NON-mutating Ajv used only to *probe* which compatible schema an
1
+ import validators from "./schemas/validators.cjs";
2
+ // Validators are precompiled at build time from `schemasReferenced` ($refs
3
+ // intact) by Ajv standalone code generation (createAjv/standaloneValidatorFiles
4
+ // in ajv.ts, written by scripts/generateValidators.js), so no schema compiles
5
+ // at runtime and the Ajv compiler never loads. test/precompiledValidators.test.js
6
+ // proves they validate exactly like the runtime-compiled schemas. ADR 01138.
7
+ //
8
+ // The MUTATING set: `useDefaults` fills in schema defaults and `coerceTypes`
9
+ // rewrites values in place. Both mutate the data they validate, which is why
10
+ // every validation runs against a clone.
11
+ const ajv = validators.mutating;
12
+ // A second, NON-mutating set used only to *probe* which compatible schema an
34
13
  // object matches. It has `useDefaults`/`coerceTypes` OFF, so it never touches
35
14
  // the data — that lets us try every candidate schema against the caller's
36
15
  // object directly, with no per-candidate clone. The winning schema is then
37
- // re-run through the mutating `ajv` on a single clone to reproduce the exact
38
- // defaults/coercions the old code produced. Schemas compile lazily on first
39
- // use, so this instance only pays for the candidates actually probed.
16
+ // re-run through the mutating set on a single clone to reproduce the exact
17
+ // defaults/coercions the old code produced. Loaded on first probe.
40
18
  //
41
- // It deliberately omits the `dynamicDefaultsDef`/`useDefaults` machinery below.
42
- // A consequence: any compatible schema whose VALIDITY depends on a default —
19
+ // It deliberately runs without `useDefaults`, so neither static nor dynamic
20
+ // (`dynamicDefaults`) defaults apply. A consequence: any compatible schema whose VALIDITY depends on a default —
43
21
  // whether a static `useDefaults` scalar (e.g. config_v2's required
44
22
  // `telemetry.send`) OR a dynamic default (e.g. a required uuid field) — will not
45
23
  // match this probe and instead falls to the mutating-probe fallback in
46
24
  // `validate()`. That fallback replays the exact old behavior, so this is a
47
25
  // correctness-preserving performance split, not a gap.
48
- // @ts-expect-error - CJS/ESM interop: Ajv constructor is callable at runtime
49
- const ajvCheck = new Ajv({
50
- strictSchema: false,
51
- useDefaults: false,
52
- allErrors: true,
53
- allowUnionTypes: true,
54
- coerceTypes: false,
55
- });
56
- // Enable `uuid` dynamic default
57
- // @ts-expect-error - CJS/ESM interop: dynamicDefaultsDef.DEFAULTS exists at runtime
58
- dynamicDefaultsDef.DEFAULTS.uuid = (_args) => getRandomUUID;
59
- // Enhance Ajv
60
- // @ts-expect-error - CJS/ESM interop: ajv plugin functions are callable at runtime
61
- addFormats(ajv);
62
- // @ts-expect-error - CJS/ESM interop: ajv plugin functions are callable at runtime
63
- addKeywords(ajv);
64
- // @ts-expect-error - CJS/ESM interop: ajv plugin functions are callable at runtime
65
- addErrors(ajv);
66
- // The probe instance needs the same formats/keywords/error handling so a
67
- // candidate's validity result is identical to the mutating validator's (minus
68
- // the default/coercion effects, which don't decide the compatible v2 schemas).
69
- // @ts-expect-error - CJS/ESM interop: ajv plugin functions are callable at runtime
70
- addFormats(ajvCheck);
71
- // @ts-expect-error - CJS/ESM interop: ajv plugin functions are callable at runtime
72
- addKeywords(ajvCheck);
73
- // @ts-expect-error - CJS/ESM interop: ajv plugin functions are callable at runtime
74
- addErrors(ajvCheck);
75
- // Add all schemas from `schema` object to both instances.
76
- for (const [key, value] of Object.entries(schemas)) {
77
- ajv.addSchema(value, key);
78
- ajvCheck.addSchema(value, key);
26
+ const ajvCheck = () => validators.loadCheck();
27
+ /**
28
+ * Look up a schema's precompiled validator. Unknown keys, including inherited
29
+ * names like `constructor`, return undefined.
30
+ */
31
+ function getValidator(set, key) {
32
+ return Object.hasOwn(set, key) ? set[key] : undefined;
79
33
  }
80
34
  /**
81
35
  * Deep-clone a value before validation so the mutating validator can apply
@@ -163,7 +117,7 @@ export function validate({ schemaKey, object, addDefaults = true, structuredErro
163
117
  result.errorObjects = [];
164
118
  }
165
119
  let validationObject;
166
- let check = ajv.getSchema(schemaKey);
120
+ let check = getValidator(ajv, schemaKey);
167
121
  if (!check) {
168
122
  result.valid = false;
169
123
  result.errors = `Schema not found: ${schemaKey}`;
@@ -201,10 +155,10 @@ export function validate({ schemaKey, object, addDefaults = true, structuredErro
201
155
  // is always a mutating match too, so this fast path is exact for any
202
156
  // candidate whose validity doesn't depend on a default/coercion.
203
157
  let matchedSchemaKey = compatibleSchemasList.find((key) => {
204
- // Every compatible key is registered on ajvCheck (see the addSchema loop
205
- // above), so getSchema is always defined — assert it, matching the
158
+ // Every compatible key is a known schema with a precompiled validator,
159
+ // so the validator is always defined — assert it, matching the
206
160
  // `matchedCheck!` non-null assertion below.
207
- const probe = ajvCheck.getSchema(key);
161
+ const probe = getValidator(ajvCheck(), key);
208
162
  return probe(object);
209
163
  });
210
164
  if (!matchedSchemaKey) {
@@ -215,7 +169,7 @@ export function validate({ schemaKey, object, addDefaults = true, structuredErro
215
169
  // that validated under the old code is newly rejected. Runs only on the
216
170
  // rare no-fast-match path, so the common case keeps its single-clone win.
217
171
  matchedSchemaKey = compatibleSchemasList.find((key) => {
218
- const mutatingCheck = ajv.getSchema(key);
172
+ const mutatingCheck = getValidator(ajv, key);
219
173
  return mutatingCheck(cloneForValidation(object));
220
174
  });
221
175
  }
@@ -235,7 +189,7 @@ export function validate({ schemaKey, object, addDefaults = true, structuredErro
235
189
  // MUTATING validator for the matched schema, so its defaults/coercions are
236
190
  // applied exactly as before, then transform.
237
191
  validationObject = cloneForValidation(object);
238
- const matchedCheck = ajv.getSchema(matchedSchemaKey);
192
+ const matchedCheck = getValidator(ajv, matchedSchemaKey);
239
193
  matchedCheck(validationObject);
240
194
  const transformedObject = transformToSchemaKey({
241
195
  currentSchema: matchedSchemaKey,
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/common/src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAa,MAAM,oBAAoB,CAAC;AACxD,OAAO,GAAsC,MAAM,KAAK,CAAC;AACzD,kEAAkE;AAClE,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,oEAAoE;AACpE,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,iEAAiE;AACjE,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,kBAAkB,MAAM,kDAAkD,CAAC;AAElF,mCAAmC;AACnC,iGAAiG;AACjG,SAAS,aAAa;IACpB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACvD,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;IACD,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAS,CAAC;QACvE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,6EAA6E;AAC7E,8EAA8E;AAC9E,0EAA0E;AAC1E,6EAA6E;AAC7E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;IAClB,YAAY,EAAE,KAAK;IACnB,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,IAAI;IACf,eAAe,EAAE,IAAI;IACrB,WAAW,EAAE,IAAI;CAClB,CAAC,CAAC;AAEH,6EAA6E;AAC7E,8EAA8E;AAC9E,0EAA0E;AAC1E,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,sEAAsE;AACtE,EAAE;AACF,gFAAgF;AAChF,6EAA6E;AAC7E,mEAAmE;AACnE,iFAAiF;AACjF,uEAAuE;AACvE,2EAA2E;AAC3E,uDAAuD;AACvD,6EAA6E;AAC7E,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;IACvB,YAAY,EAAE,KAAK;IACnB,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,IAAI;IACf,eAAe,EAAE,IAAI;IACrB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,gCAAgC;AAChC,oFAAoF;AACpF,kBAAkB,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,aAAa,CAAC;AAEjE,cAAc;AACd,mFAAmF;AACnF,UAAU,CAAC,GAAG,CAAC,CAAC;AAChB,mFAAmF;AACnF,WAAW,CAAC,GAAG,CAAC,CAAC;AACjB,mFAAmF;AACnF,SAAS,CAAC,GAAG,CAAC,CAAC;AACf,yEAAyE;AACzE,8EAA8E;AAC9E,+EAA+E;AAC/E,mFAAmF;AACnF,UAAU,CAAC,QAAQ,CAAC,CAAC;AACrB,mFAAmF;AACnF,WAAW,CAAC,QAAQ,CAAC,CAAC;AACtB,mFAAmF;AACnF,SAAS,CAAC,QAAQ,CAAC,CAAC;AAEpB,0DAA0D;AAC1D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;IACnD,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,kBAAkB,CAAC,MAAW;IACrC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,+DAA+D;AAC/D,MAAM,iBAAiB,GAAG;IACxB,SAAS,EAAE,CAAC,WAAW,CAAC;IACxB,UAAU,EAAE,CAAC,YAAY,CAAC;IAC1B,UAAU,EAAE,CAAC,YAAY,CAAC;IAC1B,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,OAAO,EAAE;QACP,cAAc;QACd,SAAS;QACT,SAAS;QACT,gBAAgB;QAChB,aAAa;QACb,YAAY;QACZ,mBAAmB;QACnB,iBAAiB;QACjB,mBAAmB;QACnB,kBAAkB;QAClB,aAAa;QACb,SAAS;KACV;IACD,OAAO,EAAE,CAAC,SAAS,CAAC;CACZ,CAAC;AA8BX;;;;GAIG;AACH,SAAS,cAAc,CAAC,MAAqB;IAC3C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAQD;;;;;GAKG;AACH,SAAS,YAAY,CAAC,MAAc;IAClC,OAAO,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,oCAAoC;AAC5F,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,SAAS,EACT,MAAM,EACN,WAAW,GAAG,IAAI,EAClB,gBAAgB,GAAG,KAAK,GACR;IAChB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,MAAM,GAAmB;QAC7B,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,MAAM;KACf,CAAC;IACF,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,gBAAqB,CAAC;IAC1B,IAAI,KAAK,GAAiC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACnE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,CAAC,MAAM,GAAG,qBAAqB,SAAS,EAAE,CAAC;QACjD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wEAAwE;IACxE,0EAA0E;IAC1E,gBAAgB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE9C,qEAAqE;IACrE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACvC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;IAEnB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,yEAAyE;QACzE,yEAAyE;QACzE,4BAA4B;QAC5B,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;QAClC,wDAAwD;QACxD,MAAM,qBAAqB,GACzB,iBAAiB,CAAC,SAA2C,CAAC,CAAC;QACjE,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC3B,MAAM,CAAC,MAAM,GAAG,YAAY;iBACzB,GAAG,CACF,CAAC,KAAK,EAAE,EAAE,CACR,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,SAAS,CACvD,KAAK,CAAC,MAAM,CACb,GAAG,CACP;iBACA,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,CAAC,YAAY,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;YACrD,CAAC;YACD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACvB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YACrB,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,4EAA4E;QAC5E,6EAA6E;QAC7E,sEAAsE;QACtE,8EAA8E;QAC9E,qEAAqE;QACrE,iEAAiE;QACjE,IAAI,gBAAgB,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACxD,yEAAyE;YACzE,mEAAmE;YACnE,4CAA4C;YAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAE,CAAC;YACvC,OAAO,KAAK,CAAC,MAAM,CAAY,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,sEAAsE;YACtE,uEAAuE;YACvE,kEAAkE;YAClE,4EAA4E;YAC5E,wEAAwE;YACxE,0EAA0E;YAC1E,gBAAgB,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACpD,MAAM,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAE,CAAC;gBAC1C,OAAO,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAY,CAAC;YAC9D,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,CAAC,MAAM,GAAG,YAAY;iBACzB,GAAG,CACF,CAAC,KAAK,EAAE,EAAE,CACR,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,SAAS,CACvD,KAAK,CAAC,MAAM,CACb,GAAG,CACP;iBACA,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,CAAC,YAAY,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;YACrD,CAAC;YACD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACvB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YACrB,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,0EAA0E;YAC1E,2EAA2E;YAC3E,6CAA6C;YAC7C,gBAAgB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YACrD,YAAa,CAAC,gBAAgB,CAAC,CAAC;YAChC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;gBAC7C,aAAa,EAAE,gBAAgB;gBAC/B,YAAY,EAAE,SAAS;gBACvB,MAAM,EAAE,gBAAgB;aACzB,CAAC,CAAC;YAEH,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACxC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,gBAAgB,GAAG,iBAAiB,CAAC;gBACrC,MAAM,GAAG,iBAAiB,CAAC;gBAC3B,oGAAoG;YACtG,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAC7B,CAAC,KAAK,EAAE,EAAE,CACR,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,SAAS,CACvD,KAAK,CAAC,MAAM,CACb,GAAG,CACP,CAAC;gBACF,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,oBAAoB;QACtB,CAAC;IACH,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,MAAM,GAAG,gBAAgB,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,EACnC,aAAa,GAAG,EAAE,EAClB,YAAY,GAAG,EAAE,EACjB,MAAM,GAAG,EAAE,GACM;IACjB,+DAA+D;IAC/D,IAAI,aAAa,KAAK,YAAY,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,mEAAmE;IACnE,MAAM,cAAc,GAAG,iBAAiB,CAAC,YAAmC,CAAC,CAAC;IAC9E,IACE,CAAC,cAAc;QACf,CAAE,cAAoC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAC9D,CAAC;QACD,MAAM,IAAI,KAAK,CACb,wBAAwB,aAAa,OAAO,YAAY,GAAG,CAC5D,CAAC;IACJ,CAAC;IACD,uBAAuB;IACvB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,iBAAiB,GAAQ;YAC7B,MAAM,EAAE,MAAM,CAAC,EAAE;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC;QACF,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,iBAAiB,CAAC,IAAI,GAAG;gBACvB,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;QACJ,CAAC;aAAM,IAAI,aAAa,KAAK,cAAc,EAAE,CAAC;YAC5C,iBAAiB,CAAC,SAAS,GAAG;gBAC5B,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,WAAW,EAAE,MAAM,CAAC,WAAW;aAChC,CAAC;QACJ,CAAC;aAAM,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YACvC,iBAAiB,CAAC,IAAI,GAAG;gBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,WAAW,EAAE,MAAM,CAAC,SAAS;gBAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,IAAI,EAAE,MAAM,CAAC,QAAQ;aACtB,CAAC;YACF,mCAAmC;YACnC,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAChE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC/D,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3C,CAAC;YACD,iBAAiB,CAAC,SAAS,GAAG,EAAE,CAAC;YACjC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;gBAC7C,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACxC,4BAA4B,QAAQ,CAAC,KAAK,IAAI,CAAC;YACnD,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,aAAa,KAAK,gBAAgB,EAAE,CAAC;YAC9C,iBAAiB,CAAC,WAAW,GAAG;gBAC9B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM,CAAC,WAAW;oBACxB,OAAO,EAAE,MAAM,CAAC,cAAc;oBAC9B,UAAU,EAAE,MAAM,CAAC,aAAa;iBACjC;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,MAAM,CAAC,YAAY;oBACzB,OAAO,EAAE,MAAM,CAAC,eAAe;iBAChC;gBACD,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;gBACnD,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,MAAM,CAAC,QAAQ;gBACrB,SAAS,EAAE,MAAM,CAAC,aAAa;gBAC/B,YAAY,EAAE,MAAM,CAAC,YAAY,GAAG,GAAG;gBACvC,SAAS,EACP,MAAM,CAAC,SAAS,KAAK,aAAa;oBAChC,CAAC,CAAC,gBAAgB;oBAClB,CAAC,CAAC,MAAM,CAAC,SAAS;aACvB,CAAC;YACF,2CAA2C;YAC3C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,iBAAiB,CAAC,WAAW,CAAC,OAAO,GAAG,oBAAoB,CAAC;oBAC3D,aAAa,EAAE,YAAY;oBAC3B,YAAY,EAAE,YAAY;oBAC1B,MAAM,EAAE,MAAM,CAAC,OAAO;iBACvB,CAAC,CAAC;YACL,CAAC;YACD,iBAAiB,CAAC,SAAS,GAAG,EAAE,CAAC;YACjC,MAAM,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;gBACrD,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACxC,wBAAwB,QAAQ,CAAC,QAAQ,IAAI,CAAC;YAClD,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,aAAa,KAAK,aAAa,EAAE,CAAC;YAC3C,iBAAiB,CAAC,QAAQ,GAAG;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,KAAK,EAAE,MAAM,CAAC,MAAM;gBACpB,IAAI,EAAE,MAAM,CAAC,QAAQ;gBACrB,SAAS,EAAE,MAAM,CAAC,aAAa;gBAC/B,YAAY,EAAE,MAAM,CAAC,YAAY,GAAG,GAAG;gBACvC,SAAS,EACP,MAAM,CAAC,SAAS,KAAK,aAAa;oBAChC,CAAC,CAAC,gBAAgB;oBAClB,CAAC,CAAC,MAAM,CAAC,SAAS;gBACtB,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC;YACF,iBAAiB,CAAC,SAAS,GAAG,EAAE,CAAC;YACjC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;gBAC7C,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACxC,4BAA4B,QAAQ,CAAC,KAAK,IAAI,CAAC;YACnD,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,aAAa,KAAK,YAAY,EAAE,CAAC;YAC1C,iBAAiB,CAAC,OAAO,GAAG;gBAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,KAAK,EAAE,MAAM,CAAC,MAAM;gBACpB,IAAI,EAAE,MAAM,CAAC,QAAQ;gBACrB,SAAS,EAAE,MAAM,CAAC,aAAa;gBAC/B,YAAY,EAAE,MAAM,CAAC,YAAY,GAAG,GAAG;gBACvC,SAAS,EACP,MAAM,CAAC,SAAS,KAAK,aAAa;oBAChC,CAAC,CAAC,gBAAgB;oBAClB,CAAC,CAAC,MAAM,CAAC,SAAS;gBACtB,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC;YACF,iBAAiB,CAAC,SAAS,GAAG,EAAE,CAAC;YACjC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;gBAC9C,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACxC,4BAA4B,QAAQ,CAAC,KAAK,IAAI,CAAC;YACnD,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,aAAa,KAAK,iBAAiB,EAAE,CAAC;YAC/C,iBAAiB,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC;QAChD,CAAC;aAAM,IAAI,aAAa,KAAK,aAAa,EAAE,CAAC;YAC3C,iBAAiB,CAAC,IAAI,GAAG;gBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,UAAU,EAAE,MAAM,CAAC,KAAK;aACzB,CAAC;QACJ,CAAC;aAAM,IAAI,aAAa,KAAK,mBAAmB,EAAE,CAAC;YACjD,iBAAiB,CAAC,UAAU,GAAG;gBAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,YAAY,EAAE,MAAM,CAAC,YAAY,GAAG,GAAG;gBACvC,SAAS,EACP,MAAM,CAAC,SAAS,KAAK,aAAa;oBAChC,CAAC,CAAC,gBAAgB;oBAClB,CAAC,CAAC,MAAM,CAAC,SAAS;gBACtB,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAC;QACJ,CAAC;aAAM,IAAI,aAAa,KAAK,mBAAmB,EAAE,CAAC;YACjD,iBAAiB,CAAC,MAAM,GAAG;gBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC;QACJ,CAAC;aAAM,IAAI,aAAa,KAAK,kBAAkB,EAAE,CAAC;YAChD,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC;QACtC,CAAC;aAAM,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YACvC,iBAAiB,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC;QACnD,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC;YACtB,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,iBAAiB;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,gDAAgD,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;SAAM,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;QACxC,+CAA+C;QAC/C,MAAM,iBAAiB,GAAQ;YAC7B,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK;YAC9C,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM;YACjD,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,IAAI,MAAM,CAAC,SAAS;YAC1D,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW;YAC1C,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;YAClC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;YACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;QACF,gCAAgC;QAChC,IAAI,MAAM,EAAE,QAAQ,EAAE,QAAQ;YAC5B,iBAAiB,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAY,EAAE,EAAE,CACtE,oBAAoB,CAAC;gBACnB,aAAa,EAAE,YAAY;gBAC3B,YAAY,EAAE,YAAY;gBAC1B,MAAM,EAAE,OAAO;aAChB,CAAC,CACH,CAAC;QACJ,gCAAgC;QAChC,IAAI,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;YAClC,iBAAiB,CAAC,YAAY,GAAG,EAAE,CAAC;YACpC,iBAAiB,CAAC,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CACtE,CAAC,WAAgB,EAAE,EAAE,CACnB,oBAAoB,CAAC;gBACnB,aAAa,EAAE,YAAY;gBAC3B,YAAY,EAAE,YAAY;gBAC1B,MAAM,EAAE,WAAW;aACpB,CAAC,CACL,CAAC;QACJ,CAAC;QACD,kCAAkC;QAClC,IAAI,MAAM,EAAE,SAAS;YACnB,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAa,EAAE,EAAE;gBACnE,MAAM,mBAAmB,GAAQ;oBAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAiB,EAAE,EAAE;oBACxD,kCAAkC;oBAClC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAC7B;oBACD,gBAAgB,EAAE;wBAChB,wDAAwD;wBACxD,SAAS,EAAE,GAAG,YAAY,CACxB,QAAQ,CAAC,sBAAsB,CAChC,QAAQ,YAAY,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE;wBACzD,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC;wBAChD,WAAW,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC;wBACvD,IAAI,EAAE,GAAG,YAAY,CACnB,QAAQ,CAAC,iBAAiB,CAC3B,QAAQ,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;qBACrD;iBACF,CAAC;gBACF,IAAI,QAAQ,CAAC,MAAM;oBACjB,mBAAmB,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE;wBAC/D,MAAM,iBAAiB,GAAQ;4BAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;4BACjB,KAAK,EAAE,MAAM,CAAC,KAAK;yBACpB,CAAC;wBACF,IAAI,MAAM,CAAC,OAAO;4BAChB,iBAAiB,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE;gCAC7D,IAAI,OAAO,MAAM,KAAK,QAAQ;oCAAE,OAAO,MAAM,CAAC;gCAC9C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;oCAC/B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wCAClB,MAAM,GAAG;4CACP,MAAM,EAAE,MAAM,CAAC,IAAI;4CACnB,GAAG,MAAM,CAAC,MAAM;yCACjB,CAAC;oCACJ,CAAC;oCACD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;wCAC7C,aAAa,EAAE,GAAG,MAAM,CAAC,MAAM,KAAK;wCACpC,YAAY,EAAE,SAAS;wCACvB,MAAM,EAAE,MAAM;qCACf,CAAC,CAAC;oCACH,OAAO,iBAAiB,CAAC;gCAC3B,CAAC;4BACH,CAAC,CAAC,CAAC;wBAEL,OAAO,iBAAiB,CAAC;oBAC3B,CAAC,CAAC,CAAC;gBACL,OAAO,mBAAmB,CAAC;YAC7B,CAAC,CAAC,CAAC;QACL,MAAM,MAAM,GAAG,QAAQ,CAAC;YACtB,SAAS,EAAE,WAAW;YACtB,MAAM,EAAE,iBAAiB;SAC1B,CAAC,CAAC;QACH,yEAAyE;QACzE,sBAAsB;QACtB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;SAAM,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;QACzC,MAAM,iBAAiB,GAAQ,EAAE,CAAC;QAClC,iDAAiD;QACjD,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAC/C,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC;YACtE,iBAAiB,CAAC,QAAQ,GAAG,EAAE,CAAC;YAChC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC9B,IAAI;gBACJ,QAAQ,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ;gBACvC,MAAM,EAAE;oBACN,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK;oBACjC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM;iBACpC;gBACD,QAAQ,EAAE;oBACR,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc;oBAC1C,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,eAAe;iBAC7C;aACF,CAAC,CAAC;QACL,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC;YACtB,SAAS,EAAE,YAAY;YACvB,MAAM,EAAE,iBAAiB;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;SAAM,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;QACzC,IAAI,iBAAsB,CAAC;QAC3B,iDAAiD;QACjD,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,kBAAkB,EAAE,GAAG,MAAM,CAAC;QAC/D,kBAAkB,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACtC,kBAAkB,CAAC,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC;QACnD,iBAAiB,GAAG,EAAE,GAAG,kBAAkB,EAAE,CAAC;QAE9C,MAAM,MAAM,GAAG,QAAQ,CAAC;YACtB,SAAS,EAAE,YAAY;YACvB,MAAM,EAAE,iBAAiB;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;SAAM,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QACtC,2CAA2C;QAC3C,MAAM,iBAAiB,GAAQ;YAC7B,MAAM,EAAE,MAAM,CAAC,EAAE;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,WAAW,EAAE,MAAM,CAAC,IAAI;SACzB,CAAC;QACF,IAAI,MAAM,CAAC,QAAQ;YACjB,iBAAiB,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAY,EAAE,EAAE,CAC7D,oBAAoB,CAAC;gBACnB,aAAa,EAAE,YAAY;gBAC3B,YAAY,EAAE,YAAY;gBAC1B,MAAM,EAAE,OAAO;aAChB,CAAC,CACH,CAAC;QACJ,IAAI,MAAM,CAAC,OAAO;YAChB,iBAAiB,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAgB,EAAE,EAAE,CAClE,oBAAoB,CAAC;gBACnB,aAAa,EAAE,YAAY;gBAC3B,YAAY,EAAE,YAAY;gBAC1B,MAAM,EAAE,WAAW;aACpB,CAAC,CACH,CAAC;QACJ,iBAAiB,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CACvD,oBAAoB,CAAC;YACnB,aAAa,EAAE,SAAS;YACxB,YAAY,EAAE,SAAS;YACvB,MAAM,EAAE,IAAI;SACb,CAAC,CACH,CAAC;QAEF,MAAM,MAAM,GAAG,QAAQ,CAAC;YACtB,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,iBAAiB;SAC1B,CAAC,CAAC;QACH,6DAA6D;QAC7D,sBAAsB;QACtB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;SAAM,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QACtC,2CAA2C;QAC3C,MAAM,iBAAiB,GAAQ;YAC7B,MAAM,EAAE,MAAM,CAAC,EAAE;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,WAAW,EAAE,MAAM,CAAC,IAAI;YACxB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,MAAM,CAAC,KAAK;YACpB,KAAK,EAAE,MAAM,CAAC,OAAO;SACtB,CAAC;QACF,IAAI,MAAM,CAAC,QAAQ;YACjB,iBAAiB,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAY,EAAE,EAAE,CAC7D,oBAAoB,CAAC;gBACnB,aAAa,EAAE,YAAY;gBAC3B,YAAY,EAAE,YAAY;gBAC1B,MAAM,EAAE,OAAO;aAChB,CAAC,CACH,CAAC;QACJ,IAAI,MAAM,CAAC,OAAO;YAChB,iBAAiB,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAgB,EAAE,EAAE,CAClE,oBAAoB,CAAC;gBACnB,aAAa,EAAE,YAAY;gBAC3B,YAAY,EAAE,YAAY;gBAC1B,MAAM,EAAE,WAAW;aACpB,CAAC,CACH,CAAC;QACJ,iBAAiB,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CACvD,oBAAoB,CAAC;YACnB,aAAa,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK;YAClC,YAAY,EAAE,SAAS;YACvB,MAAM,EAAE,IAAI;SACb,CAAC,CACH,CAAC;QAEF,MAAM,MAAM,GAAG,QAAQ,CAAC;YACtB,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,iBAAiB;SAC1B,CAAC,CAAC;QACH,6DAA6D;QAC7D,sBAAsB;QACtB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,8EAA8E;IAC9E,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/common/src/validate.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- export { setAppiumHome, appiumHomeForDriverPath, runtimeHomeHasBrowserDriver };
1
+ export { setAppiumHome, appiumHomeForDriverPath, useDriversArgs, browserPoolDriverPackages, };
2
+ declare function useDriversArgs(appiumHome: string, packages: string[]): string[];
3
+ declare function browserPoolDriverPackages(platform: string): string[];
2
4
  declare function appiumHomeForDriverPath(driverEntry: string): string | null;
3
- declare function runtimeHomeHasBrowserDriver(runtimeDir: string): boolean;
4
5
  declare function setAppiumHome(ctx?: {
5
6
  cacheDir?: string;
6
7
  }): void;
@@ -1 +1 @@
1
- {"version":3,"file":"appium.d.ts","sourceRoot":"","sources":["../../src/core/appium.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,CAAC;AAO/E,iBAAS,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAInE;AAsBD,iBAAS,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAMhE;AAED,iBAAS,aAAa,CAAC,GAAG,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,QAiErD"}
1
+ {"version":3,"file":"appium.d.ts","sourceRoot":"","sources":["../../src/core/appium.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,yBAAyB,GAC1B,CAAC;AAYF,iBAAS,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAwCxE;AAID,iBAAS,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAM7D;AAOD,iBAAS,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAInE;AAMD,iBAAS,aAAa,CAAC,GAAG,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,QAErD"}
@@ -1,10 +1,63 @@
1
+ import fs from "node:fs";
1
2
  import path from "node:path";
2
- import { existsSync } from "node:fs";
3
- import { fileURLToPath } from "node:url";
4
3
  import { getRuntimeDir } from "../runtime/cacheDir.js";
5
- import { resolveHeavyDepPath } from "../runtime/loader.js";
6
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
7
- export { setAppiumHome, appiumHomeForDriverPath, runtimeHomeHasBrowserDriver };
4
+ import { requireYaml } from "./lazyYaml.js";
5
+ export { setAppiumHome, appiumHomeForDriverPath, useDriversArgs, browserPoolDriverPackages, };
6
+ // Appium CLI args that load only `packages` instead of every driver in the
7
+ // home (ADR 01117). The shared runtime home also holds the heavy mobile
8
+ // drivers, and requiring them all doubled a browser server's startup (~2.5s
9
+ // vs ~1.3s). Each package is named by its `appium.driverName` — the key
10
+ // Appium's manifest scan registers it under — and only when it's installed
11
+ // in `<appiumHome>/node_modules`, because Appium refuses to start on an
12
+ // unknown name. When a manifest exists, every installed requested driver must
13
+ // appear there as `drivers.<name>.pkgName` exactly; a mismatch or an
14
+ // unparseable manifest can't be verified. Unverifiable or nothing installed →
15
+ // no args, keeping the load-all default.
16
+ function useDriversArgs(appiumHome, packages) {
17
+ let manifestText;
18
+ try {
19
+ manifestText = fs.readFileSync(path.join(appiumHome, "node_modules", ".cache", "appium", "extensions.yaml"), "utf8");
20
+ }
21
+ catch {
22
+ // No manifest: Appium scans node_modules on start, so on disk is enough.
23
+ }
24
+ let registered;
25
+ if (manifestText !== undefined) {
26
+ try {
27
+ registered = requireYaml().parse(manifestText)?.drivers ?? {};
28
+ }
29
+ catch {
30
+ return [];
31
+ }
32
+ }
33
+ const names = packages.flatMap((pkg) => {
34
+ try {
35
+ const name = JSON.parse(fs.readFileSync(path.join(appiumHome, "node_modules", pkg, "package.json"), "utf8"))?.appium?.driverName;
36
+ return typeof name === "string" && name ? [{ name, pkg }] : [];
37
+ }
38
+ catch {
39
+ return [];
40
+ }
41
+ });
42
+ // A manifest that disagrees with what's on disk is stale. A partial list is
43
+ // unsafe either way (Appium may refuse the name, or rescan and then never
44
+ // load the one left out), so fall back to loading everything.
45
+ if (registered && names.some(({ name, pkg }) => registered[name]?.pkgName !== pkg)) {
46
+ return [];
47
+ }
48
+ return names.length
49
+ ? [`--use-drivers=${names.map(({ name }) => name).join(",")}`]
50
+ : [];
51
+ }
52
+ // Drivers a desktop browser-pool server can host. Safari's driver only runs
53
+ // on macOS (its package declares platformNames Mac/iOS).
54
+ function browserPoolDriverPackages(platform) {
55
+ return [
56
+ "appium-chromium-driver",
57
+ "appium-geckodriver",
58
+ ...(platform === "darwin" ? ["appium-safari-driver"] : []),
59
+ ];
60
+ }
8
61
  // Given a resolved driver module path like
9
62
  // `<X>/node_modules/appium-geckodriver/build/lib/index.js`, return `<X>` — the
10
63
  // directory whose `node_modules` holds the driver. `appium driver list` looks
@@ -15,90 +68,11 @@ function appiumHomeForDriverPath(driverEntry) {
15
68
  const idx = driverEntry.lastIndexOf(marker);
16
69
  return idx === -1 ? null : driverEntry.slice(0, idx);
17
70
  }
18
- // The browser drivers `appium driver list` must report as `installed (npm)`
19
- // for Chrome/Firefox/Safari detection (getAvailableApps) to mark the browser
20
- // available. A home missing all of these can't drive a browser, so it must
21
- // not be chosen as APPIUM_HOME for the browser paths. Safari is included
22
- // because its availability check (config.ts) also gates on
23
- // `npmInstalled("appium-safari-driver")` via `appium driver list`.
24
- const BROWSER_DRIVER_PACKAGES = [
25
- "appium-chromium-driver",
26
- "appium-geckodriver",
27
- "appium-safari-driver",
28
- ];
29
- // True when <runtimeDir>/node_modules contains appium AND at least one browser
30
- // driver — i.e. the runtime cache is a COMPLETE browser home. `appium driver
31
- // list` scans <APPIUM_HOME>/node_modules, so a runtime that holds appium but no
32
- // browser driver (e.g. appium pulled in only as a peer of a lazily-installed
33
- // native driver like appium-xcuitest-driver) reports every browser driver
34
- // "not installed" and browser detection comes up empty. Requiring a browser
35
- // driver's presence lets setAppiumHome fall through to the shim home (which
36
- // carries the full driver set) in that case.
37
- function runtimeHomeHasBrowserDriver(runtimeDir) {
38
- const nm = path.join(runtimeDir, "node_modules");
39
- if (!existsSync(path.join(nm, "appium")))
40
- return false;
41
- return BROWSER_DRIVER_PACKAGES.some((driver) => existsSync(path.join(nm, driver)));
42
- }
71
+ // Every Appium server — browser and app surface alike — is homed at
72
+ // <cacheDir>/runtime, where Appium and its drivers are installed (the loader
73
+ // never resolves them from the shim). One home means one extension manifest
74
+ // and one copy of each driver (ADR 01111).
43
75
  function setAppiumHome(ctx = {}) {
44
- // 1. Prefer the lazy-installed copy in <cacheDir>/runtime — but only when it
45
- // is a COMPLETE browser home (appium + a browser driver). A runtime that has
46
- // appium without any browser driver (e.g. appium arrived only as a peer of a
47
- // lazily-installed native driver such as appium-xcuitest-driver) would make
48
- // `appium driver list` report chromium/gecko "not installed" and browser
49
- // detection come up empty — the pre-fix bug that failed the browser unit
50
- // tests on Linux/macOS after `install all` seeded such a partial runtime.
51
- // When the runtime is incomplete, fall through to step 2, which homes at the
52
- // shim's node_modules that carries every driver.
53
- const runtimeDir = getRuntimeDir({ cacheDir: ctx.cacheDir });
54
- if (runtimeHomeHasBrowserDriver(runtimeDir)) {
55
- process.env.APPIUM_HOME = runtimeDir;
56
- return;
57
- }
58
- // 2. Otherwise anchor APPIUM_HOME to the directory whose node_modules holds
59
- // the appium drivers, resolved the same way the runner loads them. appium
60
- // looks for drivers in <APPIUM_HOME>/node_modules, so the home is the parent
61
- // of the node_modules that contains the driver package. This is robust to
62
- // git worktrees and hoisted layouts where the legacy __dirname walk below
63
- // landed on the node_modules directory itself (one level too deep) whenever
64
- // appium resolved to a different node_modules than its drivers — making
65
- // `appium driver list` report every driver as not-installed and browser
66
- // detection come up empty.
67
- // Try each driver in turn: resolveHeavyDepPath can return a shim path with no
68
- // node_modules segment (appiumHomeForDriverPath then yields null), so a bad
69
- // first candidate must not stop us from deriving the home from the next. The
70
- // candidate list is BROWSER_DRIVER_PACKAGES so it stays in sync with the
71
- // completeness gate above (Safari included).
72
- for (const driverName of BROWSER_DRIVER_PACKAGES) {
73
- const driverEntry = resolveHeavyDepPath(driverName, {
74
- cacheDir: ctx.cacheDir,
75
- });
76
- const home = driverEntry ? appiumHomeForDriverPath(driverEntry) : null;
77
- if (home) {
78
- process.env.APPIUM_HOME = home;
79
- return;
80
- }
81
- }
82
- /* c8 ignore start - legacy fallback (step 3), reached only when NONE of the
83
- * BROWSER_DRIVER_PACKAGES (appium-chromium-driver first) resolves via
84
- * resolveHeavyDepPath in step 2 above. chromium/gecko are installed
85
- * dependencies of this repo that shim-resolve first on every measured CI leg
86
- * -- the cross-platform coverage union shows step 2's return (lines 49-57)
87
- * covered and never reaches here -- so step 2 always returns before this
88
- * fallback runs. It exists for driver-less installs and can't be exercised
89
- * hermetically without uninstalling a real dependency the runner and the
90
- * rest of the suite depend on (ADR 01017). */
91
- // 3. Legacy fallback: walk up from core's node_modules looking for appium.
92
- const corePath = path.join(__dirname, "../../node_modules");
93
- const pathArray = corePath.split("node_modules");
94
- let appiumParentPath = pathArray[0];
95
- for (let i = 1; i < pathArray.length; i++) {
96
- if (existsSync(path.join(appiumParentPath, "node_modules", "appium"))) {
97
- break;
98
- }
99
- appiumParentPath = path.join(appiumParentPath, "node_modules", pathArray[i]);
100
- }
101
- process.env.APPIUM_HOME = appiumParentPath;
76
+ process.env.APPIUM_HOME = getRuntimeDir({ cacheDir: ctx.cacheDir });
102
77
  }
103
- /* c8 ignore stop */
104
78
  //# sourceMappingURL=appium.js.map