@interactors/core 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/esm/mod.d.ts +2 -0
  2. package/esm/mod.d.ts.map +1 -0
  3. package/esm/mod.js +2 -0
  4. package/esm/mod.js.map +1 -0
  5. package/esm/package.json +3 -0
  6. package/{dist → esm/src}/constructor.d.ts +1 -1
  7. package/esm/src/constructor.d.ts.map +1 -0
  8. package/{dist/esm → esm/src}/constructor.js +12 -12
  9. package/esm/src/constructor.js.map +1 -0
  10. package/esm/src/converge.d.ts +3 -0
  11. package/esm/src/converge.d.ts.map +1 -0
  12. package/esm/src/converge.js.map +1 -0
  13. package/{dist → esm/src}/create-interactor.d.ts +1 -1
  14. package/esm/src/create-interactor.d.ts.map +1 -0
  15. package/{dist/esm → esm/src}/create-interactor.js +1 -1
  16. package/esm/src/create-interactor.js.map +1 -0
  17. package/esm/src/element/click.d.ts +3 -0
  18. package/esm/src/element/click.d.ts.map +1 -0
  19. package/esm/src/element/click.js +5 -0
  20. package/esm/src/element/click.js.map +1 -0
  21. package/esm/src/errors.d.ts.map +1 -0
  22. package/esm/src/errors.js +45 -0
  23. package/esm/src/errors.js.map +1 -0
  24. package/esm/src/escape-html.d.ts.map +1 -0
  25. package/esm/src/escape-html.js.map +1 -0
  26. package/{dist → esm/src}/filter-set.d.ts +1 -1
  27. package/esm/src/filter-set.d.ts.map +1 -0
  28. package/{dist/esm → esm/src}/filter-set.js +14 -6
  29. package/esm/src/filter-set.js.map +1 -0
  30. package/{dist → esm/src}/format.d.ts +2 -2
  31. package/esm/src/format.d.ts.map +1 -0
  32. package/esm/src/format.js.map +1 -0
  33. package/esm/src/index.d.ts +18 -0
  34. package/esm/src/index.d.ts.map +1 -0
  35. package/esm/src/index.js +13 -0
  36. package/esm/src/index.js.map +1 -0
  37. package/{dist → esm/src}/inspector.d.ts +1 -1
  38. package/esm/src/inspector.d.ts.map +1 -0
  39. package/{dist/esm → esm/src}/inspector.js +3 -3
  40. package/esm/src/inspector.js.map +1 -0
  41. package/{dist → esm/src}/interaction.d.ts +3 -3
  42. package/esm/src/interaction.d.ts.map +1 -0
  43. package/{dist/esm → esm/src}/interaction.js +2 -2
  44. package/esm/src/interaction.js.map +1 -0
  45. package/{dist → esm/src}/locator.d.ts +2 -2
  46. package/esm/src/locator.d.ts.map +1 -0
  47. package/esm/src/locator.js +25 -0
  48. package/esm/src/locator.js.map +1 -0
  49. package/{dist → esm/src}/match.d.ts +4 -4
  50. package/esm/src/match.d.ts.map +1 -0
  51. package/{dist/esm → esm/src}/match.js +99 -16
  52. package/esm/src/match.js.map +1 -0
  53. package/esm/src/matcher.d.ts.map +1 -0
  54. package/esm/src/matcher.js.map +1 -0
  55. package/esm/src/matchers/and.d.ts +3 -0
  56. package/esm/src/matchers/and.d.ts.map +1 -0
  57. package/{dist/esm → esm/src}/matchers/and.js +1 -1
  58. package/esm/src/matchers/and.js.map +1 -0
  59. package/esm/src/matchers/every.d.ts +3 -0
  60. package/esm/src/matchers/every.d.ts.map +1 -0
  61. package/{dist/esm → esm/src}/matchers/every.js +1 -1
  62. package/esm/src/matchers/every.js.map +1 -0
  63. package/esm/src/matchers/including.d.ts +3 -0
  64. package/esm/src/matchers/including.d.ts.map +1 -0
  65. package/{dist/esm → esm/src}/matchers/including.js +1 -1
  66. package/esm/src/matchers/including.js.map +1 -0
  67. package/esm/src/matchers/matching.d.ts +3 -0
  68. package/esm/src/matchers/matching.d.ts.map +1 -0
  69. package/{dist/esm → esm/src}/matchers/matching.js +1 -1
  70. package/esm/src/matchers/matching.js.map +1 -0
  71. package/esm/src/matchers/not.d.ts +3 -0
  72. package/esm/src/matchers/not.d.ts.map +1 -0
  73. package/{dist/esm → esm/src}/matchers/not.js +1 -1
  74. package/esm/src/matchers/not.js.map +1 -0
  75. package/esm/src/matchers/or.d.ts +3 -0
  76. package/esm/src/matchers/or.d.ts.map +1 -0
  77. package/{dist/esm → esm/src}/matchers/or.js +1 -1
  78. package/esm/src/matchers/or.js.map +1 -0
  79. package/esm/src/matchers/some.d.ts +3 -0
  80. package/esm/src/matchers/some.d.ts.map +1 -0
  81. package/{dist/esm → esm/src}/matchers/some.js +1 -1
  82. package/esm/src/matchers/some.js.map +1 -0
  83. package/esm/src/merge-objects.d.ts.map +1 -0
  84. package/{dist/cjs → esm/src}/merge-objects.js.map +1 -1
  85. package/{dist → esm/src}/resolvers.d.ts +1 -1
  86. package/esm/src/resolvers.d.ts.map +1 -0
  87. package/{dist/esm → esm/src}/resolvers.js +3 -3
  88. package/esm/src/resolvers.js.map +1 -0
  89. package/{dist → esm/src}/serialize.d.ts +3 -3
  90. package/esm/src/serialize.d.ts.map +1 -0
  91. package/{dist/esm → esm/src}/serialize.js +2 -3
  92. package/esm/src/serialize.js.map +1 -0
  93. package/{dist → esm/src}/specification.d.ts +6 -6
  94. package/esm/src/specification.d.ts.map +1 -0
  95. package/esm/src/specification.js.map +1 -0
  96. package/package.json +19 -47
  97. package/script/mod.d.ts +2 -0
  98. package/script/mod.d.ts.map +1 -0
  99. package/script/mod.js +18 -0
  100. package/script/mod.js.map +1 -0
  101. package/script/package.json +3 -0
  102. package/script/src/constructor.d.ts +4 -0
  103. package/script/src/constructor.d.ts.map +1 -0
  104. package/{dist/cjs → script/src}/constructor.js +53 -54
  105. package/script/src/constructor.js.map +1 -0
  106. package/script/src/converge.d.ts +3 -0
  107. package/script/src/converge.d.ts.map +1 -0
  108. package/{dist/cjs → script/src}/converge.js +1 -2
  109. package/script/src/converge.js.map +1 -0
  110. package/script/src/create-interactor.d.ts +18 -0
  111. package/script/src/create-interactor.d.ts.map +1 -0
  112. package/{dist/cjs → script/src}/create-interactor.js +3 -4
  113. package/script/src/create-interactor.js.map +1 -0
  114. package/script/src/element/click.d.ts +3 -0
  115. package/script/src/element/click.d.ts.map +1 -0
  116. package/script/src/element/click.js +8 -0
  117. package/script/src/element/click.js.map +1 -0
  118. package/script/src/errors.d.ts +13 -0
  119. package/script/src/errors.d.ts.map +1 -0
  120. package/{dist/cjs → script/src}/errors.js +24 -4
  121. package/script/src/errors.js.map +1 -0
  122. package/script/src/escape-html.d.ts +2 -0
  123. package/script/src/escape-html.d.ts.map +1 -0
  124. package/{dist/cjs → script/src}/escape-html.js +1 -2
  125. package/script/src/escape-html.js.map +1 -0
  126. package/script/src/filter-set.d.ts +10 -0
  127. package/script/src/filter-set.d.ts.map +1 -0
  128. package/{dist/cjs → script/src}/filter-set.js +16 -8
  129. package/script/src/filter-set.js.map +1 -0
  130. package/script/src/format.d.ts +10 -0
  131. package/script/src/format.d.ts.map +1 -0
  132. package/{dist/cjs → script/src}/format.js +3 -4
  133. package/script/src/format.js.map +1 -0
  134. package/script/src/index.d.ts +18 -0
  135. package/script/src/index.d.ts.map +1 -0
  136. package/{dist/cjs → script/src}/index.js +22 -22
  137. package/script/src/index.js.map +1 -0
  138. package/script/src/inspector.d.ts +17 -0
  139. package/script/src/inspector.d.ts.map +1 -0
  140. package/{dist/cjs → script/src}/inspector.js +5 -6
  141. package/script/src/inspector.js.map +1 -0
  142. package/script/src/interaction.d.ts +70 -0
  143. package/script/src/interaction.d.ts.map +1 -0
  144. package/{dist/cjs → script/src}/interaction.js +5 -6
  145. package/script/src/interaction.js.map +1 -0
  146. package/script/src/locator.d.ts +10 -0
  147. package/script/src/locator.d.ts.map +1 -0
  148. package/script/src/locator.js +29 -0
  149. package/script/src/locator.js.map +1 -0
  150. package/script/src/match.d.ts +54 -0
  151. package/script/src/match.d.ts.map +1 -0
  152. package/{dist/cjs → script/src}/match.js +105 -22
  153. package/script/src/match.js.map +1 -0
  154. package/script/src/matcher.d.ts +11 -0
  155. package/script/src/matcher.d.ts.map +1 -0
  156. package/{dist/cjs → script/src}/matcher.js +4 -5
  157. package/script/src/matcher.js.map +1 -0
  158. package/script/src/matchers/and.d.ts +3 -0
  159. package/script/src/matchers/and.d.ts.map +1 -0
  160. package/script/src/matchers/and.js +18 -0
  161. package/script/src/matchers/and.js.map +1 -0
  162. package/script/src/matchers/every.d.ts +3 -0
  163. package/script/src/matchers/every.d.ts.map +1 -0
  164. package/{dist/cjs → script/src}/matchers/every.js +5 -6
  165. package/script/src/matchers/every.js.map +1 -0
  166. package/script/src/matchers/including.d.ts +3 -0
  167. package/script/src/matchers/including.d.ts.map +1 -0
  168. package/{dist/cjs → script/src}/matchers/including.js +3 -4
  169. package/script/src/matchers/including.js.map +1 -0
  170. package/script/src/matchers/matching.d.ts +3 -0
  171. package/script/src/matchers/matching.d.ts.map +1 -0
  172. package/{dist/cjs → script/src}/matchers/matching.js +3 -4
  173. package/script/src/matchers/matching.js.map +1 -0
  174. package/script/src/matchers/not.d.ts +3 -0
  175. package/script/src/matchers/not.d.ts.map +1 -0
  176. package/script/src/matchers/not.js +18 -0
  177. package/script/src/matchers/not.js.map +1 -0
  178. package/script/src/matchers/or.d.ts +3 -0
  179. package/script/src/matchers/or.d.ts.map +1 -0
  180. package/script/src/matchers/or.js +18 -0
  181. package/script/src/matchers/or.js.map +1 -0
  182. package/script/src/matchers/some.d.ts +3 -0
  183. package/script/src/matchers/some.d.ts.map +1 -0
  184. package/{dist/cjs → script/src}/matchers/some.js +5 -6
  185. package/script/src/matchers/some.js.map +1 -0
  186. package/script/src/merge-objects.d.ts +2 -0
  187. package/script/src/merge-objects.d.ts.map +1 -0
  188. package/{dist/esm → script/src}/merge-objects.js.map +1 -1
  189. package/script/src/resolvers.d.ts +9 -0
  190. package/script/src/resolvers.d.ts.map +1 -0
  191. package/{dist/cjs → script/src}/resolvers.js +17 -18
  192. package/script/src/resolvers.js.map +1 -0
  193. package/script/src/serialize.d.ts +13 -0
  194. package/script/src/serialize.d.ts.map +1 -0
  195. package/{dist/cjs → script/src}/serialize.js +6 -8
  196. package/script/src/serialize.js.map +1 -0
  197. package/script/src/specification.d.ts +216 -0
  198. package/script/src/specification.d.ts.map +1 -0
  199. package/script/src/specification.js.map +1 -0
  200. package/src/mod.ts +1 -0
  201. package/src/{constructor.ts → src/constructor.ts} +15 -15
  202. package/src/{converge.ts → src/converge.ts} +1 -1
  203. package/src/{create-interactor.ts → src/create-interactor.ts} +2 -2
  204. package/src/src/element/click.ts +5 -0
  205. package/src/{filter-set.ts → src/filter-set.ts} +2 -3
  206. package/src/{format.ts → src/format.ts} +2 -2
  207. package/src/src/index.ts +19 -0
  208. package/src/{inspector.ts → src/inspector.ts} +3 -3
  209. package/src/{interaction.ts → src/interaction.ts} +4 -4
  210. package/src/{locator.ts → src/locator.ts} +3 -3
  211. package/src/{match.ts → src/match.ts} +5 -6
  212. package/src/{matchers → src/matchers}/and.ts +1 -1
  213. package/src/{matchers → src/matchers}/every.ts +1 -1
  214. package/src/{matchers → src/matchers}/including.ts +1 -1
  215. package/src/{matchers → src/matchers}/matching.ts +1 -1
  216. package/src/{matchers → src/matchers}/not.ts +1 -1
  217. package/src/{matchers → src/matchers}/or.ts +1 -1
  218. package/src/{matchers → src/matchers}/some.ts +1 -1
  219. package/src/{resolvers.ts → src/resolvers.ts} +4 -4
  220. package/src/{serialize.ts → src/serialize.ts} +4 -4
  221. package/src/{specification.ts → src/specification.ts} +6 -6
  222. package/dist/cjs/constructor.js.map +0 -1
  223. package/dist/cjs/converge.js.map +0 -1
  224. package/dist/cjs/create-interactor.js.map +0 -1
  225. package/dist/cjs/element/click.js +0 -12
  226. package/dist/cjs/element/click.js.map +0 -1
  227. package/dist/cjs/errors.js.map +0 -1
  228. package/dist/cjs/escape-html.js.map +0 -1
  229. package/dist/cjs/filter-set.js.map +0 -1
  230. package/dist/cjs/format.js.map +0 -1
  231. package/dist/cjs/index.js.map +0 -1
  232. package/dist/cjs/inspector.js.map +0 -1
  233. package/dist/cjs/interaction.js.map +0 -1
  234. package/dist/cjs/locator.js +0 -19
  235. package/dist/cjs/locator.js.map +0 -1
  236. package/dist/cjs/match.js.map +0 -1
  237. package/dist/cjs/matcher.js.map +0 -1
  238. package/dist/cjs/matchers/and.js +0 -19
  239. package/dist/cjs/matchers/and.js.map +0 -1
  240. package/dist/cjs/matchers/every.js.map +0 -1
  241. package/dist/cjs/matchers/including.js.map +0 -1
  242. package/dist/cjs/matchers/matching.js.map +0 -1
  243. package/dist/cjs/matchers/not.js +0 -19
  244. package/dist/cjs/matchers/not.js.map +0 -1
  245. package/dist/cjs/matchers/or.js +0 -19
  246. package/dist/cjs/matchers/or.js.map +0 -1
  247. package/dist/cjs/matchers/some.js.map +0 -1
  248. package/dist/cjs/resolvers.js.map +0 -1
  249. package/dist/cjs/serialize.js.map +0 -1
  250. package/dist/cjs/specification.js.map +0 -1
  251. package/dist/constructor.d.ts.map +0 -1
  252. package/dist/converge.d.ts +0 -3
  253. package/dist/converge.d.ts.map +0 -1
  254. package/dist/create-interactor.d.ts.map +0 -1
  255. package/dist/element/click.d.ts +0 -2
  256. package/dist/element/click.d.ts.map +0 -1
  257. package/dist/errors.d.ts.map +0 -1
  258. package/dist/escape-html.d.ts.map +0 -1
  259. package/dist/esm/constructor.js.map +0 -1
  260. package/dist/esm/converge.js.map +0 -1
  261. package/dist/esm/create-interactor.js.map +0 -1
  262. package/dist/esm/element/click.js +0 -5
  263. package/dist/esm/element/click.js.map +0 -1
  264. package/dist/esm/errors.js +0 -25
  265. package/dist/esm/errors.js.map +0 -1
  266. package/dist/esm/escape-html.js.map +0 -1
  267. package/dist/esm/filter-set.js.map +0 -1
  268. package/dist/esm/format.js.map +0 -1
  269. package/dist/esm/index.js +0 -13
  270. package/dist/esm/index.js.map +0 -1
  271. package/dist/esm/inspector.js.map +0 -1
  272. package/dist/esm/interaction.js.map +0 -1
  273. package/dist/esm/locator.js +0 -15
  274. package/dist/esm/locator.js.map +0 -1
  275. package/dist/esm/match.js.map +0 -1
  276. package/dist/esm/matcher.js.map +0 -1
  277. package/dist/esm/matchers/and.js.map +0 -1
  278. package/dist/esm/matchers/every.js.map +0 -1
  279. package/dist/esm/matchers/including.js.map +0 -1
  280. package/dist/esm/matchers/matching.js.map +0 -1
  281. package/dist/esm/matchers/not.js.map +0 -1
  282. package/dist/esm/matchers/or.js.map +0 -1
  283. package/dist/esm/matchers/some.js.map +0 -1
  284. package/dist/esm/resolvers.js.map +0 -1
  285. package/dist/esm/serialize.js.map +0 -1
  286. package/dist/esm/specification.js.map +0 -1
  287. package/dist/filter-set.d.ts.map +0 -1
  288. package/dist/format.d.ts.map +0 -1
  289. package/dist/index.d.ts +0 -17
  290. package/dist/index.d.ts.map +0 -1
  291. package/dist/inspector.d.ts.map +0 -1
  292. package/dist/interaction.d.ts.map +0 -1
  293. package/dist/locator.d.ts.map +0 -1
  294. package/dist/match.d.ts.map +0 -1
  295. package/dist/matcher.d.ts.map +0 -1
  296. package/dist/matchers/and.d.ts +0 -3
  297. package/dist/matchers/and.d.ts.map +0 -1
  298. package/dist/matchers/every.d.ts +0 -3
  299. package/dist/matchers/every.d.ts.map +0 -1
  300. package/dist/matchers/including.d.ts +0 -3
  301. package/dist/matchers/including.d.ts.map +0 -1
  302. package/dist/matchers/matching.d.ts +0 -3
  303. package/dist/matchers/matching.d.ts.map +0 -1
  304. package/dist/matchers/not.d.ts +0 -3
  305. package/dist/matchers/not.d.ts.map +0 -1
  306. package/dist/matchers/or.d.ts +0 -3
  307. package/dist/matchers/or.d.ts.map +0 -1
  308. package/dist/matchers/some.d.ts +0 -3
  309. package/dist/matchers/some.d.ts.map +0 -1
  310. package/dist/merge-objects.d.ts.map +0 -1
  311. package/dist/resolvers.d.ts.map +0 -1
  312. package/dist/serialize.d.ts.map +0 -1
  313. package/dist/specification.d.ts.map +0 -1
  314. package/dist/tsconfig.build.tsbuildinfo +0 -1
  315. package/src/element/click.ts +0 -5
  316. package/src/index.ts +0 -18
  317. /package/{dist/esm → esm/src}/converge.js +0 -0
  318. /package/{dist → esm/src}/errors.d.ts +0 -0
  319. /package/{dist → esm/src}/escape-html.d.ts +0 -0
  320. /package/{dist/esm → esm/src}/escape-html.js +0 -0
  321. /package/{dist/esm → esm/src}/format.js +0 -0
  322. /package/{dist → esm/src}/matcher.d.ts +0 -0
  323. /package/{dist/esm → esm/src}/matcher.js +0 -0
  324. /package/{dist → esm/src}/merge-objects.d.ts +0 -0
  325. /package/{dist/esm → esm/src}/merge-objects.js +0 -0
  326. /package/{dist/esm → esm/src}/specification.js +0 -0
  327. /package/{dist/cjs → script/src}/merge-objects.js +0 -0
  328. /package/{dist/cjs → script/src}/specification.js +0 -0
  329. /package/src/{errors.ts → src/errors.ts} +0 -0
  330. /package/src/{escape-html.ts → src/escape-html.ts} +0 -0
  331. /package/src/{matcher.ts → src/matcher.ts} +0 -0
  332. /package/src/{merge-objects.ts → src/merge-objects.ts} +0 -0
@@ -1,28 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.click = exports.every = exports.some = exports.not = exports.or = exports.and = exports.matching = exports.including = exports.isVisible = exports.createInspector = exports.createInteractor = exports.isInteraction = void 0;
4
- var interaction_1 = require("./interaction");
5
- Object.defineProperty(exports, "isInteraction", { enumerable: true, get: function () { return interaction_1.isInteraction; } });
6
- var create_interactor_1 = require("./create-interactor");
7
- Object.defineProperty(exports, "createInteractor", { enumerable: true, get: function () { return create_interactor_1.createInteractor; } });
8
- var inspector_1 = require("./inspector");
9
- Object.defineProperty(exports, "createInspector", { enumerable: true, get: function () { return inspector_1.createInspector; } });
4
+ var interaction_js_1 = require("./interaction.js");
5
+ Object.defineProperty(exports, "isInteraction", { enumerable: true, get: function () { return interaction_js_1.isInteraction; } });
6
+ var create_interactor_js_1 = require("./create-interactor.js");
7
+ Object.defineProperty(exports, "createInteractor", { enumerable: true, get: function () { return create_interactor_js_1.createInteractor; } });
8
+ var inspector_js_1 = require("./inspector.js");
9
+ Object.defineProperty(exports, "createInspector", { enumerable: true, get: function () { return inspector_js_1.createInspector; } });
10
10
  var element_is_visible_1 = require("element-is-visible");
11
11
  Object.defineProperty(exports, "isVisible", { enumerable: true, get: function () { return element_is_visible_1.isVisible; } });
12
- var including_1 = require("./matchers/including");
13
- Object.defineProperty(exports, "including", { enumerable: true, get: function () { return including_1.including; } });
14
- var matching_1 = require("./matchers/matching");
15
- Object.defineProperty(exports, "matching", { enumerable: true, get: function () { return matching_1.matching; } });
16
- var and_1 = require("./matchers/and");
17
- Object.defineProperty(exports, "and", { enumerable: true, get: function () { return and_1.and; } });
18
- var or_1 = require("./matchers/or");
19
- Object.defineProperty(exports, "or", { enumerable: true, get: function () { return or_1.or; } });
20
- var not_1 = require("./matchers/not");
21
- Object.defineProperty(exports, "not", { enumerable: true, get: function () { return not_1.not; } });
22
- var some_1 = require("./matchers/some");
23
- Object.defineProperty(exports, "some", { enumerable: true, get: function () { return some_1.some; } });
24
- var every_1 = require("./matchers/every");
25
- Object.defineProperty(exports, "every", { enumerable: true, get: function () { return every_1.every; } });
26
- var click_1 = require("./element/click");
27
- Object.defineProperty(exports, "click", { enumerable: true, get: function () { return click_1.click; } });
12
+ var including_js_1 = require("./matchers/including.js");
13
+ Object.defineProperty(exports, "including", { enumerable: true, get: function () { return including_js_1.including; } });
14
+ var matching_js_1 = require("./matchers/matching.js");
15
+ Object.defineProperty(exports, "matching", { enumerable: true, get: function () { return matching_js_1.matching; } });
16
+ var and_js_1 = require("./matchers/and.js");
17
+ Object.defineProperty(exports, "and", { enumerable: true, get: function () { return and_js_1.and; } });
18
+ var or_js_1 = require("./matchers/or.js");
19
+ Object.defineProperty(exports, "or", { enumerable: true, get: function () { return or_js_1.or; } });
20
+ var not_js_1 = require("./matchers/not.js");
21
+ Object.defineProperty(exports, "not", { enumerable: true, get: function () { return not_js_1.not; } });
22
+ var some_js_1 = require("./matchers/some.js");
23
+ Object.defineProperty(exports, "some", { enumerable: true, get: function () { return some_js_1.some; } });
24
+ var every_js_1 = require("./matchers/every.js");
25
+ Object.defineProperty(exports, "every", { enumerable: true, get: function () { return every_js_1.every; } });
26
+ var click_js_1 = require("./element/click.js");
27
+ Object.defineProperty(exports, "click", { enumerable: true, get: function () { return click_js_1.click; } });
28
28
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/src/index.ts"],"names":[],"mappings":";;;AAEA,mDAAgD;AAAvC,+GAAA,aAAa,OAAA;AACtB,+DAA0D;AAAjD,wHAAA,gBAAgB,OAAA;AACzB,+CAAgD;AAAvC,+GAAA,eAAe,OAAA;AACxB,yDAA+C;AAAtC,+GAAA,SAAS,OAAA;AAGlB,wDAAoD;AAA3C,yGAAA,SAAS,OAAA;AAClB,sDAAkD;AAAzC,uGAAA,QAAQ,OAAA;AACjB,4CAAwC;AAA/B,6FAAA,GAAG,OAAA;AACZ,0CAAsC;AAA7B,2FAAA,EAAE,OAAA;AACX,4CAAwC;AAA/B,6FAAA,GAAG,OAAA;AACZ,8CAA0C;AAAjC,+FAAA,IAAI,OAAA;AACb,gDAA4C;AAAnC,iGAAA,KAAK,OAAA;AAEd,+CAA2C;AAAlC,iGAAA,KAAK,OAAA"}
@@ -0,0 +1,17 @@
1
+ import type { Interactor, InteractorConstructor, FilterParams } from "./specification.js";
2
+ type GetElement<I extends InteractorConstructor<any, any, any, any>> = I extends InteractorConstructor<infer E, any, any, any> ? E : never;
3
+ type GetFilters<I extends InteractorConstructor<any, any, any, any>> = I extends InteractorConstructor<any, infer F, any, any> ? F : never;
4
+ type GetActions<I extends InteractorConstructor<any, any, any, any>> = I extends InteractorConstructor<any, any, any, infer A> ? A : never;
5
+ export interface InteractorInspector<E extends Element, FP extends FilterParams<any, any>> extends Omit<Interactor<E, FP>, 'find'> {
6
+ element: E;
7
+ find<T extends InteractorConstructor<any, any, any, any>>(interactor: T): Inspector<T>;
8
+ }
9
+ export interface Inspector<C extends InteractorConstructor<any, any, any, any>> {
10
+ /**
11
+ * Finds all matched by selector elements and wraps each of them to intreactor
12
+ */
13
+ all(): (InteractorInspector<GetElement<C>, GetFilters<C>> & GetActions<C>)[];
14
+ }
15
+ export declare function createInspector<IC extends InteractorConstructor<any, any, any, any>>(constructor: IC, parentElement?: Element): Inspector<IC>;
16
+ export {};
17
+ //# sourceMappingURL=inspector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspector.d.ts","sourceRoot":"","sources":["../../src/src/inspector.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAW,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEnG,KAAK,UAAU,CAAC,CAAC,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,qBAAqB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAC1I,KAAK,UAAU,CAAC,CAAC,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAC1I,KAAK,UAAU,CAAC,CAAC,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAE1I,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAE,SAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAChI,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,CAAC,CAAC,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;CACvF;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC5E;;OAEG;IACF,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;CAC9E;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAClF,WAAW,EAAE,EAAE,EACf,aAAa,CAAC,EAAE,OAAO,GACtB,SAAS,CAAC,EAAE,CAAC,CAiBf"}
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  /* eslint-disable @typescript-eslint/no-explicit-any */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.createInspector = void 0;
5
- const constructor_1 = require("./constructor");
6
- const resolvers_1 = require("./resolvers");
4
+ exports.createInspector = createInspector;
5
+ const constructor_js_1 = require("./constructor.js");
6
+ const resolvers_js_1 = require("./resolvers.js");
7
7
  function createInspector(constructor, parentElement) {
8
8
  // NOTE: Wait for https://github.com/thefrontside/bigtest/pull/895 to use specification instead
9
9
  let options = constructor().options;
10
10
  return {
11
11
  all() {
12
- let elements = (0, resolvers_1.findElements)(parentElement !== null && parentElement !== void 0 ? parentElement : (0, resolvers_1.unsafeSyncResolveParent)(options), options);
13
- return elements.map(element => (Object.assign((0, constructor_1.instantiateInteractor)(options, () => element), {
12
+ let elements = (0, resolvers_js_1.findElements)(parentElement ?? (0, resolvers_js_1.unsafeSyncResolveParent)(options), options);
13
+ return elements.map(element => (Object.assign((0, constructor_js_1.instantiateInteractor)(options, () => element), {
14
14
  element,
15
15
  find(constructor) {
16
16
  return createInspector(constructor, element);
@@ -19,5 +19,4 @@ function createInspector(constructor, parentElement) {
19
19
  }
20
20
  };
21
21
  }
22
- exports.createInspector = createInspector;
23
22
  //# sourceMappingURL=inspector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspector.js","sourceRoot":"","sources":["../../src/src/inspector.ts"],"names":[],"mappings":";AAAA,uDAAuD;;AAsBvD,0CAoBC;AAxCD,qDAAyD;AACzD,iDAAsE;AAmBtE,SAAgB,eAAe,CAC7B,WAAe,EACf,aAAuB;IAEvB,+FAA+F;IAC/F,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC,OAAoC,CAAA;IAChE,OAAO;QACL,GAAG;YACD,IAAI,QAAQ,GAAG,IAAA,2BAAY,EAAiB,aAAa,IAAI,IAAA,sCAAuB,EAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;YACxG,OAAO,QAAQ,CAAC,GAAG,CACjB,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CACvB,IAAA,sCAAqB,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAsF,EAAE;gBACpI,OAAO;gBACP,IAAI,CAAsD,WAAc;oBACtE,OAAO,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;gBAC9C,CAAC;aACF,CAAC,CAAC,CACJ,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { type Operation, type Task } from '@effection/core';
2
+ import { type InteractionOptions as SerializedInteractionOptions, type InteractionType } from '@interactors/globals';
3
+ import type { Interactor, FilterObject, FilterFn, FilterParams } from './specification.js';
4
+ declare const interactionSymbol: unique symbol;
5
+ export declare function isInteraction(x: unknown): x is Interaction<Element, unknown>;
6
+ /**
7
+ * An interaction represents some type of action or assertion that can be
8
+ * taken on an {@link Interactor}.
9
+ *
10
+ * The interaction can function as a lazy promise. That means that calling
11
+ * `then` on the interaction or awaiting it using `await`, will run the
12
+ * interaction and the promise will resolve once the action is complete.
13
+ * However, an interaction which is not awaited will not run by itself.
14
+ *
15
+ * @typeParam T the return value of the promise that this interaction evaluates to.
16
+ */
17
+ export interface Interaction<E extends Element, T = void> extends Promise<T> {
18
+ type: InteractionType;
19
+ interactor: Interactor<E, any>;
20
+ run: (interactor: Interactor<E, any>) => Operation<T>;
21
+ /**
22
+ * Return a description of the interaction
23
+ */
24
+ description: string;
25
+ /**
26
+ * Return a code representation of the interaction
27
+ */
28
+ code: () => string;
29
+ /**
30
+ * Return a serialized options of the interaction
31
+ */
32
+ options: SerializedInteractionOptions;
33
+ /**
34
+ * Perform the interaction
35
+ */
36
+ action: () => Task<T>;
37
+ check?: () => Task<T>;
38
+ halt: () => Promise<void>;
39
+ [interactionSymbol]: true;
40
+ }
41
+ export interface ActionInteraction<E extends Element, T = void> extends Interaction<E, T> {
42
+ type: "action";
43
+ check: undefined;
44
+ }
45
+ /**
46
+ * Like {@link Interaction}, except that it is used for assertions only.
47
+ *
48
+ * @typeParam T the return value of the promise that this interaction evaluates to.
49
+ */
50
+ export interface AssertionInteraction<E extends Element, T = void> extends Interaction<E, T> {
51
+ type: "assertion";
52
+ /**
53
+ * Perform the check
54
+ */
55
+ check: () => Task<T>;
56
+ }
57
+ export type InteractionOptions<E extends Element, T> = {
58
+ name: string;
59
+ description: string;
60
+ filters?: FilterParams<any, any>;
61
+ args: unknown[];
62
+ interactor: Interactor<E, any>;
63
+ run: (interactor: Interactor<E, any>) => Operation<T>;
64
+ };
65
+ export declare function createInteraction<E extends Element, T>(type: 'action', options: InteractionOptions<E, T>): ActionInteraction<E, T>;
66
+ export declare function createInteraction<E extends Element, T>(type: 'assertion', options: InteractionOptions<E, T>): AssertionInteraction<E, T>;
67
+ export declare function createInteraction<E extends Element, T, Q>(type: 'action', options: InteractionOptions<E, T>, apply: FilterFn<Q, Element>): ActionInteraction<E, T> & FilterObject<Q, Element>;
68
+ export declare function createInteraction<E extends Element, T, Q>(type: 'assertion', options: InteractionOptions<E, T>, apply: FilterFn<Q, Element>): AssertionInteraction<E, T> & FilterObject<Q, Element>;
69
+ export {};
70
+ //# sourceMappingURL=interaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../src/src/interaction.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createInteraction = exports.isInteraction = void 0;
3
+ exports.isInteraction = isInteraction;
4
+ exports.createInteraction = createInteraction;
4
5
  /* eslint-disable @typescript-eslint/no-explicit-any */
5
6
  const core_1 = require("@effection/core");
6
7
  const globals_1 = require("@interactors/globals");
7
- const serialize_1 = require("./serialize");
8
+ const serialize_js_1 = require("./serialize.js");
8
9
  const interactionSymbol = core_1.Symbol.for('interaction');
9
10
  function isInteraction(x) {
10
11
  return typeof x === 'object' && x != null && interactionSymbol in x;
11
12
  }
12
- exports.isInteraction = isInteraction;
13
13
  function createInteraction(type, options, apply) {
14
14
  let task;
15
15
  let shouldCatchHalt = false;
@@ -33,12 +33,12 @@ function createInteraction(type, options, apply) {
33
33
  return reason;
34
34
  }
35
35
  else {
36
- onReject === null || onReject === void 0 ? void 0 : onReject(reason);
36
+ onReject?.(reason);
37
37
  return reason;
38
38
  }
39
39
  };
40
40
  }
41
- let serializedOptions = (0, serialize_1.serializeInteractionOptions)(type, options);
41
+ let serializedOptions = (0, serialize_js_1.serializeInteractionOptions)(type, options);
42
42
  let interaction = {
43
43
  type,
44
44
  options: serializedOptions,
@@ -73,5 +73,4 @@ function createInteraction(type, options, apply) {
73
73
  return interaction;
74
74
  }
75
75
  }
76
- exports.createInteraction = createInteraction;
77
76
  //# sourceMappingURL=interaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../src/src/interaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { FilterDefinition } from './specification.js';
2
+ import { type MaybeMatcher } from './matcher.js';
3
+ export declare class Locator<E extends Element> {
4
+ private definition;
5
+ value: MaybeMatcher<string>;
6
+ constructor(definition: FilterDefinition<string, E>, value: MaybeMatcher<string>);
7
+ get description(): string;
8
+ apply(element: E): string;
9
+ }
10
+ //# sourceMappingURL=locator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locator.d.ts","sourceRoot":"","sources":["../../src/src/locator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAGrE,qBAAa,OAAO,CAAC,CAAC,SAAS,OAAO;IACxB,OAAO,CAAC,UAAU;IAAsC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC;gBAA3E,UAAU,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAS,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC;IAE/F,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,MAAM;CAG1B"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Locator = void 0;
4
+ const matcher_js_1 = require("./matcher.js");
5
+ const match_js_1 = require("./match.js");
6
+ class Locator {
7
+ constructor(definition, value) {
8
+ Object.defineProperty(this, "definition", {
9
+ enumerable: true,
10
+ configurable: true,
11
+ writable: true,
12
+ value: definition
13
+ });
14
+ Object.defineProperty(this, "value", {
15
+ enumerable: true,
16
+ configurable: true,
17
+ writable: true,
18
+ value: value
19
+ });
20
+ }
21
+ get description() {
22
+ return (0, matcher_js_1.matcherDescription)(this.value);
23
+ }
24
+ apply(element) {
25
+ return (0, match_js_1.applyFilter)(this.definition, element);
26
+ }
27
+ }
28
+ exports.Locator = Locator;
29
+ //# sourceMappingURL=locator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locator.js","sourceRoot":"","sources":["../../src/src/locator.ts"],"names":[],"mappings":";;;AACA,6CAAqE;AACrE,yCAAyC;AAEzC,MAAa,OAAO;IAClB,YAAoB,UAAuC,EAAS,KAA2B;QAAnF;;;;mBAAQ,UAAU;WAA6B;QAAE;;;;mBAAO,KAAK;WAAsB;IAAG,CAAC;IAEnG,IAAI,WAAW;QACb,OAAO,IAAA,+BAAkB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,OAAU;QACd,OAAO,IAAA,sBAAW,EAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;CACF;AAVD,0BAUC"}
@@ -0,0 +1,54 @@
1
+ import type { Locator } from './locator.js';
2
+ import type { FilterSet } from './filter-set.js';
3
+ import type { Filters, FilterDefinition } from './specification.js';
4
+ import { type MaybeMatcher } from './matcher.js';
5
+ export declare class Match<E extends Element, F extends Filters<E>> {
6
+ element: E;
7
+ filterSet: FilterSet<E, F>;
8
+ locator?: Locator<E> | undefined;
9
+ matchLocator?: MatchLocator<E>;
10
+ matchFilter: MatchFilter<E, F>;
11
+ constructor(element: E, filterSet: FilterSet<E, F>, locator?: Locator<E> | undefined);
12
+ get matches(): boolean;
13
+ asTableHeader(name: string): string[];
14
+ asTableRow(): string[];
15
+ get sortWeight(): number;
16
+ elementDescription(): string;
17
+ }
18
+ export declare class MatchLocator<E extends Element> {
19
+ element: E;
20
+ locator: Locator<E>;
21
+ expected: MaybeMatcher<string> | null;
22
+ actual: string | null;
23
+ constructor(element: E, locator: Locator<E>);
24
+ get matches(): boolean;
25
+ formatActual(): string;
26
+ description(): string;
27
+ get sortWeight(): number;
28
+ }
29
+ export declare class MatchFilter<E extends Element, F extends Filters<E>> {
30
+ element: E;
31
+ filter: FilterSet<E, F>;
32
+ items: MatchFilterItem<unknown, E, F>[];
33
+ constructor(element: E, filter: FilterSet<E, F>);
34
+ get matches(): boolean;
35
+ asTableRow(): string[];
36
+ get sortWeight(): number;
37
+ formatAsExpectations(): string;
38
+ }
39
+ export declare function applyFilter<T>(definition: FilterDefinition<T, any>, element: Element): T;
40
+ export declare class MatchFilterItem<T, E extends Element, F extends Filters<E>> {
41
+ element: E;
42
+ filter: FilterSet<E, F>;
43
+ key: string;
44
+ expected: MaybeMatcher<T>;
45
+ constructor(element: E, filter: FilterSet<E, F>, key: string, expected: MaybeMatcher<T>);
46
+ get matches(): boolean;
47
+ get actual(): T;
48
+ formatActual(): string;
49
+ formatExpected(): string;
50
+ description(): string;
51
+ formatAsExpectation(): string;
52
+ get sortWeight(): number;
53
+ }
54
+ //# sourceMappingURL=match.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../src/src/match.ts"],"names":[],"mappings":"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"}
@@ -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,11 @@
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
+ export declare function isMatcher<T>(value: MaybeMatcher<T>): value is Matcher<T>;
8
+ export declare function matcherDescription<T>(value: MaybeMatcher<T>): string;
9
+ export declare function applyMatcher<T>(value: MaybeMatcher<T>, actual: T): boolean;
10
+ export declare function matcherCode<T>(value: MaybeMatcher<T>): string;
11
+ //# sourceMappingURL=matcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../../src/src/matcher.ts"],"names":[],"mappings":"AAEA,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,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,14 @@ 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.isMatcher = isMatcher;
7
+ exports.matcherDescription = matcherDescription;
8
+ exports.applyMatcher = applyMatcher;
9
+ exports.matcherCode = matcherCode;
7
10
  const lodash_isequal_1 = __importDefault(require("lodash.isequal"));
8
11
  function isMatcher(value) {
9
12
  return value && typeof value.match === 'function' && typeof value.description === 'function';
10
13
  }
11
- exports.isMatcher = isMatcher;
12
14
  function matcherDescription(value) {
13
15
  if (isMatcher(value)) {
14
16
  return value.description();
@@ -17,7 +19,6 @@ function matcherDescription(value) {
17
19
  return JSON.stringify(value);
18
20
  }
19
21
  }
20
- exports.matcherDescription = matcherDescription;
21
22
  function applyMatcher(value, actual) {
22
23
  if (isMatcher(value)) {
23
24
  return value.match(actual);
@@ -26,7 +27,6 @@ function applyMatcher(value, actual) {
26
27
  return (0, lodash_isequal_1.default)(value, actual);
27
28
  }
28
29
  }
29
- exports.applyMatcher = applyMatcher;
30
30
  function matcherCode(value) {
31
31
  if (isMatcher(value) && value.code) {
32
32
  return value.code();
@@ -38,5 +38,4 @@ function matcherCode(value) {
38
38
  return JSON.stringify(value);
39
39
  }
40
40
  }
41
- exports.matcherCode = matcherCode;
42
41
  //# sourceMappingURL=matcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../src/src/matcher.ts"],"names":[],"mappings":";;;;;AAUA,8BAEC;AAED,gDAMC;AAED,oCAMC;AAED,kCAQC;AAtCD,oEAAqC;AAUrC,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,EAAiD,MAAM,eAAe,CAAC;AAE/G,wBAAgB,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAY7D"}
@@ -0,0 +1,18 @@
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
+ //# sourceMappingURL=and.js.map