@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,14 +1,42 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MatchFilterItem = exports.applyFilter = exports.MatchFilter = exports.MatchLocator = exports.Match = void 0;
4
- const escape_html_1 = require("./escape-html");
5
- const matcher_1 = require("./matcher");
3
+ exports.MatchFilterItem = exports.MatchFilter = exports.MatchLocator = exports.Match = void 0;
4
+ exports.applyFilter = applyFilter;
5
+ const escape_html_js_1 = require("./escape-html.js");
6
+ const matcher_js_1 = require("./matcher.js");
6
7
  const check = (value) => value ? "✓" : "⨯";
7
8
  class Match {
8
9
  constructor(element, filterSet, locator) {
9
- this.element = element;
10
- this.filterSet = filterSet;
11
- this.locator = locator;
10
+ Object.defineProperty(this, "element", {
11
+ enumerable: true,
12
+ configurable: true,
13
+ writable: true,
14
+ value: element
15
+ });
16
+ Object.defineProperty(this, "filterSet", {
17
+ enumerable: true,
18
+ configurable: true,
19
+ writable: true,
20
+ value: filterSet
21
+ });
22
+ Object.defineProperty(this, "locator", {
23
+ enumerable: true,
24
+ configurable: true,
25
+ writable: true,
26
+ value: locator
27
+ });
28
+ Object.defineProperty(this, "matchLocator", {
29
+ enumerable: true,
30
+ configurable: true,
31
+ writable: true,
32
+ value: void 0
33
+ });
34
+ Object.defineProperty(this, "matchFilter", {
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true,
38
+ value: void 0
39
+ });
12
40
  this.matchLocator = locator && new MatchLocator(element, locator);
13
41
  this.matchFilter = new MatchFilter(element, filterSet);
14
42
  }
@@ -32,13 +60,12 @@ class Match {
32
60
  }
33
61
  }
34
62
  get sortWeight() {
35
- var _a;
36
- return (((_a = this.matchLocator) === null || _a === void 0 ? void 0 : _a.sortWeight) || 0) + this.matchFilter.sortWeight;
63
+ return (this.matchLocator?.sortWeight || 0) + this.matchFilter.sortWeight;
37
64
  }
38
65
  elementDescription() {
39
66
  let tag = this.element.tagName.toLowerCase();
40
67
  let attrs = Array.from(this.element.attributes).map((attr) => {
41
- return `${attr.name}="${(0, escape_html_1.escapeHtml)(attr.value)}"`;
68
+ return `${attr.name}="${(0, escape_html_js_1.escapeHtml)(attr.value)}"`;
42
69
  });
43
70
  return `<${[tag, ...attrs].join(' ')}>`;
44
71
  }
@@ -46,13 +73,35 @@ class Match {
46
73
  exports.Match = Match;
47
74
  class MatchLocator {
48
75
  constructor(element, locator) {
49
- this.element = element;
50
- this.locator = locator;
76
+ Object.defineProperty(this, "element", {
77
+ enumerable: true,
78
+ configurable: true,
79
+ writable: true,
80
+ value: element
81
+ });
82
+ Object.defineProperty(this, "locator", {
83
+ enumerable: true,
84
+ configurable: true,
85
+ writable: true,
86
+ value: locator
87
+ });
88
+ Object.defineProperty(this, "expected", {
89
+ enumerable: true,
90
+ configurable: true,
91
+ writable: true,
92
+ value: void 0
93
+ });
94
+ Object.defineProperty(this, "actual", {
95
+ enumerable: true,
96
+ configurable: true,
97
+ writable: true,
98
+ value: void 0
99
+ });
51
100
  this.expected = locator.value;
52
101
  this.actual = locator.apply(element);
53
102
  }
54
103
  get matches() {
55
- return (0, matcher_1.applyMatcher)(this.expected, this.actual);
104
+ return (0, matcher_js_1.applyMatcher)(this.expected, this.actual);
56
105
  }
57
106
  formatActual() {
58
107
  return JSON.stringify(this.actual);
@@ -67,8 +116,24 @@ class MatchLocator {
67
116
  exports.MatchLocator = MatchLocator;
68
117
  class MatchFilter {
69
118
  constructor(element, filter) {
70
- this.element = element;
71
- this.filter = filter;
119
+ Object.defineProperty(this, "element", {
120
+ enumerable: true,
121
+ configurable: true,
122
+ writable: true,
123
+ value: element
124
+ });
125
+ Object.defineProperty(this, "filter", {
126
+ enumerable: true,
127
+ configurable: true,
128
+ writable: true,
129
+ value: filter
130
+ });
131
+ Object.defineProperty(this, "items", {
132
+ enumerable: true,
133
+ configurable: true,
134
+ writable: true,
135
+ value: void 0
136
+ });
72
137
  this.items = Object.entries(filter.all).map(([key, expected]) => {
73
138
  return new MatchFilterItem(element, filter, key, expected);
74
139
  });
@@ -87,7 +152,6 @@ class MatchFilter {
87
152
  }
88
153
  }
89
154
  exports.MatchFilter = MatchFilter;
90
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
91
155
  function applyFilter(definition, element) {
92
156
  if (typeof (definition) === 'function') {
93
157
  return definition(element);
@@ -96,16 +160,35 @@ function applyFilter(definition, element) {
96
160
  return definition.apply(element);
97
161
  }
98
162
  }
99
- exports.applyFilter = applyFilter;
100
163
  class MatchFilterItem {
101
164
  constructor(element, filter, key, expected) {
102
- this.element = element;
103
- this.filter = filter;
104
- this.key = key;
105
- this.expected = expected;
165
+ Object.defineProperty(this, "element", {
166
+ enumerable: true,
167
+ configurable: true,
168
+ writable: true,
169
+ value: element
170
+ });
171
+ Object.defineProperty(this, "filter", {
172
+ enumerable: true,
173
+ configurable: true,
174
+ writable: true,
175
+ value: filter
176
+ });
177
+ Object.defineProperty(this, "key", {
178
+ enumerable: true,
179
+ configurable: true,
180
+ writable: true,
181
+ value: key
182
+ });
183
+ Object.defineProperty(this, "expected", {
184
+ enumerable: true,
185
+ configurable: true,
186
+ writable: true,
187
+ value: expected
188
+ });
106
189
  }
107
190
  get matches() {
108
- return (0, matcher_1.applyMatcher)(this.expected, this.actual);
191
+ return (0, matcher_js_1.applyMatcher)(this.expected, this.actual);
109
192
  }
110
193
  get actual() {
111
194
  if (this.filter.specification.filters && this.filter.specification.filters[this.key]) {
@@ -125,7 +208,7 @@ class MatchFilterItem {
125
208
  return JSON.stringify(this.actual);
126
209
  }
127
210
  formatExpected() {
128
- return (0, matcher_1.matcherDescription)(this.expected);
211
+ return (0, matcher_js_1.matcherDescription)(this.expected);
129
212
  }
130
213
  description() {
131
214
  return `${check(this.matches)} ${this.formatActual()}`;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match.js","sourceRoot":"","sources":["../../src/src/match.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface Matcher<T> {
2
+ match(actual: T): boolean;
3
+ description(): string;
4
+ code?(): string;
5
+ }
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;
11
+ export declare function isMatcher<T>(value: MaybeMatcher<T>): value is Matcher<T>;
12
+ export declare function matcherDescription<T>(value: MaybeMatcher<T>): string;
13
+ export declare function applyMatcher<T>(value: MaybeMatcher<T>, actual: T): boolean;
14
+ export declare function matcherCode<T>(value: MaybeMatcher<T>): string;
15
+ //# sourceMappingURL=matcher.d.ts.map
@@ -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"}
@@ -3,12 +3,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.matcherCode = exports.applyMatcher = exports.matcherDescription = exports.isMatcher = void 0;
6
+ exports.createMatcher = createMatcher;
7
+ exports.isMatcher = isMatcher;
8
+ exports.matcherDescription = matcherDescription;
9
+ exports.applyMatcher = applyMatcher;
10
+ exports.matcherCode = matcherCode;
7
11
  const lodash_isequal_1 = __importDefault(require("lodash.isequal"));
12
+ const metadata_js_1 = require("./metadata.js");
13
+ /**
14
+ * Create a matcher constructor that can be discovered by build tools.
15
+ */
16
+ function createMatcher(name, constructor) {
17
+ (0, metadata_js_1.defineMatcherConstructorMetadata)(constructor, { name });
18
+ return constructor;
19
+ }
8
20
  function isMatcher(value) {
9
21
  return value && typeof value.match === 'function' && typeof value.description === 'function';
10
22
  }
11
- exports.isMatcher = isMatcher;
12
23
  function matcherDescription(value) {
13
24
  if (isMatcher(value)) {
14
25
  return value.description();
@@ -17,7 +28,6 @@ function matcherDescription(value) {
17
28
  return JSON.stringify(value);
18
29
  }
19
30
  }
20
- exports.matcherDescription = matcherDescription;
21
31
  function applyMatcher(value, actual) {
22
32
  if (isMatcher(value)) {
23
33
  return value.match(actual);
@@ -26,7 +36,6 @@ function applyMatcher(value, actual) {
26
36
  return (0, lodash_isequal_1.default)(value, actual);
27
37
  }
28
38
  }
29
- exports.applyMatcher = applyMatcher;
30
39
  function matcherCode(value) {
31
40
  if (isMatcher(value) && value.code) {
32
41
  return value.code();
@@ -38,5 +47,4 @@ function matcherCode(value) {
38
47
  return JSON.stringify(value);
39
48
  }
40
49
  }
41
- exports.matcherCode = matcherCode;
42
50
  //# sourceMappingURL=matcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../src/src/matcher.ts"],"names":[],"mappings":";;;;;AAcA,sCAMC;AAED,8BAEC;AAED,gDAMC;AAED,oCAMC;AAED,kCAQC;AAlDD,oEAAqC;AACrC,+CAAiE;AAUjE;;GAEG;AACH,SAAgB,aAAa,CAC3B,IAAY,EACZ,WAAc;IAEd,IAAA,8CAAgC,EAAC,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAgB,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,SAAgB,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,SAAgB,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,IAAA,wBAAO,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,SAAgB,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"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.and = and;
4
+ const matcher_js_1 = require("../matcher.js");
5
+ function and(...args) {
6
+ return {
7
+ match(actual) {
8
+ return args.every((matcher) => (0, matcher_js_1.applyMatcher)(matcher, actual));
9
+ },
10
+ description() {
11
+ return args.map(matcher_js_1.matcherDescription).join(' and ');
12
+ },
13
+ code() {
14
+ return `and(${args.map(arg => (0, matcher_js_1.matcherCode)(arg)).join(', ')})`;
15
+ }
16
+ };
17
+ }
18
+ (0, matcher_js_1.createMatcher)('and', and);
19
+ //# sourceMappingURL=and.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"and.js","sourceRoot":"","sources":["../../../src/src/matchers/and.ts"],"names":[],"mappings":";;AAEA,kBAYC;AAdD,8CAA8H;AAE9H,SAAgB,GAAG,CAAI,GAAG,IAAuB;IAC/C,OAAO;QACL,KAAK,CAAC,MAAS;YACb,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,yBAAY,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,WAAW;YACT,OAAO,IAAI,CAAC,GAAG,CAAC,+BAAkB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QACD,IAAI;YACF,OAAO,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,wBAAW,EAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;QAC/D,CAAC;KACF,CAAA;AACH,CAAC;AAED,IAAA,0BAAa,EAAC,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"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.every = every;
4
+ const matcher_js_1 = require("../matcher.js");
5
+ function every(expected) {
6
+ return {
7
+ match(actual) {
8
+ return Array.from(actual).every((value) => (0, matcher_js_1.applyMatcher)(expected, value));
9
+ },
10
+ description() {
11
+ return `every item ${(0, matcher_js_1.matcherDescription)(expected)}`;
12
+ },
13
+ code() {
14
+ return `every(${(0, matcher_js_1.matcherCode)(expected)})`;
15
+ }
16
+ };
17
+ }
18
+ (0, matcher_js_1.createMatcher)('every', every);
19
+ //# sourceMappingURL=every.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"every.js","sourceRoot":"","sources":["../../../src/src/matchers/every.ts"],"names":[],"mappings":";;AAEA,sBAYC;AAdD,8CAA8H;AAE9H,SAAgB,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,IAAA,yBAAY,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,WAAW;YACT,OAAO,cAAc,IAAA,+BAAkB,EAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,CAAC;QACD,IAAI;YACF,OAAO,SAAS,IAAA,wBAAW,EAAC,QAAQ,CAAC,GAAG,CAAA;QAC1C,CAAC;KACF,CAAA;AACH,CAAC;AAED,IAAA,0BAAa,EAAC,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,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.including = void 0;
4
- const matcher_1 = require("../matcher");
3
+ exports.including = including;
4
+ const matcher_js_1 = require("../matcher.js");
5
5
  function including(subString) {
6
6
  return {
7
7
  match(actual) {
@@ -11,9 +11,9 @@ function including(subString) {
11
11
  return `including ${JSON.stringify(subString)}`;
12
12
  },
13
13
  code() {
14
- return `including(${(0, matcher_1.matcherCode)(subString)})`;
14
+ return `including(${(0, matcher_js_1.matcherCode)(subString)})`;
15
15
  }
16
16
  };
17
17
  }
18
- exports.including = including;
18
+ (0, matcher_js_1.createMatcher)('including', including);
19
19
  //# sourceMappingURL=including.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"including.js","sourceRoot":"","sources":["../../../src/src/matchers/including.ts"],"names":[],"mappings":";;AAEA,8BAYC;AAdD,8CAAyE;AAEzE,SAAgB,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,IAAA,wBAAW,EAAC,SAAS,CAAC,GAAG,CAAA;QAC/C,CAAC;KACF,CAAA;AACH,CAAC;AAED,IAAA,0BAAa,EAAC,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,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.matching = void 0;
4
- const matcher_1 = require("../matcher");
3
+ exports.matching = matching;
4
+ const matcher_js_1 = require("../matcher.js");
5
5
  function matching(regexp) {
6
6
  return {
7
7
  match(actual) {
@@ -11,9 +11,9 @@ function matching(regexp) {
11
11
  return `matching ${regexp}`;
12
12
  },
13
13
  code() {
14
- return `matching(${(0, matcher_1.matcherCode)(regexp)})`;
14
+ return `matching(${(0, matcher_js_1.matcherCode)(regexp)})`;
15
15
  }
16
16
  };
17
17
  }
18
- exports.matching = matching;
18
+ (0, matcher_js_1.createMatcher)('matching', matching);
19
19
  //# sourceMappingURL=matching.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matching.js","sourceRoot":"","sources":["../../../src/src/matchers/matching.ts"],"names":[],"mappings":";;AAEA,4BAYC;AAdD,8CAAyE;AAEzE,SAAgB,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,IAAA,wBAAW,EAAC,MAAM,CAAC,GAAG,CAAA;QAC3C,CAAC;KACF,CAAA;AACH,CAAC;AAED,IAAA,0BAAa,EAAC,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"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.not = not;
4
+ const matcher_js_1 = require("../matcher.js");
5
+ function not(matcher) {
6
+ return {
7
+ match(actual) {
8
+ return !(0, matcher_js_1.applyMatcher)(matcher, actual);
9
+ },
10
+ description() {
11
+ return `not ${(0, matcher_js_1.matcherDescription)(matcher)}`;
12
+ },
13
+ code() {
14
+ return `not(${(0, matcher_js_1.matcherCode)(matcher)})`;
15
+ }
16
+ };
17
+ }
18
+ (0, matcher_js_1.createMatcher)('not', not);
19
+ //# sourceMappingURL=not.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not.js","sourceRoot":"","sources":["../../../src/src/matchers/not.ts"],"names":[],"mappings":";;AAEA,kBAYC;AAdD,8CAA8H;AAE9H,SAAgB,GAAG,CAAI,OAAwB;IAC7C,OAAO;QACL,KAAK,CAAC,MAAS;YACb,OAAO,CAAC,IAAA,yBAAY,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;QACD,WAAW;YACT,OAAO,OAAO,IAAA,+BAAkB,EAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,CAAC;QACD,IAAI;YACF,OAAO,OAAO,IAAA,wBAAW,EAAC,OAAO,CAAC,GAAG,CAAA;QACvC,CAAC;KACF,CAAA;AACH,CAAC;AAED,IAAA,0BAAa,EAAC,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"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.or = or;
4
+ const matcher_js_1 = require("../matcher.js");
5
+ function or(...args) {
6
+ return {
7
+ match(actual) {
8
+ return args.some((matcher) => (0, matcher_js_1.applyMatcher)(matcher, actual));
9
+ },
10
+ description() {
11
+ return args.map(matcher_js_1.matcherDescription).join(' or ');
12
+ },
13
+ code() {
14
+ return `or(${args.map(arg => (0, matcher_js_1.matcherCode)(arg)).join(', ')})`;
15
+ }
16
+ };
17
+ }
18
+ (0, matcher_js_1.createMatcher)('or', or);
19
+ //# sourceMappingURL=or.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"or.js","sourceRoot":"","sources":["../../../src/src/matchers/or.ts"],"names":[],"mappings":";;AAEA,gBAYC;AAdD,8CAA8H;AAE9H,SAAgB,EAAE,CAAI,GAAG,IAAuB;IAC9C,OAAO;QACL,KAAK,CAAC,MAAS;YACb,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,yBAAY,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,WAAW;YACT,OAAO,IAAI,CAAC,GAAG,CAAC,+BAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC;QACD,IAAI;YACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,wBAAW,EAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;QAC9D,CAAC;KACF,CAAA;AACH,CAAC;AAED,IAAA,0BAAa,EAAC,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"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.some = some;
4
+ const matcher_js_1 = require("../matcher.js");
5
+ function some(expected) {
6
+ return {
7
+ match(actual) {
8
+ return Array.from(actual).some((value) => (0, matcher_js_1.applyMatcher)(expected, value));
9
+ },
10
+ description() {
11
+ return `some item ${(0, matcher_js_1.matcherDescription)(expected)}`;
12
+ },
13
+ code() {
14
+ return `some(${(0, matcher_js_1.matcherCode)(expected)})`;
15
+ }
16
+ };
17
+ }
18
+ (0, matcher_js_1.createMatcher)('some', some);
19
+ //# sourceMappingURL=some.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"some.js","sourceRoot":"","sources":["../../../src/src/matchers/some.ts"],"names":[],"mappings":";;AAEA,oBAYC;AAdD,8CAA8H;AAE9H,SAAgB,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,IAAA,yBAAY,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,WAAW;YACT,OAAO,aAAa,IAAA,+BAAkB,EAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,CAAC;QACD,IAAI;YACF,OAAO,QAAQ,IAAA,wBAAW,EAAC,QAAQ,CAAC,GAAG,CAAA;QACzC,CAAC;KACF,CAAA;AACH,CAAC;AAED,IAAA,0BAAa,EAAC,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"}