zan-browser 1.3.29 → 1.3.31
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/ai.d.ts +10 -3
- package/dist/ai.d.ts.map +1 -1
- package/dist/ai.js +168 -102
- package/dist/ai.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/observer.d.ts +1 -1
- package/dist/observer.d.ts.map +1 -1
- package/dist/observer.js +271 -149
- package/dist/observer.js.map +1 -1
- package/dist/session.d.ts +8 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +272 -41
- package/dist/session.js.map +1 -1
- package/dist/types.d.ts +28 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/session.js
CHANGED
|
@@ -10,6 +10,7 @@ class Session {
|
|
|
10
10
|
observer;
|
|
11
11
|
ai;
|
|
12
12
|
defaultTimeout;
|
|
13
|
+
lastInteractiveElements = new Map();
|
|
13
14
|
viewerUrl; // Browserbase live viewer URL
|
|
14
15
|
constructor(page, browser, ai, timeout = 30_000, viewerUrl) {
|
|
15
16
|
this.page = page;
|
|
@@ -49,6 +50,7 @@ class Session {
|
|
|
49
50
|
}
|
|
50
51
|
// ─── Observe — always first, before any action ────────────────────────────────
|
|
51
52
|
async observe() {
|
|
53
|
+
this.lastInteractiveElements.clear();
|
|
52
54
|
return this.observer.observe();
|
|
53
55
|
}
|
|
54
56
|
// ─── Screenshot — only when observe() is not enough ──────────────────────────
|
|
@@ -103,6 +105,191 @@ class Session {
|
|
|
103
105
|
return { content, links: links.slice(0, 80) };
|
|
104
106
|
});
|
|
105
107
|
}
|
|
108
|
+
// ─── Interactive DOM observation — full interactive element scan ─────────────
|
|
109
|
+
// Replaces extractPageWithLinks() for agent navigation: returns ALL interactive
|
|
110
|
+
// elements (buttons, menus, dropdowns, inputs) not just anchor links.
|
|
111
|
+
// Sets data-rid attributes on matched elements so clickById() can target them.
|
|
112
|
+
async observeInteractiveDom() {
|
|
113
|
+
const INTERACTIVE_SEL = [
|
|
114
|
+
"button", "[role='button']", "[role='switch']",
|
|
115
|
+
"input:not([type='hidden'])",
|
|
116
|
+
"a[href]", "select", "textarea",
|
|
117
|
+
"[role='menuitem']", "[role='option']", "[role='tab']", "[role='combobox']",
|
|
118
|
+
"[onclick]", "[tabindex]:not([tabindex='-1'])",
|
|
119
|
+
].join(", ");
|
|
120
|
+
const result = await this.page.evaluate((interactiveSel) => {
|
|
121
|
+
// Clean previous markers
|
|
122
|
+
document.querySelectorAll("[data-rid]").forEach((el) => el.removeAttribute("data-rid"));
|
|
123
|
+
const isVisible = (el) => {
|
|
124
|
+
const htmlEl = el;
|
|
125
|
+
// offsetParent is null when the element or any ancestor has display:none.
|
|
126
|
+
// Exception: <body>, <html>, and position:fixed/sticky elements legitimately have offsetParent === null.
|
|
127
|
+
if (htmlEl.offsetParent === null) {
|
|
128
|
+
const style = window.getComputedStyle(el);
|
|
129
|
+
const pos = style.position;
|
|
130
|
+
if (pos !== "fixed" && pos !== "sticky" && el.tagName !== "BODY" && el.tagName !== "HTML") {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
const style = window.getComputedStyle(el);
|
|
135
|
+
if (style.visibility === "hidden" || style.opacity === "0")
|
|
136
|
+
return false;
|
|
137
|
+
const rect = el.getBoundingClientRect();
|
|
138
|
+
if (rect.width === 0 || rect.height === 0)
|
|
139
|
+
return false;
|
|
140
|
+
// Check if element is within viewport bounds
|
|
141
|
+
const vh = window.innerHeight;
|
|
142
|
+
const vw = window.innerWidth;
|
|
143
|
+
return rect.bottom > 0 && rect.top < vh && rect.right > 0 && rect.left < vw;
|
|
144
|
+
};
|
|
145
|
+
const truncate = (v, max = 60) => v.length > max ? v.slice(0, max) : v;
|
|
146
|
+
const resolveUrl = (href) => {
|
|
147
|
+
if (!href)
|
|
148
|
+
return href;
|
|
149
|
+
try {
|
|
150
|
+
return new URL(href, window.location.href).href;
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
return href;
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
const ATTR_KEYS = [
|
|
157
|
+
"title", "type", "name", "role", "aria-label",
|
|
158
|
+
"placeholder", "value", "alt", "href", "aria-expanded",
|
|
159
|
+
];
|
|
160
|
+
const ATTR_RENDER_ORDER = [
|
|
161
|
+
"title", "type", "name", "role", "aria_label",
|
|
162
|
+
"placeholder", "value", "alt", "href", "aria_expanded",
|
|
163
|
+
];
|
|
164
|
+
const getAttrs = (el) => {
|
|
165
|
+
const out = {};
|
|
166
|
+
for (const attr of ATTR_KEYS) {
|
|
167
|
+
let val = el.getAttribute(attr);
|
|
168
|
+
if (val == null || val === "")
|
|
169
|
+
continue;
|
|
170
|
+
if (attr === "href")
|
|
171
|
+
val = resolveUrl(val);
|
|
172
|
+
const key = attr.replace(/-/g, "_");
|
|
173
|
+
out[key] = truncate(val);
|
|
174
|
+
}
|
|
175
|
+
if ((el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement || el instanceof HTMLSelectElement)
|
|
176
|
+
&& el.value) {
|
|
177
|
+
out["value"] = truncate(el.value);
|
|
178
|
+
}
|
|
179
|
+
return out;
|
|
180
|
+
};
|
|
181
|
+
const getInnerText = (el) => (el.textContent ?? "").replace(/\s+/g, " ").trim().slice(0, 100);
|
|
182
|
+
// B — buttons, checkboxes, radios, switches, role="button"
|
|
183
|
+
// L — anchor links
|
|
184
|
+
// I — inputs, textareas, selects
|
|
185
|
+
// M — menuitem, option, tab, combobox, other interactables
|
|
186
|
+
const categorize = (el) => {
|
|
187
|
+
const tag = el.tagName.toLowerCase();
|
|
188
|
+
const role = el.getAttribute("role") ?? "";
|
|
189
|
+
const type = el.type ?? "";
|
|
190
|
+
if (tag === "a" && el.hasAttribute("href"))
|
|
191
|
+
return "L";
|
|
192
|
+
if (tag === "textarea" || tag === "select")
|
|
193
|
+
return "I";
|
|
194
|
+
if (tag === "input" && !["submit", "button", "checkbox", "radio", "hidden"].includes(type))
|
|
195
|
+
return "I";
|
|
196
|
+
if (tag === "button")
|
|
197
|
+
return "B";
|
|
198
|
+
if (tag === "input" && ["submit", "button", "checkbox", "radio"].includes(type))
|
|
199
|
+
return "B";
|
|
200
|
+
if (role === "button" || role === "switch")
|
|
201
|
+
return "B";
|
|
202
|
+
if (["menuitem", "option", "tab", "combobox"].includes(role))
|
|
203
|
+
return "M";
|
|
204
|
+
return "M";
|
|
205
|
+
};
|
|
206
|
+
const interactiveSet = new Set();
|
|
207
|
+
document.querySelectorAll(interactiveSel).forEach((el) => interactiveSet.add(el));
|
|
208
|
+
// Only include text near interactive elements — headings, labels, or
|
|
209
|
+
// nodes whose parent/grandparent contains an interactive child.
|
|
210
|
+
const isNearInteractive = (parent) => {
|
|
211
|
+
if (!parent)
|
|
212
|
+
return false;
|
|
213
|
+
const tag = parent.tagName.toLowerCase();
|
|
214
|
+
if (["h1", "h2", "h3", "h4", "h5", "h6", "label", "legend", "figcaption", "caption", "th", "li"].includes(tag))
|
|
215
|
+
return true;
|
|
216
|
+
try {
|
|
217
|
+
if (parent.querySelector(interactiveSel))
|
|
218
|
+
return true;
|
|
219
|
+
if (parent.parentElement?.querySelector(interactiveSel))
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
222
|
+
catch { /* selector might fail on exotic DOMs */ }
|
|
223
|
+
return false;
|
|
224
|
+
};
|
|
225
|
+
const SELF_CLOSING = new Set(["input", "img", "br", "hr"]);
|
|
226
|
+
const lines = [];
|
|
227
|
+
const elements = [];
|
|
228
|
+
const counters = { B: 0, L: 0, I: 0, M: 0 };
|
|
229
|
+
const walk = (node) => {
|
|
230
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
231
|
+
const text = (node.textContent ?? "").replace(/\s+/g, " ").trim();
|
|
232
|
+
if (text.length < 2)
|
|
233
|
+
return;
|
|
234
|
+
const parent = node.parentElement;
|
|
235
|
+
if (!parent)
|
|
236
|
+
return;
|
|
237
|
+
if (parent.tagName === "SCRIPT" || parent.tagName === "STYLE" || parent.tagName === "NOSCRIPT")
|
|
238
|
+
return;
|
|
239
|
+
if (interactiveSet.has(parent))
|
|
240
|
+
return; // text goes inside the tag
|
|
241
|
+
if (!isVisible(parent))
|
|
242
|
+
return;
|
|
243
|
+
if (!isNearInteractive(parent))
|
|
244
|
+
return;
|
|
245
|
+
lines.push(`_[:] ${text.slice(0, 150)}`);
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
if (node.nodeType !== Node.ELEMENT_NODE)
|
|
249
|
+
return;
|
|
250
|
+
const el = node;
|
|
251
|
+
const tag = el.tagName.toLowerCase();
|
|
252
|
+
if (tag === "script" || tag === "style" || tag === "noscript")
|
|
253
|
+
return;
|
|
254
|
+
if (interactiveSet.has(el)) {
|
|
255
|
+
if (!isVisible(el))
|
|
256
|
+
return;
|
|
257
|
+
const cat = categorize(el);
|
|
258
|
+
counters[cat]++;
|
|
259
|
+
const id = `${cat}${counters[cat]}`;
|
|
260
|
+
const attrs = getAttrs(el);
|
|
261
|
+
const text = getInnerText(el);
|
|
262
|
+
const htmlTag = tag === "a" ? "a" : tag;
|
|
263
|
+
// Mark element for Playwright selector lookup
|
|
264
|
+
el.setAttribute("data-rid", id);
|
|
265
|
+
const attrParts = [];
|
|
266
|
+
for (const key of ATTR_RENDER_ORDER) {
|
|
267
|
+
if (attrs[key])
|
|
268
|
+
attrParts.push(`${key}="${attrs[key]}"`);
|
|
269
|
+
}
|
|
270
|
+
const attrStr = attrParts.length > 0 ? " " + attrParts.join(" ") : "";
|
|
271
|
+
if (SELF_CLOSING.has(htmlTag)) {
|
|
272
|
+
lines.push(`${id}[:] <${htmlTag}${attrStr}/>`);
|
|
273
|
+
}
|
|
274
|
+
else {
|
|
275
|
+
lines.push(`${id}[:] <${htmlTag}${attrStr}>${text}</${htmlTag}>`);
|
|
276
|
+
}
|
|
277
|
+
elements.push({ id, selector: `[data-rid="${id}"]` });
|
|
278
|
+
return; // don't recurse into interactive elements
|
|
279
|
+
}
|
|
280
|
+
for (const child of Array.from(el.childNodes)) {
|
|
281
|
+
walk(child);
|
|
282
|
+
}
|
|
283
|
+
};
|
|
284
|
+
walk(document.body);
|
|
285
|
+
return { lines, elements };
|
|
286
|
+
}, INTERACTIVE_SEL);
|
|
287
|
+
this.lastInteractiveElements = new Map(result.elements.map((e) => [e.id, e.selector]));
|
|
288
|
+
return {
|
|
289
|
+
dom: result.lines.join("\n"),
|
|
290
|
+
elements: result.elements,
|
|
291
|
+
};
|
|
292
|
+
}
|
|
106
293
|
// ─── Intelligent DOM scrape — Notte-style content understanding ──────────────
|
|
107
294
|
// Passes visible page text to Claude Sonnet and asks whether the goal data is present.
|
|
108
295
|
// If not found, follows nextUrl suggestions up to maxHops times before giving up.
|
|
@@ -129,8 +316,14 @@ class Session {
|
|
|
129
316
|
return { found: false, data: null, nextUrl: null, reasoning: "max hops reached without finding data" };
|
|
130
317
|
}
|
|
131
318
|
// ─── Interaction ──────────────────────────────────────────────────────────────
|
|
132
|
-
// Click by element ID from
|
|
319
|
+
// Click by element ID — checks stored selectors from observeInteractiveDom()
|
|
320
|
+
// first, then falls back to coordinate-based resolution from observe().
|
|
133
321
|
async clickById(elementId) {
|
|
322
|
+
const selector = this.lastInteractiveElements.get(elementId);
|
|
323
|
+
if (selector) {
|
|
324
|
+
await this.page.locator(selector).click();
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
134
327
|
const coords = await this.observer.resolveElementId(elementId);
|
|
135
328
|
if (!coords)
|
|
136
329
|
throw new Error(`Element ${elementId} not found in DOM`);
|
|
@@ -165,24 +358,46 @@ class Session {
|
|
|
165
358
|
// ─── act() — achieve a goal through multi-step navigation ────────────────────
|
|
166
359
|
async act(goal, maxSteps = 10, seedValues) {
|
|
167
360
|
const steps = [];
|
|
168
|
-
const
|
|
361
|
+
const trajectory = [];
|
|
362
|
+
let consecutiveFailures = 0;
|
|
363
|
+
const MAX_CONSECUTIVE_FAILURES = 3;
|
|
169
364
|
for (let i = 0; i < maxSteps; i++) {
|
|
170
365
|
// ALWAYS observe first — no screenshot by default
|
|
171
366
|
const observation = await this.observe();
|
|
172
|
-
let
|
|
367
|
+
let completion;
|
|
173
368
|
let usedScreenshot = false;
|
|
174
369
|
// If observe() gives us enough elements, use text-based decision
|
|
175
370
|
if (observation.elements.filter((e) => e.visible).length > 0) {
|
|
176
|
-
|
|
371
|
+
completion = await this.ai.decideFromObservation(goal, observation, trajectory, i + 1, maxSteps, seedValues);
|
|
177
372
|
}
|
|
178
373
|
else {
|
|
179
374
|
// Fallback: page has no readable elements (canvas, iframe, etc.) → screenshot
|
|
180
375
|
const shot = await this.screenshot();
|
|
181
|
-
|
|
376
|
+
completion = await this.ai.decideFromScreenshot(goal, shot.base64, trajectory, i + 1, maxSteps, seedValues);
|
|
182
377
|
usedScreenshot = true;
|
|
183
378
|
}
|
|
379
|
+
const { action, state } = completion;
|
|
184
380
|
steps.push({ action, observeBefore: observation, usedScreenshot });
|
|
185
|
-
|
|
381
|
+
// Track trajectory for multi-turn conversation (assistant response, then next user observation)
|
|
382
|
+
trajectory.push({
|
|
383
|
+
role: "assistant",
|
|
384
|
+
content: JSON.stringify(completion),
|
|
385
|
+
});
|
|
386
|
+
// Track consecutive failures
|
|
387
|
+
if (state.previous_goal_status === "failure") {
|
|
388
|
+
consecutiveFailures++;
|
|
389
|
+
if (consecutiveFailures >= MAX_CONSECUTIVE_FAILURES) {
|
|
390
|
+
return {
|
|
391
|
+
success: false,
|
|
392
|
+
steps,
|
|
393
|
+
finalUrl: this.url,
|
|
394
|
+
reason: `${MAX_CONSECUTIVE_FAILURES} consecutive failures: ${state.previous_goal_eval}`,
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
else if (state.previous_goal_status === "success") {
|
|
399
|
+
consecutiveFailures = 0;
|
|
400
|
+
}
|
|
186
401
|
// Terminal states
|
|
187
402
|
if (action.type === "done") {
|
|
188
403
|
return { success: true, steps, finalUrl: this.url, reason: action.reason };
|
|
@@ -191,7 +406,12 @@ class Session {
|
|
|
191
406
|
return { success: false, steps, finalUrl: this.url, reason: action.reason };
|
|
192
407
|
}
|
|
193
408
|
// Execute action
|
|
194
|
-
await this.executeAction(action);
|
|
409
|
+
const actionSuccess = await this.executeAction(action);
|
|
410
|
+
// Add execution result to trajectory
|
|
411
|
+
const resultMsg = actionSuccess
|
|
412
|
+
? `Action '${action.type}' succeeded`
|
|
413
|
+
: `Action '${action.type}' failed`;
|
|
414
|
+
trajectory.push({ role: "user", content: resultMsg });
|
|
195
415
|
// Short wait after interactions for page to settle
|
|
196
416
|
await this.page.waitForTimeout(500);
|
|
197
417
|
}
|
|
@@ -225,40 +445,51 @@ class Session {
|
|
|
225
445
|
}
|
|
226
446
|
// ─── Execute action ───────────────────────────────────────────────────────────
|
|
227
447
|
async executeAction(action) {
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
448
|
+
try {
|
|
449
|
+
switch (action.type) {
|
|
450
|
+
case "click":
|
|
451
|
+
this.interceptor.markActionTimestamp();
|
|
452
|
+
await this.clickById(action.elementId).catch(async () => {
|
|
453
|
+
await this.page.getByText(action.elementId).first().click();
|
|
454
|
+
});
|
|
455
|
+
break;
|
|
456
|
+
case "fill":
|
|
457
|
+
this.interceptor.markActionTimestamp();
|
|
458
|
+
await this.fillById(action.elementId, action.value).catch(async () => {
|
|
459
|
+
await this.page.getByRole("textbox").first().fill(action.value);
|
|
460
|
+
});
|
|
461
|
+
break;
|
|
462
|
+
case "scroll":
|
|
463
|
+
this.interceptor.markActionTimestamp();
|
|
464
|
+
await this.page.evaluate(({ direction, amount }) => {
|
|
465
|
+
window.scrollBy(0, direction === "down" ? amount : -amount);
|
|
466
|
+
}, { direction: action.direction, amount: action.amount ?? 300 }).catch(() => {
|
|
467
|
+
// Execution context destroyed = page navigated mid-scroll. Not a crash — continue.
|
|
468
|
+
});
|
|
469
|
+
break;
|
|
470
|
+
case "navigate":
|
|
471
|
+
this.interceptor.markActionTimestamp();
|
|
472
|
+
await this.page.goto(action.url, { waitUntil: "domcontentloaded", timeout: this.defaultTimeout });
|
|
473
|
+
break;
|
|
474
|
+
case "press_key":
|
|
475
|
+
await this.page.keyboard.press(action.key);
|
|
476
|
+
break;
|
|
477
|
+
case "wait":
|
|
478
|
+
await this.page.waitForTimeout(action.ms);
|
|
479
|
+
break;
|
|
480
|
+
case "scrape":
|
|
481
|
+
// Scrape is handled by the caller — no-op here
|
|
482
|
+
break;
|
|
483
|
+
case "screenshot":
|
|
484
|
+
// Already handled in act() loop
|
|
485
|
+
break;
|
|
486
|
+
default:
|
|
487
|
+
break;
|
|
488
|
+
}
|
|
489
|
+
return true;
|
|
490
|
+
}
|
|
491
|
+
catch {
|
|
492
|
+
return false;
|
|
262
493
|
}
|
|
263
494
|
}
|
|
264
495
|
}
|
package/dist/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -17,6 +17,10 @@ export interface ObserveResult {
|
|
|
17
17
|
hasCookieBanner: boolean;
|
|
18
18
|
isLoading: boolean;
|
|
19
19
|
text: string;
|
|
20
|
+
currentUrl: string;
|
|
21
|
+
pageTitle: string;
|
|
22
|
+
scrollPixelsAbove: number;
|
|
23
|
+
scrollPixelsBelow: number;
|
|
20
24
|
}
|
|
21
25
|
export interface CapturedRequest {
|
|
22
26
|
id: string;
|
|
@@ -39,6 +43,18 @@ export interface SeedValue {
|
|
|
39
43
|
exampleValue: string;
|
|
40
44
|
description: string;
|
|
41
45
|
}
|
|
46
|
+
export interface RelevantInteraction {
|
|
47
|
+
id: string;
|
|
48
|
+
reason: string;
|
|
49
|
+
}
|
|
50
|
+
export interface AgentState {
|
|
51
|
+
previous_goal_status: "success" | "failure" | "unknown";
|
|
52
|
+
previous_goal_eval: string;
|
|
53
|
+
page_summary: string;
|
|
54
|
+
relevant_interactions: RelevantInteraction[];
|
|
55
|
+
memory: string;
|
|
56
|
+
next_goal: string;
|
|
57
|
+
}
|
|
42
58
|
export type AgentAction = {
|
|
43
59
|
type: "click";
|
|
44
60
|
elementId: string;
|
|
@@ -61,16 +77,28 @@ export type AgentAction = {
|
|
|
61
77
|
type: "navigate";
|
|
62
78
|
url: string;
|
|
63
79
|
reason: string;
|
|
80
|
+
} | {
|
|
81
|
+
type: "press_key";
|
|
82
|
+
key: string;
|
|
83
|
+
reason: string;
|
|
84
|
+
} | {
|
|
85
|
+
type: "scrape";
|
|
86
|
+
reason: string;
|
|
64
87
|
} | {
|
|
65
88
|
type: "screenshot";
|
|
66
89
|
reason: string;
|
|
67
90
|
} | {
|
|
68
91
|
type: "done";
|
|
69
92
|
reason: string;
|
|
93
|
+
data?: Record<string, unknown>;
|
|
70
94
|
} | {
|
|
71
95
|
type: "impossible";
|
|
72
96
|
reason: string;
|
|
73
97
|
};
|
|
98
|
+
export interface AgentCompletion {
|
|
99
|
+
state: AgentState;
|
|
100
|
+
action: AgentAction;
|
|
101
|
+
}
|
|
74
102
|
export interface ActResult {
|
|
75
103
|
success: boolean;
|
|
76
104
|
steps: Array<{
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,OAAO,GACP,MAAM,GACN,QAAQ,GACR,UAAU,GACV,UAAU,GACV,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|