Pronouns labels on Bluesky

switch to @skyware/labeler

+886 -18
package-lock.json
···
"dependencies": {
"@atproto/api": "^0.13.0",
"@skyware/firehose": "^0.3.1",
+
"@skyware/labeler": "^0.1.0",
"dotenv": "^16.4.5"
},
"devDependencies": {
···
"typescript": "^5.5.3"
}
},
+
"node_modules/@atcute/base32": {
+
"version": "1.0.0",
+
"resolved": "https://registry.npmjs.org/@atcute/base32/-/base32-1.0.0.tgz",
+
"integrity": "sha512-Mbjsv6kd/ymvDMGjCoh9eqhlpFsoJ6zYguU6xtKxqh1wGhe5rvBOfMRXsEqcp7srn8Bfp8QhevqLgmwrWvzqrA=="
+
},
+
"node_modules/@atcute/cbor": {
+
"version": "1.0.0",
+
"resolved": "https://registry.npmjs.org/@atcute/cbor/-/cbor-1.0.0.tgz",
+
"integrity": "sha512-aHbURHim6cem7ZRLYg+Q9CkbGAPAV9P2pms7V/p5OkpP/dAb7RgoFwf49vg1454xrCtfFOhCtheUnmxLROdG3Q==",
+
"dependencies": {
+
"@atcute/base32": "^1.0.0",
+
"@atcute/cid": "^1.0.0",
+
"fp16": "^0.3.0"
+
}
+
},
+
"node_modules/@atcute/cid": {
+
"version": "1.0.0",
+
"resolved": "https://registry.npmjs.org/@atcute/cid/-/cid-1.0.0.tgz",
+
"integrity": "sha512-JnWv3sg48zDBP318ErPYPI482Vw1Nm7e7WG+VYGSLRLp56b9LgcIh28p28gEmPtmsnM9hTAkKvJdi+CAkNDQUA==",
+
"dependencies": {
+
"@atcute/base32": "^1.0.0",
+
"@atcute/varint": "^1.0.0"
+
}
+
},
+
"node_modules/@atcute/varint": {
+
"version": "1.0.0",
+
"resolved": "https://registry.npmjs.org/@atcute/varint/-/varint-1.0.0.tgz",
+
"integrity": "sha512-NEBOGkdaDY8cjlDg49kefIsRM7iv/4oReEnOr3bN4tF3IxBGdc6Io1NCJz1xNBNdUL+3VDG3CKHiRji91HXaTg=="
+
},
"node_modules/@atproto/api": {
-
"version": "0.13.0",
-
"resolved": "https://registry.npmjs.org/@atproto/api/-/api-0.13.0.tgz",
-
"integrity": "sha512-04kzIDkoEVSP7zMVOT5ezCVQcOrbXWjGYO2YBc3/tBvQ90V1pl9I+mLyz1uUHE+wRE1IRWKACcWhAz8SrYz3pA==",
+
"version": "0.13.5",
+
"resolved": "https://registry.npmjs.org/@atproto/api/-/api-0.13.5.tgz",
+
"integrity": "sha512-yT/YimcKYkrI0d282Zxo7O30OSYR+KDW89f81C6oYZfDRBcShC1aniVV8kluP5LrEAg8O27yrOSnBgx2v7XPew==",
"dependencies": {
"@atproto/common-web": "^0.3.0",
"@atproto/lexicon": "^0.4.1",
"@atproto/syntax": "^0.3.0",
-
"@atproto/xrpc": "^0.6.0",
+
"@atproto/xrpc": "^0.6.1",
"await-lock": "^2.2.2",
"multiformats": "^9.9.0",
"tlds": "^1.234.0"
···
"integrity": "sha512-Weq0ZBxffGHDXHl9U7BQc2BFJi/e23AL+k+i5+D9hUq/bzT4yjGsrCejkjq0xt82xXDjmhhvQSZ0LqxyZ5woxA=="
},
"node_modules/@atproto/xrpc": {
-
"version": "0.6.0",
-
"resolved": "https://registry.npmjs.org/@atproto/xrpc/-/xrpc-0.6.0.tgz",
-
"integrity": "sha512-5BbhBTv5j6MC3iIQ4+vYxQE7nLy2dDGQ+LYJrH8PptOCUdq0Pwg6aRccQ3y52kUZlhE/mzOTZ8Ngiy9pSAyfVQ==",
+
"version": "0.6.1",
+
"resolved": "https://registry.npmjs.org/@atproto/xrpc/-/xrpc-0.6.1.tgz",
+
"integrity": "sha512-Zy5ydXEdk6sY7FDUZcEVfCL1jvbL4tXu5CcdPqbEaW6LQtk9GLds/DK1bCX9kswTGaBC88EMuqQMfkxOhp2t4A==",
"dependencies": {
"@atproto/lexicon": "^0.4.1",
"zod": "^3.23.8"
···
"win32"
]
},
+
"node_modules/@fastify/ajv-compiler": {
+
"version": "3.6.0",
+
"resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-3.6.0.tgz",
+
"integrity": "sha512-LwdXQJjmMD+GwLOkP7TVC68qa+pSSogeWWmznRJ/coyTcfe9qA05AHFSe1eZFwK6q+xVRpChnvFUkf1iYaSZsQ==",
+
"dependencies": {
+
"ajv": "^8.11.0",
+
"ajv-formats": "^2.1.1",
+
"fast-uri": "^2.0.0"
+
}
+
},
+
"node_modules/@fastify/error": {
+
"version": "3.4.1",
+
"resolved": "https://registry.npmjs.org/@fastify/error/-/error-3.4.1.tgz",
+
"integrity": "sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ=="
+
},
+
"node_modules/@fastify/fast-json-stringify-compiler": {
+
"version": "4.3.0",
+
"resolved": "https://registry.npmjs.org/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.3.0.tgz",
+
"integrity": "sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==",
+
"dependencies": {
+
"fast-json-stringify": "^5.7.0"
+
}
+
},
+
"node_modules/@fastify/merge-json-schemas": {
+
"version": "0.1.1",
+
"resolved": "https://registry.npmjs.org/@fastify/merge-json-schemas/-/merge-json-schemas-0.1.1.tgz",
+
"integrity": "sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==",
+
"dependencies": {
+
"fast-deep-equal": "^3.1.3"
+
}
+
},
+
"node_modules/@fastify/websocket": {
+
"version": "10.0.1",
+
"resolved": "https://registry.npmjs.org/@fastify/websocket/-/websocket-10.0.1.tgz",
+
"integrity": "sha512-8/pQIxTPRD8U94aILTeJ+2O3el/r19+Ej5z1O1mXlqplsUH7KzCjAI0sgd5DM/NoPjAi5qLFNIjgM5+9/rGSNw==",
+
"dependencies": {
+
"duplexify": "^4.1.2",
+
"fastify-plugin": "^4.0.0",
+
"ws": "^8.0.0"
+
}
+
},
"node_modules/@ipld/car": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/@ipld/car/-/car-3.2.4.tgz",
···
"ws": "^8.16.0"
}
},
+
"node_modules/@skyware/labeler": {
+
"version": "0.1.0",
+
"resolved": "https://registry.npmjs.org/@skyware/labeler/-/labeler-0.1.0.tgz",
+
"integrity": "sha512-041NYu2l6rYpt5mZ9CjtnQmk8pcCJnaxKUTGPiKGewx3fkZJ5aLBaKNmszrNbMOeVgBdr4uYxFW9g7fHm1cbag==",
+
"dependencies": {
+
"@atcute/cbor": "^1.0.0",
+
"@atproto/api": "^0.13.1",
+
"@atproto/crypto": "^0.4.0",
+
"@atproto/identity": "^0.4.0",
+
"@atproto/xrpc-server": "^0.6.2",
+
"@fastify/websocket": "^10.0.1",
+
"better-sqlite3": "^11.1.2",
+
"fastify": "^4.28.1",
+
"prompts": "^2.4.2",
+
"uint8arrays": "^5.1.0"
+
},
+
"bin": {
+
"labeler": "dist/bin.js"
+
}
+
},
+
"node_modules/@skyware/labeler/node_modules/@atproto/common": {
+
"version": "0.4.1",
+
"resolved": "https://registry.npmjs.org/@atproto/common/-/common-0.4.1.tgz",
+
"integrity": "sha512-uL7kQIcBTbvkBDNfxMXL6lBH4fO2DQpHd2BryJxMtbw/4iEPKe9xBYApwECHhEIk9+zhhpTRZ15FJ3gxTXN82Q==",
+
"dependencies": {
+
"@atproto/common-web": "^0.3.0",
+
"@ipld/dag-cbor": "^7.0.3",
+
"cbor-x": "^1.5.1",
+
"iso-datestring-validator": "^2.2.2",
+
"multiformats": "^9.9.0",
+
"pino": "^8.21.0"
+
}
+
},
+
"node_modules/@skyware/labeler/node_modules/@atproto/crypto": {
+
"version": "0.4.1",
+
"resolved": "https://registry.npmjs.org/@atproto/crypto/-/crypto-0.4.1.tgz",
+
"integrity": "sha512-7pQNHWYyx8jGhYdPbmcuPD9W73nd/5v3mfBlncO0sBzxnPbmA6aXAWOz+fNVZwHwBJPeb/Gzf/FT/uDx7/eYFg==",
+
"dependencies": {
+
"@noble/curves": "^1.1.0",
+
"@noble/hashes": "^1.3.1",
+
"uint8arrays": "3.0.0"
+
}
+
},
+
"node_modules/@skyware/labeler/node_modules/@atproto/crypto/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==",
+
"dependencies": {
+
"multiformats": "^9.4.2"
+
}
+
},
+
"node_modules/@skyware/labeler/node_modules/@atproto/identity": {
+
"version": "0.4.1",
+
"resolved": "https://registry.npmjs.org/@atproto/identity/-/identity-0.4.1.tgz",
+
"integrity": "sha512-5AoPJDSD0rAay/6Sib+n/FjfwGulM/+xCNxwwDLR9QI4EoeUlvIH8g5BNdix812v312/Qd42kJrLpCNTZ5rvew==",
+
"dependencies": {
+
"@atproto/common-web": "^0.3.0",
+
"@atproto/crypto": "^0.4.1",
+
"axios": "^0.27.2"
+
}
+
},
+
"node_modules/@skyware/labeler/node_modules/@atproto/xrpc-server": {
+
"version": "0.6.3",
+
"resolved": "https://registry.npmjs.org/@atproto/xrpc-server/-/xrpc-server-0.6.3.tgz",
+
"integrity": "sha512-0YXeBM9NjiIlR5eXWo8qzArRcBOKhwVimpH+ajKgZzlncPO53brVZ9+3BUnD5J1PG8mEQFRERi+Jt77QyF89qA==",
+
"dependencies": {
+
"@atproto/common": "^0.4.1",
+
"@atproto/crypto": "^0.4.1",
+
"@atproto/lexicon": "^0.4.1",
+
"@atproto/xrpc": "^0.6.1",
+
"cbor-x": "^1.5.1",
+
"express": "^4.17.2",
+
"http-errors": "^2.0.0",
+
"mime-types": "^2.1.35",
+
"rate-limiter-flexible": "^2.4.1",
+
"uint8arrays": "3.0.0",
+
"ws": "^8.12.0",
+
"zod": "^3.23.8"
+
}
+
},
+
"node_modules/@skyware/labeler/node_modules/@atproto/xrpc-server/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==",
+
"dependencies": {
+
"multiformats": "^9.4.2"
+
}
+
},
+
"node_modules/@skyware/labeler/node_modules/uint8arrays": {
+
"version": "5.1.0",
+
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz",
+
"integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==",
+
"dependencies": {
+
"multiformats": "^13.0.0"
+
}
+
},
+
"node_modules/@skyware/labeler/node_modules/uint8arrays/node_modules/multiformats": {
+
"version": "13.2.2",
+
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.2.2.tgz",
+
"integrity": "sha512-RWI+nyf0q64vyOxL8LbKtjJMki0sogRL/8axvklNtiTM0iFCVtHwME9w6+0P1/v4dQvsIg8A45oT3ka1t/M/+A=="
+
},
"node_modules/@types/node": {
-
"version": "20.14.15",
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.15.tgz",
-
"integrity": "sha512-Fz1xDMCF/B00/tYSVMlmK7hVeLh7jE5f3B7X1/hmV0MJBwE27KlS7EvD/Yp+z1lm8mVhwV5w+n8jOZG8AfTlKw==",
+
"version": "20.16.2",
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.2.tgz",
+
"integrity": "sha512-91s/n4qUPV/wg8eE9KHYW1kouTfDk2FPGjXbBMfRWP/2vg1rCXNQL1OCabwGs0XSdukuK+MwCDXE30QpSeMUhQ==",
"dev": true,
"dependencies": {
-
"undici-types": "~5.26.4"
+
"undici-types": "~6.19.2"
}
},
"node_modules/abort-controller": {
···
"node": ">=6.5"
}
},
+
"node_modules/abstract-logging": {
+
"version": "2.0.1",
+
"resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz",
+
"integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA=="
+
},
"node_modules/accepts": {
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
···
"node": ">= 0.6"
}
},
+
"node_modules/ajv": {
+
"version": "8.17.1",
+
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+
"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+
"dependencies": {
+
"fast-deep-equal": "^3.1.3",
+
"fast-uri": "^3.0.1",
+
"json-schema-traverse": "^1.0.0",
+
"require-from-string": "^2.0.2"
+
},
+
"funding": {
+
"type": "github",
+
"url": "https://github.com/sponsors/epoberezkin"
+
}
+
},
+
"node_modules/ajv-formats": {
+
"version": "2.1.1",
+
"resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
+
"integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+
"dependencies": {
+
"ajv": "^8.0.0"
+
},
+
"peerDependencies": {
+
"ajv": "^8.0.0"
+
},
+
"peerDependenciesMeta": {
+
"ajv": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/ajv/node_modules/fast-uri": {
+
"version": "3.0.1",
+
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz",
+
"integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw=="
+
},
"node_modules/array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
···
"node": ">=8.0.0"
}
},
+
"node_modules/avvio": {
+
"version": "8.4.0",
+
"resolved": "https://registry.npmjs.org/avvio/-/avvio-8.4.0.tgz",
+
"integrity": "sha512-CDSwaxINFy59iNwhYnkvALBwZiTydGkOecZyPkqBpABYR1KqGEsET0VOOYDwtleZSUIdeY36DC2bSZ24CO1igA==",
+
"dependencies": {
+
"@fastify/error": "^3.3.0",
+
"fastq": "^1.17.1"
+
}
+
},
"node_modules/await-lock": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/await-lock/-/await-lock-2.2.2.tgz",
···
}
]
},
+
"node_modules/better-sqlite3": {
+
"version": "11.2.1",
+
"resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-11.2.1.tgz",
+
"integrity": "sha512-Xbt1d68wQnUuFIEVsbt6V+RG30zwgbtCGQ4QOcXVrOH0FE4eHk64FWZ9NUfRHS4/x1PXqwz/+KOrnXD7f0WieA==",
+
"hasInstallScript": true,
+
"dependencies": {
+
"bindings": "^1.5.0",
+
"prebuild-install": "^7.1.1"
+
}
+
},
+
"node_modules/bindings": {
+
"version": "1.5.0",
+
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+
"dependencies": {
+
"file-uri-to-path": "1.0.0"
+
}
+
},
+
"node_modules/bl": {
+
"version": "4.1.0",
+
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+
"dependencies": {
+
"buffer": "^5.5.0",
+
"inherits": "^2.0.4",
+
"readable-stream": "^3.4.0"
+
}
+
},
+
"node_modules/bl/node_modules/buffer": {
+
"version": "5.7.1",
+
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+
"funding": [
+
{
+
"type": "github",
+
"url": "https://github.com/sponsors/feross"
+
},
+
{
+
"type": "patreon",
+
"url": "https://www.patreon.com/feross"
+
},
+
{
+
"type": "consulting",
+
"url": "https://feross.org/support"
+
}
+
],
+
"dependencies": {
+
"base64-js": "^1.3.1",
+
"ieee754": "^1.1.13"
+
}
+
},
+
"node_modules/bl/node_modules/readable-stream": {
+
"version": "3.6.2",
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+
"dependencies": {
+
"inherits": "^2.0.3",
+
"string_decoder": "^1.1.1",
+
"util-deprecate": "^1.0.1"
+
},
+
"engines": {
+
"node": ">= 6"
+
}
+
},
"node_modules/body-parser": {
"version": "1.20.2",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
···
"cborg": "cli.js"
}
},
+
"node_modules/chownr": {
+
"version": "1.1.4",
+
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
+
},
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
···
"ms": "2.0.0"
}
},
+
"node_modules/decompress-response": {
+
"version": "6.0.0",
+
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+
"dependencies": {
+
"mimic-response": "^3.1.0"
+
},
+
"engines": {
+
"node": ">=10"
+
},
+
"funding": {
+
"url": "https://github.com/sponsors/sindresorhus"
+
}
+
},
+
"node_modules/deep-extend": {
+
"version": "0.6.0",
+
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+
"engines": {
+
"node": ">=4.0.0"
+
}
+
},
"node_modules/define-data-property": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
···
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
"integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
-
"optional": true,
"engines": {
"node": ">=8"
}
···
"url": "https://dotenvx.com"
}
},
+
"node_modules/duplexify": {
+
"version": "4.1.3",
+
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz",
+
"integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==",
+
"dependencies": {
+
"end-of-stream": "^1.4.1",
+
"inherits": "^2.0.3",
+
"readable-stream": "^3.1.1",
+
"stream-shift": "^1.0.2"
+
}
+
},
+
"node_modules/duplexify/node_modules/readable-stream": {
+
"version": "3.6.2",
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+
"dependencies": {
+
"inherits": "^2.0.3",
+
"string_decoder": "^1.1.1",
+
"util-deprecate": "^1.0.1"
+
},
+
"engines": {
+
"node": ">= 6"
+
}
+
},
"node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
···
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
"engines": {
"node": ">= 0.8"
+
}
+
},
+
"node_modules/end-of-stream": {
+
"version": "1.4.4",
+
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+
"dependencies": {
+
"once": "^1.4.0"
}
},
"node_modules/es-define-property": {
···
"node": ">=0.8.x"
}
},
+
"node_modules/expand-template": {
+
"version": "2.0.3",
+
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+
"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
+
"engines": {
+
"node": ">=6"
+
}
+
},
"node_modules/express": {
"version": "4.19.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
···
"node": ">= 0.10.0"
}
},
+
"node_modules/fast-content-type-parse": {
+
"version": "1.1.0",
+
"resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-1.1.0.tgz",
+
"integrity": "sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ=="
+
},
+
"node_modules/fast-decode-uri-component": {
+
"version": "1.0.1",
+
"resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz",
+
"integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg=="
+
},
+
"node_modules/fast-deep-equal": {
+
"version": "3.1.3",
+
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+
},
+
"node_modules/fast-json-stringify": {
+
"version": "5.16.1",
+
"resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-5.16.1.tgz",
+
"integrity": "sha512-KAdnLvy1yu/XrRtP+LJnxbBGrhN+xXu+gt3EUvZhYGKCr3lFHq/7UFJHHFgmJKoqlh6B40bZLEv7w46B0mqn1g==",
+
"dependencies": {
+
"@fastify/merge-json-schemas": "^0.1.0",
+
"ajv": "^8.10.0",
+
"ajv-formats": "^3.0.1",
+
"fast-deep-equal": "^3.1.3",
+
"fast-uri": "^2.1.0",
+
"json-schema-ref-resolver": "^1.0.1",
+
"rfdc": "^1.2.0"
+
}
+
},
+
"node_modules/fast-json-stringify/node_modules/ajv-formats": {
+
"version": "3.0.1",
+
"resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz",
+
"integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==",
+
"dependencies": {
+
"ajv": "^8.0.0"
+
},
+
"peerDependencies": {
+
"ajv": "^8.0.0"
+
},
+
"peerDependenciesMeta": {
+
"ajv": {
+
"optional": true
+
}
+
}
+
},
+
"node_modules/fast-querystring": {
+
"version": "1.1.2",
+
"resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz",
+
"integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==",
+
"dependencies": {
+
"fast-decode-uri-component": "^1.0.1"
+
}
+
},
"node_modules/fast-redact": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz",
···
"node": ">=6"
}
},
+
"node_modules/fast-uri": {
+
"version": "2.4.0",
+
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-2.4.0.tgz",
+
"integrity": "sha512-ypuAmmMKInk5q7XcepxlnUWDLWv4GFtaJqAzWKqn62IpQ3pejtr5dTVbt3vwqVaMKmkNR55sTT+CqUKIaT21BA=="
+
},
+
"node_modules/fastify": {
+
"version": "4.28.1",
+
"resolved": "https://registry.npmjs.org/fastify/-/fastify-4.28.1.tgz",
+
"integrity": "sha512-kFWUtpNr4i7t5vY2EJPCN2KgMVpuqfU4NjnJNCgiNB900oiDeYqaNDRcAfeBbOF5hGixixxcKnOU4KN9z6QncQ==",
+
"funding": [
+
{
+
"type": "github",
+
"url": "https://github.com/sponsors/fastify"
+
},
+
{
+
"type": "opencollective",
+
"url": "https://opencollective.com/fastify"
+
}
+
],
+
"dependencies": {
+
"@fastify/ajv-compiler": "^3.5.0",
+
"@fastify/error": "^3.4.0",
+
"@fastify/fast-json-stringify-compiler": "^4.3.0",
+
"abstract-logging": "^2.0.1",
+
"avvio": "^8.3.0",
+
"fast-content-type-parse": "^1.1.0",
+
"fast-json-stringify": "^5.8.0",
+
"find-my-way": "^8.0.0",
+
"light-my-request": "^5.11.0",
+
"pino": "^9.0.0",
+
"process-warning": "^3.0.0",
+
"proxy-addr": "^2.0.7",
+
"rfdc": "^1.3.0",
+
"secure-json-parse": "^2.7.0",
+
"semver": "^7.5.4",
+
"toad-cache": "^3.3.0"
+
}
+
},
+
"node_modules/fastify-plugin": {
+
"version": "4.5.1",
+
"resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-4.5.1.tgz",
+
"integrity": "sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ=="
+
},
+
"node_modules/fastify/node_modules/pino": {
+
"version": "9.3.2",
+
"resolved": "https://registry.npmjs.org/pino/-/pino-9.3.2.tgz",
+
"integrity": "sha512-WtARBjgZ7LNEkrGWxMBN/jvlFiE17LTbBoH0konmBU684Kd0uIiDwBXlcTCW7iJnA6HfIKwUssS/2AC6cDEanw==",
+
"dependencies": {
+
"atomic-sleep": "^1.0.0",
+
"fast-redact": "^3.1.1",
+
"on-exit-leak-free": "^2.1.0",
+
"pino-abstract-transport": "^1.2.0",
+
"pino-std-serializers": "^7.0.0",
+
"process-warning": "^4.0.0",
+
"quick-format-unescaped": "^4.0.3",
+
"real-require": "^0.2.0",
+
"safe-stable-stringify": "^2.3.1",
+
"sonic-boom": "^4.0.1",
+
"thread-stream": "^3.0.0"
+
},
+
"bin": {
+
"pino": "bin.js"
+
}
+
},
+
"node_modules/fastify/node_modules/pino-std-serializers": {
+
"version": "7.0.0",
+
"resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz",
+
"integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA=="
+
},
+
"node_modules/fastify/node_modules/pino/node_modules/process-warning": {
+
"version": "4.0.0",
+
"resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz",
+
"integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw=="
+
},
+
"node_modules/fastify/node_modules/sonic-boom": {
+
"version": "4.0.1",
+
"resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.0.1.tgz",
+
"integrity": "sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==",
+
"dependencies": {
+
"atomic-sleep": "^1.0.0"
+
}
+
},
+
"node_modules/fastify/node_modules/thread-stream": {
+
"version": "3.1.0",
+
"resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz",
+
"integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==",
+
"dependencies": {
+
"real-require": "^0.2.0"
+
}
+
},
+
"node_modules/fastq": {
+
"version": "1.17.1",
+
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+
"integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+
"dependencies": {
+
"reusify": "^1.0.4"
+
}
+
},
+
"node_modules/file-uri-to-path": {
+
"version": "1.0.0",
+
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
+
},
"node_modules/finalhandler": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
···
"node": ">= 0.8"
}
},
+
"node_modules/find-my-way": {
+
"version": "8.2.0",
+
"resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-8.2.0.tgz",
+
"integrity": "sha512-HdWXgFYc6b1BJcOBDBwjqWuHJj1WYiqrxSh25qtU4DabpMFdj/gSunNBQb83t+8Zt67D7CXEzJWTkxaShMTMOA==",
+
"dependencies": {
+
"fast-deep-equal": "^3.1.3",
+
"fast-querystring": "^1.0.0",
+
"safe-regex2": "^3.1.0"
+
},
+
"engines": {
+
"node": ">=14"
+
}
+
},
"node_modules/follow-redirects": {
"version": "1.15.6",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
···
"node": ">= 0.6"
}
},
+
"node_modules/fp16": {
+
"version": "0.3.0",
+
"resolved": "https://registry.npmjs.org/fp16/-/fp16-0.3.0.tgz",
+
"integrity": "sha512-Iw6hLaH345EETQGU56NiAcJ173IraDRdJrVy+0fBMPdkZhzKNN/k3eqXFyNmnyx2/jnIzF2nr0mHh5nHrQBMEQ=="
+
},
"node_modules/fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
···
"engines": {
"node": ">= 0.6"
}
+
},
+
"node_modules/fs-constants": {
+
"version": "1.0.0",
+
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
},
"node_modules/function-bind": {
"version": "1.1.2",
···
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
+
},
+
"node_modules/github-from-package": {
+
"version": "0.0.0",
+
"resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+
"integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="
},
"node_modules/gopd": {
"version": "1.0.1",
···
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+
},
+
"node_modules/ini": {
+
"version": "1.3.8",
+
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
},
"node_modules/ipaddr.js": {
"version": "1.9.1",
···
"resolved": "https://registry.npmjs.org/iso-datestring-validator/-/iso-datestring-validator-2.2.2.tgz",
"integrity": "sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA=="
},
+
"node_modules/json-schema-ref-resolver": {
+
"version": "1.0.1",
+
"resolved": "https://registry.npmjs.org/json-schema-ref-resolver/-/json-schema-ref-resolver-1.0.1.tgz",
+
"integrity": "sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==",
+
"dependencies": {
+
"fast-deep-equal": "^3.1.3"
+
}
+
},
+
"node_modules/json-schema-traverse": {
+
"version": "1.0.0",
+
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+
},
+
"node_modules/kleur": {
+
"version": "3.0.3",
+
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
+
"integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
+
"engines": {
+
"node": ">=6"
+
}
+
},
+
"node_modules/light-my-request": {
+
"version": "5.13.0",
+
"resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.13.0.tgz",
+
"integrity": "sha512-9IjUN9ZyCS9pTG+KqTDEQo68Sui2lHsYBrfMyVUTTZ3XhH8PMZq7xO94Kr+eP9dhi/kcKsx4N41p2IXEBil1pQ==",
+
"dependencies": {
+
"cookie": "^0.6.0",
+
"process-warning": "^3.0.0",
+
"set-cookie-parser": "^2.4.1"
+
}
+
},
"node_modules/media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
···
"node": ">= 0.6"
},
+
"node_modules/mimic-response": {
+
"version": "3.1.0",
+
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
+
"engines": {
+
"node": ">=10"
+
},
+
"funding": {
+
"url": "https://github.com/sponsors/sindresorhus"
+
}
+
},
+
"node_modules/minimist": {
+
"version": "1.2.8",
+
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+
"funding": {
+
"url": "https://github.com/sponsors/ljharb"
+
}
+
},
+
"node_modules/mkdirp-classic": {
+
"version": "0.5.3",
+
"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
+
},
"node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
···
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz",
"integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="
},
+
"node_modules/napi-build-utils": {
+
"version": "1.0.2",
+
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
+
"integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
+
},
"node_modules/negotiator": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
"engines": {
"node": ">= 0.6"
+
}
+
},
+
"node_modules/node-abi": {
+
"version": "3.67.0",
+
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.67.0.tgz",
+
"integrity": "sha512-bLn/fU/ALVBE9wj+p4Y21ZJWYFjUXLXPi/IewyLZkx3ApxKDNBWCKdReeKOtD8dWpOdDCeMyLh6ZewzcLsG2Nw==",
+
"dependencies": {
+
"semver": "^7.3.5"
+
},
+
"engines": {
+
"node": ">=10"
},
"node_modules/node-gyp-build-optional-packages": {
···
"node": ">= 0.8"
},
+
"node_modules/once": {
+
"version": "1.4.0",
+
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+
"dependencies": {
+
"wrappy": "1"
+
}
+
},
"node_modules/parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
···
"resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz",
"integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA=="
},
+
"node_modules/prebuild-install": {
+
"version": "7.1.2",
+
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz",
+
"integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==",
+
"dependencies": {
+
"detect-libc": "^2.0.0",
+
"expand-template": "^2.0.3",
+
"github-from-package": "0.0.0",
+
"minimist": "^1.2.3",
+
"mkdirp-classic": "^0.5.3",
+
"napi-build-utils": "^1.0.1",
+
"node-abi": "^3.3.0",
+
"pump": "^3.0.0",
+
"rc": "^1.2.7",
+
"simple-get": "^4.0.0",
+
"tar-fs": "^2.0.0",
+
"tunnel-agent": "^0.6.0"
+
},
+
"bin": {
+
"prebuild-install": "bin.js"
+
},
+
"engines": {
+
"node": ">=10"
+
}
+
},
"node_modules/process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
···
"resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz",
"integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ=="
},
+
"node_modules/prompts": {
+
"version": "2.4.2",
+
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
+
"integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
+
"dependencies": {
+
"kleur": "^3.0.3",
+
"sisteransi": "^1.0.5"
+
},
+
"engines": {
+
"node": ">= 6"
+
}
+
},
"node_modules/proxy-addr": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
···
},
"engines": {
"node": ">= 0.10"
+
}
+
},
+
"node_modules/pump": {
+
"version": "3.0.0",
+
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+
"dependencies": {
+
"end-of-stream": "^1.1.0",
+
"once": "^1.3.1"
},
"node_modules/qs": {
···
"node": ">= 0.8"
},
+
"node_modules/rc": {
+
"version": "1.2.8",
+
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+
"dependencies": {
+
"deep-extend": "^0.6.0",
+
"ini": "~1.3.0",
+
"minimist": "^1.2.0",
+
"strip-json-comments": "~2.0.1"
+
},
+
"bin": {
+
"rc": "cli.js"
+
}
+
},
"node_modules/readable-stream": {
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz",
···
"node": ">= 12.13.0"
},
+
"node_modules/require-from-string": {
+
"version": "2.0.2",
+
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+
"engines": {
+
"node": ">=0.10.0"
+
}
+
},
+
"node_modules/ret": {
+
"version": "0.4.3",
+
"resolved": "https://registry.npmjs.org/ret/-/ret-0.4.3.tgz",
+
"integrity": "sha512-0f4Memo5QP7WQyUEAYUO3esD/XjOc3Zjjg5CPsAq1p8sIu0XPeMbHJemKA0BO7tV0X7+A0FoEpbmHXWxPyD3wQ==",
+
"engines": {
+
"node": ">=10"
+
}
+
},
+
"node_modules/reusify": {
+
"version": "1.0.4",
+
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+
"engines": {
+
"iojs": ">=1.0.0",
+
"node": ">=0.10.0"
+
}
+
},
+
"node_modules/rfdc": {
+
"version": "1.4.1",
+
"resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
+
"integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA=="
+
},
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
···
},
+
"node_modules/safe-regex2": {
+
"version": "3.1.0",
+
"resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-3.1.0.tgz",
+
"integrity": "sha512-RAAZAGbap2kBfbVhvmnTFv73NWLMvDGOITFYTZBAaY8eR+Ir4ef7Up/e7amo+y1+AH+3PtLkrt9mvcTsG9LXug==",
+
"dependencies": {
+
"ret": "~0.4.0"
+
}
+
},
"node_modules/safe-stable-stringify": {
-
"version": "2.4.3",
-
"resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz",
-
"integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==",
+
"version": "2.5.0",
+
"resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz",
+
"integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==",
"engines": {
"node": ">=10"
···
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
+
"node_modules/secure-json-parse": {
+
"version": "2.7.0",
+
"resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz",
+
"integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw=="
+
},
+
"node_modules/semver": {
+
"version": "7.6.3",
+
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+
"integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+
"bin": {
+
"semver": "bin/semver.js"
+
},
+
"engines": {
+
"node": ">=10"
+
}
+
},
"node_modules/send": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
···
"node": ">= 0.8.0"
},
+
"node_modules/set-cookie-parser": {
+
"version": "2.7.0",
+
"resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.0.tgz",
+
"integrity": "sha512-lXLOiqpkUumhRdFF3k1osNXCy9akgx/dyPZ5p8qAg9seJzXr5ZrlqZuWIMuY6ejOsVLE6flJ5/h3lsn57fQ/PQ=="
+
},
"node_modules/set-function-length": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
···
"url": "https://github.com/sponsors/ljharb"
},
+
"node_modules/simple-concat": {
+
"version": "1.0.1",
+
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
+
"funding": [
+
{
+
"type": "github",
+
"url": "https://github.com/sponsors/feross"
+
},
+
{
+
"type": "patreon",
+
"url": "https://www.patreon.com/feross"
+
},
+
{
+
"type": "consulting",
+
"url": "https://feross.org/support"
+
}
+
]
+
},
+
"node_modules/simple-get": {
+
"version": "4.0.1",
+
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
+
"integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
+
"funding": [
+
{
+
"type": "github",
+
"url": "https://github.com/sponsors/feross"
+
},
+
{
+
"type": "patreon",
+
"url": "https://www.patreon.com/feross"
+
},
+
{
+
"type": "consulting",
+
"url": "https://feross.org/support"
+
}
+
],
+
"dependencies": {
+
"decompress-response": "^6.0.0",
+
"once": "^1.3.1",
+
"simple-concat": "^1.0.0"
+
}
+
},
+
"node_modules/sisteransi": {
+
"version": "1.0.5",
+
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
+
"integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="
+
},
"node_modules/sonic-boom": {
"version": "3.8.1",
"resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz",
···
"node": ">= 0.8"
},
+
"node_modules/stream-shift": {
+
"version": "1.0.3",
+
"resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz",
+
"integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ=="
+
},
"node_modules/string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
···
"safe-buffer": "~5.2.0"
},
+
"node_modules/strip-json-comments": {
+
"version": "2.0.1",
+
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+
"integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
+
"engines": {
+
"node": ">=0.10.0"
+
}
+
},
+
"node_modules/tar-fs": {
+
"version": "2.1.1",
+
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+
"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+
"dependencies": {
+
"chownr": "^1.1.1",
+
"mkdirp-classic": "^0.5.2",
+
"pump": "^3.0.0",
+
"tar-stream": "^2.1.4"
+
}
+
},
+
"node_modules/tar-stream": {
+
"version": "2.2.0",
+
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+
"dependencies": {
+
"bl": "^4.0.3",
+
"end-of-stream": "^1.4.1",
+
"fs-constants": "^1.0.0",
+
"inherits": "^2.0.3",
+
"readable-stream": "^3.1.1"
+
},
+
"engines": {
+
"node": ">=6"
+
}
+
},
+
"node_modules/tar-stream/node_modules/readable-stream": {
+
"version": "3.6.2",
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+
"dependencies": {
+
"inherits": "^2.0.3",
+
"string_decoder": "^1.1.1",
+
"util-deprecate": "^1.0.1"
+
},
+
"engines": {
+
"node": ">= 6"
+
}
+
},
"node_modules/thread-stream": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz",
···
"tlds": "bin.js"
},
+
"node_modules/toad-cache": {
+
"version": "3.7.0",
+
"resolved": "https://registry.npmjs.org/toad-cache/-/toad-cache-3.7.0.tgz",
+
"integrity": "sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==",
+
"engines": {
+
"node": ">=12"
+
}
+
},
"node_modules/toidentifier": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
"engines": {
"node": ">=0.6"
+
}
+
},
+
"node_modules/tunnel-agent": {
+
"version": "0.6.0",
+
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+
"integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+
"dependencies": {
+
"safe-buffer": "^5.0.1"
+
},
+
"engines": {
+
"node": "*"
},
"node_modules/type-is": {
···
},
"node_modules/undici-types": {
-
"version": "5.26.5",
-
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
-
"integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+
"version": "6.19.8",
+
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
+
"integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
"dev": true
},
"node_modules/unpipe": {
···
"node": ">= 0.8"
},
+
"node_modules/util-deprecate": {
+
"version": "1.0.2",
+
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+
},
"node_modules/utils-merge": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
···
"engines": {
"node": ">= 0.8"
+
},
+
"node_modules/wrappy": {
+
"version": "1.0.2",
+
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
"node_modules/ws": {
"version": "8.18.0",
+1
package.json
···
"dependencies": {
"@atproto/api": "^0.13.0",
"@skyware/firehose": "^0.3.1",
+
"@skyware/labeler": "^0.1.0",
"dotenv": "^16.4.5"
}
}
+1
src/constants.ts
···
};
export const DID = process.env.DID ?? "";
+
export const SIGNING_KEY = process.env.SIGNING_KEY ?? "";
+7 -7
src/label.ts
···
uri: string,
) => {
const did = AppBskyActorDefs.isProfileView(subject) ? subject.did : subject;
-
const repo = await agent
+
const labels = await agent
.withProxy("atproto_labeler", DID)
-
.tools.ozone.moderation.getRepo({ did: did })
+
.com.atproto.label.queryLabels({ sources: [DID], uriPatterns: [did] })
.catch((err) => {
console.log(err);
});
-
if (!repo) return;
+
if (!labels) return;
const post = URIs[uri];
-
if (repo.data.labels && (post ?? "").includes("Like this post to delete")) {
+
if ((post ?? "").includes("Like this post to delete")) {
await agent
.withProxy("atproto_labeler", DID)
.tools.ozone.moderation.emitEvent({
event: {
$type: "tools.ozone.moderation.defs#modEventLabel",
createLabelVals: [],
-
negateLabelVals: repo.data.labels.map((label) => label.val),
+
negateLabelVals: labels.data.labels.map((label) => label.val),
},
subject: {
$type: "com.atproto.admin.defs#repoRef",
···
return;
}
-
if (repo.data.labels && repo.data.labels.length >= 4) return;
+
if (labels.data.labels.length >= 4) return;
if (PRONOUNS[post]) {
await agent
.withProxy("atproto_labeler", DID)
-
.api.tools.ozone.moderation.emitEvent({
+
.tools.ozone.moderation.emitEvent({
event: {
$type: "tools.ozone.moderation.defs#modEventLabel",
createLabelVals: [PRONOUNS[post]],
+12 -1
src/main.ts
···
import { Firehose } from "@skyware/firehose";
import { getAgent } from "./agent.js";
import { label } from "./label.js";
-
import { DID } from "./constants.js";
+
import { DID, SIGNING_KEY } from "./constants.js";
import fs from "node:fs";
+
import { LabelerServer } from "@skyware/labeler";
+
+
const server = new LabelerServer({ did: DID, signingKey: SIGNING_KEY });
+
+
server.start(4001, (error, address) => {
+
if (error) {
+
console.error(error);
+
} else {
+
console.log(`Labeler server listening on ${address}`);
+
}
+
});
const subscribe = async () => {
const agent = await getAgent();