Compare commits
5 Commits
9bead82ecf
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 40e1735b82 | |||
| a049005fd1 | |||
| b1d675ad45 | |||
| 5da60912be | |||
| a8552b8e20 |
@@ -1,2 +1,3 @@
|
|||||||
node_modules
|
node_modules
|
||||||
.env
|
.env
|
||||||
|
session.json
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
|
||||||
|
<!DOCTYPE html><html style="background-color:black;color:white"><head>
|
||||||
|
<title>Video Download Helper</title>
|
||||||
|
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
||||||
|
<style>
|
||||||
|
video {max-width: 100%}
|
||||||
|
</style>
|
||||||
|
</head><body>
|
||||||
|
<noscript>need javascript bruh</noscript>
|
||||||
|
<div id="txt" style="white-space:pre"></div>
|
||||||
|
<script>
|
||||||
|
var params = new URLSearchParams(location.search);
|
||||||
|
var url = params.get("url");
|
||||||
|
if (url) {
|
||||||
|
var filename = params.get("filename") || "download.mp4";
|
||||||
|
txt.innerText = "downloading video blob, please wait...";
|
||||||
|
fetch(url).then(res => res.blob()).then(blob => {
|
||||||
|
var burl = URL.createObjectURL(blob);
|
||||||
|
var a = document.createElement("a");
|
||||||
|
a.href = burl;
|
||||||
|
a.download = filename;
|
||||||
|
a.innerText = "click or tap to save video";
|
||||||
|
txt.replaceWith(a);
|
||||||
|
a.click();
|
||||||
|
/*var video = document.createElement("video");
|
||||||
|
video.controls = true;
|
||||||
|
var source = document.createElement("source");
|
||||||
|
source.src = burl;
|
||||||
|
source.type = "video/mp4";
|
||||||
|
video.appendChild(source);
|
||||||
|
document.body.appendChild(video);*/
|
||||||
|
}).catch(error => {
|
||||||
|
txt.innerText = error.stack;
|
||||||
|
txt.style.color = "red";
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body></html>
|
||||||
|
|
||||||
@@ -1,50 +1,132 @@
|
|||||||
import "dotenv/config";
|
import "dotenv/config";
|
||||||
import {Bot, RichText} from "@skyware/bot";
|
import {Bot, RichText, Post, IncomingChatPreference} from "@skyware/bot";
|
||||||
|
import {DidResolver} from "@atproto/identity";
|
||||||
|
import {readFile,writeFile} from "fs/promises";
|
||||||
|
|
||||||
var bot = new Bot();
|
var didres = new DidResolver({});
|
||||||
await bot.login({
|
var getServiceEndpoint = async did => (await didres.resolve(did)).service.find(s => s.id == "#atproto_pds")?.serviceEndpoint;
|
||||||
identifier: process.env.IDENTIFIER,
|
|
||||||
password: process.env.PASSWORD
|
var bot = new Bot({emitChatEvents: true});
|
||||||
});
|
|
||||||
bot.on("error", console.error);
|
bot.on("error", console.error);
|
||||||
|
|
||||||
bot.on("mention", async mention => {
|
try {
|
||||||
//console.log({mention});
|
var sessionData = JSON.parse(await readFile("session.json", "utf8"));
|
||||||
var parent = mention.replyRef?.parent;
|
await bot.resumeSession(sessionData);
|
||||||
if (!parent) return;
|
console.log("resumed session");
|
||||||
//console.log({parent});
|
} catch(error) {
|
||||||
try {
|
console.log(error.message);
|
||||||
var parentPost = await bot.getPost(parent.uri);
|
var sessionData = await bot.login({
|
||||||
//console.log({parentPost});
|
identifier: process.env.IDENTIFIER,
|
||||||
|
password: process.env.PASSWORD
|
||||||
|
});
|
||||||
|
console.log("new session:", sessionData);
|
||||||
|
await writeFile("session.json", JSON.stringify(sessionData));
|
||||||
|
}
|
||||||
|
|
||||||
var embed = parentPost.embed;
|
await bot.setChatPreference(IncomingChatPreference.All);
|
||||||
if (!embed || !embed.isVideo()) {
|
|
||||||
//await mention.reply({text: "Sorry, it doesn't seem that this post has a video."})
|
|
||||||
|
|
||||||
|
bot.on("mention", async post => {
|
||||||
|
try {
|
||||||
|
var responsePayload = await processRequest(post);
|
||||||
|
if (responsePayload) await post.reply(responsePayload);
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error);
|
||||||
|
await post.reply({text: String(error.message?.substring(0,300))});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
bot.on("message", async (message) => {
|
||||||
|
try {
|
||||||
|
console.log(`chat: ${JSON.stringify({id: message.id, senderDid: message.senderDid, sentAt: message.sentAt, text: message.text, facets: message.facets, embed: message.embed})}`);
|
||||||
|
var conversationId = message.conversationId;
|
||||||
|
if (!conversationId) {
|
||||||
|
console.warn("missing conversationId");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var did = parentPost.author.did;
|
if (message.embed) {
|
||||||
var cid = embed.cid;
|
var uri = message.embed.uri;
|
||||||
var url = `${await getServiceEndpoint(did)}/xrpc/com.atproto.sync.getBlob?did=${did}&cid=${cid}`;
|
} else {
|
||||||
url = `https://avps.owo69.me/download.html?filename=${cid}.mp4&url=${encodeURIComponent(url)}`;
|
var uri = findLinkedBlueskyPosts(message.facets)[0]; //todo support multiple
|
||||||
|
if (!uri) {
|
||||||
|
await bot.sendMessage({conversationId, text: "Send me a Bluesky post with a video to get a download link!"});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var text = new RichText().addLink("Click or touch here to download this video", url);
|
try {
|
||||||
await mention.reply({text});
|
var post = await bot.getPost(uri);
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error);
|
||||||
|
await bot.sendMessage({conversationId, text: error.message});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var responsePayload = await processRequest(post);
|
||||||
|
if (!responsePayload) {
|
||||||
|
responsePayload = {text: "This post does not have a video :("};
|
||||||
|
};
|
||||||
|
await bot.sendMessage({conversationId, ...responsePayload});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
await mention.reply({text: "error"});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
async function processRequest(post) {
|
||||||
|
// video in mentioning post or quoted post
|
||||||
|
var vid = await findVideoInPost(post);
|
||||||
|
|
||||||
async function getServiceEndpoint(did) {
|
// ignore original posts without video
|
||||||
//try {
|
if (!vid && !post.replyRef) return;
|
||||||
var doc = await fetch(`https://plc.directory/${did}`).then(res => res.json());
|
|
||||||
var {serviceEndpoint} = doc.service.find(s => s.id == "#atproto_pds");
|
// video in replied post or quoted in replied post
|
||||||
return serviceEndpoint;
|
if (!vid) {
|
||||||
//} catch (error) {
|
var parentPost = await bot.getPost(post.replyRef.parent.uri);
|
||||||
// console.error(error);
|
vid = await findVideoInPost(parentPost);
|
||||||
// return `https://bsky.network`;
|
}
|
||||||
//}
|
|
||||||
|
// video in original post or quoted in original post
|
||||||
|
if (!vid) {
|
||||||
|
var rootPost = await bot.getPost(post.replyRef.root.uri);
|
||||||
|
vid = await findVideoInPost(rootPost);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!vid) {
|
||||||
|
return {text: "Could not find Bluesky video in replied post, quoted post, or parent post"};
|
||||||
|
}
|
||||||
|
|
||||||
|
var url = `${await getServiceEndpoint(vid.did)}/xrpc/com.atproto.sync.getBlob?did=${vid.did}&cid=${vid.cid}`;
|
||||||
|
// pdes don't set a suitable Content-Disposition header
|
||||||
|
var url2 = `https://avps.owo69.me/download.html?filename=${vid.cid}.mp4&url=${encodeURIComponent(url)}`;
|
||||||
|
|
||||||
|
var text = new RichText().addLink("Click or touch here to download this video.", url2).addText("\n\nOr right click ").addLink("here", url).addText(` to “Save Link As…”`);
|
||||||
|
return {text};
|
||||||
|
}
|
||||||
|
|
||||||
|
async function findVideoInPost(post, b) {
|
||||||
|
if (!post.embed) return;
|
||||||
|
|
||||||
|
if (post.embed.isVideo())
|
||||||
|
return {did: post.author.did, cid: post.embed.cid};
|
||||||
|
|
||||||
|
if (post.embed.isRecordWithMedia() && post.embed.media.isVideo())
|
||||||
|
return {did: post.author.did, cid: post.embed.media.cid};
|
||||||
|
|
||||||
|
if (post.embed.isRecord() && post.embed.record instanceof Post && !b) {
|
||||||
|
// post.embed.record.embed is undefined
|
||||||
|
let quotedPost = await bot.getPost(post.embed.record.uri);
|
||||||
|
return await findVideoInPost(quotedPost, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function findLinkedBlueskyPosts(facets) {
|
||||||
|
var uris = [];
|
||||||
|
if (facets) for (var facet of facets) if (facet.features) for (var feature of facet.features) if (feature.$type == "app.bsky.richtext.facet#link" && feature.uri) {
|
||||||
|
var match = feature.uri.match(/https?:\/\/bsky\.app\/profile\/([^\/]+)\/post\/([^\/]+)/);
|
||||||
|
if (match) uris.push(`at://${match[1]}/app.bsky.feed.post/${match[2]}`);
|
||||||
|
}
|
||||||
|
return uris;
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
+348
-101
@@ -1,130 +1,320 @@
|
|||||||
{
|
{
|
||||||
"name": "bsky video download bot",
|
"name": "bsky-video-download-bot",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@skyware/bot": "^0.3.7",
|
"@atproto/identity": "^0.4.12",
|
||||||
"dotenv": "^16.4.5"
|
"@skyware/bot": "^0.4.1",
|
||||||
|
"dotenv": "^17.4.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@atcute/base32": {
|
"node_modules/@atcute/atproto": {
|
||||||
"version": "1.0.0",
|
"version": "3.1.11",
|
||||||
"resolved": "https://registry.npmjs.org/@atcute/base32/-/base32-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/@atcute/atproto/-/atproto-3.1.11.tgz",
|
||||||
"integrity": "sha512-Mbjsv6kd/ymvDMGjCoh9eqhlpFsoJ6zYguU6xtKxqh1wGhe5rvBOfMRXsEqcp7srn8Bfp8QhevqLgmwrWvzqrA==",
|
"integrity": "sha512-yh+ASvA+iHHQij6UeHEKp2+rwvFvQR8A6/5Dk/xvqDslIikWEFx9VlprNwm/clQIPl2bLuQg+LHS8uY9o5nFTA==",
|
||||||
"optional": true
|
"license": "0BSD",
|
||||||
|
"dependencies": {
|
||||||
|
"@atcute/lexicons": "^1.2.10"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@atcute/bluesky": {
|
"node_modules/@atcute/bluesky": {
|
||||||
"version": "1.0.7",
|
"version": "3.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/@atcute/bluesky/-/bluesky-1.0.7.tgz",
|
"resolved": "https://registry.npmjs.org/@atcute/bluesky/-/bluesky-3.3.2.tgz",
|
||||||
"integrity": "sha512-2jPHzl7WbcqRtcAXanJy4Lp638ujqnoGmPCPmBlmpEDP34D7EVKQqjN/mlvglb5n539dThA9xlSgIS8yOxwzDA==",
|
"integrity": "sha512-BqVXghoNFbBm38hveWqPQQ25VZxHXmqYk5h0NG8YFiwNLrI8Ww1nXHAJzS65zyHwV5QeSA6EDFaTrQwm+7cCFQ==",
|
||||||
"peerDependencies": {
|
"license": "0BSD",
|
||||||
"@atcute/client": "^1.0.0 || ^2.0.0"
|
"dependencies": {
|
||||||
|
"@atcute/atproto": "^3.1.11",
|
||||||
|
"@atcute/lexicons": "^1.3.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@atcute/bluesky-richtext-builder": {
|
"node_modules/@atcute/bluesky-richtext-builder": {
|
||||||
"version": "1.0.1",
|
"version": "2.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/@atcute/bluesky-richtext-builder/-/bluesky-richtext-builder-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@atcute/bluesky-richtext-builder/-/bluesky-richtext-builder-2.0.5.tgz",
|
||||||
"integrity": "sha512-msyKHZa47id7Oe2zHpgPSuL+l9vLQXmKfi6uyMOS5yw6nLpNd5Tdb96wcgwscMmyH8UR4EoM+2oYLvyH89DcEQ==",
|
"integrity": "sha512-74VcYnq0MIWb9GegSYmxfFMYWSDn4fqh0R3d9ofzgav0gVFGPmXDm4Hf4cuOYGv9pz0/4sdJDqb0gamzxvOXGQ==",
|
||||||
"peerDependencies": {
|
"license": "0BSD",
|
||||||
"@atcute/bluesky": "^1.0.0",
|
"dependencies": {
|
||||||
"@atcute/client": "^1.0.0 || ^2.0.0"
|
"@atcute/bluesky": "^3.2.17",
|
||||||
|
"@atcute/lexicons": "^1.2.9",
|
||||||
|
"@atcute/uint8array": "^1.1.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@atcute/car": {
|
"node_modules/@atcute/car": {
|
||||||
"version": "1.1.0",
|
"version": "3.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/@atcute/car/-/car-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/@atcute/car/-/car-3.1.3.tgz",
|
||||||
"integrity": "sha512-Ayi8gilzgMMYZ1sqbHqqP52OOJlxrbsAxgAB3Kgz/NJvl9StlYKKlUQN580gZebsG0B+EYbhToQJYoCs3ioW+A==",
|
"integrity": "sha512-WJ13bAEt7TjDMVi09ubjLtvhdljbWInGm9Kfy7Y6NhrmiyC/aZYaA/zHX/bHI6xv1c/h3SQduWqxOr4ae49eqA==",
|
||||||
|
"license": "0BSD",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@atcute/cbor": "^1.0.2",
|
"@atcute/cbor": "^2.2.7",
|
||||||
"@atcute/cid": "^1.0.1",
|
"@atcute/cid": "^2.2.5",
|
||||||
"@atcute/varint": "^1.0.0"
|
"@atcute/uint8array": "^1.0.5",
|
||||||
|
"@atcute/varint": "^1.0.3",
|
||||||
|
"yocto-queue": "^1.2.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@atcute/cbor": {
|
"node_modules/@atcute/cbor": {
|
||||||
"version": "1.0.5",
|
"version": "2.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/@atcute/cbor/-/cbor-1.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/@atcute/cbor/-/cbor-2.3.2.tgz",
|
||||||
"integrity": "sha512-ckWn+ZErzeTgKBuklQfUpsOb5+uAtSJi68Z7+1wJMMEP7iO/V90IIlyTm+19ACuGEuY8SGrfUIWyZvBjhgCTYw==",
|
"integrity": "sha512-xP2SORSau/VVI00x2V4BjwIkHr6EQ7l/MXEOPaa4LGYtePFc4gnD4L1yN10dT5NEuUnvGEuCh6arLB7gz1smVQ==",
|
||||||
|
"license": "0BSD",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@atcute/base32": "^1.0.0",
|
"@atcute/cid": "^2.4.1",
|
||||||
"@atcute/cid": "^1.0.1"
|
"@atcute/multibase": "^1.1.8",
|
||||||
|
"@atcute/uint8array": "^1.1.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@atcute/cid": {
|
"node_modules/@atcute/cid": {
|
||||||
"version": "1.0.1",
|
"version": "2.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/@atcute/cid/-/cid-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@atcute/cid/-/cid-2.4.1.tgz",
|
||||||
"integrity": "sha512-92Cor2ruS7y+/wdFutp2qFDjJj4mTcO7HdZ/BhTQRg/nzWdAnTann5DAmYjD+IWRaXd5SYk4dOZnDt4lsGofzg==",
|
"integrity": "sha512-bwhna69RCv7yetXudtj+2qrMPYvhhIQqvJz6YUpUS98v7OdF3X2dnye9Nig2NDrklZcuyOsu7sQo7GOykJXRLQ==",
|
||||||
|
"license": "0BSD",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@atcute/base32": "^1.0.0",
|
"@atcute/multibase": "^1.1.8",
|
||||||
"@atcute/varint": "^1.0.0"
|
"@atcute/uint8array": "^1.1.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@atcute/client": {
|
"node_modules/@atcute/client": {
|
||||||
"version": "2.0.3",
|
"version": "4.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/@atcute/client/-/client-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@atcute/client/-/client-4.2.1.tgz",
|
||||||
"integrity": "sha512-j9GryA5l+4F0BTQWa6/1XmsuSPSq+bqNCY3mrHUGD592hMqUZxgpYDLgRWL+719V287AW/56AwvFYlbjlENp7A=="
|
"integrity": "sha512-ZBFM2pW075JtgGFu5g7HHZBecrClhlcNH8GVP9Zz1aViWR+cjjBsTpeE63rJs+FCOHFYlirUyo5L8SGZ4kMINw==",
|
||||||
|
"license": "0BSD",
|
||||||
|
"dependencies": {
|
||||||
|
"@atcute/identity": "^1.1.3",
|
||||||
|
"@atcute/lexicons": "^1.2.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@atcute/identity": {
|
||||||
|
"version": "1.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@atcute/identity/-/identity-1.1.4.tgz",
|
||||||
|
"integrity": "sha512-RCw1IqflfuSYCxK5m0lZCm0UnvIzcUnuhngiBhJEJb9a9Mc2SEf1xP3H8N5r8pvEH1LoAYd6/zrvCNU+uy9esw==",
|
||||||
|
"license": "0BSD",
|
||||||
|
"dependencies": {
|
||||||
|
"@atcute/lexicons": "^1.2.9",
|
||||||
|
"@badrap/valita": "^0.4.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@atcute/lexicons": {
|
||||||
|
"version": "1.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@atcute/lexicons/-/lexicons-1.3.0.tgz",
|
||||||
|
"integrity": "sha512-Eq5y+9onnCXNVUlNiMf31beSXHKqptB7lUo/68YbhlmxdaR7ooywHmahya9goP5AsmlYEA1z+dRPXIDAa9O7cg==",
|
||||||
|
"license": "0BSD",
|
||||||
|
"dependencies": {
|
||||||
|
"@atcute/uint8array": "^1.1.1",
|
||||||
|
"@atcute/util-text": "^1.2.0",
|
||||||
|
"@standard-schema/spec": "^1.1.0",
|
||||||
|
"esm-env": "^1.2.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@atcute/multibase": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@atcute/multibase/-/multibase-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-ZK2GRra+qIYq9nNuQB52m2ul0hOmCQEtPobGfTSUxm7pF0OGEkWGkWHugFhNEDVzHzTwPxHp6VGotdZFue4lYQ==",
|
||||||
|
"license": "0BSD",
|
||||||
|
"optional": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@atcute/uint8array": "^1.1.1"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@atcute/ozone": {
|
"node_modules/@atcute/ozone": {
|
||||||
"version": "1.0.5",
|
"version": "3.1.14",
|
||||||
"resolved": "https://registry.npmjs.org/@atcute/ozone/-/ozone-1.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/@atcute/ozone/-/ozone-3.1.14.tgz",
|
||||||
"integrity": "sha512-53+KoRlvzinv1NUESFOHPPK2kF/CFoQc9um1xH3OPhe29x7RP3PNEBXSc53mnbsAg80dTuh83xqwTrpdJ3o33g==",
|
"integrity": "sha512-v0Z/W2f5Aa8rwEw6kNEd1nl+a9SbtflCzXqJUmuQbwlesfpRN/T5dCk+WNT55EN7wfYx03JwYrSSJlh5N9oZvA==",
|
||||||
"peerDependencies": {
|
"license": "0BSD",
|
||||||
"@atcute/bluesky": "^1.0.0",
|
"dependencies": {
|
||||||
"@atcute/client": "^1.0.0 || ^2.0.0"
|
"@atcute/atproto": "^3.1.11",
|
||||||
|
"@atcute/bluesky": "^3.3.1",
|
||||||
|
"@atcute/lexicons": "^1.2.10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@atcute/uint8array": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@atcute/uint8array/-/uint8array-1.1.1.tgz",
|
||||||
|
"integrity": "sha512-3LsC8XB8TKe9q/5hOA5sFuzGaIFdJZJNewC5OKa3o/eU6+K7JR6see9Zy2JbQERNVnRl11EzbNov1efgLMAs4g==",
|
||||||
|
"license": "0BSD"
|
||||||
|
},
|
||||||
|
"node_modules/@atcute/util-text": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@atcute/util-text/-/util-text-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-b8WSh+Z7K601eUFFmTFj8QPKDO8Ic0VDDj63sdKzpkm+ySQKsYT5nXekViGqFVKbyKj1V5FyvZvgXad6/aI4QQ==",
|
||||||
|
"license": "0BSD",
|
||||||
|
"dependencies": {
|
||||||
|
"unicode-segmenter": "^0.14.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@atcute/varint": {
|
"node_modules/@atcute/varint": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@atcute/varint/-/varint-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/@atcute/varint/-/varint-1.0.4.tgz",
|
||||||
"integrity": "sha512-NEBOGkdaDY8cjlDg49kefIsRM7iv/4oReEnOr3bN4tF3IxBGdc6Io1NCJz1xNBNdUL+3VDG3CKHiRji91HXaTg==",
|
"integrity": "sha512-0nGBaRyJLoxVvCHTSLGwPZKs64PPi/0lDA4viF3I5zxsRmVPsXaE92J8VQj3KoZfk0+Z+liXklG1Onw7G9S4oQ==",
|
||||||
|
"license": "0BSD",
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"node_modules/@skyware/bot": {
|
"node_modules/@atproto/common-web": {
|
||||||
"version": "0.3.7",
|
"version": "0.4.20",
|
||||||
"resolved": "https://registry.npmjs.org/@skyware/bot/-/bot-0.3.7.tgz",
|
"resolved": "https://registry.npmjs.org/@atproto/common-web/-/common-web-0.4.20.tgz",
|
||||||
"integrity": "sha512-27k7r4/YA+h8FobXokMa3iv8fm/850a7NmajOHP3/CaMbCYicXXBDnAIY4kIPP58Zl/A/JvdcFLpQBpfFkiQHQ==",
|
"integrity": "sha512-RcsYT28yQgVi/Glb/hHPGpqpzIlKrbMLeldEd7PmmMLWDaJL2j3lb92qytvxjl1yhi2Ssq2TEuMZ2NlWaAbpow==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@atcute/bluesky": "^1.0.7",
|
"@atproto/lex-data": "^0.0.15",
|
||||||
"@atcute/bluesky-richtext-builder": "^1.0.1",
|
"@atproto/lex-json": "^0.0.15",
|
||||||
"@atcute/client": "^2.0.3",
|
"@atproto/syntax": "^0.5.3",
|
||||||
"@atcute/ozone": "^1.0.5",
|
"zod": "^3.23.8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@atproto/crypto": {
|
||||||
|
"version": "0.4.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@atproto/crypto/-/crypto-0.4.5.tgz",
|
||||||
|
"integrity": "sha512-n40aKkMoCatP0u9Yvhrdk6fXyOHFDDbkdm4h4HCyWW+KlKl8iXfD5iV+ECq+w5BM+QH25aIpt3/j6EUNerhLxw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@noble/curves": "^1.7.0",
|
||||||
|
"@noble/hashes": "^1.6.1",
|
||||||
|
"uint8arrays": "3.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18.7.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@atproto/identity": {
|
||||||
|
"version": "0.4.12",
|
||||||
|
"resolved": "https://registry.npmjs.org/@atproto/identity/-/identity-0.4.12.tgz",
|
||||||
|
"integrity": "sha512-P+Jn0HvKhIh1tps5n3xGrCxt+XiFWzp4kdgloyFhFmVLwjDU547DQkWx4r5Vhuiah7fRZGVSlk39R4U6SPrACg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@atproto/common-web": "^0.4.17",
|
||||||
|
"@atproto/crypto": "^0.4.5"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18.7.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@atproto/lex-data": {
|
||||||
|
"version": "0.0.15",
|
||||||
|
"resolved": "https://registry.npmjs.org/@atproto/lex-data/-/lex-data-0.0.15.tgz",
|
||||||
|
"integrity": "sha512-ZsbGiaM5S3CnGrcTMbDGON3bLZzCi/Mx9UvcMREKSRujnF68eHgMiXxJqvykP7+QpOX6tYCK93axZkuJVhtSEw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"multiformats": "^9.9.0",
|
||||||
|
"tslib": "^2.8.1",
|
||||||
|
"uint8arrays": "3.0.0",
|
||||||
|
"unicode-segmenter": "^0.14.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@atproto/lex-json": {
|
||||||
|
"version": "0.0.15",
|
||||||
|
"resolved": "https://registry.npmjs.org/@atproto/lex-json/-/lex-json-0.0.15.tgz",
|
||||||
|
"integrity": "sha512-kCLdP629H6GhgPjBTpZibUoqlpmW0hnVfZVwcD4s4Jch1KAqY/QcfL24Ih8wrW0Ok1YvtMIhjk98evdTA2OJcw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@atproto/lex-data": "^0.0.15",
|
||||||
|
"tslib": "^2.8.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@atproto/syntax": {
|
||||||
|
"version": "0.5.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.5.3.tgz",
|
||||||
|
"integrity": "sha512-gzhlHOJHm5KXdCc17fXi1fXM81ccs5jJfNgCui84ay9JGvczxegpYHNqdMlv+iBuhtBzFIjgx6ChjRxN/kO8kQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"tslib": "^2.8.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@badrap/valita": {
|
||||||
|
"version": "0.4.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@badrap/valita/-/valita-0.4.6.tgz",
|
||||||
|
"integrity": "sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 18"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@noble/curves": {
|
||||||
|
"version": "1.9.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz",
|
||||||
|
"integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@noble/hashes": "1.8.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^14.21.3 || >=16"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://paulmillr.com/funding/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@noble/hashes": {
|
||||||
|
"version": "1.8.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
|
||||||
|
"integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": "^14.21.3 || >=16"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://paulmillr.com/funding/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@skyware/bot": {
|
||||||
|
"version": "0.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@skyware/bot/-/bot-0.4.1.tgz",
|
||||||
|
"integrity": "sha512-s4+n02sVSRXebjaV4Grea4tpYCvpijje+/8UnmrVcfD/A26+O769NtjP7LlISGZvGL9FL3TpcEaJWBoa2roq/g==",
|
||||||
|
"license": "MPL-2.0",
|
||||||
|
"dependencies": {
|
||||||
|
"@atcute/atproto": "^3.1.1",
|
||||||
|
"@atcute/bluesky": "^3.2.0",
|
||||||
|
"@atcute/bluesky-richtext-builder": "^2.0.3",
|
||||||
|
"@atcute/client": "^4.0.3",
|
||||||
|
"@atcute/lexicons": "^1.1.0",
|
||||||
|
"@atcute/ozone": "^3.1.3",
|
||||||
"quick-lru": "^7.0.0",
|
"quick-lru": "^7.0.0",
|
||||||
"rate-limit-threshold": "^0.1.5"
|
"rate-limit-threshold": "^0.1.5"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@skyware/firehose": "^0.3.2",
|
"@skyware/firehose": "^0.5.2",
|
||||||
"@skyware/jetstream": "^0.1.9"
|
"@skyware/jetstream": "^0.2.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@skyware/firehose": {
|
"node_modules/@skyware/firehose": {
|
||||||
"version": "0.3.2",
|
"version": "0.5.2",
|
||||||
"resolved": "https://registry.npmjs.org/@skyware/firehose/-/firehose-0.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/@skyware/firehose/-/firehose-0.5.2.tgz",
|
||||||
"integrity": "sha512-CmRaw3lFPEd9euFGV+K/n/TF/o0Rre87oJP5pswC8IExj/qQnWVoncIulAJbL3keUCm5mlt49jCiiqfQXVjigg==",
|
"integrity": "sha512-Ayg/cF0BkakBNQVA51ClDka0+nC96WiARNrGElMQxfqbwao0PBaCXkunfr8qS4DWS3TqLnR6hA9mvm1vAYlxJQ==",
|
||||||
|
"license": "MPL-2.0",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@atcute/car": "^1.1.0",
|
"@atcute/car": "^3.0.3",
|
||||||
"@atcute/cbor": "^1.0.3",
|
"@atcute/cbor": "^2.2.2",
|
||||||
"ws": "^8.16.0"
|
"nanoevents": "^9.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@skyware/jetstream": {
|
"node_modules/@skyware/jetstream": {
|
||||||
"version": "0.1.9",
|
"version": "0.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/@skyware/jetstream/-/jetstream-0.1.9.tgz",
|
"resolved": "https://registry.npmjs.org/@skyware/jetstream/-/jetstream-0.2.5.tgz",
|
||||||
"integrity": "sha512-87NGqRSmEYmvEuVY0DKZ2ZRbL72tExtDuV+PDvywYqukSp3F/it+9wnU5Xb/Is/pf+KSbd6lWvrnE31HgxJpJg==",
|
"integrity": "sha512-fM/zs03DLwqRyzZZJFWN20e76KrdqIp97Tlm8Cek+vxn96+tu5d/fx79V6H85L0QN6HvGiX2l9A8hWFqHvYlOA==",
|
||||||
|
"license": "MPL-2.0",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@atcute/bluesky": "^1.0.6",
|
"@atcute/atproto": "^3.1.0",
|
||||||
"partysocket": "^1.0.2"
|
"@atcute/bluesky": "^3.1.4",
|
||||||
|
"@atcute/lexicons": "^1.1.0",
|
||||||
|
"partysocket": "^1.1.3",
|
||||||
|
"tiny-emitter": "^2.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@standard-schema/spec": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/dotenv": {
|
"node_modules/dotenv": {
|
||||||
"version": "16.4.5",
|
"version": "17.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
|
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.1.tgz",
|
||||||
"integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==",
|
"integrity": "sha512-k8DaKGP6r1G30Lx8V4+pCsLzKr8vLmV2paqEj1Y55GdAgJuIqpRp5FfajGF8KtwMxCz9qJc6wUIJnm053d/WCw==",
|
||||||
|
"license": "BSD-2-Clause",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=12"
|
"node": ">=12"
|
||||||
},
|
},
|
||||||
@@ -132,31 +322,58 @@
|
|||||||
"url": "https://dotenvx.com"
|
"url": "https://dotenvx.com"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/event-target-shim": {
|
"node_modules/esm-env": {
|
||||||
"version": "6.0.2",
|
"version": "1.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-6.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz",
|
||||||
"integrity": "sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==",
|
"integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/event-target-polyfill": {
|
||||||
|
"version": "0.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/event-target-polyfill/-/event-target-polyfill-0.0.4.tgz",
|
||||||
|
"integrity": "sha512-Gs6RLjzlLRdT8X9ZipJdIZI/Y6/HhRLyq9RdDlCsnpxr/+Nn6bU2EFGuC94GjxqhM+Nmij2Vcq98yoHrU8uNFQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"node_modules/multiformats": {
|
||||||
|
"version": "9.9.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz",
|
||||||
|
"integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==",
|
||||||
|
"license": "(Apache-2.0 AND MIT)"
|
||||||
|
},
|
||||||
|
"node_modules/nanoevents": {
|
||||||
|
"version": "9.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/nanoevents/-/nanoevents-9.1.0.tgz",
|
||||||
|
"integrity": "sha512-Jd0fILWG44a9luj8v5kED4WI+zfkkgwKyRQKItTtlPfEsh7Lznfi1kr8/iZ+XAIss4Qq5GqRB0qtWbaz9ceO/A==",
|
||||||
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10.13.0"
|
"node": "^18.0.0 || >=20.0.0"
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/mysticatea"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/partysocket": {
|
"node_modules/partysocket": {
|
||||||
"version": "1.0.2",
|
"version": "1.1.16",
|
||||||
"resolved": "https://registry.npmjs.org/partysocket/-/partysocket-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/partysocket/-/partysocket-1.1.16.tgz",
|
||||||
"integrity": "sha512-rAFOUKImaq+VBk2B+2RTBsWEvlnarEP53nchoUHzpVs8V6fG2/estihOTslTQUWHVuHEKDL5k8htG8K3TngyFA==",
|
"integrity": "sha512-d7xFv+ZC7x0p/DAHWJ5FhxQhimIx+ucyZY+kxL0cKddLBmK9c4p2tEA/L+dOOrWm6EYrRwrBjKQV0uSzOY9x1w==",
|
||||||
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"event-target-shim": "^6.0.2"
|
"event-target-polyfill": "^0.0.4"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": ">=17"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"react": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/quick-lru": {
|
"node_modules/quick-lru": {
|
||||||
"version": "7.0.0",
|
"version": "7.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-7.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-7.3.0.tgz",
|
||||||
"integrity": "sha512-MX8gB7cVYTrYcFfAnfLlhRd0+Toyl8yX8uBx1MrX7K0jegiz9TumwOK27ldXrgDlHRdVi+MqU9Ssw6dr4BNreg==",
|
"integrity": "sha512-k9lSsjl36EJdK7I06v7APZCbyGT2vMTsYSRX1Q2nbYmnkBqgUhRkAuzH08Ciotteu/PLJmIF2+tti7o3C/ts2g==",
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18"
|
"node": ">=18"
|
||||||
},
|
},
|
||||||
@@ -168,29 +385,59 @@
|
|||||||
"version": "0.1.5",
|
"version": "0.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/rate-limit-threshold/-/rate-limit-threshold-0.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/rate-limit-threshold/-/rate-limit-threshold-0.1.5.tgz",
|
||||||
"integrity": "sha512-75vpvXC/ZqQJrFDp0dVtfoXZi8kxQP2eBuxVYFvGDfnHhcgE+ZG870u4ItQhWQh54Y6nNwOaaq5g3AL9n27lTg==",
|
"integrity": "sha512-75vpvXC/ZqQJrFDp0dVtfoXZi8kxQP2eBuxVYFvGDfnHhcgE+ZG870u4ItQhWQh54Y6nNwOaaq5g3AL9n27lTg==",
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^14.13.1 || >=16.0.0"
|
"node": "^14.13.1 || >=16.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/ws": {
|
"node_modules/tiny-emitter": {
|
||||||
"version": "8.18.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
|
"resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
|
||||||
"integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
|
"integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==",
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"node_modules/tslib": {
|
||||||
|
"version": "2.8.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
|
||||||
|
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
|
||||||
|
"license": "0BSD"
|
||||||
|
},
|
||||||
|
"node_modules/uint8arrays": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"multiformats": "^9.4.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/unicode-segmenter": {
|
||||||
|
"version": "0.14.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/unicode-segmenter/-/unicode-segmenter-0.14.5.tgz",
|
||||||
|
"integrity": "sha512-jHGmj2LUuqDcX3hqY12Ql+uhUTn8huuxNZGq7GvtF6bSybzH3aFgedYu/KTzQStEgt1Ra2F3HxadNXsNjb3m3g==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/yocto-queue": {
|
||||||
|
"version": "1.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz",
|
||||||
|
"integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==",
|
||||||
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10.0.0"
|
"node": ">=12.20"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"funding": {
|
||||||
"bufferutil": "^4.0.1",
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
"utf-8-validate": ">=5.0.2"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"bufferutil": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"utf-8-validate": {
|
|
||||||
"optional": true
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"node_modules/zod": {
|
||||||
|
"version": "3.25.76",
|
||||||
|
"resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
|
||||||
|
"integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/colinhacks"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-2
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@skyware/bot": "^0.3.7",
|
"@atproto/identity": "^0.4.12",
|
||||||
"dotenv": "^16.4.5"
|
"@skyware/bot": "^0.4.1",
|
||||||
|
"dotenv": "^17.4.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user