@weave-apps/sdk 0.9.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/WeaveAPIClient.d.ts +49 -0
- package/dist/WeaveAPIClient.d.ts.map +1 -1
- package/dist/WeaveDOMAPI.d.ts +66 -0
- package/dist/WeaveDOMAPI.d.ts.map +1 -1
- package/dist/WeaveDOMAPI.js +51 -0
- package/dist/apis/api-mono/services/interfaces/WorkflowsTriggersWorkflowCompanyIdPostPost.d.ts +224 -0
- package/dist/apis/api-mono/services/interfaces/WorkflowsTriggersWorkflowCompanyIdPostPost.d.ts.map +1 -0
- package/dist/apis/api-mono/services/interfaces/WorkflowsTriggersWorkflowCompanyIdPostPost.js +66 -0
- package/dist/app-sdk/src/WeaveAPIClient.d.ts +370 -0
- package/dist/app-sdk/src/WeaveAPIClient.d.ts.map +1 -0
- package/dist/app-sdk/src/WeaveAPIClient.js +361 -0
- package/dist/app-sdk/src/WeaveAppInstanceAPI.d.ts +237 -0
- package/dist/app-sdk/src/WeaveAppInstanceAPI.d.ts.map +1 -0
- package/dist/app-sdk/src/WeaveAppInstanceAPI.js +395 -0
- package/dist/app-sdk/src/WeaveBackgroundAPI.d.ts +81 -0
- package/dist/app-sdk/src/WeaveBackgroundAPI.d.ts.map +1 -0
- package/dist/app-sdk/src/WeaveBackgroundAPI.js +165 -0
- package/dist/app-sdk/src/WeaveBaseApp.d.ts +318 -0
- package/dist/app-sdk/src/WeaveBaseApp.d.ts.map +1 -0
- package/dist/app-sdk/src/WeaveBaseApp.js +434 -0
- package/dist/app-sdk/src/WeaveCronAPI.d.ts +68 -0
- package/dist/app-sdk/src/WeaveCronAPI.d.ts.map +1 -0
- package/dist/app-sdk/src/WeaveCronAPI.js +172 -0
- package/dist/app-sdk/src/WeaveDOMAPI.d.ts +593 -0
- package/dist/app-sdk/src/WeaveDOMAPI.d.ts.map +1 -0
- package/dist/app-sdk/src/WeaveDOMAPI.js +774 -0
- package/dist/app-sdk/src/global.d.ts +25 -0
- package/dist/app-sdk/src/global.d.ts.map +1 -0
- package/dist/app-sdk/src/global.js +23 -0
- package/dist/app-sdk/src/index.d.ts +14 -0
- package/dist/app-sdk/src/index.d.ts.map +1 -0
- package/dist/app-sdk/src/index.js +14 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +3 -3
- package/templates/WEAVE_SPEC.md +417 -1
|
@@ -0,0 +1,593 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Weave DOM API
|
|
3
|
+
*
|
|
4
|
+
* Client-side API for iframe apps to interact with the parent page DOM
|
|
5
|
+
* through the secure DOM Bridge in the content script.
|
|
6
|
+
*/
|
|
7
|
+
import type { FileConfig as WorkflowFileConfig } from 'apis/api-mono/services/interfaces/WorkflowsTriggersWorkflowCompanyIdPostPost';
|
|
8
|
+
/**
|
|
9
|
+
* Insert position for HTML insertion
|
|
10
|
+
*/
|
|
11
|
+
export type InsertPosition = 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend';
|
|
12
|
+
/**
|
|
13
|
+
* Serialized element snapshot from parent page
|
|
14
|
+
*
|
|
15
|
+
* IMPORTANT: This interface must be kept in sync with:
|
|
16
|
+
* /frontends/browser-extensions/chrome/src/content/modules/DOMBridge.types.ts
|
|
17
|
+
*
|
|
18
|
+
* We cannot import directly due to different build contexts (browser extension vs iframe bundle).
|
|
19
|
+
* Any changes to ElementSnapshot in DOMBridge.types.ts MUST be reflected here.
|
|
20
|
+
*/
|
|
21
|
+
export interface ElementSnapshot {
|
|
22
|
+
tagName: string;
|
|
23
|
+
id: string;
|
|
24
|
+
className: string;
|
|
25
|
+
textContent: string;
|
|
26
|
+
outerHTML: string;
|
|
27
|
+
attributes: Record<string, string>;
|
|
28
|
+
value?: string;
|
|
29
|
+
exists: boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Form field data
|
|
33
|
+
*/
|
|
34
|
+
export interface FormFieldData {
|
|
35
|
+
name: string;
|
|
36
|
+
id: string;
|
|
37
|
+
type: string;
|
|
38
|
+
value: string | string[];
|
|
39
|
+
label: string;
|
|
40
|
+
placeholder: string;
|
|
41
|
+
required: boolean;
|
|
42
|
+
disabled: boolean;
|
|
43
|
+
readonly: boolean;
|
|
44
|
+
pattern: string;
|
|
45
|
+
min: string;
|
|
46
|
+
max: string;
|
|
47
|
+
minLength: number;
|
|
48
|
+
maxLength: number;
|
|
49
|
+
checked?: boolean;
|
|
50
|
+
options?: Array<{
|
|
51
|
+
value: string;
|
|
52
|
+
text: string;
|
|
53
|
+
selected: boolean;
|
|
54
|
+
}>;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Complete form data
|
|
58
|
+
*/
|
|
59
|
+
export interface FormData {
|
|
60
|
+
formId: string;
|
|
61
|
+
formName: string;
|
|
62
|
+
formAction: string;
|
|
63
|
+
formMethod: string;
|
|
64
|
+
fields: FormFieldData[];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Form click event callback
|
|
68
|
+
*/
|
|
69
|
+
export type FormClickCallback = (data: {
|
|
70
|
+
formData: FormData;
|
|
71
|
+
clickedElement: {
|
|
72
|
+
tagName: string;
|
|
73
|
+
name: string;
|
|
74
|
+
id: string;
|
|
75
|
+
type: string;
|
|
76
|
+
};
|
|
77
|
+
}) => void;
|
|
78
|
+
/**
|
|
79
|
+
* Element selector hover event callback (for element hover listeners)
|
|
80
|
+
*/
|
|
81
|
+
export type ElementSelectorHoverCallback = (data: {
|
|
82
|
+
element: ElementSnapshot;
|
|
83
|
+
event: {
|
|
84
|
+
clientX: number;
|
|
85
|
+
clientY: number;
|
|
86
|
+
timestamp: number;
|
|
87
|
+
hoverDelayMs: number;
|
|
88
|
+
};
|
|
89
|
+
}) => void;
|
|
90
|
+
/**
|
|
91
|
+
* Workflow action from content script
|
|
92
|
+
*/
|
|
93
|
+
export interface WorkflowActionPayload {
|
|
94
|
+
type: string;
|
|
95
|
+
name: string;
|
|
96
|
+
timestamp: number;
|
|
97
|
+
selector: string;
|
|
98
|
+
fileConfig?: WorkflowFileConfig;
|
|
99
|
+
value?: string;
|
|
100
|
+
elementInfo: {
|
|
101
|
+
tagName: string;
|
|
102
|
+
id?: string;
|
|
103
|
+
className?: string;
|
|
104
|
+
text?: string;
|
|
105
|
+
attributes?: Record<string, string>;
|
|
106
|
+
};
|
|
107
|
+
pauseAfterInSeconds?: number;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Workflow node payload from content script
|
|
111
|
+
*/
|
|
112
|
+
export interface WorkflowNodePayload {
|
|
113
|
+
id: string;
|
|
114
|
+
type: string;
|
|
115
|
+
name: string;
|
|
116
|
+
nextNodeId?: string;
|
|
117
|
+
selector?: string;
|
|
118
|
+
value?: string;
|
|
119
|
+
elementInfo?: {
|
|
120
|
+
tagName: string;
|
|
121
|
+
id?: string;
|
|
122
|
+
className?: string;
|
|
123
|
+
text?: string;
|
|
124
|
+
attributes?: Record<string, string>;
|
|
125
|
+
};
|
|
126
|
+
fileConfig?: WorkflowFileConfig;
|
|
127
|
+
conditionConfig?: any;
|
|
128
|
+
pauseAfterInSeconds?: number;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Workflow saved event callback
|
|
132
|
+
*/
|
|
133
|
+
export type WorkflowSavedCallback = (workflow: {
|
|
134
|
+
name: string;
|
|
135
|
+
startUrl: string;
|
|
136
|
+
startNodeId: string;
|
|
137
|
+
useTypingEffect?: boolean;
|
|
138
|
+
nodes: WorkflowNodePayload[];
|
|
139
|
+
}) => void;
|
|
140
|
+
/**
|
|
141
|
+
* Data mapping for trigger-to-workflow data injection
|
|
142
|
+
*/
|
|
143
|
+
export interface TriggerDataMapping {
|
|
144
|
+
triggerFieldLabel: string;
|
|
145
|
+
nodeId: string;
|
|
146
|
+
nodeSelector?: string;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Trigger saved event callback
|
|
150
|
+
*/
|
|
151
|
+
export type TriggerSavedCallback = (trigger: {
|
|
152
|
+
name: string;
|
|
153
|
+
url: string;
|
|
154
|
+
urlPattern: string;
|
|
155
|
+
events: any[];
|
|
156
|
+
dataCapture: any;
|
|
157
|
+
linkedWorkflowId?: string;
|
|
158
|
+
dataMappings?: TriggerDataMapping[];
|
|
159
|
+
}) => void;
|
|
160
|
+
/**
|
|
161
|
+
* Element click event callback (for injected elements)
|
|
162
|
+
*/
|
|
163
|
+
export type ElementClickCallback = (data: {
|
|
164
|
+
elementId: string;
|
|
165
|
+
event: {
|
|
166
|
+
clientX: number;
|
|
167
|
+
clientY: number;
|
|
168
|
+
target: {
|
|
169
|
+
tagName: string;
|
|
170
|
+
id: string;
|
|
171
|
+
className: string;
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
}) => void;
|
|
175
|
+
/**
|
|
176
|
+
* Element selector click event callback (for element click listeners)
|
|
177
|
+
*/
|
|
178
|
+
export type ElementSelectorClickCallback = (data: {
|
|
179
|
+
element: ElementSnapshot;
|
|
180
|
+
event: {
|
|
181
|
+
clientX: number;
|
|
182
|
+
clientY: number;
|
|
183
|
+
timestamp: number;
|
|
184
|
+
};
|
|
185
|
+
}) => void;
|
|
186
|
+
/**
|
|
187
|
+
* Element change event callback (for element watchers)
|
|
188
|
+
*/
|
|
189
|
+
export type ElementChangeCallback = (data: {
|
|
190
|
+
changeType: 'attribute' | 'removed' | 'childList';
|
|
191
|
+
element: ElementSnapshot;
|
|
192
|
+
attributeName?: string;
|
|
193
|
+
attributeValue?: string;
|
|
194
|
+
}) => void;
|
|
195
|
+
/**
|
|
196
|
+
* Weave DOM API
|
|
197
|
+
* Provides methods for iframe apps to interact with parent page DOM
|
|
198
|
+
*/
|
|
199
|
+
export declare class WeaveDOMAPI {
|
|
200
|
+
private pendingRequests;
|
|
201
|
+
private messageListener;
|
|
202
|
+
private requestCounter;
|
|
203
|
+
private timeout;
|
|
204
|
+
private formClickCallback;
|
|
205
|
+
private workflowSavedCallback;
|
|
206
|
+
private triggerSavedCallback;
|
|
207
|
+
private elementClickCallbacks;
|
|
208
|
+
private elementSelectorClickCallbacks;
|
|
209
|
+
private elementSelectorHoverCallbacks;
|
|
210
|
+
private elementChangeCallbacks;
|
|
211
|
+
private elementIdCounter;
|
|
212
|
+
private watcherIdCounter;
|
|
213
|
+
constructor();
|
|
214
|
+
/**
|
|
215
|
+
* Initialize the API and start listening for responses
|
|
216
|
+
*/
|
|
217
|
+
private initialize;
|
|
218
|
+
/**
|
|
219
|
+
* Cleanup
|
|
220
|
+
*/
|
|
221
|
+
destroy(): void;
|
|
222
|
+
/**
|
|
223
|
+
* Handle response from content script
|
|
224
|
+
*/
|
|
225
|
+
private handleResponse;
|
|
226
|
+
/**
|
|
227
|
+
* Send request to content script
|
|
228
|
+
*/
|
|
229
|
+
private sendRequest;
|
|
230
|
+
/**
|
|
231
|
+
* Query a single element from parent page
|
|
232
|
+
*/
|
|
233
|
+
query(selector: string): Promise<ElementSnapshot>;
|
|
234
|
+
/**
|
|
235
|
+
* Query all matching elements from parent page
|
|
236
|
+
*/
|
|
237
|
+
queryAll(selector: string): Promise<ElementSnapshot[]>;
|
|
238
|
+
/**
|
|
239
|
+
* Get text content of an element
|
|
240
|
+
*/
|
|
241
|
+
getText(selector: string): Promise<string>;
|
|
242
|
+
/**
|
|
243
|
+
* Get attribute value of an element
|
|
244
|
+
*/
|
|
245
|
+
getAttribute(selector: string, attribute: string): Promise<string | null>;
|
|
246
|
+
/**
|
|
247
|
+
* Get value of an input element
|
|
248
|
+
*/
|
|
249
|
+
getValue(selector: string): Promise<string>;
|
|
250
|
+
/**
|
|
251
|
+
* Check if a checkbox or radio button is checked
|
|
252
|
+
* @param selector - CSS selector for the checkbox/radio element
|
|
253
|
+
* @returns Promise with true if checked, false otherwise
|
|
254
|
+
*
|
|
255
|
+
* @example
|
|
256
|
+
* ```typescript
|
|
257
|
+
* const isChecked = await weaveDOM.isChecked('#my-checkbox');
|
|
258
|
+
* if (isChecked) {
|
|
259
|
+
* console.log('Checkbox is checked');
|
|
260
|
+
* }
|
|
261
|
+
* ```
|
|
262
|
+
*/
|
|
263
|
+
isChecked(selector: string): Promise<boolean>;
|
|
264
|
+
/**
|
|
265
|
+
* Check if element has a class
|
|
266
|
+
*/
|
|
267
|
+
hasClass(selector: string, className: string): Promise<boolean>;
|
|
268
|
+
/**
|
|
269
|
+
* Get the current page URL
|
|
270
|
+
* Returns the parent page URL (not the iframe URL)
|
|
271
|
+
* @returns Promise with the current page URL
|
|
272
|
+
*/
|
|
273
|
+
getPageUrl(): Promise<string>;
|
|
274
|
+
/**
|
|
275
|
+
* Reload the current page
|
|
276
|
+
* Triggers a full page reload of the parent page
|
|
277
|
+
*/
|
|
278
|
+
reloadPage(): Promise<void>;
|
|
279
|
+
/**
|
|
280
|
+
* Set text content of an element
|
|
281
|
+
*/
|
|
282
|
+
setText(selector: string, text: string): Promise<void>;
|
|
283
|
+
/**
|
|
284
|
+
* Set attribute value of an element
|
|
285
|
+
*/
|
|
286
|
+
setAttribute(selector: string, attribute: string, value: string): Promise<void>;
|
|
287
|
+
/**
|
|
288
|
+
* Set value of an input element
|
|
289
|
+
*/
|
|
290
|
+
setValue(selector: string, value: string): Promise<void>;
|
|
291
|
+
/**
|
|
292
|
+
* Add a class to an element
|
|
293
|
+
*/
|
|
294
|
+
addClass(selector: string, className: string): Promise<void>;
|
|
295
|
+
/**
|
|
296
|
+
* Remove a class from an element
|
|
297
|
+
*/
|
|
298
|
+
removeClass(selector: string, className: string): Promise<void>;
|
|
299
|
+
/**
|
|
300
|
+
* Toggle a class on an element
|
|
301
|
+
*/
|
|
302
|
+
toggleClass(selector: string, className: string): Promise<boolean>;
|
|
303
|
+
/**
|
|
304
|
+
* Set a CSS style property on an element
|
|
305
|
+
*/
|
|
306
|
+
setStyle(selector: string, property: string, value: string): Promise<void>;
|
|
307
|
+
/**
|
|
308
|
+
* Insert HTML relative to an element
|
|
309
|
+
*/
|
|
310
|
+
insertHTML(selector: string, position: InsertPosition, html: string): Promise<void>;
|
|
311
|
+
/**
|
|
312
|
+
* Remove an element from the DOM
|
|
313
|
+
*/
|
|
314
|
+
removeElement(selector: string): Promise<void>;
|
|
315
|
+
/**
|
|
316
|
+
* Click an element on the parent page
|
|
317
|
+
*
|
|
318
|
+
* @param selector - CSS selector for the element to click
|
|
319
|
+
* @returns Promise that resolves when the click is complete
|
|
320
|
+
*
|
|
321
|
+
* @example
|
|
322
|
+
* // Click a button
|
|
323
|
+
* await weaveDOM.clickElement('button#submit');
|
|
324
|
+
*
|
|
325
|
+
* // Click a link
|
|
326
|
+
* await weaveDOM.clickElement('a.nav-item[href="/dashboard"]');
|
|
327
|
+
*/
|
|
328
|
+
clickElement(selector: string): Promise<void>;
|
|
329
|
+
/**
|
|
330
|
+
* Get form data from a form or an element inside a form
|
|
331
|
+
* @param selector - CSS selector for the form or an element inside the form
|
|
332
|
+
* @returns Promise with complete form data including all fields
|
|
333
|
+
*/
|
|
334
|
+
getFormData(selector: string): Promise<FormData>;
|
|
335
|
+
/**
|
|
336
|
+
* Start listening for clicks on form elements
|
|
337
|
+
* When a form element is clicked, the callback will be invoked with the form data
|
|
338
|
+
* @param callback - Function to call when a form element is clicked
|
|
339
|
+
*/
|
|
340
|
+
startFormClickListener(callback: FormClickCallback): Promise<void>;
|
|
341
|
+
/**
|
|
342
|
+
* Stop listening for clicks on form elements
|
|
343
|
+
*/
|
|
344
|
+
stopFormClickListener(): Promise<void>;
|
|
345
|
+
/**
|
|
346
|
+
* Start listening for clicks on elements matching a CSS selector
|
|
347
|
+
* When an element is clicked, the callback will be invoked with element data
|
|
348
|
+
*
|
|
349
|
+
* @param selector - CSS selector for elements to listen to (e.g., 'div.sortable-item[role="button"]')
|
|
350
|
+
* @param callback - Function to call when a matching element is clicked
|
|
351
|
+
* @param options - Optional configuration
|
|
352
|
+
* @param options.listenerId - Unique ID for this listener (auto-generated if not provided)
|
|
353
|
+
* @returns Promise<string> - The listener ID (for cleanup with stopElementClickListener)
|
|
354
|
+
*
|
|
355
|
+
* @example
|
|
356
|
+
* // Listen to tab buttons
|
|
357
|
+
* const listenerId = await weaveDOM.startElementClickListener(
|
|
358
|
+
* 'div.sortable-item[role="button"]',
|
|
359
|
+
* (data) => {
|
|
360
|
+
* console.log('Tab clicked:', data.element.textContent);
|
|
361
|
+
* console.log('Element:', data.element);
|
|
362
|
+
* }
|
|
363
|
+
* );
|
|
364
|
+
*
|
|
365
|
+
* // Later, stop listening
|
|
366
|
+
* await weaveDOM.stopElementClickListener(listenerId);
|
|
367
|
+
*/
|
|
368
|
+
startElementClickListener(selector: string, callback: ElementSelectorClickCallback, options?: {
|
|
369
|
+
listenerId?: string;
|
|
370
|
+
}): Promise<string>;
|
|
371
|
+
/**
|
|
372
|
+
* Stop listening for clicks on elements
|
|
373
|
+
*
|
|
374
|
+
* @param listenerId - The ID of the listener to stop (returned from startElementClickListener)
|
|
375
|
+
*
|
|
376
|
+
* @example
|
|
377
|
+
* const listenerId = await weaveDOM.startElementClickListener('button', callback);
|
|
378
|
+
* // ... later ...
|
|
379
|
+
* await weaveDOM.stopElementClickListener(listenerId);
|
|
380
|
+
*/
|
|
381
|
+
stopElementClickListener(listenerId: string): Promise<void>;
|
|
382
|
+
/**
|
|
383
|
+
* Start listening for hover on elements matching a CSS selector
|
|
384
|
+
* When an element is hovered for the configured delay, the callback will be invoked with element data
|
|
385
|
+
*
|
|
386
|
+
* @param selector - CSS selector for elements to listen to
|
|
387
|
+
* @param callback - Function to call when a matching element is hovered
|
|
388
|
+
* @param options - Optional configuration
|
|
389
|
+
* @param options.listenerId - Unique ID for this listener (auto-generated if not provided)
|
|
390
|
+
* @param options.hoverDelayMs - Delay in milliseconds before hover callback fires (default: 1000)
|
|
391
|
+
* @returns Promise<string> - The listener ID (for cleanup with stopElementHoverListener)
|
|
392
|
+
*/
|
|
393
|
+
startElementHoverListener(selector: string, callback: ElementSelectorHoverCallback, options?: {
|
|
394
|
+
listenerId?: string;
|
|
395
|
+
hoverDelayMs?: number;
|
|
396
|
+
}): Promise<string>;
|
|
397
|
+
/**
|
|
398
|
+
* Stop listening for hover on elements
|
|
399
|
+
*
|
|
400
|
+
* @param listenerId - The ID of the listener to stop (returned from startElementHoverListener)
|
|
401
|
+
*/
|
|
402
|
+
stopElementHoverListener(listenerId: string): Promise<void>;
|
|
403
|
+
/**
|
|
404
|
+
* Set the value of a form field
|
|
405
|
+
* Handles all input types (text, checkbox, radio, select, textarea, etc.)
|
|
406
|
+
* Automatically triggers validation events
|
|
407
|
+
*
|
|
408
|
+
* @param selector - CSS selector for the form field
|
|
409
|
+
* @param value - Value to set (string for text inputs, boolean for checkboxes, array for multi-selects)
|
|
410
|
+
* @param scrollIntoView - Optional: if true, scrolls element to center of viewport before setting value (default: false)
|
|
411
|
+
*
|
|
412
|
+
* @example
|
|
413
|
+
* // Text input
|
|
414
|
+
* await weaveDOM.setFormFieldValue('input[name="email"]', 'user@example.com');
|
|
415
|
+
*
|
|
416
|
+
* // Checkbox with scroll
|
|
417
|
+
* await weaveDOM.setFormFieldValue('input[name="terms"]', true, true);
|
|
418
|
+
*
|
|
419
|
+
* // Radio button (set to the value of the radio to select)
|
|
420
|
+
* await weaveDOM.setFormFieldValue('input[name="gender"][value="female"]', 'female');
|
|
421
|
+
*
|
|
422
|
+
* // Select
|
|
423
|
+
* await weaveDOM.setFormFieldValue('select[name="country"]', 'US');
|
|
424
|
+
*
|
|
425
|
+
* // Multi-select with scroll to make it visible
|
|
426
|
+
* await weaveDOM.setFormFieldValue('select[name="interests"]', ['sports', 'music'], true);
|
|
427
|
+
*/
|
|
428
|
+
setFormFieldValue(selector: string, value: string | string[] | boolean, scrollIntoView?: boolean): Promise<void>;
|
|
429
|
+
/**
|
|
430
|
+
* Register a callback for when a workflow is saved
|
|
431
|
+
* @param callback - Function to call when a workflow is saved from the content script
|
|
432
|
+
*/
|
|
433
|
+
onWorkflowSaved(callback: WorkflowSavedCallback): void;
|
|
434
|
+
/**
|
|
435
|
+
* Remove the workflow saved callback
|
|
436
|
+
*/
|
|
437
|
+
offWorkflowSaved(): void;
|
|
438
|
+
/**
|
|
439
|
+
* Register a callback for when a trigger is saved
|
|
440
|
+
* @param callback - Function to call when a trigger is saved from the content script
|
|
441
|
+
*/
|
|
442
|
+
onTriggerSaved(callback: TriggerSavedCallback): void;
|
|
443
|
+
/**
|
|
444
|
+
* Remove the trigger saved callback
|
|
445
|
+
*/
|
|
446
|
+
offTriggerSaved(): void;
|
|
447
|
+
/**
|
|
448
|
+
* Inject an element onto the parent page with optional click event listener
|
|
449
|
+
*
|
|
450
|
+
* @param targetSelector - CSS selector for the element to inject relative to
|
|
451
|
+
* @param position - Position relative to target ('beforebegin', 'afterbegin', 'beforeend', 'afterend')
|
|
452
|
+
* @param html - HTML string to inject (will be sanitized)
|
|
453
|
+
* @param options - Optional configuration
|
|
454
|
+
* @param options.onClick - Callback function to invoke when element is clicked
|
|
455
|
+
* @param options.elementId - Custom element ID (auto-generated if not provided)
|
|
456
|
+
* @returns Promise with the element ID
|
|
457
|
+
*
|
|
458
|
+
* @example
|
|
459
|
+
* // Inject a button with click handler
|
|
460
|
+
* const elementId = await weaveDOM.injectElement(
|
|
461
|
+
* 'body',
|
|
462
|
+
* 'beforeend',
|
|
463
|
+
* '<button class="my-button">Click Me</button>',
|
|
464
|
+
* {
|
|
465
|
+
* onClick: (data) => {
|
|
466
|
+
* console.log('Button clicked!', data);
|
|
467
|
+
* }
|
|
468
|
+
* }
|
|
469
|
+
* );
|
|
470
|
+
*
|
|
471
|
+
* // Later, remove the element
|
|
472
|
+
* await weaveDOM.removeInjectedElement(elementId);
|
|
473
|
+
*/
|
|
474
|
+
injectElement(targetSelector: string, position: InsertPosition, html: string, options?: {
|
|
475
|
+
onClick?: ElementClickCallback;
|
|
476
|
+
elementId?: string;
|
|
477
|
+
}): Promise<string>;
|
|
478
|
+
/**
|
|
479
|
+
* Remove an injected element from the parent page
|
|
480
|
+
*
|
|
481
|
+
* @param elementId - ID of the element to remove (returned from injectElement)
|
|
482
|
+
*
|
|
483
|
+
* @example
|
|
484
|
+
* await weaveDOM.removeInjectedElement('weave-injected-1');
|
|
485
|
+
*/
|
|
486
|
+
removeInjectedElement(elementId: string): Promise<void>;
|
|
487
|
+
/**
|
|
488
|
+
* Watch an element for changes (attributes, removal, children)
|
|
489
|
+
*
|
|
490
|
+
* Sets up MutationObservers to monitor:
|
|
491
|
+
* - Attribute changes on the element
|
|
492
|
+
* - Element removal from DOM
|
|
493
|
+
* - Child node changes (optional)
|
|
494
|
+
*
|
|
495
|
+
* @param selector - CSS selector for the element to watch
|
|
496
|
+
* @param callback - Function to call when element changes
|
|
497
|
+
* @param options - Optional configuration
|
|
498
|
+
* @param options.watchAttributes - Watch for attribute changes (default: true)
|
|
499
|
+
* @param options.watchChildren - Watch for child node changes (default: false)
|
|
500
|
+
* @param options.attributeFilter - Optional array of specific attributes to watch
|
|
501
|
+
* @returns Promise with the watcher ID (use to stop watching)
|
|
502
|
+
*
|
|
503
|
+
* @example
|
|
504
|
+
* // Watch for attribute changes
|
|
505
|
+
* const watcherId = await weaveDOM.watchElement(
|
|
506
|
+
* '#my-element',
|
|
507
|
+
* (data) => {
|
|
508
|
+
* if (data.changeType === 'attribute') {
|
|
509
|
+
* console.log(`Attribute ${data.attributeName} changed to: ${data.attributeValue}`);
|
|
510
|
+
* } else if (data.changeType === 'removed') {
|
|
511
|
+
* console.log('Element was removed from DOM');
|
|
512
|
+
* }
|
|
513
|
+
* },
|
|
514
|
+
* {
|
|
515
|
+
* watchAttributes: true,
|
|
516
|
+
* attributeFilter: ['class', 'data-status'] // Only watch specific attributes
|
|
517
|
+
* }
|
|
518
|
+
* );
|
|
519
|
+
*
|
|
520
|
+
* // Later, stop watching
|
|
521
|
+
* await weaveDOM.unwatchElement(watcherId);
|
|
522
|
+
*/
|
|
523
|
+
watchElement(selector: string, callback: ElementChangeCallback, options?: {
|
|
524
|
+
watchAttributes?: boolean;
|
|
525
|
+
watchChildren?: boolean;
|
|
526
|
+
attributeFilter?: string[];
|
|
527
|
+
}): Promise<string>;
|
|
528
|
+
/**
|
|
529
|
+
* Stop watching an element
|
|
530
|
+
*
|
|
531
|
+
* @param watcherId - ID of the watcher to stop (returned from watchElement)
|
|
532
|
+
*
|
|
533
|
+
* @example
|
|
534
|
+
* await weaveDOM.unwatchElement('weave-watcher-1');
|
|
535
|
+
*/
|
|
536
|
+
unwatchElement(watcherId: string): Promise<void>;
|
|
537
|
+
/**
|
|
538
|
+
* Scroll an element into view on the parent page
|
|
539
|
+
*
|
|
540
|
+
* Abstraction over Element.scrollIntoView(). Accepts either a boolean
|
|
541
|
+
* `alignToTop` parameter or a `ScrollIntoViewOptions` object.
|
|
542
|
+
*
|
|
543
|
+
* @param selector - CSS selector for the element to scroll into view
|
|
544
|
+
* @param arg - Optional. A boolean (alignToTop) or a ScrollIntoViewOptions object.
|
|
545
|
+
* - `true` (default): aligns the element to the top of the scrollable ancestor
|
|
546
|
+
* - `false`: aligns the element to the bottom
|
|
547
|
+
* - `ScrollIntoViewOptions`: e.g. `{ behavior: 'smooth', block: 'center' }`
|
|
548
|
+
*
|
|
549
|
+
* @example
|
|
550
|
+
* // Scroll element to top (default)
|
|
551
|
+
* await weaveDOM.scrollIntoView('#my-element');
|
|
552
|
+
*
|
|
553
|
+
* // Scroll element to bottom
|
|
554
|
+
* await weaveDOM.scrollIntoView('#my-element', false);
|
|
555
|
+
*
|
|
556
|
+
* // Scroll with smooth animation to center
|
|
557
|
+
* await weaveDOM.scrollIntoView('#my-element', { behavior: 'smooth', block: 'center' });
|
|
558
|
+
*/
|
|
559
|
+
scrollIntoView(selector: string, arg?: boolean | ScrollIntoViewOptions): Promise<void>;
|
|
560
|
+
/**
|
|
561
|
+
* Show an alert dialog on the parent page
|
|
562
|
+
*
|
|
563
|
+
* This displays a native browser alert dialog with the specified message.
|
|
564
|
+
* The dialog blocks until the user clicks OK.
|
|
565
|
+
*
|
|
566
|
+
* @param message - Message to display in the alert
|
|
567
|
+
*
|
|
568
|
+
* @example
|
|
569
|
+
* await weaveDOM.alert('Please log in to continue.');
|
|
570
|
+
*/
|
|
571
|
+
alert(message: string): Promise<void>;
|
|
572
|
+
/**
|
|
573
|
+
* Show a confirm dialog on the parent page
|
|
574
|
+
*
|
|
575
|
+
* This displays a native browser confirm dialog with the specified message.
|
|
576
|
+
* Returns true if user clicked OK, false if user clicked Cancel.
|
|
577
|
+
*
|
|
578
|
+
* @param message - Message to display in the confirm dialog
|
|
579
|
+
* @returns Promise<boolean> - true if confirmed, false if cancelled
|
|
580
|
+
*
|
|
581
|
+
* @example
|
|
582
|
+
* const confirmed = await weaveDOM.confirm('Are you sure you want to proceed?');
|
|
583
|
+
* if (confirmed) {
|
|
584
|
+
* // User clicked OK
|
|
585
|
+
* } else {
|
|
586
|
+
* // User clicked Cancel
|
|
587
|
+
* }
|
|
588
|
+
*/
|
|
589
|
+
confirm(message: string): Promise<boolean>;
|
|
590
|
+
}
|
|
591
|
+
declare const _default: WeaveDOMAPI;
|
|
592
|
+
export default _default;
|
|
593
|
+
//# sourceMappingURL=WeaveDOMAPI.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WeaveDOMAPI.d.ts","sourceRoot":"","sources":["../../../src/WeaveDOMAPI.ts"],"names":[],"mappings":"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"}
|