full site update

This commit is contained in:
2025-07-24 18:46:24 +02:00
parent bfe2b90d8d
commit 37a6e0ab31
6912 changed files with 540482 additions and 361712 deletions

103
node_modules/unstorage/drivers/http.mjs generated vendored Normal file
View File

@@ -0,0 +1,103 @@
import { defineDriver } from "./utils/index.mjs";
import { $fetch as _fetch } from "ofetch";
import { joinURL } from "ufo";
const DRIVER_NAME = "http";
export default defineDriver((opts) => {
const r = (key = "") => joinURL(opts.base, key.replace(/:/g, "/"));
const rBase = (key = "") => joinURL(opts.base, (key || "/").replace(/:/g, "/"), ":");
const catchFetchError = (error, fallbackVal = null) => {
if (error?.response?.status === 404) {
return fallbackVal;
}
throw error;
};
const getHeaders = (topts, defaultHeaders) => {
const headers = {
...defaultHeaders,
...opts.headers,
...topts?.headers
};
if (topts?.ttl && !headers["x-ttl"]) {
headers["x-ttl"] = topts.ttl + "";
}
return headers;
};
return {
name: DRIVER_NAME,
options: opts,
hasItem(key, topts) {
return _fetch(r(key), {
method: "HEAD",
headers: getHeaders(topts)
}).then(() => true).catch((err) => catchFetchError(err, false));
},
async getItem(key, tops) {
const value = await _fetch(r(key), {
headers: getHeaders(tops)
}).catch(catchFetchError);
return value;
},
async getItemRaw(key, topts) {
const response = await _fetch.raw(r(key), {
responseType: "arrayBuffer",
headers: getHeaders(topts, { accept: "application/octet-stream" })
}).catch(catchFetchError);
return response._data;
},
async getMeta(key, topts) {
const res = await _fetch.raw(r(key), {
method: "HEAD",
headers: getHeaders(topts)
});
let mtime = void 0;
let ttl = void 0;
const _lastModified = res.headers.get("last-modified");
if (_lastModified) {
mtime = new Date(_lastModified);
}
const _ttl = res.headers.get("x-ttl");
if (_ttl) {
ttl = Number.parseInt(_ttl, 10);
}
return {
status: res.status,
mtime,
ttl
};
},
async setItem(key, value, topts) {
await _fetch(r(key), {
method: "PUT",
body: value,
headers: getHeaders(topts)
});
},
async setItemRaw(key, value, topts) {
await _fetch(r(key), {
method: "PUT",
body: value,
headers: getHeaders(topts, {
"content-type": "application/octet-stream"
})
});
},
async removeItem(key, topts) {
await _fetch(r(key), {
method: "DELETE",
headers: getHeaders(topts)
});
},
async getKeys(base, topts) {
const value = await _fetch(rBase(base), {
headers: getHeaders(topts)
});
return Array.isArray(value) ? value : [];
},
async clear(base, topts) {
await _fetch(rBase(base), {
method: "DELETE",
headers: getHeaders(topts)
});
}
};
});