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.
- 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 +6 -3
- package/dist/sdk/EightGClient.d.ts.map +1 -1
- package/dist/sdk/index.cjs +2 -2
- package/dist/sdk/index.js +166 -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
package/dist/blocks/logo.png
DELETED
|
Binary file
|
package/dist/logo.png
DELETED
|
Binary file
|
package/dist/manifest.json
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"manifest_version": 3,
|
|
3
|
-
"name": "scordi-extension",
|
|
4
|
-
"version": "1.16.2",
|
|
5
|
-
"icons": {
|
|
6
|
-
"48": "public/logo.png"
|
|
7
|
-
},
|
|
8
|
-
"action": {
|
|
9
|
-
"default_icon": {
|
|
10
|
-
"48": "public/logo.png"
|
|
11
|
-
},
|
|
12
|
-
"default_popup": "src/popup/index.html"
|
|
13
|
-
},
|
|
14
|
-
"permissions": [
|
|
15
|
-
"contentSettings",
|
|
16
|
-
"tabs",
|
|
17
|
-
"storage",
|
|
18
|
-
"activeTab",
|
|
19
|
-
"scripting",
|
|
20
|
-
"webNavigation",
|
|
21
|
-
"debugger",
|
|
22
|
-
"downloads"
|
|
23
|
-
],
|
|
24
|
-
"host_permissions": [
|
|
25
|
-
"<all_urls>"
|
|
26
|
-
],
|
|
27
|
-
"content_scripts": [
|
|
28
|
-
{
|
|
29
|
-
"js": [
|
|
30
|
-
"src/content/main.tsx-loader.js"
|
|
31
|
-
],
|
|
32
|
-
"matches": [
|
|
33
|
-
"<all_urls>"
|
|
34
|
-
],
|
|
35
|
-
"run_at": "document_start",
|
|
36
|
-
"match_about_blank": true
|
|
37
|
-
}
|
|
38
|
-
],
|
|
39
|
-
"background": {
|
|
40
|
-
"service_worker": "service-worker-loader.js",
|
|
41
|
-
"type": "module"
|
|
42
|
-
},
|
|
43
|
-
"web_accessible_resources": [
|
|
44
|
-
{
|
|
45
|
-
"matches": [
|
|
46
|
-
"<all_urls>"
|
|
47
|
-
],
|
|
48
|
-
"resources": [
|
|
49
|
-
"**/*",
|
|
50
|
-
"*"
|
|
51
|
-
],
|
|
52
|
-
"use_dynamic_url": false
|
|
53
|
-
}
|
|
54
|
-
]
|
|
55
|
-
}
|
package/dist/public/logo.png
DELETED
|
Binary file
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import z from "/vendor/.vite-deps-zod.js__v--34285d49.js";
|
|
2
|
-
import { CurrencyInfoSchema } from "/src/sdk/types.ts.js";
|
|
3
|
-
const ObjectSchemaDefinitionSchema = z.object({
|
|
4
|
-
type: z.literal("object"),
|
|
5
|
-
shape: z.record(z.string(), z.any())
|
|
6
|
-
});
|
|
7
|
-
const ArraySchemaDefinitionSchema = z.object({
|
|
8
|
-
type: z.literal("array"),
|
|
9
|
-
items: z.any()
|
|
10
|
-
});
|
|
11
|
-
const SchemaDefinitionSchema = z.discriminatedUnion("type", [
|
|
12
|
-
ObjectSchemaDefinitionSchema,
|
|
13
|
-
ArraySchemaDefinitionSchema
|
|
14
|
-
]);
|
|
15
|
-
export const AiParseDataBlockSchema = z.object({
|
|
16
|
-
name: z.literal("ai-parse-data"),
|
|
17
|
-
sourceData: z.any().optional(),
|
|
18
|
-
schemaDefinition: SchemaDefinitionSchema,
|
|
19
|
-
prompt: z.string().optional(),
|
|
20
|
-
model: z.string().optional(),
|
|
21
|
-
apiKey: z.string().min(1, "AI API key is required"),
|
|
22
|
-
// 필수
|
|
23
|
-
provider: z.enum(["openai", "anthropic"])
|
|
24
|
-
// 필수
|
|
25
|
-
});
|
|
26
|
-
export function validateAiParseDataBlock(data) {
|
|
27
|
-
return AiParseDataBlockSchema.parse(data);
|
|
28
|
-
}
|
|
29
|
-
export async function handlerAiParseData(data) {
|
|
30
|
-
try {
|
|
31
|
-
const {
|
|
32
|
-
sourceData,
|
|
33
|
-
schemaDefinition,
|
|
34
|
-
prompt,
|
|
35
|
-
model,
|
|
36
|
-
apiKey,
|
|
37
|
-
provider
|
|
38
|
-
} = data;
|
|
39
|
-
if (sourceData === void 0 || sourceData === null) {
|
|
40
|
-
throw new Error("sourceData is required for ai-parse-data block");
|
|
41
|
-
}
|
|
42
|
-
if (!apiKey || apiKey.trim() === "") {
|
|
43
|
-
throw new Error("apiKey is required for ai-parse-data block");
|
|
44
|
-
}
|
|
45
|
-
const response = await chrome.runtime.sendMessage({
|
|
46
|
-
type: "AI_PARSE_DATA",
|
|
47
|
-
data: {
|
|
48
|
-
sourceData,
|
|
49
|
-
schemaDefinition,
|
|
50
|
-
prompt,
|
|
51
|
-
model,
|
|
52
|
-
apiKey,
|
|
53
|
-
provider
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
if (response.$isError) {
|
|
57
|
-
throw new Error(response.message || "AI parsing failed");
|
|
58
|
-
}
|
|
59
|
-
return {
|
|
60
|
-
data: response.data
|
|
61
|
-
};
|
|
62
|
-
} catch (error) {
|
|
63
|
-
return {
|
|
64
|
-
hasError: true,
|
|
65
|
-
message: error instanceof Error ? error.message : "Unknown error in ai-parse-data handler",
|
|
66
|
-
data: null
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
export function createSchema(shape) {
|
|
71
|
-
return {
|
|
72
|
-
type: "object",
|
|
73
|
-
shape
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
export function createArraySchema(items) {
|
|
77
|
-
return {
|
|
78
|
-
type: "array",
|
|
79
|
-
items
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
export const Schema = {
|
|
83
|
-
string: (options) => ({
|
|
84
|
-
type: "string",
|
|
85
|
-
...options
|
|
86
|
-
}),
|
|
87
|
-
number: (options) => ({
|
|
88
|
-
type: "number",
|
|
89
|
-
...options
|
|
90
|
-
}),
|
|
91
|
-
boolean: (options) => ({
|
|
92
|
-
type: "boolean",
|
|
93
|
-
...options
|
|
94
|
-
}),
|
|
95
|
-
array: (items, options) => ({
|
|
96
|
-
type: "array",
|
|
97
|
-
items,
|
|
98
|
-
...options
|
|
99
|
-
}),
|
|
100
|
-
object: (shape, options) => ({
|
|
101
|
-
type: "object",
|
|
102
|
-
shape,
|
|
103
|
-
...options
|
|
104
|
-
}),
|
|
105
|
-
currency: (options) => ({
|
|
106
|
-
type: "currency",
|
|
107
|
-
shape: CurrencyInfoSchema,
|
|
108
|
-
description: options?.description || "Currency information with code, symbol, format, amount, and text",
|
|
109
|
-
optional: options?.optional
|
|
110
|
-
})
|
|
111
|
-
};
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import z from "/vendor/.vite-deps-zod.js__v--7cce5f32.js";
|
|
2
|
-
export const CaptureNetworkBlockSchema = z.object({
|
|
3
|
-
name: z.literal("capture-network"),
|
|
4
|
-
targetUrl: z.string().url(),
|
|
5
|
-
waitForLoadComplete: z.boolean().optional(),
|
|
6
|
-
timeout: z.number().min(0).optional(),
|
|
7
|
-
includeRequestHeaders: z.boolean().optional(),
|
|
8
|
-
includeResponseHeaders: z.boolean().optional(),
|
|
9
|
-
includeResponseBody: z.boolean().optional(),
|
|
10
|
-
urlFilter: z.string().optional(),
|
|
11
|
-
resourceTypes: z.array(z.string()).optional()
|
|
12
|
-
});
|
|
13
|
-
export function validateCaptureNetworkBlock(data) {
|
|
14
|
-
return CaptureNetworkBlockSchema.parse(data);
|
|
15
|
-
}
|
|
16
|
-
export async function handlerCaptureNetwork(data) {
|
|
17
|
-
try {
|
|
18
|
-
console.log("[CaptureNetworkBlock] Capturing network requests for URL:", data.targetUrl);
|
|
19
|
-
const response = await chrome.runtime.sendMessage({
|
|
20
|
-
type: "CDP_CAPTURE_NETWORK",
|
|
21
|
-
data: {
|
|
22
|
-
targetUrl: data.targetUrl,
|
|
23
|
-
waitForLoadComplete: data.waitForLoadComplete ?? true,
|
|
24
|
-
timeout: data.timeout || 3e4,
|
|
25
|
-
includeRequestHeaders: data.includeRequestHeaders ?? false,
|
|
26
|
-
includeResponseHeaders: data.includeResponseHeaders ?? false,
|
|
27
|
-
includeResponseBody: data.includeResponseBody ?? false,
|
|
28
|
-
urlFilter: data.urlFilter,
|
|
29
|
-
resourceTypes: data.resourceTypes
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
if (response.$isError) {
|
|
33
|
-
return {
|
|
34
|
-
hasError: true,
|
|
35
|
-
message: response.message || "Network capture failed",
|
|
36
|
-
data: void 0
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
console.log(
|
|
40
|
-
"[CaptureNetworkBlock] Network capture successful, captured:",
|
|
41
|
-
response.data.summary.totalRequests,
|
|
42
|
-
"requests"
|
|
43
|
-
);
|
|
44
|
-
return {
|
|
45
|
-
data: response.data
|
|
46
|
-
};
|
|
47
|
-
} catch (error) {
|
|
48
|
-
console.error("[CaptureNetworkBlock] Network capture error:", error);
|
|
49
|
-
return {
|
|
50
|
-
hasError: true,
|
|
51
|
-
message: error instanceof Error ? error.message : "Unknown error in network capture",
|
|
52
|
-
data: void 0
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
}
|
|
@@ -1,55 +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 ClearValueFormsBlockSchema = BaseBlockSchema.extend({
|
|
5
|
-
name: z.literal("clear-value-form"),
|
|
6
|
-
type: z.enum(["text-field", "select", "checkbox"]).optional()
|
|
7
|
-
});
|
|
8
|
-
export function validateClearValueFormsBlock(data) {
|
|
9
|
-
return ClearValueFormsBlockSchema.parse(data);
|
|
10
|
-
}
|
|
11
|
-
export async function handlerClearValueForm(data) {
|
|
12
|
-
try {
|
|
13
|
-
const { selector = "", type = "text-field", findBy = "cssSelector" } = data;
|
|
14
|
-
if (!selector) {
|
|
15
|
-
throw new Error("Selector is required for clear-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
|
-
clearFormValue(element, type);
|
|
22
|
-
return { data: "Form element cleared successfully" };
|
|
23
|
-
} catch (error) {
|
|
24
|
-
return {
|
|
25
|
-
hasError: true,
|
|
26
|
-
message: error instanceof Error ? error.message : "Unknown error in clear-value-form handler",
|
|
27
|
-
data: null
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
function clearFormValue(element, type) {
|
|
32
|
-
switch (type) {
|
|
33
|
-
case "text-field":
|
|
34
|
-
if (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {
|
|
35
|
-
element.value = "";
|
|
36
|
-
element.dispatchEvent(new Event("input", { bubbles: true }));
|
|
37
|
-
element.dispatchEvent(new Event("change", { bubbles: true }));
|
|
38
|
-
}
|
|
39
|
-
break;
|
|
40
|
-
case "select":
|
|
41
|
-
if (element instanceof HTMLSelectElement) {
|
|
42
|
-
element.selectedIndex = 0;
|
|
43
|
-
element.dispatchEvent(new Event("change", { bubbles: true }));
|
|
44
|
-
}
|
|
45
|
-
break;
|
|
46
|
-
case "checkbox":
|
|
47
|
-
if (element instanceof HTMLInputElement && element.type === "checkbox") {
|
|
48
|
-
element.checked = false;
|
|
49
|
-
element.dispatchEvent(new Event("change", { bubbles: true }));
|
|
50
|
-
}
|
|
51
|
-
break;
|
|
52
|
-
default:
|
|
53
|
-
throw new Error(`Unsupported form element type: ${type}`);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import z from "/vendor/.vite-deps-zod.js__v--7cce5f32.js";
|
|
2
|
-
import __vite__cjsImport1_jsonata from "/vendor/.vite-deps-jsonata.js__v--7cce5f32.js"; const jsonata = __vite__cjsImport1_jsonata.__esModule ? __vite__cjsImport1_jsonata.default : __vite__cjsImport1_jsonata;
|
|
3
|
-
export const DataExtractBlockSchema = z.object({
|
|
4
|
-
name: z.literal("data-extract"),
|
|
5
|
-
code: z.string(),
|
|
6
|
-
inputData: z.any().optional()
|
|
7
|
-
});
|
|
8
|
-
export function validateDataExtractBlock(data) {
|
|
9
|
-
return DataExtractBlockSchema.parse(data);
|
|
10
|
-
}
|
|
11
|
-
export async function handlerDataExtract(data) {
|
|
12
|
-
try {
|
|
13
|
-
console.log("[DataExtractBlock] Executing JSONata query:", data.code);
|
|
14
|
-
const expression = jsonata(data.code);
|
|
15
|
-
const result = await expression.evaluate(data.inputData);
|
|
16
|
-
console.log("[DataExtractBlock] Data extraction successful");
|
|
17
|
-
return {
|
|
18
|
-
data: result
|
|
19
|
-
};
|
|
20
|
-
} catch (error) {
|
|
21
|
-
console.error("[DataExtractBlock] Data extraction error:", error);
|
|
22
|
-
return {
|
|
23
|
-
hasError: true,
|
|
24
|
-
message: error instanceof Error ? error.message : "Unknown error in data extraction",
|
|
25
|
-
data: void 0
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
}
|
|
@@ -1,26 +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 ElementExistsBlockSchema = BaseBlockSchema.extend({
|
|
5
|
-
name: z.literal("element-exists")
|
|
6
|
-
});
|
|
7
|
-
export function validateElementExistsBlock(data) {
|
|
8
|
-
return ElementExistsBlockSchema.parse(data);
|
|
9
|
-
}
|
|
10
|
-
export async function handlerElementExists(data) {
|
|
11
|
-
try {
|
|
12
|
-
const { selector = "", findBy = "cssSelector", option } = data;
|
|
13
|
-
if (!selector) {
|
|
14
|
-
throw new Error("Selector is required for element-exists block");
|
|
15
|
-
}
|
|
16
|
-
const element = await findElement({ selector, findBy, option });
|
|
17
|
-
const exists = element !== null;
|
|
18
|
-
return { data: exists };
|
|
19
|
-
} catch (error) {
|
|
20
|
-
return {
|
|
21
|
-
hasError: true,
|
|
22
|
-
message: error instanceof Error ? error.message : "Unknown error in element-exists handler",
|
|
23
|
-
data: null
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
}
|
|
@@ -1,143 +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 EventClickBlockSchema = BaseBlockSchema.extend({
|
|
5
|
-
name: z.literal("event-click"),
|
|
6
|
-
textFilter: z.object({
|
|
7
|
-
text: z.union([z.string(), z.array(z.string())]),
|
|
8
|
-
mode: z.enum(["exact", "contains", "startsWith", "endsWith", "regex"])
|
|
9
|
-
}).optional()
|
|
10
|
-
});
|
|
11
|
-
export function validateEventClickBlock(data) {
|
|
12
|
-
return EventClickBlockSchema.parse(data);
|
|
13
|
-
}
|
|
14
|
-
export async function handlerEventClick(data) {
|
|
15
|
-
try {
|
|
16
|
-
const { selector = "", findBy = "cssSelector", option, textFilter } = data;
|
|
17
|
-
if (!selector) {
|
|
18
|
-
throw new Error("Selector is required for event-click block");
|
|
19
|
-
}
|
|
20
|
-
const elements = await findElement({ selector, findBy, option });
|
|
21
|
-
if (!elements) {
|
|
22
|
-
throw new Error("Element not found for clicking");
|
|
23
|
-
}
|
|
24
|
-
let targetElement;
|
|
25
|
-
if (Array.isArray(elements)) {
|
|
26
|
-
if (textFilter) {
|
|
27
|
-
const filteredElement = selectElementByText(elements, textFilter.text, textFilter.mode);
|
|
28
|
-
if (!filteredElement) {
|
|
29
|
-
const textDisplay = Array.isArray(textFilter.text) ? textFilter.text.join(", ") : textFilter.text;
|
|
30
|
-
throw new Error(`No element found with text filter: "${textDisplay}" (mode: ${textFilter.mode})`);
|
|
31
|
-
}
|
|
32
|
-
targetElement = filteredElement;
|
|
33
|
-
} else {
|
|
34
|
-
targetElement = elements[0];
|
|
35
|
-
}
|
|
36
|
-
} else {
|
|
37
|
-
targetElement = elements;
|
|
38
|
-
}
|
|
39
|
-
await simulateClickElement(targetElement);
|
|
40
|
-
return { data: true };
|
|
41
|
-
} catch (error) {
|
|
42
|
-
console.log(error);
|
|
43
|
-
return {
|
|
44
|
-
hasError: true,
|
|
45
|
-
message: error instanceof Error ? error.message : "Unknown error in event-click handler",
|
|
46
|
-
data: false
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
function selectElementByText(elements, textFilter, mode) {
|
|
51
|
-
for (const element of elements) {
|
|
52
|
-
const text = getElementText(element);
|
|
53
|
-
const textsToCheck = Array.isArray(textFilter) ? textFilter : [textFilter];
|
|
54
|
-
for (const filterText of textsToCheck) {
|
|
55
|
-
let matches = false;
|
|
56
|
-
switch (mode) {
|
|
57
|
-
case "exact":
|
|
58
|
-
matches = text === filterText;
|
|
59
|
-
break;
|
|
60
|
-
case "contains":
|
|
61
|
-
matches = text.includes(filterText);
|
|
62
|
-
break;
|
|
63
|
-
case "startsWith":
|
|
64
|
-
matches = text.startsWith(filterText);
|
|
65
|
-
break;
|
|
66
|
-
case "endsWith":
|
|
67
|
-
matches = text.endsWith(filterText);
|
|
68
|
-
break;
|
|
69
|
-
case "regex":
|
|
70
|
-
try {
|
|
71
|
-
const regex = new RegExp(filterText);
|
|
72
|
-
matches = regex.test(text);
|
|
73
|
-
} catch (error) {
|
|
74
|
-
console.warn("Invalid regex pattern:", filterText);
|
|
75
|
-
continue;
|
|
76
|
-
}
|
|
77
|
-
break;
|
|
78
|
-
}
|
|
79
|
-
if (matches) {
|
|
80
|
-
return element;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
return null;
|
|
85
|
-
}
|
|
86
|
-
function getElementText(element) {
|
|
87
|
-
if (element.innerText) {
|
|
88
|
-
return element.innerText.trim();
|
|
89
|
-
}
|
|
90
|
-
if (element.textContent) {
|
|
91
|
-
return element.textContent.trim();
|
|
92
|
-
}
|
|
93
|
-
if (element instanceof HTMLInputElement && element.value) {
|
|
94
|
-
return element.value.trim();
|
|
95
|
-
}
|
|
96
|
-
const placeholder = element.getAttribute("placeholder");
|
|
97
|
-
if (placeholder) {
|
|
98
|
-
return placeholder.trim();
|
|
99
|
-
}
|
|
100
|
-
const title = element.getAttribute("title");
|
|
101
|
-
if (title) {
|
|
102
|
-
return title.trim();
|
|
103
|
-
}
|
|
104
|
-
const ariaLabel = element.getAttribute("aria-label");
|
|
105
|
-
if (ariaLabel) {
|
|
106
|
-
return ariaLabel.trim();
|
|
107
|
-
}
|
|
108
|
-
return "";
|
|
109
|
-
}
|
|
110
|
-
async function simulateClickElement(element) {
|
|
111
|
-
element.scrollIntoView({
|
|
112
|
-
behavior: "instant",
|
|
113
|
-
block: "center",
|
|
114
|
-
inline: "center"
|
|
115
|
-
});
|
|
116
|
-
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
117
|
-
if (element.focus) {
|
|
118
|
-
element.focus();
|
|
119
|
-
}
|
|
120
|
-
const rect = element.getBoundingClientRect();
|
|
121
|
-
const centerX = rect.left + rect.width / 2;
|
|
122
|
-
const centerY = rect.top + rect.height / 2;
|
|
123
|
-
try {
|
|
124
|
-
const response = await chrome.runtime.sendMessage({
|
|
125
|
-
type: "CDP_CLICK",
|
|
126
|
-
data: {
|
|
127
|
-
x: centerX,
|
|
128
|
-
y: centerY
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
if (response && !response.$isError) {
|
|
132
|
-
console.log("[EventClick] CDP click successful:", response);
|
|
133
|
-
} else {
|
|
134
|
-
throw new Error(response?.message || "CDP click failed");
|
|
135
|
-
}
|
|
136
|
-
} catch (error) {
|
|
137
|
-
console.error("[EventClick] CDP click failed, falling back to native click:", error);
|
|
138
|
-
if (element.click) {
|
|
139
|
-
element.click();
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
143
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import z from "/vendor/.vite-deps-zod.js__v--34285d49.js";
|
|
2
|
-
export const ExportDataBlockSchema = z.object({
|
|
3
|
-
name: z.literal("export-data"),
|
|
4
|
-
data: z.any(),
|
|
5
|
-
format: z.enum(["json", "csv", "xlsx"]),
|
|
6
|
-
filename: z.string().optional(),
|
|
7
|
-
csvOptions: z.object({
|
|
8
|
-
delimiter: z.string().optional(),
|
|
9
|
-
includeHeaders: z.boolean().optional()
|
|
10
|
-
}).optional()
|
|
11
|
-
});
|
|
12
|
-
export function validateExportDataBlock(data) {
|
|
13
|
-
return ExportDataBlockSchema.parse(data);
|
|
14
|
-
}
|
|
15
|
-
export async function handlerExportData(block) {
|
|
16
|
-
try {
|
|
17
|
-
const { data, format, filename, csvOptions } = block;
|
|
18
|
-
console.log("[ExportDataBlock] Sending export request to background:", format);
|
|
19
|
-
const response = await chrome.runtime.sendMessage({
|
|
20
|
-
type: "EXPORT_DATA",
|
|
21
|
-
data: {
|
|
22
|
-
data,
|
|
23
|
-
format,
|
|
24
|
-
filename,
|
|
25
|
-
csvOptions
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
if (response.$isError) {
|
|
29
|
-
return {
|
|
30
|
-
hasError: true,
|
|
31
|
-
message: response.message || "Export failed",
|
|
32
|
-
data: void 0
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
console.log("[ExportDataBlock] Export successful:", response.data.filename);
|
|
36
|
-
return {
|
|
37
|
-
data: response.data
|
|
38
|
-
};
|
|
39
|
-
} catch (error) {
|
|
40
|
-
console.error("[ExportDataBlock] Export error:", error);
|
|
41
|
-
return {
|
|
42
|
-
hasError: true,
|
|
43
|
-
message: error instanceof Error ? error.message : "Unknown error in export-data handler",
|
|
44
|
-
data: void 0
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import z from "/vendor/.vite-deps-zod.js__v--34285d49.js";
|
|
2
|
-
export const FetchApiBlockSchema = z.object({
|
|
3
|
-
name: z.literal("fetch-api"),
|
|
4
|
-
url: z.string(),
|
|
5
|
-
method: z.enum(["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"]).optional(),
|
|
6
|
-
headers: z.record(z.string(), z.string()).optional(),
|
|
7
|
-
body: z.record(z.string(), z.any()).optional(),
|
|
8
|
-
timeout: z.number().min(0).optional(),
|
|
9
|
-
parseJson: z.boolean().optional(),
|
|
10
|
-
returnHeaders: z.boolean().optional()
|
|
11
|
-
});
|
|
12
|
-
export function validateFetchApiBlock(data) {
|
|
13
|
-
return FetchApiBlockSchema.parse(data);
|
|
14
|
-
}
|
|
15
|
-
export async function handlerFetchApi(data) {
|
|
16
|
-
try {
|
|
17
|
-
console.log("[FetchApiBlock] Sending API request to background:", data.url);
|
|
18
|
-
const response = await chrome.runtime.sendMessage({
|
|
19
|
-
type: "FETCH_API",
|
|
20
|
-
data: {
|
|
21
|
-
url: data.url,
|
|
22
|
-
method: data.method || "GET",
|
|
23
|
-
headers: data.headers || {},
|
|
24
|
-
body: data.body,
|
|
25
|
-
timeout: data.timeout || 3e4,
|
|
26
|
-
parseJson: data.parseJson ?? true,
|
|
27
|
-
// 기본값 true
|
|
28
|
-
returnHeaders: data.returnHeaders ?? false
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
if (response.$isError) {
|
|
32
|
-
return {
|
|
33
|
-
hasError: true,
|
|
34
|
-
message: response.message || "API request failed",
|
|
35
|
-
data: void 0
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
console.log("[FetchApiBlock] API request successful");
|
|
39
|
-
return {
|
|
40
|
-
data: response.data
|
|
41
|
-
};
|
|
42
|
-
} catch (error) {
|
|
43
|
-
console.error("[FetchApiBlock] API request error:", error);
|
|
44
|
-
return {
|
|
45
|
-
hasError: true,
|
|
46
|
-
message: error instanceof Error ? error.message : "Unknown error in API request",
|
|
47
|
-
data: void 0
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
}
|
|
@@ -1,33 +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 GetAttributeValueBlockSchema = BaseBlockSchema.extend({
|
|
5
|
-
name: z.literal("attribute-value"),
|
|
6
|
-
attributeName: z.string()
|
|
7
|
-
});
|
|
8
|
-
export function validateGetAttributeValueBlock(data) {
|
|
9
|
-
return GetAttributeValueBlockSchema.parse(data);
|
|
10
|
-
}
|
|
11
|
-
export async function handlerGetAttributeValue(data) {
|
|
12
|
-
try {
|
|
13
|
-
const { selector = "", attributeName, findBy = "cssSelector", option } = data;
|
|
14
|
-
if (!selector) {
|
|
15
|
-
throw new Error("Selector is required for attribute-value block");
|
|
16
|
-
}
|
|
17
|
-
if (!attributeName) {
|
|
18
|
-
throw new Error("Attribute name is required for attribute-value block");
|
|
19
|
-
}
|
|
20
|
-
const elements = await findElement({ selector, findBy, option });
|
|
21
|
-
if (!elements) {
|
|
22
|
-
return { data: null };
|
|
23
|
-
}
|
|
24
|
-
const result = Array.isArray(elements) ? elements.map((element) => element.getAttribute(attributeName)).filter((value) => value !== null) : elements.getAttribute(attributeName);
|
|
25
|
-
return { data: result };
|
|
26
|
-
} catch (error) {
|
|
27
|
-
return {
|
|
28
|
-
hasError: true,
|
|
29
|
-
message: error instanceof Error ? error.message : "Unknown error in attribute-value handler",
|
|
30
|
-
data: null
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
}
|