webforai 1.3.3 → 1.4.1
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/cjs/extract-hast/readability.js +13 -12
- package/dist/cjs/html-to-markdown.test.js +3 -3
- package/dist/cjs/loaders/puppeteer.js +53 -0
- package/dist/cjs/loaders/puppeteer.test.js +17 -0
- package/dist/extract-hast/readability.js +13 -12
- package/dist/html-to-markdown.test.js +3 -3
- package/dist/loaders/puppeteer.js +20 -0
- package/dist/loaders/puppeteer.test.js +17 -0
- package/dist/types/extract-hast/readability.d.ts +0 -9
- package/dist/types/extract-hast/readability.js.map +1 -1
- package/dist/types/loaders/puppeteer.d.ts +2 -0
- package/dist/types/loaders/puppeteer.js.map +1 -0
- package/package.json +18 -2
|
@@ -24,7 +24,6 @@ module.exports = __toCommonJS(readability_exports);
|
|
|
24
24
|
var import_hast_util_select = require("hast-util-select");
|
|
25
25
|
var import_hast_util_to_string = require("hast-util-to-string");
|
|
26
26
|
var import_unist_util_filter = require("unist-util-filter");
|
|
27
|
-
var import_unist_util_parents = require("unist-util-parents");
|
|
28
27
|
var import_utils = require("./utils");
|
|
29
28
|
const UNLIKELY_ROLES = ["menu", "menubar", "complementary", "navigation", "alert", "alertdialog", "dialog"];
|
|
30
29
|
const REGEXPS = {
|
|
@@ -135,8 +134,8 @@ const removeEmptyFilter = (node) => {
|
|
|
135
134
|
const readabilityExtractHast = (hast) => {
|
|
136
135
|
const lang = String((0, import_hast_util_select.select)("html", hast)?.properties.lang || tryGetLang(hast) || "en");
|
|
137
136
|
const body = (0, import_hast_util_select.select)("body", hast) ?? hast;
|
|
138
|
-
const
|
|
139
|
-
const baseFilterd = (0, import_unist_util_filter.filter)(
|
|
137
|
+
const bodyText = (0, import_hast_util_to_string.toString)(body);
|
|
138
|
+
const baseFilterd = (0, import_unist_util_filter.filter)(body, (node) => {
|
|
140
139
|
if (!metadataFilter(node)) {
|
|
141
140
|
return false;
|
|
142
141
|
}
|
|
@@ -148,30 +147,31 @@ const readabilityExtractHast = (hast) => {
|
|
|
148
147
|
if (!baseFilterd) {
|
|
149
148
|
return { type: "root", children: [] };
|
|
150
149
|
}
|
|
151
|
-
const
|
|
150
|
+
const baseFilterdText = (0, import_hast_util_to_string.toString)(baseFilterd);
|
|
151
|
+
let [baseTree, baseText] = baseFilterdText.length > bodyText.length / 3 || baseFilterdText.length > 5e3 ? [baseFilterd, baseFilterdText] : [body, bodyText];
|
|
152
152
|
let minimalLength = lang in BASE_MINIMAL_LENGTH ? BASE_MINIMAL_LENGTH[lang] : 500;
|
|
153
153
|
if (baseText.length < minimalLength) {
|
|
154
154
|
minimalLength = Math.max(0, baseText.length - 200);
|
|
155
155
|
}
|
|
156
|
-
let bodyTree = baseFilterd;
|
|
157
156
|
for (const selector of BODY_SELECTORS) {
|
|
158
|
-
const
|
|
159
|
-
const
|
|
160
|
-
if (
|
|
157
|
+
const content = { type: "root", children: (0, import_hast_util_select.selectAll)(selector, baseFilterd) };
|
|
158
|
+
const contentText = (0, import_hast_util_to_string.toString)(content);
|
|
159
|
+
if (contentText.length < 25) {
|
|
161
160
|
continue;
|
|
162
161
|
}
|
|
163
|
-
const links = (0, import_hast_util_select.selectAll)("a",
|
|
162
|
+
const links = (0, import_hast_util_select.selectAll)("a", content);
|
|
164
163
|
const linkText = links.map((link) => (0, import_hast_util_to_string.toString)(link)).join("");
|
|
165
164
|
const linkDensity = linkText.length / bodyText.length;
|
|
166
165
|
if (linkDensity > 0.4) {
|
|
167
166
|
continue;
|
|
168
167
|
}
|
|
169
|
-
if (
|
|
170
|
-
|
|
168
|
+
if (contentText.length > minimalLength) {
|
|
169
|
+
baseTree = content;
|
|
170
|
+
baseText = contentText;
|
|
171
171
|
break;
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
|
-
const
|
|
174
|
+
const finalFilteredTree = (0, import_unist_util_filter.filter)(baseTree, (node) => {
|
|
175
175
|
if (!removeEmptyFilter(node)) {
|
|
176
176
|
return false;
|
|
177
177
|
}
|
|
@@ -180,6 +180,7 @@ const readabilityExtractHast = (hast) => {
|
|
|
180
180
|
}
|
|
181
181
|
return true;
|
|
182
182
|
});
|
|
183
|
+
const finalTree = (0, import_hast_util_to_string.toString)(finalFilteredTree).length > baseText.length / 3 ? finalFilteredTree : baseTree;
|
|
183
184
|
return finalTree;
|
|
184
185
|
};
|
|
185
186
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -131,14 +131,14 @@ Cell 1 Cell 2`;
|
|
|
131
131
|
(0, import_vitest.describe)("htmlToMarkdown E2E", () => {
|
|
132
132
|
(0, import_vitest.it)("should convert npm README to Markdown ", async () => {
|
|
133
133
|
const html2 = await (0, import_fetch.loadHtml)("https://www.npmjs.com/package/webforai");
|
|
134
|
-
const markdown = (0, import_html_to_markdown.htmlToMarkdown)(html2
|
|
134
|
+
const markdown = (0, import_html_to_markdown.htmlToMarkdown)(html2);
|
|
135
135
|
const original = await import("../README.md?raw");
|
|
136
136
|
const d = (0, import_fastest_levenshtein.distance)(markdown, original.default);
|
|
137
|
-
(0, import_vitest.expect)(d).lte(
|
|
137
|
+
(0, import_vitest.expect)(d).lte(200);
|
|
138
138
|
});
|
|
139
139
|
(0, import_vitest.it)("should convert GitHub README to Markdown ", async () => {
|
|
140
140
|
const html2 = await (0, import_fetch.loadHtml)("https://github.com/inaridiy/webforai");
|
|
141
|
-
const markdown = (0, import_html_to_markdown.htmlToMarkdown)(html2
|
|
141
|
+
const markdown = (0, import_html_to_markdown.htmlToMarkdown)(html2);
|
|
142
142
|
const original = await import("../../../README.md?raw");
|
|
143
143
|
const d = (0, import_fastest_levenshtein.distance)(markdown, original.default);
|
|
144
144
|
(0, import_vitest.expect)(d).lte(200);
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var puppeteer_exports = {};
|
|
30
|
+
__export(puppeteer_exports, {
|
|
31
|
+
loadHtml: () => loadHtml
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(puppeteer_exports);
|
|
34
|
+
var import_puppeteer = __toESM(require("puppeteer"), 1);
|
|
35
|
+
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
36
|
+
const loadHtml = async (url, ctx) => {
|
|
37
|
+
const browser = await import_puppeteer.default.launch(
|
|
38
|
+
ctx || {
|
|
39
|
+
headless: true,
|
|
40
|
+
args: ["--no-sandbox", "--disable-setuid-sandbox"]
|
|
41
|
+
}
|
|
42
|
+
);
|
|
43
|
+
const page = await browser.newPage();
|
|
44
|
+
await page.goto(url);
|
|
45
|
+
const html = await page.content();
|
|
46
|
+
await Promise.race([page.waitForNetworkIdle(), sleep(1e4)]);
|
|
47
|
+
await page.close();
|
|
48
|
+
return html;
|
|
49
|
+
};
|
|
50
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
51
|
+
0 && (module.exports = {
|
|
52
|
+
loadHtml
|
|
53
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var import_playwright = require("playwright");
|
|
3
|
+
var import_vitest = require("vitest");
|
|
4
|
+
var import_puppeteer = require("./puppeteer");
|
|
5
|
+
(0, import_vitest.describe)("Puppeteer loader", () => {
|
|
6
|
+
(0, import_vitest.it)("should load the HTML of a URL", async () => {
|
|
7
|
+
const html = await (0, import_puppeteer.loadHtml)("https://example.com");
|
|
8
|
+
(0, import_vitest.expect)(html).toContain("Example Domain");
|
|
9
|
+
});
|
|
10
|
+
(0, import_vitest.it)("should load the HTML of a URL using a custom puppeteer context", async () => {
|
|
11
|
+
const context = await import_playwright.chromium.launch({ headless: true });
|
|
12
|
+
const html = await (0, import_puppeteer.loadHtml)("https://example.com", { headless: true });
|
|
13
|
+
(0, import_vitest.expect)(html).toContain("Example Domain");
|
|
14
|
+
(0, import_vitest.expect)(context.isConnected()).toBe(true);
|
|
15
|
+
await context.close();
|
|
16
|
+
});
|
|
17
|
+
});
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import { select, selectAll } from "hast-util-select";
|
|
3
3
|
import { toString as hastToString } from "hast-util-to-string";
|
|
4
4
|
import { filter } from "unist-util-filter";
|
|
5
|
-
import { parents } from "unist-util-parents";
|
|
6
5
|
import { classnames, hasAncestors, isStrInclude, matchString } from "./utils.js";
|
|
7
6
|
var UNLIKELY_ROLES = ["menu", "menubar", "complementary", "navigation", "alert", "alertdialog", "dialog"];
|
|
8
7
|
var REGEXPS = {
|
|
@@ -113,8 +112,8 @@ var removeEmptyFilter = (node) => {
|
|
|
113
112
|
var readabilityExtractHast = (hast) => {
|
|
114
113
|
const lang = String(select("html", hast)?.properties.lang || tryGetLang(hast) || "en");
|
|
115
114
|
const body = select("body", hast) ?? hast;
|
|
116
|
-
const
|
|
117
|
-
const baseFilterd = filter(
|
|
115
|
+
const bodyText = hastToString(body);
|
|
116
|
+
const baseFilterd = filter(body, (node) => {
|
|
118
117
|
if (!metadataFilter(node)) {
|
|
119
118
|
return false;
|
|
120
119
|
}
|
|
@@ -126,30 +125,31 @@ var readabilityExtractHast = (hast) => {
|
|
|
126
125
|
if (!baseFilterd) {
|
|
127
126
|
return { type: "root", children: [] };
|
|
128
127
|
}
|
|
129
|
-
const
|
|
128
|
+
const baseFilterdText = hastToString(baseFilterd);
|
|
129
|
+
let [baseTree, baseText] = baseFilterdText.length > bodyText.length / 3 || baseFilterdText.length > 5e3 ? [baseFilterd, baseFilterdText] : [body, bodyText];
|
|
130
130
|
let minimalLength = lang in BASE_MINIMAL_LENGTH ? BASE_MINIMAL_LENGTH[lang] : 500;
|
|
131
131
|
if (baseText.length < minimalLength) {
|
|
132
132
|
minimalLength = Math.max(0, baseText.length - 200);
|
|
133
133
|
}
|
|
134
|
-
let bodyTree = baseFilterd;
|
|
135
134
|
for (const selector of BODY_SELECTORS) {
|
|
136
|
-
const
|
|
137
|
-
const
|
|
138
|
-
if (
|
|
135
|
+
const content = { type: "root", children: selectAll(selector, baseFilterd) };
|
|
136
|
+
const contentText = hastToString(content);
|
|
137
|
+
if (contentText.length < 25) {
|
|
139
138
|
continue;
|
|
140
139
|
}
|
|
141
|
-
const links = selectAll("a",
|
|
140
|
+
const links = selectAll("a", content);
|
|
142
141
|
const linkText = links.map((link) => hastToString(link)).join("");
|
|
143
142
|
const linkDensity = linkText.length / bodyText.length;
|
|
144
143
|
if (linkDensity > 0.4) {
|
|
145
144
|
continue;
|
|
146
145
|
}
|
|
147
|
-
if (
|
|
148
|
-
|
|
146
|
+
if (contentText.length > minimalLength) {
|
|
147
|
+
baseTree = content;
|
|
148
|
+
baseText = contentText;
|
|
149
149
|
break;
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
|
-
const
|
|
152
|
+
const finalFilteredTree = filter(baseTree, (node) => {
|
|
153
153
|
if (!removeEmptyFilter(node)) {
|
|
154
154
|
return false;
|
|
155
155
|
}
|
|
@@ -158,6 +158,7 @@ var readabilityExtractHast = (hast) => {
|
|
|
158
158
|
}
|
|
159
159
|
return true;
|
|
160
160
|
});
|
|
161
|
+
const finalTree = hastToString(finalFilteredTree).length > baseText.length / 3 ? finalFilteredTree : baseTree;
|
|
161
162
|
return finalTree;
|
|
162
163
|
};
|
|
163
164
|
export {
|
|
@@ -109,14 +109,14 @@ describe("htmlToMarkdown", () => {
|
|
|
109
109
|
describe("htmlToMarkdown E2E", () => {
|
|
110
110
|
it("should convert npm README to Markdown ", async () => {
|
|
111
111
|
const html2 = await loadHtml("https://www.npmjs.com/package/webforai");
|
|
112
|
-
const markdown = htmlToMarkdown(html2
|
|
112
|
+
const markdown = htmlToMarkdown(html2);
|
|
113
113
|
const original = await import("../README.md?raw");
|
|
114
114
|
const d = distance(markdown, original.default);
|
|
115
|
-
expect(d).lte(
|
|
115
|
+
expect(d).lte(200);
|
|
116
116
|
});
|
|
117
117
|
it("should convert GitHub README to Markdown ", async () => {
|
|
118
118
|
const html2 = await loadHtml("https://github.com/inaridiy/webforai");
|
|
119
|
-
const markdown = htmlToMarkdown(html2
|
|
119
|
+
const markdown = htmlToMarkdown(html2);
|
|
120
120
|
const original = await import("../../../README.md?raw");
|
|
121
121
|
const d = distance(markdown, original.default);
|
|
122
122
|
expect(d).lte(200);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// src/loaders/puppeteer.ts
|
|
2
|
+
import puppeteer from "puppeteer";
|
|
3
|
+
var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
4
|
+
var loadHtml = async (url, ctx) => {
|
|
5
|
+
const browser = await puppeteer.launch(
|
|
6
|
+
ctx || {
|
|
7
|
+
headless: true,
|
|
8
|
+
args: ["--no-sandbox", "--disable-setuid-sandbox"]
|
|
9
|
+
}
|
|
10
|
+
);
|
|
11
|
+
const page = await browser.newPage();
|
|
12
|
+
await page.goto(url);
|
|
13
|
+
const html = await page.content();
|
|
14
|
+
await Promise.race([page.waitForNetworkIdle(), sleep(1e4)]);
|
|
15
|
+
await page.close();
|
|
16
|
+
return html;
|
|
17
|
+
};
|
|
18
|
+
export {
|
|
19
|
+
loadHtml
|
|
20
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// src/loaders/puppeteer.test.ts
|
|
2
|
+
import { chromium } from "playwright.js";
|
|
3
|
+
import { describe, expect, it } from "vitest";
|
|
4
|
+
import { loadHtml } from "./puppeteer.js";
|
|
5
|
+
describe("Puppeteer loader", () => {
|
|
6
|
+
it("should load the HTML of a URL", async () => {
|
|
7
|
+
const html = await loadHtml("https://example.com");
|
|
8
|
+
expect(html).toContain("Example Domain");
|
|
9
|
+
});
|
|
10
|
+
it("should load the HTML of a URL using a custom puppeteer context", async () => {
|
|
11
|
+
const context = await chromium.launch({ headless: true });
|
|
12
|
+
const html = await loadHtml("https://example.com", { headless: true });
|
|
13
|
+
expect(html).toContain("Example Domain");
|
|
14
|
+
expect(context.isConnected()).toBe(true);
|
|
15
|
+
await context.close();
|
|
16
|
+
});
|
|
17
|
+
});
|
|
@@ -1,11 +1,2 @@
|
|
|
1
1
|
import type { Nodes as Hast } from "hast";
|
|
2
|
-
type ProxiedHast = Hast & {
|
|
3
|
-
parent: ProxiedHast | null;
|
|
4
|
-
};
|
|
5
|
-
declare module "hast" {
|
|
6
|
-
interface Element {
|
|
7
|
-
parent: ProxiedHast | null;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
2
|
export declare const readabilityExtractHast: (hast: Hast) => Hast;
|
|
11
|
-
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readability.js","sourceRoot":"","sources":["../../../src/extract-hast/readability.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"readability.js","sourceRoot":"","sources":["../../../src/extract-hast/readability.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puppeteer.js","sourceRoot":"","sources":["../../../src/loaders/puppeteer.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AAGlC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,GAAW,EAAE,GAA4B,EAAE,EAAE;IAC3E,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,MAAM,CACrC,GAAG,IAAI;QACN,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,CAAC,cAAc,EAAE,0BAA0B,CAAC;KAClD,CACD,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACrC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAErB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IAElC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE9D,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IAEnB,OAAO,IAAI,CAAC;AACb,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "webforai",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.1",
|
|
4
4
|
"description": "A library that provides a web interface for AI",
|
|
5
5
|
"author": "inaridiy",
|
|
6
6
|
"license": "MIT",
|
|
@@ -51,6 +51,11 @@
|
|
|
51
51
|
"types": "./dist/types/loaders/cf-puppeteer.d.ts",
|
|
52
52
|
"import": "./dist/loaders/cf-puppeteer.js",
|
|
53
53
|
"require": "./dist/cjs/loaders/cf-puppeteer.js"
|
|
54
|
+
},
|
|
55
|
+
"./loaders/puppeteer": {
|
|
56
|
+
"types": "./dist/types/loaders/puppeteer.d.ts",
|
|
57
|
+
"import": "./dist/loaders/puppeteer.js",
|
|
58
|
+
"require": "./dist/cjs/loaders/puppeteer.js"
|
|
54
59
|
}
|
|
55
60
|
},
|
|
56
61
|
"typesVersions": {
|
|
@@ -63,12 +68,19 @@
|
|
|
63
68
|
],
|
|
64
69
|
"loaders/cf-puppeteer": [
|
|
65
70
|
"./dist/types/loaders/cf-puppeteer.d.ts"
|
|
71
|
+
],
|
|
72
|
+
"loaders/fetch": [
|
|
73
|
+
"./dist/types/loaders/fetch.d.ts"
|
|
74
|
+
],
|
|
75
|
+
"loaders/puppeteer": [
|
|
76
|
+
"./dist/types/loaders/puppeteer.d.ts"
|
|
66
77
|
]
|
|
67
78
|
}
|
|
68
79
|
},
|
|
69
80
|
"peerDependencies": {
|
|
70
81
|
"@cloudflare/puppeteer": "^0.0.6",
|
|
71
|
-
"playwright": "^1.0.0"
|
|
82
|
+
"playwright": "^1.0.0",
|
|
83
|
+
"puppeteer": "^22.10.0"
|
|
72
84
|
},
|
|
73
85
|
"peerDependenciesMeta": {
|
|
74
86
|
"playwright": {
|
|
@@ -76,6 +88,9 @@
|
|
|
76
88
|
},
|
|
77
89
|
"@cloudflare/puppeteer": {
|
|
78
90
|
"optional": true
|
|
91
|
+
},
|
|
92
|
+
"puppeteer": {
|
|
93
|
+
"optional": true
|
|
79
94
|
}
|
|
80
95
|
},
|
|
81
96
|
"dependencies": {
|
|
@@ -90,6 +105,7 @@
|
|
|
90
105
|
"mdast-util-gfm": "^3.0.0",
|
|
91
106
|
"mdast-util-math": "^3.0.0",
|
|
92
107
|
"mdast-util-to-markdown": "^2.1.0",
|
|
108
|
+
"puppeteer": "^22.10.0",
|
|
93
109
|
"trim-trailing-lines": "^2.1.0",
|
|
94
110
|
"unist-util-filter": "^5.0.1",
|
|
95
111
|
"unist-util-parents": "^3.0.0",
|