scordi-extension 1.16.3 → 1.16.4

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 (240) hide show
  1. package/README.md +61 -29
  2. package/dist/blocks/AiParseDataBlock.d.ts.map +1 -1
  3. package/dist/blocks/EventClickBlock.d.ts.map +1 -1
  4. package/dist/blocks/ExportDataBlock.d.ts.map +1 -1
  5. package/dist/blocks/KeypressBlock.d.ts.map +1 -1
  6. package/dist/blocks/NetworkCatchBlock.d.ts.map +1 -1
  7. package/dist/blocks/WaitForConditionBlock.d.ts.map +1 -1
  8. package/dist/blocks/index.d.ts +1 -1
  9. package/dist/blocks/index.d.ts.map +1 -1
  10. package/dist/sdk/EightGClient.d.ts +6 -3
  11. package/dist/sdk/EightGClient.d.ts.map +1 -1
  12. package/dist/sdk/index.cjs +2 -2
  13. package/dist/sdk/index.js +166 -160
  14. package/dist/sdk/types.d.ts.map +1 -1
  15. package/dist/types/internal-messages.d.ts.map +1 -1
  16. package/dist/workflow/context/execution-context/binding.d.ts.map +1 -1
  17. package/dist/workflow/context/execution-context/condition.d.ts.map +1 -1
  18. package/dist/workflow/context/execution-context/index.d.ts +3 -3
  19. package/dist/workflow/context/execution-context/index.d.ts.map +1 -1
  20. package/dist/workflow/context/execution-context/resolver.d.ts.map +1 -1
  21. package/dist/workflow/context/loop-context/index.d.ts +1 -1
  22. package/dist/workflow/context/loop-context/index.d.ts.map +1 -1
  23. package/dist/workflow/context/loop-context/loop-context.d.ts.map +1 -1
  24. package/dist/workflow/context/loop-context/resolver.d.ts.map +1 -1
  25. package/dist/workflow/context/step-context/index.d.ts +1 -1
  26. package/dist/workflow/context/step-context/index.d.ts.map +1 -1
  27. package/dist/workflow/context/step-context/resolver.d.ts.map +1 -1
  28. package/dist/workflow/context/step-context/step-context.d.ts.map +1 -1
  29. package/dist/workflow/context/var-context/index.d.ts +1 -1
  30. package/dist/workflow/context/var-context/index.d.ts.map +1 -1
  31. package/dist/workflow/context/var-context/resolver.d.ts.map +1 -1
  32. package/dist/workflow/context/var-context/var-context.d.ts.map +1 -1
  33. package/package.json +1 -1
  34. package/dist/.vite/manifest.json +0 -75
  35. package/dist/assets/index-B45Q7XiR.js +0 -49
  36. package/dist/assets/index-BqQ8JinV.js +0 -1
  37. package/dist/assets/index-CVzjlC_s.js +0 -1
  38. package/dist/assets/index-CYVwV_2L.js +0 -1
  39. package/dist/assets/index-DkFIvNAm.css +0 -1
  40. package/dist/assets/index-DxZcS402.js +0 -1
  41. package/dist/assets/index-tW55lo_h.js +0 -4
  42. package/dist/assets/index.html-DZ7AUTQZ.js +0 -1
  43. package/dist/assets/index.ts-2nFLTUkL.js +0 -238
  44. package/dist/assets/index.ts-BRPHoTRl.js +0 -256
  45. package/dist/assets/index.ts-C2f2hGoV.js +0 -158
  46. package/dist/assets/index.ts-CD2jVezi.js +0 -256
  47. package/dist/assets/index.ts-COMnxBfB.js +0 -238
  48. package/dist/assets/index.ts-mAOhzdZJ.js +0 -238
  49. package/dist/assets/internal-messages-BMRA0i8A.js +0 -1
  50. package/dist/assets/internal-messages-BS1uEgeS.js +0 -1
  51. package/dist/assets/internal-messages-CP1ANEcL.js +0 -1
  52. package/dist/assets/internal-messages-Drf0Gb9U.js +0 -1
  53. package/dist/assets/loading-page-1924caaa.js +0 -51
  54. package/dist/assets/main.tsx-CHn9k-P7.js +0 -38
  55. package/dist/assets/main.tsx-DnGNeWWr.js +0 -38
  56. package/dist/assets/main.tsx-DtStYr-r.js +0 -2
  57. package/dist/assets/main.tsx-UFslEqbd.js +0 -38
  58. package/dist/assets/main.tsx-loader-6Ftbg0YS.js +0 -13
  59. package/dist/assets/main.tsx-loader-ByFSLdJ4.js +0 -13
  60. package/dist/assets/main.tsx-loader-CuF0J02t.js +0 -13
  61. package/dist/assets/main.tsx-loader-sjxNXQPw.js +0 -13
  62. package/dist/assets/types-BId3CBm7.js +0 -1
  63. package/dist/assets/types-CeXfY5Yv.js +0 -4
  64. package/dist/assets/types-Dzn4eD9c.js +0 -22
  65. package/dist/assets/types-q2_wITfk.js +0 -4
  66. package/dist/blocks/CaptureNetworkBlock.d.ts +0 -75
  67. package/dist/blocks/CaptureNetworkBlock.d.ts.map +0 -1
  68. package/dist/blocks/DataExtractBlock.d.ts +0 -23
  69. package/dist/blocks/DataExtractBlock.d.ts.map +0 -1
  70. package/dist/blocks/index.cjs +0 -4
  71. package/dist/blocks/index.js +0 -7839
  72. package/dist/blocks/logo.png +0 -0
  73. package/dist/logo.png +0 -0
  74. package/dist/manifest.json +0 -55
  75. package/dist/public/logo.png +0 -0
  76. package/dist/service-worker-loader.js +0 -3
  77. package/dist/src/blocks/AiParseDataBlock.ts.js +0 -111
  78. package/dist/src/blocks/CaptureNetworkBlock.ts.js +0 -55
  79. package/dist/src/blocks/ClearValueFormBlock.ts.js +0 -55
  80. package/dist/src/blocks/DataExtractBlock.ts.js +0 -28
  81. package/dist/src/blocks/ElementExistsBlock.ts.js +0 -26
  82. package/dist/src/blocks/EventClickBlock.ts.js +0 -143
  83. package/dist/src/blocks/ExportDataBlock.ts.js +0 -47
  84. package/dist/src/blocks/FetchApiBlock.ts.js +0 -50
  85. package/dist/src/blocks/GetAttributeValueBlock.ts.js +0 -33
  86. package/dist/src/blocks/GetElementDataBlock.ts.js +0 -114
  87. package/dist/src/blocks/GetTextBlock.ts.js +0 -152
  88. package/dist/src/blocks/GetValueFormBlock.ts.js +0 -52
  89. package/dist/src/blocks/KeypressBlock.ts.js +0 -89
  90. package/dist/src/blocks/NavigateBlock.ts.js +0 -48
  91. package/dist/src/blocks/NetworkCatchBlock.ts.js +0 -61
  92. package/dist/src/blocks/SaveAssetsBlock.ts.js +0 -35
  93. package/dist/src/blocks/ScrollBlock.ts.js +0 -111
  94. package/dist/src/blocks/SetValueFormBlock.ts.js +0 -56
  95. package/dist/src/blocks/TransformDataBlock.ts.js +0 -42
  96. package/dist/src/blocks/WaitBlock.ts.js +0 -24
  97. package/dist/src/blocks/WaitForConditionBlock.ts.js +0 -187
  98. package/dist/src/blocks/index.ts.js +0 -198
  99. package/dist/src/blocks/types.ts.js +0 -11
  100. package/dist/src/content/components/ConfirmationUI.tsx.js +0 -244
  101. package/dist/src/content/components/ExecutionStatusUI.tsx.js +0 -223
  102. package/dist/src/content/elements/finders/CssSelector.ts.js +0 -51
  103. package/dist/src/content/elements/finders/ElementSelector.ts.js +0 -20
  104. package/dist/src/content/elements/finders/IframeSelector.ts.js +0 -32
  105. package/dist/src/content/elements/finders/ShadowDOMSelector.ts.js +0 -38
  106. package/dist/src/content/elements/finders/XPathFinder.ts.js +0 -32
  107. package/dist/src/content/elements/index.ts.js +0 -26
  108. package/dist/src/content/elements/utils/CSSSelectorGenerator.ts.js +0 -72
  109. package/dist/src/content/elements/utils/XPathGenerator.ts.js +0 -62
  110. package/dist/src/content/handler/ExternalMessageHandler.ts.js +0 -78
  111. package/dist/src/content/handler/InternalMessageHandler.ts.js +0 -40
  112. package/dist/src/content/kernel/MessageKernel.ts.js +0 -83
  113. package/dist/src/content/main.tsx-loader.js +0 -22
  114. package/dist/src/content/main.tsx.js +0 -50
  115. package/dist/src/content/utils/index.ts.js +0 -1
  116. package/dist/src/content/utils/synchronizedLock.ts.js +0 -35
  117. package/dist/src/popup/index.html +0 -12
  118. package/dist/src/sdk/types.ts.js +0 -150
  119. package/dist/src/types/internal-messages.ts.js +0 -27
  120. package/dist/src/workflow/context/execution-context/types.ts.js +0 -0
  121. package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--29d58732.js +0 -45
  122. package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--34285d49.js +0 -45
  123. package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--36a0c079.js +0 -45
  124. package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--7cce5f32.js +0 -45
  125. package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--8598b0e0.js +0 -45
  126. package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--9054997c.js +0 -45
  127. package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--a79cb78d.js +0 -45
  128. package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--af906259.js +0 -45
  129. package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--e041f26d.js +0 -45
  130. package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--e1405dc4.js +0 -45
  131. package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--e2a1f584.js +0 -45
  132. package/dist/vendor/.vite-deps-chunk-DC5AMYBS.js__v--87b685c1.js +0 -38
  133. package/dist/vendor/.vite-deps-chunk-EL3BNLGW.js__v--29d58732.js +0 -975
  134. package/dist/vendor/.vite-deps-chunk-EL3BNLGW.js__v--34285d49.js +0 -975
  135. package/dist/vendor/.vite-deps-chunk-EL3BNLGW.js__v--36a0c079.js +0 -975
  136. package/dist/vendor/.vite-deps-chunk-EL3BNLGW.js__v--7cce5f32.js +0 -975
  137. package/dist/vendor/.vite-deps-chunk-EL3BNLGW.js__v--8598b0e0.js +0 -975
  138. package/dist/vendor/.vite-deps-chunk-EL3BNLGW.js__v--a79cb78d.js +0 -975
  139. package/dist/vendor/.vite-deps-chunk-EL3BNLGW.js__v--af906259.js +0 -975
  140. package/dist/vendor/.vite-deps-chunk-EL3BNLGW.js__v--e041f26d.js +0 -975
  141. package/dist/vendor/.vite-deps-chunk-EL3BNLGW.js__v--e1405dc4.js +0 -975
  142. package/dist/vendor/.vite-deps-chunk-EL3BNLGW.js__v--e2a1f584.js +0 -975
  143. package/dist/vendor/.vite-deps-chunk-KDMJ4XM7.js__v--87b685c1.js +0 -4154
  144. package/dist/vendor/.vite-deps-chunk-MANNBT4V.js__v--87b685c1.js +0 -280
  145. package/dist/vendor/.vite-deps-chunk-NZP3G7XT.js__v--87b685c1.js +0 -975
  146. package/dist/vendor/.vite-deps-chunk-QIBDMRD4.js__v--36a0c079.js +0 -4158
  147. package/dist/vendor/.vite-deps-chunk-QIBDMRD4.js__v--8598b0e0.js +0 -4158
  148. package/dist/vendor/.vite-deps-chunk-QIBDMRD4.js__v--9054997c.js +0 -4158
  149. package/dist/vendor/.vite-deps-chunk-QIBDMRD4.js__v--a79cb78d.js +0 -4158
  150. package/dist/vendor/.vite-deps-chunk-QIBDMRD4.js__v--e041f26d.js +0 -4158
  151. package/dist/vendor/.vite-deps-chunk-QIBDMRD4.js__v--e2a1f584.js +0 -4158
  152. package/dist/vendor/.vite-deps-chunk-UW5CEYRC.js__v--29d58732.js +0 -4154
  153. package/dist/vendor/.vite-deps-chunk-UW5CEYRC.js__v--34285d49.js +0 -4154
  154. package/dist/vendor/.vite-deps-chunk-UW5CEYRC.js__v--7cce5f32.js +0 -4154
  155. package/dist/vendor/.vite-deps-chunk-UW5CEYRC.js__v--af906259.js +0 -4154
  156. package/dist/vendor/.vite-deps-chunk-UW5CEYRC.js__v--e1405dc4.js +0 -4154
  157. package/dist/vendor/.vite-deps-chunk-XHY3JSIG.js__v--29d58732.js +0 -280
  158. package/dist/vendor/.vite-deps-chunk-XHY3JSIG.js__v--34285d49.js +0 -280
  159. package/dist/vendor/.vite-deps-chunk-XHY3JSIG.js__v--36a0c079.js +0 -280
  160. package/dist/vendor/.vite-deps-chunk-XHY3JSIG.js__v--7cce5f32.js +0 -280
  161. package/dist/vendor/.vite-deps-chunk-XHY3JSIG.js__v--8598b0e0.js +0 -280
  162. package/dist/vendor/.vite-deps-chunk-XHY3JSIG.js__v--a79cb78d.js +0 -280
  163. package/dist/vendor/.vite-deps-chunk-XHY3JSIG.js__v--af906259.js +0 -280
  164. package/dist/vendor/.vite-deps-chunk-XHY3JSIG.js__v--e041f26d.js +0 -280
  165. package/dist/vendor/.vite-deps-chunk-XHY3JSIG.js__v--e1405dc4.js +0 -280
  166. package/dist/vendor/.vite-deps-chunk-XHY3JSIG.js__v--e2a1f584.js +0 -280
  167. package/dist/vendor/.vite-deps-jsonata.js__v--1f855851.js +0 -5761
  168. package/dist/vendor/.vite-deps-jsonata.js__v--34285d49.js +0 -5761
  169. package/dist/vendor/.vite-deps-jsonata.js__v--370b8ffe.js +0 -5761
  170. package/dist/vendor/.vite-deps-jsonata.js__v--7496ecd5.js +0 -5761
  171. package/dist/vendor/.vite-deps-jsonata.js__v--7cce5f32.js +0 -5761
  172. package/dist/vendor/.vite-deps-jsonata.js__v--8598b0e0.js +0 -5761
  173. package/dist/vendor/.vite-deps-jsonata.js__v--989ee283.js +0 -5761
  174. package/dist/vendor/.vite-deps-jsonata.js__v--aa4cf553.js +0 -5761
  175. package/dist/vendor/.vite-deps-jsonata.js__v--af906259.js +0 -5761
  176. package/dist/vendor/.vite-deps-jsonata.js__v--d602c657.js +0 -5761
  177. package/dist/vendor/.vite-deps-jsonata.js__v--e041f26d.js +0 -5761
  178. package/dist/vendor/.vite-deps-jsonata.js__v--e2a1f584.js +0 -5761
  179. package/dist/vendor/.vite-deps-react-dom.js__v--1217aa43.js +0 -6
  180. package/dist/vendor/.vite-deps-react-dom.js__v--34285d49.js +0 -6
  181. package/dist/vendor/.vite-deps-react-dom.js__v--36c31e85.js +0 -6
  182. package/dist/vendor/.vite-deps-react-dom.js__v--7cce5f32.js +0 -6
  183. package/dist/vendor/.vite-deps-react-dom.js__v--8313ef2c.js +0 -6
  184. package/dist/vendor/.vite-deps-react-dom.js__v--8598b0e0.js +0 -6
  185. package/dist/vendor/.vite-deps-react-dom.js__v--87af57af.js +0 -6
  186. package/dist/vendor/.vite-deps-react-dom.js__v--9967e564.js +0 -6
  187. package/dist/vendor/.vite-deps-react-dom.js__v--af906259.js +0 -6
  188. package/dist/vendor/.vite-deps-react-dom.js__v--e041f26d.js +0 -6
  189. package/dist/vendor/.vite-deps-react-dom.js__v--e2a1f584.js +0 -6
  190. package/dist/vendor/.vite-deps-react-dom_client.js__v--05e7db8c.js +0 -18108
  191. package/dist/vendor/.vite-deps-react-dom_client.js__v--34285d49.js +0 -18108
  192. package/dist/vendor/.vite-deps-react-dom_client.js__v--7cce5f32.js +0 -18108
  193. package/dist/vendor/.vite-deps-react-dom_client.js__v--8598b0e0.js +0 -18108
  194. package/dist/vendor/.vite-deps-react-dom_client.js__v--8ec6d0f4.js +0 -18108
  195. package/dist/vendor/.vite-deps-react-dom_client.js__v--a69c8f91.js +0 -18108
  196. package/dist/vendor/.vite-deps-react-dom_client.js__v--aaaed31d.js +0 -18108
  197. package/dist/vendor/.vite-deps-react-dom_client.js__v--af906259.js +0 -18108
  198. package/dist/vendor/.vite-deps-react-dom_client.js__v--e041f26d.js +0 -18108
  199. package/dist/vendor/.vite-deps-react-dom_client.js__v--e2a1f584.js +0 -18108
  200. package/dist/vendor/.vite-deps-react-dom_client.js__v--f80719e9.js +0 -18108
  201. package/dist/vendor/.vite-deps-react.js__v--1217aa43.js +0 -5
  202. package/dist/vendor/.vite-deps-react.js__v--34285d49.js +0 -5
  203. package/dist/vendor/.vite-deps-react.js__v--36c31e85.js +0 -5
  204. package/dist/vendor/.vite-deps-react.js__v--7cce5f32.js +0 -5
  205. package/dist/vendor/.vite-deps-react.js__v--8313ef2c.js +0 -5
  206. package/dist/vendor/.vite-deps-react.js__v--8598b0e0.js +0 -5
  207. package/dist/vendor/.vite-deps-react.js__v--87af57af.js +0 -5
  208. package/dist/vendor/.vite-deps-react.js__v--9967e564.js +0 -5
  209. package/dist/vendor/.vite-deps-react.js__v--af906259.js +0 -5
  210. package/dist/vendor/.vite-deps-react.js__v--e041f26d.js +0 -5
  211. package/dist/vendor/.vite-deps-react.js__v--e2a1f584.js +0 -5
  212. package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--1217aa43.js +0 -281
  213. package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--34285d49.js +0 -281
  214. package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--36c31e85.js +0 -281
  215. package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--7cce5f32.js +0 -281
  216. package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--8313ef2c.js +0 -281
  217. package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--8598b0e0.js +0 -281
  218. package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--87af57af.js +0 -281
  219. package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--9967e564.js +0 -281
  220. package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--af906259.js +0 -281
  221. package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--e041f26d.js +0 -281
  222. package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--e2a1f584.js +0 -281
  223. package/dist/vendor/.vite-deps-zod.js__v--34285d49.js +0 -222
  224. package/dist/vendor/.vite-deps-zod.js__v--6548a37a.js +0 -222
  225. package/dist/vendor/.vite-deps-zod.js__v--706a718e.js +0 -219
  226. package/dist/vendor/.vite-deps-zod.js__v--7cce5f32.js +0 -222
  227. package/dist/vendor/.vite-deps-zod.js__v--8598b0e0.js +0 -219
  228. package/dist/vendor/.vite-deps-zod.js__v--9e0f4cc1.js +0 -219
  229. package/dist/vendor/.vite-deps-zod.js__v--af906259.js +0 -222
  230. package/dist/vendor/.vite-deps-zod.js__v--b73c580c.js +0 -219
  231. package/dist/vendor/.vite-deps-zod.js__v--dc9842e6.js +0 -222
  232. package/dist/vendor/.vite-deps-zod.js__v--e041f26d.js +0 -219
  233. package/dist/vendor/.vite-deps-zod.js__v--e2a1f584.js +0 -219
  234. package/dist/vendor/.vite-deps-zod.js__v--e4714212.js +0 -222
  235. package/dist/vendor/crx-client-port.js +0 -66
  236. package/dist/vendor/crx-client-preamble.js +0 -4
  237. package/dist/vendor/react-refresh.js +0 -670
  238. package/dist/vendor/vite-client.js +0 -1134
  239. package/dist/vendor/vite-dist-client-env.mjs.js +0 -24
  240. package/dist/vendor/webcomponents-custom-elements.js +0 -47
@@ -1,114 +0,0 @@
1
- import z from "/vendor/.vite-deps-zod.js__v--34285d49.js";
2
- import { BaseBlockSchema } from "/src/blocks/types.ts.js";
3
- import { findElement } from "/src/content/elements/index.ts.js";
4
- import { CSSSelectorGenerator } from "/src/content/elements/utils/CSSSelectorGenerator.ts.js";
5
- import { XPathGenerator } from "/src/content/elements/utils/XPathGenerator.ts.js";
6
- export const GetElementDataBlockSchema = BaseBlockSchema.extend({
7
- name: z.literal("get-element-data"),
8
- includeText: z.boolean().optional(),
9
- includeTags: z.boolean().optional(),
10
- useTextContent: z.boolean().optional(),
11
- regex: z.string().optional(),
12
- prefixText: z.string().optional(),
13
- suffixText: z.string().optional(),
14
- attributes: z.array(z.string()).optional(),
15
- includeSelector: z.boolean().optional(),
16
- includeXPath: z.boolean().optional()
17
- });
18
- export function validateGetElementDataBlock(data) {
19
- return GetElementDataBlockSchema.parse(data);
20
- }
21
- export async function handlerGetElementData(data) {
22
- try {
23
- const {
24
- selector = "",
25
- includeText = true,
26
- includeTags = false,
27
- useTextContent = false,
28
- regex,
29
- prefixText = "",
30
- suffixText = "",
31
- attributes = [],
32
- includeSelector = false,
33
- includeXPath = false,
34
- findBy = "cssSelector",
35
- option
36
- } = data;
37
- if (!selector) {
38
- throw new Error("Selector is required for get-element-data block");
39
- }
40
- if (!includeText && attributes.length === 0) {
41
- throw new Error("Either includeText must be true or attributes must be provided");
42
- }
43
- const elements = await findElement({ selector, findBy, option });
44
- if (!elements) {
45
- return { data: Array.isArray(elements) ? [] : {} };
46
- }
47
- const extractElementData = createElementDataExtractor(
48
- includeText,
49
- includeTags,
50
- useTextContent,
51
- regex,
52
- prefixText,
53
- suffixText,
54
- attributes,
55
- includeSelector,
56
- includeXPath
57
- );
58
- if (Array.isArray(elements)) {
59
- const elementsData = elements.map(extractElementData);
60
- return { data: elementsData };
61
- } else {
62
- const elementData = extractElementData(elements);
63
- return { data: elementData };
64
- }
65
- } catch (error) {
66
- return {
67
- hasError: true,
68
- message: error instanceof Error ? error.message : "Unknown error in get-element-data handler",
69
- data: {}
70
- };
71
- }
72
- }
73
- function createElementDataExtractor(includeText, includeTags, useTextContent, regex, prefixText = "", suffixText = "", attributes = [], includeSelector = false, includeXPath = false) {
74
- return (element) => {
75
- const result = {};
76
- if (includeText) {
77
- let text = "";
78
- if (includeTags) {
79
- text = element.innerHTML;
80
- } else {
81
- text = useTextContent ? element.textContent || "" : element.innerText || "";
82
- }
83
- if (regex) {
84
- const regexPattern = new RegExp(regex, "g");
85
- const matches = text.match(regexPattern);
86
- text = matches ? matches.join(" ") : "";
87
- }
88
- if (text.trim()) {
89
- text = prefixText + text.trim() + suffixText;
90
- }
91
- result.text = text;
92
- }
93
- if (attributes.length > 0) {
94
- result.attributes = {};
95
- attributes.forEach((attrName) => {
96
- let attrValue = element.getAttribute(attrName);
97
- if (attrValue === null) {
98
- const childWithAttr = element.querySelector(`[${attrName}]`);
99
- if (childWithAttr) {
100
- attrValue = childWithAttr.getAttribute(attrName);
101
- }
102
- }
103
- result.attributes[attrName] = attrValue;
104
- });
105
- }
106
- if (includeSelector) {
107
- result.selector = CSSSelectorGenerator.generate(element);
108
- }
109
- if (includeXPath) {
110
- result.xpath = XPathGenerator.generate(element);
111
- }
112
- return result;
113
- };
114
- }
@@ -1,152 +0,0 @@
1
- import z from "/vendor/.vite-deps-zod.js__v--34285d49.js";
2
- import { BaseBlockSchema } from "/src/blocks/types.ts.js";
3
- import { findElement } from "/src/content/elements/index.ts.js";
4
- export const GetTextBlockSchema = BaseBlockSchema.extend({
5
- name: z.literal("get-text"),
6
- includeTags: z.boolean().optional(),
7
- useTextContent: z.boolean().optional(),
8
- regex: z.string().optional(),
9
- prefixText: z.string().optional(),
10
- suffixText: z.string().optional(),
11
- filterEmpty: z.boolean().optional(),
12
- scrollToCollect: z.boolean().optional(),
13
- scrollDistance: z.number().optional(),
14
- scrollWaitMs: z.number().optional(),
15
- maxScrollAttempts: z.number().optional()
16
- });
17
- export function validateGetTextBlock(data) {
18
- return GetTextBlockSchema.parse(data);
19
- }
20
- export async function handlerGetText(data) {
21
- try {
22
- const {
23
- selector = "",
24
- includeTags = false,
25
- useTextContent = false,
26
- regex,
27
- prefixText = "",
28
- suffixText = "",
29
- findBy = "cssSelector",
30
- option,
31
- filterEmpty = true,
32
- scrollToCollect = false,
33
- scrollDistance = 500,
34
- scrollWaitMs = 300,
35
- maxScrollAttempts = 100
36
- } = data;
37
- if (!selector) {
38
- throw new Error("Selector is required for get-text block");
39
- }
40
- if (scrollToCollect && option?.multiple) {
41
- return await collectWithScroll({
42
- selector,
43
- findBy,
44
- option,
45
- includeTags,
46
- useTextContent,
47
- regex,
48
- prefixText,
49
- suffixText,
50
- filterEmpty,
51
- scrollDistance,
52
- scrollWaitMs,
53
- maxScrollAttempts
54
- });
55
- }
56
- const elements = await findElement({ selector, findBy, option });
57
- if (!elements) {
58
- return { data: "" };
59
- }
60
- const extractText = createTextExtractor(
61
- includeTags,
62
- useTextContent,
63
- regex,
64
- prefixText,
65
- suffixText
66
- );
67
- if (Array.isArray(elements)) {
68
- const texts = elements.map(extractText);
69
- const filteredTexts = filterEmpty ? texts.filter((text) => text.trim() !== "") : texts;
70
- return { data: filteredTexts };
71
- } else {
72
- const text = extractText(elements);
73
- return { data: text };
74
- }
75
- } catch (error) {
76
- return {
77
- hasError: true,
78
- message: error instanceof Error ? error.message : "Unknown error in get-text handler",
79
- data: ""
80
- };
81
- }
82
- }
83
- async function collectWithScroll(params) {
84
- const {
85
- selector,
86
- findBy,
87
- option,
88
- includeTags,
89
- useTextContent,
90
- regex,
91
- prefixText,
92
- suffixText,
93
- filterEmpty,
94
- scrollDistance,
95
- scrollWaitMs,
96
- maxScrollAttempts
97
- } = params;
98
- const extractText = createTextExtractor(includeTags, useTextContent, regex, prefixText, suffixText);
99
- const collectedTexts = /* @__PURE__ */ new Set();
100
- let scrollAttempts = 0;
101
- let consecutiveNoNewData = 0;
102
- const maxConsecutiveNoNewData = 5;
103
- while (scrollAttempts < maxScrollAttempts) {
104
- const elements = await findElement({ selector, findBy, option });
105
- if (elements && Array.isArray(elements)) {
106
- const beforeSize = collectedTexts.size;
107
- elements.forEach((element) => {
108
- const text = extractText(element);
109
- if (!filterEmpty || text.trim() !== "") {
110
- collectedTexts.add(text);
111
- }
112
- });
113
- const afterSize = collectedTexts.size;
114
- if (afterSize === beforeSize) {
115
- consecutiveNoNewData++;
116
- if (consecutiveNoNewData >= maxConsecutiveNoNewData) {
117
- break;
118
- }
119
- } else {
120
- consecutiveNoNewData = 0;
121
- }
122
- }
123
- const currentScrollTop = window.pageYOffset || document.documentElement.scrollTop;
124
- window.scrollBy({ top: scrollDistance, behavior: "auto" });
125
- await new Promise((resolve) => setTimeout(resolve, scrollWaitMs));
126
- const newScrollTop = window.pageYOffset || document.documentElement.scrollTop;
127
- if (newScrollTop === currentScrollTop) {
128
- break;
129
- }
130
- scrollAttempts++;
131
- }
132
- return { data: Array.from(collectedTexts) };
133
- }
134
- function createTextExtractor(includeTags, useTextContent, regex, prefixText = "", suffixText = "") {
135
- return (element) => {
136
- let text = "";
137
- if (includeTags) {
138
- text = element.innerHTML;
139
- } else {
140
- text = useTextContent ? element.textContent || "" : element.innerText || "";
141
- }
142
- if (regex) {
143
- const regexPattern = new RegExp(regex, "g");
144
- const matches = text.match(regexPattern);
145
- text = matches ? matches.join(" ") : "";
146
- }
147
- if (text.trim()) {
148
- text = prefixText + text.trim() + suffixText;
149
- }
150
- return text;
151
- };
152
- }
@@ -1,52 +0,0 @@
1
- import { findElement } from "/src/content/elements/index.ts.js";
2
- import { BaseBlockSchema } from "/src/blocks/types.ts.js";
3
- import z from "/vendor/.vite-deps-zod.js__v--34285d49.js";
4
- export const GetValueFormsBlockSchema = BaseBlockSchema.extend({
5
- name: z.literal("get-value-form"),
6
- type: z.enum(["text-field", "select", "checkbox"]).optional()
7
- });
8
- export function validateGetValueFormsBlock(data) {
9
- return GetValueFormsBlockSchema.parse(data);
10
- }
11
- export async function handlerGetValueForm(data) {
12
- try {
13
- const { selector = "", type = "text-field", findBy = "cssSelector" } = data;
14
- if (!selector) {
15
- throw new Error("Selector is required for get-value-form block");
16
- }
17
- const element = await findElement({ selector, findBy, option: data.option });
18
- if (!element) {
19
- throw new Error("Form element not found");
20
- }
21
- const value = getFormValue(element, type);
22
- return { data: value };
23
- } catch (error) {
24
- return {
25
- hasError: true,
26
- message: error instanceof Error ? error.message : "Unknown error in get-value-form handler",
27
- data: null
28
- };
29
- }
30
- }
31
- function getFormValue(element, type) {
32
- switch (type) {
33
- case "text-field":
34
- if (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {
35
- return element.value;
36
- }
37
- break;
38
- case "select":
39
- if (element instanceof HTMLSelectElement) {
40
- return element.value;
41
- }
42
- break;
43
- case "checkbox":
44
- if (element instanceof HTMLInputElement && element.type === "checkbox") {
45
- return element.checked;
46
- }
47
- break;
48
- default:
49
- throw new Error(`Unsupported form element type: ${type}`);
50
- }
51
- throw new Error(`Invalid element type for ${type}`);
52
- }
@@ -1,89 +0,0 @@
1
- import z from "/vendor/.vite-deps-zod.js__v--34285d49.js";
2
- export const KeypressBlockSchema = z.object({
3
- name: z.literal("keypress"),
4
- key: z.string(),
5
- code: z.string().optional(),
6
- keyCode: z.number().optional(),
7
- modifiers: z.array(z.enum(["Alt", "Control", "Meta", "Shift"])).optional()
8
- });
9
- export function validateKeypressBlock(data) {
10
- return KeypressBlockSchema.parse(data);
11
- }
12
- export async function handlerKeypress(data) {
13
- try {
14
- const { key, code, keyCode, modifiers = [] } = data;
15
- await simulateKeypress(key, code, keyCode, modifiers);
16
- return { data: true };
17
- } catch (error) {
18
- console.log(error);
19
- return {
20
- hasError: true,
21
- message: error instanceof Error ? error.message : "Unknown error in keypress handler",
22
- data: false
23
- };
24
- }
25
- }
26
- async function simulateKeypress(key, code, keyCode, modifiers = []) {
27
- try {
28
- const response = await chrome.runtime.sendMessage({
29
- type: "CDP_KEYPRESS",
30
- data: {
31
- key,
32
- code: code || key,
33
- keyCode: keyCode || getKeyCodeFromKey(key),
34
- modifiers
35
- }
36
- });
37
- if (response && !response.$isError) {
38
- console.log("[Keypress] CDP keypress successful:", response);
39
- } else {
40
- throw new Error(response?.message || "CDP keypress failed");
41
- }
42
- } catch (error) {
43
- console.error("[Keypress] CDP keypress failed, falling back to native dispatch:", error);
44
- const keydownEvent = new KeyboardEvent("keydown", {
45
- key,
46
- code: code || key,
47
- keyCode: keyCode || getKeyCodeFromKey(key),
48
- bubbles: true,
49
- cancelable: true,
50
- ...getModifierStates(modifiers)
51
- });
52
- const keyupEvent = new KeyboardEvent("keyup", {
53
- key,
54
- code: code || key,
55
- keyCode: keyCode || getKeyCodeFromKey(key),
56
- bubbles: true,
57
- cancelable: true,
58
- ...getModifierStates(modifiers)
59
- });
60
- document.dispatchEvent(keydownEvent);
61
- await new Promise((resolve) => setTimeout(resolve, 10));
62
- document.dispatchEvent(keyupEvent);
63
- }
64
- await new Promise((resolve) => setTimeout(resolve, 50));
65
- }
66
- function getKeyCodeFromKey(key) {
67
- const keyCodeMap = {
68
- "Escape": 27,
69
- "Enter": 13,
70
- "Tab": 9,
71
- "Backspace": 8,
72
- "Delete": 46,
73
- "ArrowUp": 38,
74
- "ArrowDown": 40,
75
- "ArrowLeft": 37,
76
- "ArrowRight": 39,
77
- "Space": 32,
78
- " ": 32
79
- };
80
- return keyCodeMap[key] || 0;
81
- }
82
- function getModifierStates(modifiers) {
83
- return {
84
- altKey: modifiers.includes("Alt"),
85
- ctrlKey: modifiers.includes("Control"),
86
- metaKey: modifiers.includes("Meta"),
87
- shiftKey: modifiers.includes("Shift")
88
- };
89
- }
@@ -1,48 +0,0 @@
1
- import z from "/vendor/.vite-deps-zod.js__v--34285d49.js";
2
- export const NavigateBlockSchema = z.object({
3
- name: z.literal("navigate"),
4
- url: z.string().url("Valid URL is required"),
5
- waitForLoad: z.boolean().optional(),
6
- timeout: z.number().min(0).optional()
7
- });
8
- export function validateNavigateBlock(data) {
9
- return NavigateBlockSchema.parse(data);
10
- }
11
- export async function handlerNavigate(data) {
12
- try {
13
- const { url, waitForLoad = true, timeout = 3e4 } = data;
14
- console.log(`[Navigate] Navigating to: ${url}`);
15
- if (waitForLoad) {
16
- return new Promise((resolve, reject) => {
17
- const timeoutId = setTimeout(() => {
18
- reject(new Error(`Navigation timeout after ${timeout}ms`));
19
- }, timeout);
20
- const handleLoad = () => {
21
- clearTimeout(timeoutId);
22
- window.removeEventListener("load", handleLoad);
23
- console.log(`[Navigate] Page loaded: ${url}`);
24
- resolve({ data: true });
25
- };
26
- if (document.readyState === "complete") {
27
- clearTimeout(timeoutId);
28
- console.log(`[Navigate] Page already loaded: ${url}`);
29
- resolve({ data: true });
30
- } else {
31
- window.addEventListener("load", handleLoad);
32
- }
33
- window.location.href = url;
34
- });
35
- } else {
36
- window.location.href = url;
37
- console.log(`[Navigate] Navigation initiated (no wait): ${url}`);
38
- return { data: true };
39
- }
40
- } catch (error) {
41
- console.error("[Navigate] Error:", error);
42
- return {
43
- hasError: true,
44
- message: error instanceof Error ? error.message : "Unknown error in navigate handler",
45
- data: false
46
- };
47
- }
48
- }
@@ -1,61 +0,0 @@
1
- import z from "/vendor/.vite-deps-zod.js__v--34285d49.js";
2
- export const NetworkCatchBlockSchema = z.object({
3
- name: z.literal("network-catch"),
4
- urlPattern: z.string().optional(),
5
- method: z.enum(["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"]).optional(),
6
- status: z.union([
7
- z.number(),
8
- z.object({
9
- min: z.number().optional(),
10
- max: z.number().optional()
11
- })
12
- ]).optional(),
13
- mimeType: z.string().optional(),
14
- requestBodyPattern: z.union([
15
- z.string(),
16
- z.record(z.any())
17
- ]).optional(),
18
- waitForRequest: z.boolean().optional(),
19
- waitTimeout: z.number().min(0).optional(),
20
- returnAll: z.boolean().optional(),
21
- includeHeaders: z.boolean().optional()
22
- });
23
- export function validateNetworkCatchBlock(data) {
24
- return NetworkCatchBlockSchema.parse(data);
25
- }
26
- export async function handlerNetworkCatch(data) {
27
- try {
28
- console.log("[NetworkCatchBlock] Fetching network requests with pattern:", data.urlPattern);
29
- const response = await chrome.runtime.sendMessage({
30
- type: "NETWORK_CATCH",
31
- data: {
32
- urlPattern: data.urlPattern,
33
- method: data.method,
34
- status: data.status,
35
- mimeType: data.mimeType,
36
- requestBodyPattern: data.requestBodyPattern,
37
- waitForRequest: data.waitForRequest || false,
38
- waitTimeout: data.waitTimeout || 5e3,
39
- returnAll: data.returnAll || false,
40
- includeHeaders: data.includeHeaders || false
41
- }
42
- });
43
- if (response.$isError) {
44
- return {
45
- hasError: true,
46
- message: response.message || "Failed to fetch network data",
47
- data: void 0
48
- };
49
- }
50
- console.log("[NetworkCatchBlock] Retrieved network data:", response.data);
51
- return {
52
- data: response.data
53
- };
54
- } catch (error) {
55
- console.error("[NetworkCatchBlock] Error:", error);
56
- return {
57
- hasError: true,
58
- message: error instanceof Error ? error.message : "Failed to fetch network data"
59
- };
60
- }
61
- }
@@ -1,35 +0,0 @@
1
- import { findElement } from "/src/content/elements/index.ts.js";
2
- import { BaseBlockSchema } from "/src/blocks/types.ts.js";
3
- import z from "/vendor/.vite-deps-zod.js__v--34285d49.js";
4
- export const SaveAssetsBlockSchema = BaseBlockSchema.extend({
5
- name: z.literal("save-assets")
6
- });
7
- export function validateSaveAssetsBlock(data) {
8
- return SaveAssetsBlockSchema.parse(data);
9
- }
10
- export async function handlerSaveAssets(data) {
11
- try {
12
- const { selector = "img, audio, video, source", findBy = "cssSelector", option } = data;
13
- const elements = await findElement({ selector, findBy, option });
14
- if (!elements || !Array.isArray(elements)) {
15
- return { data: [] };
16
- }
17
- const assetUrls = [];
18
- elements.forEach((element) => {
19
- let src = "";
20
- if (element instanceof HTMLImageElement || element instanceof HTMLAudioElement || element instanceof HTMLVideoElement || element instanceof HTMLSourceElement) {
21
- src = element.src;
22
- }
23
- if (src && !assetUrls.includes(src)) {
24
- assetUrls.push(src);
25
- }
26
- });
27
- return { data: assetUrls };
28
- } catch (error) {
29
- return {
30
- hasError: true,
31
- message: error instanceof Error ? error.message : "Unknown error in save-assets handler",
32
- data: null
33
- };
34
- }
35
- }
@@ -1,111 +0,0 @@
1
- import z from "/vendor/.vite-deps-zod.js__v--34285d49.js";
2
- import { BaseBlockSchema } from "/src/blocks/types.ts.js";
3
- import { findElement } from "/src/content/elements/index.ts.js";
4
- export const ScrollBlockSchema = BaseBlockSchema.extend({
5
- name: z.literal("scroll"),
6
- scrollType: z.enum(["toElement", "toBottom", "byDistance", "untilLoaded"]).optional(),
7
- distance: z.number().optional(),
8
- behavior: z.enum(["auto", "smooth"]).optional(),
9
- maxScrolls: z.number().optional(),
10
- waitAfterScroll: z.number().optional()
11
- });
12
- export function validateScrollBlock(data) {
13
- return ScrollBlockSchema.parse(data);
14
- }
15
- export async function handlerScroll(data) {
16
- try {
17
- const {
18
- selector = "",
19
- scrollType = "toBottom",
20
- distance = 500,
21
- behavior = "smooth",
22
- maxScrolls = 50,
23
- waitAfterScroll = 300,
24
- findBy = "cssSelector",
25
- option
26
- } = data;
27
- switch (scrollType) {
28
- case "toElement":
29
- if (!selector) {
30
- throw new Error("Selector is required for toElement scroll type");
31
- }
32
- return await scrollToElement(selector, findBy, option, behavior);
33
- case "toBottom":
34
- return await scrollToBottom(behavior, waitAfterScroll);
35
- case "byDistance":
36
- return await scrollByDistance(distance, behavior);
37
- case "untilLoaded":
38
- return await scrollUntilLoaded(maxScrolls, distance, behavior, waitAfterScroll);
39
- default:
40
- throw new Error(`Unknown scroll type: ${scrollType}`);
41
- }
42
- } catch (error) {
43
- return {
44
- hasError: true,
45
- message: error instanceof Error ? error.message : "Unknown error in scroll handler",
46
- data: false
47
- };
48
- }
49
- }
50
- async function scrollToElement(selector, findBy, option, behavior) {
51
- const element = await findElement({ selector, findBy, option });
52
- if (!element) {
53
- return {
54
- hasError: true,
55
- message: "Element not found for scrolling",
56
- data: false
57
- };
58
- }
59
- const targetElement = Array.isArray(element) ? element[0] : element;
60
- targetElement.scrollIntoView({ behavior, block: "center" });
61
- return { data: true };
62
- }
63
- async function scrollToBottom(behavior, waitAfterScroll) {
64
- let lastHeight = document.body.scrollHeight;
65
- let attempts = 0;
66
- const maxAttempts = 50;
67
- while (attempts < maxAttempts) {
68
- window.scrollTo({
69
- top: document.body.scrollHeight,
70
- behavior
71
- });
72
- await new Promise((resolve) => setTimeout(resolve, waitAfterScroll));
73
- const newHeight = document.body.scrollHeight;
74
- if (newHeight === lastHeight) {
75
- break;
76
- }
77
- lastHeight = newHeight;
78
- attempts++;
79
- }
80
- return { data: true };
81
- }
82
- async function scrollByDistance(distance, behavior) {
83
- window.scrollBy({
84
- top: distance,
85
- behavior
86
- });
87
- return { data: true };
88
- }
89
- async function scrollUntilLoaded(maxScrolls, distance, behavior, waitAfterScroll) {
90
- let scrollCount = 0;
91
- let lastHeight = document.body.scrollHeight;
92
- while (scrollCount < maxScrolls) {
93
- window.scrollBy({
94
- top: distance,
95
- behavior
96
- // Use provided behavior
97
- });
98
- await new Promise((resolve) => setTimeout(resolve, waitAfterScroll));
99
- const newHeight = document.body.scrollHeight;
100
- const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
101
- const windowHeight = window.innerHeight;
102
- if (scrollTop + windowHeight >= newHeight - 10) {
103
- if (newHeight === lastHeight) {
104
- break;
105
- }
106
- }
107
- lastHeight = newHeight;
108
- scrollCount++;
109
- }
110
- return { data: true };
111
- }