@intentic/browser 1.232.0 → 1.233.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/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/page.d.ts +22 -0
- package/dist/page.d.ts.map +1 -0
- package/dist/page.js +24 -0
- package/dist/page.js.map +1 -0
- package/dist/snapshot.d.ts +0 -10
- package/dist/snapshot.d.ts.map +1 -1
- package/dist/snapshot.js +1 -23
- package/dist/snapshot.js.map +1 -1
- package/dist/types.d.ts +1 -11
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +12 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type Browser } from "./types.js";
|
|
2
2
|
export { DEFAULT_PORT, browserCandidates, ensureBrowser, profileDir } from "./launch.js";
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
3
|
+
export { SNAPSHOT_SCRIPT } from "./snapshot.js";
|
|
4
|
+
export { renderPage, refIndex, toPageState, type RawSnapshot, type PageElement, type PageState } from "./page.js";
|
|
5
|
+
export { BrowserError, type Browser } from "./types.js";
|
|
5
6
|
export declare const browser: (port?: number) => Browser;
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAgB,MAAM,YAAY,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAClH,OAAO,EAAE,YAAY,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAqCxD,eAAO,MAAM,OAAO,UAAU,MAAM,KAAkB,OA6GrD,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { attach, listTargets, newTab } from "./cdp.js";
|
|
2
2
|
import { DEFAULT_PORT, ensureBrowser } from "./launch.js";
|
|
3
|
-
import { refIndex,
|
|
3
|
+
import { refIndex, toPageState } from "./page.js";
|
|
4
|
+
import { SNAPSHOT_SCRIPT } from "./snapshot.js";
|
|
4
5
|
import { BrowserError } from "./types.js";
|
|
5
6
|
export { DEFAULT_PORT, browserCandidates, ensureBrowser, profileDir } from "./launch.js";
|
|
6
|
-
export {
|
|
7
|
+
export { SNAPSHOT_SCRIPT } from "./snapshot.js";
|
|
8
|
+
export { renderPage, refIndex, toPageState } from "./page.js";
|
|
7
9
|
export { BrowserError } from "./types.js";
|
|
8
10
|
const evaluate = async (session, expression) => {
|
|
9
11
|
const result = await session.send("Runtime.evaluate", {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAmB,WAAW,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/page.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface PageElement {
|
|
2
|
+
readonly ref: string;
|
|
3
|
+
readonly role: string;
|
|
4
|
+
readonly name: string;
|
|
5
|
+
readonly value?: string | undefined;
|
|
6
|
+
}
|
|
7
|
+
export interface PageState {
|
|
8
|
+
readonly url: string;
|
|
9
|
+
readonly title: string;
|
|
10
|
+
readonly elements: readonly PageElement[];
|
|
11
|
+
}
|
|
12
|
+
export declare const MAX_ELEMENTS = 150;
|
|
13
|
+
export declare const renderPage: (page: PageState, truncated?: boolean) => string;
|
|
14
|
+
export interface RawSnapshot {
|
|
15
|
+
readonly url?: string;
|
|
16
|
+
readonly title?: string;
|
|
17
|
+
readonly truncated?: boolean;
|
|
18
|
+
readonly elements?: readonly PageElement[];
|
|
19
|
+
}
|
|
20
|
+
export declare const toPageState: (raw: RawSnapshot) => PageState;
|
|
21
|
+
export declare const refIndex: (ref: string) => number;
|
|
22
|
+
//# sourceMappingURL=page.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;CAC7C;AAID,eAAO,MAAM,YAAY,MAAM,CAAC;AAIhC,eAAO,MAAM,UAAU,SAAU,SAAS,0BAAsB,MAY/D,CAAC;AAIF,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CAC9C;AAED,eAAO,MAAM,WAAW,QAAS,WAAW,KAAG,SAI7C,CAAC;AAIH,eAAO,MAAM,QAAQ,QAAS,MAAM,KAAG,MAGtC,CAAC"}
|
package/dist/page.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const MAX_ELEMENTS = 150;
|
|
2
|
+
export const renderPage = (page, truncated = false) => {
|
|
3
|
+
const header = [`Page: ${page.title === "" ? "(untitled)" : page.title}`, page.url];
|
|
4
|
+
if (page.elements.length === 0) {
|
|
5
|
+
return [...header, "", "Nothing on this page can be clicked or typed into: try reading its text instead."].join("\n");
|
|
6
|
+
}
|
|
7
|
+
const rows = page.elements.map((element) => {
|
|
8
|
+
const said = element.name === "" ? "" : ` "${element.name}"`;
|
|
9
|
+
const holds = element.value === undefined || element.value === "" ? "" : ` = "${element.value}"`;
|
|
10
|
+
return `[${element.ref}] ${element.role}${said}${holds}`;
|
|
11
|
+
});
|
|
12
|
+
const note = truncated ? [`(only the first ${MAX_ELEMENTS} are listed, scroll or narrow the page to see more)`] : [];
|
|
13
|
+
return [...header, "", ...rows, ...note].join("\n");
|
|
14
|
+
};
|
|
15
|
+
export const toPageState = (raw) => ({
|
|
16
|
+
url: raw.url ?? "",
|
|
17
|
+
title: raw.title ?? "",
|
|
18
|
+
elements: raw.elements ?? [],
|
|
19
|
+
});
|
|
20
|
+
export const refIndex = (ref) => {
|
|
21
|
+
const match = /^e(\d+)$/.exec(ref.trim());
|
|
22
|
+
return match?.[1] === undefined ? -1 : Number(match[1]);
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=page.js.map
|
package/dist/page.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page.js","sourceRoot":"","sources":["../src/page.ts"],"names":[],"mappings":"AAgCA,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAIhC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAe,EAAE,SAAS,GAAG,KAAK,EAAU,EAAE;IACrE,MAAM,MAAM,GAAG,CAAC,SAAS,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACpF,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,MAAM,EAAE,EAAE,EAAE,kFAAkF,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1H,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,GAAG,CAAC;QAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,KAAK,GAAG,CAAC;QACjG,OAAO,IAAI,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,mBAAmB,YAAY,qDAAqD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrH,OAAO,CAAC,GAAG,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC,CAAC;AAWF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAgB,EAAa,EAAE,CAAC,CAAC;IACzD,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE;IAClB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE;IACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE;CAC/B,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAU,EAAE;IAC5C,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC"}
|
package/dist/snapshot.d.ts
CHANGED
|
@@ -1,12 +1,2 @@
|
|
|
1
|
-
import type { PageElement, PageState } from "./types.js";
|
|
2
1
|
export declare const SNAPSHOT_SCRIPT = "(function () {\n var MAX = 150;\n var refs = [];\n window.__intenticRefs = refs;\n\n function visible(el) {\n var rect = el.getBoundingClientRect();\n if (rect.width <= 0 || rect.height <= 0) return false;\n var style = window.getComputedStyle(el);\n return style.visibility !== 'hidden' && style.display !== 'none' && style.opacity !== '0';\n }\n\n function roleOf(el) {\n var explicit = el.getAttribute('role');\n if (explicit) return explicit;\n var tag = el.tagName.toLowerCase();\n if (tag === 'a') return 'link';\n if (tag === 'button') return 'button';\n if (tag === 'select') return 'combobox';\n if (tag === 'textarea') return 'textbox';\n if (/^h[1-6]$/.test(tag)) return 'heading';\n if (tag === 'input') {\n var type = (el.getAttribute('type') || 'text').toLowerCase();\n if (type === 'submit' || type === 'button' || type === 'reset') return 'button';\n if (type === 'checkbox') return 'checkbox';\n if (type === 'radio') return 'radio';\n if (type === 'file') return 'file';\n return 'textbox';\n }\n if (el.isContentEditable) return 'textbox';\n return 'element';\n }\n\n function nameOf(el) {\n var candidates = [\n el.getAttribute('aria-label'),\n el.getAttribute('alt'),\n el.getAttribute('placeholder'),\n el.getAttribute('title'),\n el.getAttribute('name'),\n (el.innerText || '').trim(),\n el.value\n ];\n for (var i = 0; i < candidates.length; i++) {\n var candidate = candidates[i];\n if (typeof candidate === 'string' && candidate.trim() !== '') {\n return candidate.trim().replace(/\\s+/g, ' ').slice(0, 120);\n }\n }\n return '';\n }\n\n var selector = 'a[href], button, input, textarea, select, summary, [role], [onclick], [contenteditable=\"\"], [contenteditable=\"true\"], h1, h2, h3';\n var found = document.querySelectorAll(selector);\n var elements = [];\n for (var i = 0; i < found.length && elements.length < MAX; i++) {\n var el = found[i];\n if (!visible(el)) continue;\n var role = roleOf(el);\n var name = nameOf(el);\n // A nameless non-input is something a caller could never ask for by name, so it is noise.\n if (name === '' && role !== 'textbox' && role !== 'checkbox' && role !== 'file') continue;\n var ref = 'e' + refs.length;\n refs.push(el);\n var entry = { ref: ref, role: role, name: name };\n if (typeof el.value === 'string' && el.value !== '' && role !== 'button') entry.value = el.value.slice(0, 120);\n if (role === 'checkbox' || role === 'radio') entry.value = el.checked ? 'checked' : 'unchecked';\n elements.push(entry);\n }\n return {\n url: location.href,\n title: document.title,\n truncated: found.length > 0 && elements.length >= MAX,\n elements: elements\n };\n})()";
|
|
3
|
-
export declare const renderPage: (page: PageState, truncated?: boolean) => string;
|
|
4
|
-
export interface RawSnapshot {
|
|
5
|
-
readonly url?: string;
|
|
6
|
-
readonly title?: string;
|
|
7
|
-
readonly truncated?: boolean;
|
|
8
|
-
readonly elements?: readonly PageElement[];
|
|
9
|
-
}
|
|
10
|
-
export declare const toPageState: (raw: RawSnapshot) => PageState;
|
|
11
|
-
export declare const refIndex: (ref: string) => number;
|
|
12
2
|
//# sourceMappingURL=snapshot.d.ts.map
|
package/dist/snapshot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,eAAe,gyFA2EvB,CAAC"}
|
package/dist/snapshot.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { MAX_ELEMENTS } from "./page.js";
|
|
2
2
|
export const SNAPSHOT_SCRIPT = `(function () {
|
|
3
3
|
var MAX = ${MAX_ELEMENTS};
|
|
4
4
|
var refs = [];
|
|
@@ -75,26 +75,4 @@ export const SNAPSHOT_SCRIPT = `(function () {
|
|
|
75
75
|
elements: elements
|
|
76
76
|
};
|
|
77
77
|
})()`;
|
|
78
|
-
export const renderPage = (page, truncated = false) => {
|
|
79
|
-
const header = [`Page: ${page.title === "" ? "(untitled)" : page.title}`, page.url];
|
|
80
|
-
if (page.elements.length === 0) {
|
|
81
|
-
return [...header, "", "Nothing on this page can be clicked or typed into: try reading its text instead."].join("\n");
|
|
82
|
-
}
|
|
83
|
-
const rows = page.elements.map((element) => {
|
|
84
|
-
const said = element.name === "" ? "" : ` "${element.name}"`;
|
|
85
|
-
const holds = element.value === undefined || element.value === "" ? "" : ` = "${element.value}"`;
|
|
86
|
-
return `[${element.ref}] ${element.role}${said}${holds}`;
|
|
87
|
-
});
|
|
88
|
-
const note = truncated ? [`(only the first ${MAX_ELEMENTS} are listed, scroll or narrow the page to see more)`] : [];
|
|
89
|
-
return [...header, "", ...rows, ...note].join("\n");
|
|
90
|
-
};
|
|
91
|
-
export const toPageState = (raw) => ({
|
|
92
|
-
url: raw.url ?? "",
|
|
93
|
-
title: raw.title ?? "",
|
|
94
|
-
elements: raw.elements ?? [],
|
|
95
|
-
});
|
|
96
|
-
export const refIndex = (ref) => {
|
|
97
|
-
const match = /^e(\d+)$/.exec(ref.trim());
|
|
98
|
-
return match?.[1] === undefined ? -1 : Number(match[1]);
|
|
99
|
-
};
|
|
100
78
|
//# sourceMappingURL=snapshot.js.map
|
package/dist/snapshot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAoBzC,MAAM,CAAC,MAAM,eAAe,GAAG;cACjB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0ErB,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
readonly ref: string;
|
|
3
|
-
readonly role: string;
|
|
4
|
-
readonly name: string;
|
|
5
|
-
readonly value?: string | undefined;
|
|
6
|
-
}
|
|
7
|
-
export interface PageState {
|
|
8
|
-
readonly url: string;
|
|
9
|
-
readonly title: string;
|
|
10
|
-
readonly elements: readonly PageElement[];
|
|
11
|
-
}
|
|
1
|
+
import type { PageState } from "./page.js";
|
|
12
2
|
export interface Browser {
|
|
13
3
|
readonly open: (url?: string) => Promise<PageState>;
|
|
14
4
|
readonly snapshot: () => Promise<PageState>;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAY3C,MAAM,WAAW,OAAO;IAGpB,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAEpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/C,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9E,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjD,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC,CAAC;IAChI,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAGvD,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAKD,qBAAa,YAAa,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,YAAY,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAIzC;CACJ"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAoCA,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC1B,IAAI,CAAqB;IAClC,YAAY,OAAe,EAAE,IAAa;QACtC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intentic/browser",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.233.0",
|
|
4
4
|
"description": "Drive a Chromium browser from Node over CDP — open pages, read them as structured text, click and type by element reference. No dependencies.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -17,6 +17,17 @@
|
|
|
17
17
|
"registry": "https://registry.npmjs.org/"
|
|
18
18
|
},
|
|
19
19
|
"exports": {
|
|
20
|
+
"./page": {
|
|
21
|
+
"types": "./dist/page.d.ts",
|
|
22
|
+
"import": {
|
|
23
|
+
"@intentic/src": "./src/page.ts",
|
|
24
|
+
"default": "./dist/page.js"
|
|
25
|
+
},
|
|
26
|
+
"require": {
|
|
27
|
+
"@intentic/src": "./src/page.ts",
|
|
28
|
+
"default": "./dist/page.js"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
20
31
|
".": {
|
|
21
32
|
"types": "./dist/index.d.ts",
|
|
22
33
|
"import": {
|