noot
Some checks failed
commit-tag / commit-tag-image (map[context:./migrations file:./migrations/Dockerfile name:migrations]) (push) Successful in 17s
commit-tag / commit-tag-image (map[context:./ts file:./ts/Dockerfile name:ts]) (push) Has been cancelled

This commit is contained in:
a 2025-03-02 19:03:01 -06:00
parent 33e131364a
commit 07ea1704c2
No known key found for this signature in database
GPG Key ID: 2F22877AA4DFDADB
7 changed files with 383 additions and 6 deletions

Binary file not shown.

View File

@ -25,12 +25,14 @@
"arktype": "2.1.1", "arktype": "2.1.1",
"axios": "^1.7.9", "axios": "^1.7.9",
"axios-cache-interceptor": "^1.6.2", "axios-cache-interceptor": "^1.6.2",
"bentocache": "^1.2.1",
"chrono-node": "^2.7.8", "chrono-node": "^2.7.8",
"clipanion": "^4.0.0-rc.4", "clipanion": "^4.0.0-rc.4",
"cloudevents": "^8.0.2", "cloudevents": "^8.0.2",
"discordeno": "^21.0.0", "discordeno": "^21.0.0",
"dotenv": "^16.4.7", "dotenv": "^16.4.7",
"hash-wasm": "^4.12.0", "hash-wasm": "^4.12.0",
"ioredis": "^5.5.0",
"json-stable-stringify": "^1.2.1", "json-stable-stringify": "^1.2.1",
"object-hash": "^3.0.0", "object-hash": "^3.0.0",
"postgres": "^3.4.5", "postgres": "^3.4.5",

File diff suppressed because one or more lines are too long

View File

@ -18,6 +18,7 @@ const schemaConfig = {
PG_SSLMODE: z.string().optional(), PG_SSLMODE: z.string().optional(),
WAPI_URL: z.string().default("https://api.wynncraft.com/"), WAPI_URL: z.string().default("https://api.wynncraft.com/"),
REDIS_URL: z.string().optional(),
}; };

View File

@ -1,21 +1,66 @@
import { config } from "#/config"; import { config } from "#/config";
import { injectable } from "@needle-di/core"; import { inject, injectable } from "@needle-di/core";
import axios, { AxiosInstance } from "axios"; import axios, { AxiosInstance } from "axios";
import { setupCache } from 'axios-cache-interceptor'; import { buildStorage, canStale, setupCache } from 'axios-cache-interceptor';
import { BentoCache } from "bentocache";
import "#/services/bento";
@injectable() @injectable()
export class WApi { export class WApi {
c: AxiosInstance c: AxiosInstance
constructor() { constructor(
private readonly bento = inject(BentoCache)
) {
const c = axios.create({ const c = axios.create({
baseURL: config.WAPI_URL, baseURL: config.WAPI_URL,
headers: { headers: {
"User-Agent": "lil-robot-guy (a@tuxpa.in)", "User-Agent": "lil-robot-guy (a@tuxpa.in)",
}, },
}) })
setupCache(c); const store = this.bento.namespace('wapi-cache')
setupCache(c, {
storage: buildStorage({
async find(key, currentRequest) {
const value = await store.get({key})
if(!value) {
return;
}
return JSON.parse(value)
},
async remove(key, req) {
await store.delete({key})
},
async set(key, value, req) {
let ttl = value.state === 'loading'
? Date.now() +
(req?.cache && typeof req.cache.ttl === 'number'
? req.cache.ttl
:
5000)
: // When a stale state has a determined value to expire, we can use it.
// Or if the cached value cannot enter in stale state.
(value.state === 'stale' && value.ttl) ||
(value.state === 'cached' && !canStale(value))
?
value.createdAt + value.ttl!
: // otherwise, we can't determine when it should expire, so we keep
// it indefinitely.
undefined
await store.set({
key,
value: JSON.stringify(value),
ttl: ttl,
})
},
async clear() {
await store.clear({})
},
})
});
this.c = c; this.c = c;
} }

View File

@ -0,0 +1,36 @@
import { config } from '#/config'
import { c } from '#/di'
import { BentoCache, bentostore } from 'bentocache'
import { memoryDriver } from 'bentocache/drivers/memory'
import { redisDriver } from 'bentocache/drivers/redis'
c.bind({
provide: BentoCache,
useFactory: () => {
const defaultStore = bentostore()
defaultStore.useL1Layer(memoryDriver({ maxSize: '32mb' }))
if(config.REDIS_URL) {
defaultStore.useL2Layer(redisDriver({
connection: config.REDIS_URL,
prefix: 'wynn-bento',
}))
}
const bento = new BentoCache({
default: 'memory',
stores: {
memory: bentostore()
.useL1Layer(memoryDriver({ maxSize: '32mb' })),
multitier: bentostore()
.useL1Layer(memoryDriver({ maxSize: '10mb' }))
.useL2Layer(redisDriver({
connection: { host: '127.0.0.1', port: 6379 }
}))
}
})
return bento
}
})

View File

@ -21,6 +21,22 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@boringnode/bus@npm:^0.7.1":
version: 0.7.1
resolution: "@boringnode/bus@npm:0.7.1"
dependencies:
"@paralleldrive/cuid2": "npm:^2.2.2"
"@poppinss/utils": "npm:^6.9.2"
object-hash: "npm:^3.0.0"
peerDependencies:
ioredis: ^5.0.0
peerDependenciesMeta:
ioredis:
optional: true
checksum: 10c0/0502bc0d3b00b8595a383237fbade0b37ecb293abe55f89f31f565f6e246e9aca723ca974ed20a7f7b4b0d41d00e993539078eb3c96be10fe527cdb84c971646
languageName: node
linkType: hard
"@discordeno/bot@npm:21.0.0": "@discordeno/bot@npm:21.0.0":
version: 21.0.0 version: 21.0.0
resolution: "@discordeno/bot@npm:21.0.0" resolution: "@discordeno/bot@npm:21.0.0"
@ -98,6 +114,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@ioredis/commands@npm:^1.1.1":
version: 1.2.0
resolution: "@ioredis/commands@npm:1.2.0"
checksum: 10c0/a5d3c29dd84d8a28b7c67a441ac1715cbd7337a7b88649c0f17c345d89aa218578d2b360760017c48149ef8a70f44b051af9ac0921a0622c2b479614c4f65b36
languageName: node
linkType: hard
"@isaacs/cliui@npm:^8.0.2": "@isaacs/cliui@npm:^8.0.2":
version: 8.0.2 version: 8.0.2
resolution: "@isaacs/cliui@npm:8.0.2" resolution: "@isaacs/cliui@npm:8.0.2"
@ -212,6 +235,23 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@julr/utils@npm:^1.8.0":
version: 1.8.0
resolution: "@julr/utils@npm:1.8.0"
dependencies:
"@lukeed/ms": "npm:^2.0.2"
bytes: "npm:^3.1.2"
checksum: 10c0/638bfa0b72edf3572d565b7e1f69aa4e78e56d11297525b18a101324c2dd3630154b17049e610a244112ce22d1fcc3537f1613b69bbc0ed7893ef8f3efddfa39
languageName: node
linkType: hard
"@lukeed/ms@npm:^2.0.2":
version: 2.0.2
resolution: "@lukeed/ms@npm:2.0.2"
checksum: 10c0/843b922717313bcde4943f478145d8bc13115b9b91d83bbaed53739b5644122984412310aed574792f4e6b492f2cbda178175f601856d310f67e14834c3f17a0
languageName: node
linkType: hard
"@needle-di/core@npm:^0.10.1": "@needle-di/core@npm:^0.10.1":
version: 0.10.1 version: 0.10.1
resolution: "@needle-di/core@npm:0.10.1" resolution: "@needle-di/core@npm:0.10.1"
@ -219,6 +259,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@noble/hashes@npm:^1.1.5":
version: 1.7.1
resolution: "@noble/hashes@npm:1.7.1"
checksum: 10c0/2f8ec0338ccc92b576a0f5c16ab9c017a3a494062f1fbb569ae641c5e7eab32072f9081acaa96b5048c0898f972916c818ea63cbedda707886a4b5ffcfbf94e3
languageName: node
linkType: hard
"@nodelib/fs.scandir@npm:2.1.5": "@nodelib/fs.scandir@npm:2.1.5":
version: 2.1.5 version: 2.1.5
resolution: "@nodelib/fs.scandir@npm:2.1.5" resolution: "@nodelib/fs.scandir@npm:2.1.5"
@ -295,6 +342,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@paralleldrive/cuid2@npm:^2.2.2":
version: 2.2.2
resolution: "@paralleldrive/cuid2@npm:2.2.2"
dependencies:
"@noble/hashes": "npm:^1.1.5"
checksum: 10c0/af5826df93de437121308f4f4ce0b2eeb89b60bb57a1a6592fb89c0d40d311ad1d9f3f6a4db2cce6f2bcf572de1aa3f85704254e89b18ce61c41ebb06564c4ee
languageName: node
linkType: hard
"@pkgjs/parseargs@npm:^0.11.0": "@pkgjs/parseargs@npm:^0.11.0":
version: 0.11.0 version: 0.11.0
resolution: "@pkgjs/parseargs@npm:0.11.0" resolution: "@pkgjs/parseargs@npm:0.11.0"
@ -302,6 +358,50 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@poppinss/exception@npm:^1.2.0":
version: 1.2.0
resolution: "@poppinss/exception@npm:1.2.0"
checksum: 10c0/47e0aabcf2167543c6c974abc462da6848e9f2a36d582c0fb78e1fc0ea4becf9a246d85497ee3420454c175900274b84a66fed98d6caabf4e544effbd58e09f5
languageName: node
linkType: hard
"@poppinss/object-builder@npm:^1.1.0":
version: 1.1.0
resolution: "@poppinss/object-builder@npm:1.1.0"
checksum: 10c0/1f7d7a86d3db588442479ca7a59e75d0fd49af12986801eb3e52d89c834fe1515bc44f222afbffd8c438df2131ebb3b007cc5cc72aa97b0ed0e1ca85cb7cff61
languageName: node
linkType: hard
"@poppinss/string@npm:^1.1.0":
version: 1.2.0
resolution: "@poppinss/string@npm:1.2.0"
dependencies:
"@lukeed/ms": "npm:^2.0.2"
"@types/bytes": "npm:^3.1.5"
"@types/pluralize": "npm:^0.0.33"
bytes: "npm:^3.1.2"
case-anything: "npm:^3.1.0"
pluralize: "npm:^8.0.0"
slugify: "npm:^1.6.6"
truncatise: "npm:^0.0.8"
checksum: 10c0/2703c716e09b559074850e42b9e781999a0e95f8c4cabe5446abe34df0917bb2f4b49efc1f46558213823052c5a5aa64f782ce5dadcc9ebf2d5ca6584ba1f3e0
languageName: node
linkType: hard
"@poppinss/utils@npm:^6.9.2":
version: 6.9.2
resolution: "@poppinss/utils@npm:6.9.2"
dependencies:
"@poppinss/exception": "npm:^1.2.0"
"@poppinss/object-builder": "npm:^1.1.0"
"@poppinss/string": "npm:^1.1.0"
flattie: "npm:^1.1.1"
safe-stable-stringify: "npm:^2.5.0"
secure-json-parse: "npm:^3.0.1"
checksum: 10c0/d90e3dad3f72255417d34dd13005905cca55782314bb2f02ff5c18d537f120107765696ead1471c47f20c63a6b443c0203d22a4f24d5f3d8842bb2b2fbb0c309
languageName: node
linkType: hard
"@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": "@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2":
version: 1.1.2 version: 1.1.2
resolution: "@protobufjs/aspromise@npm:1.1.2" resolution: "@protobufjs/aspromise@npm:1.1.2"
@ -770,6 +870,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/bytes@npm:^3.1.5":
version: 3.1.5
resolution: "@types/bytes@npm:3.1.5"
checksum: 10c0/5bed1b55a27d0c9c5160567d6df8f73830a95ffabbba735791c8888f83c5dcc9fc901f0b441ca50b07579c9c9ee4ef2b27a2259597182cee831b99b198846cc4
languageName: node
linkType: hard
"@types/eslint-scope@npm:^3.7.7": "@types/eslint-scope@npm:^3.7.7":
version: 3.7.7 version: 3.7.7
resolution: "@types/eslint-scope@npm:3.7.7" resolution: "@types/eslint-scope@npm:3.7.7"
@ -820,6 +927,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/pluralize@npm:^0.0.33":
version: 0.0.33
resolution: "@types/pluralize@npm:0.0.33"
checksum: 10c0/24899caf85b79dd291a6b6e9b9f3b67b452b18d578d0ac0d531a705bf5ee0361d9386ea1f8532c64de9e22c6e9606c5497787bb5e31bd299c487980436c59785
languageName: node
linkType: hard
"@types/yargs-parser@npm:*": "@types/yargs-parser@npm:*":
version: 21.0.3 version: 21.0.3
resolution: "@types/yargs-parser@npm:21.0.3" resolution: "@types/yargs-parser@npm:21.0.3"
@ -1150,6 +1264,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"async-mutex@npm:^0.5.0":
version: 0.5.0
resolution: "async-mutex@npm:0.5.0"
dependencies:
tslib: "npm:^2.4.0"
checksum: 10c0/9096e6ad6b674c894d8ddd5aa4c512b09bb05931b8746ebd634952b05685608b2b0820ed5c406e6569919ff5fe237ab3c491e6f2887d6da6b6ba906db3ee9c32
languageName: node
linkType: hard
"asynckit@npm:^0.4.0": "asynckit@npm:^0.4.0":
version: 0.4.0 version: 0.4.0
resolution: "asynckit@npm:0.4.0" resolution: "asynckit@npm:0.4.0"
@ -1209,12 +1332,14 @@ __metadata:
axios: "npm:^1.7.9" axios: "npm:^1.7.9"
axios-cache-interceptor: "npm:^1.6.2" axios-cache-interceptor: "npm:^1.6.2"
barrelsby: "npm:^2.8.1" barrelsby: "npm:^2.8.1"
bentocache: "npm:^1.2.1"
chrono-node: "npm:^2.7.8" chrono-node: "npm:^2.7.8"
clipanion: "npm:^4.0.0-rc.4" clipanion: "npm:^4.0.0-rc.4"
cloudevents: "npm:^8.0.2" cloudevents: "npm:^8.0.2"
discordeno: "npm:^21.0.0" discordeno: "npm:^21.0.0"
dotenv: "npm:^16.4.7" dotenv: "npm:^16.4.7"
hash-wasm: "npm:^4.12.0" hash-wasm: "npm:^4.12.0"
ioredis: "npm:^5.5.0"
json-stable-stringify: "npm:^1.2.1" json-stable-stringify: "npm:^1.2.1"
knip: "npm:^5.45.0" knip: "npm:^5.45.0"
object-hash: "npm:^3.0.0" object-hash: "npm:^3.0.0"
@ -1249,6 +1374,37 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"bentocache@npm:^1.2.1":
version: 1.2.1
resolution: "bentocache@npm:1.2.1"
dependencies:
"@boringnode/bus": "npm:^0.7.1"
"@julr/utils": "npm:^1.8.0"
"@poppinss/exception": "npm:^1.2.0"
async-mutex: "npm:^0.5.0"
lru-cache: "npm:^11.0.2"
p-timeout: "npm:^6.1.4"
peerDependencies:
"@aws-sdk/client-dynamodb": ^3.438.0
ioredis: ^5.3.2
knex: ^3.0.1
kysely: ^0.27.3
orchid-orm: ^1.24.0
peerDependenciesMeta:
"@aws-sdk/client-dynamodb":
optional: true
ioredis:
optional: true
knex:
optional: true
kysely:
optional: true
orchid-orm:
optional: true
checksum: 10c0/d5956ffc5f4f265e674fc874427be2139177030aee46e698f3df0019f1bb03bc149e9790ef8638ce886d72715e74ef2eaec0d1fb12f9d68735865a33cde8c83e
languageName: node
linkType: hard
"bignumber.js@npm:^9.0.0": "bignumber.js@npm:^9.0.0":
version: 9.1.2 version: 9.1.2
resolution: "bignumber.js@npm:9.1.2" resolution: "bignumber.js@npm:9.1.2"
@ -1295,6 +1451,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"bytes@npm:^3.1.2":
version: 3.1.2
resolution: "bytes@npm:3.1.2"
checksum: 10c0/76d1c43cbd602794ad8ad2ae94095cddeb1de78c5dddaa7005c51af10b0176c69971a6d88e805a90c2b6550d76636e43c40d8427a808b8645ede885de4a0358e
languageName: node
linkType: hard
"cacache@npm:^19.0.1": "cacache@npm:^19.0.1":
version: 19.0.1 version: 19.0.1
resolution: "cacache@npm:19.0.1" resolution: "cacache@npm:19.0.1"
@ -1370,6 +1533,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"case-anything@npm:^3.1.0":
version: 3.1.2
resolution: "case-anything@npm:3.1.2"
checksum: 10c0/9ec1c6a1371795dca8715f66ff83df5dfb9e498dc78b1919a12fc4ac0538156fab4a667690ba7e55a150a385e4e511b3e9bc3bbf5eabb022d716139cc83a9f5b
languageName: node
linkType: hard
"chalk@npm:^2.3.2": "chalk@npm:^2.3.2":
version: 2.4.2 version: 2.4.2
resolution: "chalk@npm:2.4.2" resolution: "chalk@npm:2.4.2"
@ -1454,6 +1624,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"cluster-key-slot@npm:^1.1.0":
version: 1.1.2
resolution: "cluster-key-slot@npm:1.1.2"
checksum: 10c0/d7d39ca28a8786e9e801eeb8c770e3c3236a566625d7299a47bb71113fb2298ce1039596acb82590e598c52dbc9b1f088c8f587803e697cb58e1867a95ff94d3
languageName: node
linkType: hard
"color-convert@npm:^1.9.0": "color-convert@npm:^1.9.0":
version: 1.9.3 version: 1.9.3
resolution: "color-convert@npm:1.9.3" resolution: "color-convert@npm:1.9.3"
@ -1573,6 +1750,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"denque@npm:^2.1.0":
version: 2.1.0
resolution: "denque@npm:2.1.0"
checksum: 10c0/f9ef81aa0af9c6c614a727cb3bd13c5d7db2af1abf9e6352045b86e85873e629690f6222f4edd49d10e4ccf8f078bbeec0794fafaf61b659c0589d0c511ec363
languageName: node
linkType: hard
"discordeno@npm:^21.0.0": "discordeno@npm:^21.0.0":
version: 21.0.0 version: 21.0.0
resolution: "discordeno@npm:21.0.0" resolution: "discordeno@npm:21.0.0"
@ -1867,6 +2051,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"flattie@npm:^1.1.1":
version: 1.1.1
resolution: "flattie@npm:1.1.1"
checksum: 10c0/a8f8242c7af126cb2f1aa4a067af338fce609fc4c4df183c626fcc70a46c1878ce4aa88cd0dc8ef8f583ad4e7088a3b11ebeb6a62c9c97d75c0b1b0f08182ee3
languageName: node
linkType: hard
"follow-redirects@npm:^1.15.6": "follow-redirects@npm:^1.15.6":
version: 1.15.9 version: 1.15.9
resolution: "follow-redirects@npm:1.15.9" resolution: "follow-redirects@npm:1.15.9"
@ -2171,6 +2362,23 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"ioredis@npm:^5.5.0":
version: 5.5.0
resolution: "ioredis@npm:5.5.0"
dependencies:
"@ioredis/commands": "npm:^1.1.1"
cluster-key-slot: "npm:^1.1.0"
debug: "npm:^4.3.4"
denque: "npm:^2.1.0"
lodash.defaults: "npm:^4.2.0"
lodash.isarguments: "npm:^3.1.0"
redis-errors: "npm:^1.2.0"
redis-parser: "npm:^3.0.0"
standard-as-callback: "npm:^2.1.0"
checksum: 10c0/ba64502fc92d9e05465793fafcd0568cb668af6e2350462b61daadfd499e3a48239d9a723d3ce08b08c93f3f745d05dda91136cdc597d4d485604e6730305305
languageName: node
linkType: hard
"ip-address@npm:^9.0.5": "ip-address@npm:^9.0.5":
version: 9.0.5 version: 9.0.5
resolution: "ip-address@npm:9.0.5" resolution: "ip-address@npm:9.0.5"
@ -2456,6 +2664,20 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"lodash.defaults@npm:^4.2.0":
version: 4.2.0
resolution: "lodash.defaults@npm:4.2.0"
checksum: 10c0/d5b77aeb702caa69b17be1358faece33a84497bcca814897383c58b28a2f8dfc381b1d9edbec239f8b425126a3bbe4916223da2a576bb0411c2cefd67df80707
languageName: node
linkType: hard
"lodash.isarguments@npm:^3.1.0":
version: 3.1.0
resolution: "lodash.isarguments@npm:3.1.0"
checksum: 10c0/5e8f95ba10975900a3920fb039a3f89a5a79359a1b5565e4e5b4310ed6ebe64011e31d402e34f577eca983a1fc01ff86c926e3cbe602e1ddfc858fdd353e62d8
languageName: node
linkType: hard
"long@npm:^5.0.0, long@npm:^5.2.3": "long@npm:^5.0.0, long@npm:^5.2.3":
version: 5.3.1 version: 5.3.1
resolution: "long@npm:5.3.1" resolution: "long@npm:5.3.1"
@ -2470,6 +2692,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"lru-cache@npm:^11.0.2":
version: 11.0.2
resolution: "lru-cache@npm:11.0.2"
checksum: 10c0/c993b8e06ead0b24b969c1dbb5b301716aed66e320e9014a80012f5febe280b438f28ff50046b2c55ff404e889351ccb332ff91f8dd175a21f5eae80e3fb155f
languageName: node
linkType: hard
"make-fetch-happen@npm:^14.0.3": "make-fetch-happen@npm:^14.0.3":
version: 14.0.3 version: 14.0.3
resolution: "make-fetch-happen@npm:14.0.3" resolution: "make-fetch-happen@npm:14.0.3"
@ -2771,6 +3000,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"p-timeout@npm:^6.1.4":
version: 6.1.4
resolution: "p-timeout@npm:6.1.4"
checksum: 10c0/019edad1c649ab07552aa456e40ce7575c4b8ae863191477f02ac8d283ac8c66cedef0ca93422735130477a051dfe952ba717641673fd3599befdd13f63bcc33
languageName: node
linkType: hard
"p-try@npm:^1.0.0": "p-try@npm:^1.0.0":
version: 1.0.0 version: 1.0.0
resolution: "p-try@npm:1.0.0" resolution: "p-try@npm:1.0.0"
@ -2864,6 +3100,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"pluralize@npm:^8.0.0":
version: 8.0.0
resolution: "pluralize@npm:8.0.0"
checksum: 10c0/2044cfc34b2e8c88b73379ea4a36fc577db04f651c2909041b054c981cd863dd5373ebd030123ab058d194ae615d3a97cfdac653991e499d10caf592e8b3dc33
languageName: node
linkType: hard
"possible-typed-array-names@npm:^1.0.0": "possible-typed-array-names@npm:^1.0.0":
version: 1.1.0 version: 1.1.0
resolution: "possible-typed-array-names@npm:1.1.0" resolution: "possible-typed-array-names@npm:1.1.0"
@ -2963,6 +3206,22 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"redis-errors@npm:^1.0.0, redis-errors@npm:^1.2.0":
version: 1.2.0
resolution: "redis-errors@npm:1.2.0"
checksum: 10c0/5b316736e9f532d91a35bff631335137a4f974927bb2fb42bf8c2f18879173a211787db8ac4c3fde8f75ed6233eb0888e55d52510b5620e30d69d7d719c8b8a7
languageName: node
linkType: hard
"redis-parser@npm:^3.0.0":
version: 3.0.0
resolution: "redis-parser@npm:3.0.0"
dependencies:
redis-errors: "npm:^1.0.0"
checksum: 10c0/ee16ac4c7b2a60b1f42a2cdaee22b005bd4453eb2d0588b8a4939718997ae269da717434da5d570fe0b05030466eeb3f902a58cf2e8e1ca058bf6c9c596f632f
languageName: node
linkType: hard
"require-directory@npm:^2.1.1": "require-directory@npm:^2.1.1":
version: 2.1.1 version: 2.1.1
resolution: "require-directory@npm:2.1.1" resolution: "require-directory@npm:2.1.1"
@ -3110,6 +3369,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"safe-stable-stringify@npm:^2.5.0":
version: 2.5.0
resolution: "safe-stable-stringify@npm:2.5.0"
checksum: 10c0/baea14971858cadd65df23894a40588ed791769db21bafb7fd7608397dbdce9c5aac60748abae9995e0fc37e15f2061980501e012cd48859740796bea2987f49
languageName: node
linkType: hard
"safer-buffer@npm:>= 2.1.2 < 3.0.0": "safer-buffer@npm:>= 2.1.2 < 3.0.0":
version: 2.1.2 version: 2.1.2
resolution: "safer-buffer@npm:2.1.2" resolution: "safer-buffer@npm:2.1.2"
@ -3129,6 +3395,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"secure-json-parse@npm:^3.0.1":
version: 3.0.2
resolution: "secure-json-parse@npm:3.0.2"
checksum: 10c0/4c9c005e7fdd8528df35fcdec41dc4e8e15820ce52de19f8102da808f9400a9ed8c0a28971e3efe24b001ee1e60296af553f12bbaab81a152f702dd00af2092d
languageName: node
linkType: hard
"semver@npm:^7.3.5": "semver@npm:^7.3.5":
version: 7.7.1 version: 7.7.1
resolution: "semver@npm:7.7.1" resolution: "semver@npm:7.7.1"
@ -3195,6 +3468,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"slugify@npm:^1.6.6":
version: 1.6.6
resolution: "slugify@npm:1.6.6"
checksum: 10c0/e7e63f08f389a371d6228bc19d64ec84360bf0a538333446cc49dbbf3971751a6d180d2f31551188dd007a65ca771e69f574e0283290a7825a818e90b75ef44d
languageName: node
linkType: hard
"smart-buffer@npm:^4.2.0": "smart-buffer@npm:^4.2.0":
version: 4.2.0 version: 4.2.0
resolution: "smart-buffer@npm:4.2.0" resolution: "smart-buffer@npm:4.2.0"
@ -3289,6 +3569,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"standard-as-callback@npm:^2.1.0":
version: 2.1.0
resolution: "standard-as-callback@npm:2.1.0"
checksum: 10c0/012677236e3d3fdc5689d29e64ea8a599331c4babe86956bf92fc5e127d53f85411c5536ee0079c52c43beb0026b5ce7aa1d834dd35dd026e82a15d1bcaead1f
languageName: node
linkType: hard
"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3":
version: 4.2.3 version: 4.2.3
resolution: "string-width@npm:4.2.3" resolution: "string-width@npm:4.2.3"
@ -3464,6 +3751,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"truncatise@npm:^0.0.8":
version: 0.0.8
resolution: "truncatise@npm:0.0.8"
checksum: 10c0/4b77f9d99c5eaded0778175e4f12c835dfdd0789b3277dfc5ff406928b423115b112ea9eb390f670b9d75547655b73c7f99ea1ea38bcf165e8d4926a2da18c48
languageName: node
linkType: hard
"ts-markdown-builder@npm:^0.4.0": "ts-markdown-builder@npm:^0.4.0":
version: 0.4.1 version: 0.4.1
resolution: "ts-markdown-builder@npm:0.4.1" resolution: "ts-markdown-builder@npm:0.4.1"
@ -3471,7 +3765,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"tslib@npm:^2.0.0, tslib@npm:^2.1.0": "tslib@npm:^2.0.0, tslib@npm:^2.1.0, tslib@npm:^2.4.0":
version: 2.8.1 version: 2.8.1
resolution: "tslib@npm:2.8.1" resolution: "tslib@npm:2.8.1"
checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62