@interactors/core 1.0.0 → 1.0.1

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 (332) hide show
  1. package/esm/mod.d.ts +2 -0
  2. package/esm/mod.d.ts.map +1 -0
  3. package/esm/mod.js +2 -0
  4. package/esm/mod.js.map +1 -0
  5. package/esm/package.json +3 -0
  6. package/{dist → esm/src}/constructor.d.ts +1 -1
  7. package/esm/src/constructor.d.ts.map +1 -0
  8. package/{dist/esm → esm/src}/constructor.js +12 -12
  9. package/esm/src/constructor.js.map +1 -0
  10. package/esm/src/converge.d.ts +3 -0
  11. package/esm/src/converge.d.ts.map +1 -0
  12. package/esm/src/converge.js.map +1 -0
  13. package/{dist → esm/src}/create-interactor.d.ts +1 -1
  14. package/esm/src/create-interactor.d.ts.map +1 -0
  15. package/{dist/esm → esm/src}/create-interactor.js +1 -1
  16. package/esm/src/create-interactor.js.map +1 -0
  17. package/esm/src/element/click.d.ts +3 -0
  18. package/esm/src/element/click.d.ts.map +1 -0
  19. package/esm/src/element/click.js +5 -0
  20. package/esm/src/element/click.js.map +1 -0
  21. package/esm/src/errors.d.ts.map +1 -0
  22. package/esm/src/errors.js +45 -0
  23. package/esm/src/errors.js.map +1 -0
  24. package/esm/src/escape-html.d.ts.map +1 -0
  25. package/esm/src/escape-html.js.map +1 -0
  26. package/{dist → esm/src}/filter-set.d.ts +1 -1
  27. package/esm/src/filter-set.d.ts.map +1 -0
  28. package/{dist/esm → esm/src}/filter-set.js +14 -6
  29. package/esm/src/filter-set.js.map +1 -0
  30. package/{dist → esm/src}/format.d.ts +2 -2
  31. package/esm/src/format.d.ts.map +1 -0
  32. package/esm/src/format.js.map +1 -0
  33. package/esm/src/index.d.ts +18 -0
  34. package/esm/src/index.d.ts.map +1 -0
  35. package/esm/src/index.js +13 -0
  36. package/esm/src/index.js.map +1 -0
  37. package/{dist → esm/src}/inspector.d.ts +1 -1
  38. package/esm/src/inspector.d.ts.map +1 -0
  39. package/{dist/esm → esm/src}/inspector.js +3 -3
  40. package/esm/src/inspector.js.map +1 -0
  41. package/{dist → esm/src}/interaction.d.ts +3 -3
  42. package/esm/src/interaction.d.ts.map +1 -0
  43. package/{dist/esm → esm/src}/interaction.js +2 -2
  44. package/esm/src/interaction.js.map +1 -0
  45. package/{dist → esm/src}/locator.d.ts +2 -2
  46. package/esm/src/locator.d.ts.map +1 -0
  47. package/esm/src/locator.js +25 -0
  48. package/esm/src/locator.js.map +1 -0
  49. package/{dist → esm/src}/match.d.ts +4 -4
  50. package/esm/src/match.d.ts.map +1 -0
  51. package/{dist/esm → esm/src}/match.js +99 -16
  52. package/esm/src/match.js.map +1 -0
  53. package/esm/src/matcher.d.ts.map +1 -0
  54. package/esm/src/matcher.js.map +1 -0
  55. package/esm/src/matchers/and.d.ts +3 -0
  56. package/esm/src/matchers/and.d.ts.map +1 -0
  57. package/{dist/esm → esm/src}/matchers/and.js +1 -1
  58. package/esm/src/matchers/and.js.map +1 -0
  59. package/esm/src/matchers/every.d.ts +3 -0
  60. package/esm/src/matchers/every.d.ts.map +1 -0
  61. package/{dist/esm → esm/src}/matchers/every.js +1 -1
  62. package/esm/src/matchers/every.js.map +1 -0
  63. package/esm/src/matchers/including.d.ts +3 -0
  64. package/esm/src/matchers/including.d.ts.map +1 -0
  65. package/{dist/esm → esm/src}/matchers/including.js +1 -1
  66. package/esm/src/matchers/including.js.map +1 -0
  67. package/esm/src/matchers/matching.d.ts +3 -0
  68. package/esm/src/matchers/matching.d.ts.map +1 -0
  69. package/{dist/esm → esm/src}/matchers/matching.js +1 -1
  70. package/esm/src/matchers/matching.js.map +1 -0
  71. package/esm/src/matchers/not.d.ts +3 -0
  72. package/esm/src/matchers/not.d.ts.map +1 -0
  73. package/{dist/esm → esm/src}/matchers/not.js +1 -1
  74. package/esm/src/matchers/not.js.map +1 -0
  75. package/esm/src/matchers/or.d.ts +3 -0
  76. package/esm/src/matchers/or.d.ts.map +1 -0
  77. package/{dist/esm → esm/src}/matchers/or.js +1 -1
  78. package/esm/src/matchers/or.js.map +1 -0
  79. package/esm/src/matchers/some.d.ts +3 -0
  80. package/esm/src/matchers/some.d.ts.map +1 -0
  81. package/{dist/esm → esm/src}/matchers/some.js +1 -1
  82. package/esm/src/matchers/some.js.map +1 -0
  83. package/esm/src/merge-objects.d.ts.map +1 -0
  84. package/{dist/cjs → esm/src}/merge-objects.js.map +1 -1
  85. package/{dist → esm/src}/resolvers.d.ts +1 -1
  86. package/esm/src/resolvers.d.ts.map +1 -0
  87. package/{dist/esm → esm/src}/resolvers.js +3 -3
  88. package/esm/src/resolvers.js.map +1 -0
  89. package/{dist → esm/src}/serialize.d.ts +3 -3
  90. package/esm/src/serialize.d.ts.map +1 -0
  91. package/{dist/esm → esm/src}/serialize.js +2 -3
  92. package/esm/src/serialize.js.map +1 -0
  93. package/{dist → esm/src}/specification.d.ts +6 -6
  94. package/esm/src/specification.d.ts.map +1 -0
  95. package/esm/src/specification.js.map +1 -0
  96. package/package.json +19 -47
  97. package/script/mod.d.ts +2 -0
  98. package/script/mod.d.ts.map +1 -0
  99. package/script/mod.js +18 -0
  100. package/script/mod.js.map +1 -0
  101. package/script/package.json +3 -0
  102. package/script/src/constructor.d.ts +4 -0
  103. package/script/src/constructor.d.ts.map +1 -0
  104. package/{dist/cjs → script/src}/constructor.js +53 -54
  105. package/script/src/constructor.js.map +1 -0
  106. package/script/src/converge.d.ts +3 -0
  107. package/script/src/converge.d.ts.map +1 -0
  108. package/{dist/cjs → script/src}/converge.js +1 -2
  109. package/script/src/converge.js.map +1 -0
  110. package/script/src/create-interactor.d.ts +18 -0
  111. package/script/src/create-interactor.d.ts.map +1 -0
  112. package/{dist/cjs → script/src}/create-interactor.js +3 -4
  113. package/script/src/create-interactor.js.map +1 -0
  114. package/script/src/element/click.d.ts +3 -0
  115. package/script/src/element/click.d.ts.map +1 -0
  116. package/script/src/element/click.js +8 -0
  117. package/script/src/element/click.js.map +1 -0
  118. package/script/src/errors.d.ts +13 -0
  119. package/script/src/errors.d.ts.map +1 -0
  120. package/{dist/cjs → script/src}/errors.js +24 -4
  121. package/script/src/errors.js.map +1 -0
  122. package/script/src/escape-html.d.ts +2 -0
  123. package/script/src/escape-html.d.ts.map +1 -0
  124. package/{dist/cjs → script/src}/escape-html.js +1 -2
  125. package/script/src/escape-html.js.map +1 -0
  126. package/script/src/filter-set.d.ts +10 -0
  127. package/script/src/filter-set.d.ts.map +1 -0
  128. package/{dist/cjs → script/src}/filter-set.js +16 -8
  129. package/script/src/filter-set.js.map +1 -0
  130. package/script/src/format.d.ts +10 -0
  131. package/script/src/format.d.ts.map +1 -0
  132. package/{dist/cjs → script/src}/format.js +3 -4
  133. package/script/src/format.js.map +1 -0
  134. package/script/src/index.d.ts +18 -0
  135. package/script/src/index.d.ts.map +1 -0
  136. package/{dist/cjs → script/src}/index.js +22 -22
  137. package/script/src/index.js.map +1 -0
  138. package/script/src/inspector.d.ts +17 -0
  139. package/script/src/inspector.d.ts.map +1 -0
  140. package/{dist/cjs → script/src}/inspector.js +5 -6
  141. package/script/src/inspector.js.map +1 -0
  142. package/script/src/interaction.d.ts +70 -0
  143. package/script/src/interaction.d.ts.map +1 -0
  144. package/{dist/cjs → script/src}/interaction.js +5 -6
  145. package/script/src/interaction.js.map +1 -0
  146. package/script/src/locator.d.ts +10 -0
  147. package/script/src/locator.d.ts.map +1 -0
  148. package/script/src/locator.js +29 -0
  149. package/script/src/locator.js.map +1 -0
  150. package/script/src/match.d.ts +54 -0
  151. package/script/src/match.d.ts.map +1 -0
  152. package/{dist/cjs → script/src}/match.js +105 -22
  153. package/script/src/match.js.map +1 -0
  154. package/script/src/matcher.d.ts +11 -0
  155. package/script/src/matcher.d.ts.map +1 -0
  156. package/{dist/cjs → script/src}/matcher.js +4 -5
  157. package/script/src/matcher.js.map +1 -0
  158. package/script/src/matchers/and.d.ts +3 -0
  159. package/script/src/matchers/and.d.ts.map +1 -0
  160. package/script/src/matchers/and.js +18 -0
  161. package/script/src/matchers/and.js.map +1 -0
  162. package/script/src/matchers/every.d.ts +3 -0
  163. package/script/src/matchers/every.d.ts.map +1 -0
  164. package/{dist/cjs → script/src}/matchers/every.js +5 -6
  165. package/script/src/matchers/every.js.map +1 -0
  166. package/script/src/matchers/including.d.ts +3 -0
  167. package/script/src/matchers/including.d.ts.map +1 -0
  168. package/{dist/cjs → script/src}/matchers/including.js +3 -4
  169. package/script/src/matchers/including.js.map +1 -0
  170. package/script/src/matchers/matching.d.ts +3 -0
  171. package/script/src/matchers/matching.d.ts.map +1 -0
  172. package/{dist/cjs → script/src}/matchers/matching.js +3 -4
  173. package/script/src/matchers/matching.js.map +1 -0
  174. package/script/src/matchers/not.d.ts +3 -0
  175. package/script/src/matchers/not.d.ts.map +1 -0
  176. package/script/src/matchers/not.js +18 -0
  177. package/script/src/matchers/not.js.map +1 -0
  178. package/script/src/matchers/or.d.ts +3 -0
  179. package/script/src/matchers/or.d.ts.map +1 -0
  180. package/script/src/matchers/or.js +18 -0
  181. package/script/src/matchers/or.js.map +1 -0
  182. package/script/src/matchers/some.d.ts +3 -0
  183. package/script/src/matchers/some.d.ts.map +1 -0
  184. package/{dist/cjs → script/src}/matchers/some.js +5 -6
  185. package/script/src/matchers/some.js.map +1 -0
  186. package/script/src/merge-objects.d.ts +2 -0
  187. package/script/src/merge-objects.d.ts.map +1 -0
  188. package/{dist/esm → script/src}/merge-objects.js.map +1 -1
  189. package/script/src/resolvers.d.ts +9 -0
  190. package/script/src/resolvers.d.ts.map +1 -0
  191. package/{dist/cjs → script/src}/resolvers.js +17 -18
  192. package/script/src/resolvers.js.map +1 -0
  193. package/script/src/serialize.d.ts +13 -0
  194. package/script/src/serialize.d.ts.map +1 -0
  195. package/{dist/cjs → script/src}/serialize.js +6 -8
  196. package/script/src/serialize.js.map +1 -0
  197. package/script/src/specification.d.ts +216 -0
  198. package/script/src/specification.d.ts.map +1 -0
  199. package/script/src/specification.js.map +1 -0
  200. package/src/mod.ts +1 -0
  201. package/src/{constructor.ts → src/constructor.ts} +15 -15
  202. package/src/{converge.ts → src/converge.ts} +1 -1
  203. package/src/{create-interactor.ts → src/create-interactor.ts} +2 -2
  204. package/src/src/element/click.ts +5 -0
  205. package/src/{filter-set.ts → src/filter-set.ts} +2 -3
  206. package/src/{format.ts → src/format.ts} +2 -2
  207. package/src/src/index.ts +19 -0
  208. package/src/{inspector.ts → src/inspector.ts} +3 -3
  209. package/src/{interaction.ts → src/interaction.ts} +4 -4
  210. package/src/{locator.ts → src/locator.ts} +3 -3
  211. package/src/{match.ts → src/match.ts} +5 -6
  212. package/src/{matchers → src/matchers}/and.ts +1 -1
  213. package/src/{matchers → src/matchers}/every.ts +1 -1
  214. package/src/{matchers → src/matchers}/including.ts +1 -1
  215. package/src/{matchers → src/matchers}/matching.ts +1 -1
  216. package/src/{matchers → src/matchers}/not.ts +1 -1
  217. package/src/{matchers → src/matchers}/or.ts +1 -1
  218. package/src/{matchers → src/matchers}/some.ts +1 -1
  219. package/src/{resolvers.ts → src/resolvers.ts} +4 -4
  220. package/src/{serialize.ts → src/serialize.ts} +4 -4
  221. package/src/{specification.ts → src/specification.ts} +6 -6
  222. package/dist/cjs/constructor.js.map +0 -1
  223. package/dist/cjs/converge.js.map +0 -1
  224. package/dist/cjs/create-interactor.js.map +0 -1
  225. package/dist/cjs/element/click.js +0 -12
  226. package/dist/cjs/element/click.js.map +0 -1
  227. package/dist/cjs/errors.js.map +0 -1
  228. package/dist/cjs/escape-html.js.map +0 -1
  229. package/dist/cjs/filter-set.js.map +0 -1
  230. package/dist/cjs/format.js.map +0 -1
  231. package/dist/cjs/index.js.map +0 -1
  232. package/dist/cjs/inspector.js.map +0 -1
  233. package/dist/cjs/interaction.js.map +0 -1
  234. package/dist/cjs/locator.js +0 -19
  235. package/dist/cjs/locator.js.map +0 -1
  236. package/dist/cjs/match.js.map +0 -1
  237. package/dist/cjs/matcher.js.map +0 -1
  238. package/dist/cjs/matchers/and.js +0 -19
  239. package/dist/cjs/matchers/and.js.map +0 -1
  240. package/dist/cjs/matchers/every.js.map +0 -1
  241. package/dist/cjs/matchers/including.js.map +0 -1
  242. package/dist/cjs/matchers/matching.js.map +0 -1
  243. package/dist/cjs/matchers/not.js +0 -19
  244. package/dist/cjs/matchers/not.js.map +0 -1
  245. package/dist/cjs/matchers/or.js +0 -19
  246. package/dist/cjs/matchers/or.js.map +0 -1
  247. package/dist/cjs/matchers/some.js.map +0 -1
  248. package/dist/cjs/resolvers.js.map +0 -1
  249. package/dist/cjs/serialize.js.map +0 -1
  250. package/dist/cjs/specification.js.map +0 -1
  251. package/dist/constructor.d.ts.map +0 -1
  252. package/dist/converge.d.ts +0 -3
  253. package/dist/converge.d.ts.map +0 -1
  254. package/dist/create-interactor.d.ts.map +0 -1
  255. package/dist/element/click.d.ts +0 -2
  256. package/dist/element/click.d.ts.map +0 -1
  257. package/dist/errors.d.ts.map +0 -1
  258. package/dist/escape-html.d.ts.map +0 -1
  259. package/dist/esm/constructor.js.map +0 -1
  260. package/dist/esm/converge.js.map +0 -1
  261. package/dist/esm/create-interactor.js.map +0 -1
  262. package/dist/esm/element/click.js +0 -5
  263. package/dist/esm/element/click.js.map +0 -1
  264. package/dist/esm/errors.js +0 -25
  265. package/dist/esm/errors.js.map +0 -1
  266. package/dist/esm/escape-html.js.map +0 -1
  267. package/dist/esm/filter-set.js.map +0 -1
  268. package/dist/esm/format.js.map +0 -1
  269. package/dist/esm/index.js +0 -13
  270. package/dist/esm/index.js.map +0 -1
  271. package/dist/esm/inspector.js.map +0 -1
  272. package/dist/esm/interaction.js.map +0 -1
  273. package/dist/esm/locator.js +0 -15
  274. package/dist/esm/locator.js.map +0 -1
  275. package/dist/esm/match.js.map +0 -1
  276. package/dist/esm/matcher.js.map +0 -1
  277. package/dist/esm/matchers/and.js.map +0 -1
  278. package/dist/esm/matchers/every.js.map +0 -1
  279. package/dist/esm/matchers/including.js.map +0 -1
  280. package/dist/esm/matchers/matching.js.map +0 -1
  281. package/dist/esm/matchers/not.js.map +0 -1
  282. package/dist/esm/matchers/or.js.map +0 -1
  283. package/dist/esm/matchers/some.js.map +0 -1
  284. package/dist/esm/resolvers.js.map +0 -1
  285. package/dist/esm/serialize.js.map +0 -1
  286. package/dist/esm/specification.js.map +0 -1
  287. package/dist/filter-set.d.ts.map +0 -1
  288. package/dist/format.d.ts.map +0 -1
  289. package/dist/index.d.ts +0 -17
  290. package/dist/index.d.ts.map +0 -1
  291. package/dist/inspector.d.ts.map +0 -1
  292. package/dist/interaction.d.ts.map +0 -1
  293. package/dist/locator.d.ts.map +0 -1
  294. package/dist/match.d.ts.map +0 -1
  295. package/dist/matcher.d.ts.map +0 -1
  296. package/dist/matchers/and.d.ts +0 -3
  297. package/dist/matchers/and.d.ts.map +0 -1
  298. package/dist/matchers/every.d.ts +0 -3
  299. package/dist/matchers/every.d.ts.map +0 -1
  300. package/dist/matchers/including.d.ts +0 -3
  301. package/dist/matchers/including.d.ts.map +0 -1
  302. package/dist/matchers/matching.d.ts +0 -3
  303. package/dist/matchers/matching.d.ts.map +0 -1
  304. package/dist/matchers/not.d.ts +0 -3
  305. package/dist/matchers/not.d.ts.map +0 -1
  306. package/dist/matchers/or.d.ts +0 -3
  307. package/dist/matchers/or.d.ts.map +0 -1
  308. package/dist/matchers/some.d.ts +0 -3
  309. package/dist/matchers/some.d.ts.map +0 -1
  310. package/dist/merge-objects.d.ts.map +0 -1
  311. package/dist/resolvers.d.ts.map +0 -1
  312. package/dist/serialize.d.ts.map +0 -1
  313. package/dist/specification.d.ts.map +0 -1
  314. package/dist/tsconfig.build.tsbuildinfo +0 -1
  315. package/src/element/click.ts +0 -5
  316. package/src/index.ts +0 -18
  317. /package/{dist/esm → esm/src}/converge.js +0 -0
  318. /package/{dist → esm/src}/errors.d.ts +0 -0
  319. /package/{dist → esm/src}/escape-html.d.ts +0 -0
  320. /package/{dist/esm → esm/src}/escape-html.js +0 -0
  321. /package/{dist/esm → esm/src}/format.js +0 -0
  322. /package/{dist → esm/src}/matcher.d.ts +0 -0
  323. /package/{dist/esm → esm/src}/matcher.js +0 -0
  324. /package/{dist → esm/src}/merge-objects.d.ts +0 -0
  325. /package/{dist/esm → esm/src}/merge-objects.js +0 -0
  326. /package/{dist/esm → esm/src}/specification.js +0 -0
  327. /package/{dist/cjs → script/src}/merge-objects.js +0 -0
  328. /package/{dist/cjs → script/src}/specification.js +0 -0
  329. /package/src/{errors.ts → src/errors.ts} +0 -0
  330. /package/src/{escape-html.ts → src/escape-html.ts} +0 -0
  331. /package/src/{matcher.ts → src/matcher.ts} +0 -0
  332. /package/src/{merge-objects.ts → src/merge-objects.ts} +0 -0
@@ -0,0 +1,216 @@
1
+ import type { Operation } from '@effection/core';
2
+ import type { FilterSet } from './filter-set.js';
3
+ import type { Locator } from './locator.js';
4
+ import type { ActionInteraction, AssertionInteraction } from './interaction.js';
5
+ import type { MergeObjects } from './merge-objects.js';
6
+ import type { MaybeMatcher } from './matcher.js';
7
+ export type EmptyObject = Record<never, never>;
8
+ /**
9
+ * Instances of an interactor returned by an {@link InteractorConstructor}, use
10
+ * this class as its base. They are also extended with any additional actions
11
+ * defined in their {@link InteractorSpecification}.
12
+ */
13
+ export interface Interactor<E extends Element, F extends FilterParams<any, any>> {
14
+ /**
15
+ * @hidden
16
+ */
17
+ options: InteractorOptions<E, any, any>;
18
+ /**
19
+ * @returns a human readable description of this interactor
20
+ */
21
+ description: string;
22
+ /**
23
+ * Perform a one-off action on the given interactor. Takes a function which
24
+ * receives an element. This function converges, which means that it is rerun
25
+ * in a loop until it does not throw an error or times out.
26
+ *
27
+ * We recommend using this function for debugging only. You should normally
28
+ * define an action in an {@link InteractorSpecification}.
29
+ *
30
+ * ## Example
31
+ *
32
+ * ``` typescript
33
+ * await Link('Next').perform((e) => e.click());
34
+ * ```
35
+ */
36
+ perform(fn: (element: E) => void): ActionInteraction<E, void>;
37
+ /**
38
+ * Perform a one-off assertion on the given interactor. Takes a function which
39
+ * receives an element. This function converges, which means that it is rerun
40
+ * in a loop until it does not throw an error or times out.
41
+ *
42
+ * We recommend using this function for debugging only. You should normally
43
+ * define a filter in an {@link InteractorSpecification}.
44
+ *
45
+ * ## Example
46
+ *
47
+ * ``` typescript
48
+ * await Link('Next').assert((e) => assert(e.tagName === 'A'));
49
+ * ```
50
+ */
51
+ assert(fn: (element: E) => void): AssertionInteraction<E, void>;
52
+ /**
53
+ * An assertion which checks that an element matching the interactor exists.
54
+ * Throws an error if the element does not exist.
55
+ *
56
+ * ## Example
57
+ *
58
+ * ``` typescript
59
+ * await Link('Next').exists();
60
+ * ```
61
+ */
62
+ exists(): AssertionInteraction<E, void> & FilterObject<boolean, Element>;
63
+ /**
64
+ * An assertion which checks that an element matching the interactor does not
65
+ * exist. Throws an error if the element exists.
66
+ *
67
+ * ## Example
68
+ *
69
+ * ``` typescript
70
+ * await Link('Next').absent();
71
+ * ```
72
+ */
73
+ absent(): AssertionInteraction<E, void> & FilterObject<boolean, Element>;
74
+ /**
75
+ * Checks that there is one element matching the interactor, and that this
76
+ * element matches the given filters. The available filters are defined by
77
+ * the {@link InteractorSpecification}.
78
+ *
79
+ * ## Example
80
+ *
81
+ * ``` typescript
82
+ * await Link('Home').has({ href: '/' })
83
+ * ```
84
+ */
85
+ has(filters: F): AssertionInteraction<E, void>;
86
+ /**
87
+ * Identical to {@link has}, but reads better with some filters.
88
+ *
89
+ * ## Example
90
+ *
91
+ * ``` typescript
92
+ * await CheckBox('Accept conditions').is({ checked: true })
93
+ * ```
94
+ */
95
+ is(filters: F): AssertionInteraction<E, void>;
96
+ /**
97
+ * Returns a copy of the given interactor which is scoped to this interactor.
98
+ * When there are multiple matches for an interactor, this makes it possible
99
+ * to make them more specific by limiting the interactor to a section of the
100
+ * page.
101
+ *
102
+ * ## Example
103
+ *
104
+ * ``` typescript
105
+ * await Fieldset('Owner').find(TextField('Name')).fillIn('Jonas');
106
+ * await Fieldset('Brand').find(TextField('Name')).fillIn('Volkswagen');
107
+ * ```
108
+ * @param interactor the interactor which should be scoped
109
+ * @returns a scoped copy of the initial interactor
110
+ * @typeParam T the type of the interactor that we are going to scope
111
+ */
112
+ find<T extends Interactor<any, any>>(interactor: T): T;
113
+ /**
114
+ * @hidden
115
+ */
116
+ apply: FilterFn<string, Element>;
117
+ }
118
+ export type ActionFn<E extends Element, I extends Interactor<E, any>> = (interactor: I, ...args: any[]) => Operation<unknown>;
119
+ export type FilterFn<T, E extends Element> = (element: E) => T;
120
+ export type FilterObject<T, E extends Element> = {
121
+ apply: FilterFn<T, E>;
122
+ default?: T;
123
+ };
124
+ export type FilterDefinition<T, E extends Element> = FilterFn<T, E> | FilterObject<T, E>;
125
+ export type Filters<E extends Element> = Record<string, FilterDefinition<unknown, E>>;
126
+ export type Actions<E extends Element, I extends Interactor<E, any>> = Record<string, ActionFn<E, I>>;
127
+ export type SelectorFn<E extends Element> = (parentElement: Element) => E[];
128
+ export type InteractorSpecification<E extends Element, F extends Filters<E>, A extends Actions<E, Interactor<E, EmptyObject>>> = {
129
+ /**
130
+ * The CSS selector that this interactor uses to find matching elements
131
+ */
132
+ selector?: string | SelectorFn<E>;
133
+ actions?: A;
134
+ filters?: F;
135
+ /**
136
+ * A function which returns a string value for a matched element, which can
137
+ * be used to locate a specific instance of this interactor. The `value`
138
+ * parameter of an {@link InteractorConstructor} must match the value
139
+ * returned from the locator function.
140
+ */
141
+ locator?: FilterDefinition<string, E>;
142
+ };
143
+ export type ActionMethods<E extends Element, A extends Actions<E, I>, I extends Interactor<E, any>> = {
144
+ [P in keyof A]: A[P] extends ((interactor: I, ...args: infer TArgs) => Operation<infer TReturn>) ? ((...args: TArgs) => ActionInteraction<E, TReturn>) : never;
145
+ };
146
+ export type FilterMethods<E extends Element, F extends Filters<E>> = {
147
+ [P in keyof F]: F[P] extends FilterFn<infer TReturn, any> ? (() => AssertionInteraction<E, TReturn> & FilterObject<TReturn, Element>) : F[P] extends FilterObject<infer TReturn, any> ? (() => AssertionInteraction<E, TReturn> & FilterObject<TReturn, Element>) : never;
148
+ };
149
+ export type FilterReturn<F> = {
150
+ [P in keyof F]?: F[P] extends MaybeMatcher<infer T> ? T : never;
151
+ };
152
+ export type FilterParams<E extends Element, F extends Filters<E>> = keyof F extends never ? never : {
153
+ [P in keyof F]?: F[P] extends FilterFn<infer TArg, E> ? MaybeMatcher<TArg> : F[P] extends FilterObject<infer TArg, E> ? MaybeMatcher<TArg> : never;
154
+ };
155
+ /**
156
+ * An interactor constructor is a function which can be used to initialize an
157
+ * {@link Interactor}. When calling {@link createInteractor}, you will get
158
+ * back an interactor constructor.
159
+ *
160
+ * The constructor can be called with a locator value, and an object of
161
+ * filters. Both are optional, and can be omitted.
162
+ *
163
+ * @typeParam E The type of DOM Element that this interactor operates on.
164
+ * @typeParam F the filters of this interactor, this is usually inferred from the specification
165
+ * @typeParam A the actions of this interactor, this is usually inferred from the specification
166
+ */
167
+ export interface InteractorConstructor<E extends Element, FP extends FilterParams<any, any>, FM extends FilterMethods<any, any>, AM extends ActionMethods<any, any, any>> {
168
+ interactorName: string;
169
+ selector(value: string | SelectorFn<E>): InteractorConstructor<E, FP, FM, AM>;
170
+ locator(value: FilterDefinition<string, E>): InteractorConstructor<E, FP, FM, AM>;
171
+ filters<FR extends Filters<E>>(filters: FR): InteractorConstructor<E, MergeObjects<FP, FilterParams<E, FR>>, MergeObjects<FM, FilterMethods<E, FR>>, AM>;
172
+ actions<I extends Interactor<E, FP> & FM & AM, AR extends Actions<E, I>>(actions: AR): InteractorConstructor<E, FP, FM, MergeObjects<AM, ActionMethods<E, AR, I>>>;
173
+ extend<ER extends E = E>(name: string): InteractorConstructor<ER, FP, FM, AM>;
174
+ /**
175
+ * The constructor can be called with filters only:
176
+ *
177
+ * ``` typescript
178
+ * Link({ id: 'home-link', href: '/' });
179
+ * ```
180
+ *
181
+ * Or with no arguments, this can be especially useful when finding a nested element.
182
+ *
183
+ * ```
184
+ * ListItem('JavaScript').find(Link()).click(); // click the only link within a specific list item
185
+ * ```
186
+ *
187
+ * @param filters An object describing a set of filters to apply, which should match the value of applying the filters defined in the {@link InteractorSpecification} to the element.
188
+ */
189
+ (filters?: FP): Interactor<E, FP> & FM & AM;
190
+ /**
191
+ * The constructor can be called with a locator:
192
+ *
193
+ * ``` typescript
194
+ * Link('Home');
195
+ * Link(/^home/i);
196
+ * ```
197
+ *
198
+ * Or with a locator and options:
199
+ *
200
+ * ``` typescript
201
+ * Link('Home', { href: '/' });
202
+ * ```
203
+ *
204
+ * @param value The locator value, which should match the value of applying the locator function defined in the {@link InteractorSpecification} to the element.
205
+ * @param filters An object describing a set of filters to apply, which should match the value of applying the filters defined in the {@link InteractorSpecification} to the element.
206
+ */
207
+ (value: MaybeMatcher<string> | RegExp, filters?: FP): Interactor<E, FP> & FM & AM;
208
+ }
209
+ export type InteractorOptions<E extends Element, F extends Filters<E>, A extends Actions<E, Interactor<E, EmptyObject>>> = {
210
+ name: string;
211
+ specification: InteractorSpecification<E, F, A>;
212
+ locator?: Locator<E>;
213
+ filter: FilterSet<E, F>;
214
+ ancestors: InteractorOptions<any, any, any>[];
215
+ };
216
+ //# sourceMappingURL=specification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specification.d.ts","sourceRoot":"","sources":["../../src/src/specification.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specification.js","sourceRoot":"","sources":["../../src/src/specification.ts"],"names":[],"mappings":";AAAA,uDAAuD"}
package/src/mod.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './src/index.js'
@@ -1,8 +1,8 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
 
3
- import { converge } from './converge';
4
- import { MergeObjects } from './merge-objects';
5
- import {
3
+ import { converge } from './converge.js';
4
+ import type { MergeObjects } from './merge-objects.js';
5
+ import type {
6
6
  InteractorOptions,
7
7
  ActionMethods,
8
8
  InteractorConstructor,
@@ -14,16 +14,16 @@ import {
14
14
  FilterMethods,
15
15
  InteractorSpecification,
16
16
  FilterObject,
17
- } from './specification';
18
- import { FilterSet } from './filter-set';
19
- import { Locator } from './locator';
20
- import { MatchFilter, applyFilter } from './match';
21
- import { formatDescription } from './format';
22
- import { FilterNotMatchingError } from './errors';
23
- import { createInteraction, AssertionInteraction, ActionInteraction } from './interaction';
24
- import { isMatcher } from './matcher';
25
- import { matching } from './matchers/matching';
26
- import { hasMatchMatching, resolveEmpty, resolveFirst, resolveUnique, unsafeSyncResolveParent, unsafeSyncResolveUnique } from './resolvers';
17
+ } from './specification.js';
18
+ import { FilterSet } from './filter-set.js';
19
+ import { Locator } from './locator.js';
20
+ import { MatchFilter, applyFilter } from './match.js';
21
+ import { formatDescription } from './format.js';
22
+ import { FilterNotMatchingError } from './errors.js';
23
+ import { createInteraction, type AssertionInteraction, type ActionInteraction } from './interaction.js';
24
+ import { isMatcher } from './matcher.js';
25
+ import { matching } from './matchers/matching.js';
26
+ import { hasMatchMatching, resolveEmpty, resolveFirst, resolveUnique, unsafeSyncResolveParent, unsafeSyncResolveUnique } from './resolvers.js';
27
27
 
28
28
  const defaultLocator: FilterDefinition<string, Element> = (element) => element.textContent || "";
29
29
 
@@ -137,7 +137,7 @@ export function instantiateInteractor<E extends Element, F extends Filters<E>, A
137
137
  };
138
138
 
139
139
  for (let [actionName, action] of Object.entries(options.specification.actions || {})) {
140
- if (!interactor.hasOwnProperty(actionName)) {
140
+ if (!Object.prototype.hasOwnProperty.call(interactor, actionName)) {
141
141
  Object.defineProperty(interactor, actionName, {
142
142
  value: function(...args: unknown[]) {
143
143
  let actionDescription = actionName;
@@ -160,7 +160,7 @@ export function instantiateInteractor<E extends Element, F extends Filters<E>, A
160
160
  }
161
161
 
162
162
  for (let [filterName, filter] of Object.entries(options.specification.filters || {})) {
163
- if (!interactor.hasOwnProperty(filterName)) {
163
+ if (!Object.prototype.hasOwnProperty.call(interactor, filterName)) {
164
164
  Object.defineProperty(interactor, filterName, {
165
165
  value: function() {
166
166
  return createInteraction('assertion', {
@@ -1,4 +1,4 @@
1
- import { Operation, sleep } from '@effection/core';
1
+ import { type Operation, sleep } from '@effection/core';
2
2
  import { performance } from 'performance-api';
3
3
  import { globals } from '@interactors/globals'
4
4
 
@@ -1,5 +1,5 @@
1
- import { EmptyObject, InteractorConstructor } from './specification';
2
- import { createConstructor } from './constructor';
1
+ import type { EmptyObject, InteractorConstructor } from './specification.js';
2
+ import { createConstructor } from './constructor.js';
3
3
 
4
4
  /**
5
5
  * Create a custom interactor with the given name.
@@ -0,0 +1,5 @@
1
+ import { userEvent } from '@testing-library/user-event'
2
+
3
+ export function click(...args: Parameters<typeof userEvent.click>): ReturnType<typeof userEvent.click> {
4
+ return userEvent.click(...args);
5
+ }
@@ -1,10 +1,9 @@
1
- import { Filters, FilterFn, FilterObject, FilterParams, InteractorSpecification } from './specification';
1
+ import type { Filters, FilterFn, FilterObject, FilterParams, InteractorSpecification } from './specification.js';
2
2
  import { noCase } from 'change-case';
3
- import { matcherDescription } from './matcher';
3
+ import { matcherDescription } from './matcher.js';
4
4
 
5
5
  export class FilterSet<E extends Element, F extends Filters<E>> {
6
6
  constructor(
7
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
7
  public specification: InteractorSpecification<E, F, any>,
9
8
  public filters: FilterParams<E, F>,
10
9
  ) {};
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Match } from "./match";
3
- import { InteractorOptions } from "./specification";
2
+ import type { Match } from "./match.js";
3
+ import type { InteractorOptions } from "./specification.js";
4
4
 
5
5
  export interface TableOptions {
6
6
  headers: string[];
@@ -0,0 +1,19 @@
1
+ export type { Interactor, InteractorConstructor, InteractorSpecification, EmptyObject, FilterMethods, ActionMethods } from './specification.js';
2
+ export type { Interaction, ActionInteraction, AssertionInteraction } from './interaction.js';
3
+ export { isInteraction } from './interaction.js'
4
+ export { createInteractor } from './create-interactor.js';
5
+ export { createInspector } from './inspector.js'
6
+ export { isVisible } from 'element-is-visible';
7
+ export type { Matcher } from './matcher.js';
8
+
9
+ export { including } from './matchers/including.js';
10
+ export { matching } from './matchers/matching.js';
11
+ export { and } from './matchers/and.js';
12
+ export { or } from './matchers/or.js';
13
+ export { not } from './matchers/not.js';
14
+ export { some } from './matchers/some.js';
15
+ export { every } from './matchers/every.js';
16
+
17
+ export { click } from './element/click.js';
18
+ export type { MergeObjects } from './merge-objects.js'
19
+ export type { MaybeMatcher } from './matcher.js'
@@ -1,8 +1,8 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
 
3
- import { instantiateInteractor } from "./constructor";
4
- import { findElements, unsafeSyncResolveParent } from './resolvers'
5
- import { Interactor, Filters, InteractorConstructor, FilterParams } from "./specification";
3
+ import { instantiateInteractor } from "./constructor.js";
4
+ import { findElements, unsafeSyncResolveParent } from './resolvers.js'
5
+ import type { Interactor, Filters, InteractorConstructor, FilterParams } from "./specification.js";
6
6
 
7
7
  type GetElement<I extends InteractorConstructor<any, any, any, any>> = I extends InteractorConstructor<infer E, any, any, any> ? E : never
8
8
  type GetFilters<I extends InteractorConstructor<any, any, any, any>> = I extends InteractorConstructor<any, infer F, any, any> ? F : never
@@ -1,8 +1,8 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Operation, Task, run, Symbol } from '@effection/core';
3
- import { InteractionOptions as SerializedInteractionOptions, globals, InteractionType } from '@interactors/globals';
4
- import type { Interactor, FilterObject, FilterFn, FilterParams } from './specification';
5
- import { serializeInteractionOptions } from './serialize';
2
+ import { type Operation, type Task, run, Symbol } from '@effection/core';
3
+ import { type InteractionOptions as SerializedInteractionOptions, globals, type InteractionType } from '@interactors/globals';
4
+ import type { Interactor, FilterObject, FilterFn, FilterParams } from './specification.js';
5
+ import { serializeInteractionOptions } from './serialize.js';
6
6
 
7
7
  const interactionSymbol: unique symbol = Symbol.for('interaction') as any;
8
8
 
@@ -1,6 +1,6 @@
1
- import { FilterDefinition } from './specification';
2
- import { matcherDescription, MaybeMatcher } from './matcher';
3
- import { applyFilter } from './match';
1
+ import type { FilterDefinition } from './specification.js';
2
+ import { matcherDescription, type MaybeMatcher } from './matcher.js';
3
+ import { applyFilter } from './match.js';
4
4
 
5
5
  export class Locator<E extends Element> {
6
6
  constructor(private definition: FilterDefinition<string, E>, public value: MaybeMatcher<string>) {}
@@ -1,8 +1,8 @@
1
- import { Locator } from './locator';
2
- import { FilterSet } from './filter-set';
3
- import { Filters, FilterDefinition } from './specification';
4
- import { escapeHtml } from './escape-html';
5
- import { MaybeMatcher, applyMatcher, matcherDescription } from './matcher';
1
+ import type { Locator } from './locator.js';
2
+ import type { FilterSet } from './filter-set.js';
3
+ import type { Filters, FilterDefinition } from './specification.js';
4
+ import { escapeHtml } from './escape-html.js';
5
+ import { type MaybeMatcher, applyMatcher, matcherDescription } from './matcher.js';
6
6
 
7
7
  const check = (value: unknown): string => value ? "✓" : "⨯";
8
8
 
@@ -110,7 +110,6 @@ export class MatchFilter<E extends Element, F extends Filters<E>> {
110
110
  }
111
111
  }
112
112
 
113
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
114
113
  export function applyFilter<T>(definition: FilterDefinition<T, any>, element: Element): T {
115
114
  if(typeof(definition) === 'function') {
116
115
  return definition(element) as T;
@@ -1,4 +1,4 @@
1
- import { Matcher, MaybeMatcher, matcherDescription, applyMatcher, matcherCode } from '../matcher';
1
+ import { type Matcher, type MaybeMatcher, matcherDescription, applyMatcher, matcherCode } from '../matcher.js';
2
2
 
3
3
  export function and<T>(...args: MaybeMatcher<T>[]): Matcher<T> {
4
4
  return {
@@ -1,4 +1,4 @@
1
- import { Matcher, MaybeMatcher, applyMatcher, matcherDescription, matcherCode } from '../matcher';
1
+ import { type Matcher, type MaybeMatcher, applyMatcher, matcherDescription, matcherCode } from '../matcher.js';
2
2
 
3
3
  export function every<T>(expected: MaybeMatcher<T>): Matcher<Iterable<T>> {
4
4
  return {
@@ -1,4 +1,4 @@
1
- import { Matcher, matcherCode} from '../matcher';
1
+ import { type Matcher, matcherCode} from '../matcher.js';
2
2
 
3
3
  export function including(subString: string): Matcher<string> {
4
4
  return {
@@ -1,4 +1,4 @@
1
- import { Matcher, matcherCode } from '../matcher';
1
+ import { type Matcher, matcherCode } from '../matcher.js';
2
2
 
3
3
  export function matching(regexp: RegExp): Matcher<string> {
4
4
  return {
@@ -1,4 +1,4 @@
1
- import { Matcher, MaybeMatcher, matcherDescription, applyMatcher, matcherCode } from '../matcher';
1
+ import { type Matcher, type MaybeMatcher, matcherDescription, applyMatcher, matcherCode } from '../matcher.js';
2
2
 
3
3
  export function not<T>(matcher: MaybeMatcher<T>): Matcher<T> {
4
4
  return {
@@ -1,4 +1,4 @@
1
- import { Matcher, MaybeMatcher, matcherDescription, applyMatcher, matcherCode } from '../matcher';
1
+ import { type Matcher, type MaybeMatcher, matcherDescription, applyMatcher, matcherCode } from '../matcher.js';
2
2
 
3
3
  export function or<T>(...args: MaybeMatcher<T>[]): Matcher<T> {
4
4
  return {
@@ -1,4 +1,4 @@
1
- import { Matcher, MaybeMatcher, applyMatcher, matcherDescription, matcherCode } from '../matcher';
1
+ import { type Matcher, type MaybeMatcher, applyMatcher, matcherDescription, matcherCode } from '../matcher.js';
2
2
 
3
3
  export function some<T>(expected: MaybeMatcher<T>): Matcher<Iterable<T>> {
4
4
  return {
@@ -2,10 +2,10 @@
2
2
  /* eslint-disable @typescript-eslint/no-explicit-any */
3
3
 
4
4
  import { globals } from '@interactors/globals';
5
- import { Match } from './match';
6
- import { NoSuchElementError, NotAbsentError, AmbiguousElementError } from './errors';
7
- import { formatDescription, formatMatchesTable } from './format';
8
- import { InteractorOptions } from './specification';
5
+ import { Match } from './match.js';
6
+ import { NoSuchElementError, NotAbsentError, AmbiguousElementError } from './errors.js';
7
+ import { formatDescription, formatMatchesTable } from './format.js';
8
+ import type { InteractorOptions } from './specification.js';
9
9
 
10
10
  const defaultSelector = 'div';
11
11
 
@@ -1,9 +1,9 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { InteractionOptions as SerializedInteractionOptions, InteractionType } from "@interactors/globals";
2
+ import type { InteractionOptions as SerializedInteractionOptions, InteractionType } from "@interactors/globals";
3
3
  import { pascalCase } from "change-case";
4
- import { InteractionOptions } from "./interaction";
5
- import { matcherCode } from "./matcher";
6
- import { InteractorOptions } from "./specification";
4
+ import type { InteractionOptions } from "./interaction.js";
5
+ import { matcherCode } from "./matcher.js";
6
+ import type { InteractorOptions } from "./specification.js";
7
7
 
8
8
  export function serializeInteractorOptions(options: InteractorOptions<any, any, any>): {
9
9
  interactor: string;
@@ -1,11 +1,11 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
 
3
- import { Operation } from '@effection/core';
4
- import { FilterSet } from './filter-set';
5
- import { Locator } from './locator';
6
- import { ActionInteraction, AssertionInteraction } from './interaction';
7
- import { MergeObjects } from './merge-objects';
8
- import { MaybeMatcher } from './matcher';
3
+ import type { Operation } from '@effection/core';
4
+ import type { FilterSet } from './filter-set.js';
5
+ import type { Locator } from './locator.js';
6
+ import type { ActionInteraction, AssertionInteraction } from './interaction.js';
7
+ import type { MergeObjects } from './merge-objects.js';
8
+ import type { MaybeMatcher } from './matcher.js';
9
9
 
10
10
  export type EmptyObject = Record<never, never>;
11
11
 
@@ -1 +0,0 @@
1
- {"version":3,"file":"constructor.js","sourceRoot":"","sources":["../../src/constructor.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"converge.js","sourceRoot":"","sources":["../../src/converge.ts"],"names":[],"mappings":";;;AAAA,0CAAmD;AACnD,qDAA8C;AAC9C,kDAA8C;AAE9C,QAAe,CAAC,CAAC,QAAQ,CAAI,EAAW;IACtC,IAAI,SAAS,GAAG,6BAAW,CAAC,GAAG,EAAE,CAAC;IAClC,OAAM,IAAI,EAAE,CAAC;QACX,IAAI,CAAC;YACH,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;QAAC,OAAM,CAAC,EAAE,CAAC;YACV,IAAI,IAAI,GAAG,6BAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACzC,IAAG,IAAI,GAAG,iBAAO,CAAC,iBAAiB,EAAE,CAAC;gBACpC,MAAM,CAAC,CAAC;YACV,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAA,YAAK,EAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAdD,4BAcC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-interactor.js","sourceRoot":"","sources":["../../src/create-interactor.ts"],"names":[],"mappings":";;;AACA,+CAAkD;AAElD;;;;;;;;;;;;;;GAcG;AACH,SAAgB,gBAAgB,CAAoB,IAAY;IAC9D,OAAO,IAAA,+BAAiB,EAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACrC,CAAC;AAFD,4CAEC"}
@@ -1,12 +0,0 @@
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
- exports.click = void 0;
7
- const user_event_1 = __importDefault(require("@testing-library/user-event"));
8
- function click(element, init) {
9
- return user_event_1.default.click(element, init);
10
- }
11
- exports.click = click;
12
- //# sourceMappingURL=click.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"click.js","sourceRoot":"","sources":["../../../src/element/click.ts"],"names":[],"mappings":";;;;;;AAAA,6EAAmD;AAEnD,SAAgB,KAAK,CAAC,OAAgB,EAAE,IAAqB;IAC3D,OAAO,oBAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC;AAFD,sBAEC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,kBAAmB,SAAQ,KAAK;IAA7C;;QACE,SAAI,GAAG,oBAAoB,CAAC;IAC9B,CAAC;CAAA;AAFD,gDAEC;AAED,MAAa,qBAAsB,SAAQ,KAAK;IAAhD;;QACE,SAAI,GAAG,uBAAuB,CAAC;IACjC,CAAC;CAAA;AAFD,sDAEC;AAED,MAAa,cAAe,SAAQ,KAAK;IAAzC;;QACE,SAAI,GAAG,gBAAgB,CAAC;IAC1B,CAAC;CAAA;AAFD,wCAEC;AAED,MAAa,sBAAuB,SAAQ,KAAK;IAAjD;;QACE,SAAI,GAAG,wBAAwB,CAAC;IAClC,CAAC;CAAA;AAFD,wDAEC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"escape-html.js","sourceRoot":"","sources":["../../src/escape-html.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAPD,gCAOC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"filter-set.js","sourceRoot":"","sources":["../../src/filter-set.ts"],"names":[],"mappings":";;;AACA,6CAAqC;AACrC,uCAA+C;AAE/C,MAAa,SAAS;IACpB;IACE,8DAA8D;IACvD,aAAiD,EACjD,OAA2B;QAD3B,kBAAa,GAAb,aAAa,CAAoC;QACjD,YAAO,GAAP,OAAO,CAAoB;IACjC,CAAC;IAAA,CAAC;IAEL,IAAI,WAAW;QACb,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAG,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAClC,IAAG,OAAM,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC/B,IAAG,KAAK,EAAE,CAAC;wBACT,OAAO,YAAY,IAAA,oBAAM,EAAC,GAAG,CAAC,EAAE,CAAC;oBACnC,CAAC;yBAAM,CAAC;wBACN,OAAO,gBAAgB,IAAA,oBAAM,EAAC,GAAG,CAAC,EAAE,CAAC;oBACvC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,QAAQ,IAAA,oBAAM,EAAC,GAAG,CAAC,IAAI,IAAA,4BAAkB,EAAC,KAAK,CAAC,EAAE,CAAA;gBAC3D,CAAC;YACH,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,IAAI,GAAG;QACL,IAAI,MAAM,GAA4B,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACtE,KAAI,IAAI,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAC1C,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAoD,CAAC;YACpG,IAAG,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,OAAM,CAAC,UAAU,CAAC,KAAK,UAAU,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;gBAC1F,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;YACnC,CAAC;QACH,CAAC;QACD,OAAO,MAA4B,CAAC;IACtC,CAAC;IAED,aAAa;QACX,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,IAAA,4BAAkB,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;CACF;AAxCD,8BAwCC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/format.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AACA,6CAAoG;AAArC,4GAAA,aAAa,OAAA;AAC5E,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,yCAA6C;AAApC,4GAAA,eAAe,OAAA;AACxB,yDAA+C;AAAtC,+GAAA,SAAS,OAAA;AAGlB,kDAAiD;AAAxC,sGAAA,SAAS,OAAA;AAClB,gDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AACjB,sCAAqC;AAA5B,0FAAA,GAAG,OAAA;AACZ,oCAAmC;AAA1B,wFAAA,EAAE,OAAA;AACX,sCAAqC;AAA5B,0FAAA,GAAG,OAAA;AACZ,wCAAuC;AAA9B,4FAAA,IAAI,OAAA;AACb,0CAAyC;AAAhC,8FAAA,KAAK,OAAA;AAEd,yCAAwC;AAA/B,8FAAA,KAAK,OAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"inspector.js","sourceRoot":"","sources":["../../src/inspector.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAEvD,+CAAsD;AACtD,2CAAmE;AAmBnE,SAAgB,eAAe,CAC7B,WAAe,EACf,aAAuB;IAEvB,+FAA+F;IAC/F,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC,OAAoC,CAAA;IAChE,OAAO;QACL,GAAG;YACD,IAAI,QAAQ,GAAG,IAAA,wBAAY,EAAiB,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,IAAA,mCAAuB,EAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;YACxG,OAAO,QAAQ,CAAC,GAAG,CACjB,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CACvB,IAAA,mCAAqB,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAsF,EAAE;gBACpI,OAAO;gBACP,IAAI,CAAsD,WAAc;oBACtE,OAAO,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;gBAC9C,CAAC;aACF,CAAC,CAAC,CACJ,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AApBD,0CAoBC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../src/interaction.ts"],"names":[],"mappings":"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"}