Compare commits

..

5 Commits

Author SHA1 Message Date
b997e531b5 Rollup support 2025-02-05 12:34:07 -07:00
baebe7d5aa tumblr.isRepost() always returns a boolean 2024-05-28 22:20:03 -06:00
9b9d25504e fix errors with missing descriptions 2024-05-28 22:19:24 -06:00
4ed28e7e6d Remove old default config thing 2024-04-14 18:21:59 -06:00
bc85d8e3e0 Fix source links 2024-04-14 18:21:07 -06:00
9 changed files with 504 additions and 125 deletions

2
.gitignore vendored
View File

@@ -2,7 +2,7 @@
node_modules/
# Artifacts
/out/*
/out
/cache.json
/config.js

273
config-2.js Normal file
View File

@@ -0,0 +1,273 @@
import Path from "path"
import {
createFeed,
pullImages,
writeView,
createView,
processCategories,
createCache,
} from "./lib.js";
import nitter from "./platforms/nitter.js";
import tumblr from "./platforms/tumblr.js";
import mastodon from "./platforms/mastodon.js";
import bluesky from "./platforms/bluesky.js";
const nitterInstances = [
"xcancel.com",
"nitter.privacydev.net",
"nitter.poast.org",
"nitter.lucabased.xyz",
"nitter.lunar.icu",
"nitter.kavin.rocks",
"nitter.tiekoetter.com",
"nitter.qwik.space",
"bird.habedieeh.re",
"t.com.sb",
"nitter.moomoo.me",
"nitter.bird.froth.zone",
"nitter.kylrth.com",
"nitter.io.lol",
"nitter.rawbit.ninja",
"n.populas.no",
"nitter.holo-mix.com"
];
const view = await createView({
path: Path.isAbsolute(process.argv[2]) ? process.argv[2] : Path.join(process.cwd(), process.argv[2]),
pageSize: 20,
imageStoreDirectory: 'images'
})
let cache = await createCache({
enabled: true,
path: Path.join(view.path, 'cache'),
directoryUrl: 'https://localhost:8080/cache/'
})
let blueskyClient = await bluesky.login('danny---farrow.bsky.social', 'xPLDRAYZkV6Qjhnf@uqAdB#jJiJWN@4NngAD%wd@HSme4!bVeNs%7f4Zf24Lsvz8')
let sourceOptions = {
courtesyWait: 1000
}
const handleTumblrPost = post => {
if(tumblr.isRepost(post))
return
post = processCategories(post)
return pullImages(post, view, true)
}
const handleTumblrFiltering = (post, whitelist, blacklist) => {
if(tumblr.matchesTags(post, whitelist, blacklist))
return handleTumblrPost(post)
}
const createTumblrSource = user =>
tumblr.createSource(user, sourceOptions, handleTumblrPost, cache)
const createTumblrSources = (users, ...args) =>
users.map(createTumblrSource)
const handleNitterPost = post => {
if(nitter.isRepost(post))
return
return nitter.pullImages(post, view, 'https://d.fxtwitter.com', true)
}
const createNitterSource = user =>
nitter.createSource(user, { courtesyWait: 2000, retryAttempts: 1 }, nitterInstances, handleNitterPost, cache)
const createNitterSources = (users, ...args) =>
users.map(createNitterSource)
const handleMastodonPost = post => {
return mastodon.pullImages(post, view, true)
// return post
}
const createMastodonSources = (users, ...args) =>
users.map(user =>
mastodon.createSource(user, sourceOptions, handleMastodonPost, cache)
)
const handleBlueskyPost = post => {
if(bluesky.isRepost(post))
return
return bluesky.pullImages(post, view, true)
}
const createBlueskySource = (usertag) =>
bluesky.createSource(usertag, {}, blueskyClient, handleBlueskyPost, cache)
const pushFeed = (name, sources, main) => {
Promise.all(sources)
.then(sources => feeds.push(createFeed(name, sources, main)))
return sources
}
let feeds = []
let sources = await Promise.all(
pushFeed('main', [
pushFeed('interesting', [
...createMastodonSources([
'NanoRaptor@bitbang.social',
]),
...createTumblrSources([
'nemfrog',
])
]),
...createMastodonSources([
'Ailantd@mastodon.art'
]),
...createNitterSources([
'imo10_',
'evv_uu',
'sorochii_',
'loafyfloff',
'Alopex',
'choecoga',
'Serpent____x',
'doej0b',
'FoxanderS',
'nyano52',
'mikeyswag13',
'myauyenn',
'RahksArt',
'falvie',
'Moux98049818',
'kasettetape',
'sonnytherat',
'FRIICKLORD',
'outset666',
'moja12deer',
'ramahuro',
'animalartcrimes',
'RoawayArt',
'tuplepaw',
'kopeniko_o',
'evilstaplers',
'dozakeet',
'SoulFullHyena',
'dexidoodles',
'MistakeHarvest', // They have a newgrounds
'yaki_lulu',
'33feareraser',
'jaimeWallowa',
'gramm_wein',
'itooku',
'phimeirai',
'SWAGGERQUAGGER',
'muad_daum',
'bugatticat',
'yarharcannon', // YES
'POCHOWEK',
'pinkycloudyboi',
'kherspurrs',
'fluorurodecobre',
]),
...createTumblrSources([
'echoprojectstruggletweets',
'gutter-bunny-art',
'coochiekrab',
'slowedmountains',
'cbts004',
'bobbydabob',
'storieldraw',
'luxjii',
'cartvage',
'kristenplescow',
'yaigi-gi',
'hools',
'devogamer',
// 'emeraldotter',
'dog-chows',
'magicsamart',
'marrzbugz',
'muzinabu',
'rabosa-al-forn',
'dreameleon',
'gamgyuls',
'tashaaaa',
'nevgig',
'ovopack',
'rfskia',
'peskypawz',
'discommunicator',
'chalkrub',
'jaquin',
'nekojiima',
// 'ookuru',
'turnipot',
'scpkid',
'shiki21',
'internethomepage',
'oreostock',
'sadfurs',
'falcoworks',
'oxydoodles',
'fourleafisland',
'catmask',
'hal-monitor',
'thecardeepend',
'zenniefox',
'mitchell-fjn',
'robogrind',
'discopaws',
'c0mpoundeyes',
'royalnaym',
'dakedres',
'mrrwsoup',
'vewn',
'vilebite',
'dedbut2',
'kazunekomori',
'shamerli',
'squawq7',
'critterly',
'soap-stone',
'raymodule',
'mcromwell',
'maxpawb',
// 'catjest3r',
'gr33ngr1zz',
'bleatnik',
'ljesak',
]),
...pushFeed('kaleidocollie', [
createTumblrSource('kaleidocollie'),
createNitterSource('KaleidoCollie')
]),
// createBlueskySource('edneqivo.bsky.social'),
// createBlueskySource('wintomsky.bsky.social')
], true)
)
// Instagram:
// - https://linktr.ee/ouhmathew
// FA:
// - https://www.furaffinity.net/user/dogupsidedown/
await Promise.all([
cache.batch.complete(),
view.batch.complete()
])
if(process.argv[3] === 'view')
await writeView(sources, feeds, view)

View File

@@ -1,115 +0,0 @@
const courtesyWait = 1000 * 10
const linkToIndex = true
const pageSize = 20
const printDate = date =>
(date.getMonth() + 1) + '.' + date.getDate() + '.' + date.getFullYear()
const view = {
tooLongAgo: 7 * 4, // Days
pageSize
}
const sourceView = {
pageSize
}
const feeds = {
main: {
main: true,
view,
nitter: [],
tumblr: [
'dakedres'
]
}
}
const sources = {
nitter: [
"nt.ggtyler.dev",
"nitter.unixfox.eu",
"nitter.poast.org",
"nitter.cz",
"nitter.privacydev.net",
"nitter.d420.de",
"bird.habedieeh.re",
"tweet.whateveritworks.org",
"nitter.services.woodland.cafe",
"nitter.nixnet.services", // (auth required)
"nitter.lacontrevoie.fr",
"nitter.fdn.fr",
"nitter.1d4.us",
"nitter.kavin.rocks",
"nitter.moomoo.me",
"bird.trom.tf",
"nitter.it",
"nitter.weiler.rocks",
"nitter.sethforprivacy.com",
"nitter.nl",
"nitter.mint.lgbt",
"nitter.esmailelbob.xyz",
"nitter.tiekoetter.com",
"nitter.privacy.com.de",
"nitter.bird.froth.zone",
"tweet.lambda.dance",
"nitter.kylrth.com",
"unofficialbird.com",
"nitter.projectsegfau.lt",
"nitter.eu.projectsegfau.lt",
"nitter.in.projectsegfau.lt",
"singapore.unofficialbird.com",
"canada.unofficialbird.com",
"india.unofficialbird.com",
"nederland.unofficialbird.com",
"uk.unofficialbird.com",
"nitter.soopy.moe",
"nitter.qwik.space",
"nitter.rawbit.ninja",
"nt.vern.cc",
"n.sneed.network",
"nitter.smnz.de",
"nitter.twei.space",
"nitter.inpt.fr",
"nitter.at",
"nitter.hostux.net",
"nitter.adminforge.de",
"nitter.platypush.tech",
"nitter.us.projectsegfau.lt",
"t.com.sb",
"nitter.kling.gg",
"nitter.lunar.icu",
"twitter.moe.ngo",
"nitter.freedit.eu",
"nitter.tux.pizza",
"nitter.altgr.xyz",
"jote.lile.cl",
"nitter.one",
"nitter.io.lol",
"nitter.no-logs.com",
"tweet.whateveritworks.org",
"nitter.fediflix.org",
"nitter.nohost.network",
"nitter.simpleprivacy.fr",
"nitter.onthescent.xyz",
"nitter.x86-64-unknown-linux-gnu.zip",
"nitter.private.coffee",
"nitter.oksocial.net",
"nitter.services.woodland.cafe",
"nitter.dafriser.be",
"nitter.catsarch.com",
"nitter.perennialte.ch",
"nitter.laserdisc.tokyo",
"nitter.datura.network"
]
}
export default {
feeds,
sources,
courtesyWait,
linkToIndex,
sourceView,
printDate
}

11
lib.js
View File

@@ -3,8 +3,6 @@ import FS from "fs/promises"
import { JSDOM } from "jsdom"
import Mustache from "mustache"
// | o |
// . . |- . | ,-.
// | | | | | `-.
@@ -210,7 +208,7 @@ export const createPosts = async (channel, source, fromDate, reducerCallback) =>
export const createPost = (item, source) => {
let description = item.querySelector('description')
description = description === null ? '' : new JSDOM(description.textContent).window.document
description = new JSDOM(description === null ? '' : description.textContent).window.document
let date = readPubDate(item.querySelector('pubDate'))
let link = item.querySelector('link')?.textContent
@@ -424,12 +422,14 @@ export const imageExtensions = {
'image/avif': '.avif',
'image/bmp': '.bmp',
'image/gif': '.gif',
'image/gifv': '.gifv',
'image/vnd.microsoft.icon': '.icon',
'image/jpeg': '.jpg',
'image/png': '.png',
'image/svg+xml': '.xml',
'image/tiff': '.tif',
'image/webp': '.webp'
'image/webp': '.webp',
'image/webm': '.gifv'
}
export const pullImages = async (post, view, discardPostIfNoImages = false, getPostId = getPostIdFromPathname) => {
@@ -550,6 +550,7 @@ export const writeView = (sources, feeds, view) => {
}
for(let page of pages) {
console.log('Writing page', page)
writePage(page, view)
}
@@ -596,6 +597,8 @@ export const createPages = (list, view) => {
}
}
console.log(list)
return pages
}

View File

@@ -2,7 +2,7 @@
"name": "rssssing",
"version": "1.1.0",
"description": "",
"main": "index.js",
"main": "lib.js",
"scripts": {
"start": "node .",
"setup": "mkdir out && cp -r default/* ."
@@ -13,5 +13,9 @@
"jsdom": "^22.1.0",
"mustache": "^4.2.0"
},
"type": "module"
"type": "module",
"devDependencies": {
"@rollup/plugin-node-resolve": "^15.2.3",
"rollup": "^4.18.0"
}
}

View File

@@ -1,6 +1,9 @@
import Path from "path"
import { createSource, createSourceOptions, downloadImages, fetchChannel, getPostIdFromPathname, isUnset } from "../lib.js"
// TODO:
// Pulling images from cache fails because their images were never added to the annotations
class BlueskyError extends Error {}
let bluesky = {}
@@ -57,7 +60,7 @@ bluesky.login = async (handle, password, domain = 'bsky.social') => {
}
const getPostUriChunks = channel => {
let guids = channel.querySelectorAll('guid')
let guids = channel.querySelectorAll('item > guid')
let storedUris = new Set()
let chunks = []
let uris = []

View File

@@ -27,7 +27,7 @@ tumblr.createSource = (user, options, postReducerCallback, cache) => {
tumblr.isRepost = (post) => {
let reblog = post.description.querySelector('p > a.tumblr_blog')
return reblog && reblog.innerHTML !== post.source.user
return reblog ? reblog.innerHTML !== post.source.user : false
}
tumblr.matchesTags = (post, whitelist, blacklist) => {

View File

@@ -31,7 +31,7 @@
{{#categories}}
<li> <b>categories</b> {{#entries}}<mark>{{.}}</mark>, {{/entries}}<mark>{{final}}</mark> </li>
{{/categories}}
<li> <b>source</b> <a href="{{& post.source.hostname}}">{{post.source.hostname}}</a> </li>
<li> <b>source</b> <a href="https://{{& post.source.hostname}}">{{post.source.hostname}}</a> </li>
{{#occurances}}
<li> <b>lists</b> {{#entries}}{{> occurance-link}} {{/entries}}{{#final}}{{> occurance-link}}{{/final}} </li>
{{/occurances}}

211
yarn.lock
View File

@@ -2,11 +2,122 @@
# yarn lockfile v1
"@rollup/plugin-node-resolve@^15.2.3":
version "15.2.3"
resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz#e5e0b059bd85ca57489492f295ce88c2d4b0daf9"
integrity sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==
dependencies:
"@rollup/pluginutils" "^5.0.1"
"@types/resolve" "1.20.2"
deepmerge "^4.2.2"
is-builtin-module "^3.2.1"
is-module "^1.0.0"
resolve "^1.22.1"
"@rollup/pluginutils@^5.0.1":
version "5.1.0"
resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0"
integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==
dependencies:
"@types/estree" "^1.0.0"
estree-walker "^2.0.2"
picomatch "^2.3.1"
"@rollup/rollup-android-arm-eabi@4.18.0":
version "4.18.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz#bbd0e616b2078cd2d68afc9824d1fadb2f2ffd27"
integrity sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==
"@rollup/rollup-android-arm64@4.18.0":
version "4.18.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz#97255ef6384c5f73f4800c0de91f5f6518e21203"
integrity sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==
"@rollup/rollup-darwin-arm64@4.18.0":
version "4.18.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz#b6dd74e117510dfe94541646067b0545b42ff096"
integrity sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==
"@rollup/rollup-darwin-x64@4.18.0":
version "4.18.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz#e07d76de1cec987673e7f3d48ccb8e106d42c05c"
integrity sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==
"@rollup/rollup-linux-arm-gnueabihf@4.18.0":
version "4.18.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz#9f1a6d218b560c9d75185af4b8bb42f9f24736b8"
integrity sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==
"@rollup/rollup-linux-arm-musleabihf@4.18.0":
version "4.18.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz#53618b92e6ffb642c7b620e6e528446511330549"
integrity sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==
"@rollup/rollup-linux-arm64-gnu@4.18.0":
version "4.18.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz#99a7ba5e719d4f053761a698f7b52291cefba577"
integrity sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==
"@rollup/rollup-linux-arm64-musl@4.18.0":
version "4.18.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz#f53db99a45d9bc00ce94db8a35efa7c3c144a58c"
integrity sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==
"@rollup/rollup-linux-powerpc64le-gnu@4.18.0":
version "4.18.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz#cbb0837408fe081ce3435cf3730e090febafc9bf"
integrity sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==
"@rollup/rollup-linux-riscv64-gnu@4.18.0":
version "4.18.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz#8ed09c1d1262ada4c38d791a28ae0fea28b80cc9"
integrity sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==
"@rollup/rollup-linux-s390x-gnu@4.18.0":
version "4.18.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz#938138d3c8e0c96f022252a28441dcfb17afd7ec"
integrity sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==
"@rollup/rollup-linux-x64-gnu@4.18.0":
version "4.18.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz#1a7481137a54740bee1ded4ae5752450f155d942"
integrity sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==
"@rollup/rollup-linux-x64-musl@4.18.0":
version "4.18.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz#f1186afc601ac4f4fc25fac4ca15ecbee3a1874d"
integrity sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==
"@rollup/rollup-win32-arm64-msvc@4.18.0":
version "4.18.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz#ed6603e93636a96203c6915be4117245c1bd2daf"
integrity sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==
"@rollup/rollup-win32-ia32-msvc@4.18.0":
version "4.18.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz#14e0b404b1c25ebe6157a15edb9c46959ba74c54"
integrity sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==
"@rollup/rollup-win32-x64-msvc@4.18.0":
version "4.18.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz#5d694d345ce36b6ecf657349e03eb87297e68da4"
integrity sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==
"@tootallnate/once@2":
version "2.0.0"
resolved "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz"
integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
"@types/estree@1.0.5", "@types/estree@^1.0.0":
version "1.0.5"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
"@types/resolve@1.20.2":
version "1.20.2"
resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975"
integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==
abab@^2.0.6:
version "2.0.6"
resolved "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz"
@@ -24,6 +135,11 @@ asynckit@^0.4.0:
resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
builtin-modules@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6"
integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==
combined-stream@^1.0.8:
version "1.0.8"
resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
@@ -59,6 +175,11 @@ decimal.js@^10.4.3:
resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz"
integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==
deepmerge@^4.2.2:
version "4.3.1"
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
@@ -76,6 +197,11 @@ entities@^4.4.0:
resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz"
integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
estree-walker@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
form-data@^4.0.0:
version "4.0.0"
resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz"
@@ -85,6 +211,23 @@ form-data@^4.0.0:
combined-stream "^1.0.8"
mime-types "^2.1.12"
fsevents@~2.3.2:
version "2.3.3"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
function-bind@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
hasown@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
dependencies:
function-bind "^1.1.2"
html-encoding-sniffer@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz"
@@ -116,6 +259,25 @@ iconv-lite@0.6.3:
dependencies:
safer-buffer ">= 2.1.2 < 3.0.0"
is-builtin-module@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169"
integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==
dependencies:
builtin-modules "^3.3.0"
is-core-module@^2.13.0:
version "2.13.1"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384"
integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==
dependencies:
hasown "^2.0.0"
is-module@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591"
integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==
is-potential-custom-element-name@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz"
@@ -184,6 +346,16 @@ parse5@^7.1.2:
dependencies:
entities "^4.4.0"
path-parse@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
picomatch@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
psl@^1.1.33:
version "1.9.0"
resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz"
@@ -204,6 +376,40 @@ requires-port@^1.0.0:
resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz"
integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
resolve@^1.22.1:
version "1.22.8"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
dependencies:
is-core-module "^2.13.0"
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
rollup@^4.18.0:
version "4.18.0"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.18.0.tgz#497f60f0c5308e4602cf41136339fbf87d5f5dda"
integrity sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==
dependencies:
"@types/estree" "1.0.5"
optionalDependencies:
"@rollup/rollup-android-arm-eabi" "4.18.0"
"@rollup/rollup-android-arm64" "4.18.0"
"@rollup/rollup-darwin-arm64" "4.18.0"
"@rollup/rollup-darwin-x64" "4.18.0"
"@rollup/rollup-linux-arm-gnueabihf" "4.18.0"
"@rollup/rollup-linux-arm-musleabihf" "4.18.0"
"@rollup/rollup-linux-arm64-gnu" "4.18.0"
"@rollup/rollup-linux-arm64-musl" "4.18.0"
"@rollup/rollup-linux-powerpc64le-gnu" "4.18.0"
"@rollup/rollup-linux-riscv64-gnu" "4.18.0"
"@rollup/rollup-linux-s390x-gnu" "4.18.0"
"@rollup/rollup-linux-x64-gnu" "4.18.0"
"@rollup/rollup-linux-x64-musl" "4.18.0"
"@rollup/rollup-win32-arm64-msvc" "4.18.0"
"@rollup/rollup-win32-ia32-msvc" "4.18.0"
"@rollup/rollup-win32-x64-msvc" "4.18.0"
fsevents "~2.3.2"
rrweb-cssom@^0.6.0:
version "0.6.0"
resolved "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz"
@@ -221,6 +427,11 @@ saxes@^6.0.0:
dependencies:
xmlchars "^2.2.0"
supports-preserve-symlinks-flag@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
symbol-tree@^3.2.4:
version "3.2.4"
resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz"