scordi-extension 1.16.2 → 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.
- package/README.md +61 -29
- package/dist/blocks/AiParseDataBlock.d.ts.map +1 -1
- package/dist/blocks/EventClickBlock.d.ts.map +1 -1
- package/dist/blocks/ExportDataBlock.d.ts.map +1 -1
- package/dist/blocks/KeypressBlock.d.ts.map +1 -1
- package/dist/blocks/NetworkCatchBlock.d.ts.map +1 -1
- package/dist/blocks/WaitForConditionBlock.d.ts.map +1 -1
- package/dist/blocks/index.d.ts +1 -1
- package/dist/blocks/index.d.ts.map +1 -1
- package/dist/sdk/EightGClient.d.ts +9 -6
- package/dist/sdk/EightGClient.d.ts.map +1 -1
- package/dist/sdk/index.cjs +4 -4
- package/dist/sdk/index.js +175 -160
- package/dist/sdk/types.d.ts.map +1 -1
- package/dist/types/internal-messages.d.ts.map +1 -1
- package/dist/workflow/context/execution-context/binding.d.ts.map +1 -1
- package/dist/workflow/context/execution-context/condition.d.ts.map +1 -1
- package/dist/workflow/context/execution-context/index.d.ts +3 -3
- package/dist/workflow/context/execution-context/index.d.ts.map +1 -1
- package/dist/workflow/context/execution-context/resolver.d.ts.map +1 -1
- package/dist/workflow/context/loop-context/index.d.ts +1 -1
- package/dist/workflow/context/loop-context/index.d.ts.map +1 -1
- package/dist/workflow/context/loop-context/loop-context.d.ts.map +1 -1
- package/dist/workflow/context/loop-context/resolver.d.ts.map +1 -1
- package/dist/workflow/context/step-context/index.d.ts +1 -1
- package/dist/workflow/context/step-context/index.d.ts.map +1 -1
- package/dist/workflow/context/step-context/resolver.d.ts.map +1 -1
- package/dist/workflow/context/step-context/step-context.d.ts.map +1 -1
- package/dist/workflow/context/var-context/index.d.ts +1 -1
- package/dist/workflow/context/var-context/index.d.ts.map +1 -1
- package/dist/workflow/context/var-context/resolver.d.ts.map +1 -1
- package/dist/workflow/context/var-context/var-context.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/.vite/manifest.json +0 -75
- package/dist/assets/index-B45Q7XiR.js +0 -49
- package/dist/assets/index-BqQ8JinV.js +0 -1
- package/dist/assets/index-CVzjlC_s.js +0 -1
- package/dist/assets/index-CYVwV_2L.js +0 -1
- package/dist/assets/index-DkFIvNAm.css +0 -1
- package/dist/assets/index-DxZcS402.js +0 -1
- package/dist/assets/index-tW55lo_h.js +0 -4
- package/dist/assets/index.html-DZ7AUTQZ.js +0 -1
- package/dist/assets/index.ts-2nFLTUkL.js +0 -238
- package/dist/assets/index.ts-BRPHoTRl.js +0 -256
- package/dist/assets/index.ts-C2f2hGoV.js +0 -158
- package/dist/assets/index.ts-CD2jVezi.js +0 -256
- package/dist/assets/index.ts-COMnxBfB.js +0 -238
- package/dist/assets/index.ts-mAOhzdZJ.js +0 -238
- package/dist/assets/internal-messages-BMRA0i8A.js +0 -1
- package/dist/assets/internal-messages-BS1uEgeS.js +0 -1
- package/dist/assets/internal-messages-CP1ANEcL.js +0 -1
- package/dist/assets/internal-messages-Drf0Gb9U.js +0 -1
- package/dist/assets/loading-page-1924caaa.js +0 -51
- package/dist/assets/main.tsx-CHn9k-P7.js +0 -38
- package/dist/assets/main.tsx-DnGNeWWr.js +0 -38
- package/dist/assets/main.tsx-DtStYr-r.js +0 -2
- package/dist/assets/main.tsx-UFslEqbd.js +0 -38
- package/dist/assets/main.tsx-loader-6Ftbg0YS.js +0 -13
- package/dist/assets/main.tsx-loader-ByFSLdJ4.js +0 -13
- package/dist/assets/main.tsx-loader-CuF0J02t.js +0 -13
- package/dist/assets/main.tsx-loader-sjxNXQPw.js +0 -13
- package/dist/assets/types-BId3CBm7.js +0 -1
- package/dist/assets/types-CeXfY5Yv.js +0 -4
- package/dist/assets/types-Dzn4eD9c.js +0 -22
- package/dist/assets/types-q2_wITfk.js +0 -4
- package/dist/blocks/CaptureNetworkBlock.d.ts +0 -75
- package/dist/blocks/CaptureNetworkBlock.d.ts.map +0 -1
- package/dist/blocks/DataExtractBlock.d.ts +0 -23
- package/dist/blocks/DataExtractBlock.d.ts.map +0 -1
- package/dist/blocks/index.cjs +0 -4
- package/dist/blocks/index.js +0 -7839
- package/dist/blocks/logo.png +0 -0
- package/dist/logo.png +0 -0
- package/dist/manifest.json +0 -55
- package/dist/public/logo.png +0 -0
- package/dist/service-worker-loader.js +0 -3
- package/dist/src/blocks/AiParseDataBlock.ts.js +0 -111
- package/dist/src/blocks/CaptureNetworkBlock.ts.js +0 -55
- package/dist/src/blocks/ClearValueFormBlock.ts.js +0 -55
- package/dist/src/blocks/DataExtractBlock.ts.js +0 -28
- package/dist/src/blocks/ElementExistsBlock.ts.js +0 -26
- package/dist/src/blocks/EventClickBlock.ts.js +0 -143
- package/dist/src/blocks/ExportDataBlock.ts.js +0 -47
- package/dist/src/blocks/FetchApiBlock.ts.js +0 -50
- package/dist/src/blocks/GetAttributeValueBlock.ts.js +0 -33
- package/dist/src/blocks/GetElementDataBlock.ts.js +0 -114
- package/dist/src/blocks/GetTextBlock.ts.js +0 -152
- package/dist/src/blocks/GetValueFormBlock.ts.js +0 -52
- package/dist/src/blocks/KeypressBlock.ts.js +0 -89
- package/dist/src/blocks/NavigateBlock.ts.js +0 -48
- package/dist/src/blocks/NetworkCatchBlock.ts.js +0 -61
- package/dist/src/blocks/SaveAssetsBlock.ts.js +0 -35
- package/dist/src/blocks/ScrollBlock.ts.js +0 -111
- package/dist/src/blocks/SetValueFormBlock.ts.js +0 -56
- package/dist/src/blocks/TransformDataBlock.ts.js +0 -42
- package/dist/src/blocks/WaitBlock.ts.js +0 -24
- package/dist/src/blocks/WaitForConditionBlock.ts.js +0 -187
- package/dist/src/blocks/index.ts.js +0 -198
- package/dist/src/blocks/types.ts.js +0 -11
- package/dist/src/content/components/ConfirmationUI.tsx.js +0 -244
- package/dist/src/content/components/ExecutionStatusUI.tsx.js +0 -223
- package/dist/src/content/elements/finders/CssSelector.ts.js +0 -51
- package/dist/src/content/elements/finders/ElementSelector.ts.js +0 -20
- package/dist/src/content/elements/finders/IframeSelector.ts.js +0 -32
- package/dist/src/content/elements/finders/ShadowDOMSelector.ts.js +0 -38
- package/dist/src/content/elements/finders/XPathFinder.ts.js +0 -32
- package/dist/src/content/elements/index.ts.js +0 -26
- package/dist/src/content/elements/utils/CSSSelectorGenerator.ts.js +0 -72
- package/dist/src/content/elements/utils/XPathGenerator.ts.js +0 -62
- package/dist/src/content/handler/ExternalMessageHandler.ts.js +0 -78
- package/dist/src/content/handler/InternalMessageHandler.ts.js +0 -40
- package/dist/src/content/kernel/MessageKernel.ts.js +0 -83
- package/dist/src/content/main.tsx-loader.js +0 -22
- package/dist/src/content/main.tsx.js +0 -50
- package/dist/src/content/utils/index.ts.js +0 -1
- package/dist/src/content/utils/synchronizedLock.ts.js +0 -35
- package/dist/src/popup/index.html +0 -12
- package/dist/src/sdk/types.ts.js +0 -150
- package/dist/src/types/internal-messages.ts.js +0 -27
- package/dist/src/workflow/context/execution-context/types.ts.js +0 -0
- package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--29d58732.js +0 -45
- package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--34285d49.js +0 -45
- package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--36a0c079.js +0 -45
- package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--7cce5f32.js +0 -45
- package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--8598b0e0.js +0 -45
- package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--9054997c.js +0 -45
- package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--a79cb78d.js +0 -45
- package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--af906259.js +0 -45
- package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--e041f26d.js +0 -45
- package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--e1405dc4.js +0 -45
- package/dist/vendor/.vite-deps-chunk-2TUXWMP5.js__v--e2a1f584.js +0 -45
- package/dist/vendor/.vite-deps-chunk-DC5AMYBS.js__v--87b685c1.js +0 -38
- package/dist/vendor/.vite-deps-chunk-EL3BNLGW.js__v--29d58732.js +0 -975
- package/dist/vendor/.vite-deps-chunk-EL3BNLGW.js__v--34285d49.js +0 -975
- package/dist/vendor/.vite-deps-chunk-EL3BNLGW.js__v--36a0c079.js +0 -975
- package/dist/vendor/.vite-deps-chunk-EL3BNLGW.js__v--7cce5f32.js +0 -975
- package/dist/vendor/.vite-deps-chunk-EL3BNLGW.js__v--8598b0e0.js +0 -975
- package/dist/vendor/.vite-deps-chunk-EL3BNLGW.js__v--a79cb78d.js +0 -975
- package/dist/vendor/.vite-deps-chunk-EL3BNLGW.js__v--af906259.js +0 -975
- package/dist/vendor/.vite-deps-chunk-EL3BNLGW.js__v--e041f26d.js +0 -975
- package/dist/vendor/.vite-deps-chunk-EL3BNLGW.js__v--e1405dc4.js +0 -975
- package/dist/vendor/.vite-deps-chunk-EL3BNLGW.js__v--e2a1f584.js +0 -975
- package/dist/vendor/.vite-deps-chunk-KDMJ4XM7.js__v--87b685c1.js +0 -4154
- package/dist/vendor/.vite-deps-chunk-MANNBT4V.js__v--87b685c1.js +0 -280
- package/dist/vendor/.vite-deps-chunk-NZP3G7XT.js__v--87b685c1.js +0 -975
- package/dist/vendor/.vite-deps-chunk-QIBDMRD4.js__v--36a0c079.js +0 -4158
- package/dist/vendor/.vite-deps-chunk-QIBDMRD4.js__v--8598b0e0.js +0 -4158
- package/dist/vendor/.vite-deps-chunk-QIBDMRD4.js__v--9054997c.js +0 -4158
- package/dist/vendor/.vite-deps-chunk-QIBDMRD4.js__v--a79cb78d.js +0 -4158
- package/dist/vendor/.vite-deps-chunk-QIBDMRD4.js__v--e041f26d.js +0 -4158
- package/dist/vendor/.vite-deps-chunk-QIBDMRD4.js__v--e2a1f584.js +0 -4158
- package/dist/vendor/.vite-deps-chunk-UW5CEYRC.js__v--29d58732.js +0 -4154
- package/dist/vendor/.vite-deps-chunk-UW5CEYRC.js__v--34285d49.js +0 -4154
- package/dist/vendor/.vite-deps-chunk-UW5CEYRC.js__v--7cce5f32.js +0 -4154
- package/dist/vendor/.vite-deps-chunk-UW5CEYRC.js__v--af906259.js +0 -4154
- package/dist/vendor/.vite-deps-chunk-UW5CEYRC.js__v--e1405dc4.js +0 -4154
- package/dist/vendor/.vite-deps-chunk-XHY3JSIG.js__v--29d58732.js +0 -280
- package/dist/vendor/.vite-deps-chunk-XHY3JSIG.js__v--34285d49.js +0 -280
- package/dist/vendor/.vite-deps-chunk-XHY3JSIG.js__v--36a0c079.js +0 -280
- package/dist/vendor/.vite-deps-chunk-XHY3JSIG.js__v--7cce5f32.js +0 -280
- package/dist/vendor/.vite-deps-chunk-XHY3JSIG.js__v--8598b0e0.js +0 -280
- package/dist/vendor/.vite-deps-chunk-XHY3JSIG.js__v--a79cb78d.js +0 -280
- package/dist/vendor/.vite-deps-chunk-XHY3JSIG.js__v--af906259.js +0 -280
- package/dist/vendor/.vite-deps-chunk-XHY3JSIG.js__v--e041f26d.js +0 -280
- package/dist/vendor/.vite-deps-chunk-XHY3JSIG.js__v--e1405dc4.js +0 -280
- package/dist/vendor/.vite-deps-chunk-XHY3JSIG.js__v--e2a1f584.js +0 -280
- package/dist/vendor/.vite-deps-jsonata.js__v--1f855851.js +0 -5761
- package/dist/vendor/.vite-deps-jsonata.js__v--34285d49.js +0 -5761
- package/dist/vendor/.vite-deps-jsonata.js__v--370b8ffe.js +0 -5761
- package/dist/vendor/.vite-deps-jsonata.js__v--7496ecd5.js +0 -5761
- package/dist/vendor/.vite-deps-jsonata.js__v--7cce5f32.js +0 -5761
- package/dist/vendor/.vite-deps-jsonata.js__v--8598b0e0.js +0 -5761
- package/dist/vendor/.vite-deps-jsonata.js__v--989ee283.js +0 -5761
- package/dist/vendor/.vite-deps-jsonata.js__v--aa4cf553.js +0 -5761
- package/dist/vendor/.vite-deps-jsonata.js__v--af906259.js +0 -5761
- package/dist/vendor/.vite-deps-jsonata.js__v--d602c657.js +0 -5761
- package/dist/vendor/.vite-deps-jsonata.js__v--e041f26d.js +0 -5761
- package/dist/vendor/.vite-deps-jsonata.js__v--e2a1f584.js +0 -5761
- package/dist/vendor/.vite-deps-react-dom.js__v--1217aa43.js +0 -6
- package/dist/vendor/.vite-deps-react-dom.js__v--34285d49.js +0 -6
- package/dist/vendor/.vite-deps-react-dom.js__v--36c31e85.js +0 -6
- package/dist/vendor/.vite-deps-react-dom.js__v--7cce5f32.js +0 -6
- package/dist/vendor/.vite-deps-react-dom.js__v--8313ef2c.js +0 -6
- package/dist/vendor/.vite-deps-react-dom.js__v--8598b0e0.js +0 -6
- package/dist/vendor/.vite-deps-react-dom.js__v--87af57af.js +0 -6
- package/dist/vendor/.vite-deps-react-dom.js__v--9967e564.js +0 -6
- package/dist/vendor/.vite-deps-react-dom.js__v--af906259.js +0 -6
- package/dist/vendor/.vite-deps-react-dom.js__v--e041f26d.js +0 -6
- package/dist/vendor/.vite-deps-react-dom.js__v--e2a1f584.js +0 -6
- package/dist/vendor/.vite-deps-react-dom_client.js__v--05e7db8c.js +0 -18108
- package/dist/vendor/.vite-deps-react-dom_client.js__v--34285d49.js +0 -18108
- package/dist/vendor/.vite-deps-react-dom_client.js__v--7cce5f32.js +0 -18108
- package/dist/vendor/.vite-deps-react-dom_client.js__v--8598b0e0.js +0 -18108
- package/dist/vendor/.vite-deps-react-dom_client.js__v--8ec6d0f4.js +0 -18108
- package/dist/vendor/.vite-deps-react-dom_client.js__v--a69c8f91.js +0 -18108
- package/dist/vendor/.vite-deps-react-dom_client.js__v--aaaed31d.js +0 -18108
- package/dist/vendor/.vite-deps-react-dom_client.js__v--af906259.js +0 -18108
- package/dist/vendor/.vite-deps-react-dom_client.js__v--e041f26d.js +0 -18108
- package/dist/vendor/.vite-deps-react-dom_client.js__v--e2a1f584.js +0 -18108
- package/dist/vendor/.vite-deps-react-dom_client.js__v--f80719e9.js +0 -18108
- package/dist/vendor/.vite-deps-react.js__v--1217aa43.js +0 -5
- package/dist/vendor/.vite-deps-react.js__v--34285d49.js +0 -5
- package/dist/vendor/.vite-deps-react.js__v--36c31e85.js +0 -5
- package/dist/vendor/.vite-deps-react.js__v--7cce5f32.js +0 -5
- package/dist/vendor/.vite-deps-react.js__v--8313ef2c.js +0 -5
- package/dist/vendor/.vite-deps-react.js__v--8598b0e0.js +0 -5
- package/dist/vendor/.vite-deps-react.js__v--87af57af.js +0 -5
- package/dist/vendor/.vite-deps-react.js__v--9967e564.js +0 -5
- package/dist/vendor/.vite-deps-react.js__v--af906259.js +0 -5
- package/dist/vendor/.vite-deps-react.js__v--e041f26d.js +0 -5
- package/dist/vendor/.vite-deps-react.js__v--e2a1f584.js +0 -5
- package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--1217aa43.js +0 -281
- package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--34285d49.js +0 -281
- package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--36c31e85.js +0 -281
- package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--7cce5f32.js +0 -281
- package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--8313ef2c.js +0 -281
- package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--8598b0e0.js +0 -281
- package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--87af57af.js +0 -281
- package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--9967e564.js +0 -281
- package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--af906259.js +0 -281
- package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--e041f26d.js +0 -281
- package/dist/vendor/.vite-deps-react_jsx-dev-runtime.js__v--e2a1f584.js +0 -281
- package/dist/vendor/.vite-deps-zod.js__v--34285d49.js +0 -222
- package/dist/vendor/.vite-deps-zod.js__v--6548a37a.js +0 -222
- package/dist/vendor/.vite-deps-zod.js__v--706a718e.js +0 -219
- package/dist/vendor/.vite-deps-zod.js__v--7cce5f32.js +0 -222
- package/dist/vendor/.vite-deps-zod.js__v--8598b0e0.js +0 -219
- package/dist/vendor/.vite-deps-zod.js__v--9e0f4cc1.js +0 -219
- package/dist/vendor/.vite-deps-zod.js__v--af906259.js +0 -222
- package/dist/vendor/.vite-deps-zod.js__v--b73c580c.js +0 -219
- package/dist/vendor/.vite-deps-zod.js__v--dc9842e6.js +0 -222
- package/dist/vendor/.vite-deps-zod.js__v--e041f26d.js +0 -219
- package/dist/vendor/.vite-deps-zod.js__v--e2a1f584.js +0 -219
- package/dist/vendor/.vite-deps-zod.js__v--e4714212.js +0 -222
- package/dist/vendor/crx-client-port.js +0 -66
- package/dist/vendor/crx-client-preamble.js +0 -4
- package/dist/vendor/react-refresh.js +0 -670
- package/dist/vendor/vite-client.js +0 -1134
- package/dist/vendor/vite-dist-client-env.mjs.js +0 -24
- package/dist/vendor/webcomponents-custom-elements.js +0 -47
|
@@ -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--34285d49.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,42 +0,0 @@
|
|
|
1
|
-
import z from "/vendor/.vite-deps-zod.js__v--34285d49.js";
|
|
2
|
-
import __vite__cjsImport1_jsonata from "/vendor/.vite-deps-jsonata.js__v--34285d49.js"; const jsonata = __vite__cjsImport1_jsonata.__esModule ? __vite__cjsImport1_jsonata.default : __vite__cjsImport1_jsonata;
|
|
3
|
-
export const TransformDataBlockSchema = z.object({
|
|
4
|
-
name: z.literal("transform-data"),
|
|
5
|
-
sourceData: z.any().optional(),
|
|
6
|
-
expression: z.string().min(1, "JSONata expression is required")
|
|
7
|
-
});
|
|
8
|
-
export function validateTransformDataBlock(data) {
|
|
9
|
-
return TransformDataBlockSchema.parse(data);
|
|
10
|
-
}
|
|
11
|
-
export async function handlerTransformData(data) {
|
|
12
|
-
try {
|
|
13
|
-
const { sourceData, expression } = data;
|
|
14
|
-
const input = sourceData !== void 0 && sourceData !== null ? sourceData : {};
|
|
15
|
-
let compiledExpression;
|
|
16
|
-
try {
|
|
17
|
-
compiledExpression = jsonata(expression);
|
|
18
|
-
} catch (error) {
|
|
19
|
-
throw new Error(
|
|
20
|
-
`Invalid JSONata expression: ${error instanceof Error ? error.message : "Unknown error"}`
|
|
21
|
-
);
|
|
22
|
-
}
|
|
23
|
-
let result;
|
|
24
|
-
try {
|
|
25
|
-
result = await compiledExpression.evaluate(input);
|
|
26
|
-
} catch (error) {
|
|
27
|
-
console.error("JSONata evaluation failed:", error);
|
|
28
|
-
throw new Error(
|
|
29
|
-
`JSONata evaluation failed: ${error instanceof Error ? error.message : "Unknown error"}`
|
|
30
|
-
);
|
|
31
|
-
}
|
|
32
|
-
return {
|
|
33
|
-
data: result
|
|
34
|
-
};
|
|
35
|
-
} catch (error) {
|
|
36
|
-
return {
|
|
37
|
-
hasError: true,
|
|
38
|
-
message: error instanceof Error ? error.message : "Unknown error in transform-data handler",
|
|
39
|
-
data: null
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import z from "/vendor/.vite-deps-zod.js__v--34285d49.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,187 +0,0 @@
|
|
|
1
|
-
import z from "/vendor/.vite-deps-zod.js__v--34285d49.js";
|
|
2
|
-
export const WaitForConditionBlockSchema = z.object({
|
|
3
|
-
name: z.literal("wait-for-condition"),
|
|
4
|
-
conditions: z.object({
|
|
5
|
-
urlPattern: z.string().optional(),
|
|
6
|
-
elementExists: z.object({
|
|
7
|
-
selector: z.string(),
|
|
8
|
-
findBy: z.enum(["cssSelector", "xpath"])
|
|
9
|
-
}).optional(),
|
|
10
|
-
cookieExists: z.string().optional(),
|
|
11
|
-
storageKey: z.object({
|
|
12
|
-
type: z.enum(["localStorage", "sessionStorage"]),
|
|
13
|
-
key: z.string()
|
|
14
|
-
}).optional(),
|
|
15
|
-
userConfirmation: z.boolean().optional(),
|
|
16
|
-
message: z.string().optional(),
|
|
17
|
-
buttonText: z.string().optional()
|
|
18
|
-
}).refine(
|
|
19
|
-
(data) => {
|
|
20
|
-
return data.urlPattern !== void 0 || data.elementExists !== void 0 || data.cookieExists !== void 0 || data.storageKey !== void 0 || data.userConfirmation === true;
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
message: "At least one condition must be specified"
|
|
24
|
-
}
|
|
25
|
-
),
|
|
26
|
-
mode: z.enum(["auto", "manual", "auto-or-manual"]).optional(),
|
|
27
|
-
pollingIntervalMs: z.number().min(100).optional(),
|
|
28
|
-
timeoutMs: z.number().min(1e3).optional(),
|
|
29
|
-
position: z.enum(["top-left", "top-right", "bottom-left", "bottom-right"]).optional()
|
|
30
|
-
});
|
|
31
|
-
export function validateWaitForConditionBlock(data) {
|
|
32
|
-
return WaitForConditionBlockSchema.parse(data);
|
|
33
|
-
}
|
|
34
|
-
export async function handlerWaitForCondition(data) {
|
|
35
|
-
try {
|
|
36
|
-
const {
|
|
37
|
-
conditions,
|
|
38
|
-
mode = "auto-or-manual",
|
|
39
|
-
pollingIntervalMs = 1e3,
|
|
40
|
-
timeoutMs = 3e5,
|
|
41
|
-
position = "bottom-right"
|
|
42
|
-
} = data;
|
|
43
|
-
console.log("[WaitForCondition] Starting wait with conditions:", conditions);
|
|
44
|
-
console.log("[WaitForCondition] Mode:", mode, "Timeout:", timeoutMs);
|
|
45
|
-
const hasAutoConditions = !!(conditions.urlPattern || conditions.elementExists || conditions.cookieExists || conditions.storageKey);
|
|
46
|
-
const hasManualConfirmation = conditions.userConfirmation === true;
|
|
47
|
-
let userConfirmedPromise = null;
|
|
48
|
-
let confirmResolve = null;
|
|
49
|
-
if ((mode === "manual" || mode === "auto-or-manual") && hasManualConfirmation) {
|
|
50
|
-
userConfirmedPromise = new Promise((resolve) => {
|
|
51
|
-
confirmResolve = resolve;
|
|
52
|
-
});
|
|
53
|
-
window.dispatchEvent(
|
|
54
|
-
new CustomEvent("8g-show-confirmation-ui", {
|
|
55
|
-
detail: {
|
|
56
|
-
message: conditions.message || "작업을 완료하셨나요?",
|
|
57
|
-
buttonText: conditions.buttonText || "완료",
|
|
58
|
-
position,
|
|
59
|
-
onConfirm: confirmResolve
|
|
60
|
-
}
|
|
61
|
-
})
|
|
62
|
-
);
|
|
63
|
-
}
|
|
64
|
-
const checkAutoConditions = async () => {
|
|
65
|
-
if (conditions.urlPattern) {
|
|
66
|
-
try {
|
|
67
|
-
const regex = new RegExp(conditions.urlPattern);
|
|
68
|
-
if (regex.test(window.location.href)) {
|
|
69
|
-
return {
|
|
70
|
-
success: true,
|
|
71
|
-
reason: "urlPattern",
|
|
72
|
-
message: `URL matches pattern: ${conditions.urlPattern}`
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
} catch (error) {
|
|
76
|
-
console.warn("[WaitForCondition] Invalid URL pattern:", error);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
if (conditions.elementExists) {
|
|
80
|
-
const { selector, findBy } = conditions.elementExists;
|
|
81
|
-
let element = null;
|
|
82
|
-
if (findBy === "cssSelector") {
|
|
83
|
-
element = document.querySelector(selector);
|
|
84
|
-
} else if (findBy === "xpath") {
|
|
85
|
-
const xpathResult = document.evaluate(
|
|
86
|
-
selector,
|
|
87
|
-
document,
|
|
88
|
-
null,
|
|
89
|
-
XPathResult.FIRST_ORDERED_NODE_TYPE,
|
|
90
|
-
null
|
|
91
|
-
);
|
|
92
|
-
element = xpathResult.singleNodeValue;
|
|
93
|
-
}
|
|
94
|
-
if (element) {
|
|
95
|
-
return {
|
|
96
|
-
success: true,
|
|
97
|
-
reason: "elementExists",
|
|
98
|
-
message: `Element found: ${selector}`
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
if (conditions.cookieExists) {
|
|
103
|
-
const cookies = document.cookie.split(";");
|
|
104
|
-
const cookieExists = cookies.some((cookie) => {
|
|
105
|
-
const [name] = cookie.trim().split("=");
|
|
106
|
-
return name === conditions.cookieExists;
|
|
107
|
-
});
|
|
108
|
-
if (cookieExists) {
|
|
109
|
-
return {
|
|
110
|
-
success: true,
|
|
111
|
-
reason: "cookieExists",
|
|
112
|
-
message: `Cookie found: ${conditions.cookieExists}`
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
if (conditions.storageKey) {
|
|
117
|
-
const { type, key } = conditions.storageKey;
|
|
118
|
-
const storage = type === "localStorage" ? window.localStorage : window.sessionStorage;
|
|
119
|
-
const value = storage.getItem(key);
|
|
120
|
-
if (value !== null) {
|
|
121
|
-
return {
|
|
122
|
-
success: true,
|
|
123
|
-
reason: "storageKey",
|
|
124
|
-
message: `Storage key found: ${type}.${key}`
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
return null;
|
|
129
|
-
};
|
|
130
|
-
return new Promise((resolve) => {
|
|
131
|
-
let intervalId = null;
|
|
132
|
-
let resolved = false;
|
|
133
|
-
const cleanup = () => {
|
|
134
|
-
if (intervalId) {
|
|
135
|
-
clearInterval(intervalId);
|
|
136
|
-
intervalId = null;
|
|
137
|
-
}
|
|
138
|
-
window.dispatchEvent(new CustomEvent("8g-hide-confirmation-ui"));
|
|
139
|
-
};
|
|
140
|
-
const resolveWith = (result) => {
|
|
141
|
-
if (resolved) return;
|
|
142
|
-
resolved = true;
|
|
143
|
-
cleanup();
|
|
144
|
-
console.log("[WaitForCondition] Resolved with:", result);
|
|
145
|
-
resolve({ data: result });
|
|
146
|
-
};
|
|
147
|
-
const timeoutId = setTimeout(() => {
|
|
148
|
-
resolveWith({
|
|
149
|
-
success: false,
|
|
150
|
-
reason: "timeout",
|
|
151
|
-
message: `Timeout after ${timeoutMs}ms`
|
|
152
|
-
});
|
|
153
|
-
}, timeoutMs);
|
|
154
|
-
if ((mode === "auto" || mode === "auto-or-manual") && hasAutoConditions) {
|
|
155
|
-
intervalId = setInterval(async () => {
|
|
156
|
-
const result = await checkAutoConditions();
|
|
157
|
-
if (result) {
|
|
158
|
-
clearTimeout(timeoutId);
|
|
159
|
-
resolveWith(result);
|
|
160
|
-
}
|
|
161
|
-
}, pollingIntervalMs);
|
|
162
|
-
}
|
|
163
|
-
if ((mode === "manual" || mode === "auto-or-manual") && userConfirmedPromise) {
|
|
164
|
-
userConfirmedPromise.then(() => {
|
|
165
|
-
clearTimeout(timeoutId);
|
|
166
|
-
resolveWith({
|
|
167
|
-
success: true,
|
|
168
|
-
reason: "userConfirmation",
|
|
169
|
-
message: "User confirmed completion"
|
|
170
|
-
});
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
if (mode === "manual" && !hasAutoConditions) {
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
} catch (error) {
|
|
177
|
-
console.error("[WaitForCondition] Error:", error);
|
|
178
|
-
return {
|
|
179
|
-
hasError: true,
|
|
180
|
-
message: error instanceof Error ? error.message : "Unknown error in wait-for-condition handler",
|
|
181
|
-
data: {
|
|
182
|
-
success: false,
|
|
183
|
-
message: error instanceof Error ? error.message : "Unknown error"
|
|
184
|
-
}
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
}
|
|
@@ -1,198 +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 { WaitForConditionBlockSchema } from "/src/blocks/WaitForConditionBlock.ts.js";
|
|
13
|
-
export { NavigateBlockSchema } from "/src/blocks/NavigateBlock.ts.js";
|
|
14
|
-
export { SaveAssetsBlockSchema } from "/src/blocks/SaveAssetsBlock.ts.js";
|
|
15
|
-
export { GetElementDataBlockSchema } from "/src/blocks/GetElementDataBlock.ts.js";
|
|
16
|
-
export { ScrollBlockSchema } from "/src/blocks/ScrollBlock.ts.js";
|
|
17
|
-
export { AiParseDataBlockSchema } from "/src/blocks/AiParseDataBlock.ts.js";
|
|
18
|
-
export { FetchApiBlockSchema } from "/src/blocks/FetchApiBlock.ts.js";
|
|
19
|
-
export { TransformDataBlockSchema } from "/src/blocks/TransformDataBlock.ts.js";
|
|
20
|
-
export { ExportDataBlockSchema } from "/src/blocks/ExportDataBlock.ts.js";
|
|
21
|
-
export { NetworkCatchBlockSchema } from "/src/blocks/NetworkCatchBlock.ts.js";
|
|
22
|
-
import { handlerGetText, validateGetTextBlock } from "/src/blocks/GetTextBlock.ts.js";
|
|
23
|
-
import {
|
|
24
|
-
handlerGetAttributeValue,
|
|
25
|
-
validateGetAttributeValueBlock
|
|
26
|
-
} from "/src/blocks/GetAttributeValueBlock.ts.js";
|
|
27
|
-
import {
|
|
28
|
-
handlerGetValueForm,
|
|
29
|
-
validateGetValueFormsBlock
|
|
30
|
-
} from "/src/blocks/GetValueFormBlock.ts.js";
|
|
31
|
-
import {
|
|
32
|
-
handlerSetValueForm,
|
|
33
|
-
validateSetValueFormsBlock
|
|
34
|
-
} from "/src/blocks/SetValueFormBlock.ts.js";
|
|
35
|
-
import {
|
|
36
|
-
handlerClearValueForm,
|
|
37
|
-
validateClearValueFormsBlock
|
|
38
|
-
} from "/src/blocks/ClearValueFormBlock.ts.js";
|
|
39
|
-
import {
|
|
40
|
-
handlerElementExists,
|
|
41
|
-
validateElementExistsBlock
|
|
42
|
-
} from "/src/blocks/ElementExistsBlock.ts.js";
|
|
43
|
-
import { handlerEventClick, validateEventClickBlock } from "/src/blocks/EventClickBlock.ts.js";
|
|
44
|
-
import { handlerKeypress, validateKeypressBlock } from "/src/blocks/KeypressBlock.ts.js";
|
|
45
|
-
import { handlerWait, validateWaitBlock } from "/src/blocks/WaitBlock.ts.js";
|
|
46
|
-
import {
|
|
47
|
-
handlerWaitForCondition,
|
|
48
|
-
validateWaitForConditionBlock
|
|
49
|
-
} from "/src/blocks/WaitForConditionBlock.ts.js";
|
|
50
|
-
import { handlerNavigate, validateNavigateBlock } from "/src/blocks/NavigateBlock.ts.js";
|
|
51
|
-
import { handlerSaveAssets, validateSaveAssetsBlock } from "/src/blocks/SaveAssetsBlock.ts.js";
|
|
52
|
-
import {
|
|
53
|
-
handlerGetElementData,
|
|
54
|
-
validateGetElementDataBlock
|
|
55
|
-
} from "/src/blocks/GetElementDataBlock.ts.js";
|
|
56
|
-
import { handlerScroll, validateScrollBlock } from "/src/blocks/ScrollBlock.ts.js";
|
|
57
|
-
import { handlerAiParseData, validateAiParseDataBlock } from "/src/blocks/AiParseDataBlock.ts.js";
|
|
58
|
-
import { handlerFetchApi, validateFetchApiBlock } from "/src/blocks/FetchApiBlock.ts.js";
|
|
59
|
-
import { handlerTransformData, validateTransformDataBlock } from "/src/blocks/TransformDataBlock.ts.js";
|
|
60
|
-
import { handlerExportData, validateExportDataBlock } from "/src/blocks/ExportDataBlock.ts.js";
|
|
61
|
-
import { handlerNetworkCatch, validateNetworkCatchBlock } from "/src/blocks/NetworkCatchBlock.ts.js";
|
|
62
|
-
import { GetTextBlockSchema as GetTextBlockSchema2 } from "/src/blocks/GetTextBlock.ts.js";
|
|
63
|
-
import { GetAttributeValueBlockSchema as GetAttributeValueBlockSchema2 } from "/src/blocks/GetAttributeValueBlock.ts.js";
|
|
64
|
-
import { GetValueFormsBlockSchema as GetValueFormsBlockSchema2 } from "/src/blocks/GetValueFormBlock.ts.js";
|
|
65
|
-
import { SetValueFormsBlockSchema as SetValueFormsBlockSchema2 } from "/src/blocks/SetValueFormBlock.ts.js";
|
|
66
|
-
import { ClearValueFormsBlockSchema as ClearValueFormsBlockSchema2 } from "/src/blocks/ClearValueFormBlock.ts.js";
|
|
67
|
-
import { ElementExistsBlockSchema as ElementExistsBlockSchema2 } from "/src/blocks/ElementExistsBlock.ts.js";
|
|
68
|
-
import { EventClickBlockSchema as EventClickBlockSchema2 } from "/src/blocks/EventClickBlock.ts.js";
|
|
69
|
-
import { KeypressBlockSchema as KeypressBlockSchema2 } from "/src/blocks/KeypressBlock.ts.js";
|
|
70
|
-
import { WaitBlockSchema as WaitBlockSchema2 } from "/src/blocks/WaitBlock.ts.js";
|
|
71
|
-
import { WaitForConditionBlockSchema as WaitForConditionBlockSchema2 } from "/src/blocks/WaitForConditionBlock.ts.js";
|
|
72
|
-
import { NavigateBlockSchema as NavigateBlockSchema2 } from "/src/blocks/NavigateBlock.ts.js";
|
|
73
|
-
import { SaveAssetsBlockSchema as SaveAssetsBlockSchema2 } from "/src/blocks/SaveAssetsBlock.ts.js";
|
|
74
|
-
import { GetElementDataBlockSchema as GetElementDataBlockSchema2 } from "/src/blocks/GetElementDataBlock.ts.js";
|
|
75
|
-
import { ScrollBlockSchema as ScrollBlockSchema2 } from "/src/blocks/ScrollBlock.ts.js";
|
|
76
|
-
import { AiParseDataBlockSchema as AiParseDataBlockSchema2 } from "/src/blocks/AiParseDataBlock.ts.js";
|
|
77
|
-
import { FetchApiBlockSchema as FetchApiBlockSchema2 } from "/src/blocks/FetchApiBlock.ts.js";
|
|
78
|
-
import { TransformDataBlockSchema as TransformDataBlockSchema2 } from "/src/blocks/TransformDataBlock.ts.js";
|
|
79
|
-
import { ExportDataBlockSchema as ExportDataBlockSchema2 } from "/src/blocks/ExportDataBlock.ts.js";
|
|
80
|
-
import { NetworkCatchBlockSchema as NetworkCatchBlockSchema2 } from "/src/blocks/NetworkCatchBlock.ts.js";
|
|
81
|
-
export const AllBlockSchemas = {
|
|
82
|
-
"get-text": GetTextBlockSchema2,
|
|
83
|
-
"attribute-value": GetAttributeValueBlockSchema2,
|
|
84
|
-
"get-value-form": GetValueFormsBlockSchema2,
|
|
85
|
-
"set-value-form": SetValueFormsBlockSchema2,
|
|
86
|
-
"clear-value-form": ClearValueFormsBlockSchema2,
|
|
87
|
-
"element-exists": ElementExistsBlockSchema2,
|
|
88
|
-
"event-click": EventClickBlockSchema2,
|
|
89
|
-
"keypress": KeypressBlockSchema2,
|
|
90
|
-
"wait": WaitBlockSchema2,
|
|
91
|
-
"wait-for-condition": WaitForConditionBlockSchema2,
|
|
92
|
-
"navigate": NavigateBlockSchema2,
|
|
93
|
-
"save-assets": SaveAssetsBlockSchema2,
|
|
94
|
-
"get-element-data": GetElementDataBlockSchema2,
|
|
95
|
-
"scroll": ScrollBlockSchema2,
|
|
96
|
-
"ai-parse-data": AiParseDataBlockSchema2,
|
|
97
|
-
"fetch-api": FetchApiBlockSchema2,
|
|
98
|
-
"transform-data": TransformDataBlockSchema2,
|
|
99
|
-
"export-data": ExportDataBlockSchema2,
|
|
100
|
-
"network-catch": NetworkCatchBlockSchema2
|
|
101
|
-
};
|
|
102
|
-
export class BlockHandler {
|
|
103
|
-
// Implementation
|
|
104
|
-
static async executeBlock(block) {
|
|
105
|
-
try {
|
|
106
|
-
switch (block.name) {
|
|
107
|
-
case "get-text": {
|
|
108
|
-
const validatedBlock = validateGetTextBlock(block);
|
|
109
|
-
return await handlerGetText(validatedBlock);
|
|
110
|
-
}
|
|
111
|
-
case "attribute-value": {
|
|
112
|
-
const validatedBlock = validateGetAttributeValueBlock(block);
|
|
113
|
-
return await handlerGetAttributeValue(validatedBlock);
|
|
114
|
-
}
|
|
115
|
-
case "get-value-form": {
|
|
116
|
-
const validatedBlock = validateGetValueFormsBlock(block);
|
|
117
|
-
return await handlerGetValueForm(validatedBlock);
|
|
118
|
-
}
|
|
119
|
-
case "set-value-form": {
|
|
120
|
-
const validatedBlock = validateSetValueFormsBlock(block);
|
|
121
|
-
return await handlerSetValueForm(validatedBlock);
|
|
122
|
-
}
|
|
123
|
-
case "clear-value-form": {
|
|
124
|
-
const validatedBlock = validateClearValueFormsBlock(block);
|
|
125
|
-
return await handlerClearValueForm(validatedBlock);
|
|
126
|
-
}
|
|
127
|
-
case "element-exists": {
|
|
128
|
-
const validatedBlock = validateElementExistsBlock(block);
|
|
129
|
-
return await handlerElementExists(validatedBlock);
|
|
130
|
-
}
|
|
131
|
-
case "event-click": {
|
|
132
|
-
const validatedBlock = validateEventClickBlock(block);
|
|
133
|
-
return await handlerEventClick(validatedBlock);
|
|
134
|
-
}
|
|
135
|
-
case "keypress": {
|
|
136
|
-
const validatedBlock = validateKeypressBlock(block);
|
|
137
|
-
return await handlerKeypress(validatedBlock);
|
|
138
|
-
}
|
|
139
|
-
case "wait": {
|
|
140
|
-
const validatedBlock = validateWaitBlock(block);
|
|
141
|
-
return await handlerWait(validatedBlock);
|
|
142
|
-
}
|
|
143
|
-
case "wait-for-condition": {
|
|
144
|
-
const validatedBlock = validateWaitForConditionBlock(block);
|
|
145
|
-
return await handlerWaitForCondition(validatedBlock);
|
|
146
|
-
}
|
|
147
|
-
case "navigate": {
|
|
148
|
-
const validatedBlock = validateNavigateBlock(block);
|
|
149
|
-
return await handlerNavigate(validatedBlock);
|
|
150
|
-
}
|
|
151
|
-
case "save-assets": {
|
|
152
|
-
const validatedBlock = validateSaveAssetsBlock(block);
|
|
153
|
-
return await handlerSaveAssets(validatedBlock);
|
|
154
|
-
}
|
|
155
|
-
case "get-element-data": {
|
|
156
|
-
const validatedBlock = validateGetElementDataBlock(block);
|
|
157
|
-
return await handlerGetElementData(validatedBlock);
|
|
158
|
-
}
|
|
159
|
-
case "scroll": {
|
|
160
|
-
const validatedBlock = validateScrollBlock(block);
|
|
161
|
-
return await handlerScroll(validatedBlock);
|
|
162
|
-
}
|
|
163
|
-
case "ai-parse-data": {
|
|
164
|
-
const validatedBlock = validateAiParseDataBlock(block);
|
|
165
|
-
return await handlerAiParseData(validatedBlock);
|
|
166
|
-
}
|
|
167
|
-
case "fetch-api": {
|
|
168
|
-
const validatedBlock = validateFetchApiBlock(block);
|
|
169
|
-
return await handlerFetchApi(validatedBlock);
|
|
170
|
-
}
|
|
171
|
-
case "transform-data": {
|
|
172
|
-
const validatedBlock = validateTransformDataBlock(block);
|
|
173
|
-
return await handlerTransformData(validatedBlock);
|
|
174
|
-
}
|
|
175
|
-
case "export-data": {
|
|
176
|
-
const validatedBlock = validateExportDataBlock(block);
|
|
177
|
-
return await handlerExportData(validatedBlock);
|
|
178
|
-
}
|
|
179
|
-
case "network-catch": {
|
|
180
|
-
const validatedBlock = validateNetworkCatchBlock(block);
|
|
181
|
-
return await handlerNetworkCatch(validatedBlock);
|
|
182
|
-
}
|
|
183
|
-
default:
|
|
184
|
-
return {
|
|
185
|
-
hasError: true,
|
|
186
|
-
message: `Unknown block type: ${block.name}`,
|
|
187
|
-
data: null
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
} catch (error) {
|
|
191
|
-
return {
|
|
192
|
-
hasError: true,
|
|
193
|
-
message: error instanceof Error ? error.message : "Unknown error in block execution",
|
|
194
|
-
data: null
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { z } from "/vendor/.vite-deps-zod.js__v--34285d49.js";
|
|
2
|
-
export const BaseBlockSchema = z.object({
|
|
3
|
-
name: z.string(),
|
|
4
|
-
selector: z.string(),
|
|
5
|
-
findBy: z.enum(["cssSelector", "xpath"]),
|
|
6
|
-
option: z.object({
|
|
7
|
-
waitForSelector: z.boolean().optional(),
|
|
8
|
-
waitSelectorTimeout: z.number().optional(),
|
|
9
|
-
multiple: z.boolean().optional()
|
|
10
|
-
})
|
|
11
|
-
});
|