jotdb 0.1.8 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +296 -6
- package/dist/index.d.ts +58 -1
- package/dist/index.js +552 -31
- package/dist/site-worker.d.ts +7 -0
- package/dist/site-worker.js +6 -0
- package/dist/src/index.d.ts +107 -0
- package/dist/src/index.js +802 -0
- package/dist/src/site-worker.d.ts +7 -0
- package/dist/src/site-worker.js +6 -0
- package/dist/src/store.d.ts +60 -0
- package/dist/src/store.js +63 -0
- package/dist/store.d.ts +60 -0
- package/dist/store.js +64 -0
- package/package.json +18 -7
- package/bun.lock +0 -220
- package/src/index.ts +0 -538
- package/tsconfig.json +0 -33
- package/wrangler.jsonc +0 -29
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
export interface StoreCursor<T> {
|
|
2
|
+
items: T[];
|
|
3
|
+
cursor?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface StoreAdapter<T> {
|
|
6
|
+
get(key: string): Promise<T | undefined>;
|
|
7
|
+
set(key: string, value: T): Promise<void>;
|
|
8
|
+
delete(key: string): Promise<void>;
|
|
9
|
+
keys(prefix?: string): Promise<string[]>;
|
|
10
|
+
scan(prefix?: string, options?: {
|
|
11
|
+
limit?: number;
|
|
12
|
+
cursor?: string;
|
|
13
|
+
}): Promise<StoreCursor<T>>;
|
|
14
|
+
}
|
|
15
|
+
export declare class MemoryStoreAdapter<T> implements StoreAdapter<T> {
|
|
16
|
+
private data;
|
|
17
|
+
get(key: string): Promise<T | undefined>;
|
|
18
|
+
set(key: string, value: T): Promise<void>;
|
|
19
|
+
delete(key: string): Promise<void>;
|
|
20
|
+
keys(prefix?: string): Promise<string[]>;
|
|
21
|
+
scan(prefix?: string, options?: {
|
|
22
|
+
limit?: number;
|
|
23
|
+
cursor?: string;
|
|
24
|
+
}): Promise<{
|
|
25
|
+
items: NonNullable<T>[];
|
|
26
|
+
cursor: any;
|
|
27
|
+
}>;
|
|
28
|
+
}
|
|
29
|
+
export declare class JotStore<T> {
|
|
30
|
+
private adapter;
|
|
31
|
+
constructor(adapter: StoreAdapter<T>);
|
|
32
|
+
get(key: string): Promise<T | undefined>;
|
|
33
|
+
set(key: string, value: T): Promise<void>;
|
|
34
|
+
delete(key: string): Promise<void>;
|
|
35
|
+
keys(prefix?: string): Promise<string[]>;
|
|
36
|
+
scan(prefix?: string, options?: {
|
|
37
|
+
limit?: number;
|
|
38
|
+
cursor?: string;
|
|
39
|
+
}): Promise<StoreCursor<T>>;
|
|
40
|
+
append(stream: string, value: T): Promise<string>;
|
|
41
|
+
retention(prefix: string, maxAgeMs: number): Promise<void>;
|
|
42
|
+
appendCapped(stream: string, value: T, max: number): Promise<string>;
|
|
43
|
+
}
|
|
44
|
+
export declare class SQLiteStoreAdapter<T> implements StoreAdapter<T> {
|
|
45
|
+
private sql;
|
|
46
|
+
constructor(sql: any);
|
|
47
|
+
get(key: string): Promise<T | undefined>;
|
|
48
|
+
set(key: string, value: T): Promise<void>;
|
|
49
|
+
delete(key: string): Promise<void>;
|
|
50
|
+
keys(prefix?: string): Promise<any>;
|
|
51
|
+
scan(prefix?: string, options?: {
|
|
52
|
+
limit?: number;
|
|
53
|
+
cursor?: string;
|
|
54
|
+
}): Promise<{
|
|
55
|
+
items: any;
|
|
56
|
+
cursor: any;
|
|
57
|
+
}>;
|
|
58
|
+
retention(prefix: string, maxAgeMs: number): Promise<void>;
|
|
59
|
+
}
|
|
60
|
+
export declare function createMemoryJotDB<T>(): JotStore<T>;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export class MemoryStoreAdapter {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.data = new Map();
|
|
4
|
+
}
|
|
5
|
+
async get(key) { return this.data.get(key); }
|
|
6
|
+
async set(key, value) { this.data.set(key, value); }
|
|
7
|
+
async delete(key) { this.data.delete(key); }
|
|
8
|
+
async keys(prefix = '') { return [...this.data.keys()].sort().filter((key) => key.startsWith(prefix)); }
|
|
9
|
+
async scan(prefix = '', options = {}) {
|
|
10
|
+
const keys = await this.keys(prefix);
|
|
11
|
+
const start = options.cursor ? Math.max(0, keys.findIndex((key) => key > options.cursor)) : 0;
|
|
12
|
+
const page = keys.slice(start, options.limit ? start + options.limit : undefined);
|
|
13
|
+
return { items: page.map((key) => this.data.get(key)), cursor: page.length && page.length < keys.length ? page.at(-1) : undefined };
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export class JotStore {
|
|
17
|
+
constructor(adapter) {
|
|
18
|
+
this.adapter = adapter;
|
|
19
|
+
}
|
|
20
|
+
get(key) { return this.adapter.get(key); }
|
|
21
|
+
set(key, value) { return this.adapter.set(key, value); }
|
|
22
|
+
delete(key) { return this.adapter.delete(key); }
|
|
23
|
+
keys(prefix = '') { return this.adapter.keys(prefix); }
|
|
24
|
+
scan(prefix = '', options) { return this.adapter.scan(prefix, options); }
|
|
25
|
+
async append(stream, value) {
|
|
26
|
+
const key = `${stream}:${Date.now().toString().padStart(13, '0')}:${crypto.randomUUID()}`;
|
|
27
|
+
await this.set(key, value);
|
|
28
|
+
return key;
|
|
29
|
+
}
|
|
30
|
+
async retention(prefix, maxAgeMs) {
|
|
31
|
+
if ('retention' in this.adapter)
|
|
32
|
+
return this.adapter.retention(prefix, maxAgeMs);
|
|
33
|
+
}
|
|
34
|
+
async appendCapped(stream, value, max) {
|
|
35
|
+
const key = await this.append(stream, value);
|
|
36
|
+
const keys = await this.keys(`${stream}:`);
|
|
37
|
+
await Promise.all(keys.slice(0, Math.max(0, keys.length - max)).map((old) => this.delete(old)));
|
|
38
|
+
return key;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export class SQLiteStoreAdapter {
|
|
42
|
+
constructor(sql) {
|
|
43
|
+
this.sql = sql;
|
|
44
|
+
this.sql.exec('CREATE TABLE IF NOT EXISTS jotdb_records (key TEXT PRIMARY KEY, value TEXT NOT NULL, created_at INTEGER NOT NULL)');
|
|
45
|
+
this.sql.exec('CREATE INDEX IF NOT EXISTS jotdb_records_key_idx ON jotdb_records(key)');
|
|
46
|
+
}
|
|
47
|
+
async get(key) {
|
|
48
|
+
const row = this.sql.exec('SELECT value FROM jotdb_records WHERE key = ?', key).one();
|
|
49
|
+
return row ? JSON.parse(row.value) : undefined;
|
|
50
|
+
}
|
|
51
|
+
async set(key, value) {
|
|
52
|
+
this.sql.exec('INSERT INTO jotdb_records(key, value, created_at) VALUES (?, ?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value, created_at = excluded.created_at', key, JSON.stringify(value), Date.now());
|
|
53
|
+
}
|
|
54
|
+
async delete(key) { this.sql.exec('DELETE FROM jotdb_records WHERE key = ?', key); }
|
|
55
|
+
async keys(prefix = '') { return this.sql.exec('SELECT key FROM jotdb_records WHERE key LIKE ? ORDER BY key', `${prefix}%`).toArray().map((row) => row.key); }
|
|
56
|
+
async scan(prefix = '', options = {}) {
|
|
57
|
+
const limit = options.limit ?? 100;
|
|
58
|
+
const rows = this.sql.exec('SELECT key, value FROM jotdb_records WHERE key LIKE ? AND (? IS NULL OR key > ?) ORDER BY key LIMIT ?', `${prefix}%`, options.cursor ?? null, options.cursor ?? null, limit).toArray();
|
|
59
|
+
return { items: rows.map((row) => JSON.parse(row.value)), cursor: rows.length === limit ? rows.at(-1).key : undefined };
|
|
60
|
+
}
|
|
61
|
+
async retention(prefix, maxAgeMs) { this.sql.exec('DELETE FROM jotdb_records WHERE key LIKE ? AND created_at < ?', `${prefix}%`, Date.now() - maxAgeMs); }
|
|
62
|
+
}
|
|
63
|
+
export function createMemoryJotDB() { return new JotStore(new MemoryStoreAdapter()); }
|
package/dist/store.d.ts
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
export interface StoreCursor<T> {
|
|
2
|
+
items: T[];
|
|
3
|
+
cursor?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface StoreAdapter<T> {
|
|
6
|
+
get(key: string): Promise<T | undefined>;
|
|
7
|
+
set(key: string, value: T): Promise<void>;
|
|
8
|
+
delete(key: string): Promise<void>;
|
|
9
|
+
keys(prefix?: string): Promise<string[]>;
|
|
10
|
+
scan(prefix?: string, options?: {
|
|
11
|
+
limit?: number;
|
|
12
|
+
cursor?: string;
|
|
13
|
+
}): Promise<StoreCursor<T>>;
|
|
14
|
+
}
|
|
15
|
+
export declare class MemoryStoreAdapter<T> implements StoreAdapter<T> {
|
|
16
|
+
private data;
|
|
17
|
+
get(key: string): Promise<T | undefined>;
|
|
18
|
+
set(key: string, value: T): Promise<void>;
|
|
19
|
+
delete(key: string): Promise<void>;
|
|
20
|
+
keys(prefix?: string): Promise<string[]>;
|
|
21
|
+
scan(prefix?: string, options?: {
|
|
22
|
+
limit?: number;
|
|
23
|
+
cursor?: string;
|
|
24
|
+
}): Promise<{
|
|
25
|
+
items: NonNullable<T>[];
|
|
26
|
+
cursor: string | undefined;
|
|
27
|
+
}>;
|
|
28
|
+
}
|
|
29
|
+
export declare class JotStore<T> {
|
|
30
|
+
private adapter;
|
|
31
|
+
constructor(adapter: StoreAdapter<T>);
|
|
32
|
+
get(key: string): Promise<T | undefined>;
|
|
33
|
+
set(key: string, value: T): Promise<void>;
|
|
34
|
+
delete(key: string): Promise<void>;
|
|
35
|
+
keys(prefix?: string): Promise<string[]>;
|
|
36
|
+
scan(prefix?: string, options?: {
|
|
37
|
+
limit?: number;
|
|
38
|
+
cursor?: string;
|
|
39
|
+
}): Promise<StoreCursor<T>>;
|
|
40
|
+
append(stream: string, value: T): Promise<string>;
|
|
41
|
+
retention(prefix: string, maxAgeMs: number): Promise<void>;
|
|
42
|
+
appendCapped(stream: string, value: T, max: number): Promise<string>;
|
|
43
|
+
}
|
|
44
|
+
export declare class SQLiteStoreAdapter<T> implements StoreAdapter<T> {
|
|
45
|
+
private sql;
|
|
46
|
+
constructor(sql: any);
|
|
47
|
+
get(key: string): Promise<T | undefined>;
|
|
48
|
+
set(key: string, value: T): Promise<void>;
|
|
49
|
+
delete(key: string): Promise<void>;
|
|
50
|
+
keys(prefix?: string): Promise<any>;
|
|
51
|
+
scan(prefix?: string, options?: {
|
|
52
|
+
limit?: number;
|
|
53
|
+
cursor?: string;
|
|
54
|
+
}): Promise<{
|
|
55
|
+
items: any;
|
|
56
|
+
cursor: any;
|
|
57
|
+
}>;
|
|
58
|
+
retention(prefix: string, maxAgeMs: number): Promise<void>;
|
|
59
|
+
}
|
|
60
|
+
export declare function createMemoryJotDB<T>(): JotStore<T>;
|
package/dist/store.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export class MemoryStoreAdapter {
|
|
2
|
+
data = new Map();
|
|
3
|
+
async get(key) { return this.data.get(key); }
|
|
4
|
+
async set(key, value) { this.data.set(key, value); }
|
|
5
|
+
async delete(key) { this.data.delete(key); }
|
|
6
|
+
async keys(prefix = '') { return [...this.data.keys()].sort().filter((key) => key.startsWith(prefix)); }
|
|
7
|
+
async scan(prefix = '', options = {}) {
|
|
8
|
+
const keys = await this.keys(prefix);
|
|
9
|
+
const cursor = options.cursor;
|
|
10
|
+
const start = cursor ? Math.max(0, keys.findIndex((key) => key > cursor)) : 0;
|
|
11
|
+
const page = keys.slice(start, options.limit ? start + options.limit : undefined);
|
|
12
|
+
return { items: page.map((key) => this.data.get(key)), cursor: page.length && page.length < keys.length ? page.at(-1) : undefined };
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class JotStore {
|
|
16
|
+
adapter;
|
|
17
|
+
constructor(adapter) {
|
|
18
|
+
this.adapter = adapter;
|
|
19
|
+
}
|
|
20
|
+
get(key) { return this.adapter.get(key); }
|
|
21
|
+
set(key, value) { return this.adapter.set(key, value); }
|
|
22
|
+
delete(key) { return this.adapter.delete(key); }
|
|
23
|
+
keys(prefix = '') { return this.adapter.keys(prefix); }
|
|
24
|
+
scan(prefix = '', options) { return this.adapter.scan(prefix, options); }
|
|
25
|
+
async append(stream, value) {
|
|
26
|
+
const key = `${stream}:${Date.now().toString().padStart(13, '0')}:${crypto.randomUUID()}`;
|
|
27
|
+
await this.set(key, value);
|
|
28
|
+
return key;
|
|
29
|
+
}
|
|
30
|
+
async retention(prefix, maxAgeMs) {
|
|
31
|
+
if ('retention' in this.adapter)
|
|
32
|
+
return this.adapter.retention(prefix, maxAgeMs);
|
|
33
|
+
}
|
|
34
|
+
async appendCapped(stream, value, max) {
|
|
35
|
+
const key = await this.append(stream, value);
|
|
36
|
+
const keys = await this.keys(`${stream}:`);
|
|
37
|
+
await Promise.all(keys.slice(0, Math.max(0, keys.length - max)).map((old) => this.delete(old)));
|
|
38
|
+
return key;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export class SQLiteStoreAdapter {
|
|
42
|
+
sql;
|
|
43
|
+
constructor(sql) {
|
|
44
|
+
this.sql = sql;
|
|
45
|
+
this.sql.exec('CREATE TABLE IF NOT EXISTS jotdb_records (key TEXT PRIMARY KEY, value TEXT NOT NULL, created_at INTEGER NOT NULL)');
|
|
46
|
+
this.sql.exec('CREATE INDEX IF NOT EXISTS jotdb_records_key_idx ON jotdb_records(key)');
|
|
47
|
+
}
|
|
48
|
+
async get(key) {
|
|
49
|
+
const row = this.sql.exec('SELECT value FROM jotdb_records WHERE key = ?', key).one();
|
|
50
|
+
return row ? JSON.parse(row.value) : undefined;
|
|
51
|
+
}
|
|
52
|
+
async set(key, value) {
|
|
53
|
+
this.sql.exec('INSERT INTO jotdb_records(key, value, created_at) VALUES (?, ?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value, created_at = excluded.created_at', key, JSON.stringify(value), Date.now());
|
|
54
|
+
}
|
|
55
|
+
async delete(key) { this.sql.exec('DELETE FROM jotdb_records WHERE key = ?', key); }
|
|
56
|
+
async keys(prefix = '') { return this.sql.exec('SELECT key FROM jotdb_records WHERE key LIKE ? ORDER BY key', `${prefix}%`).toArray().map((row) => row.key); }
|
|
57
|
+
async scan(prefix = '', options = {}) {
|
|
58
|
+
const limit = options.limit ?? 100;
|
|
59
|
+
const rows = this.sql.exec('SELECT key, value FROM jotdb_records WHERE key LIKE ? AND (? IS NULL OR key > ?) ORDER BY key LIMIT ?', `${prefix}%`, options.cursor ?? null, options.cursor ?? null, limit).toArray();
|
|
60
|
+
return { items: rows.map((row) => JSON.parse(row.value)), cursor: rows.length === limit ? rows.at(-1).key : undefined };
|
|
61
|
+
}
|
|
62
|
+
async retention(prefix, maxAgeMs) { this.sql.exec('DELETE FROM jotdb_records WHERE key LIKE ? AND created_at < ?', `${prefix}%`, Date.now() - maxAgeMs); }
|
|
63
|
+
}
|
|
64
|
+
export function createMemoryJotDB() { return new JotStore(new MemoryStoreAdapter()); }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jotdb",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -10,18 +10,29 @@
|
|
|
10
10
|
}
|
|
11
11
|
},
|
|
12
12
|
"types": "dist/index.d.ts",
|
|
13
|
+
"files": [
|
|
14
|
+
"dist",
|
|
15
|
+
"README.md",
|
|
16
|
+
"LICENSE"
|
|
17
|
+
],
|
|
13
18
|
"scripts": {
|
|
14
19
|
"dev": "wrangler dev --port 5173",
|
|
15
20
|
"deploy": "wrangler deploy",
|
|
16
21
|
"patch": "npm version patch",
|
|
17
|
-
"publish": "npm publish --access public"
|
|
22
|
+
"publish": "npm publish --access public",
|
|
23
|
+
"build": "tsc",
|
|
24
|
+
"test": "vitest run"
|
|
18
25
|
},
|
|
19
26
|
"devDependencies": {
|
|
20
|
-
"
|
|
21
|
-
"@
|
|
22
|
-
"hono": "^4.
|
|
23
|
-
"
|
|
24
|
-
"
|
|
27
|
+
"@cloudflare/workers-types": "^4.20260608.1",
|
|
28
|
+
"@sveltejs/vite-plugin-svelte": "^7.1.2",
|
|
29
|
+
"hono": "^4.12.24",
|
|
30
|
+
"svelte": "^5.56.3",
|
|
31
|
+
"typescript": "^6.0.3",
|
|
32
|
+
"vite": "^8.0.16",
|
|
33
|
+
"vitest": "^4.1.8",
|
|
34
|
+
"wrangler": "^4.98.0",
|
|
35
|
+
"zod": "^4.4.3"
|
|
25
36
|
},
|
|
26
37
|
"repository": {
|
|
27
38
|
"type": "git",
|
package/bun.lock
DELETED
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"lockfileVersion": 1,
|
|
3
|
-
"workspaces": {
|
|
4
|
-
"": {
|
|
5
|
-
"name": "jotdb",
|
|
6
|
-
"devDependencies": {
|
|
7
|
-
"@cloudflare/workers-types": "^4.20250517.0",
|
|
8
|
-
"hono": "^4.7.10",
|
|
9
|
-
"typescript": "^5.8.3",
|
|
10
|
-
"wrangler": "^4.15.2",
|
|
11
|
-
"zod": "^3.24.4",
|
|
12
|
-
},
|
|
13
|
-
},
|
|
14
|
-
},
|
|
15
|
-
"packages": {
|
|
16
|
-
"@cloudflare/kv-asset-handler": ["@cloudflare/kv-asset-handler@0.4.0", "", { "dependencies": { "mime": "^3.0.0" } }, "sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA=="],
|
|
17
|
-
|
|
18
|
-
"@cloudflare/unenv-preset": ["@cloudflare/unenv-preset@2.3.1", "", { "peerDependencies": { "unenv": "2.0.0-rc.15", "workerd": "^1.20250320.0" }, "optionalPeers": ["workerd"] }, "sha512-Xq57Qd+ADpt6hibcVBO0uLG9zzRgyRhfCUgBT9s+g3+3Ivg5zDyVgLFy40ES1VdNcu8rPNSivm9A+kGP5IVaPg=="],
|
|
19
|
-
|
|
20
|
-
"@cloudflare/workerd-darwin-64": ["@cloudflare/workerd-darwin-64@1.20250508.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-9x09MrA9Y5RQs3zqWvWns8xHgM2pVNXWpeJ+3hQYu4PrwPFZXtTD6b/iMmOnlYKzINlREq1RGeEybMFyWEUlUg=="],
|
|
21
|
-
|
|
22
|
-
"@cloudflare/workerd-darwin-arm64": ["@cloudflare/workerd-darwin-arm64@1.20250508.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-0Ili+nE2LLRzYue/yPc1pepSyNNg6LxR3/ng/rlQzVQUxPXIXldHFkJ/ynsYwQnAcf6OxasSi/kbTm6yvDoSAQ=="],
|
|
23
|
-
|
|
24
|
-
"@cloudflare/workerd-linux-64": ["@cloudflare/workerd-linux-64@1.20250508.0", "", { "os": "linux", "cpu": "x64" }, "sha512-5saVrZ3uVwYxvBa7BaonXjeqB6X0YF3ak05qvBaWcmZ3FNmnarMm2W8842cnbhnckDVBpB/iDo51Sy6Y7y1jcw=="],
|
|
25
|
-
|
|
26
|
-
"@cloudflare/workerd-linux-arm64": ["@cloudflare/workerd-linux-arm64@1.20250508.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-muQe1pkxRi3eaq1Q417xvfGd2SlktbLTzNhT5Yftsx8OecWrYuB8i4ttR6Nr5ER06bfEj0FqQjqJJhcp6wLLUQ=="],
|
|
27
|
-
|
|
28
|
-
"@cloudflare/workerd-windows-64": ["@cloudflare/workerd-windows-64@1.20250508.0", "", { "os": "win32", "cpu": "x64" }, "sha512-EJj8iTWFMqjgvZUxxNvzK7frA1JMFi3y/9eDIdZPL/OaQh3cmk5Lai5DCXsKYUxfooMBZWYTp53zOLrvuJI8VQ=="],
|
|
29
|
-
|
|
30
|
-
"@cloudflare/workers-types": ["@cloudflare/workers-types@4.20250517.0", "", {}, "sha512-DYttpORVcvKGXI+zQDHBO6r0pDsAc8fkmJg0x1PK7+t0ijfc6nMVnUF/IVJIllScOWWHHCBknCbCmV0eGq2njA=="],
|
|
31
|
-
|
|
32
|
-
"@cspotcode/source-map-support": ["@cspotcode/source-map-support@0.8.1", "", { "dependencies": { "@jridgewell/trace-mapping": "0.3.9" } }, "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw=="],
|
|
33
|
-
|
|
34
|
-
"@emnapi/runtime": ["@emnapi/runtime@1.4.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ=="],
|
|
35
|
-
|
|
36
|
-
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.4", "", { "os": "aix", "cpu": "ppc64" }, "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q=="],
|
|
37
|
-
|
|
38
|
-
"@esbuild/android-arm": ["@esbuild/android-arm@0.25.4", "", { "os": "android", "cpu": "arm" }, "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ=="],
|
|
39
|
-
|
|
40
|
-
"@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.4", "", { "os": "android", "cpu": "arm64" }, "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A=="],
|
|
41
|
-
|
|
42
|
-
"@esbuild/android-x64": ["@esbuild/android-x64@0.25.4", "", { "os": "android", "cpu": "x64" }, "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ=="],
|
|
43
|
-
|
|
44
|
-
"@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g=="],
|
|
45
|
-
|
|
46
|
-
"@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A=="],
|
|
47
|
-
|
|
48
|
-
"@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.4", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ=="],
|
|
49
|
-
|
|
50
|
-
"@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.4", "", { "os": "freebsd", "cpu": "x64" }, "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ=="],
|
|
51
|
-
|
|
52
|
-
"@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.4", "", { "os": "linux", "cpu": "arm" }, "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ=="],
|
|
53
|
-
|
|
54
|
-
"@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ=="],
|
|
55
|
-
|
|
56
|
-
"@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.4", "", { "os": "linux", "cpu": "ia32" }, "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ=="],
|
|
57
|
-
|
|
58
|
-
"@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.4", "", { "os": "linux", "cpu": "none" }, "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA=="],
|
|
59
|
-
|
|
60
|
-
"@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.4", "", { "os": "linux", "cpu": "none" }, "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg=="],
|
|
61
|
-
|
|
62
|
-
"@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag=="],
|
|
63
|
-
|
|
64
|
-
"@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.4", "", { "os": "linux", "cpu": "none" }, "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA=="],
|
|
65
|
-
|
|
66
|
-
"@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g=="],
|
|
67
|
-
|
|
68
|
-
"@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.4", "", { "os": "linux", "cpu": "x64" }, "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA=="],
|
|
69
|
-
|
|
70
|
-
"@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.4", "", { "os": "none", "cpu": "arm64" }, "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ=="],
|
|
71
|
-
|
|
72
|
-
"@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.4", "", { "os": "none", "cpu": "x64" }, "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw=="],
|
|
73
|
-
|
|
74
|
-
"@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.4", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A=="],
|
|
75
|
-
|
|
76
|
-
"@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.4", "", { "os": "openbsd", "cpu": "x64" }, "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw=="],
|
|
77
|
-
|
|
78
|
-
"@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.4", "", { "os": "sunos", "cpu": "x64" }, "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q=="],
|
|
79
|
-
|
|
80
|
-
"@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ=="],
|
|
81
|
-
|
|
82
|
-
"@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.4", "", { "os": "win32", "cpu": "ia32" }, "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg=="],
|
|
83
|
-
|
|
84
|
-
"@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.4", "", { "os": "win32", "cpu": "x64" }, "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ=="],
|
|
85
|
-
|
|
86
|
-
"@fastify/busboy": ["@fastify/busboy@2.1.1", "", {}, "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA=="],
|
|
87
|
-
|
|
88
|
-
"@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.0.4" }, "os": "darwin", "cpu": "arm64" }, "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ=="],
|
|
89
|
-
|
|
90
|
-
"@img/sharp-darwin-x64": ["@img/sharp-darwin-x64@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.0.4" }, "os": "darwin", "cpu": "x64" }, "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q=="],
|
|
91
|
-
|
|
92
|
-
"@img/sharp-libvips-darwin-arm64": ["@img/sharp-libvips-darwin-arm64@1.0.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg=="],
|
|
93
|
-
|
|
94
|
-
"@img/sharp-libvips-darwin-x64": ["@img/sharp-libvips-darwin-x64@1.0.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ=="],
|
|
95
|
-
|
|
96
|
-
"@img/sharp-libvips-linux-arm": ["@img/sharp-libvips-linux-arm@1.0.5", "", { "os": "linux", "cpu": "arm" }, "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g=="],
|
|
97
|
-
|
|
98
|
-
"@img/sharp-libvips-linux-arm64": ["@img/sharp-libvips-linux-arm64@1.0.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA=="],
|
|
99
|
-
|
|
100
|
-
"@img/sharp-libvips-linux-s390x": ["@img/sharp-libvips-linux-s390x@1.0.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA=="],
|
|
101
|
-
|
|
102
|
-
"@img/sharp-libvips-linux-x64": ["@img/sharp-libvips-linux-x64@1.0.4", "", { "os": "linux", "cpu": "x64" }, "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw=="],
|
|
103
|
-
|
|
104
|
-
"@img/sharp-libvips-linuxmusl-arm64": ["@img/sharp-libvips-linuxmusl-arm64@1.0.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA=="],
|
|
105
|
-
|
|
106
|
-
"@img/sharp-libvips-linuxmusl-x64": ["@img/sharp-libvips-linuxmusl-x64@1.0.4", "", { "os": "linux", "cpu": "x64" }, "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw=="],
|
|
107
|
-
|
|
108
|
-
"@img/sharp-linux-arm": ["@img/sharp-linux-arm@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm": "1.0.5" }, "os": "linux", "cpu": "arm" }, "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ=="],
|
|
109
|
-
|
|
110
|
-
"@img/sharp-linux-arm64": ["@img/sharp-linux-arm64@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm64": "1.0.4" }, "os": "linux", "cpu": "arm64" }, "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA=="],
|
|
111
|
-
|
|
112
|
-
"@img/sharp-linux-s390x": ["@img/sharp-linux-s390x@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-s390x": "1.0.4" }, "os": "linux", "cpu": "s390x" }, "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q=="],
|
|
113
|
-
|
|
114
|
-
"@img/sharp-linux-x64": ["@img/sharp-linux-x64@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-x64": "1.0.4" }, "os": "linux", "cpu": "x64" }, "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA=="],
|
|
115
|
-
|
|
116
|
-
"@img/sharp-linuxmusl-arm64": ["@img/sharp-linuxmusl-arm64@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" }, "os": "linux", "cpu": "arm64" }, "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g=="],
|
|
117
|
-
|
|
118
|
-
"@img/sharp-linuxmusl-x64": ["@img/sharp-linuxmusl-x64@0.33.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-x64": "1.0.4" }, "os": "linux", "cpu": "x64" }, "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw=="],
|
|
119
|
-
|
|
120
|
-
"@img/sharp-wasm32": ["@img/sharp-wasm32@0.33.5", "", { "dependencies": { "@emnapi/runtime": "^1.2.0" }, "cpu": "none" }, "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg=="],
|
|
121
|
-
|
|
122
|
-
"@img/sharp-win32-ia32": ["@img/sharp-win32-ia32@0.33.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ=="],
|
|
123
|
-
|
|
124
|
-
"@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.33.5", "", { "os": "win32", "cpu": "x64" }, "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg=="],
|
|
125
|
-
|
|
126
|
-
"@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="],
|
|
127
|
-
|
|
128
|
-
"@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.0", "", {}, "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="],
|
|
129
|
-
|
|
130
|
-
"@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.9", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ=="],
|
|
131
|
-
|
|
132
|
-
"acorn": ["acorn@8.14.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA=="],
|
|
133
|
-
|
|
134
|
-
"acorn-walk": ["acorn-walk@8.3.2", "", {}, "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A=="],
|
|
135
|
-
|
|
136
|
-
"as-table": ["as-table@1.0.55", "", { "dependencies": { "printable-characters": "^1.0.42" } }, "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ=="],
|
|
137
|
-
|
|
138
|
-
"blake3-wasm": ["blake3-wasm@2.1.5", "", {}, "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g=="],
|
|
139
|
-
|
|
140
|
-
"color": ["color@4.2.3", "", { "dependencies": { "color-convert": "^2.0.1", "color-string": "^1.9.0" } }, "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A=="],
|
|
141
|
-
|
|
142
|
-
"color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="],
|
|
143
|
-
|
|
144
|
-
"color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="],
|
|
145
|
-
|
|
146
|
-
"color-string": ["color-string@1.9.1", "", { "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg=="],
|
|
147
|
-
|
|
148
|
-
"cookie": ["cookie@0.7.2", "", {}, "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="],
|
|
149
|
-
|
|
150
|
-
"data-uri-to-buffer": ["data-uri-to-buffer@2.0.2", "", {}, "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA=="],
|
|
151
|
-
|
|
152
|
-
"defu": ["defu@6.1.4", "", {}, "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg=="],
|
|
153
|
-
|
|
154
|
-
"detect-libc": ["detect-libc@2.0.4", "", {}, "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA=="],
|
|
155
|
-
|
|
156
|
-
"esbuild": ["esbuild@0.25.4", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.4", "@esbuild/android-arm": "0.25.4", "@esbuild/android-arm64": "0.25.4", "@esbuild/android-x64": "0.25.4", "@esbuild/darwin-arm64": "0.25.4", "@esbuild/darwin-x64": "0.25.4", "@esbuild/freebsd-arm64": "0.25.4", "@esbuild/freebsd-x64": "0.25.4", "@esbuild/linux-arm": "0.25.4", "@esbuild/linux-arm64": "0.25.4", "@esbuild/linux-ia32": "0.25.4", "@esbuild/linux-loong64": "0.25.4", "@esbuild/linux-mips64el": "0.25.4", "@esbuild/linux-ppc64": "0.25.4", "@esbuild/linux-riscv64": "0.25.4", "@esbuild/linux-s390x": "0.25.4", "@esbuild/linux-x64": "0.25.4", "@esbuild/netbsd-arm64": "0.25.4", "@esbuild/netbsd-x64": "0.25.4", "@esbuild/openbsd-arm64": "0.25.4", "@esbuild/openbsd-x64": "0.25.4", "@esbuild/sunos-x64": "0.25.4", "@esbuild/win32-arm64": "0.25.4", "@esbuild/win32-ia32": "0.25.4", "@esbuild/win32-x64": "0.25.4" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q=="],
|
|
157
|
-
|
|
158
|
-
"exit-hook": ["exit-hook@2.2.1", "", {}, "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw=="],
|
|
159
|
-
|
|
160
|
-
"exsolve": ["exsolve@1.0.5", "", {}, "sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg=="],
|
|
161
|
-
|
|
162
|
-
"fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
|
|
163
|
-
|
|
164
|
-
"get-source": ["get-source@2.0.12", "", { "dependencies": { "data-uri-to-buffer": "^2.0.0", "source-map": "^0.6.1" } }, "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w=="],
|
|
165
|
-
|
|
166
|
-
"glob-to-regexp": ["glob-to-regexp@0.4.1", "", {}, "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="],
|
|
167
|
-
|
|
168
|
-
"hono": ["hono@4.7.10", "", {}, "sha512-QkACju9MiN59CKSY5JsGZCYmPZkA6sIW6OFCUp7qDjZu6S6KHtJHhAc9Uy9mV9F8PJ1/HQ3ybZF2yjCa/73fvQ=="],
|
|
169
|
-
|
|
170
|
-
"is-arrayish": ["is-arrayish@0.3.2", "", {}, "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="],
|
|
171
|
-
|
|
172
|
-
"mime": ["mime@3.0.0", "", { "bin": { "mime": "cli.js" } }, "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A=="],
|
|
173
|
-
|
|
174
|
-
"miniflare": ["miniflare@4.20250508.2", "", { "dependencies": { "@cspotcode/source-map-support": "0.8.1", "acorn": "8.14.0", "acorn-walk": "8.3.2", "exit-hook": "2.2.1", "glob-to-regexp": "0.4.1", "stoppable": "1.1.0", "undici": "^5.28.5", "workerd": "1.20250508.0", "ws": "8.18.0", "youch": "3.3.4", "zod": "3.22.3" }, "bin": { "miniflare": "bootstrap.js" } }, "sha512-+2XoHLSbY49LNQgZoAJRX+SyUwC767Cz46pgx4T/j1YGKSrMzAxCOk59b12QoFNnN50Gtd9HkT3ukZn2nzrIVw=="],
|
|
175
|
-
|
|
176
|
-
"mustache": ["mustache@4.2.0", "", { "bin": { "mustache": "bin/mustache" } }, "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ=="],
|
|
177
|
-
|
|
178
|
-
"ohash": ["ohash@2.0.11", "", {}, "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ=="],
|
|
179
|
-
|
|
180
|
-
"path-to-regexp": ["path-to-regexp@6.3.0", "", {}, "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ=="],
|
|
181
|
-
|
|
182
|
-
"pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="],
|
|
183
|
-
|
|
184
|
-
"printable-characters": ["printable-characters@1.0.42", "", {}, "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ=="],
|
|
185
|
-
|
|
186
|
-
"semver": ["semver@7.7.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="],
|
|
187
|
-
|
|
188
|
-
"sharp": ["sharp@0.33.5", "", { "dependencies": { "color": "^4.2.3", "detect-libc": "^2.0.3", "semver": "^7.6.3" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.33.5", "@img/sharp-darwin-x64": "0.33.5", "@img/sharp-libvips-darwin-arm64": "1.0.4", "@img/sharp-libvips-darwin-x64": "1.0.4", "@img/sharp-libvips-linux-arm": "1.0.5", "@img/sharp-libvips-linux-arm64": "1.0.4", "@img/sharp-libvips-linux-s390x": "1.0.4", "@img/sharp-libvips-linux-x64": "1.0.4", "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", "@img/sharp-libvips-linuxmusl-x64": "1.0.4", "@img/sharp-linux-arm": "0.33.5", "@img/sharp-linux-arm64": "0.33.5", "@img/sharp-linux-s390x": "0.33.5", "@img/sharp-linux-x64": "0.33.5", "@img/sharp-linuxmusl-arm64": "0.33.5", "@img/sharp-linuxmusl-x64": "0.33.5", "@img/sharp-wasm32": "0.33.5", "@img/sharp-win32-ia32": "0.33.5", "@img/sharp-win32-x64": "0.33.5" } }, "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw=="],
|
|
189
|
-
|
|
190
|
-
"simple-swizzle": ["simple-swizzle@0.2.2", "", { "dependencies": { "is-arrayish": "^0.3.1" } }, "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg=="],
|
|
191
|
-
|
|
192
|
-
"source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="],
|
|
193
|
-
|
|
194
|
-
"stacktracey": ["stacktracey@2.1.8", "", { "dependencies": { "as-table": "^1.0.36", "get-source": "^2.0.12" } }, "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw=="],
|
|
195
|
-
|
|
196
|
-
"stoppable": ["stoppable@1.1.0", "", {}, "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw=="],
|
|
197
|
-
|
|
198
|
-
"tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
|
199
|
-
|
|
200
|
-
"typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="],
|
|
201
|
-
|
|
202
|
-
"ufo": ["ufo@1.6.1", "", {}, "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA=="],
|
|
203
|
-
|
|
204
|
-
"undici": ["undici@5.29.0", "", { "dependencies": { "@fastify/busboy": "^2.0.0" } }, "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg=="],
|
|
205
|
-
|
|
206
|
-
"unenv": ["unenv@2.0.0-rc.15", "", { "dependencies": { "defu": "^6.1.4", "exsolve": "^1.0.4", "ohash": "^2.0.11", "pathe": "^2.0.3", "ufo": "^1.5.4" } }, "sha512-J/rEIZU8w6FOfLNz/hNKsnY+fFHWnu9MH4yRbSZF3xbbGHovcetXPs7sD+9p8L6CeNC//I9bhRYAOsBt2u7/OA=="],
|
|
207
|
-
|
|
208
|
-
"workerd": ["workerd@1.20250508.0", "", { "optionalDependencies": { "@cloudflare/workerd-darwin-64": "1.20250508.0", "@cloudflare/workerd-darwin-arm64": "1.20250508.0", "@cloudflare/workerd-linux-64": "1.20250508.0", "@cloudflare/workerd-linux-arm64": "1.20250508.0", "@cloudflare/workerd-windows-64": "1.20250508.0" }, "bin": { "workerd": "bin/workerd" } }, "sha512-ffLxe7dXSuGoA6jb3Qx2SClIV1aLHfJQ6RhGhzYHjQgv7dL6fdUOSIIGgzmu2mRKs+WFSujp6c8WgKquco6w3w=="],
|
|
209
|
-
|
|
210
|
-
"wrangler": ["wrangler@4.15.2", "", { "dependencies": { "@cloudflare/kv-asset-handler": "0.4.0", "@cloudflare/unenv-preset": "2.3.1", "blake3-wasm": "2.1.5", "esbuild": "0.25.4", "miniflare": "4.20250508.2", "path-to-regexp": "6.3.0", "unenv": "2.0.0-rc.15", "workerd": "1.20250508.0" }, "optionalDependencies": { "fsevents": "~2.3.2", "sharp": "^0.33.5" }, "peerDependencies": { "@cloudflare/workers-types": "^4.20250508.0" }, "optionalPeers": ["@cloudflare/workers-types"], "bin": { "wrangler": "bin/wrangler.js", "wrangler2": "bin/wrangler.js" } }, "sha512-Rv7zP61DOVzIS3af+/1UzJkRVpqu6VDRi6uIVMiwD1LkXG5Ov08tv94jgnE9bSjVf0paQg3dl0E89h+wQ0x/Bw=="],
|
|
211
|
-
|
|
212
|
-
"ws": ["ws@8.18.0", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw=="],
|
|
213
|
-
|
|
214
|
-
"youch": ["youch@3.3.4", "", { "dependencies": { "cookie": "^0.7.1", "mustache": "^4.2.0", "stacktracey": "^2.1.8" } }, "sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg=="],
|
|
215
|
-
|
|
216
|
-
"zod": ["zod@3.24.4", "", {}, "sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg=="],
|
|
217
|
-
|
|
218
|
-
"miniflare/zod": ["zod@3.22.3", "", {}, "sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug=="],
|
|
219
|
-
}
|
|
220
|
-
}
|