@interactors/core 1.0.0 → 1.1.0-alpha.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 (346) 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 +20 -13
  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 +21 -0
  34. package/esm/src/index.d.ts.map +1 -0
  35. package/esm/src/index.js +15 -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/{dist → esm/src}/matcher.d.ts +4 -0
  54. package/esm/src/matcher.d.ts.map +1 -0
  55. package/{dist/esm → esm/src}/matcher.js +8 -0
  56. package/esm/src/matcher.js.map +1 -0
  57. package/esm/src/matchers/and.d.ts +3 -0
  58. package/esm/src/matchers/and.d.ts.map +1 -0
  59. package/{dist/esm → esm/src}/matchers/and.js +2 -1
  60. package/esm/src/matchers/and.js.map +1 -0
  61. package/esm/src/matchers/every.d.ts +3 -0
  62. package/esm/src/matchers/every.d.ts.map +1 -0
  63. package/{dist/esm → esm/src}/matchers/every.js +2 -1
  64. package/esm/src/matchers/every.js.map +1 -0
  65. package/esm/src/matchers/including.d.ts +3 -0
  66. package/esm/src/matchers/including.d.ts.map +1 -0
  67. package/{dist/esm → esm/src}/matchers/including.js +2 -1
  68. package/esm/src/matchers/including.js.map +1 -0
  69. package/esm/src/matchers/matching.d.ts +3 -0
  70. package/esm/src/matchers/matching.d.ts.map +1 -0
  71. package/{dist/esm → esm/src}/matchers/matching.js +2 -1
  72. package/esm/src/matchers/matching.js.map +1 -0
  73. package/esm/src/matchers/not.d.ts +3 -0
  74. package/esm/src/matchers/not.d.ts.map +1 -0
  75. package/{dist/esm → esm/src}/matchers/not.js +2 -1
  76. package/esm/src/matchers/not.js.map +1 -0
  77. package/esm/src/matchers/or.d.ts +3 -0
  78. package/esm/src/matchers/or.d.ts.map +1 -0
  79. package/{dist/esm → esm/src}/matchers/or.js +2 -1
  80. package/esm/src/matchers/or.js.map +1 -0
  81. package/esm/src/matchers/some.d.ts +3 -0
  82. package/esm/src/matchers/some.d.ts.map +1 -0
  83. package/{dist/esm → esm/src}/matchers/some.js +2 -1
  84. package/esm/src/matchers/some.js.map +1 -0
  85. package/esm/src/merge-objects.d.ts +2 -0
  86. package/esm/src/merge-objects.d.ts.map +1 -0
  87. package/{dist/cjs → esm/src}/merge-objects.js.map +1 -1
  88. package/esm/src/metadata.d.ts +50 -0
  89. package/esm/src/metadata.d.ts.map +1 -0
  90. package/esm/src/metadata.js +96 -0
  91. package/esm/src/metadata.js.map +1 -0
  92. package/{dist → esm/src}/resolvers.d.ts +1 -1
  93. package/esm/src/resolvers.d.ts.map +1 -0
  94. package/{dist/esm → esm/src}/resolvers.js +3 -3
  95. package/esm/src/resolvers.js.map +1 -0
  96. package/{dist → esm/src}/serialize.d.ts +3 -3
  97. package/esm/src/serialize.d.ts.map +1 -0
  98. package/{dist/esm → esm/src}/serialize.js +2 -3
  99. package/esm/src/serialize.js.map +1 -0
  100. package/{dist → esm/src}/specification.d.ts +6 -6
  101. package/esm/src/specification.d.ts.map +1 -0
  102. package/esm/src/specification.js.map +1 -0
  103. package/package.json +19 -47
  104. package/script/mod.d.ts +2 -0
  105. package/script/mod.d.ts.map +1 -0
  106. package/script/mod.js +18 -0
  107. package/script/mod.js.map +1 -0
  108. package/script/package.json +3 -0
  109. package/script/src/constructor.d.ts +4 -0
  110. package/script/src/constructor.d.ts.map +1 -0
  111. package/{dist/cjs → script/src}/constructor.js +61 -55
  112. package/script/src/constructor.js.map +1 -0
  113. package/script/src/converge.d.ts +3 -0
  114. package/script/src/converge.d.ts.map +1 -0
  115. package/{dist/cjs → script/src}/converge.js +1 -2
  116. package/script/src/converge.js.map +1 -0
  117. package/script/src/create-interactor.d.ts +18 -0
  118. package/script/src/create-interactor.d.ts.map +1 -0
  119. package/{dist/cjs → script/src}/create-interactor.js +3 -4
  120. package/script/src/create-interactor.js.map +1 -0
  121. package/script/src/element/click.d.ts +3 -0
  122. package/script/src/element/click.d.ts.map +1 -0
  123. package/script/src/element/click.js +8 -0
  124. package/script/src/element/click.js.map +1 -0
  125. package/script/src/errors.d.ts +13 -0
  126. package/script/src/errors.d.ts.map +1 -0
  127. package/{dist/cjs → script/src}/errors.js +24 -4
  128. package/script/src/errors.js.map +1 -0
  129. package/script/src/escape-html.d.ts +2 -0
  130. package/script/src/escape-html.d.ts.map +1 -0
  131. package/{dist/cjs → script/src}/escape-html.js +1 -2
  132. package/script/src/escape-html.js.map +1 -0
  133. package/script/src/filter-set.d.ts +10 -0
  134. package/script/src/filter-set.d.ts.map +1 -0
  135. package/{dist/cjs → script/src}/filter-set.js +16 -8
  136. package/script/src/filter-set.js.map +1 -0
  137. package/script/src/format.d.ts +10 -0
  138. package/script/src/format.d.ts.map +1 -0
  139. package/{dist/cjs → script/src}/format.js +3 -4
  140. package/script/src/format.js.map +1 -0
  141. package/script/src/index.d.ts +21 -0
  142. package/script/src/index.d.ts.map +1 -0
  143. package/script/src/index.js +36 -0
  144. package/script/src/index.js.map +1 -0
  145. package/script/src/inspector.d.ts +17 -0
  146. package/script/src/inspector.d.ts.map +1 -0
  147. package/{dist/cjs → script/src}/inspector.js +5 -6
  148. package/script/src/inspector.js.map +1 -0
  149. package/script/src/interaction.d.ts +70 -0
  150. package/script/src/interaction.d.ts.map +1 -0
  151. package/{dist/cjs → script/src}/interaction.js +5 -6
  152. package/script/src/interaction.js.map +1 -0
  153. package/script/src/locator.d.ts +10 -0
  154. package/script/src/locator.d.ts.map +1 -0
  155. package/script/src/locator.js +29 -0
  156. package/script/src/locator.js.map +1 -0
  157. package/script/src/match.d.ts +54 -0
  158. package/script/src/match.d.ts.map +1 -0
  159. package/{dist/cjs → script/src}/match.js +105 -22
  160. package/script/src/match.js.map +1 -0
  161. package/script/src/matcher.d.ts +15 -0
  162. package/script/src/matcher.d.ts.map +1 -0
  163. package/{dist/cjs → script/src}/matcher.js +13 -5
  164. package/script/src/matcher.js.map +1 -0
  165. package/script/src/matchers/and.d.ts +3 -0
  166. package/script/src/matchers/and.d.ts.map +1 -0
  167. package/script/src/matchers/and.js +19 -0
  168. package/script/src/matchers/and.js.map +1 -0
  169. package/script/src/matchers/every.d.ts +3 -0
  170. package/script/src/matchers/every.d.ts.map +1 -0
  171. package/script/src/matchers/every.js +19 -0
  172. package/script/src/matchers/every.js.map +1 -0
  173. package/script/src/matchers/including.d.ts +3 -0
  174. package/script/src/matchers/including.d.ts.map +1 -0
  175. package/{dist/cjs → script/src}/matchers/including.js +4 -4
  176. package/script/src/matchers/including.js.map +1 -0
  177. package/script/src/matchers/matching.d.ts +3 -0
  178. package/script/src/matchers/matching.d.ts.map +1 -0
  179. package/{dist/cjs → script/src}/matchers/matching.js +4 -4
  180. package/script/src/matchers/matching.js.map +1 -0
  181. package/script/src/matchers/not.d.ts +3 -0
  182. package/script/src/matchers/not.d.ts.map +1 -0
  183. package/script/src/matchers/not.js +19 -0
  184. package/script/src/matchers/not.js.map +1 -0
  185. package/script/src/matchers/or.d.ts +3 -0
  186. package/script/src/matchers/or.d.ts.map +1 -0
  187. package/script/src/matchers/or.js +19 -0
  188. package/script/src/matchers/or.js.map +1 -0
  189. package/script/src/matchers/some.d.ts +3 -0
  190. package/script/src/matchers/some.d.ts.map +1 -0
  191. package/script/src/matchers/some.js +19 -0
  192. package/script/src/matchers/some.js.map +1 -0
  193. package/script/src/merge-objects.d.ts +2 -0
  194. package/script/src/merge-objects.d.ts.map +1 -0
  195. package/{dist/esm → script/src}/merge-objects.js.map +1 -1
  196. package/script/src/metadata.d.ts +50 -0
  197. package/script/src/metadata.d.ts.map +1 -0
  198. package/script/src/metadata.js +105 -0
  199. package/script/src/metadata.js.map +1 -0
  200. package/script/src/resolvers.d.ts +9 -0
  201. package/script/src/resolvers.d.ts.map +1 -0
  202. package/{dist/cjs → script/src}/resolvers.js +17 -18
  203. package/script/src/resolvers.js.map +1 -0
  204. package/script/src/serialize.d.ts +13 -0
  205. package/script/src/serialize.d.ts.map +1 -0
  206. package/{dist/cjs → script/src}/serialize.js +6 -8
  207. package/script/src/serialize.js.map +1 -0
  208. package/script/src/specification.d.ts +216 -0
  209. package/script/src/specification.d.ts.map +1 -0
  210. package/script/src/specification.js.map +1 -0
  211. package/src/mod.ts +1 -0
  212. package/src/{constructor.ts → src/constructor.ts} +25 -16
  213. package/src/{converge.ts → src/converge.ts} +1 -1
  214. package/src/{create-interactor.ts → src/create-interactor.ts} +2 -2
  215. package/src/src/element/click.ts +5 -0
  216. package/src/{errors.ts → src/errors.ts} +4 -4
  217. package/src/{filter-set.ts → src/filter-set.ts} +2 -3
  218. package/src/{format.ts → src/format.ts} +2 -2
  219. package/src/src/index.ts +31 -0
  220. package/src/{inspector.ts → src/inspector.ts} +3 -3
  221. package/src/{interaction.ts → src/interaction.ts} +4 -4
  222. package/src/{locator.ts → src/locator.ts} +3 -3
  223. package/src/{match.ts → src/match.ts} +5 -6
  224. package/src/{matcher.ts → src/matcher.ts} +12 -0
  225. package/src/{matchers → src/matchers}/and.ts +3 -1
  226. package/src/{matchers → src/matchers}/every.ts +3 -1
  227. package/src/{matchers → src/matchers}/including.ts +3 -1
  228. package/src/{matchers → src/matchers}/matching.ts +3 -1
  229. package/src/{matchers → src/matchers}/not.ts +3 -1
  230. package/src/{matchers → src/matchers}/or.ts +3 -1
  231. package/src/{matchers → src/matchers}/some.ts +3 -1
  232. package/src/src/merge-objects.ts +4 -0
  233. package/src/src/metadata.ts +166 -0
  234. package/src/{resolvers.ts → src/resolvers.ts} +4 -4
  235. package/src/{serialize.ts → src/serialize.ts} +4 -4
  236. package/src/{specification.ts → src/specification.ts} +6 -6
  237. package/dist/cjs/constructor.js.map +0 -1
  238. package/dist/cjs/converge.js.map +0 -1
  239. package/dist/cjs/create-interactor.js.map +0 -1
  240. package/dist/cjs/element/click.js +0 -12
  241. package/dist/cjs/element/click.js.map +0 -1
  242. package/dist/cjs/errors.js.map +0 -1
  243. package/dist/cjs/escape-html.js.map +0 -1
  244. package/dist/cjs/filter-set.js.map +0 -1
  245. package/dist/cjs/format.js.map +0 -1
  246. package/dist/cjs/index.js +0 -28
  247. package/dist/cjs/index.js.map +0 -1
  248. package/dist/cjs/inspector.js.map +0 -1
  249. package/dist/cjs/interaction.js.map +0 -1
  250. package/dist/cjs/locator.js +0 -19
  251. package/dist/cjs/locator.js.map +0 -1
  252. package/dist/cjs/match.js.map +0 -1
  253. package/dist/cjs/matcher.js.map +0 -1
  254. package/dist/cjs/matchers/and.js +0 -19
  255. package/dist/cjs/matchers/and.js.map +0 -1
  256. package/dist/cjs/matchers/every.js +0 -19
  257. package/dist/cjs/matchers/every.js.map +0 -1
  258. package/dist/cjs/matchers/including.js.map +0 -1
  259. package/dist/cjs/matchers/matching.js.map +0 -1
  260. package/dist/cjs/matchers/not.js +0 -19
  261. package/dist/cjs/matchers/not.js.map +0 -1
  262. package/dist/cjs/matchers/or.js +0 -19
  263. package/dist/cjs/matchers/or.js.map +0 -1
  264. package/dist/cjs/matchers/some.js +0 -19
  265. package/dist/cjs/matchers/some.js.map +0 -1
  266. package/dist/cjs/resolvers.js.map +0 -1
  267. package/dist/cjs/serialize.js.map +0 -1
  268. package/dist/cjs/specification.js.map +0 -1
  269. package/dist/constructor.d.ts.map +0 -1
  270. package/dist/converge.d.ts +0 -3
  271. package/dist/converge.d.ts.map +0 -1
  272. package/dist/create-interactor.d.ts.map +0 -1
  273. package/dist/element/click.d.ts +0 -2
  274. package/dist/element/click.d.ts.map +0 -1
  275. package/dist/errors.d.ts.map +0 -1
  276. package/dist/escape-html.d.ts.map +0 -1
  277. package/dist/esm/constructor.js.map +0 -1
  278. package/dist/esm/converge.js.map +0 -1
  279. package/dist/esm/create-interactor.js.map +0 -1
  280. package/dist/esm/element/click.js +0 -5
  281. package/dist/esm/element/click.js.map +0 -1
  282. package/dist/esm/errors.js +0 -25
  283. package/dist/esm/errors.js.map +0 -1
  284. package/dist/esm/escape-html.js.map +0 -1
  285. package/dist/esm/filter-set.js.map +0 -1
  286. package/dist/esm/format.js.map +0 -1
  287. package/dist/esm/index.js +0 -13
  288. package/dist/esm/index.js.map +0 -1
  289. package/dist/esm/inspector.js.map +0 -1
  290. package/dist/esm/interaction.js.map +0 -1
  291. package/dist/esm/locator.js +0 -15
  292. package/dist/esm/locator.js.map +0 -1
  293. package/dist/esm/match.js.map +0 -1
  294. package/dist/esm/matcher.js.map +0 -1
  295. package/dist/esm/matchers/and.js.map +0 -1
  296. package/dist/esm/matchers/every.js.map +0 -1
  297. package/dist/esm/matchers/including.js.map +0 -1
  298. package/dist/esm/matchers/matching.js.map +0 -1
  299. package/dist/esm/matchers/not.js.map +0 -1
  300. package/dist/esm/matchers/or.js.map +0 -1
  301. package/dist/esm/matchers/some.js.map +0 -1
  302. package/dist/esm/resolvers.js.map +0 -1
  303. package/dist/esm/serialize.js.map +0 -1
  304. package/dist/esm/specification.js.map +0 -1
  305. package/dist/filter-set.d.ts.map +0 -1
  306. package/dist/format.d.ts.map +0 -1
  307. package/dist/index.d.ts +0 -17
  308. package/dist/index.d.ts.map +0 -1
  309. package/dist/inspector.d.ts.map +0 -1
  310. package/dist/interaction.d.ts.map +0 -1
  311. package/dist/locator.d.ts.map +0 -1
  312. package/dist/match.d.ts.map +0 -1
  313. package/dist/matcher.d.ts.map +0 -1
  314. package/dist/matchers/and.d.ts +0 -3
  315. package/dist/matchers/and.d.ts.map +0 -1
  316. package/dist/matchers/every.d.ts +0 -3
  317. package/dist/matchers/every.d.ts.map +0 -1
  318. package/dist/matchers/including.d.ts +0 -3
  319. package/dist/matchers/including.d.ts.map +0 -1
  320. package/dist/matchers/matching.d.ts +0 -3
  321. package/dist/matchers/matching.d.ts.map +0 -1
  322. package/dist/matchers/not.d.ts +0 -3
  323. package/dist/matchers/not.d.ts.map +0 -1
  324. package/dist/matchers/or.d.ts +0 -3
  325. package/dist/matchers/or.d.ts.map +0 -1
  326. package/dist/matchers/some.d.ts +0 -3
  327. package/dist/matchers/some.d.ts.map +0 -1
  328. package/dist/merge-objects.d.ts +0 -2
  329. package/dist/merge-objects.d.ts.map +0 -1
  330. package/dist/resolvers.d.ts.map +0 -1
  331. package/dist/serialize.d.ts.map +0 -1
  332. package/dist/specification.d.ts.map +0 -1
  333. package/dist/tsconfig.build.tsbuildinfo +0 -1
  334. package/src/element/click.ts +0 -5
  335. package/src/index.ts +0 -18
  336. package/src/merge-objects.ts +0 -2
  337. /package/{dist/esm → esm/src}/converge.js +0 -0
  338. /package/{dist → esm/src}/errors.d.ts +0 -0
  339. /package/{dist → esm/src}/escape-html.d.ts +0 -0
  340. /package/{dist/esm → esm/src}/escape-html.js +0 -0
  341. /package/{dist/esm → esm/src}/format.js +0 -0
  342. /package/{dist/esm → esm/src}/merge-objects.js +0 -0
  343. /package/{dist/esm → esm/src}/specification.js +0 -0
  344. /package/{dist/cjs → script/src}/merge-objects.js +0 -0
  345. /package/{dist/cjs → script/src}/specification.js +0 -0
  346. /package/src/{escape-html.ts → src/escape-html.ts} +0 -0
@@ -1,11 +1,38 @@
1
- import { escapeHtml } from './escape-html';
2
- import { applyMatcher, matcherDescription } from './matcher';
1
+ import { escapeHtml } from './escape-html.js';
2
+ import { applyMatcher, matcherDescription } from './matcher.js';
3
3
  const check = (value) => value ? "✓" : "⨯";
4
4
  export class Match {
5
5
  constructor(element, filterSet, locator) {
6
- this.element = element;
7
- this.filterSet = filterSet;
8
- this.locator = locator;
6
+ Object.defineProperty(this, "element", {
7
+ enumerable: true,
8
+ configurable: true,
9
+ writable: true,
10
+ value: element
11
+ });
12
+ Object.defineProperty(this, "filterSet", {
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true,
16
+ value: filterSet
17
+ });
18
+ Object.defineProperty(this, "locator", {
19
+ enumerable: true,
20
+ configurable: true,
21
+ writable: true,
22
+ value: locator
23
+ });
24
+ Object.defineProperty(this, "matchLocator", {
25
+ enumerable: true,
26
+ configurable: true,
27
+ writable: true,
28
+ value: void 0
29
+ });
30
+ Object.defineProperty(this, "matchFilter", {
31
+ enumerable: true,
32
+ configurable: true,
33
+ writable: true,
34
+ value: void 0
35
+ });
9
36
  this.matchLocator = locator && new MatchLocator(element, locator);
10
37
  this.matchFilter = new MatchFilter(element, filterSet);
11
38
  }
@@ -29,8 +56,7 @@ export class Match {
29
56
  }
30
57
  }
31
58
  get sortWeight() {
32
- var _a;
33
- return (((_a = this.matchLocator) === null || _a === void 0 ? void 0 : _a.sortWeight) || 0) + this.matchFilter.sortWeight;
59
+ return (this.matchLocator?.sortWeight || 0) + this.matchFilter.sortWeight;
34
60
  }
35
61
  elementDescription() {
36
62
  let tag = this.element.tagName.toLowerCase();
@@ -42,8 +68,30 @@ export class Match {
42
68
  }
43
69
  export class MatchLocator {
44
70
  constructor(element, locator) {
45
- this.element = element;
46
- this.locator = locator;
71
+ Object.defineProperty(this, "element", {
72
+ enumerable: true,
73
+ configurable: true,
74
+ writable: true,
75
+ value: element
76
+ });
77
+ Object.defineProperty(this, "locator", {
78
+ enumerable: true,
79
+ configurable: true,
80
+ writable: true,
81
+ value: locator
82
+ });
83
+ Object.defineProperty(this, "expected", {
84
+ enumerable: true,
85
+ configurable: true,
86
+ writable: true,
87
+ value: void 0
88
+ });
89
+ Object.defineProperty(this, "actual", {
90
+ enumerable: true,
91
+ configurable: true,
92
+ writable: true,
93
+ value: void 0
94
+ });
47
95
  this.expected = locator.value;
48
96
  this.actual = locator.apply(element);
49
97
  }
@@ -62,8 +110,24 @@ export class MatchLocator {
62
110
  }
63
111
  export class MatchFilter {
64
112
  constructor(element, filter) {
65
- this.element = element;
66
- this.filter = filter;
113
+ Object.defineProperty(this, "element", {
114
+ enumerable: true,
115
+ configurable: true,
116
+ writable: true,
117
+ value: element
118
+ });
119
+ Object.defineProperty(this, "filter", {
120
+ enumerable: true,
121
+ configurable: true,
122
+ writable: true,
123
+ value: filter
124
+ });
125
+ Object.defineProperty(this, "items", {
126
+ enumerable: true,
127
+ configurable: true,
128
+ writable: true,
129
+ value: void 0
130
+ });
67
131
  this.items = Object.entries(filter.all).map(([key, expected]) => {
68
132
  return new MatchFilterItem(element, filter, key, expected);
69
133
  });
@@ -81,7 +145,6 @@ export class MatchFilter {
81
145
  return this.items.filter((i) => !i.matches).map((i) => i.formatAsExpectation()).join('\n\n');
82
146
  }
83
147
  }
84
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
85
148
  export function applyFilter(definition, element) {
86
149
  if (typeof (definition) === 'function') {
87
150
  return definition(element);
@@ -92,10 +155,30 @@ export function applyFilter(definition, element) {
92
155
  }
93
156
  export class MatchFilterItem {
94
157
  constructor(element, filter, key, expected) {
95
- this.element = element;
96
- this.filter = filter;
97
- this.key = key;
98
- this.expected = expected;
158
+ Object.defineProperty(this, "element", {
159
+ enumerable: true,
160
+ configurable: true,
161
+ writable: true,
162
+ value: element
163
+ });
164
+ Object.defineProperty(this, "filter", {
165
+ enumerable: true,
166
+ configurable: true,
167
+ writable: true,
168
+ value: filter
169
+ });
170
+ Object.defineProperty(this, "key", {
171
+ enumerable: true,
172
+ configurable: true,
173
+ writable: true,
174
+ value: key
175
+ });
176
+ Object.defineProperty(this, "expected", {
177
+ enumerable: true,
178
+ configurable: true,
179
+ writable: true,
180
+ value: expected
181
+ });
99
182
  }
100
183
  get matches() {
101
184
  return applyMatcher(this.expected, this.actual);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match.js","sourceRoot":"","sources":["../../src/src/match.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,10 @@ export interface Matcher<T> {
4
4
  code?(): string;
5
5
  }
6
6
  export type MaybeMatcher<T> = Matcher<T> | T;
7
+ /**
8
+ * Create a matcher constructor that can be discovered by build tools.
9
+ */
10
+ export declare function createMatcher<F extends (...args: any[]) => Matcher<any>>(name: string, constructor: F): F;
7
11
  export declare function isMatcher<T>(value: MaybeMatcher<T>): value is Matcher<T>;
8
12
  export declare function matcherDescription<T>(value: MaybeMatcher<T>): string;
9
13
  export declare function applyMatcher<T>(value: MaybeMatcher<T>, actual: T): boolean;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../../src/src/matcher.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC;IAC1B,WAAW,IAAI,MAAM,CAAC;IACtB,IAAI,CAAC,IAAI,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAE7C;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EACtE,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,CAAC,GACb,CAAC,CAGH;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,CAExE;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAMpE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAM1E;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAQ7D"}
@@ -1,4 +1,12 @@
1
1
  import isEqual from 'lodash.isequal';
2
+ import { defineMatcherConstructorMetadata } from './metadata.js';
3
+ /**
4
+ * Create a matcher constructor that can be discovered by build tools.
5
+ */
6
+ export function createMatcher(name, constructor) {
7
+ defineMatcherConstructorMetadata(constructor, { name });
8
+ return constructor;
9
+ }
2
10
  export function isMatcher(value) {
3
11
  return value && typeof value.match === 'function' && typeof value.description === 'function';
4
12
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../src/src/matcher.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAC;AAUjE;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,WAAc;IAEd,gCAAgC,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,SAAS,CAAI,KAAsB;IACjD,OAAO,KAAK,IAAI,OAAQ,KAAoB,CAAC,KAAK,KAAK,UAAU,IAAI,OAAQ,KAAoB,CAAC,WAAW,KAAK,UAAU,CAAC;AAC/H,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAI,KAAsB;IAC1D,IAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,KAAsB,EAAE,MAAS;IAC/D,IAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,OAAO,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAI,KAAsB;IACnD,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;SAAM,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Matcher, type MaybeMatcher } from '../matcher.js';
2
+ export declare function and<T>(...args: MaybeMatcher<T>[]): Matcher<T>;
3
+ //# sourceMappingURL=and.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"and.d.ts","sourceRoot":"","sources":["../../../src/src/matchers/and.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAgE,MAAM,eAAe,CAAC;AAE9H,wBAAgB,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAY7D"}
@@ -1,4 +1,4 @@
1
- import { matcherDescription, applyMatcher, matcherCode } from '../matcher';
1
+ import { matcherDescription, applyMatcher, matcherCode, createMatcher } from '../matcher.js';
2
2
  export function and(...args) {
3
3
  return {
4
4
  match(actual) {
@@ -12,4 +12,5 @@ export function and(...args) {
12
12
  }
13
13
  };
14
14
  }
15
+ createMatcher('and', and);
15
16
  //# sourceMappingURL=and.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"and.js","sourceRoot":"","sources":["../../../src/src/matchers/and.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9H,MAAM,UAAU,GAAG,CAAI,GAAG,IAAuB;IAC/C,OAAO;QACL,KAAK,CAAC,MAAS;YACb,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,WAAW;YACT,OAAO,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QACD,IAAI;YACF,OAAO,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;QAC/D,CAAC;KACF,CAAA;AACH,CAAC;AAED,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Matcher, type MaybeMatcher } from '../matcher.js';
2
+ export declare function every<T>(expected: MaybeMatcher<T>): Matcher<Iterable<T>>;
3
+ //# sourceMappingURL=every.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"every.d.ts","sourceRoot":"","sources":["../../../src/src/matchers/every.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAgE,MAAM,eAAe,CAAC;AAE9H,wBAAgB,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAYxE"}
@@ -1,4 +1,4 @@
1
- import { applyMatcher, matcherDescription, matcherCode } from '../matcher';
1
+ import { applyMatcher, matcherDescription, matcherCode, createMatcher } from '../matcher.js';
2
2
  export function every(expected) {
3
3
  return {
4
4
  match(actual) {
@@ -12,4 +12,5 @@ export function every(expected) {
12
12
  }
13
13
  };
14
14
  }
15
+ createMatcher('every', every);
15
16
  //# sourceMappingURL=every.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"every.js","sourceRoot":"","sources":["../../../src/src/matchers/every.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9H,MAAM,UAAU,KAAK,CAAI,QAAyB;IAChD,OAAO;QACL,KAAK,CAAC,MAAmB;YACvB,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,WAAW;YACT,OAAO,cAAc,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,CAAC;QACD,IAAI;YACF,OAAO,SAAS,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAA;QAC1C,CAAC;KACF,CAAA;AACH,CAAC;AAED,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Matcher } from '../matcher.js';
2
+ export declare function including(subString: string): Matcher<string>;
3
+ //# sourceMappingURL=including.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"including.d.ts","sourceRoot":"","sources":["../../../src/src/matchers/including.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAA8B,MAAM,eAAe,CAAC;AAEzE,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAY5D"}
@@ -1,4 +1,4 @@
1
- import { matcherCode } from '../matcher';
1
+ import { matcherCode, createMatcher } from '../matcher.js';
2
2
  export function including(subString) {
3
3
  return {
4
4
  match(actual) {
@@ -12,4 +12,5 @@ export function including(subString) {
12
12
  }
13
13
  };
14
14
  }
15
+ createMatcher('including', including);
15
16
  //# sourceMappingURL=including.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"including.js","sourceRoot":"","sources":["../../../src/src/matchers/including.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEzE,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,OAAO;QACL,KAAK,CAAC,MAAc;YAClB,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;QACD,WAAW;YACT,OAAO,aAAa,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QAClD,CAAC;QACD,IAAI;YACF,OAAO,aAAa,WAAW,CAAC,SAAS,CAAC,GAAG,CAAA;QAC/C,CAAC;KACF,CAAA;AACH,CAAC;AAED,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Matcher } from '../matcher.js';
2
+ export declare function matching(regexp: RegExp): Matcher<string>;
3
+ //# sourceMappingURL=matching.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matching.d.ts","sourceRoot":"","sources":["../../../src/src/matchers/matching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAA8B,MAAM,eAAe,CAAC;AAEzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYxD"}
@@ -1,4 +1,4 @@
1
- import { matcherCode } from '../matcher';
1
+ import { matcherCode, createMatcher } from '../matcher.js';
2
2
  export function matching(regexp) {
3
3
  return {
4
4
  match(actual) {
@@ -12,4 +12,5 @@ export function matching(regexp) {
12
12
  }
13
13
  };
14
14
  }
15
+ createMatcher('matching', matching);
15
16
  //# sourceMappingURL=matching.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matching.js","sourceRoot":"","sources":["../../../src/src/matchers/matching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEzE,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,OAAO;QACL,KAAK,CAAC,MAAc;YAClB,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;QACtC,CAAC;QACD,WAAW;YACT,OAAO,YAAY,MAAM,EAAE,CAAC;QAC9B,CAAC;QACD,IAAI;YACF,OAAO,YAAY,WAAW,CAAC,MAAM,CAAC,GAAG,CAAA;QAC3C,CAAC;KACF,CAAA;AACH,CAAC;AAED,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Matcher, type MaybeMatcher } from '../matcher.js';
2
+ export declare function not<T>(matcher: MaybeMatcher<T>): Matcher<T>;
3
+ //# sourceMappingURL=not.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not.d.ts","sourceRoot":"","sources":["../../../src/src/matchers/not.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAgE,MAAM,eAAe,CAAC;AAE9H,wBAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAY3D"}
@@ -1,4 +1,4 @@
1
- import { matcherDescription, applyMatcher, matcherCode } from '../matcher';
1
+ import { matcherDescription, applyMatcher, matcherCode, createMatcher } from '../matcher.js';
2
2
  export function not(matcher) {
3
3
  return {
4
4
  match(actual) {
@@ -12,4 +12,5 @@ export function not(matcher) {
12
12
  }
13
13
  };
14
14
  }
15
+ createMatcher('not', not);
15
16
  //# sourceMappingURL=not.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not.js","sourceRoot":"","sources":["../../../src/src/matchers/not.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9H,MAAM,UAAU,GAAG,CAAI,OAAwB;IAC7C,OAAO;QACL,KAAK,CAAC,MAAS;YACb,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;QACD,WAAW;YACT,OAAO,OAAO,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,CAAC;QACD,IAAI;YACF,OAAO,OAAO,WAAW,CAAC,OAAO,CAAC,GAAG,CAAA;QACvC,CAAC;KACF,CAAA;AACH,CAAC;AAED,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Matcher, type MaybeMatcher } from '../matcher.js';
2
+ export declare function or<T>(...args: MaybeMatcher<T>[]): Matcher<T>;
3
+ //# sourceMappingURL=or.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"or.d.ts","sourceRoot":"","sources":["../../../src/src/matchers/or.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAgE,MAAM,eAAe,CAAC;AAE9H,wBAAgB,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAY5D"}
@@ -1,4 +1,4 @@
1
- import { matcherDescription, applyMatcher, matcherCode } from '../matcher';
1
+ import { matcherDescription, applyMatcher, matcherCode, createMatcher } from '../matcher.js';
2
2
  export function or(...args) {
3
3
  return {
4
4
  match(actual) {
@@ -12,4 +12,5 @@ export function or(...args) {
12
12
  }
13
13
  };
14
14
  }
15
+ createMatcher('or', or);
15
16
  //# sourceMappingURL=or.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"or.js","sourceRoot":"","sources":["../../../src/src/matchers/or.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9H,MAAM,UAAU,EAAE,CAAI,GAAG,IAAuB;IAC9C,OAAO;QACL,KAAK,CAAC,MAAS;YACb,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,WAAW;YACT,OAAO,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC;QACD,IAAI;YACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;QAC9D,CAAC;KACF,CAAA;AACH,CAAC;AAED,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Matcher, type MaybeMatcher } from '../matcher.js';
2
+ export declare function some<T>(expected: MaybeMatcher<T>): Matcher<Iterable<T>>;
3
+ //# sourceMappingURL=some.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"some.d.ts","sourceRoot":"","sources":["../../../src/src/matchers/some.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAgE,MAAM,eAAe,CAAC;AAE9H,wBAAgB,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAYvE"}
@@ -1,4 +1,4 @@
1
- import { applyMatcher, matcherDescription, matcherCode } from '../matcher';
1
+ import { applyMatcher, matcherDescription, matcherCode, createMatcher } from '../matcher.js';
2
2
  export function some(expected) {
3
3
  return {
4
4
  match(actual) {
@@ -12,4 +12,5 @@ export function some(expected) {
12
12
  }
13
13
  };
14
14
  }
15
+ createMatcher('some', some);
15
16
  //# sourceMappingURL=some.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"some.js","sourceRoot":"","sources":["../../../src/src/matchers/some.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9H,MAAM,UAAU,IAAI,CAAI,QAAyB;IAC/C,OAAO;QACL,KAAK,CAAC,MAAmB;YACvB,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,WAAW;YACT,OAAO,aAAa,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,CAAC;QACD,IAAI;YACF,OAAO,QAAQ,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAA;QACzC,CAAC;KACF,CAAA;AACH,CAAC;AAED,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type MergeObjects<A, B> = keyof A extends never ? B : keyof B extends never ? A : B & Omit<A, keyof B>;
2
+ //# sourceMappingURL=merge-objects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-objects.d.ts","sourceRoot":"","sources":["../../src/src/merge-objects.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,SAAS,KAAK,GAAG,CAAC,GACtD,MAAM,CAAC,SAAS,KAAK,GAAG,CAAC,GACzB,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"merge-objects.js","sourceRoot":"","sources":["../../src/merge-objects.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"merge-objects.js","sourceRoot":"","sources":["../../src/src/merge-objects.ts"],"names":[],"mappings":""}
@@ -0,0 +1,50 @@
1
+ import type { Matcher } from "./matcher.js";
2
+ import type { InteractorConstructor } from "./specification.js";
3
+ /**
4
+ * Version of the metadata attached to interactor and matcher constructors.
5
+ *
6
+ * Consumers should use the helpers in this module instead of reading the
7
+ * symbol properties directly.
8
+ */
9
+ export declare const CONSTRUCTOR_METADATA_VERSION: 1;
10
+ /** @internal */
11
+ export declare const INTERACTOR_CONSTRUCTOR_METADATA: unique symbol;
12
+ /** @internal */
13
+ export declare const MATCHER_CONSTRUCTOR_METADATA: unique symbol;
14
+ export interface InteractorConstructorMetadata {
15
+ readonly kind: "interactor";
16
+ readonly version: typeof CONSTRUCTOR_METADATA_VERSION;
17
+ readonly name: string;
18
+ readonly actions: readonly string[];
19
+ readonly filters: readonly string[];
20
+ }
21
+ export interface MatcherConstructorMetadata {
22
+ readonly kind: "matcher";
23
+ readonly version: typeof CONSTRUCTOR_METADATA_VERSION;
24
+ readonly name: string;
25
+ }
26
+ type AnyInteractorConstructor = InteractorConstructor<Element, any, any, any>;
27
+ type AnyMatcherConstructor = (...args: any[]) => Matcher<any>;
28
+ /**
29
+ * Return stable, serializable metadata for an interactor constructor.
30
+ */
31
+ export declare function getInteractorConstructorMetadata(value: unknown): InteractorConstructorMetadata | undefined;
32
+ /**
33
+ * Determine whether a value was created by {@link createInteractor}.
34
+ *
35
+ * The brand uses the global symbol registry so this works when the producer
36
+ * and consumer load different copies of `@interactors/core`.
37
+ */
38
+ export declare function isInteractorConstructor(value: unknown): value is AnyInteractorConstructor;
39
+ /**
40
+ * Return stable, serializable metadata for a matcher constructor.
41
+ */
42
+ export declare function getMatcherConstructorMetadata(value: unknown): MatcherConstructorMetadata | undefined;
43
+ /** Determine whether a value was created by {@link createMatcher}. */
44
+ export declare function isMatcherConstructor(value: unknown): value is AnyMatcherConstructor;
45
+ /** @internal */
46
+ export declare function defineInteractorConstructorMetadata(constructor: Function, metadata: Omit<InteractorConstructorMetadata, "kind" | "version">): void;
47
+ /** @internal */
48
+ export declare function defineMatcherConstructorMetadata(constructor: Function, metadata: Omit<MatcherConstructorMetadata, "kind" | "version">): void;
49
+ export {};
50
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,GAAa,CAAC;AAEvD,gBAAgB;AAChB,eAAO,MAAM,+BAA+B,eAE3C,CAAC;AAEF,gBAAgB;AAChB,eAAO,MAAM,4BAA4B,eAExC,CAAC;AAEF,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,4BAA4B,CAAC;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,4BAA4B,CAAC;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,KAAK,wBAAwB,GAAG,qBAAqB,CACnD,OAAO,EACP,GAAG,EACH,GAAG,EACH,GAAG,CACJ,CAAC;AAEF,KAAK,qBAAqB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAE9D;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,OAAO,GACb,6BAA6B,GAAG,SAAS,CAQ3C;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,wBAAwB,CAEnC;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,GACb,0BAA0B,GAAG,SAAS,CAQxC;AAED,sEAAsE;AACtE,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,qBAAqB,CAEhC;AAED,gBAAgB;AAChB,wBAAgB,mCAAmC,CACjD,WAAW,EAAE,QAAQ,EACrB,QAAQ,EAAE,IAAI,CAAC,6BAA6B,EAAE,MAAM,GAAG,SAAS,CAAC,GAChE,IAAI,CAQN;AAED,gBAAgB;AAChB,wBAAgB,gCAAgC,CAC9C,WAAW,EAAE,QAAQ,EACrB,QAAQ,EAAE,IAAI,CAAC,0BAA0B,EAAE,MAAM,GAAG,SAAS,CAAC,GAC7D,IAAI,CAMN"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Version of the metadata attached to interactor and matcher constructors.
3
+ *
4
+ * Consumers should use the helpers in this module instead of reading the
5
+ * symbol properties directly.
6
+ */
7
+ export const CONSTRUCTOR_METADATA_VERSION = 1;
8
+ /** @internal */
9
+ export const INTERACTOR_CONSTRUCTOR_METADATA = Symbol.for("@interactors/core/interactor-constructor-metadata");
10
+ /** @internal */
11
+ export const MATCHER_CONSTRUCTOR_METADATA = Symbol.for("@interactors/core/matcher-constructor-metadata");
12
+ /**
13
+ * Return stable, serializable metadata for an interactor constructor.
14
+ */
15
+ export function getInteractorConstructorMetadata(value) {
16
+ if (typeof value !== "function") {
17
+ return undefined;
18
+ }
19
+ let metadata = Reflect.get(value, INTERACTOR_CONSTRUCTOR_METADATA);
20
+ return isInteractorConstructorMetadata(metadata) ? metadata : undefined;
21
+ }
22
+ /**
23
+ * Determine whether a value was created by {@link createInteractor}.
24
+ *
25
+ * The brand uses the global symbol registry so this works when the producer
26
+ * and consumer load different copies of `@interactors/core`.
27
+ */
28
+ export function isInteractorConstructor(value) {
29
+ return getInteractorConstructorMetadata(value) !== undefined;
30
+ }
31
+ /**
32
+ * Return stable, serializable metadata for a matcher constructor.
33
+ */
34
+ export function getMatcherConstructorMetadata(value) {
35
+ if (typeof value !== "function") {
36
+ return undefined;
37
+ }
38
+ let metadata = Reflect.get(value, MATCHER_CONSTRUCTOR_METADATA);
39
+ return isMatcherConstructorMetadata(metadata) ? metadata : undefined;
40
+ }
41
+ /** Determine whether a value was created by {@link createMatcher}. */
42
+ export function isMatcherConstructor(value) {
43
+ return getMatcherConstructorMetadata(value) !== undefined;
44
+ }
45
+ /** @internal */
46
+ export function defineInteractorConstructorMetadata(constructor, metadata) {
47
+ defineMetadata(constructor, INTERACTOR_CONSTRUCTOR_METADATA, {
48
+ kind: "interactor",
49
+ version: CONSTRUCTOR_METADATA_VERSION,
50
+ name: metadata.name,
51
+ actions: Object.freeze([...metadata.actions].sort()),
52
+ filters: Object.freeze([...metadata.filters].sort()),
53
+ });
54
+ }
55
+ /** @internal */
56
+ export function defineMatcherConstructorMetadata(constructor, metadata) {
57
+ defineMetadata(constructor, MATCHER_CONSTRUCTOR_METADATA, {
58
+ kind: "matcher",
59
+ version: CONSTRUCTOR_METADATA_VERSION,
60
+ name: metadata.name,
61
+ });
62
+ }
63
+ function defineMetadata(constructor, key, metadata) {
64
+ Object.defineProperty(constructor, key, {
65
+ configurable: false,
66
+ enumerable: false,
67
+ writable: false,
68
+ value: Object.freeze(metadata),
69
+ });
70
+ }
71
+ function isInteractorConstructorMetadata(value) {
72
+ if (!isRecord(value)) {
73
+ return false;
74
+ }
75
+ return value.kind === "interactor" &&
76
+ value.version === CONSTRUCTOR_METADATA_VERSION &&
77
+ typeof value.name === "string" &&
78
+ isStringArray(value.actions) &&
79
+ isStringArray(value.filters);
80
+ }
81
+ function isMatcherConstructorMetadata(value) {
82
+ if (!isRecord(value)) {
83
+ return false;
84
+ }
85
+ return value.kind === "matcher" &&
86
+ value.version === CONSTRUCTOR_METADATA_VERSION &&
87
+ typeof value.name === "string";
88
+ }
89
+ function isRecord(value) {
90
+ return typeof value === "object" && value !== null;
91
+ }
92
+ function isStringArray(value) {
93
+ return Array.isArray(value) &&
94
+ value.every((item) => typeof item === "string");
95
+ }
96
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/src/metadata.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { InteractorOptions } from './specification';
1
+ import type { InteractorOptions } from './specification.js';
2
2
  export declare function findElements<E extends Element>(parentElement: Element, interactor: InteractorOptions<any, any, any>): E[];
3
3
  export declare function hasMatchMatching(parentElement: Element, interactor: InteractorOptions<any, any, any>): boolean;
4
4
  export declare function resolveUnique(parentElement: Element, interactor: InteractorOptions<any, any, any>): Element;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../src/src/resolvers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAI5D,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAYzH;AA0BD,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAE9G;AAcD,wBAAgB,aAAa,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAS3G;AAID,wBAAgB,YAAY,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAE1G;AAID,wBAAgB,YAAY,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAOvG;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAE1F;AAED,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAErG"}
@@ -1,8 +1,8 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import { globals } from '@interactors/globals';
3
- import { Match } from './match';
4
- import { NoSuchElementError, NotAbsentError, AmbiguousElementError } from './errors';
5
- import { formatDescription, formatMatchesTable } from './format';
3
+ import { Match } from './match.js';
4
+ import { NoSuchElementError, NotAbsentError, AmbiguousElementError } from './errors.js';
5
+ import { formatDescription, formatMatchesTable } from './format.js';
6
6
  const defaultSelector = 'div';
7
7
  export function findElements(parentElement, interactor) {
8
8
  if (!interactor.name) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../src/src/resolvers.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { InteractionOptions as SerializedInteractionOptions, InteractionType } from "@interactors/globals";
2
- import { InteractionOptions } from "./interaction";
3
- import { InteractorOptions } from "./specification";
1
+ import type { InteractionOptions as SerializedInteractionOptions, InteractionType } from "@interactors/globals";
2
+ import type { InteractionOptions } from "./interaction.js";
3
+ import type { InteractorOptions } from "./specification.js";
4
4
  export declare function serializeInteractorOptions(options: InteractorOptions<any, any, any>): {
5
5
  interactor: string;
6
6
  filter: {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/src/serialize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,IAAI,4BAA4B,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEhH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG;IACrF,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,MAAM,CAAC;CACpB,CAcA;AAED,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAC9D,IAAI,EAAE,eAAe,EACrB,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,GACzE,4BAA4B,CAsB9B"}
@@ -1,8 +1,7 @@
1
1
  import { pascalCase } from "change-case";
2
- import { matcherCode } from "./matcher";
2
+ import { matcherCode } from "./matcher.js";
3
3
  export function serializeInteractorOptions(options) {
4
- var _a;
5
- let locator = matcherCode((_a = options.locator) === null || _a === void 0 ? void 0 : _a.value);
4
+ let locator = matcherCode(options.locator?.value);
6
5
  return {
7
6
  interactor: options.name,
8
7
  filter: options.filter.all,