@cucumber/react-components 24.2.0 → 24.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (691) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +2 -2
  3. package/dist/CucumberQueryContext.d.ts +3 -0
  4. package/dist/CucumberQueryContext.js +4 -0
  5. package/dist/GherkinQueryContext.d.ts +3 -0
  6. package/dist/GherkinQueryContext.js +4 -0
  7. package/dist/SearchContext.d.ts +18 -0
  8. package/dist/SearchContext.js +10 -0
  9. package/dist/ciCommitLink.d.ts +2 -0
  10. package/dist/ciCommitLink.js +12 -0
  11. package/dist/components/app/CICommitLink.d.ts +5 -0
  12. package/dist/components/app/CICommitLink.js +16 -0
  13. package/dist/components/app/CIJobLink.d.ts +5 -0
  14. package/dist/components/app/CIJobLink.js +10 -0
  15. package/dist/{src/components → components}/app/ControlledSearchProvider.d.ts +2 -3
  16. package/dist/components/app/ControlledSearchProvider.js +39 -0
  17. package/dist/components/app/CopyButton.d.ts +5 -0
  18. package/dist/components/app/CopyButton.js +23 -0
  19. package/dist/{src/components → components}/app/DocumentAccordion.d.ts +3 -4
  20. package/dist/components/app/DocumentAccordion.js +22 -0
  21. package/dist/{src/components → components}/app/DocumentAccordion.module.scss +15 -7
  22. package/dist/components/app/EnvelopesProvider.d.ts +7 -0
  23. package/dist/components/app/EnvelopesProvider.js +18 -0
  24. package/dist/components/app/ExecutionSummary.d.ts +2 -0
  25. package/dist/components/app/ExecutionSummary.js +38 -0
  26. package/dist/components/app/FilteredDocuments.d.ts +2 -0
  27. package/dist/components/app/FilteredDocuments.js +15 -0
  28. package/dist/components/app/GherkinDocumentList.d.ts +8 -0
  29. package/dist/components/app/GherkinDocumentList.js +23 -0
  30. package/dist/{src/components → components}/app/Header.d.ts +1 -2
  31. package/dist/components/app/Header.js +12 -0
  32. package/dist/components/app/HealthChart.d.ts +2 -0
  33. package/dist/components/app/HealthChart.js +14 -0
  34. package/dist/components/app/HighLight.d.ts +8 -0
  35. package/dist/components/app/HighLight.js +38 -0
  36. package/dist/components/app/ImplementationIcon.d.ts +5 -0
  37. package/dist/components/app/ImplementationIcon.js +10 -0
  38. package/dist/{src/components → components}/app/InMemorySearchProvider.d.ts +2 -3
  39. package/dist/components/app/InMemorySearchProvider.js +11 -0
  40. package/dist/components/app/NavigationButton.d.ts +2 -0
  41. package/dist/components/app/NavigationButton.js +6 -0
  42. package/dist/components/app/OSIcon.d.ts +5 -0
  43. package/dist/components/app/OSIcon.js +18 -0
  44. package/dist/components/app/QueriesProvider.d.ts +9 -0
  45. package/dist/components/app/QueriesProvider.js +7 -0
  46. package/dist/components/app/Report.d.ts +2 -0
  47. package/dist/components/app/Report.js +10 -0
  48. package/dist/components/app/RuntimeIcon.d.ts +5 -0
  49. package/dist/components/app/RuntimeIcon.js +18 -0
  50. package/dist/components/app/SearchBar.d.ts +2 -0
  51. package/dist/components/app/SearchBar.js +33 -0
  52. package/dist/components/app/StatusesSummary.d.ts +2 -0
  53. package/dist/components/app/StatusesSummary.js +16 -0
  54. package/dist/components/app/TestRunHooks.d.ts +2 -0
  55. package/dist/components/app/TestRunHooks.js +14 -0
  56. package/dist/{src/components → components}/app/UrlSearchProvider.d.ts +1 -2
  57. package/dist/components/app/UrlSearchProvider.js +29 -0
  58. package/dist/{src/components → components}/app/findMostSevereTestStepResultStatus.d.ts +0 -1
  59. package/dist/components/app/findMostSevereTestStepResultStatus.js +17 -0
  60. package/dist/components/app/icons/CucumberLogo.d.ts +2 -0
  61. package/dist/components/app/icons/CucumberLogo.js +5 -0
  62. package/dist/components/app/icons/Jvm.d.ts +2 -0
  63. package/dist/components/app/icons/Jvm.js +5 -0
  64. package/dist/components/app/icons/Linux.d.ts +2 -0
  65. package/dist/components/app/icons/Linux.js +5 -0
  66. package/dist/components/app/icons/MacOS.d.ts +2 -0
  67. package/dist/components/app/icons/MacOS.js +5 -0
  68. package/dist/components/app/icons/NodeJs.d.ts +2 -0
  69. package/dist/components/app/icons/NodeJs.js +5 -0
  70. package/dist/components/app/icons/Ruby.d.ts +2 -0
  71. package/dist/components/app/icons/Ruby.js +5 -0
  72. package/dist/components/app/icons/Windows.d.ts +2 -0
  73. package/dist/components/app/icons/Windows.js +5 -0
  74. package/dist/{src/components/app/index.js → components/app/index.d.ts} +0 -1
  75. package/dist/components/app/index.js +15 -0
  76. package/dist/components/app/makeSetupString.d.ts +2 -0
  77. package/dist/components/app/makeSetupString.js +21 -0
  78. package/dist/components/app/markdownComponents.d.ts +8 -0
  79. package/dist/components/app/markdownComponents.js +6 -0
  80. package/dist/components/app/rehypePlugins.d.ts +3 -0
  81. package/dist/components/app/rehypePlugins.js +9 -0
  82. package/dist/components/app/remarkPlugins.d.ts +3 -0
  83. package/dist/components/app/remarkPlugins.js +4 -0
  84. package/dist/{src/components → components}/customise/CustomRendering.d.ts +18 -19
  85. package/dist/components/customise/CustomRendering.js +35 -0
  86. package/dist/components/customise/CustomRendering.stories.scss +8 -0
  87. package/dist/{src/components/customise/index.js → components/customise/index.d.ts} +0 -1
  88. package/dist/components/customise/index.js +3 -0
  89. package/dist/{src/components → components}/customise/theming.d.ts +0 -1
  90. package/dist/components/customise/theming.js +2 -0
  91. package/dist/components/gherkin/Anchor.d.ts +3 -0
  92. package/dist/components/gherkin/Anchor.js +13 -0
  93. package/dist/components/gherkin/Background.d.ts +3 -0
  94. package/dist/components/gherkin/Background.js +18 -0
  95. package/dist/components/gherkin/Children.d.ts +3 -0
  96. package/dist/components/gherkin/Children.js +11 -0
  97. package/dist/components/gherkin/DataTable.d.ts +3 -0
  98. package/dist/components/gherkin/DataTable.js +16 -0
  99. package/dist/components/gherkin/Description.d.ts +3 -0
  100. package/dist/components/gherkin/Description.js +15 -0
  101. package/dist/components/gherkin/DocString.d.ts +3 -0
  102. package/dist/components/gherkin/DocString.js +12 -0
  103. package/dist/components/gherkin/ErrorMessage.d.ts +3 -0
  104. package/dist/components/gherkin/ErrorMessage.js +13 -0
  105. package/dist/components/gherkin/ErrorMessage.module.scss +24 -0
  106. package/dist/components/gherkin/Examples.d.ts +3 -0
  107. package/dist/components/gherkin/Examples.js +31 -0
  108. package/dist/components/gherkin/Feature.d.ts +3 -0
  109. package/dist/components/gherkin/Feature.js +30 -0
  110. package/dist/components/gherkin/GherkinDocument.d.ts +3 -0
  111. package/dist/components/gherkin/GherkinDocument.js +11 -0
  112. package/dist/components/gherkin/Keyword.d.ts +3 -0
  113. package/dist/components/gherkin/Keyword.js +11 -0
  114. package/dist/{src/components → components}/gherkin/Keyword.module.scss +0 -1
  115. package/dist/components/gherkin/Parameter.d.ts +3 -0
  116. package/dist/components/gherkin/Parameter.js +11 -0
  117. package/dist/components/gherkin/Rule.d.ts +3 -0
  118. package/dist/components/gherkin/Rule.js +26 -0
  119. package/dist/components/gherkin/Scenario.d.ts +3 -0
  120. package/dist/components/gherkin/Scenario.js +22 -0
  121. package/dist/components/gherkin/StatusIcon.d.ts +3 -0
  122. package/dist/components/gherkin/StatusIcon.js +24 -0
  123. package/dist/components/gherkin/StepsList.d.ts +4 -0
  124. package/dist/components/gherkin/StepsList.js +6 -0
  125. package/dist/components/gherkin/Tags.d.ts +3 -0
  126. package/dist/components/gherkin/Tags.js +15 -0
  127. package/dist/components/gherkin/Title.d.ts +3 -0
  128. package/dist/components/gherkin/Title.js +12 -0
  129. package/dist/components/gherkin/attachment/Attachment.d.ts +3 -0
  130. package/dist/components/gherkin/attachment/Attachment.js +45 -0
  131. package/dist/{src/components → components}/gherkin/attachment/Attachment.module.scss +15 -5
  132. package/dist/components/gherkin/attachment/Image.d.ts +7 -0
  133. package/dist/components/gherkin/attachment/Image.js +16 -0
  134. package/dist/components/gherkin/attachment/Links.d.ts +7 -0
  135. package/dist/components/gherkin/attachment/Links.js +14 -0
  136. package/dist/components/gherkin/attachment/Log.d.ts +7 -0
  137. package/dist/components/gherkin/attachment/Log.js +12 -0
  138. package/dist/components/gherkin/attachment/Text.d.ts +8 -0
  139. package/dist/components/gherkin/attachment/Text.js +16 -0
  140. package/dist/components/gherkin/attachment/Unknown.d.ts +3 -0
  141. package/dist/components/gherkin/attachment/Unknown.js +61 -0
  142. package/dist/components/gherkin/attachment/Video.d.ts +5 -0
  143. package/dist/components/gherkin/attachment/Video.js +16 -0
  144. package/dist/components/gherkin/attachment/attachmentFilename.d.ts +2 -0
  145. package/dist/components/gherkin/attachment/attachmentFilename.js +12 -0
  146. package/dist/components/gherkin/attachment/base64Decode.d.ts +9 -0
  147. package/dist/components/gherkin/attachment/base64Decode.js +19 -0
  148. package/dist/{src/components/gherkin/attachment/index.js → components/gherkin/attachment/index.d.ts} +0 -1
  149. package/dist/components/gherkin/attachment/index.js +2 -0
  150. package/dist/{src/components → components}/gherkin/attachment/useText.d.ts +1 -2
  151. package/dist/components/gherkin/attachment/useText.js +28 -0
  152. package/dist/components/gherkin/composeHookStepTitle.d.ts +2 -0
  153. package/dist/components/gherkin/composeHookStepTitle.js +23 -0
  154. package/dist/{src/components → components}/gherkin/composePickleStepTitle.d.ts +1 -2
  155. package/dist/components/gherkin/composePickleStepTitle.js +36 -0
  156. package/dist/{src/components/gherkin/index.js → components/gherkin/index.d.ts} +0 -1
  157. package/dist/components/gherkin/index.js +19 -0
  158. package/dist/{src/components → components}/gherkin/isNumber.d.ts +0 -1
  159. package/dist/components/gherkin/isNumber.js +7 -0
  160. package/dist/components/gherkin/statusName.d.ts +3 -0
  161. package/dist/components/gherkin/statusName.js +4 -0
  162. package/dist/{src/components/index.js → components/index.d.ts} +0 -1
  163. package/dist/components/index.js +4 -0
  164. package/dist/components/results/AmbiguousResult.d.ts +7 -0
  165. package/dist/components/results/AmbiguousResult.js +11 -0
  166. package/dist/components/results/AmbiguousResult.module.scss +22 -0
  167. package/dist/components/results/FailedResult.d.ts +7 -0
  168. package/dist/components/results/FailedResult.js +15 -0
  169. package/dist/components/results/PendingResult.d.ts +7 -0
  170. package/dist/components/results/PendingResult.js +12 -0
  171. package/dist/components/results/ResultNote.d.ts +2 -0
  172. package/dist/components/results/ResultNote.js +6 -0
  173. package/dist/components/results/ResultNote.module.scss +6 -0
  174. package/dist/components/results/SkippedResult.d.ts +7 -0
  175. package/dist/components/results/SkippedResult.js +12 -0
  176. package/dist/components/results/SourceReference.d.ts +7 -0
  177. package/dist/components/results/SourceReference.js +13 -0
  178. package/dist/components/results/SourceReference.module.scss +10 -0
  179. package/dist/components/results/TestCaseOutcome.d.ts +7 -0
  180. package/dist/components/results/TestCaseOutcome.js +32 -0
  181. package/dist/{src/components → components}/results/TestRunHookOutcome.d.ts +2 -3
  182. package/dist/components/results/TestRunHookOutcome.js +11 -0
  183. package/dist/components/results/TestStepAttachments.d.ts +7 -0
  184. package/dist/components/results/TestStepAttachments.js +12 -0
  185. package/dist/components/results/TestStepDuration.d.ts +5 -0
  186. package/dist/components/results/TestStepDuration.js +19 -0
  187. package/dist/{src/components → components}/results/TestStepOutcome.d.ts +2 -3
  188. package/dist/components/results/TestStepOutcome.js +45 -0
  189. package/dist/{src/components → components}/results/TestStepOutcome.module.scss +1 -1
  190. package/dist/components/results/UndefinedResult.d.ts +7 -0
  191. package/dist/components/results/UndefinedResult.js +18 -0
  192. package/dist/{src/components/gherkin/ErrorMessage.module.scss → components/results/UndefinedResult.module.scss} +5 -3
  193. package/dist/components/results/index.d.ts +2 -0
  194. package/dist/components/results/index.js +3 -0
  195. package/dist/{src/hooks/helpers.d.ts → ensure.d.ts} +0 -1
  196. package/dist/ensure.js +7 -0
  197. package/dist/{src/formatExecutionDistance.d.ts → formatExecutionDistance.d.ts} +0 -1
  198. package/dist/formatExecutionDistance.js +7 -0
  199. package/dist/{src/formatExecutionDuration.d.ts → formatExecutionDuration.d.ts} +0 -1
  200. package/dist/formatExecutionDuration.js +12 -0
  201. package/dist/{src/formatPassedQuantity.d.ts → formatPassedQuantity.d.ts} +0 -1
  202. package/dist/formatPassedQuantity.js +4 -0
  203. package/dist/{src/formatStatusRate.d.ts → formatStatusRate.d.ts} +0 -1
  204. package/dist/formatStatusRate.js +9 -0
  205. package/dist/{src/hooks/index.js → hooks/index.d.ts} +0 -1
  206. package/dist/hooks/index.js +3 -0
  207. package/dist/hooks/useFilteredDocuments.d.ts +5 -0
  208. package/dist/hooks/useFilteredDocuments.js +67 -0
  209. package/dist/hooks/useFilteredTestCases.d.ts +6 -0
  210. package/dist/hooks/useFilteredTestCases.js +36 -0
  211. package/dist/{src/hooks → hooks}/useMostSevereStatusByUri.d.ts +0 -1
  212. package/dist/hooks/useMostSevereStatusByUri.js +25 -0
  213. package/dist/hooks/useQueries.d.ts +6 -0
  214. package/dist/hooks/useQueries.js +9 -0
  215. package/dist/{src/hooks → hooks}/useResultStatistics.d.ts +1 -2
  216. package/dist/hooks/useResultStatistics.js +24 -0
  217. package/dist/hooks/useSearch.d.ts +2 -0
  218. package/dist/hooks/useSearch.js +6 -0
  219. package/dist/hooks/useSearchResult.d.ts +26 -0
  220. package/dist/hooks/useSearchResult.js +58 -0
  221. package/dist/hooks/useTestCaseStarted.d.ts +7 -0
  222. package/dist/hooks/useTestCaseStarted.js +20 -0
  223. package/dist/{src/hooks → hooks}/useTestRunHooks.d.ts +1 -2
  224. package/dist/hooks/useTestRunHooks.js +14 -0
  225. package/dist/{src/index.js → index.d.ts} +0 -1
  226. package/dist/index.js +3 -0
  227. package/dist/{src/isTagExpression.d.ts → isTagExpression.d.ts} +0 -1
  228. package/dist/isTagExpression.js +5 -0
  229. package/dist/search/FeatureSearch.d.ts +12 -0
  230. package/dist/search/FeatureSearch.js +39 -0
  231. package/dist/search/ScenarioLikeSearch.d.ts +19 -0
  232. package/dist/search/ScenarioLikeSearch.js +37 -0
  233. package/dist/search/StepSearch.d.ts +11 -0
  234. package/dist/search/StepSearch.js +40 -0
  235. package/dist/search/TextSearch.d.ts +11 -0
  236. package/dist/search/TextSearch.js +67 -0
  237. package/dist/search/createSearchIndex.d.ts +6 -0
  238. package/dist/search/createSearchIndex.js +10 -0
  239. package/dist/search/deriveLineageConstraints.d.ts +7 -0
  240. package/dist/search/deriveLineageConstraints.js +38 -0
  241. package/dist/search/filterAndExpandTestCaseEvents.d.ts +20 -0
  242. package/dist/search/filterAndExpandTestCaseEvents.js +32 -0
  243. package/dist/search/index.d.ts +6 -0
  244. package/dist/search/index.js +7 -0
  245. package/dist/search/pruneGherkinDocuments.d.ts +23 -0
  246. package/dist/search/pruneGherkinDocuments.js +179 -0
  247. package/dist/search/pruneTestCaseEvents.d.ts +16 -0
  248. package/dist/search/pruneTestCaseEvents.js +41 -0
  249. package/dist/search/types.d.ts +44 -0
  250. package/dist/search/types.js +2 -0
  251. package/dist/{src/statuses.d.ts → statuses.d.ts} +0 -1
  252. package/dist/statuses.js +12 -0
  253. package/dist/toRepositoryId.d.ts +1 -0
  254. package/dist/toRepositoryId.js +12 -0
  255. package/package.json +65 -75
  256. package/dist/src/CucumberQueryContext.d.ts +0 -5
  257. package/dist/src/CucumberQueryContext.d.ts.map +0 -1
  258. package/dist/src/CucumberQueryContext.js +0 -4
  259. package/dist/src/CucumberQueryContext.js.map +0 -1
  260. package/dist/src/GherkinQueryContext.d.ts +0 -5
  261. package/dist/src/GherkinQueryContext.d.ts.map +0 -1
  262. package/dist/src/GherkinQueryContext.js +0 -4
  263. package/dist/src/GherkinQueryContext.js.map +0 -1
  264. package/dist/src/SearchContext.d.ts +0 -13
  265. package/dist/src/SearchContext.d.ts.map +0 -1
  266. package/dist/src/SearchContext.js +0 -8
  267. package/dist/src/SearchContext.js.map +0 -1
  268. package/dist/src/ciCommitLink.d.ts +0 -3
  269. package/dist/src/ciCommitLink.d.ts.map +0 -1
  270. package/dist/src/ciCommitLink.js +0 -12
  271. package/dist/src/ciCommitLink.js.map +0 -1
  272. package/dist/src/components/app/CICommitLink.d.ts +0 -6
  273. package/dist/src/components/app/CICommitLink.d.ts.map +0 -1
  274. package/dist/src/components/app/CICommitLink.js +0 -21
  275. package/dist/src/components/app/CICommitLink.js.map +0 -1
  276. package/dist/src/components/app/CIJobLink.d.ts +0 -6
  277. package/dist/src/components/app/CIJobLink.d.ts.map +0 -1
  278. package/dist/src/components/app/CIJobLink.js +0 -14
  279. package/dist/src/components/app/CIJobLink.js.map +0 -1
  280. package/dist/src/components/app/ControlledSearchProvider.d.ts.map +0 -1
  281. package/dist/src/components/app/ControlledSearchProvider.js +0 -17
  282. package/dist/src/components/app/ControlledSearchProvider.js.map +0 -1
  283. package/dist/src/components/app/CopyButton.d.ts +0 -5
  284. package/dist/src/components/app/CopyButton.d.ts.map +0 -1
  285. package/dist/src/components/app/CopyButton.js +0 -23
  286. package/dist/src/components/app/CopyButton.js.map +0 -1
  287. package/dist/src/components/app/DocumentAccordion.d.ts.map +0 -1
  288. package/dist/src/components/app/DocumentAccordion.js +0 -30
  289. package/dist/src/components/app/DocumentAccordion.js.map +0 -1
  290. package/dist/src/components/app/EnvelopesProvider.d.ts +0 -8
  291. package/dist/src/components/app/EnvelopesProvider.d.ts.map +0 -1
  292. package/dist/src/components/app/EnvelopesProvider.js +0 -17
  293. package/dist/src/components/app/EnvelopesProvider.js.map +0 -1
  294. package/dist/src/components/app/ExecutionSummary.d.ts +0 -3
  295. package/dist/src/components/app/ExecutionSummary.d.ts.map +0 -1
  296. package/dist/src/components/app/ExecutionSummary.js +0 -84
  297. package/dist/src/components/app/ExecutionSummary.js.map +0 -1
  298. package/dist/src/components/app/FilteredDocuments.d.ts +0 -3
  299. package/dist/src/components/app/FilteredDocuments.d.ts.map +0 -1
  300. package/dist/src/components/app/FilteredDocuments.js +0 -15
  301. package/dist/src/components/app/FilteredDocuments.js.map +0 -1
  302. package/dist/src/components/app/GherkinDocumentList.d.ts +0 -9
  303. package/dist/src/components/app/GherkinDocumentList.d.ts.map +0 -1
  304. package/dist/src/components/app/GherkinDocumentList.js +0 -24
  305. package/dist/src/components/app/GherkinDocumentList.js.map +0 -1
  306. package/dist/src/components/app/Header.d.ts.map +0 -1
  307. package/dist/src/components/app/Header.js +0 -12
  308. package/dist/src/components/app/Header.js.map +0 -1
  309. package/dist/src/components/app/HealthChart.d.ts +0 -3
  310. package/dist/src/components/app/HealthChart.d.ts.map +0 -1
  311. package/dist/src/components/app/HealthChart.js +0 -15
  312. package/dist/src/components/app/HealthChart.js.map +0 -1
  313. package/dist/src/components/app/HighLight.d.ts +0 -9
  314. package/dist/src/components/app/HighLight.d.ts.map +0 -1
  315. package/dist/src/components/app/HighLight.js +0 -32
  316. package/dist/src/components/app/HighLight.js.map +0 -1
  317. package/dist/src/components/app/ImplementationIcon.d.ts +0 -6
  318. package/dist/src/components/app/ImplementationIcon.d.ts.map +0 -1
  319. package/dist/src/components/app/ImplementationIcon.js +0 -10
  320. package/dist/src/components/app/ImplementationIcon.js.map +0 -1
  321. package/dist/src/components/app/InMemorySearchProvider.d.ts.map +0 -1
  322. package/dist/src/components/app/InMemorySearchProvider.js +0 -10
  323. package/dist/src/components/app/InMemorySearchProvider.js.map +0 -1
  324. package/dist/src/components/app/NavigationButton.d.ts +0 -3
  325. package/dist/src/components/app/NavigationButton.d.ts.map +0 -1
  326. package/dist/src/components/app/NavigationButton.js +0 -6
  327. package/dist/src/components/app/NavigationButton.js.map +0 -1
  328. package/dist/src/components/app/OSIcon.d.ts +0 -6
  329. package/dist/src/components/app/OSIcon.d.ts.map +0 -1
  330. package/dist/src/components/app/OSIcon.js +0 -18
  331. package/dist/src/components/app/OSIcon.js.map +0 -1
  332. package/dist/src/components/app/QueriesProvider.d.ts +0 -10
  333. package/dist/src/components/app/QueriesProvider.d.ts.map +0 -1
  334. package/dist/src/components/app/QueriesProvider.js +0 -6
  335. package/dist/src/components/app/QueriesProvider.js.map +0 -1
  336. package/dist/src/components/app/Report.d.ts +0 -3
  337. package/dist/src/components/app/Report.d.ts.map +0 -1
  338. package/dist/src/components/app/Report.js +0 -19
  339. package/dist/src/components/app/Report.js.map +0 -1
  340. package/dist/src/components/app/RuntimeIcon.d.ts +0 -6
  341. package/dist/src/components/app/RuntimeIcon.d.ts.map +0 -1
  342. package/dist/src/components/app/RuntimeIcon.js +0 -18
  343. package/dist/src/components/app/RuntimeIcon.js.map +0 -1
  344. package/dist/src/components/app/SearchBar.d.ts +0 -3
  345. package/dist/src/components/app/SearchBar.d.ts.map +0 -1
  346. package/dist/src/components/app/SearchBar.js +0 -48
  347. package/dist/src/components/app/SearchBar.js.map +0 -1
  348. package/dist/src/components/app/StatusesSummary.d.ts +0 -3
  349. package/dist/src/components/app/StatusesSummary.d.ts.map +0 -1
  350. package/dist/src/components/app/StatusesSummary.js +0 -19
  351. package/dist/src/components/app/StatusesSummary.js.map +0 -1
  352. package/dist/src/components/app/TestRunHooks.d.ts +0 -3
  353. package/dist/src/components/app/TestRunHooks.d.ts.map +0 -1
  354. package/dist/src/components/app/TestRunHooks.js +0 -14
  355. package/dist/src/components/app/TestRunHooks.js.map +0 -1
  356. package/dist/src/components/app/UrlSearchProvider.d.ts.map +0 -1
  357. package/dist/src/components/app/UrlSearchProvider.js +0 -26
  358. package/dist/src/components/app/UrlSearchProvider.js.map +0 -1
  359. package/dist/src/components/app/findMostSevereTestStepResultStatus.d.ts.map +0 -1
  360. package/dist/src/components/app/findMostSevereTestStepResultStatus.js +0 -17
  361. package/dist/src/components/app/findMostSevereTestStepResultStatus.js.map +0 -1
  362. package/dist/src/components/app/icons/CucumberLogo.d.ts +0 -3
  363. package/dist/src/components/app/icons/CucumberLogo.d.ts.map +0 -1
  364. package/dist/src/components/app/icons/CucumberLogo.js +0 -9
  365. package/dist/src/components/app/icons/CucumberLogo.js.map +0 -1
  366. package/dist/src/components/app/icons/Jvm.d.ts +0 -3
  367. package/dist/src/components/app/icons/Jvm.d.ts.map +0 -1
  368. package/dist/src/components/app/icons/Jvm.js +0 -10
  369. package/dist/src/components/app/icons/Jvm.js.map +0 -1
  370. package/dist/src/components/app/icons/Linux.d.ts +0 -3
  371. package/dist/src/components/app/icons/Linux.d.ts.map +0 -1
  372. package/dist/src/components/app/icons/Linux.js +0 -20
  373. package/dist/src/components/app/icons/Linux.js.map +0 -1
  374. package/dist/src/components/app/icons/MacOS.d.ts +0 -3
  375. package/dist/src/components/app/icons/MacOS.d.ts.map +0 -1
  376. package/dist/src/components/app/icons/MacOS.js +0 -6
  377. package/dist/src/components/app/icons/MacOS.js.map +0 -1
  378. package/dist/src/components/app/icons/NodeJs.d.ts +0 -3
  379. package/dist/src/components/app/icons/NodeJs.d.ts.map +0 -1
  380. package/dist/src/components/app/icons/NodeJs.js +0 -8
  381. package/dist/src/components/app/icons/NodeJs.js.map +0 -1
  382. package/dist/src/components/app/icons/Ruby.d.ts +0 -3
  383. package/dist/src/components/app/icons/Ruby.d.ts.map +0 -1
  384. package/dist/src/components/app/icons/Ruby.js +0 -6
  385. package/dist/src/components/app/icons/Ruby.js.map +0 -1
  386. package/dist/src/components/app/icons/Windows.d.ts +0 -3
  387. package/dist/src/components/app/icons/Windows.d.ts.map +0 -1
  388. package/dist/src/components/app/icons/Windows.js +0 -6
  389. package/dist/src/components/app/icons/Windows.js.map +0 -1
  390. package/dist/src/components/app/index.d.ts +0 -15
  391. package/dist/src/components/app/index.d.ts.map +0 -1
  392. package/dist/src/components/app/index.js.map +0 -1
  393. package/dist/src/components/app/makeSetupString.d.ts +0 -3
  394. package/dist/src/components/app/makeSetupString.d.ts.map +0 -1
  395. package/dist/src/components/app/makeSetupString.js +0 -21
  396. package/dist/src/components/app/makeSetupString.js.map +0 -1
  397. package/dist/src/components/app/rehypePlugins.d.ts +0 -4
  398. package/dist/src/components/app/rehypePlugins.d.ts.map +0 -1
  399. package/dist/src/components/app/rehypePlugins.js +0 -9
  400. package/dist/src/components/app/rehypePlugins.js.map +0 -1
  401. package/dist/src/components/app/remarkPlugins.d.ts +0 -4
  402. package/dist/src/components/app/remarkPlugins.d.ts.map +0 -1
  403. package/dist/src/components/app/remarkPlugins.js +0 -4
  404. package/dist/src/components/app/remarkPlugins.js.map +0 -1
  405. package/dist/src/components/customise/CustomRendering.d.ts.map +0 -1
  406. package/dist/src/components/customise/CustomRendering.js +0 -34
  407. package/dist/src/components/customise/CustomRendering.js.map +0 -1
  408. package/dist/src/components/customise/CustomRendering.stories.scss +0 -25
  409. package/dist/src/components/customise/index.d.ts +0 -3
  410. package/dist/src/components/customise/index.d.ts.map +0 -1
  411. package/dist/src/components/customise/index.js.map +0 -1
  412. package/dist/src/components/customise/theming.d.ts.map +0 -1
  413. package/dist/src/components/customise/theming.js +0 -2
  414. package/dist/src/components/customise/theming.js.map +0 -1
  415. package/dist/src/components/gherkin/Anchor.d.ts +0 -4
  416. package/dist/src/components/gherkin/Anchor.d.ts.map +0 -1
  417. package/dist/src/components/gherkin/Anchor.js +0 -16
  418. package/dist/src/components/gherkin/Anchor.js.map +0 -1
  419. package/dist/src/components/gherkin/Background.d.ts +0 -4
  420. package/dist/src/components/gherkin/Background.d.ts.map +0 -1
  421. package/dist/src/components/gherkin/Background.js +0 -24
  422. package/dist/src/components/gherkin/Background.js.map +0 -1
  423. package/dist/src/components/gherkin/Children.d.ts +0 -4
  424. package/dist/src/components/gherkin/Children.d.ts.map +0 -1
  425. package/dist/src/components/gherkin/Children.js +0 -11
  426. package/dist/src/components/gherkin/Children.js.map +0 -1
  427. package/dist/src/components/gherkin/DataTable.d.ts +0 -4
  428. package/dist/src/components/gherkin/DataTable.d.ts.map +0 -1
  429. package/dist/src/components/gherkin/DataTable.js +0 -18
  430. package/dist/src/components/gherkin/DataTable.js.map +0 -1
  431. package/dist/src/components/gherkin/Description.d.ts +0 -4
  432. package/dist/src/components/gherkin/Description.d.ts.map +0 -1
  433. package/dist/src/components/gherkin/Description.js +0 -16
  434. package/dist/src/components/gherkin/Description.js.map +0 -1
  435. package/dist/src/components/gherkin/DocString.d.ts +0 -4
  436. package/dist/src/components/gherkin/DocString.d.ts.map +0 -1
  437. package/dist/src/components/gherkin/DocString.js +0 -13
  438. package/dist/src/components/gherkin/DocString.js.map +0 -1
  439. package/dist/src/components/gherkin/ErrorMessage.d.ts +0 -4
  440. package/dist/src/components/gherkin/ErrorMessage.d.ts.map +0 -1
  441. package/dist/src/components/gherkin/ErrorMessage.js +0 -11
  442. package/dist/src/components/gherkin/ErrorMessage.js.map +0 -1
  443. package/dist/src/components/gherkin/Examples.d.ts +0 -4
  444. package/dist/src/components/gherkin/Examples.d.ts.map +0 -1
  445. package/dist/src/components/gherkin/Examples.js +0 -42
  446. package/dist/src/components/gherkin/Examples.js.map +0 -1
  447. package/dist/src/components/gherkin/Feature.d.ts +0 -4
  448. package/dist/src/components/gherkin/Feature.d.ts.map +0 -1
  449. package/dist/src/components/gherkin/Feature.js +0 -40
  450. package/dist/src/components/gherkin/Feature.js.map +0 -1
  451. package/dist/src/components/gherkin/GherkinDocument.d.ts +0 -4
  452. package/dist/src/components/gherkin/GherkinDocument.d.ts.map +0 -1
  453. package/dist/src/components/gherkin/GherkinDocument.js +0 -11
  454. package/dist/src/components/gherkin/GherkinDocument.js.map +0 -1
  455. package/dist/src/components/gherkin/Keyword.d.ts +0 -4
  456. package/dist/src/components/gherkin/Keyword.d.ts.map +0 -1
  457. package/dist/src/components/gherkin/Keyword.js +0 -11
  458. package/dist/src/components/gherkin/Keyword.js.map +0 -1
  459. package/dist/src/components/gherkin/Parameter.d.ts +0 -4
  460. package/dist/src/components/gherkin/Parameter.d.ts.map +0 -1
  461. package/dist/src/components/gherkin/Parameter.js +0 -11
  462. package/dist/src/components/gherkin/Parameter.js.map +0 -1
  463. package/dist/src/components/gherkin/Rule.d.ts +0 -4
  464. package/dist/src/components/gherkin/Rule.d.ts.map +0 -1
  465. package/dist/src/components/gherkin/Rule.js +0 -36
  466. package/dist/src/components/gherkin/Rule.js.map +0 -1
  467. package/dist/src/components/gherkin/Scenario.d.ts +0 -4
  468. package/dist/src/components/gherkin/Scenario.d.ts.map +0 -1
  469. package/dist/src/components/gherkin/Scenario.js +0 -31
  470. package/dist/src/components/gherkin/Scenario.js.map +0 -1
  471. package/dist/src/components/gherkin/StatusIcon.d.ts +0 -4
  472. package/dist/src/components/gherkin/StatusIcon.d.ts.map +0 -1
  473. package/dist/src/components/gherkin/StatusIcon.js +0 -24
  474. package/dist/src/components/gherkin/StatusIcon.js.map +0 -1
  475. package/dist/src/components/gherkin/StepsList.d.ts +0 -5
  476. package/dist/src/components/gherkin/StepsList.d.ts.map +0 -1
  477. package/dist/src/components/gherkin/StepsList.js +0 -6
  478. package/dist/src/components/gherkin/StepsList.js.map +0 -1
  479. package/dist/src/components/gherkin/Tags.d.ts +0 -4
  480. package/dist/src/components/gherkin/Tags.d.ts.map +0 -1
  481. package/dist/src/components/gherkin/Tags.js +0 -16
  482. package/dist/src/components/gherkin/Tags.js.map +0 -1
  483. package/dist/src/components/gherkin/Title.d.ts +0 -4
  484. package/dist/src/components/gherkin/Title.d.ts.map +0 -1
  485. package/dist/src/components/gherkin/Title.js +0 -13
  486. package/dist/src/components/gherkin/Title.js.map +0 -1
  487. package/dist/src/components/gherkin/attachment/Attachment.d.ts +0 -4
  488. package/dist/src/components/gherkin/attachment/Attachment.d.ts.map +0 -1
  489. package/dist/src/components/gherkin/attachment/Attachment.js +0 -48
  490. package/dist/src/components/gherkin/attachment/Attachment.js.map +0 -1
  491. package/dist/src/components/gherkin/attachment/Image.d.ts +0 -8
  492. package/dist/src/components/gherkin/attachment/Image.d.ts.map +0 -1
  493. package/dist/src/components/gherkin/attachment/Image.js +0 -18
  494. package/dist/src/components/gherkin/attachment/Image.js.map +0 -1
  495. package/dist/src/components/gherkin/attachment/Links.d.ts +0 -8
  496. package/dist/src/components/gherkin/attachment/Links.d.ts.map +0 -1
  497. package/dist/src/components/gherkin/attachment/Links.js +0 -17
  498. package/dist/src/components/gherkin/attachment/Links.js.map +0 -1
  499. package/dist/src/components/gherkin/attachment/Log.d.ts +0 -8
  500. package/dist/src/components/gherkin/attachment/Log.d.ts.map +0 -1
  501. package/dist/src/components/gherkin/attachment/Log.js +0 -12
  502. package/dist/src/components/gherkin/attachment/Log.js.map +0 -1
  503. package/dist/src/components/gherkin/attachment/Text.d.ts +0 -9
  504. package/dist/src/components/gherkin/attachment/Text.d.ts.map +0 -1
  505. package/dist/src/components/gherkin/attachment/Text.js +0 -18
  506. package/dist/src/components/gherkin/attachment/Text.js.map +0 -1
  507. package/dist/src/components/gherkin/attachment/Unknown.d.ts +0 -4
  508. package/dist/src/components/gherkin/attachment/Unknown.d.ts.map +0 -1
  509. package/dist/src/components/gherkin/attachment/Unknown.js +0 -69
  510. package/dist/src/components/gherkin/attachment/Unknown.js.map +0 -1
  511. package/dist/src/components/gherkin/attachment/Video.d.ts +0 -6
  512. package/dist/src/components/gherkin/attachment/Video.d.ts.map +0 -1
  513. package/dist/src/components/gherkin/attachment/Video.js +0 -20
  514. package/dist/src/components/gherkin/attachment/Video.js.map +0 -1
  515. package/dist/src/components/gherkin/attachment/attachmentFilename.d.ts +0 -3
  516. package/dist/src/components/gherkin/attachment/attachmentFilename.d.ts.map +0 -1
  517. package/dist/src/components/gherkin/attachment/attachmentFilename.js +0 -12
  518. package/dist/src/components/gherkin/attachment/attachmentFilename.js.map +0 -1
  519. package/dist/src/components/gherkin/attachment/base64Decode.d.ts +0 -2
  520. package/dist/src/components/gherkin/attachment/base64Decode.d.ts.map +0 -1
  521. package/dist/src/components/gherkin/attachment/base64Decode.js +0 -5
  522. package/dist/src/components/gherkin/attachment/base64Decode.js.map +0 -1
  523. package/dist/src/components/gherkin/attachment/index.d.ts +0 -2
  524. package/dist/src/components/gherkin/attachment/index.d.ts.map +0 -1
  525. package/dist/src/components/gherkin/attachment/index.js.map +0 -1
  526. package/dist/src/components/gherkin/attachment/useText.d.ts.map +0 -1
  527. package/dist/src/components/gherkin/attachment/useText.js +0 -28
  528. package/dist/src/components/gherkin/attachment/useText.js.map +0 -1
  529. package/dist/src/components/gherkin/composeHookStepTitle.d.ts +0 -3
  530. package/dist/src/components/gherkin/composeHookStepTitle.d.ts.map +0 -1
  531. package/dist/src/components/gherkin/composeHookStepTitle.js +0 -23
  532. package/dist/src/components/gherkin/composeHookStepTitle.js.map +0 -1
  533. package/dist/src/components/gherkin/composePickleStepTitle.d.ts.map +0 -1
  534. package/dist/src/components/gherkin/composePickleStepTitle.js +0 -36
  535. package/dist/src/components/gherkin/composePickleStepTitle.js.map +0 -1
  536. package/dist/src/components/gherkin/index.d.ts +0 -19
  537. package/dist/src/components/gherkin/index.d.ts.map +0 -1
  538. package/dist/src/components/gherkin/index.js.map +0 -1
  539. package/dist/src/components/gherkin/isNumber.d.ts.map +0 -1
  540. package/dist/src/components/gherkin/isNumber.js +0 -7
  541. package/dist/src/components/gherkin/isNumber.js.map +0 -1
  542. package/dist/src/components/gherkin/statusName.d.ts +0 -4
  543. package/dist/src/components/gherkin/statusName.d.ts.map +0 -1
  544. package/dist/src/components/gherkin/statusName.js +0 -4
  545. package/dist/src/components/gherkin/statusName.js.map +0 -1
  546. package/dist/src/components/index.d.ts +0 -4
  547. package/dist/src/components/index.d.ts.map +0 -1
  548. package/dist/src/components/index.js.map +0 -1
  549. package/dist/src/components/results/TestCaseOutcome.d.ts +0 -8
  550. package/dist/src/components/results/TestCaseOutcome.d.ts.map +0 -1
  551. package/dist/src/components/results/TestCaseOutcome.js +0 -36
  552. package/dist/src/components/results/TestCaseOutcome.js.map +0 -1
  553. package/dist/src/components/results/TestRunHookOutcome.d.ts.map +0 -1
  554. package/dist/src/components/results/TestRunHookOutcome.js +0 -20
  555. package/dist/src/components/results/TestRunHookOutcome.js.map +0 -1
  556. package/dist/src/components/results/TestStepAttachments.d.ts +0 -8
  557. package/dist/src/components/results/TestStepAttachments.d.ts.map +0 -1
  558. package/dist/src/components/results/TestStepAttachments.js +0 -13
  559. package/dist/src/components/results/TestStepAttachments.js.map +0 -1
  560. package/dist/src/components/results/TestStepDuration.d.ts +0 -6
  561. package/dist/src/components/results/TestStepDuration.d.ts.map +0 -1
  562. package/dist/src/components/results/TestStepDuration.js +0 -17
  563. package/dist/src/components/results/TestStepDuration.js.map +0 -1
  564. package/dist/src/components/results/TestStepOutcome.d.ts.map +0 -1
  565. package/dist/src/components/results/TestStepOutcome.js +0 -54
  566. package/dist/src/components/results/TestStepOutcome.js.map +0 -1
  567. package/dist/src/components/results/TestStepResultDetails.d.ts +0 -4
  568. package/dist/src/components/results/TestStepResultDetails.d.ts.map +0 -1
  569. package/dist/src/components/results/TestStepResultDetails.js +0 -16
  570. package/dist/src/components/results/TestStepResultDetails.js.map +0 -1
  571. package/dist/src/components/results/index.d.ts +0 -3
  572. package/dist/src/components/results/index.d.ts.map +0 -1
  573. package/dist/src/components/results/index.js +0 -3
  574. package/dist/src/components/results/index.js.map +0 -1
  575. package/dist/src/formatExecutionDistance.d.ts.map +0 -1
  576. package/dist/src/formatExecutionDistance.js +0 -7
  577. package/dist/src/formatExecutionDistance.js.map +0 -1
  578. package/dist/src/formatExecutionDuration.d.ts.map +0 -1
  579. package/dist/src/formatExecutionDuration.js +0 -12
  580. package/dist/src/formatExecutionDuration.js.map +0 -1
  581. package/dist/src/formatPassedQuantity.d.ts.map +0 -1
  582. package/dist/src/formatPassedQuantity.js +0 -4
  583. package/dist/src/formatPassedQuantity.js.map +0 -1
  584. package/dist/src/formatStatusRate.d.ts.map +0 -1
  585. package/dist/src/formatStatusRate.js +0 -9
  586. package/dist/src/formatStatusRate.js.map +0 -1
  587. package/dist/src/hooks/helpers.d.ts.map +0 -1
  588. package/dist/src/hooks/helpers.js +0 -7
  589. package/dist/src/hooks/helpers.js.map +0 -1
  590. package/dist/src/hooks/index.d.ts +0 -3
  591. package/dist/src/hooks/index.d.ts.map +0 -1
  592. package/dist/src/hooks/index.js.map +0 -1
  593. package/dist/src/hooks/useFilteredDocuments.d.ts +0 -6
  594. package/dist/src/hooks/useFilteredDocuments.d.ts.map +0 -1
  595. package/dist/src/hooks/useFilteredDocuments.js +0 -49
  596. package/dist/src/hooks/useFilteredDocuments.js.map +0 -1
  597. package/dist/src/hooks/useMostSevereStatusByUri.d.ts.map +0 -1
  598. package/dist/src/hooks/useMostSevereStatusByUri.js +0 -25
  599. package/dist/src/hooks/useMostSevereStatusByUri.js.map +0 -1
  600. package/dist/src/hooks/useQueries.d.ts +0 -7
  601. package/dist/src/hooks/useQueries.d.ts.map +0 -1
  602. package/dist/src/hooks/useQueries.js +0 -9
  603. package/dist/src/hooks/useQueries.js.map +0 -1
  604. package/dist/src/hooks/useResultStatistics.d.ts.map +0 -1
  605. package/dist/src/hooks/useResultStatistics.js +0 -24
  606. package/dist/src/hooks/useResultStatistics.js.map +0 -1
  607. package/dist/src/hooks/useSearch.d.ts +0 -3
  608. package/dist/src/hooks/useSearch.d.ts.map +0 -1
  609. package/dist/src/hooks/useSearch.js +0 -6
  610. package/dist/src/hooks/useSearch.js.map +0 -1
  611. package/dist/src/hooks/useTestCaseStarted.d.ts +0 -3
  612. package/dist/src/hooks/useTestCaseStarted.d.ts.map +0 -1
  613. package/dist/src/hooks/useTestCaseStarted.js +0 -17
  614. package/dist/src/hooks/useTestCaseStarted.js.map +0 -1
  615. package/dist/src/hooks/useTestRunHooks.d.ts.map +0 -1
  616. package/dist/src/hooks/useTestRunHooks.js +0 -14
  617. package/dist/src/hooks/useTestRunHooks.js.map +0 -1
  618. package/dist/src/index.d.ts +0 -3
  619. package/dist/src/index.d.ts.map +0 -1
  620. package/dist/src/index.js.map +0 -1
  621. package/dist/src/isTagExpression.d.ts.map +0 -1
  622. package/dist/src/isTagExpression.js +0 -5
  623. package/dist/src/isTagExpression.js.map +0 -1
  624. package/dist/src/search/FeatureSearch.d.ts +0 -4
  625. package/dist/src/search/FeatureSearch.d.ts.map +0 -1
  626. package/dist/src/search/FeatureSearch.js +0 -45
  627. package/dist/src/search/FeatureSearch.js.map +0 -1
  628. package/dist/src/search/ScenarioLikeSearch.d.ts +0 -25
  629. package/dist/src/search/ScenarioLikeSearch.d.ts.map +0 -1
  630. package/dist/src/search/ScenarioLikeSearch.js +0 -41
  631. package/dist/src/search/ScenarioLikeSearch.js.map +0 -1
  632. package/dist/src/search/Search.d.ts +0 -11
  633. package/dist/src/search/Search.d.ts.map +0 -1
  634. package/dist/src/search/Search.js +0 -51
  635. package/dist/src/search/Search.js.map +0 -1
  636. package/dist/src/search/StepSearch.d.ts +0 -19
  637. package/dist/src/search/StepSearch.d.ts.map +0 -1
  638. package/dist/src/search/StepSearch.js +0 -44
  639. package/dist/src/search/StepSearch.js.map +0 -1
  640. package/dist/src/search/TagSearch.d.ts +0 -4
  641. package/dist/src/search/TagSearch.d.ts.map +0 -1
  642. package/dist/src/search/TagSearch.js +0 -57
  643. package/dist/src/search/TagSearch.js.map +0 -1
  644. package/dist/src/search/TextSearch.d.ts +0 -3
  645. package/dist/src/search/TextSearch.d.ts.map +0 -1
  646. package/dist/src/search/TextSearch.js +0 -63
  647. package/dist/src/search/TextSearch.js.map +0 -1
  648. package/dist/src/search/index.d.ts +0 -3
  649. package/dist/src/search/index.d.ts.map +0 -1
  650. package/dist/src/search/index.js +0 -3
  651. package/dist/src/search/index.js.map +0 -1
  652. package/dist/src/search/types.d.ts +0 -14
  653. package/dist/src/search/types.d.ts.map +0 -1
  654. package/dist/src/search/types.js +0 -2
  655. package/dist/src/search/types.js.map +0 -1
  656. package/dist/src/statuses.d.ts.map +0 -1
  657. package/dist/src/statuses.js +0 -12
  658. package/dist/src/statuses.js.map +0 -1
  659. package/dist/src/toRepositoryId.d.ts +0 -2
  660. package/dist/src/toRepositoryId.d.ts.map +0 -1
  661. package/dist/src/toRepositoryId.js +0 -11
  662. package/dist/src/toRepositoryId.js.map +0 -1
  663. package/dist/tsconfig.build.tsbuildinfo +0 -1
  664. /package/dist/{src/components → components}/app/CopyButton.module.scss +0 -0
  665. /package/dist/{src/components → components}/app/ExecutionSummary.module.scss +0 -0
  666. /package/dist/{src/components → components}/app/FilteredDocuments.module.scss +0 -0
  667. /package/dist/{src/components → components}/app/Header.module.scss +0 -0
  668. /package/dist/{src/components → components}/app/HealthChart.module.scss +0 -0
  669. /package/dist/{src/components → components}/app/NavigationButton.module.scss +0 -0
  670. /package/dist/{src/components → components}/app/Report.module.scss +0 -0
  671. /package/dist/{src/components → components}/app/SearchBar.module.scss +0 -0
  672. /package/dist/{src/components → components}/app/StatusesSummary.module.scss +0 -0
  673. /package/dist/{src/components → components}/app/TestRunHooks.module.scss +0 -0
  674. /package/dist/{src/components → components}/gherkin/Anchor.module.scss +0 -0
  675. /package/dist/{src/components → components}/gherkin/Children.module.scss +0 -0
  676. /package/dist/{src/components → components}/gherkin/DataTable.module.scss +0 -0
  677. /package/dist/{src/components → components}/gherkin/Description.module.scss +0 -0
  678. /package/dist/{src/components → components}/gherkin/DocString.module.scss +0 -0
  679. /package/dist/{src/components → components}/gherkin/Examples.module.scss +0 -0
  680. /package/dist/{src/components → components}/gherkin/Parameter.module.scss +0 -0
  681. /package/dist/{src/components → components}/gherkin/StatusIcon.module.scss +0 -0
  682. /package/dist/{src/components → components}/gherkin/StepsList.module.scss +0 -0
  683. /package/dist/{src/components → components}/gherkin/Tags.module.scss +0 -0
  684. /package/dist/{src/components → components}/gherkin/Title.module.scss +0 -0
  685. /package/dist/{src/components → components}/results/TestCaseOutcome.module.scss +0 -0
  686. /package/dist/{src/components → components}/results/TestRunHookOutcome.module.scss +0 -0
  687. /package/dist/{src/components → components}/results/TestStepAttachments.module.scss +0 -0
  688. /package/dist/{src/components → components}/results/TestStepDuration.module.scss +0 -0
  689. /package/dist/{src/styles → styles}/statuses.scss +0 -0
  690. /package/dist/{src/styles → styles}/tables.scss +0 -0
  691. /package/dist/{src/styles → styles}/theming.scss +0 -0
@@ -0,0 +1,58 @@
1
+ import { useEffect, useMemo, useState } from 'react';
2
+ import { createSearchIndex } from '../search/index.js';
3
+ import { useQueries } from './useQueries.js';
4
+ import { useSearch } from './useSearch.js';
5
+ /**
6
+ * Creates and populates a search index from the loaded Gherkin documents, runs the current search
7
+ * term against it, and returns a discriminated result describing the outcome. Consumers narrow on
8
+ * `result.status` and don't need to know whether a search term is present.
9
+ */
10
+ export function useSearchResult() {
11
+ const { gherkinQuery } = useQueries();
12
+ const gherkinDocuments = useMemo(() => gherkinQuery.getGherkinDocuments(), [gherkinQuery]);
13
+ const { searchTerm } = useSearch();
14
+ const [searchIndex, setSearchIndex] = useState();
15
+ const [result, setResult] = useState({ status: 'WAITING' });
16
+ useEffect(() => {
17
+ createSearchIndex(gherkinDocuments)
18
+ .then((created) => setSearchIndex(created))
19
+ .catch((error) => {
20
+ console.error('Failed to create search index:', error);
21
+ setSearchIndex(new Error('Failed to create search index', { cause: error }));
22
+ });
23
+ }, [gherkinDocuments]);
24
+ useEffect(() => {
25
+ if (!searchTerm) {
26
+ setResult({ status: 'NOOP' });
27
+ return;
28
+ }
29
+ if (searchIndex === undefined) {
30
+ // search index is not ready yet
31
+ setResult({ status: 'WAITING' });
32
+ return;
33
+ }
34
+ if (searchIndex instanceof Error) {
35
+ setResult({ status: 'ERROR', error: searchIndex });
36
+ return;
37
+ }
38
+ let active = true;
39
+ searchIndex
40
+ .search(searchTerm)
41
+ .then((hits) => {
42
+ if (active) {
43
+ setResult({ status: 'SUCCESS', hits });
44
+ }
45
+ })
46
+ .catch((error) => {
47
+ console.error('Search failed:', error);
48
+ if (active) {
49
+ setResult({ status: 'ERROR', error: new Error('Search failed', { cause: error }) });
50
+ }
51
+ });
52
+ return () => {
53
+ active = false;
54
+ };
55
+ }, [searchIndex, searchTerm]);
56
+ return result;
57
+ }
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlU2VhcmNoUmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVNlYXJjaFJlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFxQyxNQUFNLG9CQUFvQixDQUFBO0FBQ3pGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUE4QjFDOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZUFBZTtJQUM3QixNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUE7SUFDckMsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBO0lBQzFGLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQTtJQUVsQyxNQUFNLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxHQUFHLFFBQVEsRUFBdUIsQ0FBQTtJQUNyRSxNQUFNLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxHQUFHLFFBQVEsQ0FBZSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFBO0lBRXpFLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQzthQUNoQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUMxQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLEVBQUUsS0FBSyxDQUFDLENBQUE7WUFDdEQsY0FBYyxDQUFDLElBQUksS0FBSyxDQUFDLCtCQUErQixFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUM5RSxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQTtJQUN0QixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFBO1lBQzdCLE9BQU07UUFDUixDQUFDO1FBQ0QsSUFBSSxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUIsZ0NBQWdDO1lBQ2hDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFBO1lBQ2hDLE9BQU07UUFDUixDQUFDO1FBQ0QsSUFBSSxXQUFXLFlBQVksS0FBSyxFQUFFLENBQUM7WUFDakMsU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQTtZQUNsRCxPQUFNO1FBQ1IsQ0FBQztRQUNELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQTtRQUNqQixXQUFXO2FBQ1IsTUFBTSxDQUFDLFVBQVUsQ0FBQzthQUNsQixJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNiLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBQ3hDLENBQUM7UUFDSCxDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLENBQUE7WUFDdEMsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxlQUFlLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDckYsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0osT0FBTyxHQUFHLEVBQUU7WUFDVixNQUFNLEdBQUcsS0FBSyxDQUFBO1FBQ2hCLENBQUMsQ0FBQTtJQUNILENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFBO0lBRTdCLE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVNlYXJjaEluZGV4LCB0eXBlIFNlYXJjaEhpdHMsIHR5cGUgU2VhcmNoSW5kZXggfSBmcm9tICcuLi9zZWFyY2gvaW5kZXguanMnXG5pbXBvcnQgeyB1c2VRdWVyaWVzIH0gZnJvbSAnLi91c2VRdWVyaWVzLmpzJ1xuaW1wb3J0IHsgdXNlU2VhcmNoIH0gZnJvbSAnLi91c2VTZWFyY2guanMnXG5cbi8qKiB0aGUgc2VhcmNoIHJhbiAtIGBoaXRzYCBpcyBhbiBlbXB0eSBtYXAgd2hlbiBub3RoaW5nIG1hdGNoZWQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VjY2Vzc1NlYXJjaFJlc3VsdCB7XG4gIHN0YXR1czogJ1NVQ0NFU1MnXG4gIGhpdHM6IFNlYXJjaEhpdHNcbn1cblxuLyoqIHRoZXJlIHdhcyBubyBzZWFyY2ggdGVybSwgc28gbm8gc2VhcmNoIHdhcyBkb25lICovXG5leHBvcnQgaW50ZXJmYWNlIE5vb3BTZWFyY2hSZXN1bHQge1xuICBzdGF0dXM6ICdOT09QJ1xufVxuXG4vKiogd2FpdGluZyBmb3IgdGhlIGluZGV4IHRvIGJ1aWxkIG9yIHRoZSBzZWFyY2ggdG8gcmVzb2x2ZSAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWl0aW5nU2VhcmNoUmVzdWx0IHtcbiAgc3RhdHVzOiAnV0FJVElORydcbn1cblxuLyoqIHRoZSBpbmRleCBmYWlsZWQgdG8gYnVpbGQgb3IgdGhlIHNlYXJjaCBpdHNlbGYgZmFpbGVkICovXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yU2VhcmNoUmVzdWx0IHtcbiAgc3RhdHVzOiAnRVJST1InXG4gIGVycm9yOiBFcnJvclxufVxuXG5leHBvcnQgdHlwZSBTZWFyY2hSZXN1bHQgPVxuICB8IFN1Y2Nlc3NTZWFyY2hSZXN1bHRcbiAgfCBOb29wU2VhcmNoUmVzdWx0XG4gIHwgV2FpdGluZ1NlYXJjaFJlc3VsdFxuICB8IEVycm9yU2VhcmNoUmVzdWx0XG5cbi8qKlxuICogQ3JlYXRlcyBhbmQgcG9wdWxhdGVzIGEgc2VhcmNoIGluZGV4IGZyb20gdGhlIGxvYWRlZCBHaGVya2luIGRvY3VtZW50cywgcnVucyB0aGUgY3VycmVudCBzZWFyY2hcbiAqIHRlcm0gYWdhaW5zdCBpdCwgYW5kIHJldHVybnMgYSBkaXNjcmltaW5hdGVkIHJlc3VsdCBkZXNjcmliaW5nIHRoZSBvdXRjb21lLiBDb25zdW1lcnMgbmFycm93IG9uXG4gKiBgcmVzdWx0LnN0YXR1c2AgYW5kIGRvbid0IG5lZWQgdG8ga25vdyB3aGV0aGVyIGEgc2VhcmNoIHRlcm0gaXMgcHJlc2VudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVNlYXJjaFJlc3VsdCgpOiBTZWFyY2hSZXN1bHQge1xuICBjb25zdCB7IGdoZXJraW5RdWVyeSB9ID0gdXNlUXVlcmllcygpXG4gIGNvbnN0IGdoZXJraW5Eb2N1bWVudHMgPSB1c2VNZW1vKCgpID0+IGdoZXJraW5RdWVyeS5nZXRHaGVya2luRG9jdW1lbnRzKCksIFtnaGVya2luUXVlcnldKVxuICBjb25zdCB7IHNlYXJjaFRlcm0gfSA9IHVzZVNlYXJjaCgpXG5cbiAgY29uc3QgW3NlYXJjaEluZGV4LCBzZXRTZWFyY2hJbmRleF0gPSB1c2VTdGF0ZTxTZWFyY2hJbmRleCB8IEVycm9yPigpXG4gIGNvbnN0IFtyZXN1bHQsIHNldFJlc3VsdF0gPSB1c2VTdGF0ZTxTZWFyY2hSZXN1bHQ+KHsgc3RhdHVzOiAnV0FJVElORycgfSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNyZWF0ZVNlYXJjaEluZGV4KGdoZXJraW5Eb2N1bWVudHMpXG4gICAgICAudGhlbigoY3JlYXRlZCkgPT4gc2V0U2VhcmNoSW5kZXgoY3JlYXRlZCkpXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgc2VhcmNoIGluZGV4OicsIGVycm9yKVxuICAgICAgICBzZXRTZWFyY2hJbmRleChuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgc2VhcmNoIGluZGV4JywgeyBjYXVzZTogZXJyb3IgfSkpXG4gICAgICB9KVxuICB9LCBbZ2hlcmtpbkRvY3VtZW50c10pXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFzZWFyY2hUZXJtKSB7XG4gICAgICBzZXRSZXN1bHQoeyBzdGF0dXM6ICdOT09QJyB9KVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmIChzZWFyY2hJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBzZWFyY2ggaW5kZXggaXMgbm90IHJlYWR5IHlldFxuICAgICAgc2V0UmVzdWx0KHsgc3RhdHVzOiAnV0FJVElORycgfSlcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAoc2VhcmNoSW5kZXggaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgc2V0UmVzdWx0KHsgc3RhdHVzOiAnRVJST1InLCBlcnJvcjogc2VhcmNoSW5kZXggfSlcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBsZXQgYWN0aXZlID0gdHJ1ZVxuICAgIHNlYXJjaEluZGV4XG4gICAgICAuc2VhcmNoKHNlYXJjaFRlcm0pXG4gICAgICAudGhlbigoaGl0cykgPT4ge1xuICAgICAgICBpZiAoYWN0aXZlKSB7XG4gICAgICAgICAgc2V0UmVzdWx0KHsgc3RhdHVzOiAnU1VDQ0VTUycsIGhpdHMgfSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignU2VhcmNoIGZhaWxlZDonLCBlcnJvcilcbiAgICAgICAgaWYgKGFjdGl2ZSkge1xuICAgICAgICAgIHNldFJlc3VsdCh7IHN0YXR1czogJ0VSUk9SJywgZXJyb3I6IG5ldyBFcnJvcignU2VhcmNoIGZhaWxlZCcsIHsgY2F1c2U6IGVycm9yIH0pIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGFjdGl2ZSA9IGZhbHNlXG4gICAgfVxuICB9LCBbc2VhcmNoSW5kZXgsIHNlYXJjaFRlcm1dKVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiJdfQ==
@@ -0,0 +1,7 @@
1
+ import type { TestCaseStarted } from '@cucumber/messages';
2
+ /**
3
+ * Finds the corresponding TestCaseStarted for an Example or Scenario node from a Gherkin
4
+ * document
5
+ * @param nodeId the Gherkin node id
6
+ */
7
+ export declare function useTestCaseStarted(nodeId: string): TestCaseStarted | undefined;
@@ -0,0 +1,20 @@
1
+ import { useMemo } from 'react';
2
+ import { useQueries } from './useQueries.js';
3
+ /**
4
+ * Finds the corresponding TestCaseStarted for an Example or Scenario node from a Gherkin
5
+ * document
6
+ * @param nodeId the Gherkin node id
7
+ */
8
+ export function useTestCaseStarted(nodeId) {
9
+ const { cucumberQuery } = useQueries();
10
+ return useMemo(() => {
11
+ for (const testCaseStarted of cucumberQuery.findAllTestCaseStarted()) {
12
+ const pickle = cucumberQuery.findPickleBy(testCaseStarted);
13
+ const closestNodeId = pickle?.astNodeIds.at(-1);
14
+ if (closestNodeId === nodeId) {
15
+ return testCaseStarted;
16
+ }
17
+ }
18
+ }, [cucumberQuery, nodeId]);
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVGVzdENhc2VTdGFydGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVRlc3RDYXNlU3RhcnRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBRS9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUU1Qzs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQWM7SUFDL0MsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFBO0lBQ3RDLE9BQU8sT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUNsQixLQUFLLE1BQU0sZUFBZSxJQUFJLGFBQWEsQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLENBQUM7WUFDckUsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQTtZQUMxRCxNQUFNLGFBQWEsR0FBRyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQy9DLElBQUksYUFBYSxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUM3QixPQUFPLGVBQWUsQ0FBQTtZQUN4QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRlc3RDYXNlU3RhcnRlZCB9IGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgdXNlUXVlcmllcyB9IGZyb20gJy4vdXNlUXVlcmllcy5qcydcblxuLyoqXG4gKiBGaW5kcyB0aGUgY29ycmVzcG9uZGluZyBUZXN0Q2FzZVN0YXJ0ZWQgZm9yIGFuIEV4YW1wbGUgb3IgU2NlbmFyaW8gbm9kZSBmcm9tIGEgR2hlcmtpblxuICogZG9jdW1lbnRcbiAqIEBwYXJhbSBub2RlSWQgdGhlIEdoZXJraW4gbm9kZSBpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVGVzdENhc2VTdGFydGVkKG5vZGVJZDogc3RyaW5nKTogVGVzdENhc2VTdGFydGVkIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgeyBjdWN1bWJlclF1ZXJ5IH0gPSB1c2VRdWVyaWVzKClcbiAgcmV0dXJuIHVzZU1lbW8oKCkgPT4ge1xuICAgIGZvciAoY29uc3QgdGVzdENhc2VTdGFydGVkIG9mIGN1Y3VtYmVyUXVlcnkuZmluZEFsbFRlc3RDYXNlU3RhcnRlZCgpKSB7XG4gICAgICBjb25zdCBwaWNrbGUgPSBjdWN1bWJlclF1ZXJ5LmZpbmRQaWNrbGVCeSh0ZXN0Q2FzZVN0YXJ0ZWQpXG4gICAgICBjb25zdCBjbG9zZXN0Tm9kZUlkID0gcGlja2xlPy5hc3ROb2RlSWRzLmF0KC0xKVxuICAgICAgaWYgKGNsb3Nlc3ROb2RlSWQgPT09IG5vZGVJZCkge1xuICAgICAgICByZXR1cm4gdGVzdENhc2VTdGFydGVkXG4gICAgICB9XG4gICAgfVxuICB9LCBbY3VjdW1iZXJRdWVyeSwgbm9kZUlkXSlcbn1cbiJdfQ==
@@ -1,8 +1,7 @@
1
- import { Hook, TestRunHookFinished } from '@cucumber/messages';
1
+ import type { Hook, TestRunHookFinished } from '@cucumber/messages';
2
2
  type RunHooksList = {
3
3
  testRunHookFinished: TestRunHookFinished;
4
4
  hook: Hook;
5
5
  }[];
6
6
  export declare function useTestRunHooks(): RunHooksList;
7
7
  export {};
8
- //# sourceMappingURL=useTestRunHooks.d.ts.map
@@ -0,0 +1,14 @@
1
+ import { ensure } from '../ensure.js';
2
+ import { useQueries } from './useQueries.js';
3
+ export function useTestRunHooks() {
4
+ const { cucumberQuery } = useQueries();
5
+ const testRunHooksFinished = cucumberQuery.findAllTestRunHookFinished();
6
+ return testRunHooksFinished.map((testRunHookFinished) => {
7
+ const hook = ensure(cucumberQuery.findHookBy(testRunHookFinished), 'Expected testRunHookFinished to resolve with a hook');
8
+ return {
9
+ testRunHookFinished,
10
+ hook,
11
+ };
12
+ });
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVGVzdFJ1bkhvb2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVRlc3RSdW5Ib29rcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUk1QyxNQUFNLFVBQVUsZUFBZTtJQUM3QixNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUE7SUFDdEMsTUFBTSxvQkFBb0IsR0FDeEIsYUFBYSxDQUFDLDBCQUEwQixFQUFFLENBQUE7SUFFNUMsT0FBTyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO1FBQ3RELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FDakIsYUFBYSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUM3QyxxREFBcUQsQ0FDdEQsQ0FBQTtRQUVELE9BQU87WUFDTCxtQkFBbUI7WUFDbkIsSUFBSTtTQUNMLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEhvb2ssIFRlc3RSdW5Ib29rRmluaXNoZWQgfSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5cbmltcG9ydCB7IGVuc3VyZSB9IGZyb20gJy4uL2Vuc3VyZS5qcydcbmltcG9ydCB7IHVzZVF1ZXJpZXMgfSBmcm9tICcuL3VzZVF1ZXJpZXMuanMnXG5cbnR5cGUgUnVuSG9va3NMaXN0ID0geyB0ZXN0UnVuSG9va0ZpbmlzaGVkOiBUZXN0UnVuSG9va0ZpbmlzaGVkOyBob29rOiBIb29rIH1bXVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlVGVzdFJ1bkhvb2tzKCk6IFJ1bkhvb2tzTGlzdCB7XG4gIGNvbnN0IHsgY3VjdW1iZXJRdWVyeSB9ID0gdXNlUXVlcmllcygpXG4gIGNvbnN0IHRlc3RSdW5Ib29rc0ZpbmlzaGVkOiBSZWFkb25seUFycmF5PFRlc3RSdW5Ib29rRmluaXNoZWQ+ID1cbiAgICBjdWN1bWJlclF1ZXJ5LmZpbmRBbGxUZXN0UnVuSG9va0ZpbmlzaGVkKClcblxuICByZXR1cm4gdGVzdFJ1bkhvb2tzRmluaXNoZWQubWFwKCh0ZXN0UnVuSG9va0ZpbmlzaGVkKSA9PiB7XG4gICAgY29uc3QgaG9vayA9IGVuc3VyZShcbiAgICAgIGN1Y3VtYmVyUXVlcnkuZmluZEhvb2tCeSh0ZXN0UnVuSG9va0ZpbmlzaGVkKSxcbiAgICAgICdFeHBlY3RlZCB0ZXN0UnVuSG9va0ZpbmlzaGVkIHRvIHJlc29sdmUgd2l0aCBhIGhvb2snXG4gICAgKVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRlc3RSdW5Ib29rRmluaXNoZWQsXG4gICAgICBob29rLFxuICAgIH1cbiAgfSlcbn1cbiJdfQ==
@@ -1,3 +1,2 @@
1
1
  export * from './components/index.js';
2
2
  export * from './hooks/index.js';
3
- //# sourceMappingURL=index.js.map
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from './components/index.js';
2
+ export * from './hooks/index.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLGtCQUFrQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2luZGV4LmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9ob29rcy9pbmRleC5qcydcbiJdfQ==
@@ -1,2 +1 @@
1
1
  export default function isTagExpression(expression: string): boolean;
2
- //# sourceMappingURL=isTagExpression.d.ts.map
@@ -0,0 +1,5 @@
1
+ export default function isTagExpression(expression) {
2
+ const tagExpression = /^\s*((@[^\s]+\s*)|(and\s+)|(or\s+)|(not\s+)|\(|\))+\s*$/;
3
+ return !!tagExpression.exec(expression);
4
+ }
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNUYWdFeHByZXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2lzVGFnRXhwcmVzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsT0FBTyxVQUFVLGVBQWUsQ0FBQyxVQUFrQjtJQUN4RCxNQUFNLGFBQWEsR0FBRyx5REFBeUQsQ0FBQTtJQUMvRSxPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0FBQ3pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc1RhZ0V4cHJlc3Npb24oZXhwcmVzc2lvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IHRhZ0V4cHJlc3Npb24gPSAvXlxccyooKEBbXlxcc10rXFxzKil8KGFuZFxccyspfChvclxccyspfChub3RcXHMrKXxcXCh8XFwpKStcXHMqJC9cbiAgcmV0dXJuICEhdGFnRXhwcmVzc2lvbi5leGVjKGV4cHJlc3Npb24pXG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ import type { GherkinDocument } from '@cucumber/messages';
2
+ import type { IndexHit, TypedIndex } from './types.js';
3
+ /**
4
+ * A little different to the other indexes - a Feature doesn't have its own id,
5
+ * so we use the uri of the GherkinDocument as a pointer
6
+ */
7
+ export declare class FeatureSearch implements TypedIndex<GherkinDocument> {
8
+ private readonly index;
9
+ constructor();
10
+ search(term: string): Promise<ReadonlyArray<IndexHit>>;
11
+ add(gherkinDocument: GherkinDocument, _uri: string): Promise<this>;
12
+ }
@@ -0,0 +1,39 @@
1
+ import { create, insert, search } from '@orama/orama';
2
+ const schema = {
3
+ name: 'string',
4
+ description: 'string',
5
+ };
6
+ /**
7
+ * A little different to the other indexes - a Feature doesn't have its own id,
8
+ * so we use the uri of the GherkinDocument as a pointer
9
+ */
10
+ export class FeatureSearch {
11
+ index;
12
+ constructor() {
13
+ this.index = create({
14
+ schema,
15
+ sort: { enabled: false },
16
+ });
17
+ }
18
+ async search(term) {
19
+ const { hits } = await search(this.index, {
20
+ term,
21
+ });
22
+ return hits.map((hit) => ({ uri: hit.id, id: hit.id }));
23
+ }
24
+ async add(gherkinDocument, _uri) {
25
+ if (!gherkinDocument.feature) {
26
+ return this;
27
+ }
28
+ if (!gherkinDocument.uri) {
29
+ throw new Error('Missing uri on gherkinDocument');
30
+ }
31
+ await insert(this.index, {
32
+ id: gherkinDocument.uri,
33
+ name: gherkinDocument.feature.name,
34
+ description: gherkinDocument.feature.description,
35
+ });
36
+ return this;
37
+ }
38
+ }
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmVhdHVyZVNlYXJjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZWFyY2gvRmVhdHVyZVNlYXJjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBYyxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFJakUsTUFBTSxNQUFNLEdBQUc7SUFDYixJQUFJLEVBQUUsUUFBUTtJQUNkLFdBQVcsRUFBRSxRQUFRO0NBQ2IsQ0FBQTtBQUVWOzs7R0FHRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBQ1AsS0FBSyxDQUFzQjtJQUU1QztRQUNFLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1lBQ2xCLE1BQU07WUFDTixJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO1NBQ3pCLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQVk7UUFDdkIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDeEMsSUFBSTtTQUNMLENBQUMsQ0FBQTtRQUNGLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3pELENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLGVBQWdDLEVBQUUsSUFBWTtRQUN0RCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO1FBQ25ELENBQUM7UUFDRCxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3ZCLEVBQUUsRUFBRSxlQUFlLENBQUMsR0FBRztZQUN2QixJQUFJLEVBQUUsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJO1lBQ2xDLFdBQVcsRUFBRSxlQUFlLENBQUMsT0FBTyxDQUFDLFdBQVc7U0FDakQsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEdoZXJraW5Eb2N1bWVudCB9IGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcbmltcG9ydCB7IGNyZWF0ZSwgaW5zZXJ0LCB0eXBlIE9yYW1hLCBzZWFyY2ggfSBmcm9tICdAb3JhbWEvb3JhbWEnXG5cbmltcG9ydCB0eXBlIHsgSW5kZXhIaXQsIFR5cGVkSW5kZXggfSBmcm9tICcuL3R5cGVzLmpzJ1xuXG5jb25zdCBzY2hlbWEgPSB7XG4gIG5hbWU6ICdzdHJpbmcnLFxuICBkZXNjcmlwdGlvbjogJ3N0cmluZycsXG59IGFzIGNvbnN0XG5cbi8qKlxuICogQSBsaXR0bGUgZGlmZmVyZW50IHRvIHRoZSBvdGhlciBpbmRleGVzIC0gYSBGZWF0dXJlIGRvZXNuJ3QgaGF2ZSBpdHMgb3duIGlkLFxuICogc28gd2UgdXNlIHRoZSB1cmkgb2YgdGhlIEdoZXJraW5Eb2N1bWVudCBhcyBhIHBvaW50ZXJcbiAqL1xuZXhwb3J0IGNsYXNzIEZlYXR1cmVTZWFyY2ggaW1wbGVtZW50cyBUeXBlZEluZGV4PEdoZXJraW5Eb2N1bWVudD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGluZGV4OiBPcmFtYTx0eXBlb2Ygc2NoZW1hPlxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaW5kZXggPSBjcmVhdGUoe1xuICAgICAgc2NoZW1hLFxuICAgICAgc29ydDogeyBlbmFibGVkOiBmYWxzZSB9LFxuICAgIH0pXG4gIH1cblxuICBhc3luYyBzZWFyY2godGVybTogc3RyaW5nKTogUHJvbWlzZTxSZWFkb25seUFycmF5PEluZGV4SGl0Pj4ge1xuICAgIGNvbnN0IHsgaGl0cyB9ID0gYXdhaXQgc2VhcmNoKHRoaXMuaW5kZXgsIHtcbiAgICAgIHRlcm0sXG4gICAgfSlcbiAgICByZXR1cm4gaGl0cy5tYXAoKGhpdCkgPT4gKHsgdXJpOiBoaXQuaWQsIGlkOiBoaXQuaWQgfSkpXG4gIH1cblxuICBhc3luYyBhZGQoZ2hlcmtpbkRvY3VtZW50OiBHaGVya2luRG9jdW1lbnQsIF91cmk6IHN0cmluZyk6IFByb21pc2U8dGhpcz4ge1xuICAgIGlmICghZ2hlcmtpbkRvY3VtZW50LmZlYXR1cmUpIHtcbiAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuICAgIGlmICghZ2hlcmtpbkRvY3VtZW50LnVyaSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHVyaSBvbiBnaGVya2luRG9jdW1lbnQnKVxuICAgIH1cbiAgICBhd2FpdCBpbnNlcnQodGhpcy5pbmRleCwge1xuICAgICAgaWQ6IGdoZXJraW5Eb2N1bWVudC51cmksXG4gICAgICBuYW1lOiBnaGVya2luRG9jdW1lbnQuZmVhdHVyZS5uYW1lLFxuICAgICAgZGVzY3JpcHRpb246IGdoZXJraW5Eb2N1bWVudC5mZWF0dXJlLmRlc2NyaXB0aW9uLFxuICAgIH0pXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxufVxuIl19
@@ -0,0 +1,19 @@
1
+ import { type TypedIndex } from './types.js';
2
+ export interface ScenarioLike {
3
+ id: string;
4
+ name: string;
5
+ description: string;
6
+ }
7
+ /**
8
+ * Can be used for Backgrounds, Scenarios and Rules, searching against the
9
+ * name and description
10
+ */
11
+ export declare class ScenarioLikeSearch<T extends ScenarioLike> implements TypedIndex<T> {
12
+ private readonly index;
13
+ constructor();
14
+ search(term: string): Promise<{
15
+ uri: string;
16
+ id: string;
17
+ }[]>;
18
+ add(item: T, uri: string): Promise<this>;
19
+ }
@@ -0,0 +1,37 @@
1
+ import { create, insert, search } from '@orama/orama';
2
+ import { ID_SEPARATOR } from './types.js';
3
+ const schema = {
4
+ name: 'string',
5
+ description: 'string',
6
+ };
7
+ /**
8
+ * Can be used for Backgrounds, Scenarios and Rules, searching against the
9
+ * name and description
10
+ */
11
+ export class ScenarioLikeSearch {
12
+ index;
13
+ constructor() {
14
+ this.index = create({
15
+ schema,
16
+ sort: { enabled: false },
17
+ });
18
+ }
19
+ async search(term) {
20
+ const { hits } = await search(this.index, {
21
+ term,
22
+ });
23
+ return hits.map((hit) => {
24
+ const [uri, id] = hit.id.split(ID_SEPARATOR);
25
+ return { uri, id };
26
+ });
27
+ }
28
+ async add(item, uri) {
29
+ await insert(this.index, {
30
+ id: uri + ID_SEPARATOR + item.id,
31
+ name: item.name,
32
+ description: item.description,
33
+ });
34
+ return this;
35
+ }
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmFyaW9MaWtlU2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlYXJjaC9TY2VuYXJpb0xpa2VTZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQWMsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRWpFLE9BQU8sRUFBRSxZQUFZLEVBQW1CLE1BQU0sWUFBWSxDQUFBO0FBRTFELE1BQU0sTUFBTSxHQUFHO0lBQ2IsSUFBSSxFQUFFLFFBQVE7SUFDZCxXQUFXLEVBQUUsUUFBUTtDQUNiLENBQUE7QUFRVjs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBQ1osS0FBSyxDQUFzQjtJQUU1QztRQUNFLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1lBQ2xCLE1BQU07WUFDTixJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO1NBQ3pCLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQVk7UUFDdkIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDeEMsSUFBSTtTQUNMLENBQUMsQ0FBQTtRQUNGLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3RCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQTtRQUNwQixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLElBQU8sRUFBRSxHQUFXO1FBQzVCLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDdkIsRUFBRSxFQUFFLEdBQUcsR0FBRyxZQUFZLEdBQUcsSUFBSSxDQUFDLEVBQUU7WUFDaEMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQzlCLENBQUMsQ0FBQTtRQUNGLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlLCBpbnNlcnQsIHR5cGUgT3JhbWEsIHNlYXJjaCB9IGZyb20gJ0BvcmFtYS9vcmFtYSdcblxuaW1wb3J0IHsgSURfU0VQQVJBVE9SLCB0eXBlIFR5cGVkSW5kZXggfSBmcm9tICcuL3R5cGVzLmpzJ1xuXG5jb25zdCBzY2hlbWEgPSB7XG4gIG5hbWU6ICdzdHJpbmcnLFxuICBkZXNjcmlwdGlvbjogJ3N0cmluZycsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW9MaWtlIHtcbiAgaWQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgZGVzY3JpcHRpb246IHN0cmluZ1xufVxuXG4vKipcbiAqIENhbiBiZSB1c2VkIGZvciBCYWNrZ3JvdW5kcywgU2NlbmFyaW9zIGFuZCBSdWxlcywgc2VhcmNoaW5nIGFnYWluc3QgdGhlXG4gKiBuYW1lIGFuZCBkZXNjcmlwdGlvblxuICovXG5leHBvcnQgY2xhc3MgU2NlbmFyaW9MaWtlU2VhcmNoPFQgZXh0ZW5kcyBTY2VuYXJpb0xpa2U+IGltcGxlbWVudHMgVHlwZWRJbmRleDxUPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5kZXg6IE9yYW1hPHR5cGVvZiBzY2hlbWE+XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pbmRleCA9IGNyZWF0ZSh7XG4gICAgICBzY2hlbWEsXG4gICAgICBzb3J0OiB7IGVuYWJsZWQ6IGZhbHNlIH0sXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIHNlYXJjaCh0ZXJtOiBzdHJpbmcpIHtcbiAgICBjb25zdCB7IGhpdHMgfSA9IGF3YWl0IHNlYXJjaCh0aGlzLmluZGV4LCB7XG4gICAgICB0ZXJtLFxuICAgIH0pXG4gICAgcmV0dXJuIGhpdHMubWFwKChoaXQpID0+IHtcbiAgICAgIGNvbnN0IFt1cmksIGlkXSA9IGhpdC5pZC5zcGxpdChJRF9TRVBBUkFUT1IpXG4gICAgICByZXR1cm4geyB1cmksIGlkIH1cbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgYWRkKGl0ZW06IFQsIHVyaTogc3RyaW5nKTogUHJvbWlzZTx0aGlzPiB7XG4gICAgYXdhaXQgaW5zZXJ0KHRoaXMuaW5kZXgsIHtcbiAgICAgIGlkOiB1cmkgKyBJRF9TRVBBUkFUT1IgKyBpdGVtLmlkLFxuICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgICAgZGVzY3JpcHRpb246IGl0ZW0uZGVzY3JpcHRpb24sXG4gICAgfSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ import type { Step } from '@cucumber/messages';
2
+ import { type TypedIndex } from './types.js';
3
+ export declare class StepSearch implements TypedIndex<Step> {
4
+ private readonly index;
5
+ constructor();
6
+ search(term: string): Promise<{
7
+ uri: string;
8
+ id: string;
9
+ }[]>;
10
+ add(step: Step, uri: string): Promise<this>;
11
+ }
@@ -0,0 +1,40 @@
1
+ import { create, insert, search } from '@orama/orama';
2
+ import { ID_SEPARATOR } from './types.js';
3
+ const schema = {
4
+ keyword: 'string',
5
+ text: 'string',
6
+ docString: 'string',
7
+ dataTable: 'string[]',
8
+ };
9
+ export class StepSearch {
10
+ index;
11
+ constructor() {
12
+ this.index = create({
13
+ schema,
14
+ sort: { enabled: false },
15
+ });
16
+ }
17
+ async search(term) {
18
+ const { hits } = await search(this.index, {
19
+ term,
20
+ boost: {
21
+ text: 2,
22
+ },
23
+ });
24
+ return hits.map((hit) => {
25
+ const [uri, id] = hit.id.split(ID_SEPARATOR);
26
+ return { uri, id };
27
+ });
28
+ }
29
+ async add(step, uri) {
30
+ await insert(this.index, {
31
+ id: uri + ID_SEPARATOR + step.id,
32
+ keyword: step.keyword,
33
+ text: step.text,
34
+ docString: step.docString?.content,
35
+ dataTable: step.dataTable?.rows.flatMap((row) => row.cells).map((cell) => cell.value),
36
+ });
37
+ return this;
38
+ }
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RlcFNlYXJjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZWFyY2gvU3RlcFNlYXJjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBYyxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFakUsT0FBTyxFQUFFLFlBQVksRUFBbUIsTUFBTSxZQUFZLENBQUE7QUFFMUQsTUFBTSxNQUFNLEdBQUc7SUFDYixPQUFPLEVBQUUsUUFBUTtJQUNqQixJQUFJLEVBQUUsUUFBUTtJQUNkLFNBQVMsRUFBRSxRQUFRO0lBQ25CLFNBQVMsRUFBRSxVQUFVO0NBQ2IsQ0FBQTtBQUVWLE1BQU0sT0FBTyxVQUFVO0lBQ0osS0FBSyxDQUFzQjtJQUU1QztRQUNFLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1lBQ2xCLE1BQU07WUFDTixJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO1NBQ3pCLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQVk7UUFDdkIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDeEMsSUFBSTtZQUNKLEtBQUssRUFBRTtnQkFDTCxJQUFJLEVBQUUsQ0FBQzthQUNSO1NBQ0YsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDdEIsTUFBTSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUM1QyxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFBO1FBQ3BCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBVSxFQUFFLEdBQVc7UUFDL0IsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUN2QixFQUFFLEVBQUUsR0FBRyxHQUFHLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBRTtZQUNoQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTztZQUNsQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ3RGLENBQUMsQ0FBQTtRQUNGLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGVwIH0gZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHsgY3JlYXRlLCBpbnNlcnQsIHR5cGUgT3JhbWEsIHNlYXJjaCB9IGZyb20gJ0BvcmFtYS9vcmFtYSdcblxuaW1wb3J0IHsgSURfU0VQQVJBVE9SLCB0eXBlIFR5cGVkSW5kZXggfSBmcm9tICcuL3R5cGVzLmpzJ1xuXG5jb25zdCBzY2hlbWEgPSB7XG4gIGtleXdvcmQ6ICdzdHJpbmcnLFxuICB0ZXh0OiAnc3RyaW5nJyxcbiAgZG9jU3RyaW5nOiAnc3RyaW5nJyxcbiAgZGF0YVRhYmxlOiAnc3RyaW5nW10nLFxufSBhcyBjb25zdFxuXG5leHBvcnQgY2xhc3MgU3RlcFNlYXJjaCBpbXBsZW1lbnRzIFR5cGVkSW5kZXg8U3RlcD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGluZGV4OiBPcmFtYTx0eXBlb2Ygc2NoZW1hPlxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaW5kZXggPSBjcmVhdGUoe1xuICAgICAgc2NoZW1hLFxuICAgICAgc29ydDogeyBlbmFibGVkOiBmYWxzZSB9LFxuICAgIH0pXG4gIH1cblxuICBhc3luYyBzZWFyY2godGVybTogc3RyaW5nKSB7XG4gICAgY29uc3QgeyBoaXRzIH0gPSBhd2FpdCBzZWFyY2godGhpcy5pbmRleCwge1xuICAgICAgdGVybSxcbiAgICAgIGJvb3N0OiB7XG4gICAgICAgIHRleHQ6IDIsXG4gICAgICB9LFxuICAgIH0pXG4gICAgcmV0dXJuIGhpdHMubWFwKChoaXQpID0+IHtcbiAgICAgIGNvbnN0IFt1cmksIGlkXSA9IGhpdC5pZC5zcGxpdChJRF9TRVBBUkFUT1IpXG4gICAgICByZXR1cm4geyB1cmksIGlkIH1cbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgYWRkKHN0ZXA6IFN0ZXAsIHVyaTogc3RyaW5nKTogUHJvbWlzZTx0aGlzPiB7XG4gICAgYXdhaXQgaW5zZXJ0KHRoaXMuaW5kZXgsIHtcbiAgICAgIGlkOiB1cmkgKyBJRF9TRVBBUkFUT1IgKyBzdGVwLmlkLFxuICAgICAga2V5d29yZDogc3RlcC5rZXl3b3JkLFxuICAgICAgdGV4dDogc3RlcC50ZXh0LFxuICAgICAgZG9jU3RyaW5nOiBzdGVwLmRvY1N0cmluZz8uY29udGVudCxcbiAgICAgIGRhdGFUYWJsZTogc3RlcC5kYXRhVGFibGU/LnJvd3MuZmxhdE1hcCgocm93KSA9PiByb3cuY2VsbHMpLm1hcCgoY2VsbCkgPT4gY2VsbC52YWx1ZSksXG4gICAgfSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ import type { GherkinDocument } from '@cucumber/messages';
2
+ import type { SearchHits, SearchIndex } from './types.js';
3
+ export declare class TextSearch implements SearchIndex {
4
+ private readonly featureSearch;
5
+ private readonly backgroundSearch;
6
+ private readonly ruleSearch;
7
+ private readonly scenarioSearch;
8
+ private readonly stepSearch;
9
+ search(query: string): Promise<SearchHits>;
10
+ add(gherkinDocument: GherkinDocument): Promise<void>;
11
+ }
@@ -0,0 +1,67 @@
1
+ import { walkGherkinDocument } from '@cucumber/gherkin-utils';
2
+ import { FeatureSearch } from './FeatureSearch.js';
3
+ import { ScenarioLikeSearch } from './ScenarioLikeSearch.js';
4
+ import { StepSearch } from './StepSearch.js';
5
+ export class TextSearch {
6
+ featureSearch = new FeatureSearch();
7
+ backgroundSearch = new ScenarioLikeSearch();
8
+ ruleSearch = new ScenarioLikeSearch();
9
+ scenarioSearch = new ScenarioLikeSearch();
10
+ stepSearch = new StepSearch();
11
+ async search(query) {
12
+ const [featureHits, backgroundHits, ruleHits, scenarioHits, stepHits] = await Promise.all([
13
+ this.featureSearch.search(query),
14
+ this.backgroundSearch.search(query),
15
+ this.ruleSearch.search(query),
16
+ this.scenarioSearch.search(query),
17
+ this.stepSearch.search(query),
18
+ ]);
19
+ // an empty map is a valid result meaning nothing matched
20
+ const map = new Map();
21
+ const getOrDefault = (uri) => {
22
+ let entry = map.get(uri);
23
+ if (!entry) {
24
+ entry = {
25
+ feature: false,
26
+ background: new Set(),
27
+ rule: new Set(),
28
+ scenario: new Set(),
29
+ step: new Set(),
30
+ };
31
+ map.set(uri, entry);
32
+ }
33
+ return entry;
34
+ };
35
+ for (const hit of featureHits) {
36
+ getOrDefault(hit.uri).feature = true;
37
+ }
38
+ for (const hit of backgroundHits) {
39
+ getOrDefault(hit.uri).background.add(hit.id);
40
+ }
41
+ for (const hit of ruleHits) {
42
+ getOrDefault(hit.uri).rule.add(hit.id);
43
+ }
44
+ for (const hit of scenarioHits) {
45
+ getOrDefault(hit.uri).scenario.add(hit.id);
46
+ }
47
+ for (const hit of stepHits) {
48
+ getOrDefault(hit.uri).step.add(hit.id);
49
+ }
50
+ return map;
51
+ }
52
+ async add(gherkinDocument) {
53
+ const uri = gherkinDocument.uri;
54
+ if (!uri) {
55
+ return;
56
+ }
57
+ const promises = walkGherkinDocument(gherkinDocument, [], {
58
+ feature: (_feature, acc) => [...acc, this.featureSearch.add(gherkinDocument, uri)],
59
+ background: (background, acc) => [...acc, this.backgroundSearch.add(background, uri)],
60
+ rule: (rule, acc) => [...acc, this.ruleSearch.add(rule, uri)],
61
+ scenario: (scenario, acc) => [...acc, this.scenarioSearch.add(scenario, uri)],
62
+ step: (step, acc) => [...acc, this.stepSearch.add(step, uri)],
63
+ });
64
+ await Promise.all(promises);
65
+ }
66
+ }
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dFNlYXJjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZWFyY2gvVGV4dFNlYXJjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUU3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBUzVDLE1BQU0sT0FBTyxVQUFVO0lBQ0osYUFBYSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUE7SUFDbkMsZ0JBQWdCLEdBQUcsSUFBSSxrQkFBa0IsRUFBYyxDQUFBO0lBQ3ZELFVBQVUsR0FBRyxJQUFJLGtCQUFrQixFQUFRLENBQUE7SUFDM0MsY0FBYyxHQUFHLElBQUksa0JBQWtCLEVBQVksQ0FBQTtJQUNuRCxVQUFVLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQTtJQUV2QyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQWE7UUFDL0IsTUFBTSxDQUFDLFdBQVcsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDeEYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ25DLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQzlCLENBQUMsQ0FBQTtRQUNGLHlEQUF5RDtRQUN6RCxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBcUMsQ0FBQTtRQUN4RCxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO1lBQ25DLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDeEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNYLEtBQUssR0FBRztvQkFDTixPQUFPLEVBQUUsS0FBSztvQkFDZCxVQUFVLEVBQUUsSUFBSSxHQUFHLEVBQUU7b0JBQ3JCLElBQUksRUFBRSxJQUFJLEdBQUcsRUFBRTtvQkFDZixRQUFRLEVBQUUsSUFBSSxHQUFHLEVBQUU7b0JBQ25CLElBQUksRUFBRSxJQUFJLEdBQUcsRUFBRTtpQkFDaEIsQ0FBQTtnQkFDRCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUNyQixDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDLENBQUE7UUFDRCxLQUFLLE1BQU0sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQzlCLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtRQUN0QyxDQUFDO1FBQ0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNqQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQzlDLENBQUM7UUFDRCxLQUFLLE1BQU0sR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzNCLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDeEMsQ0FBQztRQUNELEtBQUssTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7WUFDL0IsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUM1QyxDQUFDO1FBQ0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMzQixZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3hDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQTtJQUNaLENBQUM7SUFFTSxLQUFLLENBQUMsR0FBRyxDQUFDLGVBQWdDO1FBQy9DLE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUE7UUFDL0IsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsT0FBTTtRQUNSLENBQUM7UUFDRCxNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBMEIsZUFBZSxFQUFFLEVBQUUsRUFBRTtZQUNqRixPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNsRixVQUFVLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3JGLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzdELFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzdFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQzlELENBQUMsQ0FBQTtRQUNGLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUM3QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB3YWxrR2hlcmtpbkRvY3VtZW50IH0gZnJvbSAnQGN1Y3VtYmVyL2doZXJraW4tdXRpbHMnXG5pbXBvcnQgdHlwZSB7IEJhY2tncm91bmQsIEdoZXJraW5Eb2N1bWVudCwgUnVsZSwgU2NlbmFyaW8gfSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5pbXBvcnQgeyBGZWF0dXJlU2VhcmNoIH0gZnJvbSAnLi9GZWF0dXJlU2VhcmNoLmpzJ1xuaW1wb3J0IHsgU2NlbmFyaW9MaWtlU2VhcmNoIH0gZnJvbSAnLi9TY2VuYXJpb0xpa2VTZWFyY2guanMnXG5pbXBvcnQgeyBTdGVwU2VhcmNoIH0gZnJvbSAnLi9TdGVwU2VhcmNoLmpzJ1xuaW1wb3J0IHR5cGUgeyBEb2N1bWVudFNlYXJjaEhpdHMsIFNlYXJjaEhpdHMsIFNlYXJjaEluZGV4IH0gZnJvbSAnLi90eXBlcy5qcydcblxudHlwZSBNdXRhYmxlRG9jdW1lbnRTZWFyY2hIaXRzID0ge1xuICBbS2V5IGluIGtleW9mIERvY3VtZW50U2VhcmNoSGl0c106IERvY3VtZW50U2VhcmNoSGl0c1tLZXldIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgSXRlbT5cbiAgICA/IFNldDxJdGVtPlxuICAgIDogRG9jdW1lbnRTZWFyY2hIaXRzW0tleV1cbn1cblxuZXhwb3J0IGNsYXNzIFRleHRTZWFyY2ggaW1wbGVtZW50cyBTZWFyY2hJbmRleCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmVhdHVyZVNlYXJjaCA9IG5ldyBGZWF0dXJlU2VhcmNoKClcbiAgcHJpdmF0ZSByZWFkb25seSBiYWNrZ3JvdW5kU2VhcmNoID0gbmV3IFNjZW5hcmlvTGlrZVNlYXJjaDxCYWNrZ3JvdW5kPigpXG4gIHByaXZhdGUgcmVhZG9ubHkgcnVsZVNlYXJjaCA9IG5ldyBTY2VuYXJpb0xpa2VTZWFyY2g8UnVsZT4oKVxuICBwcml2YXRlIHJlYWRvbmx5IHNjZW5hcmlvU2VhcmNoID0gbmV3IFNjZW5hcmlvTGlrZVNlYXJjaDxTY2VuYXJpbz4oKVxuICBwcml2YXRlIHJlYWRvbmx5IHN0ZXBTZWFyY2ggPSBuZXcgU3RlcFNlYXJjaCgpXG5cbiAgcHVibGljIGFzeW5jIHNlYXJjaChxdWVyeTogc3RyaW5nKTogUHJvbWlzZTxTZWFyY2hIaXRzPiB7XG4gICAgY29uc3QgW2ZlYXR1cmVIaXRzLCBiYWNrZ3JvdW5kSGl0cywgcnVsZUhpdHMsIHNjZW5hcmlvSGl0cywgc3RlcEhpdHNdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgdGhpcy5mZWF0dXJlU2VhcmNoLnNlYXJjaChxdWVyeSksXG4gICAgICB0aGlzLmJhY2tncm91bmRTZWFyY2guc2VhcmNoKHF1ZXJ5KSxcbiAgICAgIHRoaXMucnVsZVNlYXJjaC5zZWFyY2gocXVlcnkpLFxuICAgICAgdGhpcy5zY2VuYXJpb1NlYXJjaC5zZWFyY2gocXVlcnkpLFxuICAgICAgdGhpcy5zdGVwU2VhcmNoLnNlYXJjaChxdWVyeSksXG4gICAgXSlcbiAgICAvLyBhbiBlbXB0eSBtYXAgaXMgYSB2YWxpZCByZXN1bHQgbWVhbmluZyBub3RoaW5nIG1hdGNoZWRcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwPHN0cmluZywgTXV0YWJsZURvY3VtZW50U2VhcmNoSGl0cz4oKVxuICAgIGNvbnN0IGdldE9yRGVmYXVsdCA9ICh1cmk6IHN0cmluZykgPT4ge1xuICAgICAgbGV0IGVudHJ5ID0gbWFwLmdldCh1cmkpXG4gICAgICBpZiAoIWVudHJ5KSB7XG4gICAgICAgIGVudHJ5ID0ge1xuICAgICAgICAgIGZlYXR1cmU6IGZhbHNlLFxuICAgICAgICAgIGJhY2tncm91bmQ6IG5ldyBTZXQoKSxcbiAgICAgICAgICBydWxlOiBuZXcgU2V0KCksXG4gICAgICAgICAgc2NlbmFyaW86IG5ldyBTZXQoKSxcbiAgICAgICAgICBzdGVwOiBuZXcgU2V0KCksXG4gICAgICAgIH1cbiAgICAgICAgbWFwLnNldCh1cmksIGVudHJ5KVxuICAgICAgfVxuICAgICAgcmV0dXJuIGVudHJ5XG4gICAgfVxuICAgIGZvciAoY29uc3QgaGl0IG9mIGZlYXR1cmVIaXRzKSB7XG4gICAgICBnZXRPckRlZmF1bHQoaGl0LnVyaSkuZmVhdHVyZSA9IHRydWVcbiAgICB9XG4gICAgZm9yIChjb25zdCBoaXQgb2YgYmFja2dyb3VuZEhpdHMpIHtcbiAgICAgIGdldE9yRGVmYXVsdChoaXQudXJpKS5iYWNrZ3JvdW5kLmFkZChoaXQuaWQpXG4gICAgfVxuICAgIGZvciAoY29uc3QgaGl0IG9mIHJ1bGVIaXRzKSB7XG4gICAgICBnZXRPckRlZmF1bHQoaGl0LnVyaSkucnVsZS5hZGQoaGl0LmlkKVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IGhpdCBvZiBzY2VuYXJpb0hpdHMpIHtcbiAgICAgIGdldE9yRGVmYXVsdChoaXQudXJpKS5zY2VuYXJpby5hZGQoaGl0LmlkKVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IGhpdCBvZiBzdGVwSGl0cykge1xuICAgICAgZ2V0T3JEZWZhdWx0KGhpdC51cmkpLnN0ZXAuYWRkKGhpdC5pZClcbiAgICB9XG4gICAgcmV0dXJuIG1hcFxuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZChnaGVya2luRG9jdW1lbnQ6IEdoZXJraW5Eb2N1bWVudCkge1xuICAgIGNvbnN0IHVyaSA9IGdoZXJraW5Eb2N1bWVudC51cmlcbiAgICBpZiAoIXVyaSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IHByb21pc2VzID0gd2Fsa0doZXJraW5Eb2N1bWVudDxBcnJheTxQcm9taXNlPHVua25vd24+Pj4oZ2hlcmtpbkRvY3VtZW50LCBbXSwge1xuICAgICAgZmVhdHVyZTogKF9mZWF0dXJlLCBhY2MpID0+IFsuLi5hY2MsIHRoaXMuZmVhdHVyZVNlYXJjaC5hZGQoZ2hlcmtpbkRvY3VtZW50LCB1cmkpXSxcbiAgICAgIGJhY2tncm91bmQ6IChiYWNrZ3JvdW5kLCBhY2MpID0+IFsuLi5hY2MsIHRoaXMuYmFja2dyb3VuZFNlYXJjaC5hZGQoYmFja2dyb3VuZCwgdXJpKV0sXG4gICAgICBydWxlOiAocnVsZSwgYWNjKSA9PiBbLi4uYWNjLCB0aGlzLnJ1bGVTZWFyY2guYWRkKHJ1bGUsIHVyaSldLFxuICAgICAgc2NlbmFyaW86IChzY2VuYXJpbywgYWNjKSA9PiBbLi4uYWNjLCB0aGlzLnNjZW5hcmlvU2VhcmNoLmFkZChzY2VuYXJpbywgdXJpKV0sXG4gICAgICBzdGVwOiAoc3RlcCwgYWNjKSA9PiBbLi4uYWNjLCB0aGlzLnN0ZXBTZWFyY2guYWRkKHN0ZXAsIHVyaSldLFxuICAgIH0pXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ import type { GherkinDocument } from '@cucumber/messages';
2
+ import type { SearchIndex } from './types.js';
3
+ /**
4
+ * Creates a search index that supports querying by term
5
+ */
6
+ export declare function createSearchIndex(gherkinDocuments: ReadonlyArray<GherkinDocument>): Promise<SearchIndex>;
@@ -0,0 +1,10 @@
1
+ import { TextSearch } from './TextSearch.js';
2
+ /**
3
+ * Creates a search index that supports querying by term
4
+ */
5
+ export async function createSearchIndex(gherkinDocuments) {
6
+ const textSearch = new TextSearch();
7
+ await Promise.all(gherkinDocuments.map((gherkinDocument) => textSearch.add(gherkinDocument)));
8
+ return textSearch;
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlU2VhcmNoSW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VhcmNoL2NyZWF0ZVNlYXJjaEluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUc1Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLGdCQUFnRDtJQUVoRCxNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFBO0lBQ25DLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzdGLE9BQU8sVUFBVSxDQUFBO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEdoZXJraW5Eb2N1bWVudCB9IGZyb20gJ0BjdWN1bWJlci9tZXNzYWdlcydcblxuaW1wb3J0IHsgVGV4dFNlYXJjaCB9IGZyb20gJy4vVGV4dFNlYXJjaC5qcydcbmltcG9ydCB0eXBlIHsgU2VhcmNoSW5kZXggfSBmcm9tICcuL3R5cGVzLmpzJ1xuXG4vKipcbiAqIENyZWF0ZXMgYSBzZWFyY2ggaW5kZXggdGhhdCBzdXBwb3J0cyBxdWVyeWluZyBieSB0ZXJtXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVTZWFyY2hJbmRleChcbiAgZ2hlcmtpbkRvY3VtZW50czogUmVhZG9ubHlBcnJheTxHaGVya2luRG9jdW1lbnQ+XG4pOiBQcm9taXNlPFNlYXJjaEluZGV4PiB7XG4gIGNvbnN0IHRleHRTZWFyY2ggPSBuZXcgVGV4dFNlYXJjaCgpXG4gIGF3YWl0IFByb21pc2UuYWxsKGdoZXJraW5Eb2N1bWVudHMubWFwKChnaGVya2luRG9jdW1lbnQpID0+IHRleHRTZWFyY2guYWRkKGdoZXJraW5Eb2N1bWVudCkpKVxuICByZXR1cm4gdGV4dFNlYXJjaFxufVxuIl19
@@ -0,0 +1,7 @@
1
+ import type { Pickle } from '@cucumber/messages';
2
+ import type { Lineage } from '@cucumber/query';
3
+ import type { LineageConstraints } from './types.js';
4
+ export declare function deriveLineageConstraints(items: ReadonlyArray<{
5
+ pickle: Pickle;
6
+ lineage: Lineage;
7
+ }>): LineageConstraints;
@@ -0,0 +1,38 @@
1
+ export function deriveLineageConstraints(items) {
2
+ const gherkinDocument = new Set();
3
+ const background = new Set();
4
+ const rule = new Set();
5
+ const scenario = new Set();
6
+ const examples = new Set();
7
+ const example = new Set();
8
+ for (const { pickle, lineage } of items) {
9
+ gherkinDocument.add(pickle.uri);
10
+ if (lineage.background) {
11
+ background.add(lineage.background.id);
12
+ }
13
+ if (lineage.ruleBackground) {
14
+ background.add(lineage.ruleBackground.id);
15
+ }
16
+ if (lineage.rule) {
17
+ rule.add(lineage.rule.id);
18
+ }
19
+ if (lineage.scenario) {
20
+ scenario.add(lineage.scenario.id);
21
+ }
22
+ if (lineage.examples) {
23
+ examples.add(lineage.examples.id);
24
+ }
25
+ if (lineage.example) {
26
+ example.add(lineage.example.id);
27
+ }
28
+ }
29
+ return {
30
+ gherkinDocument,
31
+ background,
32
+ rule,
33
+ scenario,
34
+ examples,
35
+ example,
36
+ };
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyaXZlTGluZWFnZUNvbnN0cmFpbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlYXJjaC9kZXJpdmVMaW5lYWdlQ29uc3RyYWludHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxLQUEwRDtJQUUxRCxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO0lBQ3pDLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUE7SUFDcEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtJQUM5QixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO0lBQ2xDLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUE7SUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtJQUNqQyxLQUFLLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksS0FBSyxFQUFFLENBQUM7UUFDeEMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDL0IsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdkIsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3ZDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMzQixVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDM0MsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMzQixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ25DLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyQixRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDbkMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU87UUFDTCxlQUFlO1FBQ2YsVUFBVTtRQUNWLElBQUk7UUFDSixRQUFRO1FBQ1IsUUFBUTtRQUNSLE9BQU87S0FDUixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGlja2xlIH0gZnJvbSAnQGN1Y3VtYmVyL21lc3NhZ2VzJ1xuaW1wb3J0IHR5cGUgeyBMaW5lYWdlIH0gZnJvbSAnQGN1Y3VtYmVyL3F1ZXJ5J1xuaW1wb3J0IHR5cGUgeyBMaW5lYWdlQ29uc3RyYWludHMgfSBmcm9tICcuL3R5cGVzLmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gZGVyaXZlTGluZWFnZUNvbnN0cmFpbnRzKFxuICBpdGVtczogUmVhZG9ubHlBcnJheTx7IHBpY2tsZTogUGlja2xlOyBsaW5lYWdlOiBMaW5lYWdlIH0+XG4pOiBMaW5lYWdlQ29uc3RyYWludHMge1xuICBjb25zdCBnaGVya2luRG9jdW1lbnQgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBjb25zdCBiYWNrZ3JvdW5kID0gbmV3IFNldDxzdHJpbmc+KClcbiAgY29uc3QgcnVsZSA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIGNvbnN0IHNjZW5hcmlvID0gbmV3IFNldDxzdHJpbmc+KClcbiAgY29uc3QgZXhhbXBsZXMgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBjb25zdCBleGFtcGxlID0gbmV3IFNldDxzdHJpbmc+KClcbiAgZm9yIChjb25zdCB7IHBpY2tsZSwgbGluZWFnZSB9IG9mIGl0ZW1zKSB7XG4gICAgZ2hlcmtpbkRvY3VtZW50LmFkZChwaWNrbGUudXJpKVxuICAgIGlmIChsaW5lYWdlLmJhY2tncm91bmQpIHtcbiAgICAgIGJhY2tncm91bmQuYWRkKGxpbmVhZ2UuYmFja2dyb3VuZC5pZClcbiAgICB9XG4gICAgaWYgKGxpbmVhZ2UucnVsZUJhY2tncm91bmQpIHtcbiAgICAgIGJhY2tncm91bmQuYWRkKGxpbmVhZ2UucnVsZUJhY2tncm91bmQuaWQpXG4gICAgfVxuICAgIGlmIChsaW5lYWdlLnJ1bGUpIHtcbiAgICAgIHJ1bGUuYWRkKGxpbmVhZ2UucnVsZS5pZClcbiAgICB9XG4gICAgaWYgKGxpbmVhZ2Uuc2NlbmFyaW8pIHtcbiAgICAgIHNjZW5hcmlvLmFkZChsaW5lYWdlLnNjZW5hcmlvLmlkKVxuICAgIH1cbiAgICBpZiAobGluZWFnZS5leGFtcGxlcykge1xuICAgICAgZXhhbXBsZXMuYWRkKGxpbmVhZ2UuZXhhbXBsZXMuaWQpXG4gICAgfVxuICAgIGlmIChsaW5lYWdlLmV4YW1wbGUpIHtcbiAgICAgIGV4YW1wbGUuYWRkKGxpbmVhZ2UuZXhhbXBsZS5pZClcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBnaGVya2luRG9jdW1lbnQsXG4gICAgYmFja2dyb3VuZCxcbiAgICBydWxlLFxuICAgIHNjZW5hcmlvLFxuICAgIGV4YW1wbGVzLFxuICAgIGV4YW1wbGUsXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { type Pickle, type TestCaseFinished, type TestCaseStarted, type TestStepResultStatus } from '@cucumber/messages';
2
+ import type { Query as CucumberQuery, Lineage } from '@cucumber/query';
3
+ import type { Node as TagExpression } from '@cucumber/tag-expressions';
4
+ export interface ExpandedTestCase<T extends TestCaseStarted | TestCaseFinished> {
5
+ testCaseEvent: T;
6
+ pickle: Pickle;
7
+ lineage: Lineage;
8
+ }
9
+ export interface FilterCriteria {
10
+ hideStatuses: ReadonlyArray<TestStepResultStatus>;
11
+ tagExpression?: TagExpression;
12
+ }
13
+ /**
14
+ * Filters test cases by status and/or tag expression, expanding each survivor with its pickle and
15
+ * lineage.
16
+ *
17
+ * Works for either `TestCaseStarted` or `TestCaseFinished` - the element type flows through to the
18
+ * `testCaseEvent` of each returned item.
19
+ */
20
+ export declare function filterAndExpandTestCaseEvents<T extends TestCaseStarted | TestCaseFinished>(cucumberQuery: CucumberQuery, testCaseEvents: ReadonlyArray<T>, { hideStatuses, tagExpression }: FilterCriteria): Array<ExpandedTestCase<T>>;
@@ -0,0 +1,32 @@
1
+ import { TestStepResultStatus as Status, } from '@cucumber/messages';
2
+ import { ensure } from '../ensure.js';
3
+ /**
4
+ * Filters test cases by status and/or tag expression, expanding each survivor with its pickle and
5
+ * lineage.
6
+ *
7
+ * Works for either `TestCaseStarted` or `TestCaseFinished` - the element type flows through to the
8
+ * `testCaseEvent` of each returned item.
9
+ */
10
+ export function filterAndExpandTestCaseEvents(cucumberQuery, testCaseEvents, { hideStatuses, tagExpression }) {
11
+ const expanded = [];
12
+ for (const testCaseEvent of testCaseEvents) {
13
+ if (hideStatuses.length) {
14
+ const status = cucumberQuery.findMostSevereTestStepResultBy(testCaseEvent)?.status ?? Status.UNKNOWN;
15
+ if (hideStatuses.includes(status)) {
16
+ continue;
17
+ }
18
+ }
19
+ const id = 'id' in testCaseEvent ? testCaseEvent.id : testCaseEvent.testCaseStartedId;
20
+ const pickle = ensure(cucumberQuery.findPickleBy(testCaseEvent), `No Pickle found for TestCase ${id}`);
21
+ if (tagExpression) {
22
+ const tags = pickle.tags.map((tag) => tag.name);
23
+ if (!tagExpression.evaluate(tags)) {
24
+ continue;
25
+ }
26
+ }
27
+ const lineage = ensure(cucumberQuery.findLineageBy(pickle), `No Lineage found for Pickle ${pickle.uri}`);
28
+ expanded.push({ testCaseEvent, pickle, lineage });
29
+ }
30
+ return expanded;
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyQW5kRXhwYW5kVGVzdENhc2VFdmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VhcmNoL2ZpbHRlckFuZEV4cGFuZFRlc3RDYXNlRXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxvQkFBb0IsSUFBSSxNQUFNLEdBSS9CLE1BQU0sb0JBQW9CLENBQUE7QUFHM0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQWFyQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsNkJBQTZCLENBQzNDLGFBQTRCLEVBQzVCLGNBQWdDLEVBQ2hDLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBa0I7SUFFL0MsTUFBTSxRQUFRLEdBQStCLEVBQUUsQ0FBQTtJQUMvQyxLQUFLLE1BQU0sYUFBYSxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQzNDLElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLE1BQU0sTUFBTSxHQUNWLGFBQWEsQ0FBQyw4QkFBOEIsQ0FBQyxhQUFhLENBQUMsRUFBRSxNQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQTtZQUN2RixJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDbEMsU0FBUTtZQUNWLENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxFQUFFLEdBQUcsSUFBSSxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFBO1FBQ3JGLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FDbkIsYUFBYSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsRUFDekMsZ0NBQWdDLEVBQUUsRUFBRSxDQUNyQyxDQUFBO1FBQ0QsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQy9DLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLFNBQVE7WUFDVixDQUFDO1FBQ0gsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FDcEIsYUFBYSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFDbkMsK0JBQStCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FDNUMsQ0FBQTtRQUNELFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDbkQsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFBO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIFBpY2tsZSxcbiAgVGVzdFN0ZXBSZXN1bHRTdGF0dXMgYXMgU3RhdHVzLFxuICB0eXBlIFRlc3RDYXNlRmluaXNoZWQsXG4gIHR5cGUgVGVzdENhc2VTdGFydGVkLFxuICB0eXBlIFRlc3RTdGVwUmVzdWx0U3RhdHVzLFxufSBmcm9tICdAY3VjdW1iZXIvbWVzc2FnZXMnXG5pbXBvcnQgdHlwZSB7IFF1ZXJ5IGFzIEN1Y3VtYmVyUXVlcnksIExpbmVhZ2UgfSBmcm9tICdAY3VjdW1iZXIvcXVlcnknXG5pbXBvcnQgdHlwZSB7IE5vZGUgYXMgVGFnRXhwcmVzc2lvbiB9IGZyb20gJ0BjdWN1bWJlci90YWctZXhwcmVzc2lvbnMnXG5pbXBvcnQgeyBlbnN1cmUgfSBmcm9tICcuLi9lbnN1cmUuanMnXG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhwYW5kZWRUZXN0Q2FzZTxUIGV4dGVuZHMgVGVzdENhc2VTdGFydGVkIHwgVGVzdENhc2VGaW5pc2hlZD4ge1xuICB0ZXN0Q2FzZUV2ZW50OiBUXG4gIHBpY2tsZTogUGlja2xlXG4gIGxpbmVhZ2U6IExpbmVhZ2Vcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJDcml0ZXJpYSB7XG4gIGhpZGVTdGF0dXNlczogUmVhZG9ubHlBcnJheTxUZXN0U3RlcFJlc3VsdFN0YXR1cz5cbiAgdGFnRXhwcmVzc2lvbj86IFRhZ0V4cHJlc3Npb25cbn1cblxuLyoqXG4gKiBGaWx0ZXJzIHRlc3QgY2FzZXMgYnkgc3RhdHVzIGFuZC9vciB0YWcgZXhwcmVzc2lvbiwgZXhwYW5kaW5nIGVhY2ggc3Vydml2b3Igd2l0aCBpdHMgcGlja2xlIGFuZFxuICogbGluZWFnZS5cbiAqXG4gKiBXb3JrcyBmb3IgZWl0aGVyIGBUZXN0Q2FzZVN0YXJ0ZWRgIG9yIGBUZXN0Q2FzZUZpbmlzaGVkYCAtIHRoZSBlbGVtZW50IHR5cGUgZmxvd3MgdGhyb3VnaCB0byB0aGVcbiAqIGB0ZXN0Q2FzZUV2ZW50YCBvZiBlYWNoIHJldHVybmVkIGl0ZW0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJBbmRFeHBhbmRUZXN0Q2FzZUV2ZW50czxUIGV4dGVuZHMgVGVzdENhc2VTdGFydGVkIHwgVGVzdENhc2VGaW5pc2hlZD4oXG4gIGN1Y3VtYmVyUXVlcnk6IEN1Y3VtYmVyUXVlcnksXG4gIHRlc3RDYXNlRXZlbnRzOiBSZWFkb25seUFycmF5PFQ+LFxuICB7IGhpZGVTdGF0dXNlcywgdGFnRXhwcmVzc2lvbiB9OiBGaWx0ZXJDcml0ZXJpYVxuKTogQXJyYXk8RXhwYW5kZWRUZXN0Q2FzZTxUPj4ge1xuICBjb25zdCBleHBhbmRlZDogQXJyYXk8RXhwYW5kZWRUZXN0Q2FzZTxUPj4gPSBbXVxuICBmb3IgKGNvbnN0IHRlc3RDYXNlRXZlbnQgb2YgdGVzdENhc2VFdmVudHMpIHtcbiAgICBpZiAoaGlkZVN0YXR1c2VzLmxlbmd0aCkge1xuICAgICAgY29uc3Qgc3RhdHVzID1cbiAgICAgICAgY3VjdW1iZXJRdWVyeS5maW5kTW9zdFNldmVyZVRlc3RTdGVwUmVzdWx0QnkodGVzdENhc2VFdmVudCk/LnN0YXR1cyA/PyBTdGF0dXMuVU5LTk9XTlxuICAgICAgaWYgKGhpZGVTdGF0dXNlcy5pbmNsdWRlcyhzdGF0dXMpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGlkID0gJ2lkJyBpbiB0ZXN0Q2FzZUV2ZW50ID8gdGVzdENhc2VFdmVudC5pZCA6IHRlc3RDYXNlRXZlbnQudGVzdENhc2VTdGFydGVkSWRcbiAgICBjb25zdCBwaWNrbGUgPSBlbnN1cmUoXG4gICAgICBjdWN1bWJlclF1ZXJ5LmZpbmRQaWNrbGVCeSh0ZXN0Q2FzZUV2ZW50KSxcbiAgICAgIGBObyBQaWNrbGUgZm91bmQgZm9yIFRlc3RDYXNlICR7aWR9YFxuICAgIClcbiAgICBpZiAodGFnRXhwcmVzc2lvbikge1xuICAgICAgY29uc3QgdGFncyA9IHBpY2tsZS50YWdzLm1hcCgodGFnKSA9PiB0YWcubmFtZSlcbiAgICAgIGlmICghdGFnRXhwcmVzc2lvbi5ldmFsdWF0ZSh0YWdzKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBsaW5lYWdlID0gZW5zdXJlKFxuICAgICAgY3VjdW1iZXJRdWVyeS5maW5kTGluZWFnZUJ5KHBpY2tsZSksXG4gICAgICBgTm8gTGluZWFnZSBmb3VuZCBmb3IgUGlja2xlICR7cGlja2xlLnVyaX1gXG4gICAgKVxuICAgIGV4cGFuZGVkLnB1c2goeyB0ZXN0Q2FzZUV2ZW50LCBwaWNrbGUsIGxpbmVhZ2UgfSlcbiAgfVxuICByZXR1cm4gZXhwYW5kZWRcbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export * from './createSearchIndex.js';
2
+ export * from './deriveLineageConstraints.js';
3
+ export * from './filterAndExpandTestCaseEvents.js';
4
+ export * from './pruneGherkinDocuments.js';
5
+ export * from './pruneTestCaseEvents.js';
6
+ export * from './types.js';
@@ -0,0 +1,7 @@
1
+ export * from './createSearchIndex.js';
2
+ export * from './deriveLineageConstraints.js';
3
+ export * from './filterAndExpandTestCaseEvents.js';
4
+ export * from './pruneGherkinDocuments.js';
5
+ export * from './pruneTestCaseEvents.js';
6
+ export * from './types.js';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VhcmNoL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMsNEJBQTRCLENBQUE7QUFDMUMsY0FBYywwQkFBMEIsQ0FBQTtBQUN4QyxjQUFjLFlBQVksQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3JlYXRlU2VhcmNoSW5kZXguanMnXG5leHBvcnQgKiBmcm9tICcuL2Rlcml2ZUxpbmVhZ2VDb25zdHJhaW50cy5qcydcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyQW5kRXhwYW5kVGVzdENhc2VFdmVudHMuanMnXG5leHBvcnQgKiBmcm9tICcuL3BydW5lR2hlcmtpbkRvY3VtZW50cy5qcydcbmV4cG9ydCAqIGZyb20gJy4vcHJ1bmVUZXN0Q2FzZUV2ZW50cy5qcydcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMuanMnXG4iXX0=
@@ -0,0 +1,23 @@
1
+ import type { GherkinDocument } from '@cucumber/messages';
2
+ import type { LineageConstraints, SearchHits } from './types.js';
3
+ /**
4
+ * Returns abridged copies of the given documents, with lineage constraints and search hits used
5
+ * to filter out nodes that shouldn't be shown
6
+ *
7
+ * @param gherkinDocuments - the original documents to prune
8
+ * @param constraints - the set of AST node IDs to retain, derived from pickle lineage
9
+ * @param searchHits - if provided, further narrows results to nodes matching a search query
10
+ *
11
+ * @remarks
12
+ * The two filtering mechanisms behave a little differently.
13
+ *
14
+ * `lineageConstraints` are strictly enforced at every level - any node of the covered types must
15
+ * have its id included otherwise it will be filtered off. This check is performed eagerly at every
16
+ * level so for e.g. a Rule that isn't matched, we won't even look at its child Scenarios.
17
+ *
18
+ * `searchHits` has cascading behaviour - a match at a higher level (Feature, Rule, or Background)
19
+ * ensures all of its descendants will be retained, and a match at a lower level (Scenario, Step)
20
+ * ensures all of its ascendants (but not siblings) will be retained. An empty map means there were
21
+ * no hits at all, so no documents will be returned.
22
+ */
23
+ export declare function pruneGherkinDocuments(gherkinDocuments: ReadonlyArray<GherkinDocument>, constraints: LineageConstraints, searchHits?: SearchHits): ReadonlyArray<GherkinDocument>;