diff --git a/dist/api.js b/dist/api.js index 4d23f3e..94da5c5 100644 --- a/dist/api.js +++ b/dist/api.js @@ -1,12 +1,13 @@ import { format } from 'node:util'; import { URL } from 'node:url'; import { Xid } from 'xid-ts'; +import { encode } from 'cborg'; import contentType from 'content-type'; import getRawBody from 'raw-body'; import createError from 'http-errors'; import { LogLevel, createLog, logError, writeLog } from './log.js'; import { scraping } from './crawler.js'; -import { parseHTML, toHTML } from './tiptap.js'; +import { parseHTML, toHTML, findTitle } from './tiptap.js'; import { getConverter } from './converting.js'; import { DocumentModel } from './db/model.js'; const serverStartAt = Date.now(); @@ -135,8 +136,22 @@ export async function convertingAPI(ctx) { const converter = getConverter(ct.type); const buf = await getRawBody(ctx.req, { limit: '500kb' }); try { - const doc = await converter(buf); + const content = await converter(buf); // console.log(Buffer.from(doc).toString('hex')) + let title = findTitle(content, 1); + if (title === '') { + title = findTitle(content, 2); + } + const doc = { + id: new Xid(), + url: "", + src: "", + title: title, + meta: {}, + content: Buffer.from(encode(content)), + html: "", + page: "" + }; ctx.body = { result: doc }; diff --git a/dist/converting.js b/dist/converting.js index 7260ce9..7c726b9 100644 --- a/dist/converting.js +++ b/dist/converting.js @@ -1,4 +1,3 @@ -import { encode } from 'cborg'; import createError from 'http-errors'; import { marked } from 'marked'; import pdfjs from 'pdfjs-dist'; @@ -24,12 +23,12 @@ export function getConverter(mime) { function convertHtml(buf) { const html = buf.toString('utf8'); const doc = parseHTML(html); - return Promise.resolve(Buffer.from(encode(doc))); + return Promise.resolve(doc); } function convertMarkdown(buf) { const html = marked.parse(buf.toString('utf8')); const doc = parseHTML(html); - return Promise.resolve(Buffer.from(encode(doc))); + return Promise.resolve(doc); } async function convertPdf(buf) { const doc = await pdfjs.getDocument(new Uint8Array(buf)).promise; @@ -49,6 +48,7 @@ async function convertPdf(buf) { hl.finalize(); let texts = []; let height = 0; + let prevNode = null; for (let item of content.items) { item = item; if (item.str == null) { @@ -67,16 +67,23 @@ async function convertPdf(buf) { if (item.hasEOL) { const level = hl.level(height); if (level == 0) { - node.content.push({ + prevNode = { type: 'paragraph', content: [{ type: 'text', text: texts.join('') }] + }; + node.content.push(prevNode); + } + else if (prevNode != null && prevNode.type === 'heading' && prevNode.attrs.level === level) { + prevNode.content.push({ + type: 'text', + text: texts.join('') }); } else { - node.content.push({ + prevNode = { type: "heading", attrs: { id: null, @@ -86,7 +93,8 @@ async function convertPdf(buf) { type: 'text', text: texts.join('') }] - }); + }; + node.content.push(prevNode); } texts = []; height = 0; @@ -104,7 +112,7 @@ async function convertPdf(buf) { page.cleanup(); } const amender = new JSONDocumentAmender(); - return Promise.resolve(Buffer.from(encode(amender.amendNode(node)))); + return Promise.resolve(amender.amendNode(node)); } function convertText(buf) { const texts = buf.toString('utf8').split(/\r\n|\r|\n/); @@ -125,7 +133,7 @@ function convertText(buf) { }); } const amender = new JSONDocumentAmender(); - return Promise.resolve(Buffer.from(encode(amender.amendNode(node)))); + return Promise.resolve(amender.amendNode(node)); } export class HeadingLevel { sample; diff --git a/dist/tiptap.js b/dist/tiptap.js index 12965dc..2fbcc03 100644 --- a/dist/tiptap.js +++ b/dist/tiptap.js @@ -164,6 +164,28 @@ export function parseHTML(html) { export function toHTML(doc) { return generateHTML(doc, tiptapExtensions); } +export function findTitle(doc, level) { + if (doc.type === 'heading') { + if (doc.attrs.level === level && doc.content != null) { + const texts = []; + for (const child of doc.content) { + if (child.type === 'text') { + texts.push(child.text); + } + } + return texts.join(' '); + } + } + else if (doc.content != null) { + for (const child of doc.content) { + const title = findTitle(child, level); + if (title !== '') { + return title; + } + } + } + return ''; +} const LOCALHOST = 'https://localhost'; function isSameOriginHref(href) { if (typeof href === 'string') { diff --git a/package.json b/package.json index a65ca60..8707daa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "webscraper", - "version": "0.5.1", + "version": "0.5.3", "description": "", "private": true, "main": "dist/main.js", @@ -34,40 +34,40 @@ "@tiptap-pro/extension-emoji": "2.1.0", "@tiptap-pro/extension-mathematics": "2.1.0", "@tiptap-pro/extension-unique-id": "2.1.0", - "@tiptap/core": "2.1.0-rc.12", - "@tiptap/extension-blockquote": "2.1.0-rc.12", - "@tiptap/extension-bold": "2.1.0-rc.12", - "@tiptap/extension-code": "2.1.0-rc.12", - "@tiptap/extension-code-block": "2.1.0-rc.12", - "@tiptap/extension-color": "2.1.0-rc.12", - "@tiptap/extension-document": "2.1.0-rc.12", - "@tiptap/extension-font-family": "2.1.0-rc.12", - "@tiptap/extension-hard-break": "2.1.0-rc.12", - "@tiptap/extension-heading": "2.1.0-rc.12", - "@tiptap/extension-horizontal-rule": "2.1.0-rc.12", - "@tiptap/extension-image": "2.1.0-rc.12", - "@tiptap/extension-italic": "2.1.0-rc.12", - "@tiptap/extension-link": "2.1.0-rc.12", - "@tiptap/extension-list-item": "2.1.0-rc.12", - "@tiptap/extension-mention": "2.1.0-rc.12", - "@tiptap/extension-ordered-list": "2.1.0-rc.12", - "@tiptap/extension-paragraph": "2.1.0-rc.12", - "@tiptap/extension-subscript": "2.1.0-rc.12", - "@tiptap/extension-superscript": "2.1.0-rc.12", - "@tiptap/extension-table": "2.1.0-rc.12", - "@tiptap/extension-table-cell": "2.1.0-rc.12", - "@tiptap/extension-table-header": "2.1.0-rc.12", - "@tiptap/extension-table-row": "2.1.0-rc.12", - "@tiptap/extension-task-item": "2.1.0-rc.12", - "@tiptap/extension-task-list": "2.1.0-rc.12", - "@tiptap/extension-text": "2.1.0-rc.12", - "@tiptap/extension-text-align": "2.1.0-rc.12", - "@tiptap/extension-text-style": "2.1.0-rc.12", - "@tiptap/extension-typography": "2.1.0-rc.12", - "@tiptap/extension-underline": "2.1.0-rc.12", - "@tiptap/extension-youtube": "2.1.0-rc.12", - "@tiptap/html": "2.1.0-rc.12", - "@tiptap/pm": "2.1.0-rc.12", + "@tiptap/core": "2.1.0-rc.14", + "@tiptap/extension-blockquote": "2.1.0-rc.14", + "@tiptap/extension-bold": "2.1.0-rc.14", + "@tiptap/extension-code": "2.1.0-rc.14", + "@tiptap/extension-code-block": "2.1.0-rc.14", + "@tiptap/extension-color": "2.1.0-rc.14", + "@tiptap/extension-document": "2.1.0-rc.14", + "@tiptap/extension-font-family": "2.1.0-rc.14", + "@tiptap/extension-hard-break": "2.1.0-rc.14", + "@tiptap/extension-heading": "2.1.0-rc.14", + "@tiptap/extension-horizontal-rule": "2.1.0-rc.14", + "@tiptap/extension-image": "2.1.0-rc.14", + "@tiptap/extension-italic": "2.1.0-rc.14", + "@tiptap/extension-link": "2.1.0-rc.14", + "@tiptap/extension-list-item": "2.1.0-rc.14", + "@tiptap/extension-mention": "2.1.0-rc.14", + "@tiptap/extension-ordered-list": "2.1.0-rc.14", + "@tiptap/extension-paragraph": "2.1.0-rc.14", + "@tiptap/extension-subscript": "2.1.0-rc.14", + "@tiptap/extension-superscript": "2.1.0-rc.14", + "@tiptap/extension-table": "2.1.0-rc.14", + "@tiptap/extension-table-cell": "2.1.0-rc.14", + "@tiptap/extension-table-header": "2.1.0-rc.14", + "@tiptap/extension-table-row": "2.1.0-rc.14", + "@tiptap/extension-task-item": "2.1.0-rc.14", + "@tiptap/extension-task-list": "2.1.0-rc.14", + "@tiptap/extension-text": "2.1.0-rc.14", + "@tiptap/extension-text-align": "2.1.0-rc.14", + "@tiptap/extension-text-style": "2.1.0-rc.14", + "@tiptap/extension-typography": "2.1.0-rc.14", + "@tiptap/extension-underline": "2.1.0-rc.14", + "@tiptap/extension-youtube": "2.1.0-rc.14", + "@tiptap/html": "2.1.0-rc.14", + "@tiptap/pm": "2.1.0-rc.14", "cassandra-driver": "^4.6.4", "cborg": "^2.0.3", "cheerio": "1.0.0-rc.12", @@ -77,15 +77,15 @@ "http-errors": "^2.0.0", "koa": "^2.14.2", "long": "^5.2.3", - "marked": "^7.0.0", + "marked": "^7.0.2", "nanoid": "^4.0.2", "pdfjs-dist": "^3.9.179", - "playwright": "^1.36.2", + "playwright": "^1.37.0", "prosemirror-model": "^1.19.3", "raw-body": "^2.5.2", "uuid": "^9.0.0", "xid-ts": "^1.0.1", - "zeed-dom": "^0.10.6" + "zeed-dom": "^0.10.7" }, "devDependencies": { "@types/config": "^3.3.0", @@ -94,11 +94,11 @@ "@types/katex": "^0.16.2", "@types/koa": "^2.13.8", "@types/koa__router": "^12.0.0", - "@types/node": "^18.17.3", + "@types/node": "^18.17.5", "@types/uuid": "^9.0.2", - "@typescript-eslint/eslint-plugin": "^6.2.1", - "@typescript-eslint/parser": "^6.2.1", - "eslint": "^8.46.0", + "@typescript-eslint/eslint-plugin": "^6.3.0", + "@typescript-eslint/parser": "^6.3.0", + "eslint": "^8.47.0", "node-fetch": "^3.3.2", "tsup": "^7.2.0", "typescript": "^5.1.6" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1e814ac..9f7b44b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,124 +13,124 @@ dependencies: version: 12.0.0 '@tiptap-pro/extension-details': specifier: 2.1.0 - version: 2.1.0(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12) + version: 2.1.0(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14) '@tiptap-pro/extension-details-content': specifier: 2.1.0 - version: 2.1.0(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12) + version: 2.1.0(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14) '@tiptap-pro/extension-details-summary': specifier: 2.1.0 - version: 2.1.0(@tiptap/core@2.1.0-rc.12) + version: 2.1.0(@tiptap/core@2.1.0-rc.14) '@tiptap-pro/extension-emoji': specifier: 2.1.0 - version: 2.1.0(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12)(@tiptap/suggestion@2.0.4)(emojibase@15.0.0) + version: 2.1.0(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14)(@tiptap/suggestion@2.0.4)(emojibase@15.0.0) '@tiptap-pro/extension-mathematics': specifier: 2.1.0 - version: 2.1.0(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12)(katex@0.16.8) + version: 2.1.0(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14)(katex@0.16.8) '@tiptap-pro/extension-unique-id': specifier: 2.1.0 - version: 2.1.0(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12) + version: 2.1.0(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14) '@tiptap/core': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) '@tiptap/extension-blockquote': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-bold': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-code': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-code-block': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14) '@tiptap/extension-color': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12)(@tiptap/extension-text-style@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14)(@tiptap/extension-text-style@2.1.0-rc.14) '@tiptap/extension-document': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-font-family': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12)(@tiptap/extension-text-style@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14)(@tiptap/extension-text-style@2.1.0-rc.14) '@tiptap/extension-hard-break': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-heading': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-horizontal-rule': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14) '@tiptap/extension-image': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-italic': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-link': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14) '@tiptap/extension-list-item': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-mention': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12)(@tiptap/suggestion@2.0.4) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14)(@tiptap/suggestion@2.0.4) '@tiptap/extension-ordered-list': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-paragraph': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-subscript': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-superscript': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-table': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14) '@tiptap/extension-table-cell': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-table-header': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-table-row': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-task-item': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14) '@tiptap/extension-task-list': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-text': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-text-align': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-text-style': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-typography': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-underline': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/extension-youtube': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) '@tiptap/html': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12) + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14) '@tiptap/pm': - specifier: 2.1.0-rc.12 - version: 2.1.0-rc.12 + specifier: 2.1.0-rc.14 + version: 2.1.0-rc.14 cassandra-driver: specifier: ^4.6.4 version: 4.6.4 @@ -148,7 +148,7 @@ dependencies: version: 1.0.5 crawlee: specifier: ^3.5.0 - version: 3.5.0(playwright@1.36.2) + version: 3.5.0(playwright@1.37.0) http-errors: specifier: ^2.0.0 version: 2.0.0 @@ -159,8 +159,8 @@ dependencies: specifier: ^5.2.3 version: 5.2.3 marked: - specifier: ^7.0.0 - version: 7.0.0 + specifier: ^7.0.2 + version: 7.0.2 nanoid: specifier: ^4.0.2 version: 4.0.2 @@ -168,8 +168,8 @@ dependencies: specifier: ^3.9.179 version: 3.9.179 playwright: - specifier: ^1.36.2 - version: 1.36.2 + specifier: ^1.37.0 + version: 1.37.0 prosemirror-model: specifier: ^1.19.3 version: 1.19.3 @@ -183,8 +183,8 @@ dependencies: specifier: ^1.0.1 version: 1.0.1 zeed-dom: - specifier: ^0.10.6 - version: 0.10.6 + specifier: ^0.10.7 + version: 0.10.7 devDependencies: '@types/config': @@ -206,20 +206,20 @@ devDependencies: specifier: ^12.0.0 version: 12.0.0 '@types/node': - specifier: ^18.17.3 - version: 18.17.3 + specifier: ^18.17.5 + version: 18.17.5 '@types/uuid': specifier: ^9.0.2 version: 9.0.2 '@typescript-eslint/eslint-plugin': - specifier: ^6.2.1 - version: 6.2.1(@typescript-eslint/parser@6.2.1)(eslint@8.46.0)(typescript@5.1.6) + specifier: ^6.3.0 + version: 6.3.0(@typescript-eslint/parser@6.3.0)(eslint@8.47.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: ^6.2.1 - version: 6.2.1(eslint@8.46.0)(typescript@5.1.6) + specifier: ^6.3.0 + version: 6.3.0(eslint@8.47.0)(typescript@5.1.6) eslint: - specifier: ^8.46.0 - version: 8.46.0 + specifier: ^8.47.0 + version: 8.47.0 node-fetch: specifier: ^3.3.2 version: 3.3.2 @@ -271,8 +271,8 @@ packages: resolution: {integrity: sha512-jLwg4vC1hHsU1UWbwO5suYFGPBANPy5Dovc6P9y56TZ1B2RsRYjfDaX3BdfaAa6E2akib19EinF9EjuN13m5AA==} dev: false - /@apify/utilities@2.7.10: - resolution: {integrity: sha512-40mXkqL75cEBcNrS7bt/qjOSCvkdetaVQDx5Pyhxq2VhKRR8BIvATwBXDvg/mhIwZRDGgoZhm99eAzuYmhoD1w==} + /@apify/utilities@2.8.0: + resolution: {integrity: sha512-SIz7hqP+vm5OOuVANFJVddxYt0q+HcS0p+Ddt0R+8euz3vljbkfKoU5mpsxCpcIBIb+aLkxQXp8LEzCOzTaleA==} dependencies: '@apify/consts': 2.20.0 '@apify/log': 2.4.0 @@ -284,18 +284,18 @@ packages: dependencies: '@apify/log': 2.4.0 '@apify/timeout': 0.3.0 - '@apify/utilities': 2.7.10 + '@apify/utilities': 2.8.0 '@crawlee/core': 3.5.0 '@crawlee/types': 3.5.0 '@crawlee/utils': 3.5.0 got-scraping: 3.2.15 ow: 0.28.2 - tldts: 6.0.13 + tldts: 6.0.14 tslib: 2.6.1 - type-fest: 4.1.0 + type-fest: 4.2.0 dev: false - /@crawlee/browser-pool@3.5.0(playwright@1.36.2): + /@crawlee/browser-pool@3.5.0(playwright@1.37.0): resolution: {integrity: sha512-qV8wRLF2eJ+afSoXC54OKE7oFHj8+x8OlL0abYUHSJAvvOD8kUEC5zpqiRJhak0p62GQu2r9BFGqDerdtAJJoQ==} engines: {node: '>=16.0.0'} peerDependencies: @@ -311,25 +311,25 @@ packages: '@apify/timeout': 0.3.0 '@crawlee/types': 3.5.0 fingerprint-generator: 2.1.38 - fingerprint-injector: 2.1.38(playwright@1.36.2) + fingerprint-injector: 2.1.38(playwright@1.37.0) lodash.merge: 4.6.2 nanoid: 3.3.6 ow: 0.28.2 p-limit: 3.1.0 - playwright: 1.36.2 + playwright: 1.37.0 proxy-chain: 2.3.0 quick-lru: 5.1.1 tiny-typed-emitter: 2.1.0 tslib: 2.6.1 dev: false - /@crawlee/browser@3.5.0(playwright@1.36.2): + /@crawlee/browser@3.5.0(playwright@1.37.0): resolution: {integrity: sha512-PZhVBeyCeESadJxHzZWX/OZ1oN8oJYG37A3H/ZX4ID0ruu54VcTBlMR7xQqfOjA29NZk4q5NDy3a1auQGZPofA==} engines: {node: '>=16.0.0'} dependencies: '@apify/timeout': 0.3.0 '@crawlee/basic': 3.5.0 - '@crawlee/browser-pool': 3.5.0(playwright@1.36.2) + '@crawlee/browser-pool': 3.5.0(playwright@1.37.0) '@crawlee/types': 3.5.0 '@crawlee/utils': 3.5.0 ow: 0.28.2 @@ -373,7 +373,7 @@ packages: '@apify/log': 2.4.0 '@apify/pseudo_url': 2.0.30 '@apify/timeout': 0.3.0 - '@apify/utilities': 2.7.10 + '@apify/utilities': 2.8.0 '@crawlee/memory-storage': 3.5.0 '@crawlee/types': 3.5.0 '@crawlee/utils': 3.5.0 @@ -387,10 +387,10 @@ packages: ow: 0.28.2 stream-chain: 2.2.5 stream-json: 1.8.0 - tldts: 6.0.13 + tldts: 6.0.14 tough-cookie: 4.1.3 tslib: 2.6.1 - type-fest: 4.1.0 + type-fest: 4.2.0 dev: false /@crawlee/http@3.5.0: @@ -398,7 +398,7 @@ packages: engines: {node: '>=16.0.0'} dependencies: '@apify/timeout': 0.3.0 - '@apify/utilities': 2.7.10 + '@apify/utilities': 2.8.0 '@crawlee/basic': 3.5.0 '@crawlee/types': 3.5.0 '@crawlee/utils': 3.5.0 @@ -410,7 +410,7 @@ packages: mime-types: 2.1.35 ow: 0.28.2 tslib: 2.6.1 - type-fest: 4.1.0 + type-fest: 4.2.0 dev: false /@crawlee/jsdom@3.5.0: @@ -418,7 +418,7 @@ packages: engines: {node: '>=16.0.0'} dependencies: '@apify/timeout': 0.3.0 - '@apify/utilities': 2.7.10 + '@apify/utilities': 2.8.0 '@crawlee/http': 3.5.0 '@crawlee/types': 3.5.0 '@types/jsdom': 21.1.1 @@ -438,7 +438,7 @@ packages: engines: {node: '>=16.0.0'} dependencies: '@apify/timeout': 0.3.0 - '@apify/utilities': 2.7.10 + '@apify/utilities': 2.8.0 '@crawlee/http': 3.5.0 '@crawlee/types': 3.5.0 linkedom: 0.15.1 @@ -462,7 +462,7 @@ packages: tslib: 2.6.1 dev: false - /@crawlee/playwright@3.5.0(playwright@1.36.2): + /@crawlee/playwright@3.5.0(playwright@1.37.0): resolution: {integrity: sha512-ZG9w5fCSySihOi3fPk8+aXIs2vmEUmWxd62PgMHKQ826UlHDm4Axk/Gb9LtKRe3zdlX3ZVkAfYDJ11SkYhTtuw==} engines: {node: '>=16.0.0'} peerDependencies: @@ -473,21 +473,21 @@ packages: dependencies: '@apify/datastructures': 2.0.0 '@apify/log': 2.4.0 - '@crawlee/browser': 3.5.0(playwright@1.36.2) - '@crawlee/browser-pool': 3.5.0(playwright@1.36.2) + '@crawlee/browser': 3.5.0(playwright@1.37.0) + '@crawlee/browser-pool': 3.5.0(playwright@1.37.0) '@crawlee/types': 3.5.0 '@crawlee/utils': 3.5.0 cheerio: 1.0.0-rc.12 idcac-playwright: 0.1.2 jquery: 3.7.0 ow: 0.28.2 - playwright: 1.36.2 + playwright: 1.37.0 tslib: 2.6.1 transitivePeerDependencies: - puppeteer dev: false - /@crawlee/puppeteer@3.5.0(playwright@1.36.2): + /@crawlee/puppeteer@3.5.0(playwright@1.37.0): resolution: {integrity: sha512-TteAdmH9xcBW6lXADlsvmq1f9HVnEDEUaAeZgrNj+88QQF+sw4CgAH/Z6OzaqgISUb2mLBZyf1N7bVjHT9pd4A==} engines: {node: '>=16.0.0'} peerDependencies: @@ -498,12 +498,12 @@ packages: dependencies: '@apify/datastructures': 2.0.0 '@apify/log': 2.4.0 - '@crawlee/browser': 3.5.0(playwright@1.36.2) - '@crawlee/browser-pool': 3.5.0(playwright@1.36.2) + '@crawlee/browser': 3.5.0(playwright@1.37.0) + '@crawlee/browser-pool': 3.5.0(playwright@1.37.0) '@crawlee/types': 3.5.0 '@crawlee/utils': 3.5.0 cheerio: 1.0.0-rc.12 - devtools-protocol: 0.0.1179426 + devtools-protocol: 0.0.1182435 idcac-playwright: 0.1.2 jquery: 3.7.0 ow: 0.28.2 @@ -517,7 +517,7 @@ packages: engines: {node: '>=16.0.0'} dependencies: ansi-colors: 4.1.3 - inquirer: 9.2.9 + inquirer: 9.2.10 tslib: 2.6.1 yargonaut: 1.1.4 yargs: 17.7.2 @@ -543,8 +543,8 @@ packages: tslib: 2.6.1 dev: false - /@esbuild/android-arm64@0.18.17: - resolution: {integrity: sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==} + /@esbuild/android-arm64@0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -552,8 +552,8 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.18.17: - resolution: {integrity: sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==} + /@esbuild/android-arm@0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -561,8 +561,8 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.18.17: - resolution: {integrity: sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==} + /@esbuild/android-x64@0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -570,8 +570,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.18.17: - resolution: {integrity: sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==} + /@esbuild/darwin-arm64@0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -579,8 +579,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.18.17: - resolution: {integrity: sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==} + /@esbuild/darwin-x64@0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -588,8 +588,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.18.17: - resolution: {integrity: sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==} + /@esbuild/freebsd-arm64@0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -597,8 +597,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.18.17: - resolution: {integrity: sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==} + /@esbuild/freebsd-x64@0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -606,8 +606,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.18.17: - resolution: {integrity: sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==} + /@esbuild/linux-arm64@0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -615,8 +615,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.18.17: - resolution: {integrity: sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==} + /@esbuild/linux-arm@0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -624,8 +624,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.18.17: - resolution: {integrity: sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==} + /@esbuild/linux-ia32@0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -633,8 +633,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.18.17: - resolution: {integrity: sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==} + /@esbuild/linux-loong64@0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -642,8 +642,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.18.17: - resolution: {integrity: sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==} + /@esbuild/linux-mips64el@0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -651,8 +651,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.18.17: - resolution: {integrity: sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==} + /@esbuild/linux-ppc64@0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -660,8 +660,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.18.17: - resolution: {integrity: sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==} + /@esbuild/linux-riscv64@0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -669,8 +669,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.18.17: - resolution: {integrity: sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==} + /@esbuild/linux-s390x@0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -678,8 +678,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.18.17: - resolution: {integrity: sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==} + /@esbuild/linux-x64@0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -687,8 +687,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.18.17: - resolution: {integrity: sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==} + /@esbuild/netbsd-x64@0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -696,8 +696,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.18.17: - resolution: {integrity: sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==} + /@esbuild/openbsd-x64@0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -705,8 +705,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.18.17: - resolution: {integrity: sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==} + /@esbuild/sunos-x64@0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -714,8 +714,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.18.17: - resolution: {integrity: sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==} + /@esbuild/win32-arm64@0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -723,8 +723,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.18.17: - resolution: {integrity: sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==} + /@esbuild/win32-ia32@0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -732,8 +732,8 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.18.17: - resolution: {integrity: sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==} + /@esbuild/win32-x64@0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -741,14 +741,14 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.46.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.47.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.46.0 - eslint-visitor-keys: 3.4.2 + eslint: 8.47.0 + eslint-visitor-keys: 3.4.3 dev: true /@eslint-community/regexpp@4.6.2: @@ -756,14 +756,14 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.1: - resolution: {integrity: sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==} + /@eslint/eslintrc@2.1.2: + resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 espree: 9.6.1 - globals: 13.20.0 + globals: 13.21.0 ignore: 5.2.4 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -773,8 +773,8 @@ packages: - supports-color dev: true - /@eslint/js@8.46.0: - resolution: {integrity: sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==} + /@eslint/js@8.47.0: + resolution: {integrity: sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -804,11 +804,11 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.18 + '@jridgewell/trace-mapping': 0.3.19 dev: true - /@jridgewell/resolve-uri@3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} dev: true @@ -817,19 +817,15 @@ packages: engines: {node: '>=6.0.0'} dev: true - /@jridgewell/sourcemap-codec@1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} - dev: true - /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true - /@jridgewell/trace-mapping@0.3.18: - resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} + /@jridgewell/trace-mapping@0.3.19: + resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 dev: true /@koa/router@12.0.0: @@ -941,44 +937,44 @@ packages: defer-to-connect: 2.0.1 dev: false - /@tiptap-pro/extension-details-content@2.1.0(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12): + /@tiptap-pro/extension-details-content@2.1.0(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14): resolution: {integrity: sha512-xCv+0huKfCXvLMM8Cp6cG5XJ8RNoYJ9EiIEfzZNuo7BeAcP61yyWmfFQv3NgZXi1IWHIJO27ZF+ED7+9iXgucA==} peerDependencies: '@tiptap/core': ^2.0.0 '@tiptap/pm': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) - '@tiptap/pm': 2.1.0-rc.12 + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) + '@tiptap/pm': 2.1.0-rc.14 dev: false - /@tiptap-pro/extension-details-summary@2.1.0(@tiptap/core@2.1.0-rc.12): + /@tiptap-pro/extension-details-summary@2.1.0(@tiptap/core@2.1.0-rc.14): resolution: {integrity: sha512-oCWLS6RM9w4r365XCwdoMTnuOOPmHXAKWrGOHREtVy8GZTlF3ZtABrrj0MKVjN86bMlaLhQanOLvLZdjfk2T8g==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap-pro/extension-details@2.1.0(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12): + /@tiptap-pro/extension-details@2.1.0(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14): resolution: {integrity: sha512-/86vHBBvuiZEOS0UM+52W3d3XYaz6iGukI7D6UtLoK2F8r8LTu0CY3J+ENa4epF5EWARblHOj5oxBAY86WAXHA==} peerDependencies: '@tiptap/core': ^2.0.0 '@tiptap/pm': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) - '@tiptap/pm': 2.1.0-rc.12 + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) + '@tiptap/pm': 2.1.0-rc.14 dev: false - /@tiptap-pro/extension-emoji@2.1.0(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12)(@tiptap/suggestion@2.0.4)(emojibase@15.0.0): + /@tiptap-pro/extension-emoji@2.1.0(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14)(@tiptap/suggestion@2.0.4)(emojibase@15.0.0): resolution: {integrity: sha512-3InyB750s2c/FJYOAqKCOQsuPHrwdy2y9rUw50Z3qf6P0BuUr7V1XwHeupiyddd8oF+++v70PTh9TCPKe3xH/A==} peerDependencies: '@tiptap/core': ^2.0.0 '@tiptap/pm': ^2.0.0 '@tiptap/suggestion': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) - '@tiptap/pm': 2.1.0-rc.12 - '@tiptap/suggestion': 2.0.4(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) + '@tiptap/pm': 2.1.0-rc.14 + '@tiptap/suggestion': 2.0.4(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14) emoji-regex: 10.2.1 emojibase-data: 7.0.1(emojibase@15.0.0) is-emoji-supported: 0.0.5 @@ -986,317 +982,317 @@ packages: - emojibase dev: false - /@tiptap-pro/extension-mathematics@2.1.0(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12)(katex@0.16.8): + /@tiptap-pro/extension-mathematics@2.1.0(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14)(katex@0.16.8): resolution: {integrity: sha512-H3aVZ6LqJa6QIN39aSbzPktWa5CYCH+5bxBkXRAO4LwuDXZunv/oTkWVLJhzBVNLxnGFwYues+WS1Fc2JXh23w==} peerDependencies: '@tiptap/core': ^2.0.0-beta.218 '@tiptap/pm': ^2.0.0-beta.218 katex: ^0.16.4 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) - '@tiptap/pm': 2.1.0-rc.12 + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) + '@tiptap/pm': 2.1.0-rc.14 katex: 0.16.8 dev: false - /@tiptap-pro/extension-unique-id@2.1.0(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12): + /@tiptap-pro/extension-unique-id@2.1.0(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14): resolution: {integrity: sha512-RdkDqFV0adN/NXJ31I64mD3VmoGhQfNMmOyF5X92fbIymHaonAGzDeoXoindd+6MUUd6e3cm75x5VQLdsddG4Q==} peerDependencies: '@tiptap/core': ^2.0.0 '@tiptap/pm': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) - '@tiptap/pm': 2.1.0-rc.12 + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) + '@tiptap/pm': 2.1.0-rc.14 uuid: 8.3.2 dev: false - /@tiptap/core@2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12): - resolution: {integrity: sha512-Qq7K5ZQKi5GmERG3QIvUZXcYLC3NhSq+iNJoLRrAZ8jVqU3+toKvCavGCaNUWFaNry3JEn0AnM6p1I3VKmhq3w==} + /@tiptap/core@2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14): + resolution: {integrity: sha512-mlPZwGWWEk0qXJX3AbddGvwQXoRiQuRS/dEEWppk+KkebUWOFukQphd0VMb8t4tJh44Ur6d8lDeyC/8PipNBZA==} peerDependencies: '@tiptap/pm': ^2.0.0 dependencies: - '@tiptap/pm': 2.1.0-rc.12 + '@tiptap/pm': 2.1.0-rc.14 dev: false - /@tiptap/extension-blockquote@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-IqIoaSGRBBSwAWYRSn2H+OMBqoCkeKJ+2Qjbia3v0hrSBKmhJElKp45fcHG1hUFhMPWrNd54x+doL7lfClh3hw==} + /@tiptap/extension-blockquote@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-GJ2lS5p5iN3dmlsIUPdXqd2g4sk8B5rcvgWJWXxWhMMhiOR+JNFHDNRzcuYPYTb5a0w+GTE6ElsMfHQEhur9cg==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-bold@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-Hvn8NDJwaa24qK/zsPcXqKvLkpEJsI3w4D45U3aNQ2P1CktzYIPUMURvXTmvfrv2jzCyUfLSItLLj3QFW8G96w==} + /@tiptap/extension-bold@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-D/4SLSpj00B7mSdbOruLxiHacwJs1wz/bPdgeS4hU4w1ytD3k7LPZXbhPSBeqFvSVI79Np8cDC8OIpDpYRV+Tw==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-code-block@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12): - resolution: {integrity: sha512-JYHFLVyk0BikDhyjTArw+CPe1gGDYTMxfG0KTehVNyTrEe+UuP7gUa18hfEC6T5RJTR2UF6wPY3O4R1CRd33cw==} + /@tiptap/extension-code-block@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14): + resolution: {integrity: sha512-6z5cVvtKjbdNiLmmRP51/Z2i1XSpIfy7Vs2MsPSvwBOAYBs7C0/XO+mUW/FIKv0qHie2IMk3VpknaRPOkQWA3g==} peerDependencies: '@tiptap/core': ^2.0.0 '@tiptap/pm': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) - '@tiptap/pm': 2.1.0-rc.12 + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) + '@tiptap/pm': 2.1.0-rc.14 dev: false - /@tiptap/extension-code@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-bbj3g3DnJaScZJqAgNDfkVvCdfXrLtC2RTzLKNfs+iqFmaJXOBIXYBYavl4Srm9+H5GASwKheloM5s3ueYz1Dg==} + /@tiptap/extension-code@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-ufPvlTTYA4xGqI882Dqkyw+eVsoXGqi3ePyEeDZG8w3+NQrfUXRZ4+03wftP0GtRRnYv4zHHH6QoWE6a4B0/gw==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-color@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12)(@tiptap/extension-text-style@2.1.0-rc.12): - resolution: {integrity: sha512-FmEMtonJquuVHVJ9B6Q3XkvrDOa8HVEOmYX7nQthLMVGLHu3J/Sw93Vf/TsU/XfF6XUh4QgwlvzsC5cn5f2GmA==} + /@tiptap/extension-color@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14)(@tiptap/extension-text-style@2.1.0-rc.14): + resolution: {integrity: sha512-thJoyzFEUeEem1fv85X8zzaYWgUL8j7UKaSkxfxIAji4SMoLnlwg4xGCeN5VRA5LhKqxG3DAzUTHyiZTTAhOzw==} peerDependencies: '@tiptap/core': ^2.0.0 '@tiptap/extension-text-style': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) - '@tiptap/extension-text-style': 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) + '@tiptap/extension-text-style': 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) dev: false - /@tiptap/extension-document@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-jcSbx/CIKxw2gD5f+9ZyKbt9AGZ10qyqwBunTZjsCHPuqs/EAJs9be9Mflmiv3N23AAexZ9nCBPdLjcLAby3GA==} + /@tiptap/extension-document@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-FF+psOgVY2uV/xKZCst8frnAM70gPuoyWTvjFXRiy75Au+5KIZbXjN+Uu56IA0B/dF58r1dzRpHv6rwvw7g7Ng==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-font-family@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12)(@tiptap/extension-text-style@2.1.0-rc.12): - resolution: {integrity: sha512-c4CA5ycTJgsaAFA4Ha0aEP2R6OTEB+2jBuWHpfW5HVxon0h0BwGo5VA/hA9gRhIuLVKzUoMHN5V20NjG0CTsDw==} + /@tiptap/extension-font-family@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14)(@tiptap/extension-text-style@2.1.0-rc.14): + resolution: {integrity: sha512-Ql12JIwbHCdYMW5JNdWsEnpj7/OankD1oDSCCQbxwnYGmUsiBS0AMFjcL8Kg/lw0yG+mlVNmGtQ/gwXGnNwaOQ==} peerDependencies: '@tiptap/core': ^2.0.0 '@tiptap/extension-text-style': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) - '@tiptap/extension-text-style': 2.1.0-rc.12(@tiptap/core@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) + '@tiptap/extension-text-style': 2.1.0-rc.14(@tiptap/core@2.1.0-rc.14) dev: false - /@tiptap/extension-hard-break@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-poEpPmrwkJmbBz6bfoYdtajaCvs4oYfLSaNo1mct5EBx2zXT1WMwDwFlgmR5KaGAL8sa7Ei2sZRSVCLT84T9OQ==} + /@tiptap/extension-hard-break@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-WnS5f21FHuuZHNiY/jEZSAxIswbPf42cHMVMkk6W7XQ2lLKpxOl4hGozZjd6Dvraw5jROZd6lN70pkFAsWbZAw==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-heading@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-RlnoSS3+l3taTpj0jO9J9pZ3/kIF8iJ7julpHmLpF5Bx402iZFoxBpRX5aatUH7VqFnzn5hgslZuUY4jwOiylA==} + /@tiptap/extension-heading@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-z+FE6OaKQ9QlzB5biN0E1KwlN1VSJmGsykAq1LrBwJZPaCjruXDBOsrO0ciYoOOayr/hBTTzd+oLW7lJULmdJQ==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-horizontal-rule@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12): - resolution: {integrity: sha512-gny44l5akzg7WmUBnkDx6o0+fs1qxAx2eZPdKmGdKSGV3wGsosvNqJX6XdYDbUmHS4+UiJ3QL0z2WFrcYk3GeA==} + /@tiptap/extension-horizontal-rule@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14): + resolution: {integrity: sha512-QgfKVhQGXnMUOOul8cFPznTmTyb4PL18NkiVCD+QiZnrAyfu8oVtuOuSOikTq/2+0x274XWrExB0pZs+CMg3OQ==} peerDependencies: '@tiptap/core': ^2.0.0 '@tiptap/pm': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) - '@tiptap/pm': 2.1.0-rc.12 + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) + '@tiptap/pm': 2.1.0-rc.14 dev: false - /@tiptap/extension-image@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-AE8wYXRUnxqbddv8/nVrhAEPNXDSYwpc3yXy2ETDnI5hOql+3VNQweN6/mWBQ4NPVTKHgqKTK2rW1CMjXGGtJA==} + /@tiptap/extension-image@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-I+RKnnXEnTT1bYK/0tbGoPyosVQE5JOslz4qwRLeCFULkEFd7YxNMtwChLWImdf4YIv98SsQHf+bHY1Q2pDd/A==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-italic@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-/+kzCpMM+Ir/+PK1yTTRfx+Bnz4ky9aWosMbrWlSjEXR2kC29oJ5s4qoFpb/m9yAasYLccdo2VO9D8yKemrO+A==} + /@tiptap/extension-italic@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-dsw99mS0jZ0zrinkVPPU3tejuD6tm9m9WSIu1rnvujmMGteVLmrGrqC/ziCe1vZJSM8P8UxbXVjKNNnu2Bl/XQ==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-link@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12): - resolution: {integrity: sha512-V44dX99CM/VN/IYxrK0egXnx/VElatKCW1JOxCFCzVdDXryot9GfFMFxIi3eS0kPsaZqzmUAEvVxtnaz5Uj3DA==} + /@tiptap/extension-link@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14): + resolution: {integrity: sha512-zpHyQIlELYSduYneOniMKoYfJjDqYFe0Z+WbxkaymBo/msHLt3MCN79Lvq+tlwy9ufKE2M1FT97OL0YLv2uryQ==} peerDependencies: '@tiptap/core': ^2.0.0 '@tiptap/pm': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) - '@tiptap/pm': 2.1.0-rc.12 + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) + '@tiptap/pm': 2.1.0-rc.14 linkifyjs: 4.1.1 dev: false - /@tiptap/extension-list-item@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-g+x6VQUiHTmT0JCNXjebAchAtcs0HIDbq1nXF0/YtdWBgz5Q3S2nwnbi0OuaQJUSjG9Gg59+ucUPitb23t96KQ==} + /@tiptap/extension-list-item@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-vl3dLxCQ1ZELcPelkaZu0T5XZi1JkZ1EgjnamcoSdYEy7/8prCQQ+/f3YteexjgPSEQDWSCP2f2tgmLU7FUh/A==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-mention@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12)(@tiptap/suggestion@2.0.4): - resolution: {integrity: sha512-/107ykt9Ks23X4p8ohd4DEk+kRjo3Cvwmk6L/tjhmuoD7HPtDr/i3hl0fhE8ns36hIPV4yUywDjvLx3iFm+x5w==} + /@tiptap/extension-mention@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14)(@tiptap/suggestion@2.0.4): + resolution: {integrity: sha512-+lwrxz7i4U5K3GFgAAKogOxiu3lnWMYGYBo9XJMek6Js8kSqSh/HXTmUeY2AngIf7NKW6dgB3A47vpew3KaCkw==} peerDependencies: '@tiptap/core': ^2.0.0 '@tiptap/pm': ^2.0.0 '@tiptap/suggestion': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) - '@tiptap/pm': 2.1.0-rc.12 - '@tiptap/suggestion': 2.0.4(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) + '@tiptap/pm': 2.1.0-rc.14 + '@tiptap/suggestion': 2.0.4(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-ordered-list@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-nR+o8YCUiUqu7IdcqeQGfFBwuCho9Iu3hVdBXhCqIh4x7bPS0T4JKL6XAhhF93BHYiLw2n9XfOHEzbqMeSTiSw==} + /@tiptap/extension-ordered-list@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-GR3uaBy1g8M/sIxSnGIRCMfDnN4wNuiQeW7r6P8qWFJ10eC0Z4GkiAvRSWlqk6iiUbPkIeuQ7wc0kfNJPd5xCw==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-paragraph@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-1AXUjJ2fM+4PnxTzn/Rka1ZZLXCUSKmeUK+x9WoSsI6NQs3pojcXznBhh30VcBenW0xbL1aPUS05dx8djD7kEA==} + /@tiptap/extension-paragraph@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-iyYXmYQiozCJCo/PQfp6iNgKqmWZaKApx7XdwxYFlwyJp45jMO6HyqtmaU+7/oxpXc5omgGbZ+Px+P33vcPE6Q==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-subscript@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-xD35ELfEWO5xqVH4xa2wqZEDlrjoahfqBX1IbYuZ+khBkCqMn4oen1FuOy37oSYM7r/rEKikzgWb7h0gIFy1Ww==} + /@tiptap/extension-subscript@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-zwmc+kZpgvyY5Drx7nUPayc60XpGZGeSF/LSRkoabAjL0nPbYYXU4BiPdyJbFhk5ICXD+AORx8H0gS/oyzJUoA==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-superscript@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-ya1iow791Pljh0s94tfFJfmYGrQykK+9XL2TTLjujj8nQPGuwGNdXpw32Z6MWPve6RY5WfWRAOnFWt0Qeag42g==} + /@tiptap/extension-superscript@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-tDMCDr7qGJrRN7AiSgvMO8sw5cPl9HJcfGmBv+eGTTcUMR0/KURU3icWEud2yuPl9XgKDLGPHw6qO0opS1kDGQ==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-table-cell@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-KT1cuN1+ZOjQ5tWzLs7uW/s5GvTXcgeP73KHvgfNCikIorE160oAGirIwoxq6tvdW5rzwwCxVGJ8cuv4/anSkA==} + /@tiptap/extension-table-cell@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-FNDdyXuEyddEp+veBwaoboyrujNuDFw2rp+WJTw/l+u9McGpU3eN6pUUcSnxyVX/Md+PG15kKqa8hoHpYCIuEQ==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-table-header@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-GeABoVsB2D8WcI8qq6qk0x+RPTo0vuyRdAOSSQ7rfm0AtaXbd8Vt1PqxA53+LABKWpbtOPawUo7zHCHVr1lbSQ==} + /@tiptap/extension-table-header@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-FDzKZl6/qW1LidGegkyPbpGsrdZo6bCQackXCKI6Snhwibd6arokbUnv6KZXlC6YWuO6Rgz1odoyGXHt4JcjmQ==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-table-row@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-AN//42s36yTcTellmBTwTFdn5HgDkj+UNHWSwGjJlF3qBS6RsXt4dyIq7M3r58XK2aZxKVdwHnb5a9qG6LIKqA==} + /@tiptap/extension-table-row@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-LbYgb3pSGE36cZO0V8mHXhQPh51uFFAMLaKcsTRuA4mwBzX1xar05wbbt/BiSUCugLLk6Gyf6GmW2byMtGZsGg==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-table@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12): - resolution: {integrity: sha512-xYjj5462P3iHuyT64kCcDbNcSyGwrszbXN3wLKonn9pQ5CLolKW9sDkUHb8U9OBwsRwKiX00CURB0z5RhVHHpg==} + /@tiptap/extension-table@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14): + resolution: {integrity: sha512-jCsimFQvst/SMzu4jqnllDDRXe3zm7+u9t4rFYxXOIFtrHNik7ygTXT5k/Nfyiii1bfWA1yo7j+gaTxpyVR10Q==} peerDependencies: '@tiptap/core': ^2.0.0 '@tiptap/pm': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) - '@tiptap/pm': 2.1.0-rc.12 + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) + '@tiptap/pm': 2.1.0-rc.14 dev: false - /@tiptap/extension-task-item@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12): - resolution: {integrity: sha512-AOPIV3iqn5cLRWoL4SsDXqVCL/cbtLWgBGRVLYaL39kMLC4O1HVSuJwUS4//DMMl2lLkhD9vf8QXlyRu0psFgQ==} + /@tiptap/extension-task-item@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14): + resolution: {integrity: sha512-4GzTiH8rupAg8meuSA+EQaFd10BTP6zr8gd5bWFfWGX0Vr91KsrAcqWv8bCUguqIf4lYHV6CKaB9HsUYquX3qQ==} peerDependencies: '@tiptap/core': ^2.0.0 '@tiptap/pm': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) - '@tiptap/pm': 2.1.0-rc.12 + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) + '@tiptap/pm': 2.1.0-rc.14 dev: false - /@tiptap/extension-task-list@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-moT55ijO3YuiQVIsiM/v/ttgDlWL4wq7VN5k32NkbM5W6eYKXmLUVOpvTI0AhKcoqOUtuIY4aDsMdlI6D6MN7A==} + /@tiptap/extension-task-list@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-W7hWjr795sMCeIVppJHRv/H7UF2SE6z0aftElgBukixlIKAiGMhZxNsTsqr+8V900Fwo1Xx73AhUY+x453ylRQ==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-text-align@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-z/m2sgMxHOiZBZYJm8z1J5bjYe6of1lUp0TqtPVJPO06y+VH0N2GUCYah4Uwekf2F/UuzfIlcqTayPeJC1c0pA==} + /@tiptap/extension-text-align@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-y3x6lMmKBM/9h50OGhEJBlnjkyKflTts8ujpwDtwjynutb8g9Y9lYZg8EqjJljtcmujCzNDjOpVZZqb6Ldjx/Q==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-text-style@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-AIpWujB0a+VDHu4gJWx/Ykt7l2eDztL32q2xEMSuNYyEuWu2GDzWJjJqpyf3SwSDdjjwUKZYHJbDXVHQukvalg==} + /@tiptap/extension-text-style@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-l8gIraydTbIunMwa7Vy8aqChrA5sroAp1zHMZm5zDhq5s8yXRYld8/4dAbLXhfVVF+uD+panwjnN+VwBMi1QZQ==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-text@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-6rJvPkpypaEW+jM6oB9kMXg+wy7xbDnGBFLRvCuA4Tr5Y+S+i34CzcihyARr90p+scYkOl+6QYVww4oisRFskA==} + /@tiptap/extension-text@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-mxlGRfG96FJI7ZcQgWDcQ0NHEAM+DYRuj1afdthrJfiyLsdn8MhsiXjwUEe+kkzQbxhMYt7USF4H691NtMeVvQ==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-typography@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-I+IKJ0/ZqyXsyLzEf2o6R5QW/ghZaU9HaRl/AVskoLX6vMJQ6+DJjYDE4drydEpQryQ2OQYiE0yBtKRob8wvLA==} + /@tiptap/extension-typography@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-GeZS38TcQsIh81B2Wu6iGLlHxBVh6vk8fXCyR70XQBO5HkzrBEq/BLy4zcvRGQEiThL8ErysfbKSKEdfHn5nUg==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-underline@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-tziNBEJWi+ABEC43Czabuokqnd1cZLlS5zY/raJX5sgIQIKPEUC7eCefKmhpaT2Yq88HFiTXgrMkNKRYddIdzw==} + /@tiptap/extension-underline@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-9IgOMCTOsI3ik4cMck1kKfpV0Pjaj1QTbHN1/ncJGuOTu+kGpvIVImIkRupW1wmV0t6VqhrbawMSrKc/ALhfCA==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/extension-youtube@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12): - resolution: {integrity: sha512-Lsctoti+oXVioeqKawgQKgpFRjcFzPI5uDANTVKIPnBcihNM5ySaSnLNH03dloQ2rbMCpFJn43lHjzYO0yAGHA==} + /@tiptap/extension-youtube@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14): + resolution: {integrity: sha512-EVIySGQSPC2VTjwQBJ0qvQXBHT464YbqCLdBBBSX4+nweBKYTJ/a5TB6ZGnBNR+ku3HHD7e63ixqh0M77GTlfA==} peerDependencies: '@tiptap/core': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) dev: false - /@tiptap/html@2.1.0-rc.12(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12): - resolution: {integrity: sha512-XE/Yr2OeOduff7rPicTwsU0N8kStyrQOZ9EgHJPhB5seuAxqIazj//czJOb+1BjwMSIZf5J7rRb1S9qjuthA7w==} + /@tiptap/html@2.1.0-rc.14(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14): + resolution: {integrity: sha512-qLpZtFt1+xiBYtnmtmC2Gii6n/bvuo+kjjB3yVeuKxiP7YdNgRmFiR76LqThvXwYutWzcTCa1CPT1ro26uf8yQ==} peerDependencies: '@tiptap/core': ^2.0.0 '@tiptap/pm': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) - '@tiptap/pm': 2.1.0-rc.12 + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) + '@tiptap/pm': 2.1.0-rc.14 zeed-dom: 0.9.26 dev: false - /@tiptap/pm@2.1.0-rc.12: - resolution: {integrity: sha512-GzBSlwfUZHrxLzQyigFkPNTFapviR+xOMnZ6GZZnQmgqgVZS3PG5LY9QrWpZQYrK7qbWFJ2fMWv+6pUZqDenKQ==} + /@tiptap/pm@2.1.0-rc.14: + resolution: {integrity: sha512-0jI+uns7Uac708dQbKSxSgvQYWYTZptW7WjbLJ1c7WE4+XyVJijPc3t2jaM8JRh7HKFQh0InaZE9xIwFkk8SmA==} dependencies: prosemirror-changeset: 2.2.1 prosemirror-collab: 1.3.1 @@ -1318,14 +1314,14 @@ packages: prosemirror-view: 1.31.7 dev: false - /@tiptap/suggestion@2.0.4(@tiptap/core@2.1.0-rc.12)(@tiptap/pm@2.1.0-rc.12): + /@tiptap/suggestion@2.0.4(@tiptap/core@2.1.0-rc.14)(@tiptap/pm@2.1.0-rc.14): resolution: {integrity: sha512-C5LGGjH8VFET34V7vKkqlwpSzrPl+7oAcj9h+P3jvJQ076iYpmpnMtz6dNLSFGKpHp5mtyl4RoJzh7lTvlfyiA==} peerDependencies: '@tiptap/core': ^2.0.0 '@tiptap/pm': ^2.0.0 dependencies: - '@tiptap/core': 2.1.0-rc.12(@tiptap/pm@2.1.0-rc.12) - '@tiptap/pm': 2.1.0-rc.12 + '@tiptap/core': 2.1.0-rc.14(@tiptap/pm@2.1.0-rc.14) + '@tiptap/pm': 2.1.0-rc.14 dev: false /@tootallnate/once@2.0.0: @@ -1336,14 +1332,14 @@ packages: /@types/accepts@1.3.5: resolution: {integrity: sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==} dependencies: - '@types/node': 18.17.3 + '@types/node': 18.17.5 dev: true /@types/body-parser@1.19.2: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 - '@types/node': 18.17.3 + '@types/node': 18.17.5 dev: true /@types/config@3.3.0: @@ -1353,7 +1349,7 @@ packages: /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.17.3 + '@types/node': 18.17.5 dev: true /@types/content-disposition@0.5.5: @@ -1369,13 +1365,13 @@ packages: '@types/connect': 3.4.35 '@types/express': 4.17.17 '@types/keygrip': 1.0.2 - '@types/node': 18.17.3 + '@types/node': 18.17.5 dev: true /@types/express-serve-static-core@4.17.35: resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==} dependencies: - '@types/node': 18.17.3 + '@types/node': 18.17.5 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 '@types/send': 0.17.1 @@ -1401,7 +1397,7 @@ packages: /@types/jsdom@21.1.1: resolution: {integrity: sha512-cZFuoVLtzKP3gmq9eNosUL1R50U+USkbLtUQ1bYVgl/lKp0FZM7Cq4aIHAL8oIvQ17uSHi7jXPtfDOdjPwBE7A==} dependencies: - '@types/node': 18.17.3 + '@types/node': 18.17.5 '@types/tough-cookie': 4.0.2 parse5: 7.1.2 dev: false @@ -1434,7 +1430,7 @@ packages: '@types/http-errors': 2.0.1 '@types/keygrip': 1.0.2 '@types/koa-compose': 3.2.5 - '@types/node': 18.17.3 + '@types/node': 18.17.5 dev: true /@types/koa__router@12.0.0: @@ -1455,8 +1451,8 @@ packages: resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} dev: true - /@types/node@18.17.3: - resolution: {integrity: sha512-2x8HWtFk0S99zqVQABU9wTpr8wPoaDHZUcAkoTKH+nL7kPv3WUI9cRi/Kk5Mz4xdqXSqTkKP7IWNoQQYCnDsTA==} + /@types/node@18.17.5: + resolution: {integrity: sha512-xNbS75FxH6P4UXTPUJp/zNPq6/xsfdJKussCWNOnz4aULWIRwMgP1LgaB5RiBnMX1DPCYenuqGZfnIAx5mbFLA==} /@types/object.omit@3.0.0: resolution: {integrity: sha512-I27IoPpH250TUzc9FzXd0P1BV/BMJuzqD3jOz98ehf9dQqGkxlq+hO1bIqZGWqCg5bVOy0g4AUVJtnxe0klDmw==} @@ -1477,7 +1473,7 @@ packages: /@types/responselike@1.0.0: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: - '@types/node': 18.17.3 + '@types/node': 18.17.5 dev: false /@types/semver@7.5.0: @@ -1488,7 +1484,7 @@ packages: resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} dependencies: '@types/mime': 1.3.2 - '@types/node': 18.17.3 + '@types/node': 18.17.5 dev: true /@types/serve-static@1.15.2: @@ -1496,7 +1492,7 @@ packages: dependencies: '@types/http-errors': 2.0.1 '@types/mime': 3.0.1 - '@types/node': 18.17.3 + '@types/node': 18.17.5 dev: true /@types/throttle-debounce@2.1.0: @@ -1511,8 +1507,8 @@ packages: resolution: {integrity: sha512-kNnC1GFBLuhImSnV7w4njQkUiJi0ZXUycu1rUaouPqiKlXkh77JKgdRnTAp1x5eBwcIwbtI+3otwzuIDEuDoxQ==} dev: true - /@typescript-eslint/eslint-plugin@6.2.1(@typescript-eslint/parser@6.2.1)(eslint@8.46.0)(typescript@5.1.6): - resolution: {integrity: sha512-iZVM/ALid9kO0+I81pnp1xmYiFyqibAHzrqX4q5YvvVEyJqY+e6rfTXSCsc2jUxGNqJqTfFSSij/NFkZBiBzLw==} + /@typescript-eslint/eslint-plugin@6.3.0(@typescript-eslint/parser@6.3.0)(eslint@8.47.0)(typescript@5.1.6): + resolution: {integrity: sha512-IZYjYZ0ifGSLZbwMqIip/nOamFiWJ9AH+T/GYNZBWkVcyNQOFGtSMoWV7RvY4poYCMZ/4lHzNl796WOSNxmk8A==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -1523,13 +1519,13 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.2.1(eslint@8.46.0)(typescript@5.1.6) - '@typescript-eslint/scope-manager': 6.2.1 - '@typescript-eslint/type-utils': 6.2.1(eslint@8.46.0)(typescript@5.1.6) - '@typescript-eslint/utils': 6.2.1(eslint@8.46.0)(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.2.1 + '@typescript-eslint/parser': 6.3.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/scope-manager': 6.3.0 + '@typescript-eslint/type-utils': 6.3.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/utils': 6.3.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.3.0 debug: 4.3.4 - eslint: 8.46.0 + eslint: 8.47.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare: 1.4.0 @@ -1541,8 +1537,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.2.1(eslint@8.46.0)(typescript@5.1.6): - resolution: {integrity: sha512-Ld+uL1kYFU8e6btqBFpsHkwQ35rw30IWpdQxgOqOh4NfxSDH6uCkah1ks8R/RgQqI5hHPXMaLy9fbFseIe+dIg==} + /@typescript-eslint/parser@6.3.0(eslint@8.47.0)(typescript@5.1.6): + resolution: {integrity: sha512-ibP+y2Gr6p0qsUkhs7InMdXrwldjxZw66wpcQq9/PzAroM45wdwyu81T+7RibNCh8oc0AgrsyCwJByncY0Ongg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1551,27 +1547,27 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.2.1 - '@typescript-eslint/types': 6.2.1 - '@typescript-eslint/typescript-estree': 6.2.1(typescript@5.1.6) - '@typescript-eslint/visitor-keys': 6.2.1 + '@typescript-eslint/scope-manager': 6.3.0 + '@typescript-eslint/types': 6.3.0 + '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.3.0 debug: 4.3.4 - eslint: 8.46.0 + eslint: 8.47.0 typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@6.2.1: - resolution: {integrity: sha512-UCqBF9WFqv64xNsIEPfBtenbfodPXsJ3nPAr55mGPkQIkiQvgoWNo+astj9ZUfJfVKiYgAZDMnM6dIpsxUMp3Q==} + /@typescript-eslint/scope-manager@6.3.0: + resolution: {integrity: sha512-WlNFgBEuGu74ahrXzgefiz/QlVb+qg8KDTpknKwR7hMH+lQygWyx0CQFoUmMn1zDkQjTBBIn75IxtWss77iBIQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.2.1 - '@typescript-eslint/visitor-keys': 6.2.1 + '@typescript-eslint/types': 6.3.0 + '@typescript-eslint/visitor-keys': 6.3.0 dev: true - /@typescript-eslint/type-utils@6.2.1(eslint@8.46.0)(typescript@5.1.6): - resolution: {integrity: sha512-fTfCgomBMIgu2Dh2Or3gMYgoNAnQm3RLtRp+jP7A8fY+LJ2+9PNpi5p6QB5C4RSP+U3cjI0vDlI3mspAkpPVbQ==} + /@typescript-eslint/type-utils@6.3.0(eslint@8.47.0)(typescript@5.1.6): + resolution: {integrity: sha512-7Oj+1ox1T2Yc8PKpBvOKWhoI/4rWFd1j7FA/rPE0lbBPXTKjdbtC+7Ev0SeBjEKkIhKWVeZSP+mR7y1Db1CdfQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1580,23 +1576,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.2.1(typescript@5.1.6) - '@typescript-eslint/utils': 6.2.1(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.1.6) + '@typescript-eslint/utils': 6.3.0(eslint@8.47.0)(typescript@5.1.6) debug: 4.3.4 - eslint: 8.46.0 + eslint: 8.47.0 ts-api-utils: 1.0.1(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@6.2.1: - resolution: {integrity: sha512-528bGcoelrpw+sETlyM91k51Arl2ajbNT9L4JwoXE2dvRe1yd8Q64E4OL7vHYw31mlnVsf+BeeLyAZUEQtqahQ==} + /@typescript-eslint/types@6.3.0: + resolution: {integrity: sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.2.1(typescript@5.1.6): - resolution: {integrity: sha512-G+UJeQx9AKBHRQBpmvr8T/3K5bJa485eu+4tQBxFq0KoT22+jJyzo1B50JDT9QdC1DEmWQfdKsa8ybiNWYsi0Q==} + /@typescript-eslint/typescript-estree@6.3.0(typescript@5.1.6): + resolution: {integrity: sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -1604,8 +1600,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.2.1 - '@typescript-eslint/visitor-keys': 6.2.1 + '@typescript-eslint/types': 6.3.0 + '@typescript-eslint/visitor-keys': 6.3.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -1616,31 +1612,31 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.2.1(eslint@8.46.0)(typescript@5.1.6): - resolution: {integrity: sha512-eBIXQeupYmxVB6S7x+B9SdBeB6qIdXKjgQBge2J+Ouv8h9Cxm5dHf/gfAZA6dkMaag+03HdbVInuXMmqFB/lKQ==} + /@typescript-eslint/utils@6.3.0(eslint@8.47.0)(typescript@5.1.6): + resolution: {integrity: sha512-hLLg3BZE07XHnpzglNBG8P/IXq/ZVXraEbgY7FM0Cnc1ehM8RMdn9mat3LubJ3KBeYXXPxV1nugWbQPjGeJk6Q==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 6.2.1 - '@typescript-eslint/types': 6.2.1 - '@typescript-eslint/typescript-estree': 6.2.1(typescript@5.1.6) - eslint: 8.46.0 + '@typescript-eslint/scope-manager': 6.3.0 + '@typescript-eslint/types': 6.3.0 + '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.1.6) + eslint: 8.47.0 semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@6.2.1: - resolution: {integrity: sha512-iTN6w3k2JEZ7cyVdZJTVJx2Lv7t6zFA8DCrJEHD2mwfc16AEvvBWVhbFh34XyG2NORCd0viIgQY1+u7kPI0WpA==} + /@typescript-eslint/visitor-keys@6.3.0: + resolution: {integrity: sha512-kEhRRj7HnvaSjux1J9+7dBen15CdWmDnwrpyiHsFX6Qx2iW5LOBUgNefOFeh2PjWPlNwN8TOn6+4eBU3J/gupw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.2.1 - eslint-visitor-keys: 3.4.2 + '@typescript-eslint/types': 6.3.0 + eslint-visitor-keys: 3.4.3 dev: true /@vladfrangu/async_event_emitter@2.2.2: @@ -1824,7 +1820,7 @@ packages: hasBin: true dependencies: caniuse-lite: 1.0.30001519 - electron-to-chromium: 1.4.485 + electron-to-chromium: 1.4.490 node-releases: 2.0.13 update-browserslist-db: 1.0.11(browserslist@4.21.10) dev: false @@ -1836,13 +1832,13 @@ packages: ieee754: 1.2.1 dev: false - /bundle-require@4.0.1(esbuild@0.18.17): + /bundle-require@4.0.1(esbuild@0.18.20): resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: esbuild: '>=0.17' dependencies: - esbuild: 0.18.17 + esbuild: 0.18.20 load-tsconfig: 0.2.5 dev: true @@ -1914,7 +1910,7 @@ packages: engines: {node: '>=8'} dependencies: '@types/long': 4.0.2 - '@types/node': 18.17.3 + '@types/node': 18.17.5 adm-zip: 0.5.10 long: 2.4.0 dev: false @@ -2014,8 +2010,8 @@ packages: engines: {node: '>= 10'} dev: false - /cli-width@4.0.0: - resolution: {integrity: sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==} + /cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} engines: {node: '>= 12'} dev: false @@ -2113,7 +2109,7 @@ packages: keygrip: 1.1.0 dev: false - /crawlee@3.5.0(playwright@1.36.2): + /crawlee@3.5.0(playwright@1.37.0): resolution: {integrity: sha512-bdgeU/iivX9ia7PhWgmmOOzpfwk8CIjMiaoxrCHOotTr6NM6/bYbf9puxYm3IlEDCHOLPLZI3zt8atueom5DLw==} engines: {node: '>=16.0.0'} hasBin: true @@ -2127,18 +2123,18 @@ packages: optional: true dependencies: '@crawlee/basic': 3.5.0 - '@crawlee/browser': 3.5.0(playwright@1.36.2) + '@crawlee/browser': 3.5.0(playwright@1.37.0) '@crawlee/cheerio': 3.5.0 '@crawlee/cli': 3.5.0 '@crawlee/core': 3.5.0 '@crawlee/http': 3.5.0 '@crawlee/jsdom': 3.5.0 '@crawlee/linkedom': 3.5.0 - '@crawlee/playwright': 3.5.0(playwright@1.36.2) - '@crawlee/puppeteer': 3.5.0(playwright@1.36.2) + '@crawlee/playwright': 3.5.0(playwright@1.37.0) + '@crawlee/puppeteer': 3.5.0(playwright@1.37.0) '@crawlee/utils': 3.5.0 import-local: 3.1.0 - playwright: 1.36.2 + playwright: 1.37.0 tslib: 2.6.1 transitivePeerDependencies: - bufferutil @@ -2294,8 +2290,8 @@ packages: dev: false optional: true - /devtools-protocol@0.0.1179426: - resolution: {integrity: sha512-KKC7IGwdOr7u9kTGgjUvGTov/z1s2H7oHi3zKCdR9eSDyCPia5CBi4aRhtp7d8uR7l0GS5UTDw3TjKGu5CqINg==} + /devtools-protocol@0.0.1182435: + resolution: {integrity: sha512-EmlkWb62wSbQNE1gRZZsi4KZYRaF5Skpp183LhRU7+sadKR06O1dHCjZmFSEG6Kv7P6S/UYLxcY3NlYwqKM99w==} dev: false /dir-glob@3.0.1: @@ -2361,8 +2357,8 @@ packages: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: false - /electron-to-chromium@1.4.485: - resolution: {integrity: sha512-1ndQ5IBNEnFirPwvyud69GHL+31FkE09gH/CJ6m3KCbkx3i0EVOrjwz4UNxRmN9H8OVHbC6vMRZGN1yCvjSs9w==} + /electron-to-chromium@1.4.490: + resolution: {integrity: sha512-6s7NVJz+sATdYnIwhdshx/N/9O6rvMxmhVoDSDFdj6iA45gHR8EQje70+RYsF4GeB+k0IeNSBnP7yG9ZXJFr7A==} dev: false /emoji-regex@10.2.1: @@ -2371,6 +2367,7 @@ packages: /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + requiresBuild: true dev: false /emojibase-data@7.0.1(emojibase@15.0.0): @@ -2406,34 +2403,34 @@ packages: engines: {node: '>=0.12'} dev: false - /esbuild@0.18.17: - resolution: {integrity: sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==} + /esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.18.17 - '@esbuild/android-arm64': 0.18.17 - '@esbuild/android-x64': 0.18.17 - '@esbuild/darwin-arm64': 0.18.17 - '@esbuild/darwin-x64': 0.18.17 - '@esbuild/freebsd-arm64': 0.18.17 - '@esbuild/freebsd-x64': 0.18.17 - '@esbuild/linux-arm': 0.18.17 - '@esbuild/linux-arm64': 0.18.17 - '@esbuild/linux-ia32': 0.18.17 - '@esbuild/linux-loong64': 0.18.17 - '@esbuild/linux-mips64el': 0.18.17 - '@esbuild/linux-ppc64': 0.18.17 - '@esbuild/linux-riscv64': 0.18.17 - '@esbuild/linux-s390x': 0.18.17 - '@esbuild/linux-x64': 0.18.17 - '@esbuild/netbsd-x64': 0.18.17 - '@esbuild/openbsd-x64': 0.18.17 - '@esbuild/sunos-x64': 0.18.17 - '@esbuild/win32-arm64': 0.18.17 - '@esbuild/win32-ia32': 0.18.17 - '@esbuild/win32-x64': 0.18.17 + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 dev: true /escalade@3.1.1: @@ -2467,20 +2464,20 @@ packages: estraverse: 5.3.0 dev: true - /eslint-visitor-keys@3.4.2: - resolution: {integrity: sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.46.0: - resolution: {integrity: sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==} + /eslint@8.47.0: + resolution: {integrity: sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) '@eslint-community/regexpp': 4.6.2 - '@eslint/eslintrc': 2.1.1 - '@eslint/js': 8.46.0 + '@eslint/eslintrc': 2.1.2 + '@eslint/js': 8.47.0 '@humanwhocodes/config-array': 0.11.10 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -2491,7 +2488,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.2 + eslint-visitor-keys: 3.4.3 espree: 9.6.1 esquery: 1.5.0 esutils: 2.0.3 @@ -2499,7 +2496,7 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.20.0 + globals: 13.21.0 graphemer: 1.4.0 ignore: 5.2.4 imurmurhash: 0.1.4 @@ -2524,7 +2521,7 @@ packages: dependencies: acorn: 8.10.0 acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.2 + eslint-visitor-keys: 3.4.3 dev: true /esquery@1.5.0: @@ -2683,7 +2680,7 @@ packages: tslib: 2.6.1 dev: false - /fingerprint-injector@2.1.38(playwright@1.36.2): + /fingerprint-injector@2.1.38(playwright@1.37.0): resolution: {integrity: sha512-hnnEROGpzp7UPieEwIzzJt+sKSGMSQwBntD+RmHMnsaoHEKRgVIJqSFK5b/i6tHS+bRzlDhXUoUXuEJUcE+6nA==} engines: {node: '>=16.0.0'} peerDependencies: @@ -2696,7 +2693,7 @@ packages: optional: true dependencies: fingerprint-generator: 2.1.38 - playwright: 1.36.2 + playwright: 1.37.0 tslib: 2.6.1 dev: false @@ -2845,8 +2842,8 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 - /globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + /globals@13.21.0: + resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -3118,15 +3115,15 @@ packages: wrap-ansi: 6.2.0 dev: false - /inquirer@9.2.9: - resolution: {integrity: sha512-0VXHov2GGwWquYxwxlcIcm3yOHvFb2jh/+HkY8/AUXSTWShpo6QJMlSfHi5Xo74NO40UePBM3rQcI3OkzOF/7A==} + /inquirer@9.2.10: + resolution: {integrity: sha512-tVVNFIXU8qNHoULiazz612GFl+yqNfjMTbLuViNJE/d860Qxrd3NMrse8dm40VUQLOQeULvaQF8lpAhvysjeyA==} engines: {node: '>=14.18.0'} dependencies: '@ljharb/through': 2.3.9 ansi-escapes: 4.3.2 chalk: 5.3.0 cli-cursor: 3.1.0 - cli-width: 4.0.0 + cli-width: 4.1.0 external-editor: 3.1.0 figures: 5.0.0 lodash: 4.17.21 @@ -3165,6 +3162,7 @@ packages: /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} + requiresBuild: true dev: false /is-generator-function@1.0.10: @@ -3506,8 +3504,8 @@ packages: uc.micro: 1.0.6 dev: false - /marked@7.0.0: - resolution: {integrity: sha512-7Gv1Ry8tqR352ElQOQfxdGpIh8kNZh/yYjNCxAQCN1DDbY4bCTG3qDCSkZWlRElSseeEILDxkY/G9w7cgziBNw==} + /marked@7.0.2: + resolution: {integrity: sha512-ADEBjnCHOrsLoV7JPvUNWtELZ0b4SeIALhrfxuA9uhS3hw2PCezROoFduIqMOjeagBPto732+YC5tZHBMQRdqg==} engines: {node: '>= 16'} hasBin: true dev: false @@ -3974,19 +3972,19 @@ packages: find-up: 4.1.0 dev: false - /playwright-core@1.36.2: - resolution: {integrity: sha512-sQYZt31dwkqxOrP7xy2ggDfEzUxM1lodjhsQ3NMMv5uGTRDsLxU0e4xf4wwMkF2gplIxf17QMBCodSFgm6bFVQ==} + /playwright-core@1.37.0: + resolution: {integrity: sha512-1c46jhTH/myQw6sesrcuHVtLoSNfJv8Pfy9t3rs6subY7kARv0HRw5PpyfPYPpPtQvBOmgbE6K+qgYUpj81LAA==} engines: {node: '>=16'} hasBin: true dev: false - /playwright@1.36.2: - resolution: {integrity: sha512-4Fmlq3KWsl85Bl4InJw1NC21aeQV0iSZuFvTDcy1F8zVmXmgQRe89GxF8zMSRt/KIS+2tUolak7EXVl9aC+JdA==} + /playwright@1.37.0: + resolution: {integrity: sha512-CrAEFfVioamMwDKmygc/HAkzEAxYAwjD+zod2poTxM7ObivkoDsKHu1ned16fnQV/Tf1kDB8KtsyH8Qd3VzJIg==} engines: {node: '>=16'} hasBin: true requiresBuild: true dependencies: - playwright-core: 1.36.2 + playwright-core: 1.37.0 dev: false /postcss-load-config@4.0.1: @@ -4281,8 +4279,8 @@ packages: dependencies: glob: 7.2.3 - /rollup@3.27.2: - resolution: {integrity: sha512-YGwmHf7h2oUHkVBT248x0yt6vZkYQ3/rvE5iQuVBh3WO8GcJ6BNeOkpoX1yMHIiBm18EMLjBPIoUDkhgnyxGOQ==} + /rollup@3.28.0: + resolution: {integrity: sha512-d7zhvo1OUY2SXSM6pfNjgD5+d0Nz87CUp4mt8l/GgVP3oBsPwzNvSzyu1me6BSG9JIgWNTVcafIXBIyM8yQ3yw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -4444,6 +4442,7 @@ packages: /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + requiresBuild: true dependencies: safe-buffer: 5.2.1 dev: false @@ -4544,15 +4543,15 @@ packages: resolution: {integrity: sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==} dev: false - /tldts-core@6.0.13: - resolution: {integrity: sha512-LcXhi9dyMeMBTMhpOSUUG4QwiMSADkcdmTg59rXkQyxoWTnyXgvpzoqJGvrhWTDwcs2NseybtqDTA6TWZgNxOA==} + /tldts-core@6.0.14: + resolution: {integrity: sha512-ESYhU/bgs6jiHlnl5h029f+0dB7EKRiTaxM/jHLZ6powScbmsgsrFcFjmyrjDgCvI/BRY79TEBBClmqLNEPyjQ==} dev: false - /tldts@6.0.13: - resolution: {integrity: sha512-9v+ZsSU8yBywX6RjT6/pNmwPzTVIeIi7sEiaFDhgsbXZRtvKKrWSiP4K0NTLm1rEvlfKYM24wxxcq7wMr4JRDA==} + /tldts@6.0.14: + resolution: {integrity: sha512-mYU7xwVGfiiC4lkWr4h3Q6U4kfAq3aWP1KsJZyRlVVeDQ3ZSBLmE20543dWSqI0U799PNzhpHObex5n60TeBGw==} hasBin: true dependencies: - tldts-core: 6.0.13 + tldts-core: 6.0.14 dev: false /tmp@0.0.33: @@ -4646,17 +4645,17 @@ packages: typescript: optional: true dependencies: - bundle-require: 4.0.1(esbuild@0.18.17) + bundle-require: 4.0.1(esbuild@0.18.20) cac: 6.7.14 chokidar: 3.5.3 debug: 4.3.4 - esbuild: 0.18.17 + esbuild: 0.18.20 execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 postcss-load-config: 4.0.1 resolve-from: 5.0.0 - rollup: 3.27.2 + rollup: 3.28.0 source-map: 0.8.0-beta.0 sucrase: 3.34.0 tree-kill: 1.2.2 @@ -4688,8 +4687,8 @@ packages: engines: {node: '>=12.20'} dev: false - /type-fest@4.1.0: - resolution: {integrity: sha512-VJGJVepayd8OWavP+rgXt4i3bfLk+tSomTV7r4mca2XD/oTCWnkJlNkpXavkxdmtU2aKdAmFGeHvoQutOVHCZg==} + /type-fest@4.2.0: + resolution: {integrity: sha512-5zknd7Dss75pMSED270A1RQS3KloqRJA9XbXLe0eCxyw7xXFb3rd+9B0UQ/0E+LQT6lnrLviEolYORlRWamn4w==} engines: {node: '>=16'} dev: false @@ -4756,6 +4755,7 @@ packages: /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + requiresBuild: true dev: false /uuid@8.3.2: @@ -4964,8 +4964,8 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - /zeed-dom@0.10.6: - resolution: {integrity: sha512-CdOkfZsT+ixSQM6JrqqEIh7GKRyg9DXyf7QC/m8VFVtYNNnyqYOzUUaWIHUAs4U5s1cY93KYuPxbu4PdsOoHlg==} + /zeed-dom@0.10.7: + resolution: {integrity: sha512-BxptdrmCIzDV9v93a8n8bdqGlH8DPI5GHMPRbhJrWVmKtV6HgIP2sAu2AOOSz66XNLh9HLSbpmzUpHJZzSLIFQ==} engines: {node: '>=14.13.1'} dependencies: css-what: 6.1.0 diff --git a/src/api.ts b/src/api.ts index c087f49..bcb461c 100644 --- a/src/api.ts +++ b/src/api.ts @@ -2,16 +2,18 @@ import { format } from 'node:util' import { URL } from 'node:url' import { type Context } from 'koa' import { Xid } from 'xid-ts' +import { encode } from 'cborg' import cassandra from 'cassandra-driver' import contentType from 'content-type' import getRawBody from 'raw-body' import createError from 'http-errors' + import { LogLevel, createLog, logError, writeLog } from './log.js' import { scraping } from './crawler.js' -import { parseHTML, toHTML } from './tiptap.js' +import { parseHTML, toHTML, findTitle } from './tiptap.js' import { getConverter } from './converting.js' -import { DocumentModel } from './db/model.js' +import { DocumentModel, Document } from './db/model.js' const serverStartAt = Date.now() @@ -159,8 +161,24 @@ export async function convertingAPI(ctx: Context): Promise { const buf = await getRawBody(ctx.req, { limit: '500kb' }) try { - const doc = await converter(buf) + const content = await converter(buf) // console.log(Buffer.from(doc).toString('hex')) + let title = findTitle(content, 1) + if (title === '') { + title = findTitle(content, 2) + } + + const doc: Document = { + id: new Xid(), + url: "", + src: "", + title: title, + meta: {}, + content: Buffer.from(encode(content)), + html: "", + page: "" + } + ctx.body = { result: doc } diff --git a/src/converting.ts b/src/converting.ts index c4065f3..5f403b1 100644 --- a/src/converting.ts +++ b/src/converting.ts @@ -1,4 +1,3 @@ -import { encode } from 'cborg' import createError from 'http-errors' import { marked } from 'marked' import pdfjs from 'pdfjs-dist' @@ -6,7 +5,7 @@ import { type TextItem } from 'pdfjs-dist/types/src/display/api' import { parseHTML, Node, JSONDocumentAmender } from './tiptap.js' -export type converter = (buf: Buffer) => Promise +export type converter = (buf: Buffer) => Promise export function getConverter(mime: string): converter { switch (mime) { @@ -27,19 +26,19 @@ export function getConverter(mime: string): converter { } } -function convertHtml(buf: Buffer): Promise { +function convertHtml(buf: Buffer): Promise { const html = buf.toString('utf8') const doc = parseHTML(html) - return Promise.resolve(Buffer.from(encode(doc))) + return Promise.resolve(doc) } -function convertMarkdown(buf: Buffer): Promise { +function convertMarkdown(buf: Buffer): Promise { const html = marked.parse(buf.toString('utf8')) const doc = parseHTML(html) - return Promise.resolve(Buffer.from(encode(doc))) + return Promise.resolve(doc) } -async function convertPdf(buf: Buffer): Promise { +async function convertPdf(buf: Buffer): Promise { const doc = await pdfjs.getDocument(new Uint8Array(buf)).promise const node: Node = Object.create(null) node.type = 'doc' @@ -59,6 +58,7 @@ async function convertPdf(buf: Buffer): Promise { let texts = [] let height = 0 + let prevNode = null for (let item of content.items) { item = item as TextItem if (item.str == null) { @@ -80,16 +80,23 @@ async function convertPdf(buf: Buffer): Promise { if (item.hasEOL) { const level = hl.level(height) + if (level == 0) { - node.content.push({ + prevNode = { type: 'paragraph', content: [{ type: 'text', text: texts.join('') }] + } + node.content.push(prevNode) + } else if (prevNode != null && prevNode.type === 'heading' && prevNode.attrs!.level === level) { + prevNode.content.push({ + type: 'text', + text: texts.join('') }) } else { - node.content.push({ + prevNode = { type: "heading", attrs: { id: null, @@ -99,8 +106,10 @@ async function convertPdf(buf: Buffer): Promise { type: 'text', text: texts.join('') }] - }) + } + node.content.push(prevNode) } + texts = [] height = 0 } @@ -120,10 +129,10 @@ async function convertPdf(buf: Buffer): Promise { } const amender = new JSONDocumentAmender() - return Promise.resolve(Buffer.from(encode(amender.amendNode(node)))) + return Promise.resolve(amender.amendNode(node)) } -function convertText(buf: Buffer): Promise { +function convertText(buf: Buffer): Promise { const texts = buf.toString('utf8').split(/\r\n|\r|\n/) const node: Node = Object.create(null) node.type = 'doc' @@ -143,7 +152,7 @@ function convertText(buf: Buffer): Promise { } const amender = new JSONDocumentAmender() - return Promise.resolve(Buffer.from(encode(amender.amendNode(node)))) + return Promise.resolve(amender.amendNode(node)) } export class HeadingLevel { diff --git a/src/tiptap.ts b/src/tiptap.ts index 9ed8c50..fc07032 100644 --- a/src/tiptap.ts +++ b/src/tiptap.ts @@ -188,6 +188,28 @@ export function toHTML(doc: Node): string { return generateHTML(doc, tiptapExtensions) } +export function findTitle(doc: Node, level: number): string { + if (doc.type === 'heading') { + if (doc.attrs.level === level && doc.content != null) { + const texts: string[] = [] + for (const child of doc.content) { + if (child.type === 'text') { + texts.push(child.text!) + } + } + return texts.join(' ') + } + } else if (doc.content != null) { + for (const child of doc.content) { + const title = findTitle(child, level) + if (title !== '') { + return title + } + } + } + return '' +} + const LOCALHOST = 'https://localhost' function isSameOriginHref(href: string): boolean { if (typeof href === 'string') {