Compare commits

..

No commits in common. "c09a27e99b01bef774b4521f458f4a8ca6c9664f" and "101394e22ddb597d26d0e63d16422f42f34261e2" have entirely different histories.

14 changed files with 2610 additions and 1330 deletions

14
.gitignore vendored
View File

@ -1,8 +1,10 @@
/target
/dist
**/*.rs.bk **/*.rs.bk
Cargo.lock
bin/
pkg/
wasm-pack.log
worker/
node_modules/ node_modules/
.cargo-ok
wasm/pkg/
wasm/target
wasm/Cargo.lock
wasm/wasm-pack.log
wasm/.cargo-ok

6
.prettierrc Normal file
View File

@ -0,0 +1,6 @@
{
"trailingComma": "es5",
"tabWidth": 4,
"semi": false,
"singleQuote": true
}

32
.vscode/tasks.json vendored Normal file
View File

@ -0,0 +1,32 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "wrangler build",
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "dev",
"type": "shell",
"command": "wrangler dev",
"problemMatcher": [],
"group": {
"kind": "test",
"isDefault": true
}
},
{
"label": "publish",
"type": "shell",
"command": "wrangler publish"
}
]
}

View File

@ -21,4 +21,6 @@ wasm-bindgen = "0.2"
wasm-bindgen-test = "0.3" wasm-bindgen-test = "0.3"
[profile.release] [profile.release]
# Tell `rustc` to optimize for small code size.
opt-level = "s"
lto = true lto = true

10
dist/worker.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -19,7 +19,7 @@
</head> </head>
<body> <body>
<h1>dzserver</h1> <h1>dzserver</h1>
<h2><a href="https://git.uhwot.cf/uhwot/dzserver">source code</a></h2> <h2><a href="https://git.freezerapp.xyz/uhwot/dzserver">source code</a></h2>
<br> <br>
<p>how 2 use:</p> <p>how 2 use:</p>

View File

@ -1,8 +1,5 @@
import html from './index.html'
import { Cipher, legacy_stream_url } from './wasm/pkg'
import { Router } from 'itty-router' import { Router } from 'itty-router'
import ID3Writer from 'browser-id3-writer' const ID3Writer = require('browser-id3-writer');
const router = Router() const router = Router()
@ -10,7 +7,7 @@ const client_id = "447462"
const client_secret = "a83bf7f38ad2f137e444727cfc3775cf" const client_secret = "a83bf7f38ad2f137e444727cfc3775cf"
const formats = { const formats = {
aac_96: { num: '8', gw: 'AAC_96', mime: 'audio/3gpp', ext: '3gp' }, aac_96: { num: '8', gw: 'AAC_96', mime: 'audio/aac', ext: '3gp' },
64: { num: '10', gw: 'MP3_64', mime: 'audio/mpeg', ext: 'mp3' }, 64: { num: '10', gw: 'MP3_64', mime: 'audio/mpeg', ext: 'mp3' },
128: { num: '1', gw: 'MP3_128', mime: 'audio/mpeg', ext: 'mp3' }, 128: { num: '1', gw: 'MP3_128', mime: 'audio/mpeg', ext: 'mp3' },
320: { num: '3', gw: 'MP3_320', mime: 'audio/mpeg', ext: 'mp3' }, 320: { num: '3', gw: 'MP3_320', mime: 'audio/mpeg', ext: 'mp3' },
@ -39,10 +36,7 @@ async function gw_api_call(method, params) {
cookies += `; sid=${sid}` cookies += `; sid=${sid}`
} }
const headers = new Headers({ const headers = new Headers({ 'cookie': cookies })
'cookie': cookies,
'accept': '*/*',
})
const init = { const init = {
method: 'POST', method: 'POST',
@ -61,7 +55,8 @@ async function gw_api_call(method, params) {
checkForm = json.results.checkForm checkForm = json.results.checkForm
await KV.put('checkForm', checkForm) await KV.put('checkForm', checkForm)
sid = json.results.SESSION_ID sid = response.headers.get('set-cookie').split(',').map(v => v.trimStart())[0]
sid = sid.match(/^sid=(fr[\da-f]+)/)[1]
await KV.put('sid', sid) await KV.put('sid', sid)
} }
@ -77,7 +72,7 @@ router.get('/:type/:id', async request => {
} }
id = parseInt(id) id = parseInt(id)
if (isNaN(id) || (type !== 'track' && id < 0)) { if (id === NaN || (type !== 'track' && id < 0)) {
return new Response("Invalid ID", { status: 400, headers: { 'content-type': 'text/plain' } }) return new Response("Invalid ID", { status: 400, headers: { 'content-type': 'text/plain' } })
} }
@ -194,19 +189,18 @@ async function track(id, format, tagging, range_header) {
return new Response('Format unavailable', { status: 403, headers: { 'content-type': 'text/plain' } }) return new Response('Format unavailable', { status: 403, headers: { 'content-type': 'text/plain' } })
} }
let range_req = false let range_start = null
let range_start = 0 let range_end = null
let range_end = NaN
if (range_header !== null) { if (range_header !== null) {
const range_match = range_header.match(/^bytes=(\d*)-(\d*)/) const range_match = range_header.match(/^bytes=(\d+)-(\d*)/)
if (range_match !== null) { if (range_match !== null) {
range_start = parseInt(range_match[1]) range_start = parseInt(range_match[1])
range_end = parseInt(range_match[2]) range_end = parseInt(range_match[2])
range_req = true
} }
} }
const wasm = await import('./pkg')
let track_url let track_url
let use_legacy_url = !['320', 'flac'].includes(format) let use_legacy_url = !['320', 'flac'].includes(format)
if (!use_legacy_url) { // server-side stream url if (!use_legacy_url) { // server-side stream url
@ -252,13 +246,13 @@ async function track(id, format, tagging, range_header) {
return new Response("Couldn't get stream URL", { status: 403, headers: { 'content-type': 'text/plain' } }) return new Response("Couldn't get stream URL", { status: 403, headers: { 'content-type': 'text/plain' } })
} }
} else { // legacy stream url } else { // legacy stream url
track_url = legacy_track_url(json, format) track_url = await legacy_track_url(json, format, wasm.legacy_stream_url)
} }
let title = json.SNG_TITLE let title = json.SNG_TITLE
if (json.VERSION) title += ` ${json.VERSION}` if (json.VERSION) title += ` ${json.VERSION}`
let init = { method: 'GET', headers: {} } let init = {}
let resp_init = { let resp_init = {
status: 200, status: 200,
headers: { headers: {
@ -268,10 +262,22 @@ async function track(id, format, tagging, range_header) {
} }
} }
// filesize from the API isn't always the actual filesize,
// so we get it with a HEAD request instead
// example: https://www.deezer.com/track/7703895
let track_size
let track_head = await fetch(track_url, {method: 'HEAD'})
if (track_head.status !== 200) {
return new Response("Couldn't get track stream", { status: 403, headers: { 'content-type': 'text/plain' } })
} else {
track_size = parseInt(track_head.headers.get('content-length'))
}
let resp_size = track_size
let id3_buffer let id3_buffer
let id3_len = 0
if (tagging) { if (tagging) {
let id3 = new ID3Writer(new Uint8Array()); let id3 = new ID3Writer(Buffer.alloc(0));
id3.padding = 0 id3.padding = 0
id3.setFrame('TIT2', title) id3.setFrame('TIT2', title)
@ -320,100 +326,75 @@ async function track(id, format, tagging, range_header) {
id3.addTag(); id3.addTag();
id3_buffer = id3.arrayBuffer id3_buffer = id3.arrayBuffer
id3_len = id3_buffer.byteLength resp_size += id3_buffer.byteLength
} }
let skip_id3 = false let skip_id3 = false
let skip_stream = false let skip_stream = false
let trk_range_start = 0 let fixed_range_start = 0
let trk_range_end = NaN let fixed_range_end = track_size
let bytes_remove_start = 0 let bytes_remove_start = 0
let bytes_remove_end = 0 let bytes_remove_end = 0
if (range_req) { if (range_start !== null) {
if (isNaN(range_start)) { if (isNaN(range_end)) {
range_start = 0 range_end = resp_size
} } else {
if (!isNaN(range_end)) {
range_end++ range_end++
} }
if (range_start < 0 || range_end < range_start) { if (range_start < 0 || range_start > resp_size || range_end < range_start || range_end > resp_size) {
return new Response('Invalid range', { status: 416, headers: { 'content-type': 'text/plain' } }) return new Response('Range invalid', { status: 416, headers: { 'content-type': 'text/plain' } })
} }
trk_range_start = range_start let orig_range_start = range_start
trk_range_end = range_end let orig_range_end = range_end
if (tagging) { if (tagging) {
if (trk_range_start < id3_len) { let id3_len = id3_buffer.byteLength
if (range_start < id3_len) {
let bytes_remove_id3_end = undefined let bytes_remove_id3_end = undefined
if (trk_range_end < id3_len && !isNaN(trk_range_end)) { if (range_end < id3_len) {
bytes_remove_id3_end = id3_len - (id3_len - trk_range_end) bytes_remove_id3_end = id3_len - (id3_len - range_end)
skip_stream = true skip_stream = true
} else { } else {
trk_range_end -= id3_len range_end -= id3_len
range_start = 0
} }
id3_buffer = id3_buffer.slice(trk_range_start, bytes_remove_id3_end) id3_buffer = id3_buffer.slice(range_start, bytes_remove_id3_end)
trk_range_start = 0
} else { } else {
skip_id3 = true skip_id3 = true
trk_range_start -= id3_len range_start -= id3_len
trk_range_end -= id3_len range_end -= id3_len
} }
} }
if (!skip_stream) { if (!skip_stream) {
bytes_remove_start = trk_range_start % 2048 bytes_remove_start = range_start % 2048
bytes_remove_end = 2048 - trk_range_end % 2048 bytes_remove_end = 2048 - range_end % 2048
trk_range_start -= bytes_remove_start fixed_range_start = range_start - bytes_remove_start
trk_range_end += bytes_remove_end fixed_range_end = range_end + bytes_remove_end
if (fixed_range_end >= track_size) {
let tmp_trk_range_end = trk_range_end fixed_range_end = track_size
if (isNaN(tmp_trk_range_end)) { bytes_remove_end = 0
tmp_trk_range_end = ''
} else {
tmp_trk_range_end--
} }
init.headers.range = `bytes=${trk_range_start}-${tmp_trk_range_end}` init = { headers: new Headers({ range: `bytes=${fixed_range_start}-${fixed_range_end - 1}` }) }
} else {
init.method = 'HEAD'
}
}
let track
track = await fetch(track_url, init)
if (![200, 206].includes(track.status)) {
if (track.status === 416) {
return new Response('Invalid range', { status: 416, headers: { 'content-type': 'text/plain' } })
}
return new Response("Couldn't get track stream", { status: 403, headers: { 'content-type': 'text/plain' } })
}
let track_size
if (!range_req || skip_stream) {
track_size = parseInt(track.headers.get('content-length'))
} else {
const range_header_match = track.headers.get('content-range').match(/^bytes (\d+)-(\d+)\/(\d+)/)
track_size = parseInt(range_header_match[3])
}
if (isNaN(range_end)) {
range_end = track_size + id3_len
trk_range_end = track_size
}
let resp_size = range_end - range_start
if (range_req) {
if (trk_range_end >= track_size) {
bytes_remove_end = 0
} }
resp_init.status = 206 resp_init.status = 206
resp_init.headers['content-range'] = `bytes ${range_start}-${range_end - 1}/${track_size + id3_len}` resp_init.headers['content-range'] = `bytes ${orig_range_start}-${orig_range_end - 1}/${resp_size}`
resp_size = orig_range_end - orig_range_start
}
let track
if (!skip_stream) {
track = await fetch(track_url, init)
if (![200, 206].includes(track.status)) {
return new Response("Couldn't get track stream", { status: 403, headers: { 'content-type': 'text/plain' } })
}
} }
let { readable, writable } = new FixedLengthStream(resp_size) let { readable, writable } = new FixedLengthStream(resp_size)
@ -429,9 +410,9 @@ async function track(id, format, tagging, range_header) {
id = json.FALLBACK.SNG_ID id = json.FALLBACK.SNG_ID
} }
const cipher = new Cipher(String(id)) const cipher = new wasm.Cipher(String(id))
pipeDecryptedStream(writer, track.body, trk_range_end, cipher, trk_range_start, bytes_remove_start, bytes_remove_end) pipeDecryptedStream(writer, track.body, fixed_range_end, cipher, fixed_range_start, bytes_remove_start, bytes_remove_end)
} else { } else {
writer.close() writer.close()
} }
@ -439,8 +420,9 @@ async function track(id, format, tagging, range_header) {
return new Response(readable, resp_init) return new Response(readable, resp_init)
} }
async function pipeDecryptedStream(writer, body, length, cipher, byte_count, bytes_remove_start, bytes_remove_end) { async function pipeDecryptedStream(writer, body, length, cipher, fixed_range_start, bytes_remove_start, bytes_remove_end) {
const reader = body.getReader({ mode: 'byob' }) const reader = body.getReader({ mode: 'byob' })
let byte_count = fixed_range_start
let end = false let end = false
while (!end) { while (!end) {
@ -465,11 +447,10 @@ async function pipeDecryptedStream(writer, body, length, cipher, byte_count, byt
byte_count += 2048 byte_count += 2048
} }
reader.cancel()
writer.close() writer.close()
} }
function legacy_track_url(json, format) { function legacy_track_url(json, format, url_func) {
// needed if track has fallback, like https://www.deezer.com/track/11835714 // needed if track has fallback, like https://www.deezer.com/track/11835714
if (json.FALLBACK) { if (json.FALLBACK) {
json = json.FALLBACK json = json.FALLBACK
@ -481,7 +462,7 @@ function legacy_track_url(json, format) {
format = formats[format].num format = formats[format].num
return legacy_stream_url(md5_origin, format, id, media_version) return url_func(md5_origin, format, id, media_version)
} }
async function m3u8(type, id, format, tagging, host) { async function m3u8(type, id, format, tagging, host) {
@ -498,7 +479,7 @@ async function m3u8(type, id, format, tagging, host) {
if (track.id < 0) { // user-uploaded track if (track.id < 0) { // user-uploaded track
format_tmp = 'misc' format_tmp = 'misc'
} }
const result = `https://${host}/track/${track.id}?f=${format_tmp}&t=${+ tagging}` let result = `https://${host}/track/${track.id}?f=${format_tmp}&t=${+ tagging}`
list += `#EXTINF:${track.duration},${track.title}\n${result}\n` list += `#EXTINF:${track.duration},${track.title}\n${result}\n`
} }
@ -506,7 +487,7 @@ async function m3u8(type, id, format, tagging, host) {
} }
router.get('/', () => { router.get('/', () => {
return new Response(html, { status: 200, headers: { 'content-type': 'text/html' } }) return new Response(require('./index.html'), { status: 200, headers: { 'content-type': 'text/html' } })
}) })
router.all("*", () => new Response("not found", { status: 404, headers: { 'content-type': 'text/plain' } })) router.all("*", () => new Response("not found", { status: 404, headers: { 'content-type': 'text/plain' } }))

View File

@ -4,18 +4,19 @@
"description": "worker for getting deezer track urls", "description": "worker for getting deezer track urls",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"dev": "wrangler dev", "test": "echo \"Error: no test specified\" && exit 1",
"dev_local": "wrangler dev --local", "format": "prettier --write '**/*.{js,css,json,md}'"
"publish": "wrangler publish",
"wasm_build": "node wasm_build.mjs"
}, },
"author": "uh_wot <uhwot@protonmail.com>", "author": "uh_wot <uhwot@protonmail.com>",
"license": "MIT", "license": "MIT",
"devDependencies": { "devDependencies": {
"wrangler": "^2.1.15" "@wasm-tool/wasm-pack-plugin": "^1.6.0",
"html-loader": "^1.3.2",
"prettier": "^2.5.1"
}, },
"dependencies": { "dependencies": {
"browser-id3-writer": "^4.4.0", "browser-id3-writer": "^4.4.0",
"itty-router": "^2.6.6" "itty-router": "^2.5.2",
"serverless-cloudflare-workers": "^1.2.0"
} }
} }

View File

@ -1,20 +0,0 @@
import * as fs from 'fs'
import { execSync } from 'child_process'
import { chdir } from 'process'
chdir('wasm')
execSync('wasm-pack build -t nodejs')
const pkg_name = JSON.parse(fs.readFileSync('pkg/package.json', 'utf8'))['name']
const js_path = `pkg/${pkg_name}.js`
let loader_js = fs.readFileSync(js_path, 'utf8')
loader_js = `import wasmModule from './${pkg_name}_bg.wasm'\n\n` + loader_js
loader_js = loader_js.replace('const { TextDecoder, TextEncoder } = require(String.raw`util`);\n', '')
loader_js = loader_js.replace(`const path = require('path').join(__dirname, '${pkg_name}_bg.wasm');\n`, '')
loader_js = loader_js.replace("const bytes = require('fs').readFileSync(path);\n\n", '')
loader_js = loader_js.replace('const wasmModule = new WebAssembly.Module(bytes);\n', '')
fs.writeFileSync(js_path, loader_js)

21
webpack.config.js Normal file
View File

@ -0,0 +1,21 @@
const path = require("path");
const WasmPackPlugin = require("@wasm-tool/wasm-pack-plugin");
module.exports = {
entry: {
index: "./index.js"
},
plugins: [
new WasmPackPlugin({
crateDirectory: __dirname,
}),
],
module: {
rules: [
{
test: /\.html$/i,
loader: 'html-loader'
}
]
}
};

View File

@ -1,14 +1,12 @@
name = "dz" name = "dz"
type = "webpack"
webpack_config = "webpack.config.js"
account_id = "03479b0523a52b140e0dabac40cb0fc8"
workers_dev = true workers_dev = true
kv_namespaces = [ kv_namespaces = [
{ binding = "KV", id = "974c0967a84e415daa054bbbcc7f80c6", preview_id = "cfcc6491f3484cbca664913836635113" } { binding = "KV", id = "974c0967a84e415daa054bbbcc7f80c6", preview_id = "cfcc6491f3484cbca664913836635113" }
] ]
main = "./main.js" compatibility_date = "2022-03-09"
compatibility_date = "2022-11-06"
[build]
command = "yarn run wasm_build"
watch_dir = "./wasm/src"
# [secrets] # [secrets]
# ARL # ARL

View File

@ -1,603 +0,0 @@
Arguments:
/usr/bin/node /usr/bin/yarn publish
PATH:
/usr/local/bin:/usr/bin:/usr/local/sbin:/var/lib/flatpak/exports/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/davide/.local/bin:/home/davide/.cargo/bin:/home/davide/go/bin
Yarn version:
1.22.19
Node version:
18.7.0
Platform:
linux x64
Trace:
Error: canceled
at Interface.<anonymous> (/usr/lib/node_modules/yarn/lib/cli.js:137150:13)
at Interface.emit (node:events:513:28)
at [_ttyWrite] [as _ttyWrite] (node:internal/readline/interface:1124:18)
at ReadStream.onkeypress (node:internal/readline/interface:273:20)
at ReadStream.emit (node:events:513:28)
at emitKeys (node:internal/readline/utils:357:14)
at emitKeys.next (<anonymous>)
at ReadStream.onData (node:internal/readline/emitKeypressEvents:64:36)
at ReadStream.emit (node:events:513:28)
at addChunk (node:internal/streams/readable:324:12)
npm manifest:
{
"name": "dzserver",
"version": "1.0.0",
"description": "worker for getting deezer track urls",
"main": "index.js",
"scripts": {
"dev": "wrangler dev",
"dev_local": "wrangler dev --local",
"publish": "wrangler publish",
"wasm_build": "node wasm_build.mjs"
},
"author": "uh_wot <uhwot@protonmail.com>",
"license": "MIT",
"devDependencies": {
"wrangler": "^2.0.15"
},
"dependencies": {
"browser-id3-writer": "^4.4.0",
"itty-router": "^2.6.1"
}
}
yarn manifest:
No manifest
Lockfile:
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@cloudflare/kv-asset-handler@^0.2.0":
version "0.2.0"
resolved "https://registry.yarnpkg.com/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.2.0.tgz#c9959bbd7a1c40bd7c674adae98aa8c8d0e5ca68"
integrity sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==
dependencies:
mime "^3.0.0"
"@esbuild-plugins/node-globals-polyfill@^0.1.1":
version "0.1.1"
resolved "https://registry.yarnpkg.com/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.1.1.tgz#a313ab3efbb2c17c8ce376aa216c627c9b40f9d7"
integrity sha512-MR0oAA+mlnJWrt1RQVQ+4VYuRJW/P2YmRTv1AsplObyvuBMnPHiizUF95HHYiSsMGLhyGtWufaq2XQg6+iurBg==
"@esbuild-plugins/node-modules-polyfill@^0.1.4":
version "0.1.4"
resolved "https://registry.yarnpkg.com/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.1.4.tgz#eb2f55da11967b2986c913f1a7957d1c868849c0"
integrity sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg==
dependencies:
escape-string-regexp "^4.0.0"
rollup-plugin-node-polyfills "^0.2.1"
"@iarna/toml@^2.2.5":
version "2.2.5"
resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c"
integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==
"@miniflare/cache@2.5.1":
version "2.5.1"
resolved "https://registry.yarnpkg.com/@miniflare/cache/-/cache-2.5.1.tgz#5cb88e3b33fb42b6da998729df244aad5c2f2c6c"
integrity sha512-qH5PC4zb7mHdQHlcaOuP0KUXuRbNSuB/HU7gpoeplV8J6CgNJGceVmQCZVZLycgDKZtAlhyGE1gkpJmeW7GCyw==
dependencies:
"@miniflare/core" "2.5.1"
"@miniflare/shared" "2.5.1"
http-cache-semantics "^4.1.0"
undici "5.5.1"
"@miniflare/cli-parser@2.5.1":
version "2.5.1"
resolved "https://registry.yarnpkg.com/@miniflare/cli-parser/-/cli-parser-2.5.1.tgz#af8ea35ae9d493e3e258bdaea97dbe8a4c3b5fe2"
integrity sha512-itlMDe9jwO806mkNkg3G70QYoG9YQHW6V10AF9L5b8J4LYt/V78uCEJSwNnCpL7zfKrScRPtDfXZxhrFzMXiUw==
dependencies:
"@miniflare/shared" "2.5.1"
kleur "^4.1.4"
"@miniflare/core@2.5.1":
version "2.5.1"
resolved "https://registry.yarnpkg.com/@miniflare/core/-/core-2.5.1.tgz#cda142599d60cb03db24ca7abe463340a3f53e4b"
integrity sha512-0oEBLV5AM3xxs6TS+7/fn4MSGNBfhUFVv41R8uc72H1a89+kBfRoz+xYI2RnJ3Yo+we66UgU3fXdG+R2KyESlQ==
dependencies:
"@iarna/toml" "^2.2.5"
"@miniflare/shared" "2.5.1"
"@miniflare/watcher" "2.5.1"
busboy "^1.6.0"
dotenv "^10.0.0"
kleur "^4.1.4"
set-cookie-parser "^2.4.8"
undici "5.5.1"
urlpattern-polyfill "^4.0.3"
"@miniflare/durable-objects@2.5.1":
version "2.5.1"
resolved "https://registry.yarnpkg.com/@miniflare/durable-objects/-/durable-objects-2.5.1.tgz#90d8f2832e9a699a7a61632e4c31fd451bba8bfc"
integrity sha512-AZEGSA9LMA6vBzwADAzr81RBSWYlMfa/cDHnHaFL31w4mQwMUcqXOvemoqe6sTSq1KI0TTtvYbxPt0Lui8tEPw==
dependencies:
"@miniflare/core" "2.5.1"
"@miniflare/shared" "2.5.1"
"@miniflare/storage-memory" "2.5.1"
undici "5.5.1"
"@miniflare/html-rewriter@2.5.1":
version "2.5.1"
resolved "https://registry.yarnpkg.com/@miniflare/html-rewriter/-/html-rewriter-2.5.1.tgz#dc0b8aa4a0409ed9a8e476b04a4f71af36f0d9fd"
integrity sha512-fdO1qme8ukucejRz5yXJN/F4B9qEDRbBLPOEG94zwx8bHGGIo5VX15+J6oHubhjifLwzNuvOcg16Bu5dyR1KxQ==
dependencies:
"@miniflare/core" "2.5.1"
"@miniflare/shared" "2.5.1"
html-rewriter-wasm "^0.4.1"
undici "5.5.1"
"@miniflare/http-server@2.5.1":
version "2.5.1"
resolved "https://registry.yarnpkg.com/@miniflare/http-server/-/http-server-2.5.1.tgz#9316f6111156440035e8a8614fa6c39457d588d3"
integrity sha512-K+VoBU0LN8/oku/JWLEyX8wrp9fiaTC8/dosbY/6VWizyIrgQze16uD21GnK5+NBtbCAtLRryS5dZ3PnhiTR1w==
dependencies:
"@miniflare/core" "2.5.1"
"@miniflare/shared" "2.5.1"
"@miniflare/web-sockets" "2.5.1"
kleur "^4.1.4"
selfsigned "^2.0.0"
undici "5.5.1"
ws "^8.2.2"
youch "^2.2.2"
"@miniflare/kv@2.5.1":
version "2.5.1"
resolved "https://registry.yarnpkg.com/@miniflare/kv/-/kv-2.5.1.tgz#b6dad471a5c81b077637a144717b5315314f0d65"
integrity sha512-ODTUqI7on3egHluBpFHifO0a9QFQUZscciASWKxGOt8VDp1vp0vIfU9ykQZrdZYFVeSKNVlUNqNQx+NMYZ6gIg==
dependencies:
"@miniflare/shared" "2.5.1"
"@miniflare/runner-vm@2.5.1":
version "2.5.1"
resolved "https://registry.yarnpkg.com/@miniflare/runner-vm/-/runner-vm-2.5.1.tgz#c3cada12eeece20d847828a128f03d7e333da646"
integrity sha512-7U7BPgzaikwWkAMonlmyy4lDpW1H7mqHFr7NdK9kA6BbXZ2GY6uro69QsGw0c4Y/vyKBodKiqXAq53iGdM3Kug==
dependencies:
"@miniflare/shared" "2.5.1"
"@miniflare/scheduler@2.5.1":
version "2.5.1"
resolved "https://registry.yarnpkg.com/@miniflare/scheduler/-/scheduler-2.5.1.tgz#1ddfc71b638ec0e1d4f243e3a33d43873068828c"
integrity sha512-ybho5Kg3Cfl4E0JleKAbiv/RTA+/PVqH6Y/PuCH2oowSM7qeAvFkrwiRvxtN7BuAl+5lsGyVxFe4gL+weXohEw==
dependencies:
"@miniflare/core" "2.5.1"
"@miniflare/shared" "2.5.1"
cron-schedule "^3.0.4"
"@miniflare/shared@2.5.1":
version "2.5.1"
resolved "https://registry.yarnpkg.com/@miniflare/shared/-/shared-2.5.1.tgz#8eda8394bc2c935d4d0681b2cde0767ee2584397"
integrity sha512-DObgqbFml3qetIBtZa8fNqkBqUH9XtI6rdrWtTYVrx0rzKsd5PDf6gdMoxy7v1rr9zBAipKJxrcBqlEgjPl53Q==
dependencies:
ignore "^5.1.8"
kleur "^4.1.4"
"@miniflare/sites@2.5.1":
version "2.5.1"
resolved "https://registry.yarnpkg.com/@miniflare/sites/-/sites-2.5.1.tgz#bdab0a787cb32e43cf915996f670cc6936c55c24"
integrity sha512-7V/fAzR50LYgMcOfoCaoppqBCjagBpGWFbZgMyJi/Hj4oVlSIzxo+424hzdjitNzikCpv+AryF9tXfy9j6qiOg==
dependencies:
"@miniflare/kv" "2.5.1"
"@miniflare/shared" "2.5.1"
"@miniflare/storage-file" "2.5.1"
"@miniflare/storage-file@2.5.1":
version "2.5.1"
resolved "https://registry.yarnpkg.com/@miniflare/storage-file/-/storage-file-2.5.1.tgz#5cc411ce5282e1fcddbfd4ffb2009275def7fb24"
integrity sha512-o12KFXgc1M0nHD98mrA/IqwBsJ6KYLWH9NaTwqLhxhpGz/KSo5kWb7z/vrz2I/Rk2XR/gHSYQm2XR9XE6IJCdA==
dependencies:
"@miniflare/shared" "2.5.1"
"@miniflare/storage-memory" "2.5.1"
"@miniflare/storage-memory@2.5.1":
version "2.5.1"
resolved "https://registry.yarnpkg.com/@miniflare/storage-memory/-/storage-memory-2.5.1.tgz#cb7dfb376b28e6ab55a04512fd8056a5e95b3baa"
integrity sha512-LIdBEFcwY7yLCeowO34p5bajRsvU1XuQjXIqcgfiCVt1+qa3D0seELTpW1NSFEJzxulVtu/KsScEug9GipEt7A==
dependencies:
"@miniflare/shared" "2.5.1"
"@miniflare/watcher@2.5.1":
version "2.5.1"
resolved "https://registry.yarnpkg.com/@miniflare/watcher/-/watcher-2.5.1.tgz#1cacc72640012a32de5dd7a3429679ef49b50953"
integrity sha512-8oOdgWA7CZ7uIAwbjqSrhDnuQXRJqd9e3yDHsMa91E/jkC/GDmlt5SJh6VEMlNDtBGWd661IpVErZf7injI52w==
dependencies:
"@miniflare/shared" "2.5.1"
"@miniflare/web-sockets@2.5.1":
version "2.5.1"
resolved "https://registry.yarnpkg.com/@miniflare/web-sockets/-/web-sockets-2.5.1.tgz#1178b4b920ab3beae78468497dbfe0085857ffbf"
integrity sha512-GyXHoDAI5LDF87rmD+d0cSoN7Xs2pCYjSyUR6Vf6exkS4CN6F/Rtr8vIM5+om9kRkS6qxAyOYjWeEqBOjLm/og==
dependencies:
"@miniflare/core" "2.5.1"
"@miniflare/shared" "2.5.1"
undici "5.5.1"
ws "^8.2.2"
"@types/stack-trace@0.0.29":
version "0.0.29"
resolved "https://registry.yarnpkg.com/@types/stack-trace/-/stack-trace-0.0.29.tgz#eb7a7c60098edb35630ed900742a5ecb20cfcb4d"
integrity sha512-TgfOX+mGY/NyNxJLIbDWrO9DjGoVSW9+aB8H2yy1fy32jsvxijhmyJI9fDFgvz3YP4lvJaq9DzdR/M1bOgVc9g==
blake3-wasm@^2.1.5:
version "2.1.5"
resolved "https://registry.yarnpkg.com/blake3-wasm/-/blake3-wasm-2.1.5.tgz#b22dbb84bc9419ed0159caa76af4b1b132e6ba52"
integrity sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==
browser-id3-writer@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/browser-id3-writer/-/browser-id3-writer-4.4.0.tgz#1810e86c214da30a1682f8fdf827bf47f7b23372"
integrity sha512-8xce9wo4VoKNR4udEGOAf8vndYxhToqQS+1wyrjdYVPQKRc4Wm6xwGG6XrKYgax28y5AvrbCkqK6t1RplPN2Ew==
buffer-from@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
busboy@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893"
integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==
dependencies:
streamsearch "^1.1.0"
cookie@^0.4.1:
version "0.4.2"
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432"
integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
cron-schedule@^3.0.4:
version "3.0.6"
resolved "https://registry.yarnpkg.com/cron-schedule/-/cron-schedule-3.0.6.tgz#7d0a3ad9154112fc3720fe43238a43d50e8465e7"
integrity sha512-izfGgKyzzIyLaeb1EtZ3KbglkS6AKp9cv7LxmiyoOu+fXfol1tQDC0Cof0enVZGNtudTHW+3lfuW9ZkLQss4Wg==
dotenv@^10.0.0:
version "10.0.0"
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81"
integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==
esbuild-android-64@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.34.tgz#46bc4327dd0809937912346244eaffdb9bfc980d"
integrity sha512-XfxcfJqmMYsT/LXqrptzFxmaR3GWzXHDLdFNIhm6S00zPaQF1TBBWm+9t0RZ6LRR7iwH57DPjaOeW20vMqI4Yw==
esbuild-android-arm64@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.34.tgz#a3f7e1ad84b8a7dcb39b5e132768b56ee7133656"
integrity sha512-T02+NXTmSRL1Mc6puz+R9CB54rSPICkXKq6+tw8B6vxZFnCPzbJxgwIX4kcluz9p8nYBjF3+lSilTGWb7+Xgew==
esbuild-darwin-64@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.34.tgz#a0e4ab7a0cddf76761f1fb5d6bf552a376beb16e"
integrity sha512-pLRip2Bh4Ng7Bf6AMgCrSp3pPe/qZyf11h5Qo2mOfJqLWzSVjxrXW+CFRJfrOVP7TCnh/gmZSM2AFdCPB72vtw==
esbuild-darwin-arm64@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.34.tgz#54c35461f82f83a7f5169d9a6a54201798977b07"
integrity sha512-vpidSJEBxx6lf1NWgXC+DCmGqesJuZ5Y8aQVVsaoO4i8tRXbXb0whChRvop/zd3nfNM4dIl5EXAky0knRX5I6w==
esbuild-freebsd-64@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.34.tgz#aebb50248f5874d04ffeab2db8ee1ed6037e2654"
integrity sha512-m0HBjePhe0hAQJgtMRMNV9kMgIyV4/qSnzPx42kRMQBcPhgjAq1JRu4Il26czC+9FgpMbFkUktb07f/Lwnc6CA==
esbuild-freebsd-arm64@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.34.tgz#09bef288e29f18b38b0c70a9827b6ee718e36c7f"
integrity sha512-cpRc2B94L1KvMPPYB4D6G39jLqpKlD3noAMY4/e86iXXXkhUYJJEtTuyNFTa9JRpWM0xCAp4mxjHjoIiLuoCLA==
esbuild-linux-32@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.34.tgz#67790061758e008e919e65bbc34549f55dadaca7"
integrity sha512-8nQaEaoW7MH/K/RlozJa+lE1ejHIr8fuPIHhc513UebRav7HtXgQvxHQ6VZRUkWtep23M6dd7UqhwO1tMOfzQQ==
esbuild-linux-64@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.34.tgz#b9b19d4ac07e37495dd2508ec843418aa71c98d6"
integrity sha512-Y3of4qQoLLlAgf042MlrY1P+7PnN9zWj8nVtw9XQG5hcLOZLz7IKpU35oeu7n4wvyaZHwvQqDJ93gRLqdJekcQ==
esbuild-linux-arm64@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.34.tgz#fd84b11a6ccfe9e83e00d0c45890e9fb3a7248c1"
integrity sha512-IlWaGtj9ir7+Nrume1DGcyzBDlK8GcnJq0ANKwcI9pVw8tqr+6GD0eqyF9SF1mR8UmAp+odrx1H5NdR2cHdFHA==
esbuild-linux-arm@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.34.tgz#c89d4714b05265a315a97c8933508cc73950e683"
integrity sha512-9lpq1NcJqssAF7alCO6zL3gvBVVt/lKw4oetUM7OgNnRX0OWpB+ZIO9FwCrSj/dMdmgDhPLf+119zB8QxSMmAg==
esbuild-linux-mips64le@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.34.tgz#d60752c3fb1260dd0737532af2de2a9521656456"
integrity sha512-k3or+01Rska1AjUyNjA4buEwB51eyN/xPQAoOx1CjzAQC3l8rpjUDw55kXyL63O/1MUi4ISvtNtl8gLwdyEcxw==
esbuild-linux-ppc64le@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.34.tgz#f4c6229269956564f0c6f9825f5e717c2cfc22b3"
integrity sha512-+qxb8M9FfM2CJaVU7GgYpJOHM1ngQOx+/VrtBjb4C8oVqaPcESCeg2anjl+HRZy8VpYc71q/iBYausPPbJ+Keg==
esbuild-linux-riscv64@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.34.tgz#549bd18a9eba3135b67f7b742730b5343a1be35d"
integrity sha512-Y717ltBdQ5j5sZIHdy1DV9kieo0wMip0dCmVSTceowCPYSn1Cg33Kd6981+F/3b9FDMzNWldZFOBRILViENZSA==
esbuild-linux-s390x@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.34.tgz#2a6b577c437f94c2b37623c755ff5215a05c12bc"
integrity sha512-bDDgYO4LhL4+zPs+WcBkXph+AQoPcQRTv18FzZS0WhjfH8TZx2QqlVPGhmhZ6WidrY+jKthUqO6UhGyIb4MpmA==
esbuild-netbsd-64@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.34.tgz#7f0b73229157975eb35597207723df52ba21722a"
integrity sha512-cfaFGXdRt0+vHsjNPyF0POM4BVSHPSbhLPe8mppDc7GDDxjIl08mV1Zou14oDWMp/XZMjYN1kWYRSfftiD0vvQ==
esbuild-openbsd-64@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.34.tgz#b9bc44b4f70031fb01b173b279daeffc4d4f54b7"
integrity sha512-vmy9DxXVnRiI14s8GKuYBtess+EVcDALkbpTqd5jw4XITutIzyB7n4x0Tj5utAkKsgZJB22lLWGekr0ABnSLow==
esbuild-sunos-64@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.34.tgz#512dd6085ac1a0dccc20c5f932f16a618bea409c"
integrity sha512-eNPVatNET1F7tRMhii7goL/eptfxc0ALRjrj9SPFNqp0zmxrehBFD6BaP3R4LjMn6DbMO0jOAnTLFKr8NqcJAA==
esbuild-windows-32@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.34.tgz#3ff1afd5cac08050c7c7140a59e343b06f6b037c"
integrity sha512-EFhpXyHEcnqWYe2rAHFd8dRw8wkrd9U+9oqcyoEL84GbanAYjiiIjBZsnR8kl0sCQ5w6bLpk7vCEIA2VS32Vcg==
esbuild-windows-64@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.34.tgz#66f7b43d2a0b132f6748dfa3edac4fc939a99be0"
integrity sha512-a8fbl8Ky7PxNEjf1aJmtxdDZj32/hC7S1OcA2ckEpCJRTjiKslI9vAdPpSjrKIWhws4Galpaawy0nB7fjHYf5Q==
esbuild-windows-arm64@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.34.tgz#b74a6395b7b7e53dba70b71b39542afd83352473"
integrity sha512-EYvmKbSa2B3sPnpC28UEu9jBK5atGV4BaVRE7CYGUci2Hlz4AvtV/LML+TcDMT6gBgibnN2gcltWclab3UutMg==
esbuild@0.14.34:
version "0.14.34"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.34.tgz#3610056f0a57bcfd0b63ddaafdb2e3bef1cf96e4"
integrity sha512-QIWdPT/gFF6hCaf4m7kP0cJ+JIuFkdHibI7vVFvu3eJS1HpVmYHWDulyN5WXwbRA0SX/7ZDaJ/1DH8SdY9xOJg==
optionalDependencies:
esbuild-android-64 "0.14.34"
esbuild-android-arm64 "0.14.34"
esbuild-darwin-64 "0.14.34"
esbuild-darwin-arm64 "0.14.34"
esbuild-freebsd-64 "0.14.34"
esbuild-freebsd-arm64 "0.14.34"
esbuild-linux-32 "0.14.34"
esbuild-linux-64 "0.14.34"
esbuild-linux-arm "0.14.34"
esbuild-linux-arm64 "0.14.34"
esbuild-linux-mips64le "0.14.34"
esbuild-linux-ppc64le "0.14.34"
esbuild-linux-riscv64 "0.14.34"
esbuild-linux-s390x "0.14.34"
esbuild-netbsd-64 "0.14.34"
esbuild-openbsd-64 "0.14.34"
esbuild-sunos-64 "0.14.34"
esbuild-windows-32 "0.14.34"
esbuild-windows-64 "0.14.34"
esbuild-windows-arm64 "0.14.34"
escape-string-regexp@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
estree-walker@^0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362"
integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==
fsevents@~2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
html-rewriter-wasm@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/html-rewriter-wasm/-/html-rewriter-wasm-0.4.1.tgz#235e3d96c1aa4bfd2182661ee13881e290ff5ff2"
integrity sha512-lNovG8CMCCmcVB1Q7xggMSf7tqPCijZXaH4gL6iE8BFghdQCbaY5Met9i1x2Ex8m/cZHDUtXK9H6/znKamRP8Q==
http-cache-semantics@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
ignore@^5.1.8:
version "5.2.0"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
itty-router@^2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/itty-router/-/itty-router-2.6.1.tgz#eecb59fa25b5f6f519276cc5bcaaa1cb341d5fee"
integrity sha512-l9gxWe5TOLUESYnBn85Jxd6tIZLWdRX5YKkHIBfSgbNQ7UFPNUGuWihRV+LlEbfJJIzgLmhwAbaWRi5yWJm8kg==
kleur@^4.1.4:
version "4.1.4"
resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d"
integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==
magic-string@^0.25.3:
version "0.25.9"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c"
integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==
dependencies:
sourcemap-codec "^1.4.8"
mime@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7"
integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==
miniflare@^2.5.1:
version "2.5.1"
resolved "https://registry.yarnpkg.com/miniflare/-/miniflare-2.5.1.tgz#2cfa23e5ad6f8d6bf3662f1642c177fcd9ad1329"
integrity sha512-PT56C/j7U6n7WDxnIUHu0d8EY/gedPRsta2b+LsrIHGZPSkxAcPzf2DgbbPU7obv0C4hT9H0GL1fWpWtr2SbDQ==
dependencies:
"@miniflare/cache" "2.5.1"
"@miniflare/cli-parser" "2.5.1"
"@miniflare/core" "2.5.1"
"@miniflare/durable-objects" "2.5.1"
"@miniflare/html-rewriter" "2.5.1"
"@miniflare/http-server" "2.5.1"
"@miniflare/kv" "2.5.1"
"@miniflare/runner-vm" "2.5.1"
"@miniflare/scheduler" "2.5.1"
"@miniflare/shared" "2.5.1"
"@miniflare/sites" "2.5.1"
"@miniflare/storage-file" "2.5.1"
"@miniflare/storage-memory" "2.5.1"
"@miniflare/web-sockets" "2.5.1"
kleur "^4.1.4"
semiver "^1.1.0"
source-map-support "^0.5.20"
undici "5.5.1"
mustache@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64"
integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==
nanoid@^3.3.3:
version "3.3.4"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
node-forge@^1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3"
integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==
path-to-regexp@^6.2.0:
version "6.2.1"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz#d54934d6798eb9e5ef14e7af7962c945906918e5"
integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==
rollup-plugin-inject@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz#e4233855bfba6c0c12a312fd6649dff9a13ee9f4"
integrity sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==
dependencies:
estree-walker "^0.6.1"
magic-string "^0.25.3"
rollup-pluginutils "^2.8.1"
rollup-plugin-node-polyfills@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz#53092a2744837164d5b8a28812ba5f3ff61109fd"
integrity sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==
dependencies:
rollup-plugin-inject "^3.0.0"
rollup-pluginutils@^2.8.1:
version "2.8.2"
resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e"
integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==
dependencies:
estree-walker "^0.6.1"
selfsigned@^2.0.0, selfsigned@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.0.1.tgz#8b2df7fa56bf014d19b6007655fff209c0ef0a56"
integrity sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==
dependencies:
node-forge "^1"
semiver@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/semiver/-/semiver-1.1.0.tgz#9c97fb02c21c7ce4fcf1b73e2c7a24324bdddd5f"
integrity sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==
set-cookie-parser@^2.4.8:
version "2.4.8"
resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.4.8.tgz#d0da0ed388bc8f24e706a391f9c9e252a13c58b2"
integrity sha512-edRH8mBKEWNVIVMKejNnuJxleqYE/ZSdcT8/Nem9/mmosx12pctd80s2Oy00KNZzrogMZS5mauK2/ymL1bvlvg==
source-map-support@^0.5.20:
version "0.5.21"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
dependencies:
buffer-from "^1.0.0"
source-map "^0.6.0"
source-map@^0.6.0:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
sourcemap-codec@^1.4.8:
version "1.4.8"
resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
stack-trace@0.0.10:
version "0.0.10"
resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=
streamsearch@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764"
integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
undici@5.5.1:
version "5.5.1"
resolved "https://registry.yarnpkg.com/undici/-/undici-5.5.1.tgz#baaf25844a99eaa0b22e1ef8d205bffe587c8f43"
integrity sha512-MEvryPLf18HvlCbLSzCW0U00IMftKGI5udnjrQbC5D4P0Hodwffhv+iGfWuJwg16Y/TK11ZFK8i+BPVW2z/eAw==
urlpattern-polyfill@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-4.0.3.tgz#c1fa7a73eb4e6c6a1ffb41b24cf31974f7392d3b"
integrity sha512-DOE84vZT2fEcl9gqCUTcnAw5ZY5Id55ikUcziSUntuEFL3pRvavg5kwDmTEUJkeCHInTlV/HexFomgYnzO5kdQ==
wrangler@^2.0.15:
version "2.0.15"
resolved "https://registry.yarnpkg.com/wrangler/-/wrangler-2.0.15.tgz#e45f05b0558c9bb08c535fa270d75163202f2ab9"
integrity sha512-iBigg/qR1U74wJSR81njVNG69h/tcAGxXoBS1iKeLu1WIhTR/jfBbZdXWcspgkFaex4J6roJnhbFNy7Ob7caUA==
dependencies:
"@cloudflare/kv-asset-handler" "^0.2.0"
"@esbuild-plugins/node-globals-polyfill" "^0.1.1"
"@esbuild-plugins/node-modules-polyfill" "^0.1.4"
blake3-wasm "^2.1.5"
esbuild "0.14.34"
miniflare "^2.5.1"
nanoid "^3.3.3"
path-to-regexp "^6.2.0"
selfsigned "^2.0.1"
semiver "^1.1.0"
xxhash-wasm "^1.0.1"
optionalDependencies:
fsevents "~2.3.2"
ws@^8.2.2:
version "8.6.0"
resolved "https://registry.yarnpkg.com/ws/-/ws-8.6.0.tgz#e5e9f1d9e7ff88083d0c0dd8281ea662a42c9c23"
integrity sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==
xxhash-wasm@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/xxhash-wasm/-/xxhash-wasm-1.0.1.tgz#8a0f0eeb3ab76c16bbb889f5acca286b62d98626"
integrity sha512-Lc9CTvDrH2vRoiaUzz25q7lRaviMhz90pkx6YxR9EPYtF99yOJnv2cB+CQ0hp/TLoqrUsk8z/W2EN31T568Azw==
youch@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/youch/-/youch-2.2.2.tgz#cb87a359a5c524ebd35eb07ca3a1521dbc7e1a3e"
integrity sha512-/FaCeG3GkuJwaMR34GHVg0l8jCbafZLHiFowSjqLlqhC6OMyf2tPJBu8UirF7/NI9X/R5ai4QfEKUCOxMAGxZQ==
dependencies:
"@types/stack-trace" "0.0.29"
cookie "^0.4.1"
mustache "^4.2.0"
stack-trace "0.0.10"

3040
yarn.lock

File diff suppressed because it is too large Load Diff