scordi-extension 1.14.4 → 1.14.5

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 (75) hide show
  1. package/dist/sdk/index.js +605 -587
  2. package/package.json +2 -2
  3. package/dist/.vite/manifest.json +0 -67
  4. package/dist/assets/DataExtractBlock-B7AuVonx.js +0 -6
  5. package/dist/assets/index-B9PKMhAi.js +0 -6
  6. package/dist/assets/index-BAWpTgrx.js +0 -4
  7. package/dist/assets/index-CMlx_xZE.css +0 -1
  8. package/dist/assets/index-CZjAbH8z.js +0 -1
  9. package/dist/assets/index-DkFIvNAm.css +0 -1
  10. package/dist/assets/index-r5QRyJ4m.js +0 -1
  11. package/dist/assets/index.html-BIbPySIb.js +0 -74
  12. package/dist/assets/index.html-cr-_Qdxq.js +0 -49
  13. package/dist/assets/index.ts-BqxJYCmp.js +0 -160
  14. package/dist/assets/index.ts-Yg98L0Rk.js +0 -158
  15. package/dist/assets/internal-messages-Drf0Gb9U.js +0 -1
  16. package/dist/assets/loading-page-1924caaa.js +0 -51
  17. package/dist/assets/main.tsx-BEyI95mZ.js +0 -2
  18. package/dist/assets/main.tsx-BKzdlur-.js +0 -2
  19. package/dist/assets/main.tsx-CiPjkJNz.js +0 -2
  20. package/dist/assets/main.tsx-loader-BYP9L25W.js +0 -13
  21. package/dist/assets/main.tsx-loader-CRGmwXNh.js +0 -13
  22. package/dist/assets/main.tsx-loader-FYb0LhDu.js +0 -13
  23. package/dist/assets/schemas-C8r0jYHO.js +0 -21
  24. package/dist/assets/types-oHwqLVs0.js +0 -1
  25. package/dist/logo.png +0 -0
  26. package/dist/manifest.json +0 -58
  27. package/dist/public/logo.png +0 -0
  28. package/dist/service-worker-loader.js +0 -1
  29. package/dist/src/blocks/AiParseDataBlock.ts.js +0 -101
  30. package/dist/src/blocks/ClearValueFormBlock.ts.js +0 -55
  31. package/dist/src/blocks/DataExtractBlock.ts.js +0 -28
  32. package/dist/src/blocks/ElementExistsBlock.ts.js +0 -26
  33. package/dist/src/blocks/EventClickBlock.ts.js +0 -143
  34. package/dist/src/blocks/FetchApiBlock.ts.js +0 -50
  35. package/dist/src/blocks/GetAttributeValueBlock.ts.js +0 -33
  36. package/dist/src/blocks/GetElementDataBlock.ts.js +0 -114
  37. package/dist/src/blocks/GetTextBlock.ts.js +0 -152
  38. package/dist/src/blocks/GetValueFormBlock.ts.js +0 -52
  39. package/dist/src/blocks/KeypressBlock.ts.js +0 -89
  40. package/dist/src/blocks/SaveAssetsBlock.ts.js +0 -35
  41. package/dist/src/blocks/ScrollBlock.ts.js +0 -111
  42. package/dist/src/blocks/SetValueFormBlock.ts.js +0 -56
  43. package/dist/src/blocks/WaitBlock.ts.js +0 -24
  44. package/dist/src/blocks/index.ts.js +0 -163
  45. package/dist/src/blocks/types.ts.js +0 -11
  46. package/dist/src/content/elements/finders/CssSelector.ts.js +0 -51
  47. package/dist/src/content/elements/finders/ElementSelector.ts.js +0 -20
  48. package/dist/src/content/elements/finders/IframeSelector.ts.js +0 -32
  49. package/dist/src/content/elements/finders/ShadowDOMSelector.ts.js +0 -38
  50. package/dist/src/content/elements/finders/XPathFinder.ts.js +0 -32
  51. package/dist/src/content/elements/index.ts.js +0 -26
  52. package/dist/src/content/elements/utils/CSSSelectorGenerator.ts.js +0 -72
  53. package/dist/src/content/elements/utils/XPathGenerator.ts.js +0 -62
  54. package/dist/src/content/handler/ExternalMessageHandler.ts.js +0 -78
  55. package/dist/src/content/handler/InternalMessageHandler.ts.js +0 -18
  56. package/dist/src/content/kernel/MessageKernel.ts.js +0 -83
  57. package/dist/src/content/main.tsx-loader.js +0 -22
  58. package/dist/src/content/main.tsx.js +0 -13
  59. package/dist/src/content/utils/index.ts.js +0 -1
  60. package/dist/src/content/utils/synchronizedLock.ts.js +0 -35
  61. package/dist/src/popup/index.html +0 -11
  62. package/dist/src/types/internal-messages.ts.js +0 -15
  63. package/dist/vendor/.vite-deps-chunk-PR4QN5HX.js__v--57e88532.js +0 -42
  64. package/dist/vendor/.vite-deps-chunk-PR4QN5HX.js__v--ba9031c0.js +0 -42
  65. package/dist/vendor/.vite-deps-chunk-VBBIEGWT.js__v--57e88532.js +0 -4156
  66. package/dist/vendor/.vite-deps-jsonata.js__v--5da6ca24.js +0 -5761
  67. package/dist/vendor/.vite-deps-jsonata.js__v--ba9031c0.js +0 -5761
  68. package/dist/vendor/.vite-deps-zod.js__v--13965f26.js +0 -219
  69. package/dist/vendor/.vite-deps-zod.js__v--ba9031c0.js +0 -12651
  70. package/dist/vendor/crx-client-port.js +0 -66
  71. package/dist/vendor/crx-client-preamble.js +0 -4
  72. package/dist/vendor/react-refresh.js +0 -670
  73. package/dist/vendor/vite-client.js +0 -1098
  74. package/dist/vendor/vite-dist-client-env.mjs.js +0 -19
  75. package/dist/vendor/webcomponents-custom-elements.js +0 -47
@@ -1,152 +0,0 @@
1
- import z from "/vendor/.vite-deps-zod.js__v--13965f26.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--13965f26.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--13965f26.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,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--13965f26.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--13965f26.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
- }
@@ -1,56 +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--13965f26.js";
4
- export const SetValueFormsBlockSchema = BaseBlockSchema.extend({
5
- name: z.literal("set-value-form"),
6
- setValue: z.string(),
7
- type: z.enum(["text-field", "select", "checkbox"]).optional()
8
- });
9
- export function validateSetValueFormsBlock(data) {
10
- return SetValueFormsBlockSchema.parse(data);
11
- }
12
- export async function handlerSetValueForm(data) {
13
- try {
14
- const { selector = "", setValue, type = "text-field", findBy = "cssSelector" } = data;
15
- if (!selector) {
16
- throw new Error("Selector is required for set-value-form block");
17
- }
18
- const element = await findElement({ selector, findBy, option: data.option });
19
- if (!element) {
20
- throw new Error("Form element not found");
21
- }
22
- setFormValue(element, setValue, type);
23
- return { data: "Form element updated successfully" };
24
- } catch (error) {
25
- return {
26
- hasError: true,
27
- message: error instanceof Error ? error.message : "Unknown error in set-value-form handler",
28
- data: null
29
- };
30
- }
31
- }
32
- function setFormValue(element, value, type) {
33
- switch (type) {
34
- case "text-field":
35
- if (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {
36
- element.value = value;
37
- element.dispatchEvent(new Event("input", { bubbles: true }));
38
- element.dispatchEvent(new Event("change", { bubbles: true }));
39
- }
40
- break;
41
- case "select":
42
- if (element instanceof HTMLSelectElement) {
43
- element.value = value;
44
- element.dispatchEvent(new Event("change", { bubbles: true }));
45
- }
46
- break;
47
- case "checkbox":
48
- if (element instanceof HTMLInputElement && element.type === "checkbox") {
49
- element.checked = value === "true" || value === "checked";
50
- element.dispatchEvent(new Event("change", { bubbles: true }));
51
- }
52
- break;
53
- default:
54
- throw new Error(`Unsupported form element type: ${type}`);
55
- }
56
- }
@@ -1,24 +0,0 @@
1
- import z from "/vendor/.vite-deps-zod.js__v--13965f26.js";
2
- export const WaitBlockSchema = z.object({
3
- name: z.literal("wait"),
4
- duration: z.number().min(0)
5
- });
6
- export function validateWaitBlock(data) {
7
- return WaitBlockSchema.parse(data);
8
- }
9
- export async function handlerWait(data) {
10
- try {
11
- const { duration } = data;
12
- console.log(`[Wait] Waiting for ${duration}ms...`);
13
- await new Promise((resolve) => setTimeout(resolve, duration));
14
- console.log(`[Wait] Wait completed after ${duration}ms`);
15
- return { data: true };
16
- } catch (error) {
17
- console.log(error);
18
- return {
19
- hasError: true,
20
- message: error instanceof Error ? error.message : "Unknown error in wait handler",
21
- data: false
22
- };
23
- }
24
- }
@@ -1,163 +0,0 @@
1
- export { BaseBlockSchema } from "/src/blocks/types.ts.js";
2
- export { createSchema, createArraySchema, Schema } from "/src/blocks/AiParseDataBlock.ts.js";
3
- export { GetTextBlockSchema } from "/src/blocks/GetTextBlock.ts.js";
4
- export { GetAttributeValueBlockSchema } from "/src/blocks/GetAttributeValueBlock.ts.js";
5
- export { GetValueFormsBlockSchema } from "/src/blocks/GetValueFormBlock.ts.js";
6
- export { SetValueFormsBlockSchema } from "/src/blocks/SetValueFormBlock.ts.js";
7
- export { ClearValueFormsBlockSchema } from "/src/blocks/ClearValueFormBlock.ts.js";
8
- export { ElementExistsBlockSchema } from "/src/blocks/ElementExistsBlock.ts.js";
9
- export { EventClickBlockSchema } from "/src/blocks/EventClickBlock.ts.js";
10
- export { KeypressBlockSchema } from "/src/blocks/KeypressBlock.ts.js";
11
- export { WaitBlockSchema } from "/src/blocks/WaitBlock.ts.js";
12
- export { SaveAssetsBlockSchema } from "/src/blocks/SaveAssetsBlock.ts.js";
13
- export { GetElementDataBlockSchema } from "/src/blocks/GetElementDataBlock.ts.js";
14
- export { ScrollBlockSchema } from "/src/blocks/ScrollBlock.ts.js";
15
- export { AiParseDataBlockSchema } from "/src/blocks/AiParseDataBlock.ts.js";
16
- export { FetchApiBlockSchema } from "/src/blocks/FetchApiBlock.ts.js";
17
- export { DataExtractBlockSchema } from "/src/blocks/DataExtractBlock.ts.js";
18
- import { handlerGetText, validateGetTextBlock } from "/src/blocks/GetTextBlock.ts.js";
19
- import {
20
- handlerGetAttributeValue,
21
- validateGetAttributeValueBlock
22
- } from "/src/blocks/GetAttributeValueBlock.ts.js";
23
- import {
24
- handlerGetValueForm,
25
- validateGetValueFormsBlock
26
- } from "/src/blocks/GetValueFormBlock.ts.js";
27
- import {
28
- handlerSetValueForm,
29
- validateSetValueFormsBlock
30
- } from "/src/blocks/SetValueFormBlock.ts.js";
31
- import {
32
- handlerClearValueForm,
33
- validateClearValueFormsBlock
34
- } from "/src/blocks/ClearValueFormBlock.ts.js";
35
- import {
36
- handlerElementExists,
37
- validateElementExistsBlock
38
- } from "/src/blocks/ElementExistsBlock.ts.js";
39
- import { handlerEventClick, validateEventClickBlock } from "/src/blocks/EventClickBlock.ts.js";
40
- import { handlerKeypress, validateKeypressBlock } from "/src/blocks/KeypressBlock.ts.js";
41
- import { handlerWait, validateWaitBlock } from "/src/blocks/WaitBlock.ts.js";
42
- import { handlerSaveAssets, validateSaveAssetsBlock } from "/src/blocks/SaveAssetsBlock.ts.js";
43
- import {
44
- handlerGetElementData,
45
- validateGetElementDataBlock
46
- } from "/src/blocks/GetElementDataBlock.ts.js";
47
- import { handlerScroll, validateScrollBlock } from "/src/blocks/ScrollBlock.ts.js";
48
- import { handlerAiParseData, validateAiParseDataBlock } from "/src/blocks/AiParseDataBlock.ts.js";
49
- import { handlerFetchApi, validateFetchApiBlock } from "/src/blocks/FetchApiBlock.ts.js";
50
- import { handlerDataExtract, validateDataExtractBlock } from "/src/blocks/DataExtractBlock.ts.js";
51
- import { GetTextBlockSchema as GetTextBlockSchema2 } from "/src/blocks/GetTextBlock.ts.js";
52
- import { GetAttributeValueBlockSchema as GetAttributeValueBlockSchema2 } from "/src/blocks/GetAttributeValueBlock.ts.js";
53
- import { GetValueFormsBlockSchema as GetValueFormsBlockSchema2 } from "/src/blocks/GetValueFormBlock.ts.js";
54
- import { SetValueFormsBlockSchema as SetValueFormsBlockSchema2 } from "/src/blocks/SetValueFormBlock.ts.js";
55
- import { ClearValueFormsBlockSchema as ClearValueFormsBlockSchema2 } from "/src/blocks/ClearValueFormBlock.ts.js";
56
- import { ElementExistsBlockSchema as ElementExistsBlockSchema2 } from "/src/blocks/ElementExistsBlock.ts.js";
57
- import { EventClickBlockSchema as EventClickBlockSchema2 } from "/src/blocks/EventClickBlock.ts.js";
58
- import { KeypressBlockSchema as KeypressBlockSchema2 } from "/src/blocks/KeypressBlock.ts.js";
59
- import { WaitBlockSchema as WaitBlockSchema2 } from "/src/blocks/WaitBlock.ts.js";
60
- import { SaveAssetsBlockSchema as SaveAssetsBlockSchema2 } from "/src/blocks/SaveAssetsBlock.ts.js";
61
- import { GetElementDataBlockSchema as GetElementDataBlockSchema2 } from "/src/blocks/GetElementDataBlock.ts.js";
62
- import { ScrollBlockSchema as ScrollBlockSchema2 } from "/src/blocks/ScrollBlock.ts.js";
63
- import { AiParseDataBlockSchema as AiParseDataBlockSchema2 } from "/src/blocks/AiParseDataBlock.ts.js";
64
- import { FetchApiBlockSchema as FetchApiBlockSchema2 } from "/src/blocks/FetchApiBlock.ts.js";
65
- import { DataExtractBlockSchema as DataExtractBlockSchema2 } from "/src/blocks/DataExtractBlock.ts.js";
66
- export const AllBlockSchemas = {
67
- "get-text": GetTextBlockSchema2,
68
- "attribute-value": GetAttributeValueBlockSchema2,
69
- "get-value-form": GetValueFormsBlockSchema2,
70
- "set-value-form": SetValueFormsBlockSchema2,
71
- "clear-value-form": ClearValueFormsBlockSchema2,
72
- "element-exists": ElementExistsBlockSchema2,
73
- "event-click": EventClickBlockSchema2,
74
- "keypress": KeypressBlockSchema2,
75
- "wait": WaitBlockSchema2,
76
- "save-assets": SaveAssetsBlockSchema2,
77
- "get-element-data": GetElementDataBlockSchema2,
78
- "scroll": ScrollBlockSchema2,
79
- "ai-parse-data": AiParseDataBlockSchema2,
80
- "fetch-api": FetchApiBlockSchema2,
81
- "data-extract": DataExtractBlockSchema2
82
- };
83
- export class BlockHandler {
84
- // Implementation
85
- static async executeBlock(block) {
86
- try {
87
- switch (block.name) {
88
- case "get-text": {
89
- const validatedBlock = validateGetTextBlock(block);
90
- return await handlerGetText(validatedBlock);
91
- }
92
- case "attribute-value": {
93
- const validatedBlock = validateGetAttributeValueBlock(block);
94
- return await handlerGetAttributeValue(validatedBlock);
95
- }
96
- case "get-value-form": {
97
- const validatedBlock = validateGetValueFormsBlock(block);
98
- return await handlerGetValueForm(validatedBlock);
99
- }
100
- case "set-value-form": {
101
- const validatedBlock = validateSetValueFormsBlock(block);
102
- return await handlerSetValueForm(validatedBlock);
103
- }
104
- case "clear-value-form": {
105
- const validatedBlock = validateClearValueFormsBlock(block);
106
- return await handlerClearValueForm(validatedBlock);
107
- }
108
- case "element-exists": {
109
- const validatedBlock = validateElementExistsBlock(block);
110
- return await handlerElementExists(validatedBlock);
111
- }
112
- case "event-click": {
113
- const validatedBlock = validateEventClickBlock(block);
114
- return await handlerEventClick(validatedBlock);
115
- }
116
- case "keypress": {
117
- const validatedBlock = validateKeypressBlock(block);
118
- return await handlerKeypress(validatedBlock);
119
- }
120
- case "wait": {
121
- const validatedBlock = validateWaitBlock(block);
122
- return await handlerWait(validatedBlock);
123
- }
124
- case "save-assets": {
125
- const validatedBlock = validateSaveAssetsBlock(block);
126
- return await handlerSaveAssets(validatedBlock);
127
- }
128
- case "get-element-data": {
129
- const validatedBlock = validateGetElementDataBlock(block);
130
- return await handlerGetElementData(validatedBlock);
131
- }
132
- case "scroll": {
133
- const validatedBlock = validateScrollBlock(block);
134
- return await handlerScroll(validatedBlock);
135
- }
136
- case "ai-parse-data": {
137
- const validatedBlock = validateAiParseDataBlock(block);
138
- return await handlerAiParseData(validatedBlock);
139
- }
140
- case "fetch-api": {
141
- const validatedBlock = validateFetchApiBlock(block);
142
- return await handlerFetchApi(validatedBlock);
143
- }
144
- case "data-extract": {
145
- const validatedBlock = validateDataExtractBlock(block);
146
- return await handlerDataExtract(validatedBlock);
147
- }
148
- default:
149
- return {
150
- hasError: true,
151
- message: `Unknown block type: ${block.name}`,
152
- data: null
153
- };
154
- }
155
- } catch (error) {
156
- return {
157
- hasError: true,
158
- message: error instanceof Error ? error.message : "Unknown error in block execution",
159
- data: null
160
- };
161
- }
162
- }
163
- }