@empiricalrun/playwright-utils 0.22.6 → 0.23.0

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 (274) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/bundled/test-gen/actions/assert.d.ts +4 -0
  3. package/bundled/test-gen/actions/assert.d.ts.map +1 -0
  4. package/bundled/test-gen/actions/assert.js +50 -0
  5. package/bundled/test-gen/actions/click.d.ts +4 -0
  6. package/bundled/test-gen/actions/click.d.ts.map +1 -0
  7. package/bundled/test-gen/actions/click.js +51 -0
  8. package/bundled/test-gen/actions/constants/index.d.ts +2 -0
  9. package/bundled/test-gen/actions/constants/index.d.ts.map +1 -0
  10. package/bundled/test-gen/actions/constants/index.js +4 -0
  11. package/bundled/test-gen/actions/done.d.ts +4 -0
  12. package/bundled/test-gen/actions/done.d.ts.map +1 -0
  13. package/bundled/test-gen/actions/done.js +30 -0
  14. package/bundled/test-gen/actions/fill.d.ts +4 -0
  15. package/bundled/test-gen/actions/fill.d.ts.map +1 -0
  16. package/bundled/test-gen/actions/fill.js +82 -0
  17. package/bundled/test-gen/actions/goto.d.ts +4 -0
  18. package/bundled/test-gen/actions/goto.d.ts.map +1 -0
  19. package/bundled/test-gen/actions/goto.js +47 -0
  20. package/bundled/test-gen/actions/hover.d.ts +4 -0
  21. package/bundled/test-gen/actions/hover.d.ts.map +1 -0
  22. package/bundled/test-gen/actions/hover.js +51 -0
  23. package/bundled/test-gen/actions/index.d.ts +30 -0
  24. package/bundled/test-gen/actions/index.d.ts.map +1 -0
  25. package/bundled/test-gen/actions/index.js +159 -0
  26. package/bundled/test-gen/actions/next-task.d.ts +53 -0
  27. package/bundled/test-gen/actions/next-task.d.ts.map +1 -0
  28. package/bundled/test-gen/actions/next-task.js +58 -0
  29. package/bundled/test-gen/actions/press.d.ts +4 -0
  30. package/bundled/test-gen/actions/press.d.ts.map +1 -0
  31. package/bundled/test-gen/actions/press.js +56 -0
  32. package/bundled/test-gen/actions/skill.d.ts +21 -0
  33. package/bundled/test-gen/actions/skill.d.ts.map +1 -0
  34. package/bundled/test-gen/actions/skill.js +127 -0
  35. package/bundled/test-gen/actions/text-content.d.ts +4 -0
  36. package/bundled/test-gen/actions/text-content.d.ts.map +1 -0
  37. package/bundled/test-gen/actions/text-content.js +58 -0
  38. package/bundled/test-gen/actions/utils/index.d.ts +10 -0
  39. package/bundled/test-gen/actions/utils/index.d.ts.map +1 -0
  40. package/bundled/test-gen/actions/utils/index.js +109 -0
  41. package/bundled/test-gen/agent/browsing/index.d.ts +15 -0
  42. package/bundled/test-gen/agent/browsing/index.d.ts.map +1 -0
  43. package/bundled/test-gen/agent/browsing/index.js +68 -0
  44. package/bundled/test-gen/agent/browsing/run.d.ts +19 -0
  45. package/bundled/test-gen/agent/browsing/run.d.ts.map +1 -0
  46. package/bundled/test-gen/agent/browsing/run.js +88 -0
  47. package/bundled/test-gen/agent/browsing/utils.d.ts +41 -0
  48. package/bundled/test-gen/agent/browsing/utils.d.ts.map +1 -0
  49. package/bundled/test-gen/agent/browsing/utils.js +406 -0
  50. package/bundled/test-gen/agent/codegen/create-test-block.d.ts +9 -0
  51. package/bundled/test-gen/agent/codegen/create-test-block.d.ts.map +1 -0
  52. package/bundled/test-gen/agent/codegen/create-test-block.js +63 -0
  53. package/bundled/test-gen/agent/codegen/fix-ts-errors.d.ts +13 -0
  54. package/bundled/test-gen/agent/codegen/fix-ts-errors.d.ts.map +1 -0
  55. package/bundled/test-gen/agent/codegen/fix-ts-errors.js +80 -0
  56. package/bundled/test-gen/agent/codegen/generate-code-apply-changes.d.ts +13 -0
  57. package/bundled/test-gen/agent/codegen/generate-code-apply-changes.d.ts.map +1 -0
  58. package/bundled/test-gen/agent/codegen/generate-code-apply-changes.js +381 -0
  59. package/bundled/test-gen/agent/codegen/lexical-scoped-vars.d.ts +9 -0
  60. package/bundled/test-gen/agent/codegen/lexical-scoped-vars.d.ts.map +1 -0
  61. package/bundled/test-gen/agent/codegen/lexical-scoped-vars.js +56 -0
  62. package/bundled/test-gen/agent/codegen/repo-edit.d.ts +23 -0
  63. package/bundled/test-gen/agent/codegen/repo-edit.d.ts.map +1 -0
  64. package/bundled/test-gen/agent/codegen/repo-edit.js +86 -0
  65. package/bundled/test-gen/agent/codegen/run.d.ts +16 -0
  66. package/bundled/test-gen/agent/codegen/run.d.ts.map +1 -0
  67. package/bundled/test-gen/agent/codegen/run.js +119 -0
  68. package/bundled/test-gen/agent/codegen/skills-retriever.d.ts +26 -0
  69. package/bundled/test-gen/agent/codegen/skills-retriever.d.ts.map +1 -0
  70. package/bundled/test-gen/agent/codegen/skills-retriever.js +93 -0
  71. package/bundled/test-gen/agent/codegen/test-update-feedback.d.ts +12 -0
  72. package/bundled/test-gen/agent/codegen/test-update-feedback.d.ts.map +1 -0
  73. package/bundled/test-gen/agent/codegen/test-update-feedback.js +50 -0
  74. package/bundled/test-gen/agent/codegen/types.d.ts +25 -0
  75. package/bundled/test-gen/agent/codegen/types.d.ts.map +1 -0
  76. package/bundled/test-gen/agent/codegen/types.js +8 -0
  77. package/bundled/test-gen/agent/codegen/update-flow.d.ts +34 -0
  78. package/bundled/test-gen/agent/codegen/update-flow.d.ts.map +1 -0
  79. package/bundled/test-gen/agent/codegen/update-flow.js +300 -0
  80. package/bundled/test-gen/agent/codegen/use-skill.d.ts +11 -0
  81. package/bundled/test-gen/agent/codegen/use-skill.d.ts.map +1 -0
  82. package/bundled/test-gen/agent/codegen/use-skill.js +54 -0
  83. package/bundled/test-gen/agent/codegen/utils.d.ts +126 -0
  84. package/bundled/test-gen/agent/codegen/utils.d.ts.map +1 -0
  85. package/bundled/test-gen/agent/codegen/utils.js +416 -0
  86. package/bundled/test-gen/agent/diagnosis-agent/index.d.ts +18 -0
  87. package/bundled/test-gen/agent/diagnosis-agent/index.d.ts.map +1 -0
  88. package/bundled/test-gen/agent/diagnosis-agent/index.js +105 -0
  89. package/bundled/test-gen/agent/diagnosis-agent/strict-mode-violation.d.ts +9 -0
  90. package/bundled/test-gen/agent/diagnosis-agent/strict-mode-violation.d.ts.map +1 -0
  91. package/bundled/test-gen/agent/diagnosis-agent/strict-mode-violation.js +31 -0
  92. package/bundled/test-gen/agent/enrich-prompt/index.d.ts +12 -0
  93. package/bundled/test-gen/agent/enrich-prompt/index.d.ts.map +1 -0
  94. package/bundled/test-gen/agent/enrich-prompt/index.js +81 -0
  95. package/bundled/test-gen/agent/enrich-prompt/utils.d.ts +6 -0
  96. package/bundled/test-gen/agent/enrich-prompt/utils.d.ts.map +1 -0
  97. package/bundled/test-gen/agent/enrich-prompt/utils.js +12 -0
  98. package/bundled/test-gen/agent/infer-agent/index.d.ts +10 -0
  99. package/bundled/test-gen/agent/infer-agent/index.d.ts.map +1 -0
  100. package/bundled/test-gen/agent/infer-agent/index.js +70 -0
  101. package/bundled/test-gen/agent/master/action-tool-calls.d.ts +42 -0
  102. package/bundled/test-gen/agent/master/action-tool-calls.d.ts.map +1 -0
  103. package/bundled/test-gen/agent/master/action-tool-calls.js +87 -0
  104. package/bundled/test-gen/agent/master/browser-tests/fixtures.d.ts +9 -0
  105. package/bundled/test-gen/agent/master/browser-tests/fixtures.d.ts.map +1 -0
  106. package/bundled/test-gen/agent/master/browser-tests/fixtures.js +33 -0
  107. package/bundled/test-gen/agent/master/browser-tests/index.spec.d.ts +2 -0
  108. package/bundled/test-gen/agent/master/browser-tests/index.spec.d.ts.map +1 -0
  109. package/bundled/test-gen/agent/master/browser-tests/index.spec.js +113 -0
  110. package/bundled/test-gen/agent/master/browser-tests/skills.spec.d.ts +2 -0
  111. package/bundled/test-gen/agent/master/browser-tests/skills.spec.d.ts.map +1 -0
  112. package/bundled/test-gen/agent/master/browser-tests/skills.spec.js +109 -0
  113. package/bundled/test-gen/agent/master/element-annotation.d.ts +30 -0
  114. package/bundled/test-gen/agent/master/element-annotation.d.ts.map +1 -0
  115. package/bundled/test-gen/agent/master/element-annotation.js +195 -0
  116. package/bundled/test-gen/agent/master/execute-browser-action.d.ts +24 -0
  117. package/bundled/test-gen/agent/master/execute-browser-action.d.ts.map +1 -0
  118. package/bundled/test-gen/agent/master/execute-browser-action.js +124 -0
  119. package/bundled/test-gen/agent/master/execute-skill-action.d.ts +11 -0
  120. package/bundled/test-gen/agent/master/execute-skill-action.d.ts.map +1 -0
  121. package/bundled/test-gen/agent/master/execute-skill-action.js +25 -0
  122. package/bundled/test-gen/agent/master/icon-descriptor/index.d.ts +22 -0
  123. package/bundled/test-gen/agent/master/icon-descriptor/index.d.ts.map +1 -0
  124. package/bundled/test-gen/agent/master/icon-descriptor/index.js +250 -0
  125. package/bundled/test-gen/agent/master/icon-descriptor/normalize-svg.d.ts +2 -0
  126. package/bundled/test-gen/agent/master/icon-descriptor/normalize-svg.d.ts.map +1 -0
  127. package/bundled/test-gen/agent/master/icon-descriptor/normalize-svg.js +248 -0
  128. package/bundled/test-gen/agent/master/next-action.d.ts +22 -0
  129. package/bundled/test-gen/agent/master/next-action.d.ts.map +1 -0
  130. package/bundled/test-gen/agent/master/next-action.js +104 -0
  131. package/bundled/test-gen/agent/master/planner.d.ts +15 -0
  132. package/bundled/test-gen/agent/master/planner.d.ts.map +1 -0
  133. package/bundled/test-gen/agent/master/planner.js +144 -0
  134. package/bundled/test-gen/agent/master/run.d.ts +15 -0
  135. package/bundled/test-gen/agent/master/run.d.ts.map +1 -0
  136. package/bundled/test-gen/agent/master/run.js +274 -0
  137. package/bundled/test-gen/agent/master/scroller.d.ts +15 -0
  138. package/bundled/test-gen/agent/master/scroller.d.ts.map +1 -0
  139. package/bundled/test-gen/agent/master/scroller.js +375 -0
  140. package/bundled/test-gen/agent/master/with-hints.d.ts +17 -0
  141. package/bundled/test-gen/agent/master/with-hints.d.ts.map +1 -0
  142. package/bundled/test-gen/agent/master/with-hints.js +102 -0
  143. package/bundled/test-gen/agent/planner/run-time-planner.d.ts +15 -0
  144. package/bundled/test-gen/agent/planner/run-time-planner.d.ts.map +1 -0
  145. package/bundled/test-gen/agent/planner/run-time-planner.js +100 -0
  146. package/bundled/test-gen/agent/planner/run.d.ts +7 -0
  147. package/bundled/test-gen/agent/planner/run.d.ts.map +1 -0
  148. package/bundled/test-gen/agent/planner/run.js +127 -0
  149. package/bundled/test-gen/agent/utils.d.ts +2 -0
  150. package/bundled/test-gen/agent/utils.d.ts.map +1 -0
  151. package/bundled/test-gen/agent/utils.js +12 -0
  152. package/bundled/test-gen/bin/index.d.ts +3 -0
  153. package/bundled/test-gen/bin/index.d.ts.map +1 -0
  154. package/bundled/test-gen/bin/index.js +212 -0
  155. package/bundled/test-gen/bin/logger/index.d.ts +14 -0
  156. package/bundled/test-gen/bin/logger/index.d.ts.map +1 -0
  157. package/bundled/test-gen/bin/logger/index.js +57 -0
  158. package/bundled/test-gen/bin/utils/context.d.ts +13 -0
  159. package/bundled/test-gen/bin/utils/context.d.ts.map +1 -0
  160. package/bundled/test-gen/bin/utils/context.js +67 -0
  161. package/bundled/test-gen/bin/utils/fs/index.d.ts +6 -0
  162. package/bundled/test-gen/bin/utils/fs/index.d.ts.map +1 -0
  163. package/bundled/test-gen/bin/utils/fs/index.js +63 -0
  164. package/bundled/test-gen/bin/utils/index.d.ts +9 -0
  165. package/bundled/test-gen/bin/utils/index.d.ts.map +1 -0
  166. package/bundled/test-gen/bin/utils/index.js +64 -0
  167. package/bundled/test-gen/bin/utils/platform/web/index.d.ts +78 -0
  168. package/bundled/test-gen/bin/utils/platform/web/index.d.ts.map +1 -0
  169. package/bundled/test-gen/bin/utils/platform/web/index.js +544 -0
  170. package/bundled/test-gen/bin/utils/platform/web/test-files/ts-path-import-validate.d.ts +2 -0
  171. package/bundled/test-gen/bin/utils/platform/web/test-files/ts-path-import-validate.d.ts.map +1 -0
  172. package/bundled/test-gen/bin/utils/platform/web/test-files/ts-path-import-validate.js +7 -0
  173. package/bundled/test-gen/bin/utils/scenarios/index.d.ts +6 -0
  174. package/bundled/test-gen/bin/utils/scenarios/index.d.ts.map +1 -0
  175. package/bundled/test-gen/bin/utils/scenarios/index.js +57 -0
  176. package/bundled/test-gen/browser-injected-scripts/annotate-elements.js +615 -0
  177. package/bundled/test-gen/browser-injected-scripts/annotate-elements.spec.d.ts +2 -0
  178. package/bundled/test-gen/browser-injected-scripts/annotate-elements.spec.d.ts.map +1 -0
  179. package/bundled/test-gen/browser-injected-scripts/annotate-elements.spec.js +207 -0
  180. package/bundled/test-gen/browser-injected-scripts/annotate-elements.spec.ts +332 -0
  181. package/bundled/test-gen/constants/index.d.ts +7 -0
  182. package/bundled/test-gen/constants/index.d.ts.map +1 -0
  183. package/bundled/test-gen/constants/index.js +18 -0
  184. package/bundled/test-gen/errors/index.d.ts +5 -0
  185. package/bundled/test-gen/errors/index.d.ts.map +1 -0
  186. package/bundled/test-gen/errors/index.js +9 -0
  187. package/bundled/test-gen/evals/add-scenario-agent.evals.d.ts +4 -0
  188. package/bundled/test-gen/evals/add-scenario-agent.evals.d.ts.map +1 -0
  189. package/bundled/test-gen/evals/add-scenario-agent.evals.js +44 -0
  190. package/bundled/test-gen/evals/append-create-test-agent.evals.d.ts +4 -0
  191. package/bundled/test-gen/evals/append-create-test-agent.evals.d.ts.map +1 -0
  192. package/bundled/test-gen/evals/append-create-test-agent.evals.js +117 -0
  193. package/bundled/test-gen/evals/fetch-pom-skills-agent.evals.d.ts +4 -0
  194. package/bundled/test-gen/evals/fetch-pom-skills-agent.evals.d.ts.map +1 -0
  195. package/bundled/test-gen/evals/fetch-pom-skills-agent.evals.js +36 -0
  196. package/bundled/test-gen/evals/infer-master-or-code-agent.evals.d.ts +4 -0
  197. package/bundled/test-gen/evals/infer-master-or-code-agent.evals.d.ts.map +1 -0
  198. package/bundled/test-gen/evals/infer-master-or-code-agent.evals.js +22 -0
  199. package/bundled/test-gen/evals/master-agent.evals.d.ts +4 -0
  200. package/bundled/test-gen/evals/master-agent.evals.d.ts.map +1 -0
  201. package/bundled/test-gen/evals/master-agent.evals.js +35 -0
  202. package/bundled/test-gen/evals/type.d.ts +12 -0
  203. package/bundled/test-gen/evals/type.d.ts.map +1 -0
  204. package/bundled/test-gen/evals/type.js +2 -0
  205. package/bundled/test-gen/evals/update-scenario-agent.evals.d.ts +4 -0
  206. package/bundled/test-gen/evals/update-scenario-agent.evals.d.ts.map +1 -0
  207. package/bundled/test-gen/evals/update-scenario-agent.evals.js +47 -0
  208. package/bundled/test-gen/file/client.d.ts +14 -0
  209. package/bundled/test-gen/file/client.d.ts.map +1 -0
  210. package/bundled/test-gen/file/client.js +48 -0
  211. package/bundled/test-gen/file/server.d.ts +13 -0
  212. package/bundled/test-gen/file/server.d.ts.map +1 -0
  213. package/bundled/test-gen/file/server.js +52 -0
  214. package/bundled/test-gen/human-in-the-loop/cli.d.ts +2 -0
  215. package/bundled/test-gen/human-in-the-loop/cli.d.ts.map +1 -0
  216. package/bundled/test-gen/human-in-the-loop/cli.js +24 -0
  217. package/bundled/test-gen/human-in-the-loop/index.d.ts +12 -0
  218. package/bundled/test-gen/human-in-the-loop/index.d.ts.map +1 -0
  219. package/bundled/test-gen/human-in-the-loop/index.js +30 -0
  220. package/bundled/test-gen/human-in-the-loop/ipc.d.ts +4 -0
  221. package/bundled/test-gen/human-in-the-loop/ipc.d.ts.map +1 -0
  222. package/bundled/test-gen/human-in-the-loop/ipc.js +47 -0
  223. package/bundled/test-gen/index.d.ts +4 -0
  224. package/bundled/test-gen/index.d.ts.map +1 -0
  225. package/bundled/test-gen/index.js +55 -0
  226. package/bundled/test-gen/package.json +106 -0
  227. package/bundled/test-gen/page/index.d.ts +11 -0
  228. package/bundled/test-gen/page/index.d.ts.map +1 -0
  229. package/bundled/test-gen/page/index.js +16 -0
  230. package/bundled/test-gen/prompts/lib/ts-transformer.d.ts +4 -0
  231. package/bundled/test-gen/prompts/lib/ts-transformer.d.ts.map +1 -0
  232. package/bundled/test-gen/prompts/lib/ts-transformer.js +92 -0
  233. package/bundled/test-gen/reporter/index.d.ts +33 -0
  234. package/bundled/test-gen/reporter/index.d.ts.map +1 -0
  235. package/bundled/test-gen/reporter/index.js +161 -0
  236. package/bundled/test-gen/session/index.d.ts +20 -0
  237. package/bundled/test-gen/session/index.d.ts.map +1 -0
  238. package/bundled/test-gen/session/index.js +105 -0
  239. package/bundled/test-gen/test-build/index.d.ts +10 -0
  240. package/bundled/test-gen/test-build/index.d.ts.map +1 -0
  241. package/bundled/test-gen/test-build/index.js +30 -0
  242. package/bundled/test-gen/types/index.d.ts +69 -0
  243. package/bundled/test-gen/types/index.d.ts.map +1 -0
  244. package/bundled/test-gen/types/index.js +2 -0
  245. package/bundled/test-gen/uploader/index.d.ts +26 -0
  246. package/bundled/test-gen/uploader/index.d.ts.map +1 -0
  247. package/bundled/test-gen/uploader/index.js +102 -0
  248. package/bundled/test-gen/utils/env.d.ts +2 -0
  249. package/bundled/test-gen/utils/env.d.ts.map +1 -0
  250. package/bundled/test-gen/utils/env.js +9 -0
  251. package/bundled/test-gen/utils/exec.d.ts +4 -0
  252. package/bundled/test-gen/utils/exec.d.ts.map +1 -0
  253. package/bundled/test-gen/utils/exec.js +45 -0
  254. package/bundled/test-gen/utils/file.d.ts +2 -0
  255. package/bundled/test-gen/utils/file.d.ts.map +1 -0
  256. package/bundled/test-gen/utils/file.js +25 -0
  257. package/bundled/test-gen/utils/html.d.ts +4 -0
  258. package/bundled/test-gen/utils/html.d.ts.map +1 -0
  259. package/bundled/test-gen/utils/html.js +46 -0
  260. package/bundled/test-gen/utils/index.d.ts +2 -0
  261. package/bundled/test-gen/utils/index.d.ts.map +1 -0
  262. package/bundled/test-gen/utils/index.js +5 -0
  263. package/bundled/test-gen/utils/pw-test.d.ts +3 -0
  264. package/bundled/test-gen/utils/pw-test.d.ts.map +1 -0
  265. package/bundled/test-gen/utils/pw-test.js +26 -0
  266. package/bundled/test-gen/utils/slug.d.ts +2 -0
  267. package/bundled/test-gen/utils/slug.d.ts.map +1 -0
  268. package/bundled/test-gen/utils/slug.js +18 -0
  269. package/bundled/test-gen/utils/string.d.ts +2 -0
  270. package/bundled/test-gen/utils/string.d.ts.map +1 -0
  271. package/bundled/test-gen/utils/string.js +9 -0
  272. package/dist/overlay-tests/click.spec.js +1 -1
  273. package/package.json +3 -3
  274. package/scripts/prepare-publish.js +42 -0
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ // @ts-nocheck
7
+ const test_1 = require("@playwright/test");
8
+ const path_1 = __importDefault(require("path"));
9
+ const action_tool_calls_1 = require("../agent/master/action-tool-calls");
10
+ (0, test_1.test)("should annotate all links on empirical landing page", async ({ page, }) => {
11
+ await page.goto("https://assets-test.empirical.run/selector-hints-testing/dom-1.html");
12
+ await page.addScriptTag({
13
+ path: path_1.default.resolve(__dirname, "./annotate-elements.js"),
14
+ });
15
+ const annotations = await page.evaluate(() => {
16
+ // eslint-disable-next-line no-undef
17
+ const { annotations } = annotateElementsWithPreference();
18
+ return Object.entries(annotations).map(([, config]) => ({
19
+ innerText: config.node.innerText,
20
+ tagName: config.node.tagName,
21
+ href: config.node.href,
22
+ }));
23
+ });
24
+ test_1.test.expect(annotations).toEqual([
25
+ {
26
+ innerText: "Empirical",
27
+ tagName: "A",
28
+ href: "https://assets-test.empirical.run/",
29
+ },
30
+ {
31
+ innerText: "Blog",
32
+ tagName: "A",
33
+ href: "https://assets-test.empirical.run/blog",
34
+ },
35
+ {
36
+ innerText: "Contact us",
37
+ tagName: "A",
38
+ href: "https://assets-test.empirical.run/contact",
39
+ },
40
+ {
41
+ href: "https://dash.empirical.run/",
42
+ innerText: "Login ↗\n(opens in a new tab)",
43
+ tagName: "A",
44
+ },
45
+ {
46
+ innerText: "Get early access",
47
+ tagName: "A",
48
+ href: "https://assets-test.empirical.run/contact",
49
+ },
50
+ ]);
51
+ });
52
+ (0, test_1.test)("should annotate all important items on quizizz page", async ({ page, }) => {
53
+ await page.goto("https://assets-test.empirical.run/selector-hints-testing/dom-2/index.html");
54
+ await page.addScriptTag({
55
+ path: path_1.default.resolve(__dirname, "./annotate-elements.js"),
56
+ });
57
+ const annotations = await page.evaluate(() => {
58
+ // eslint-disable-next-line no-undef
59
+ const { annotations } = annotateElementsWithPreference();
60
+ return Object.entries(annotations).map(([hint, config]) => ({
61
+ hint,
62
+ innerText: config.node.innerText.toLowerCase().trim(),
63
+ tagName: config.node.tagName,
64
+ testId: config.node.getAttribute("data-testid"),
65
+ href: config.node.href,
66
+ }));
67
+ });
68
+ test_1.test
69
+ .expect(annotations.find((item) => item.innerText.includes("enter code")))
70
+ .toBeTruthy();
71
+ test_1.test
72
+ .expect(annotations.find((item) => item.innerText.includes("get help")))
73
+ .toBeTruthy();
74
+ test_1.test
75
+ .expect(annotations.find((item) => item.innerText.includes("create") &&
76
+ item.testId === "create-content-button"))
77
+ .toBeTruthy();
78
+ test_1.test
79
+ .expect(annotations.find((item) => item.innerText.includes("explore") &&
80
+ item.href === "https://quizizz.com/admin"))
81
+ .toBeTruthy();
82
+ test_1.test
83
+ .expect(annotations.find((item) => item.innerText.includes("library") &&
84
+ item.href === "https://quizizz.com/admin/my-library/createdByMe"))
85
+ .toBeTruthy();
86
+ test_1.test
87
+ .expect(annotations.find((item) => item.innerText.includes("reports") &&
88
+ item.href === "https://quizizz.com/admin/reports"))
89
+ .toBeTruthy();
90
+ test_1.test
91
+ .expect(annotations.find((item) => item.innerText.includes("classes") &&
92
+ item.href === "https://quizizz.com/admin/classes"))
93
+ .toBeTruthy();
94
+ test_1.test
95
+ .expect(annotations.find((item) => item.innerText.includes("accommodations") &&
96
+ item.href ===
97
+ "https://quizizz.com/admin/differentiation/accommodations"))
98
+ .toBeTruthy();
99
+ test_1.test
100
+ .expect(annotations.find((item) => item.innerText.includes("quizizz ai") &&
101
+ item.href === "https://quizizz.com/admin/quizizz-ai"))
102
+ .toBeTruthy();
103
+ test_1.test
104
+ .expect(annotations.find((item) => item.innerText.includes("start your free trial") &&
105
+ item.href === "https://quizizz.com/super-pricing"))
106
+ .toBeTruthy();
107
+ test_1.test
108
+ .expect(annotations.find((item) => item.innerText.includes("upgrade") &&
109
+ item.href === "https://quizizz.com/super-pricing?backto=/admin"))
110
+ .toBeTruthy();
111
+ test_1.test
112
+ .expect(annotations.find((item) => item.tagName === "INPUT" &&
113
+ item.testId === "emphasized-search-bar-input"))
114
+ .toBeTruthy();
115
+ test_1.test
116
+ .expect(annotations.find((item) => item.tagName === "BUTTON" &&
117
+ item.innerText.includes("verify details") &&
118
+ item.testId === "verify-profile-cta"))
119
+ .toBeTruthy();
120
+ test_1.test
121
+ .expect(annotations.find((item) => item.tagName === "BUTTON" && item.innerText.includes("for you")))
122
+ .toBeTruthy();
123
+ test_1.test
124
+ .expect(annotations.find((item) => item.tagName === "BUTTON" && item.innerText.includes("assessments")))
125
+ .toBeTruthy();
126
+ test_1.test
127
+ .expect(annotations.find((item) => item.tagName === "BUTTON" && item.innerText.includes("lessons")))
128
+ .toBeTruthy();
129
+ test_1.test
130
+ .expect(annotations.find((item) => item.tagName === "BUTTON" &&
131
+ item.innerText.includes("interactive videos")))
132
+ .toBeTruthy();
133
+ test_1.test
134
+ .expect(annotations.find((item) => item.tagName === "BUTTON" && item.innerText.includes("passages")))
135
+ .toBeTruthy();
136
+ });
137
+ (0, test_1.test)("should only annotate input fields on quizizz page", async ({ page }) => {
138
+ await page.goto("https://assets-test.empirical.run/selector-hints-testing/dom-2/index.html");
139
+ await page.addScriptTag({
140
+ path: path_1.default.resolve(__dirname, "./annotate-elements.js"),
141
+ });
142
+ const preference = {
143
+ actionType: action_tool_calls_1.ActionType.FILL,
144
+ };
145
+ const annotations = await page.evaluate((preference) => {
146
+ // eslint-disable-next-line no-undef
147
+ const { annotations } = annotateElementsWithPreference({
148
+ preference: preference,
149
+ });
150
+ return Object.entries(annotations).map(([hint, config]) => ({
151
+ hint,
152
+ innerText: config.node.innerText.toLowerCase().trim(),
153
+ tagName: config.node.tagName,
154
+ testId: config.node.getAttribute("data-testid"),
155
+ href: config.node.href,
156
+ }));
157
+ }, preference);
158
+ test_1.test.expect(annotations.length).toBe(1);
159
+ test_1.test.expect(annotations[0].testId).toBe("emphasized-search-bar-input");
160
+ });
161
+ (0, test_1.test)("should only annotate given text on quizziz page", async ({ page }) => {
162
+ await page.goto("https://assets-test.empirical.run/selector-hints-testing/dom-2/index.html");
163
+ await page.addScriptTag({
164
+ path: path_1.default.resolve(__dirname, "./annotate-elements.js"),
165
+ });
166
+ const preference = {
167
+ actionType: action_tool_calls_1.ActionType.ASSERT_TEXT,
168
+ assertionText: "What are you teaching today?",
169
+ };
170
+ const annotations = await page.evaluate((preference) => {
171
+ // eslint-disable-next-line no-undef
172
+ const { annotations } = annotateElementsWithPreference({
173
+ preference: preference,
174
+ });
175
+ return Object.entries(annotations).map(([hint, config]) => ({
176
+ hint,
177
+ innerText: config.node.innerText?.toLowerCase().trim(),
178
+ tagName: config.node.tagName,
179
+ testId: config.node.getAttribute("data-testid"),
180
+ href: config.node.href,
181
+ }));
182
+ }, preference);
183
+ test_1.test.expect(annotations.length).toBe(1);
184
+ test_1.test.expect(annotations[0]?.tagName).toBe("DIV");
185
+ });
186
+ (0, test_1.test)("should not annotate children that don't have onClick handler", async ({ page, }) => {
187
+ await page.setContent(`<div class="button-outer" onclick="alert('clicked')">
188
+ <div class="button-inner">Click me</div>
189
+ </div>`);
190
+ await page.addScriptTag({
191
+ path: path_1.default.resolve(__dirname, "./annotate-elements.js"),
192
+ });
193
+ const annotations = await page.evaluate(() => {
194
+ // eslint-disable-next-line no-undef
195
+ const { annotations } = annotateElementsWithPreference();
196
+ return Object.entries(annotations).map(([hint, config]) => ({
197
+ hint,
198
+ innerText: config.node.innerText?.toLowerCase().trim(),
199
+ tagName: config.node.tagName,
200
+ testId: config.node.getAttribute("data-testid"),
201
+ className: config.node.className,
202
+ }));
203
+ });
204
+ console.log(annotations);
205
+ test_1.test.expect(annotations.length).toBe(1);
206
+ test_1.test.expect(annotations[0].className).toBe("button-outer");
207
+ });
@@ -0,0 +1,332 @@
1
+ // @ts-nocheck
2
+
3
+ import { test } from "@playwright/test";
4
+ import path from "path";
5
+
6
+ import { ActionType } from "../agent/master/action-tool-calls";
7
+ import { AnnotationPreference } from "../agent/master/element-annotation";
8
+
9
+ test("should annotate all links on empirical landing page", async ({
10
+ page,
11
+ }) => {
12
+ await page.goto(
13
+ "https://assets-test.empirical.run/selector-hints-testing/dom-1.html",
14
+ );
15
+
16
+ await page.addScriptTag({
17
+ path: path.resolve(__dirname, "./annotate-elements.js"),
18
+ });
19
+
20
+ const annotations = await page.evaluate(() => {
21
+ // eslint-disable-next-line no-undef
22
+ const { annotations } = annotateElementsWithPreference();
23
+
24
+ return Object.entries(annotations).map(([, config]) => ({
25
+ innerText: config.node.innerText,
26
+ tagName: config.node.tagName,
27
+ href: config.node.href,
28
+ }));
29
+ });
30
+
31
+ test.expect(annotations).toEqual([
32
+ {
33
+ innerText: "Empirical",
34
+ tagName: "A",
35
+ href: "https://assets-test.empirical.run/",
36
+ },
37
+ {
38
+ innerText: "Blog",
39
+ tagName: "A",
40
+ href: "https://assets-test.empirical.run/blog",
41
+ },
42
+ {
43
+ innerText: "Contact us",
44
+ tagName: "A",
45
+ href: "https://assets-test.empirical.run/contact",
46
+ },
47
+ {
48
+ href: "https://dash.empirical.run/",
49
+ innerText: "Login ↗\n(opens in a new tab)",
50
+ tagName: "A",
51
+ },
52
+ {
53
+ innerText: "Get early access",
54
+ tagName: "A",
55
+ href: "https://assets-test.empirical.run/contact",
56
+ },
57
+ ]);
58
+ });
59
+
60
+ test("should annotate all important items on quizizz page", async ({
61
+ page,
62
+ }) => {
63
+ await page.goto(
64
+ "https://assets-test.empirical.run/selector-hints-testing/dom-2/index.html",
65
+ );
66
+
67
+ await page.addScriptTag({
68
+ path: path.resolve(__dirname, "./annotate-elements.js"),
69
+ });
70
+
71
+ const annotations = await page.evaluate(() => {
72
+ // eslint-disable-next-line no-undef
73
+ const { annotations } = annotateElementsWithPreference();
74
+
75
+ return Object.entries(annotations).map(([hint, config]) => ({
76
+ hint,
77
+ innerText: config.node.innerText.toLowerCase().trim(),
78
+ tagName: config.node.tagName,
79
+ testId: config.node.getAttribute("data-testid"),
80
+ href: config.node.href,
81
+ }));
82
+ });
83
+
84
+ test
85
+ .expect(annotations.find((item) => item.innerText.includes("enter code")))
86
+ .toBeTruthy();
87
+ test
88
+ .expect(annotations.find((item) => item.innerText.includes("get help")))
89
+ .toBeTruthy();
90
+ test
91
+ .expect(
92
+ annotations.find(
93
+ (item) =>
94
+ item.innerText.includes("create") &&
95
+ item.testId === "create-content-button",
96
+ ),
97
+ )
98
+ .toBeTruthy();
99
+ test
100
+ .expect(
101
+ annotations.find(
102
+ (item) =>
103
+ item.innerText.includes("explore") &&
104
+ item.href === "https://quizizz.com/admin",
105
+ ),
106
+ )
107
+ .toBeTruthy();
108
+ test
109
+ .expect(
110
+ annotations.find(
111
+ (item) =>
112
+ item.innerText.includes("library") &&
113
+ item.href === "https://quizizz.com/admin/my-library/createdByMe",
114
+ ),
115
+ )
116
+ .toBeTruthy();
117
+ test
118
+ .expect(
119
+ annotations.find(
120
+ (item) =>
121
+ item.innerText.includes("reports") &&
122
+ item.href === "https://quizizz.com/admin/reports",
123
+ ),
124
+ )
125
+ .toBeTruthy();
126
+ test
127
+ .expect(
128
+ annotations.find(
129
+ (item) =>
130
+ item.innerText.includes("classes") &&
131
+ item.href === "https://quizizz.com/admin/classes",
132
+ ),
133
+ )
134
+ .toBeTruthy();
135
+ test
136
+ .expect(
137
+ annotations.find(
138
+ (item) =>
139
+ item.innerText.includes("accommodations") &&
140
+ item.href ===
141
+ "https://quizizz.com/admin/differentiation/accommodations",
142
+ ),
143
+ )
144
+ .toBeTruthy();
145
+ test
146
+ .expect(
147
+ annotations.find(
148
+ (item) =>
149
+ item.innerText.includes("quizizz ai") &&
150
+ item.href === "https://quizizz.com/admin/quizizz-ai",
151
+ ),
152
+ )
153
+ .toBeTruthy();
154
+ test
155
+ .expect(
156
+ annotations.find(
157
+ (item) =>
158
+ item.innerText.includes("start your free trial") &&
159
+ item.href === "https://quizizz.com/super-pricing",
160
+ ),
161
+ )
162
+ .toBeTruthy();
163
+ test
164
+ .expect(
165
+ annotations.find(
166
+ (item) =>
167
+ item.innerText.includes("upgrade") &&
168
+ item.href === "https://quizizz.com/super-pricing?backto=/admin",
169
+ ),
170
+ )
171
+ .toBeTruthy();
172
+
173
+ test
174
+ .expect(
175
+ annotations.find(
176
+ (item) =>
177
+ item.tagName === "INPUT" &&
178
+ item.testId === "emphasized-search-bar-input",
179
+ ),
180
+ )
181
+ .toBeTruthy();
182
+
183
+ test
184
+ .expect(
185
+ annotations.find(
186
+ (item) =>
187
+ item.tagName === "BUTTON" &&
188
+ item.innerText.includes("verify details") &&
189
+ item.testId === "verify-profile-cta",
190
+ ),
191
+ )
192
+ .toBeTruthy();
193
+
194
+ test
195
+ .expect(
196
+ annotations.find(
197
+ (item) =>
198
+ item.tagName === "BUTTON" && item.innerText.includes("for you"),
199
+ ),
200
+ )
201
+ .toBeTruthy();
202
+
203
+ test
204
+ .expect(
205
+ annotations.find(
206
+ (item) =>
207
+ item.tagName === "BUTTON" && item.innerText.includes("assessments"),
208
+ ),
209
+ )
210
+ .toBeTruthy();
211
+
212
+ test
213
+ .expect(
214
+ annotations.find(
215
+ (item) =>
216
+ item.tagName === "BUTTON" && item.innerText.includes("lessons"),
217
+ ),
218
+ )
219
+ .toBeTruthy();
220
+
221
+ test
222
+ .expect(
223
+ annotations.find(
224
+ (item) =>
225
+ item.tagName === "BUTTON" &&
226
+ item.innerText.includes("interactive videos"),
227
+ ),
228
+ )
229
+ .toBeTruthy();
230
+
231
+ test
232
+ .expect(
233
+ annotations.find(
234
+ (item) =>
235
+ item.tagName === "BUTTON" && item.innerText.includes("passages"),
236
+ ),
237
+ )
238
+ .toBeTruthy();
239
+ });
240
+
241
+ test("should only annotate input fields on quizizz page", async ({ page }) => {
242
+ await page.goto(
243
+ "https://assets-test.empirical.run/selector-hints-testing/dom-2/index.html",
244
+ );
245
+
246
+ await page.addScriptTag({
247
+ path: path.resolve(__dirname, "./annotate-elements.js"),
248
+ });
249
+
250
+ const preference = {
251
+ actionType: ActionType.FILL,
252
+ };
253
+ const annotations = await page.evaluate((preference) => {
254
+ // eslint-disable-next-line no-undef
255
+ const { annotations } = annotateElementsWithPreference({
256
+ preference: preference,
257
+ });
258
+
259
+ return Object.entries(annotations).map(([hint, config]) => ({
260
+ hint,
261
+ innerText: config.node.innerText.toLowerCase().trim(),
262
+ tagName: config.node.tagName,
263
+ testId: config.node.getAttribute("data-testid"),
264
+ href: config.node.href,
265
+ }));
266
+ }, preference);
267
+
268
+ test.expect(annotations.length).toBe(1);
269
+ test.expect(annotations[0].testId).toBe("emphasized-search-bar-input");
270
+ });
271
+
272
+ test("should only annotate given text on quizziz page", async ({ page }) => {
273
+ await page.goto(
274
+ "https://assets-test.empirical.run/selector-hints-testing/dom-2/index.html",
275
+ );
276
+
277
+ await page.addScriptTag({
278
+ path: path.resolve(__dirname, "./annotate-elements.js"),
279
+ });
280
+
281
+ const preference: AnnotationPreference = {
282
+ actionType: ActionType.ASSERT_TEXT,
283
+ assertionText: "What are you teaching today?",
284
+ };
285
+ const annotations = await page.evaluate((preference) => {
286
+ // eslint-disable-next-line no-undef
287
+ const { annotations } = annotateElementsWithPreference({
288
+ preference: preference,
289
+ });
290
+
291
+ return Object.entries(annotations).map(([hint, config]) => ({
292
+ hint,
293
+ innerText: config.node.innerText?.toLowerCase().trim(),
294
+ tagName: config.node.tagName,
295
+ testId: config.node.getAttribute("data-testid"),
296
+ href: config.node.href,
297
+ }));
298
+ }, preference);
299
+ test.expect(annotations.length).toBe(1);
300
+ test.expect(annotations[0]?.tagName).toBe("DIV");
301
+ });
302
+
303
+ test("should not annotate children that don't have onClick handler", async ({
304
+ page,
305
+ }) => {
306
+ await page.setContent(
307
+ `<div class="button-outer" onclick="alert('clicked')">
308
+ <div class="button-inner">Click me</div>
309
+ </div>`,
310
+ );
311
+
312
+ await page.addScriptTag({
313
+ path: path.resolve(__dirname, "./annotate-elements.js"),
314
+ });
315
+
316
+ const annotations = await page.evaluate(() => {
317
+ // eslint-disable-next-line no-undef
318
+ const { annotations } = annotateElementsWithPreference();
319
+
320
+ return Object.entries(annotations).map(([hint, config]) => ({
321
+ hint,
322
+ innerText: config.node.innerText?.toLowerCase().trim(),
323
+ tagName: config.node.tagName,
324
+ testId: config.node.getAttribute("data-testid"),
325
+ className: config.node.className,
326
+ }));
327
+ });
328
+
329
+ console.log(annotations);
330
+ test.expect(annotations.length).toBe(1);
331
+ test.expect(annotations[0].className).toBe("button-outer");
332
+ });
@@ -0,0 +1,7 @@
1
+ import { LLMModel, LLMProvider, ModelParameters } from "@empiricalrun/llm";
2
+ export declare const MODEL_API_KEYS: Record<LLMProvider, string>;
3
+ export declare const DEFAULT_MODEL_PROVIDER: LLMProvider;
4
+ export declare const DEFAULT_MODEL: LLMModel;
5
+ export declare const DEFAULT_MODEL_PARAMETERS: ModelParameters;
6
+ export declare const DEFAULT_O1_MODEL_PARAMETERS: ModelParameters;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE3E,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAItD,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,WAAsB,CAAC;AAE5D,eAAO,MAAM,aAAa,EAAE,QAAmB,CAAC;AAEhD,eAAO,MAAM,wBAAwB,EAAE,eAGtC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,eAGzC,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_O1_MODEL_PARAMETERS = exports.DEFAULT_MODEL_PARAMETERS = exports.DEFAULT_MODEL = exports.DEFAULT_MODEL_PROVIDER = exports.MODEL_API_KEYS = void 0;
4
+ exports.MODEL_API_KEYS = {
5
+ google: process.env.GOOGLE_API_KEY || "",
6
+ anthropic: process.env.ANTHROPIC_API_KEY || "",
7
+ openai: process.env.OPENAI_API_KEY || "",
8
+ };
9
+ exports.DEFAULT_MODEL_PROVIDER = "openai";
10
+ exports.DEFAULT_MODEL = "gpt-4o";
11
+ exports.DEFAULT_MODEL_PARAMETERS = {
12
+ temperature: 0.5,
13
+ max_completion_tokens: 8000,
14
+ };
15
+ exports.DEFAULT_O1_MODEL_PARAMETERS = {
16
+ temperature: 1,
17
+ max_completion_tokens: 35000,
18
+ };
@@ -0,0 +1,5 @@
1
+ export declare class TestGenError extends Error {
2
+ }
3
+ export declare class HumanApprovalDenied extends TestGenError {
4
+ }
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAC1C,qBAAa,mBAAoB,SAAQ,YAAY;CAAG"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HumanApprovalDenied = exports.TestGenError = void 0;
4
+ class TestGenError extends Error {
5
+ }
6
+ exports.TestGenError = TestGenError;
7
+ class HumanApprovalDenied extends TestGenError {
8
+ }
9
+ exports.HumanApprovalDenied = HumanApprovalDenied;
@@ -0,0 +1,4 @@
1
+ import { EvaluateFn } from "./type";
2
+ declare const addScenarioCodeAgentEvaluate: EvaluateFn;
3
+ export default addScenarioCodeAgentEvaluate;
4
+ //# sourceMappingURL=add-scenario-agent.evals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-scenario-agent.evals.d.ts","sourceRoot":"","sources":["../../src/evals/add-scenario-agent.evals.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AA2BpC,QAAA,MAAM,4BAA4B,EAAE,UAsBnC,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const path_1 = __importDefault(require("path"));
7
+ const run_1 = require("../agent/codegen/run");
8
+ function evaluateEqualityScore({ currentOutput, expectedOutput, }) {
9
+ for (const expectedFile of expectedOutput) {
10
+ if (!currentOutput.find((output) => {
11
+ if (output.filePath && expectedFile.filePath) {
12
+ return (path_1.default.basename(output.filePath) ===
13
+ path_1.default.basename(expectedFile.filePath));
14
+ }
15
+ return false;
16
+ })) {
17
+ return 0;
18
+ }
19
+ }
20
+ return 1;
21
+ }
22
+ const addScenarioCodeAgentEvaluate = async ({ item, trace }) => {
23
+ const { testCase, testFilePath, pageFiles, testFiles } = item.input;
24
+ const repoFiles = pageFiles + testFiles;
25
+ const repoAgentOutput = await (0, run_1.createTestWithCodeAgent)({
26
+ testCase,
27
+ file: testFilePath,
28
+ trace,
29
+ repoFiles,
30
+ });
31
+ return {
32
+ scores: [
33
+ {
34
+ name: "equality",
35
+ value: evaluateEqualityScore({
36
+ currentOutput: repoAgentOutput.fileChanges,
37
+ expectedOutput: item.expectedOutput,
38
+ }),
39
+ },
40
+ ],
41
+ output: repoAgentOutput.fileChanges,
42
+ };
43
+ };
44
+ exports.default = addScenarioCodeAgentEvaluate;
@@ -0,0 +1,4 @@
1
+ import { EvaluateFn } from "./type";
2
+ declare const appendCreateTestAgentEvaluate: EvaluateFn;
3
+ export default appendCreateTestAgentEvaluate;
4
+ //# sourceMappingURL=append-create-test-agent.evals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"append-create-test-agent.evals.d.ts","sourceRoot":"","sources":["../../src/evals/append-create-test-agent.evals.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AA8GpC,QAAA,MAAM,6BAA6B,EAAE,UAsCpC,CAAC;AAEF,eAAe,6BAA6B,CAAC"}