mirror of
https://github.com/djdevin/recflare.git
synced 2026-09-09 07:01:27 -07:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e62cb19b97 |
@@ -87,11 +87,6 @@ RECFLARE_DOMAIN=rec.example.com
|
||||
# RECFLARE_MAX_ROOMS_PER_ACCOUNT=10
|
||||
# RECFLARE_MAX_CLUBS_PER_ACCOUNT=10
|
||||
|
||||
# Largest binary the storage worker accepts in one upload, in bytes. The default is
|
||||
# 64 MiB. The endpoint rejects larger files with HTTP 413 before writing to R2. This
|
||||
# value must be a positive integer; zero or an invalid value restores the default.
|
||||
# RECFLARE_MAX_UPLOAD_BYTES=67108864
|
||||
|
||||
# Rooms to switch out at matchmake time (`match`), as comma-separated <fromRoomId>=<to>
|
||||
# pairs, where <to> is a room id or room name. This is how a stock RRO room is replaced
|
||||
# with your own: 2=MyHub sends everyone who matchmakes into the Rec Center (room 2) to the
|
||||
|
||||
+10
-11
@@ -193,17 +193,16 @@ the same `.env` you already created. `.env.example` carries each one commented o
|
||||
its built-in default: copy the lines you want to change into your `.env`, uncomment them,
|
||||
edit the value, then re-deploy the worker that reads them.
|
||||
|
||||
| `.env` variable | Read by | Default | What it does |
|
||||
| --------------------------------------- | --------- | ---------- | -------------------------------------------------------------- |
|
||||
| `RECFLARE_MAX_ACCOUNTS_PER_PLATFORM_ID` | `auth` | `3` | Accounts one Steam-verified identity may create. `0` disables. |
|
||||
| `RECFLARE_MAX_ACCOUNTS_PER_IP` | `auth` | `3` | Accounts one signup IP may create. `0` disables. |
|
||||
| `RECFLARE_STARTING_TOKENS` | `econ` | `10000` | RecCenterTokens a new player is granted. |
|
||||
| `RECFLARE_MAX_UPLOAD_BYTES` | `storage` | `67108864` | Maximum binary upload size; larger files receive HTTP 413. |
|
||||
| `RECFLARE_ROOM_REDIRECTS` | `match` | unset | Rooms to switch out on matchmake, e.g. `2=MyHub`. |
|
||||
| `RECFLARE_PHOTON_REALTIME_APP_ID` | `match` | empty | Your Photon Realtime app id. No app ships with recflare. |
|
||||
| `RECFLARE_PHOTON_VOICE_APP_ID` | `match` | empty | Your Photon Voice app id. |
|
||||
| `RECFLARE_PHOTON_CHAT_APP_ID` | `match` | empty | Your Photon Chat app id. |
|
||||
| `RECFLARE_PHOTON_REGION` | `match` | `us` | Photon region every session is pinned to. |
|
||||
| `.env` variable | Read by | Default | What it does |
|
||||
| --------------------------------------- | ------- | ------- | -------------------------------------------------------------- |
|
||||
| `RECFLARE_MAX_ACCOUNTS_PER_PLATFORM_ID` | `auth` | `3` | Accounts one Steam-verified identity may create. `0` disables. |
|
||||
| `RECFLARE_MAX_ACCOUNTS_PER_IP` | `auth` | `3` | Accounts one signup IP may create. `0` disables. |
|
||||
| `RECFLARE_STARTING_TOKENS` | `econ` | `10000` | RecCenterTokens a new player is granted. |
|
||||
| `RECFLARE_ROOM_REDIRECTS` | `match` | unset | Rooms to switch out on matchmake, e.g. `2=MyHub`. |
|
||||
| `RECFLARE_PHOTON_REALTIME_APP_ID` | `match` | empty | Your Photon Realtime app id. No app ships with recflare. |
|
||||
| `RECFLARE_PHOTON_VOICE_APP_ID` | `match` | empty | Your Photon Voice app id. |
|
||||
| `RECFLARE_PHOTON_CHAT_APP_ID` | `match` | empty | Your Photon Chat app id. |
|
||||
| `RECFLARE_PHOTON_REGION` | `match` | `us` | Photon region every session is pinned to. |
|
||||
|
||||
Then deploy just the worker that reads it:
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"@repo/jwt": "workspace:*",
|
||||
"@standard-community/standard-json": "0.3.5",
|
||||
"@standard-community/standard-openapi": "0.2.9",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"hono-openapi": "1.3.1",
|
||||
"openapi-types": "12.1.3",
|
||||
"workers-tagged-logger": "1.0.1",
|
||||
@@ -32,6 +32,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -149,15 +149,6 @@ describe('auth-gated endpoints', () => {
|
||||
expect(res.status).toBe(401)
|
||||
})
|
||||
|
||||
test('GET /account/me rejects a signed token with a non-canonical account subject', async () => {
|
||||
for (const sub of ['42junk', '42.5', '042', '-42', '9007199254740992']) {
|
||||
const res = await exports.default.fetch(`${ORIGIN}/account/me`, {
|
||||
headers: await bearer(sub),
|
||||
})
|
||||
expect(res.status, sub).toBe(401)
|
||||
}
|
||||
})
|
||||
|
||||
test('GET /account/me returns the self account with a valid token', async () => {
|
||||
const res = await exports.default.fetch(`${ORIGIN}/account/me`, { headers: await bearer() })
|
||||
expect(res.status).toBe(200)
|
||||
@@ -169,7 +160,7 @@ describe('auth-gated endpoints', () => {
|
||||
username: 'Player42',
|
||||
personalPronouns: 0,
|
||||
identityFlags: 0,
|
||||
availableUsernameChanges: 3,
|
||||
availableUsernameChanges: 1,
|
||||
// An unset email is "", not null — the client reads it as a string, and the
|
||||
// hub frame this DTO also rides drops null values outright.
|
||||
email: '',
|
||||
@@ -244,7 +235,7 @@ describe('auth-gated endpoints', () => {
|
||||
expect(body.value).toBe('')
|
||||
})
|
||||
|
||||
test('PUT /account/me/username allows three changes, decrements the counter, then blocks', async () => {
|
||||
test('PUT /account/me/username changes the name, decrements the counter, then blocks', async () => {
|
||||
const headers = {
|
||||
...(await bearer('892')),
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
@@ -269,27 +260,11 @@ describe('auth-gated endpoints', () => {
|
||||
await exports.default.fetch(`${ORIGIN}/account/me`, { headers: await bearer('892') })
|
||||
).json()) as { username: string; availableUsernameChanges: number }
|
||||
expect(me.username).toBe('coachx')
|
||||
expect(me.availableUsernameChanges).toBe(2)
|
||||
expect(me.availableUsernameChanges).toBe(0)
|
||||
|
||||
// The second and third changes consume the rest of the account's allowance.
|
||||
for (const username of ['coachy', 'coachz']) {
|
||||
const changed = await exports.default.fetch(`${ORIGIN}/account/me/username`, {
|
||||
...form({ username }),
|
||||
headers,
|
||||
})
|
||||
expect(changed.status).toBe(200)
|
||||
expect(((await changed.json()) as { success: boolean }).success).toBe(true)
|
||||
}
|
||||
|
||||
const exhausted = (await (
|
||||
await exports.default.fetch(`${ORIGIN}/account/me`, { headers: await bearer('892') })
|
||||
).json()) as { username: string; availableUsernameChanges: number }
|
||||
expect(exhausted.username).toBe('coachz')
|
||||
expect(exhausted.availableUsernameChanges).toBe(0)
|
||||
|
||||
// A fourth change is blocked — no changes remaining (still HTTP 200).
|
||||
// A second change is blocked — no changes remaining (still HTTP 200).
|
||||
const blocked = await exports.default.fetch(`${ORIGIN}/account/me/username`, {
|
||||
...form({ username: 'coachq' }),
|
||||
...form({ username: 'coachy' }),
|
||||
headers,
|
||||
})
|
||||
expect(blocked.status).toBe(200)
|
||||
@@ -590,12 +565,12 @@ describe('name, email and bio validation', () => {
|
||||
expect(body.value).toBe('')
|
||||
}
|
||||
|
||||
// A rationed change must NOT be spent by a refusal: an account starts with three,
|
||||
// The rationed change must NOT be spent by a refusal: an account starts with one,
|
||||
// and burning it on a typo would leave the player stuck with a name they never had.
|
||||
const me = (await (
|
||||
await exports.default.fetch(`${ORIGIN}/account/me`, { headers: await bearer('8801') })
|
||||
).json()) as { availableUsernameChanges: number }
|
||||
expect(me.availableUsernameChanges).toBe(3)
|
||||
expect(me.availableUsernameChanges).toBe(1)
|
||||
|
||||
// 50 is the client's own cap, so a name that long has to be accepted.
|
||||
const ok = await exports.default.fetch(`${ORIGIN}/account/me/username`, {
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
"@repo/jwt": "workspace:*",
|
||||
"@standard-community/standard-json": "0.3.5",
|
||||
"@standard-community/standard-openapi": "0.2.9",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"hono-openapi": "1.3.1",
|
||||
"openapi-types": "12.1.3",
|
||||
"workers-tagged-logger": "1.0.1",
|
||||
@@ -31,6 +31,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"@repo/jwt": "workspace:*",
|
||||
"@standard-community/standard-json": "0.3.5",
|
||||
"@standard-community/standard-openapi": "0.2.9",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"hono-openapi": "1.3.1",
|
||||
"openapi-types": "12.1.3",
|
||||
"workers-tagged-logger": "1.0.1",
|
||||
@@ -34,6 +34,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ import { describeRoute } from 'hono-openapi'
|
||||
import {
|
||||
CURRENT_OUTFIT_SLOT,
|
||||
getOutfit,
|
||||
getOutfits,
|
||||
getOutfitsByAccounts,
|
||||
inventionDescriptionRejection,
|
||||
inventionLongDescriptionRejection,
|
||||
@@ -1022,46 +1021,29 @@ export const avatarRoutes = new Hono<App>({ strict: false })
|
||||
}
|
||||
)
|
||||
|
||||
// The caller's outfit wardrobe — every slot they have saved, ordered by slot. The same
|
||||
// read as `econ`'s `GET /api/avatar/v3/saved`, on the bare path the newer client uses:
|
||||
// both worker's write paths land in the shared `outfit` table, so both list endpoints
|
||||
// serve the same rows.
|
||||
//
|
||||
// Slot 0 is INCLUDED. It is the outfit being worn (what `/outfits/me` reads), but it is
|
||||
// also a saved slot: the newer client picks the slot it saves into (`/api/avatar/v4/saved/set`
|
||||
// 400s without one), so filtering slot 0 out would hide a real saved outfit whenever a
|
||||
// wardrobe entry lands there. Showing the worn outfit as a wardrobe entry is the cheaper
|
||||
// mistake of the two.
|
||||
//
|
||||
// Rows are served exactly as they were stored, unprojected — see the note atop
|
||||
// `outfits-db.ts`: econ's saved slots hold the old flat PascalCase outfit while
|
||||
// `/outfits/me` holds the newer envelope, and neither is converted into the other.
|
||||
// The caller's outfit wardrobe. An empty list for now — the outfits saved through
|
||||
// `PUT /outfits/me` are in the shared `outfit` table already, but which of them
|
||||
// belong in this list (and in what shape) has not been pinned down, so it answers []
|
||||
// rather than guessing.
|
||||
.get(
|
||||
'/outfits/me/saved',
|
||||
describeRoute({
|
||||
tags: ['Avatar', '2025'],
|
||||
summary: 'The caller’s saved outfits',
|
||||
description:
|
||||
'The wardrobe behind the newer outfit screen: every slot the caller has saved, ' +
|
||||
'ordered by slot, and `[]` when they have saved none. The same rows `econ`’s ' +
|
||||
'`GET /api/avatar/v3/saved` serves — both write paths land in the shared `outfit` ' +
|
||||
'table.\n\n' +
|
||||
'Slot 0 is included. It is the outfit being worn (what `GET /outfits/me` reads) but ' +
|
||||
'it is a saved slot too, and the client chooses the slot it saves into, so omitting ' +
|
||||
'it would hide a real outfit whenever a wardrobe entry lands there.\n\n' +
|
||||
'Each outfit is served exactly as it was stored, unprojected: slots written through ' +
|
||||
'`PUT /outfits/me` hold the newer envelope while `econ`’s saved-set slots hold the ' +
|
||||
'old flat shape, and neither is converted into the other.',
|
||||
'The wardrobe behind the newer outfit screen. Empty for now: the outfits saved ' +
|
||||
'through `PUT /outfits/me` are in the shared `outfit` table, but which of them this ' +
|
||||
'list should carry, and in what shape, is not pinned down yet.',
|
||||
security: AUTHED,
|
||||
responses: {
|
||||
200: json(JsonArray, 'The saved outfits, ordered by slot (empty when none)'),
|
||||
200: json(JsonArray, 'An empty list'),
|
||||
401: UNAUTHORIZED_RESPONSE,
|
||||
},
|
||||
}),
|
||||
async (c) => {
|
||||
const id = await authedId(c)
|
||||
if (id === null) return unauthorized(c)
|
||||
return c.json(await getOutfits(c.env.DB, id))
|
||||
return c.json([])
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -1566,58 +1566,15 @@ describe('public endpoints', () => {
|
||||
expect(((await worn.json()) as { Name: string | null }).Name).toBe(null)
|
||||
})
|
||||
|
||||
test('GET /outfits/me/saved lists every saved slot, ordered by slot', async () => {
|
||||
test('GET /outfits/me/saved 401s without a token, returns [] with one', async () => {
|
||||
const anon = await exports.default.fetch(`${ORIGIN}/outfits/me/saved`)
|
||||
expect(anon.status).toBe(401)
|
||||
|
||||
// A distinct account, so this doesn't depend on what the tests above saved for 42.
|
||||
const saved = async (sub: string) => {
|
||||
const res = await exports.default.fetch(`${ORIGIN}/outfits/me/saved`, {
|
||||
headers: await bearer(sub),
|
||||
})
|
||||
expect(res.status).toBe(200)
|
||||
return (await res.json()) as Array<Record<string, unknown>>
|
||||
}
|
||||
|
||||
// A player who has never saved gets [], not the empty-outfit envelope `/outfits/me`
|
||||
// serves — an empty wardrobe is an empty list.
|
||||
expect(await saved('4242')).toEqual([])
|
||||
|
||||
const outfit = (slot: number, name: string | null) => ({
|
||||
DataVersion: 2,
|
||||
LegacyData: {
|
||||
SelectionsV1: '193a3bf9-abc0-4d78-8d63-92046908b1c5,,0',
|
||||
SelectionsV2: '{"selections":[]}',
|
||||
FaceFeatures: '{"ver":7}',
|
||||
SkinColor: 'Dc6StLFk60u5iUTrb3_C3w',
|
||||
HairColor: 'UAT0OaWEkUG-mWDIyiX1Kg',
|
||||
},
|
||||
CustomizationSettings: '{"AvatarVersion":2,"AvatarBodyType":0}',
|
||||
Selections: [],
|
||||
Slot: slot,
|
||||
Name: name,
|
||||
Accessibility: 1,
|
||||
ThumbnailFileName: null,
|
||||
// Empty even for account 42, which saved an outfit through PUT /outfits/me above.
|
||||
const res = await exports.default.fetch(`${ORIGIN}/outfits/me/saved`, {
|
||||
headers: await bearer(),
|
||||
})
|
||||
|
||||
// Saved out of order, to prove the list is ordered by slot rather than by write time.
|
||||
for (const [slot, name] of [
|
||||
[2, 'two'],
|
||||
[0, null],
|
||||
] as Array<[number, string | null]>) {
|
||||
await exports.default.fetch(`${ORIGIN}/outfits/me`, {
|
||||
method: 'PUT',
|
||||
headers: { ...(await bearer('4242')), 'content-type': 'application/json' },
|
||||
body: JSON.stringify(outfit(slot, name)),
|
||||
})
|
||||
}
|
||||
|
||||
// Slot 0 is in the list: it is the outfit being worn, but it is a saved slot too, and
|
||||
// the client picks the slot it writes. Each row comes back verbatim.
|
||||
expect(await saved('4242')).toEqual([outfit(0, null), outfit(2, 'two')])
|
||||
|
||||
// Another account's wardrobe is its own.
|
||||
expect(await saved('4343')).toEqual([])
|
||||
expect(res.status).toBe(200)
|
||||
expect(await res.json()).toEqual([])
|
||||
})
|
||||
|
||||
test('POST /outfits/bulk serves each account’s worn outfit, keyed by id', async () => {
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"@repo/jwt": "workspace:*",
|
||||
"@standard-community/standard-json": "0.3.5",
|
||||
"@standard-community/standard-openapi": "0.2.9",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"hono-openapi": "1.3.1",
|
||||
"openapi-types": "12.1.3",
|
||||
"workers-tagged-logger": "1.0.1",
|
||||
@@ -33,6 +33,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@repo/hono-helpers": "workspace:*",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"workers-tagged-logger": "1.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -25,6 +25,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
"@repo/jwt": "workspace:*",
|
||||
"@standard-community/standard-json": "0.3.5",
|
||||
"@standard-community/standard-openapi": "0.2.9",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"hono-openapi": "1.3.1",
|
||||
"openapi-types": "12.1.3",
|
||||
"workers-tagged-logger": "1.0.1",
|
||||
@@ -31,6 +31,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"@repo/jwt": "workspace:*",
|
||||
"@standard-community/standard-json": "0.3.5",
|
||||
"@standard-community/standard-openapi": "0.2.9",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"hono-openapi": "1.3.1",
|
||||
"openapi-types": "12.1.3",
|
||||
"workers-tagged-logger": "1.0.1",
|
||||
@@ -33,6 +33,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"@repo/jwt": "workspace:*",
|
||||
"@standard-community/standard-json": "0.3.5",
|
||||
"@standard-community/standard-openapi": "0.2.9",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"hono-openapi": "1.3.1",
|
||||
"openapi-types": "12.1.3",
|
||||
"workers-tagged-logger": "1.0.1",
|
||||
@@ -33,6 +33,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"@repo/hono-helpers": "workspace:*",
|
||||
"@standard-community/standard-json": "0.3.5",
|
||||
"@standard-community/standard-openapi": "0.2.9",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"hono-openapi": "1.3.1",
|
||||
"openapi-types": "12.1.3",
|
||||
"workers-tagged-logger": "1.0.1",
|
||||
@@ -30,6 +30,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,9 +5,6 @@
|
||||
"compatibility_date": "2026-06-16",
|
||||
"compatibility_flags": ["nodejs_compat"],
|
||||
"upload_source_maps": true,
|
||||
"cache": {
|
||||
"enabled": true
|
||||
},
|
||||
"observability": {
|
||||
"logs": {
|
||||
"enabled": true,
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@repo/hono-helpers": "workspace:*",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"workers-tagged-logger": "1.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -25,6 +25,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"@repo/hono-helpers": "workspace:*",
|
||||
"@standard-community/standard-json": "0.3.5",
|
||||
"@standard-community/standard-openapi": "0.2.9",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"hono-openapi": "1.3.1",
|
||||
"openapi-types": "12.1.3",
|
||||
"workers-tagged-logger": "1.0.1",
|
||||
@@ -30,6 +30,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"@repo/jwt": "workspace:*",
|
||||
"@standard-community/standard-json": "0.3.5",
|
||||
"@standard-community/standard-openapi": "0.2.9",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"hono-openapi": "1.3.1",
|
||||
"openapi-types": "12.1.3",
|
||||
"workers-tagged-logger": "1.0.1",
|
||||
@@ -34,6 +34,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
+16
-58
@@ -504,45 +504,24 @@ function toAvatarV2Dto(avatar: Avatar) {
|
||||
}
|
||||
|
||||
/**
|
||||
* A storefront catalog entry's `GiftDrop` (`static/storefronts/sf{N}.json`) — what a store
|
||||
* item hands over. Field-for-field the client's own `GiftDrop` class, in its declared
|
||||
* order, so a name here is a name the client reads.
|
||||
*
|
||||
* REQUIRED vs OPTIONAL is about what this server produces, not what the client declares:
|
||||
* the required eleven are the ones every drop-building helper here sets (a game reward, a
|
||||
* level-up box, a challenge gift — see {@link toGameRewardDrop} and friends), and they are
|
||||
* the only ones the purchase and roll paths read. The rest are optional because nothing
|
||||
* here synthesizes one, whether or not a captured catalog carries it — `GiftDropId`,
|
||||
* `Unique`, `SubscribersOnly`, `ItemSetId` and `ItemSetFriendlyName` are on all 5,875
|
||||
* captured entries, while `TagList`, `CustomAvatarItemId`, `AvatarItemId`,
|
||||
* `EquipmentItemId` and `ThumbnailImageName` are on none of them.
|
||||
*
|
||||
* The store item around it carries `Prices` per currency and optionally `SubscriberPrices`
|
||||
* — the discounted list a Rec Room Plus subscriber is shown and pays. Both hold more
|
||||
* fields (IsFeatured, …) the purchase path doesn't need.
|
||||
* The subset of a storefront catalog (`static/storefronts/sf{N}.json`) that `buyItem`
|
||||
* reads: each store item carries the `GiftDrop` describing what you get, a list of
|
||||
* `Prices` per currency, and optionally `SubscriberPrices` — the discounted list a Rec Room
|
||||
* Plus subscriber is shown and pays. The catalogs hold more fields (IsFeatured, …) that
|
||||
* the purchase path doesn't need.
|
||||
*/
|
||||
interface StoreGiftDrop {
|
||||
/**
|
||||
* The drop's own id. Every captured entry has it equal to the item's
|
||||
* `PurchasableItemId`, which is why the paths that need one (a weekly gift, a skin)
|
||||
* take it off there instead of from here.
|
||||
*/
|
||||
GiftDropId?: number
|
||||
FriendlyName: string
|
||||
/**
|
||||
* NULL on 23 captured entries — the client's field is a plain string, but the catalogs
|
||||
* keep null and `""` apart, so a reader passing it on has to collapse it (`?? ''`).
|
||||
*/
|
||||
Tooltip: string | null
|
||||
/** Not on any captured entry; nothing here reads or sets one. */
|
||||
TagList?: string
|
||||
Tooltip: string
|
||||
ConsumableItemDesc: string
|
||||
AvatarItemDesc: string
|
||||
/** A UGC item's guid. Not on any captured entry — the captures predate them. */
|
||||
CustomAvatarItemId?: string | null
|
||||
AvatarItemType: number | null
|
||||
EquipmentPrefabName: string
|
||||
EquipmentModificationGuid: string
|
||||
Rarity: number
|
||||
Context: number
|
||||
Currency: number
|
||||
CurrencyType: number
|
||||
/**
|
||||
* A QUERY drop — a loot box rather than an item. Its item fields are all empty on
|
||||
* purpose: what the player gets is rolled at grant time from everything of the target
|
||||
@@ -551,37 +530,16 @@ interface StoreGiftDrop {
|
||||
* random 4-star item that you don't have."
|
||||
*/
|
||||
IsQuery?: boolean
|
||||
/** Whether the player may hold only one. Nothing here enforces it. */
|
||||
Unique?: boolean
|
||||
/** Whether only a Rec Room Plus subscriber may buy it. Nothing here enforces it. */
|
||||
SubscribersOnly?: boolean
|
||||
Rarity: number
|
||||
CurrencyType: number
|
||||
Currency: number
|
||||
Context: number
|
||||
/** The set the item belongs to; null on 92 captured entries. */
|
||||
ItemSetId?: number | null
|
||||
ItemSetFriendlyName?: string
|
||||
/** Catalog ids for the item the drop carries. Not on any captured entry. */
|
||||
AvatarItemId?: number | null
|
||||
EquipmentItemId?: number | null
|
||||
/** Not on any captured entry; the client falls back to the item's own thumbnail. */
|
||||
ThumbnailImageName?: string
|
||||
|
||||
// ---- Not part of the client's class -------------------------------------
|
||||
|
||||
/**
|
||||
* The rarity a query drop rolls at, when it differs from the box's own `Rarity`. The
|
||||
* sf2 boxes carry both and they agree; sf3's don't carry it at all, hence the fallback
|
||||
* to `Rarity`. The client's `GiftDrop` has no such field — it is the catalog's, and
|
||||
* only this server reads it.
|
||||
* to `Rarity`.
|
||||
*/
|
||||
QueryRedirectRarity?: number
|
||||
/**
|
||||
* XP the drop pays out. Ours, not the client's and not any catalog's — a bought item is
|
||||
* an item, but a game reward is XP in a gift box, so the box and its notification carry
|
||||
* the amount from here. The XP itself is banked in `progression`, not read back off the
|
||||
* box.
|
||||
* XP the drop pays out. No storefront catalog sets it — a bought item is an item — but a
|
||||
* game reward is XP in a gift box, so the box and its notification carry the amount from
|
||||
* here. The XP itself is banked in `progression`, not read back off the box.
|
||||
*/
|
||||
Xp?: number
|
||||
}
|
||||
@@ -857,7 +815,7 @@ function toAvatarItem(giftDrop: StoreGiftDrop): AvatarItem {
|
||||
AvatarItemDesc: giftDrop.AvatarItemDesc,
|
||||
PlatformMask: -1,
|
||||
FriendlyName: giftDrop.FriendlyName,
|
||||
Tooltip: giftDrop.Tooltip ?? '',
|
||||
Tooltip: giftDrop.Tooltip,
|
||||
Rarity: giftDrop.Rarity,
|
||||
}
|
||||
}
|
||||
@@ -868,7 +826,7 @@ function toEquipment(giftDrop: StoreGiftDrop): Equipment {
|
||||
ModificationGuid: giftDrop.EquipmentModificationGuid,
|
||||
PrefabName: giftDrop.EquipmentPrefabName,
|
||||
FriendlyName: giftDrop.FriendlyName,
|
||||
Tooltip: giftDrop.Tooltip ?? '',
|
||||
Tooltip: giftDrop.Tooltip,
|
||||
Rarity: giftDrop.Rarity,
|
||||
PlatformMask: -1,
|
||||
Favorited: false,
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"@repo/hono-helpers": "workspace:*",
|
||||
"@standard-community/standard-json": "0.3.5",
|
||||
"@standard-community/standard-openapi": "0.2.9",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"hono-openapi": "1.3.1",
|
||||
"openapi-types": "12.1.3",
|
||||
"workers-tagged-logger": "1.0.1",
|
||||
@@ -32,6 +32,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"@repo/jwt": "workspace:*",
|
||||
"@standard-community/standard-json": "0.3.5",
|
||||
"@standard-community/standard-openapi": "0.2.9",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"hono-openapi": "1.3.1",
|
||||
"openapi-types": "12.1.3",
|
||||
"workers-tagged-logger": "1.0.1",
|
||||
@@ -33,6 +33,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@repo/hono-helpers": "workspace:*",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"workers-tagged-logger": "1.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -25,6 +25,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
"@repo/domain": "workspace:*",
|
||||
"@repo/hono-helpers": "workspace:*",
|
||||
"@repo/jwt": "workspace:*",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"hono-openapi": "1.3.1",
|
||||
"openapi-types": "12.1.3",
|
||||
"workers-tagged-logger": "1.0.1",
|
||||
@@ -31,6 +31,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"@repo/jwt": "workspace:*",
|
||||
"@standard-community/standard-json": "0.3.5",
|
||||
"@standard-community/standard-openapi": "0.2.9",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"hono-openapi": "1.3.1",
|
||||
"openapi-types": "12.1.3",
|
||||
"workers-tagged-logger": "1.0.1",
|
||||
@@ -33,6 +33,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@repo/hono-helpers": "workspace:*",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"workers-tagged-logger": "1.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -25,6 +25,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
"@repo/jwt": "workspace:*",
|
||||
"@standard-community/standard-json": "0.3.5",
|
||||
"@standard-community/standard-openapi": "0.2.9",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"hono-openapi": "1.3.1",
|
||||
"openapi-types": "12.1.3",
|
||||
"workers-tagged-logger": "1.0.1",
|
||||
@@ -31,6 +31,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
"dependencies": {
|
||||
"@repo/hono-helpers": "workspace:*",
|
||||
"@repo/jwt": "workspace:*",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"workers-tagged-logger": "1.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -26,6 +26,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@repo/hono-helpers": "workspace:*",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"workers-tagged-logger": "1.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -25,6 +25,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
"dependencies": {
|
||||
"@repo/hono-helpers": "workspace:*",
|
||||
"@repo/jwt": "workspace:*",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"workers-tagged-logger": "1.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -26,6 +26,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,18 +10,11 @@ Player-settings worker served on the `playersettings` subdomain.
|
||||
`key=…&value=…` (or a JSON `{key,value}` / array) and **upserts** it into the
|
||||
player's settings, keyed by the `sub` claim of the Bearer JWT. Returns `200`.
|
||||
Persisted in Workers KV (`RECFLARE_PLAYER_SETTINGS`, key `player:<id>`).
|
||||
- `DELETE /playersettings` — `[Authorize]`. Removes a setting from the player's
|
||||
map. The client sends a bare form-urlencoded `key=PlayerShoppingBagId` (no
|
||||
`value`); a JSON body and a `?key=` query param are also read. Deleting a key
|
||||
that isn't stored is a no-op `200`, not a `404`.
|
||||
|
||||
> A full settings PUT would replace the player's _entire_ settings set on each
|
||||
> call; we merge instead, so a single-key PUT (e.g. `key=PlayerSessionCount`)
|
||||
> doesn't wipe the others.
|
||||
|
||||
> Emptying the map with DELETE puts the player back to a first read: the next
|
||||
> `GET` re-seeds the defaults.
|
||||
|
||||
## KV namespace
|
||||
|
||||
```sh
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
"@repo/jwt": "workspace:*",
|
||||
"@standard-community/standard-json": "0.3.5",
|
||||
"@standard-community/standard-openapi": "0.2.9",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"hono-openapi": "1.3.1",
|
||||
"openapi-types": "12.1.3",
|
||||
"workers-tagged-logger": "1.0.1",
|
||||
@@ -31,6 +31,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -103,23 +103,3 @@ export const SettingJsonWrite = z.union([
|
||||
})
|
||||
),
|
||||
])
|
||||
|
||||
/**
|
||||
* The form-encoded delete the client actually sends: a bare `key=PlayerShoppingBagId`,
|
||||
* with no `value`. An empty `key` is ignored.
|
||||
*/
|
||||
export const SettingFormDelete = z.object({
|
||||
key: z.string().describe('The setting name to remove; an empty key is ignored'),
|
||||
})
|
||||
|
||||
/**
|
||||
* The JSON form of the same delete. Accepted as a bare setting name, a `{ key }` /
|
||||
* `{ Key }` object, or an array of either.
|
||||
*/
|
||||
export const SettingJsonDelete = z.union([
|
||||
z.string(),
|
||||
z.object({ key: z.string().optional(), Key: z.string().optional() }),
|
||||
z.array(
|
||||
z.union([z.string(), z.object({ key: z.string().optional(), Key: z.string().optional() })])
|
||||
),
|
||||
])
|
||||
|
||||
@@ -12,9 +12,7 @@ import {
|
||||
HealthResponse,
|
||||
json,
|
||||
PlayerSettingEntry,
|
||||
SettingFormDelete,
|
||||
SettingFormWrite,
|
||||
SettingJsonDelete,
|
||||
SettingJsonWrite,
|
||||
UNAUTHORIZED_RESPONSE,
|
||||
} from './openapi'
|
||||
@@ -28,7 +26,7 @@ import type { App } from './context'
|
||||
* (`player:{id}`); a player with nothing stored is seeded with the reference defaults on
|
||||
* their first read.
|
||||
*
|
||||
* Every `/playersettings` route is auth-gated on the Bearer JWT issued by the `auth` worker.
|
||||
* Both routes are auth-gated on the Bearer JWT issued by the `auth` worker.
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -80,45 +78,6 @@ async function parseSettings(c: Context<App>): Promise<Array<{ key: string; valu
|
||||
return key ? [{ key, value }] : []
|
||||
}
|
||||
|
||||
/**
|
||||
* Pull the setting name(s) to remove out of a DELETE body. The client sends a bare
|
||||
* form-urlencoded `key=PlayerShoppingBagId` — with no `value`, and (unlike its PUTs) not
|
||||
* always a `content-type` Hono's body parser recognises on a DELETE, so an unparsed body
|
||||
* is re-read as raw text. A JSON body is accepted too, as a bare string, a `{ key }`
|
||||
* object, or an array of either. Blank names are dropped.
|
||||
*/
|
||||
async function parseDeleteKeys(c: Context<App>): Promise<string[]> {
|
||||
const contentType = c.req.header('content-type') ?? ''
|
||||
|
||||
if (contentType.includes('application/json')) {
|
||||
const body = await c.req.json<unknown>().catch(() => null)
|
||||
const list = Array.isArray(body) ? body : body == null ? [] : [body]
|
||||
return list
|
||||
.map((o) => {
|
||||
if (typeof o === 'string') return o
|
||||
const rec = o as Record<string, unknown>
|
||||
const key = rec.key ?? rec.Key
|
||||
return typeof key === 'string' ? key : ''
|
||||
})
|
||||
.filter((k) => k !== '')
|
||||
}
|
||||
|
||||
// Pick ONE read of the body from the content-type: Hono's parser only recognises the
|
||||
// form types, and re-reading as text after it has cached a FormData re-serialises the
|
||||
// body as multipart, so trying both in turn parses garbage.
|
||||
let key = ''
|
||||
if (contentType.includes('form-data') || contentType.includes('x-www-form-urlencoded')) {
|
||||
const form = await c.req.parseBody().catch(() => ({}) as Record<string, unknown>)
|
||||
if (typeof form.key === 'string') key = form.key
|
||||
} else {
|
||||
key = new URLSearchParams(await c.req.text().catch(() => '')).get('key') ?? ''
|
||||
}
|
||||
|
||||
// Last resort, for a client that hangs the name off the URL instead.
|
||||
if (key === '') key = c.req.query('key') ?? ''
|
||||
return key ? [key] : []
|
||||
}
|
||||
|
||||
const app = new Hono<App>()
|
||||
.use(
|
||||
'*',
|
||||
@@ -221,59 +180,6 @@ const app = new Hono<App>()
|
||||
}
|
||||
)
|
||||
|
||||
// Remove a setting from the caller's map. The client sends `key=PlayerShoppingBagId`
|
||||
// when it drops a value it no longer wants defaulted (a stale shopping bag id, say)
|
||||
// rather than writing an empty string over it.
|
||||
.delete(
|
||||
'/playersettings',
|
||||
describeRoute({
|
||||
tags: ['Player Settings'],
|
||||
summary: 'Delete a player setting',
|
||||
description: [
|
||||
'Removes the named setting(s) from the caller’s KV map. The client sends a bare',
|
||||
'form-urlencoded `key=PlayerShoppingBagId` (no `value`); a JSON body — a string, a',
|
||||
'`{ key }` object, or an array of either — and a `?key=` query param are also read.',
|
||||
'Deleting a key that isn’t stored, or sending nothing to delete, is a no-op 200, not a',
|
||||
'404. Empty body on success.',
|
||||
'',
|
||||
'Note that emptying the map entirely puts the player back to a first read: the next',
|
||||
'`GET` re-seeds the defaults.',
|
||||
].join(' '),
|
||||
security: AUTHED,
|
||||
requestBody: formOrJson(SettingFormDelete, SettingJsonDelete, 'The setting(s) to remove'),
|
||||
responses: {
|
||||
200: { description: 'Removed, or nothing to remove (empty body)' },
|
||||
401: UNAUTHORIZED_RESPONSE,
|
||||
},
|
||||
}),
|
||||
async (c) => {
|
||||
const id = await authedId(c)
|
||||
if (id === null) return unauthorized(c)
|
||||
|
||||
const keys = await parseDeleteKeys(c)
|
||||
if (keys.length === 0) return c.body(null, 200)
|
||||
|
||||
const kvKey = `player:${id}`
|
||||
const existing = await c.env.RECFLARE_PLAYER_SETTINGS.get<Record<string, string>>(
|
||||
kvKey,
|
||||
'json'
|
||||
)
|
||||
if (!existing) return c.body(null, 200)
|
||||
|
||||
const remaining = { ...existing }
|
||||
let removed = false
|
||||
for (const key of keys) {
|
||||
if (key in remaining) {
|
||||
delete remaining[key]
|
||||
removed = true
|
||||
}
|
||||
}
|
||||
if (removed) await c.env.RECFLARE_PLAYER_SETTINGS.put(kvKey, JSON.stringify(remaining))
|
||||
|
||||
return c.body(null, 200)
|
||||
}
|
||||
)
|
||||
|
||||
// The generated spec. Documentation only — no request is validated against it (see
|
||||
// openapi.ts). `hide: true` keeps this route out of its own output.
|
||||
app.get(
|
||||
|
||||
@@ -53,17 +53,6 @@ function putForm(
|
||||
}
|
||||
}
|
||||
|
||||
function deleteForm(
|
||||
fields: Record<string, string>,
|
||||
headers: Record<string, string> = {}
|
||||
): RequestInit {
|
||||
return {
|
||||
method: 'DELETE',
|
||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded', ...headers },
|
||||
body: new URLSearchParams(fields).toString(),
|
||||
}
|
||||
}
|
||||
|
||||
describe('playersettings endpoints', () => {
|
||||
it('GET / reports service status', async () => {
|
||||
const res = await SELF.fetch(`${ORIGIN}/`)
|
||||
@@ -145,80 +134,6 @@ describe('playersettings endpoints', () => {
|
||||
expect(res.status).toBe(200)
|
||||
})
|
||||
|
||||
it('DELETE /playersettings 401s without a token', async () => {
|
||||
const res = await SELF.fetch(
|
||||
`${ORIGIN}/playersettings`,
|
||||
deleteForm({ key: 'PlayerShoppingBagId' })
|
||||
)
|
||||
expect(res.status).toBe(401)
|
||||
})
|
||||
|
||||
it('DELETE /playersettings removes the named key and leaves the rest', async () => {
|
||||
await SELF.fetch(
|
||||
`${ORIGIN}/playersettings`,
|
||||
putForm({ key: 'PlayerShoppingBagId', value: 'bag-1' }, await bearer('20'))
|
||||
)
|
||||
await SELF.fetch(
|
||||
`${ORIGIN}/playersettings`,
|
||||
putForm({ key: 'PlayerSessionCount', value: '3' }, await bearer('20'))
|
||||
)
|
||||
|
||||
const res = await SELF.fetch(
|
||||
`${ORIGIN}/playersettings`,
|
||||
deleteForm({ key: 'PlayerShoppingBagId' }, await bearer('20'))
|
||||
)
|
||||
expect(res.status).toBe(200)
|
||||
|
||||
const stored = await env.RECFLARE_PLAYER_SETTINGS.get<Record<string, string>>(
|
||||
'player:20',
|
||||
'json'
|
||||
)
|
||||
expect(stored).toEqual({ PlayerSessionCount: '3' })
|
||||
})
|
||||
|
||||
it('DELETE /playersettings reads a body with no content-type', async () => {
|
||||
await SELF.fetch(
|
||||
`${ORIGIN}/playersettings`,
|
||||
putForm({ key: 'PlayerShoppingBagId', value: 'bag-2' }, await bearer('21'))
|
||||
)
|
||||
|
||||
const res = await SELF.fetch(`${ORIGIN}/playersettings`, {
|
||||
method: 'DELETE',
|
||||
headers: await bearer('21'),
|
||||
body: 'key=PlayerShoppingBagId',
|
||||
})
|
||||
expect(res.status).toBe(200)
|
||||
|
||||
const stored = await env.RECFLARE_PLAYER_SETTINGS.get<Record<string, string>>(
|
||||
'player:21',
|
||||
'json'
|
||||
)
|
||||
expect(stored).toEqual({})
|
||||
})
|
||||
|
||||
it('DELETE /playersettings 200s for an unknown key and an empty body', async () => {
|
||||
await SELF.fetch(
|
||||
`${ORIGIN}/playersettings`,
|
||||
putForm({ key: 'A', value: '1' }, await bearer('22'))
|
||||
)
|
||||
|
||||
const unknown = await SELF.fetch(
|
||||
`${ORIGIN}/playersettings`,
|
||||
deleteForm({ key: 'NotStored' }, await bearer('22'))
|
||||
)
|
||||
expect(unknown.status).toBe(200)
|
||||
|
||||
const empty = await SELF.fetch(`${ORIGIN}/playersettings`, deleteForm({}, await bearer('22')))
|
||||
expect(empty.status).toBe(200)
|
||||
|
||||
// Neither call touched the stored map.
|
||||
const stored = await env.RECFLARE_PLAYER_SETTINGS.get<Record<string, string>>(
|
||||
'player:22',
|
||||
'json'
|
||||
)
|
||||
expect(stored).toEqual({ A: '1' })
|
||||
})
|
||||
|
||||
it('GET /openapi.json documents every route', async () => {
|
||||
const res = await SELF.fetch(`${ORIGIN}/openapi.json`)
|
||||
expect(res.status).toBe(200)
|
||||
@@ -239,12 +154,7 @@ describe('playersettings endpoints', () => {
|
||||
Object.keys(ops).map((method) => `${method.toUpperCase()} ${path}`)
|
||||
)
|
||||
)
|
||||
expect([...documented].sort()).toEqual([
|
||||
'DELETE /playersettings',
|
||||
'GET /',
|
||||
'GET /playersettings',
|
||||
'PUT /playersettings',
|
||||
])
|
||||
expect([...documented].sort()).toEqual(['GET /', 'GET /playersettings', 'PUT /playersettings'])
|
||||
|
||||
// Every operation carries a summary — a path present but undescribed is not
|
||||
// documentation.
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"@repo/jwt": "workspace:*",
|
||||
"@standard-community/standard-json": "0.3.5",
|
||||
"@standard-community/standard-openapi": "0.2.9",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"hono-openapi": "1.3.1",
|
||||
"openapi-types": "12.1.3",
|
||||
"workers-tagged-logger": "1.0.1",
|
||||
@@ -33,6 +33,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
-- Room roles as their own table, mirroring 0013's move of tags into `room_tag`. One row
|
||||
-- per (room, account). Generated from packages/domain/src/rooms-db.ts (ROOM_SCHEMA_DDL) —
|
||||
-- keep in sync.
|
||||
--
|
||||
-- The row is the client's `Roles` entry shape:
|
||||
-- { "AccountId": …, "Role": …, "LastChangedByAccountId": …, "InvitedRole": … }
|
||||
-- `role` is the member's CURRENT role tier (10 Host, 20 Moderator, 30 CoOwner,
|
||||
-- 255 Creator); `invited_role` is the tier they have been OFFERED but not yet accepted —
|
||||
-- usually higher than `role`, and 0 when no invitation is pending. `last_changed_by` is
|
||||
-- who last touched the row; NULL for creator entries, matching the blob's
|
||||
-- `LastChangedByAccountId: null`.
|
||||
--
|
||||
-- The table is AUTHORITATIVE and the blob's `Roles` key is removed below, the same
|
||||
-- arrangement 0013 gave tags: `serializeRoom` drops `Roles` on write and the reads
|
||||
-- re-attach it (attachRoles), so the room DTO the client sees is unchanged and the two
|
||||
-- copies can't drift. `getContributedRooms` now matches on this table instead of running
|
||||
-- `json_each` over every blob.
|
||||
|
||||
CREATE TABLE IF NOT EXISTS room_role (
|
||||
room_id INTEGER NOT NULL,
|
||||
account_id INTEGER NOT NULL,
|
||||
role INTEGER NOT NULL DEFAULT 0,
|
||||
last_changed_by INTEGER,
|
||||
invited_role INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (room_id, account_id)
|
||||
);
|
||||
|
||||
-- Backfill from the blobs, the way 0013 backfilled `room_tag`. `json_each` walks the
|
||||
-- `Roles` array; a room with no array (or a null one) contributes nothing, which is why
|
||||
-- this is a join rather than a correlated subquery. `INSERT OR IGNORE` collapses a blob
|
||||
-- that somehow carries the same account twice — the primary key is (room, account).
|
||||
INSERT OR IGNORE INTO room_role (room_id, account_id, role, last_changed_by, invited_role)
|
||||
SELECT
|
||||
r.room_id,
|
||||
json_extract(t.value, '$.AccountId'),
|
||||
COALESCE(json_extract(t.value, '$.Role'), 0),
|
||||
json_extract(t.value, '$.LastChangedByAccountId'),
|
||||
COALESCE(json_extract(t.value, '$.InvitedRole'), 0)
|
||||
FROM room r, json_each(r.data, '$.Roles') t
|
||||
WHERE json_extract(t.value, '$.AccountId') IS NOT NULL;
|
||||
|
||||
-- Single source of truth: the roles now live in `room_role`, so the copy in the blob
|
||||
-- goes. Leaving it would be a second answer to "who has a role in this room" that only
|
||||
-- the writes through setRoomRole keep current.
|
||||
UPDATE room SET data = json_remove(data, '$.Roles');
|
||||
@@ -21,7 +21,7 @@
|
||||
"@repo/jwt": "workspace:*",
|
||||
"@standard-community/standard-json": "0.3.5",
|
||||
"@standard-community/standard-openapi": "0.2.9",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"hono-openapi": "1.3.1",
|
||||
"openapi-types": "12.1.3",
|
||||
"workers-tagged-logger": "1.0.1",
|
||||
@@ -33,6 +33,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -874,14 +874,6 @@ export const RoomExperiencePlayer = z
|
||||
.array(z.unknown())
|
||||
.describe('Always empty — no per-room experience is tracked')
|
||||
|
||||
/**
|
||||
* `GET /showcase/{playerId}` — the rooms a player showcases on their profile. Stubbed
|
||||
* empty; nothing stores a showcase, so the element shape is unknown until something does.
|
||||
*/
|
||||
export const ShowcasedRooms = z
|
||||
.array(z.unknown())
|
||||
.describe('Always empty — no room showcase is stored')
|
||||
|
||||
/**
|
||||
* `GET /rooms/curated_playlists` — the curated room playlists the discovery pages'
|
||||
* playlist sections draw from. Nothing curates one on this server, so the list is always
|
||||
|
||||
@@ -123,7 +123,6 @@ import {
|
||||
SaveSubRoomDataRequest,
|
||||
SearchSuggestions,
|
||||
ServiceStatus,
|
||||
ShowcasedRooms,
|
||||
stringQuery,
|
||||
SubRoomAccessibilityRequest,
|
||||
SubRoomDataSaveResponseDto,
|
||||
@@ -1283,29 +1282,6 @@ const app = new Hono<App>()
|
||||
c.json(await getPublicRoomsByCreator(c.env.DB, Number.parseInt(c.req.param('accountId'), 10)))
|
||||
)
|
||||
|
||||
// A player's showcased rooms — the hand-picked rail the client draws on a profile,
|
||||
// separate from `ownedby/{accountId}` (which is everything public they own). Stub →
|
||||
// empty list: nothing stores a showcase yet, and an empty rail is what a player who
|
||||
// has picked nothing looks like, where a 404 leaves the profile half-drawn. No auth,
|
||||
// matching the profile list it sits beside — a showcase is public by definition.
|
||||
.get(
|
||||
'/showcase/:playerId{[0-9]+}',
|
||||
describeRoute({
|
||||
tags: ['Rooms'],
|
||||
summary: 'A player’s showcased rooms',
|
||||
description: [
|
||||
'The rooms a player has showcased on their profile, as a bare array. Nothing stores a',
|
||||
'showcase yet, so this is a stub serving an empty list — which the client reads as',
|
||||
'“nothing showcased”, the same as a player who has picked none. Unlike',
|
||||
'`ownedby/{accountId}`, which lists everything public the account owns, a showcase is',
|
||||
'a chosen subset. No auth: a profile is public.',
|
||||
].join(' '),
|
||||
parameters: [playerIdParam],
|
||||
responses: { 200: json(ShowcasedRooms, 'An empty list') },
|
||||
}),
|
||||
(c) => c.json([])
|
||||
)
|
||||
|
||||
// Rooms the caller has favorited (from the interaction table). Auth-gated.
|
||||
// Paginated via skip/take (take defaults to 100). Returns a bare array, like the
|
||||
// other room-source `*by/me` lists the client loads.
|
||||
|
||||
@@ -195,23 +195,6 @@ describe('rooms endpoints', () => {
|
||||
expect(await res.json()).toEqual([])
|
||||
})
|
||||
|
||||
// Stub, same reasoning: the profile asks for a showcase for any player, and an
|
||||
// unregistered path leaves the profile half-drawn. No auth, and no such player is
|
||||
// still [] rather than a 404.
|
||||
it('GET /showcase/:playerId returns [] for any player', async () => {
|
||||
const res = await SELF.fetch(`${ORIGIN}/showcase/205`)
|
||||
expect(res.status).toBe(200)
|
||||
expect(await res.json()).toEqual([])
|
||||
|
||||
const unknown = await SELF.fetch(`${ORIGIN}/showcase/99999`)
|
||||
expect(unknown.status).toBe(200)
|
||||
expect(await unknown.json()).toEqual([])
|
||||
})
|
||||
|
||||
it('GET /showcase/:playerId 404s on a non-numeric id', async () => {
|
||||
expect((await SELF.fetch(`${ORIGIN}/showcase/abc`)).status).toBe(404)
|
||||
})
|
||||
|
||||
it('GET /rooms/:id 404s for a room not in D1', async () => {
|
||||
const res = await SELF.fetch(`${ORIGIN}/rooms/99999`)
|
||||
expect(res.status).toBe(404)
|
||||
@@ -442,6 +425,11 @@ describe('rooms endpoints', () => {
|
||||
it('GET /rooms/contributedby/me lists rooms the caller owns or has a role in', async () => {
|
||||
const seed = (data: Record<string, unknown>) =>
|
||||
env.DB.prepare('INSERT INTO room (data) VALUES (?1)').bind(JSON.stringify(data)).run()
|
||||
// Roles live in `room_role`, not the blob — the table the query's EXISTS matches on.
|
||||
const grant = (roomId: number, accountId: number, role: number) =>
|
||||
env.DB.prepare('INSERT INTO room_role (room_id, account_id, role) VALUES (?1, ?2, ?3)')
|
||||
.bind(roomId, accountId, role)
|
||||
.run()
|
||||
|
||||
// A room somebody else made, where 820 is a co-owner...
|
||||
await seed({
|
||||
@@ -450,11 +438,9 @@ describe('rooms endpoints', () => {
|
||||
CreatorAccountId: 821,
|
||||
Accessibility: 1,
|
||||
SubRooms: [],
|
||||
Roles: [
|
||||
{ AccountId: 821, Role: 255 },
|
||||
{ AccountId: 820, Role: 30 },
|
||||
],
|
||||
})
|
||||
await grant(30401, 821, 255)
|
||||
await grant(30401, 820, 30)
|
||||
// ...one where they're only a host (every tier counts, not just owner-level)...
|
||||
await seed({
|
||||
RoomId: 30402,
|
||||
@@ -464,20 +450,20 @@ describe('rooms endpoints', () => {
|
||||
// accessibility is not filtered here.
|
||||
Accessibility: 0,
|
||||
SubRooms: [],
|
||||
Roles: [{ AccountId: 820, Role: 10 }],
|
||||
})
|
||||
// ...one they created themselves, whose Roles name them as Creator (matched by BOTH
|
||||
// halves of the query, so it must still appear exactly once)...
|
||||
await grant(30402, 820, 10)
|
||||
// ...one they created themselves, whose role rows name them as Creator (matched by
|
||||
// BOTH halves of the query, so it must still appear exactly once)...
|
||||
await seed({
|
||||
RoomId: 30403,
|
||||
Name: 'ContribOwn',
|
||||
CreatorAccountId: 820,
|
||||
Accessibility: 1,
|
||||
SubRooms: [],
|
||||
Roles: [{ AccountId: 820, Role: 255 }],
|
||||
})
|
||||
// ...one they created that names nobody in Roles at all — the older rooms have no
|
||||
// Roles key, and those reach the list on the creator half alone...
|
||||
await grant(30403, 820, 255)
|
||||
// ...one they created that has no role rows at all — the older rooms never got
|
||||
// any, and those reach the list on the creator half alone...
|
||||
await seed({
|
||||
RoomId: 30406,
|
||||
Name: 'ContribOwnNoRoles',
|
||||
@@ -493,18 +479,17 @@ describe('rooms endpoints', () => {
|
||||
IsDorm: true,
|
||||
Accessibility: 2,
|
||||
SubRooms: [],
|
||||
Roles: [{ AccountId: 820, Role: 255 }],
|
||||
})
|
||||
// ...one they have nothing to do with, and one with no Roles key at all (the older
|
||||
// seeded rooms have none — json_each must drop them, not error).
|
||||
await grant(30407, 820, 255)
|
||||
// ...one they have nothing to do with, and one with no role rows at all.
|
||||
await seed({
|
||||
RoomId: 30404,
|
||||
Name: 'ContribOther',
|
||||
CreatorAccountId: 821,
|
||||
Accessibility: 1,
|
||||
SubRooms: [],
|
||||
Roles: [{ AccountId: 822, Role: 30 }],
|
||||
})
|
||||
await grant(30404, 822, 30)
|
||||
await seed({ RoomId: 30405, Name: 'ContribNoRoles', CreatorAccountId: 821, SubRooms: [] })
|
||||
|
||||
const res = await SELF.fetch(`${ORIGIN}/rooms/contributedby/me`, {
|
||||
@@ -532,6 +517,7 @@ describe('rooms endpoints', () => {
|
||||
// The DB is shared across this file, and these are the only player-made public rooms
|
||||
// in it — leaving them behind changes what the `new`/`community` room feeds serve.
|
||||
await env.DB.prepare('DELETE FROM room WHERE room_id BETWEEN 30401 AND 30407').run()
|
||||
await env.DB.prepare('DELETE FROM room_role WHERE room_id BETWEEN 30401 AND 30407').run()
|
||||
})
|
||||
|
||||
it('GET /rooms/:roomId/experience serves the fixed XP settings, no auth', async () => {
|
||||
@@ -4105,7 +4091,6 @@ describe('rooms endpoints', () => {
|
||||
'GET /rooms/{roomId}/subrooms/{subRoomId}/saves/no_unity_assets',
|
||||
'GET /rooms/{roomId}/subrooms/{subRoomId}/saves/{saveId}',
|
||||
'GET /roomserver/rooms/createdby/me',
|
||||
'GET /showcase/{playerId}',
|
||||
'POST /rooms/bulk',
|
||||
'POST /rooms/{roomId}/bans',
|
||||
'POST /rooms/{roomId}/clone',
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
"@repo/jwt": "workspace:*",
|
||||
"@standard-community/standard-json": "0.3.5",
|
||||
"@standard-community/standard-openapi": "0.2.9",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"hono-openapi": "1.3.1",
|
||||
"openapi-types": "12.1.3",
|
||||
"workers-tagged-logger": "1.0.1",
|
||||
@@ -31,6 +31,6 @@
|
||||
"@repo/typescript-config": "workspace:*",
|
||||
"@types/node": "26.0.1",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,8 +2,6 @@ import type { HonoApp } from '@repo/hono-helpers'
|
||||
import type { SharedHonoEnv, SharedHonoVariables } from '@repo/hono-helpers/src/types'
|
||||
|
||||
export type Env = SharedHonoEnv & {
|
||||
/** Maximum accepted binary upload size in bytes. */
|
||||
MAX_UPLOAD_BYTES?: string | number
|
||||
// Shared Secrets Store binding for the HS256 JWT signing key. Resolve the value
|
||||
// with `await env.JWT_SECRET.get()`; all workers bind the same store so tokens
|
||||
// signed by `auth` verify here.
|
||||
|
||||
@@ -2,13 +2,7 @@ import { Hono } from 'hono'
|
||||
import { describeRoute, openAPIRouteHandler } from 'hono-openapi'
|
||||
import { useWorkersLogger } from 'workers-tagged-logger'
|
||||
|
||||
import {
|
||||
intVar,
|
||||
withCleanSpec,
|
||||
withDefaultCors,
|
||||
withNotFound,
|
||||
withOnError,
|
||||
} from '@repo/hono-helpers'
|
||||
import { withCleanSpec, withDefaultCors, withNotFound, withOnError } from '@repo/hono-helpers'
|
||||
import { validateAndGetAccountId } from '@repo/jwt'
|
||||
|
||||
import {
|
||||
@@ -63,19 +57,6 @@ const UPLOAD_EXTENSION: Record<number, string> = {
|
||||
5: '.inv',
|
||||
}
|
||||
|
||||
/**
|
||||
* A Worker must not accept an unbounded user-controlled blob into memory and R2.
|
||||
* Operators can tune this for known room sizes, but an unset or invalid value keeps
|
||||
* the safe 64 MiB default. Non-positive values are invalid rather than disabling the
|
||||
* limit: a public upload endpoint must always have a finite ceiling.
|
||||
*/
|
||||
const DEFAULT_MAX_UPLOAD_BYTES = 64 * 1024 * 1024
|
||||
|
||||
function maxUploadBytes(value: unknown): number {
|
||||
const configured = intVar(value, DEFAULT_MAX_UPLOAD_BYTES)
|
||||
return configured > 0 ? configured : DEFAULT_MAX_UPLOAD_BYTES
|
||||
}
|
||||
|
||||
function extensionForFileType(fileType: string): string {
|
||||
return UPLOAD_EXTENSION[Number.parseInt(fileType, 10)] ?? ''
|
||||
}
|
||||
@@ -149,7 +130,6 @@ const app = new Hono<App>()
|
||||
200: json(UploadResponse, 'The stored (or echoed) file name'),
|
||||
400: json(ErrorResponse, 'Unknown/missing FileType, or neither a file nor a name'),
|
||||
401: UNAUTHORIZED_RESPONSE,
|
||||
413: json(ErrorResponse, 'The binary file exceeds the configured upload limit'),
|
||||
},
|
||||
}),
|
||||
async (c) => {
|
||||
@@ -163,11 +143,6 @@ const app = new Hono<App>()
|
||||
const file = Object.values(body).find((v): v is File => v instanceof File)
|
||||
|
||||
if (file) {
|
||||
const limit = maxUploadBytes(c.env.MAX_UPLOAD_BYTES)
|
||||
if (file.size > limit) {
|
||||
return c.json({ error: `file exceeds the ${limit}-byte upload limit` }, 413)
|
||||
}
|
||||
|
||||
const fileType = textField(body, 'filetype') ?? '0'
|
||||
const subfolder = subfolderForFileType(fileType)
|
||||
if (subfolder === undefined) {
|
||||
|
||||
@@ -134,24 +134,6 @@ it('POST /upload 400s for a binary with an unknown/missing FileType', async () =
|
||||
}
|
||||
})
|
||||
|
||||
it('POST /upload rejects a binary above the configured size limit without storing it', async () => {
|
||||
const original = env.MAX_UPLOAD_BYTES
|
||||
env.MAX_UPLOAD_BYTES = '3'
|
||||
try {
|
||||
const res = await SELF.fetch(`${ORIGIN}/upload`, {
|
||||
method: 'POST',
|
||||
headers: await bearer(),
|
||||
body: uploadForm('3', new Uint8Array([1, 2, 3, 4])),
|
||||
})
|
||||
expect(res.status).toBe(413)
|
||||
expect((await res.json()) as { error: string }).toEqual({
|
||||
error: 'file exceeds the 3-byte upload limit',
|
||||
})
|
||||
} finally {
|
||||
env.MAX_UPLOAD_BYTES = original
|
||||
}
|
||||
})
|
||||
|
||||
it('POST /upload echoes an explicit name when no binary is posted', async () => {
|
||||
const form = new FormData()
|
||||
form.set('FileType', '3')
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
"@repo/domain": "workspace:*",
|
||||
"@repo/hono-helpers": "workspace:*",
|
||||
"@repo/jwt": "workspace:*",
|
||||
"@scalar/api-reference": "1.67.0",
|
||||
"hono": "4.13.5",
|
||||
"@scalar/api-reference": "1.63.0",
|
||||
"hono": "4.12.27",
|
||||
"react": "19.2.7",
|
||||
"react-dom": "19.2.7",
|
||||
"workers-tagged-logger": "1.0.1"
|
||||
@@ -36,6 +36,6 @@
|
||||
"@vitejs/plugin-react": "5.2.0",
|
||||
"vite": "6.4.3",
|
||||
"vitest": "4.1.9",
|
||||
"wrangler": "4.128.0"
|
||||
"wrangler": "4.105.0"
|
||||
}
|
||||
}
|
||||
|
||||
+142
-28
@@ -118,6 +118,25 @@ export const ROOM_SCHEMA_DDL: string[] = [
|
||||
sort_ascending INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (room_id, leaderboard_id)
|
||||
)`,
|
||||
// Per-room role grants and invitations (migrations/0017_room_role.sql), one row per
|
||||
// (room, account) — the client's `Roles` entry shape ({@link RoomRole}): `role` is the
|
||||
// member's CURRENT role tier, `invited_role` the tier they've been offered but not yet
|
||||
// accepted (so it's usually the higher of the two; 0 when no offer is pending), and
|
||||
// `last_changed_by` who last touched the row (NULL for the seeded creator entries,
|
||||
// matching the blob's `LastChangedByAccountId: null`).
|
||||
//
|
||||
// The table is AUTHORITATIVE, the same arrangement as `room_tag`: `serializeRoom`
|
||||
// strips `Roles` from the blob and the reads re-attach it (see {@link attachRoles}),
|
||||
// so there is exactly one place a role is stored — and `getContributedRooms` matches
|
||||
// on an indexed table instead of a `json_each` over every blob.
|
||||
`CREATE TABLE IF NOT EXISTS room_role (
|
||||
room_id INTEGER NOT NULL,
|
||||
account_id INTEGER NOT NULL,
|
||||
role INTEGER NOT NULL DEFAULT 0,
|
||||
last_changed_by INTEGER,
|
||||
invited_role INTEGER NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (room_id, account_id)
|
||||
)`,
|
||||
]
|
||||
|
||||
/**
|
||||
@@ -412,7 +431,8 @@ export async function cloneRoom(
|
||||
|
||||
// Ownership is reset to the cloner — the source room's Roles (its creator and
|
||||
// any co-owners, e.g. the seeded base-room roles for accounts 1/2) must NOT
|
||||
// carry over, or the clone would still list the template's owner as owner.
|
||||
// carry over, or the clone would still list the template's owner as owner. The
|
||||
// roles live in `room_role` (inserted below); this array is the response copy.
|
||||
const roles: RoomRole[] = [
|
||||
{ AccountId: accountId, Role: Role.Creator, LastChangedByAccountId: null, InvitedRole: 0 },
|
||||
]
|
||||
@@ -440,9 +460,11 @@ export async function cloneRoom(
|
||||
CreatedAt: new Date().toISOString(),
|
||||
}
|
||||
|
||||
// serializeRoom drops the hydrated SubRooms from the blob; the clone's subrooms are
|
||||
// inserted into the subroom table below with fresh globally-unique ids.
|
||||
// serializeRoom drops the hydrated SubRooms from the blob (and Roles — those go to
|
||||
// their own table); the clone's subrooms are inserted into the subroom table below
|
||||
// with fresh globally-unique ids.
|
||||
await db.prepare('INSERT INTO room (data) VALUES (?1)').bind(serializeRoom(cloned)).run()
|
||||
await insertCreatorRole(db, newRoomId, accountId)
|
||||
const sourceSubRooms = Array.isArray(source.SubRooms) ? (source.SubRooms as SubRoom[]) : []
|
||||
const clonedSubRooms: SubRoom[] = []
|
||||
for (const sub of sourceSubRooms) {
|
||||
@@ -509,10 +531,12 @@ export async function updateRoomFields(
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a target account's room `Role` — updating their existing `Roles` entry or
|
||||
* appending a new one — and stamp `LastChangedByAccountId` with the editor. The
|
||||
* caller supplies the already-loaded room (after its owner/co-owner check) to avoid
|
||||
* a re-read; the whole room JSON is rewritten. Returns the updated room.
|
||||
* Set a target account's room `Role` — updating their existing `room_role` row or
|
||||
* inserting one — and stamp `last_changed_by` with the editor. One row per
|
||||
* (room, account), so the call is idempotent; a pending `invited_role` is left alone
|
||||
* (setting someone's role is not answering their invitation). The caller supplies the
|
||||
* already-loaded (hydrated) room, and gets it back with `Roles` updated to match the
|
||||
* table — the blob is not touched, roles don't live there.
|
||||
*/
|
||||
export async function setRoomRole(
|
||||
db: D1Database,
|
||||
@@ -522,7 +546,18 @@ export async function setRoomRole(
|
||||
changedByAccountId: number,
|
||||
room: Room
|
||||
): Promise<Room> {
|
||||
const roles = Array.isArray(room.Roles) ? (room.Roles as RoomRole[]) : []
|
||||
await db
|
||||
.prepare(
|
||||
`INSERT INTO room_role (room_id, account_id, role, last_changed_by, invited_role)
|
||||
VALUES (?1, ?2, ?3, ?4, 0)
|
||||
ON CONFLICT(room_id, account_id) DO UPDATE SET role = ?3, last_changed_by = ?4`
|
||||
)
|
||||
.bind(roomId, targetAccountId, role, changedByAccountId)
|
||||
.run()
|
||||
|
||||
// Mirror the write onto the hydrated room so the caller can serve it without a
|
||||
// re-read — the same entry shape {@link attachRoles} would produce.
|
||||
const roles = Array.isArray(room.Roles) ? [...(room.Roles as RoomRole[])] : []
|
||||
const existing = roles.find((r) => r.AccountId === targetAccountId)
|
||||
if (existing) {
|
||||
existing.Role = role
|
||||
@@ -535,12 +570,7 @@ export async function setRoomRole(
|
||||
InvitedRole: 0,
|
||||
})
|
||||
}
|
||||
const updated: Room = { ...room, Roles: roles }
|
||||
await db
|
||||
.prepare('UPDATE room SET data = ?2 WHERE room_id = ?1')
|
||||
.bind(roomId, serializeRoom(updated))
|
||||
.run()
|
||||
return updated
|
||||
return { ...room, Roles: roles }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1274,16 +1304,17 @@ const serializeSubRoom = (sub: SubRoom, roomId: number): string => {
|
||||
/**
|
||||
* Serialize a room for a full-blob write, dropping the parts that belong to another table
|
||||
* so the blob can never hold a stale copy: hydrated `SubRooms` (the `subroom` table's job),
|
||||
* `Tags` (the `room_tag` table's job — see {@link setRoomTags}), and the derived engagement
|
||||
* counters, which are zeroed rather than dropped so the key stays present (the
|
||||
* `interaction` table's job — see {@link attachStats}).
|
||||
* `Tags` (the `room_tag` table's job — see {@link setRoomTags}), `Roles` (the `room_role`
|
||||
* table's job — see {@link setRoomRole}), and the derived engagement counters, which are
|
||||
* zeroed rather than dropped so the key stays present (the `interaction` table's job —
|
||||
* see {@link attachStats}).
|
||||
*
|
||||
* Because `Tags` is dropped here, a write that means to CHANGE a room's tags has to write
|
||||
* the table itself; passing a room with a new `Tags` array through this silently discards
|
||||
* Because `Tags` and `Roles` are dropped here, a write that means to CHANGE them has to
|
||||
* write the table itself; passing a room with a new array through this silently discards
|
||||
* it.
|
||||
*/
|
||||
const serializeRoom = (room: Room): string => {
|
||||
const { SubRooms: _subRooms, Tags: _tags, Stats: stats, ...rest } = room
|
||||
const { SubRooms: _subRooms, Tags: _tags, Roles: _roles, Stats: stats, ...rest } = room
|
||||
return JSON.stringify({ ...rest, Stats: storedStats(stats) })
|
||||
}
|
||||
|
||||
@@ -1489,6 +1520,70 @@ function roomsByTagsQuery(tagSets: string[][], where = ''): { sql: string; binds
|
||||
return { sql: `SELECT ${ROOM_COLUMNS} FROM room r ${joins.join(' ')}${filter}`, binds }
|
||||
}
|
||||
|
||||
// ---- Room roles -----------------------------------------------------------
|
||||
// A room's roles live in `room_role`, not in the room blob (see ROOM_SCHEMA_DDL). The
|
||||
// blob is stripped on write and the array is re-attached on read, the same arrangement
|
||||
// as `room_tag`, so there is exactly one place a role is stored.
|
||||
|
||||
interface RoomRoleRow {
|
||||
room_id: number
|
||||
account_id: number
|
||||
role: number
|
||||
last_changed_by: number | null
|
||||
invited_role: number
|
||||
}
|
||||
|
||||
const toRoomRole = (row: RoomRoleRow): RoomRole => ({
|
||||
AccountId: row.account_id,
|
||||
Role: row.role,
|
||||
LastChangedByAccountId: row.last_changed_by,
|
||||
InvitedRole: row.invited_role,
|
||||
})
|
||||
|
||||
/** The given rooms' role entries, grouped by room id (one query for the batch). */
|
||||
async function rolesByRoom(db: D1Database, ids: number[]): Promise<Map<number, RoomRole[]>> {
|
||||
const byRoom = new Map<number, RoomRole[]>()
|
||||
if (ids.length === 0) return byRoom
|
||||
const results = await selectInChunks<RoomRoleRow>(
|
||||
db,
|
||||
ids,
|
||||
(placeholders) =>
|
||||
`SELECT room_id, account_id, role, last_changed_by, invited_role FROM room_role
|
||||
WHERE room_id IN (${placeholders}) ORDER BY account_id`
|
||||
)
|
||||
for (const row of results) {
|
||||
const list = byRoom.get(row.room_id) ?? []
|
||||
list.push(toRoomRole(row))
|
||||
byRoom.set(row.room_id, list)
|
||||
}
|
||||
return byRoom
|
||||
}
|
||||
|
||||
/**
|
||||
* Fill in each room's `Roles` from `room_role`. Every room ends up with the key PRESENT —
|
||||
* an empty array when it carries none — because {@link canManageRoom} and the client both
|
||||
* read it directly and the blob no longer supplies one.
|
||||
*/
|
||||
async function attachRoles(db: D1Database, rooms: Room[]): Promise<void> {
|
||||
const byRoom = await rolesByRoom(db, [...new Set(rooms.map(roomIdOf))])
|
||||
for (const room of rooms) room.Roles = byRoom.get(roomIdOf(room)) ?? []
|
||||
}
|
||||
|
||||
/**
|
||||
* Seed a brand-new room's creator entry (Role 255, `last_changed_by` NULL like the
|
||||
* imported creator rows) — the row every room minted by this module starts with.
|
||||
*/
|
||||
async function insertCreatorRole(db: D1Database, roomId: number, accountId: number): Promise<void> {
|
||||
await db
|
||||
.prepare(
|
||||
`INSERT INTO room_role (room_id, account_id, role, last_changed_by, invited_role)
|
||||
VALUES (?1, ?2, ?3, NULL, 0)
|
||||
ON CONFLICT(room_id, account_id) DO UPDATE SET role = ?3`
|
||||
)
|
||||
.bind(roomId, accountId, Role.Creator)
|
||||
.run()
|
||||
}
|
||||
|
||||
/** Parse subroom rows and resolve their `CurrentSave` in one batched query. */
|
||||
async function parseSubRoomRows(db: D1Database, rows: SubRoomRow[]): Promise<SubRoom[]> {
|
||||
const subs = rows.map(parseSubRoomRow)
|
||||
@@ -1638,7 +1733,8 @@ async function hydrateRoom(db: D1Database, room: Room | null): Promise<Room | nu
|
||||
}
|
||||
|
||||
/**
|
||||
* Hydrate many rooms' `SubRooms`, `Tags` and derived `Stats` (one batched query each).
|
||||
* Hydrate many rooms' `SubRooms`, `Tags`, `Roles` and derived `Stats` (one batched query
|
||||
* each).
|
||||
*
|
||||
* `Tags` is re-attached even for the feeds that already did so before ranking
|
||||
* ({@link parseAllWithTags}) — it is one query for the page slice and it guarantees the key
|
||||
@@ -1652,6 +1748,7 @@ async function hydrateRooms(
|
||||
await Promise.all([
|
||||
attachSubRooms(db, rooms),
|
||||
attachTags(db, rooms),
|
||||
attachRoles(db, rooms),
|
||||
attachStats(db, rooms, stats),
|
||||
])
|
||||
return rooms
|
||||
@@ -1940,6 +2037,19 @@ export async function seedRoomWithSubRooms(db: D1Database, room: Room): Promise<
|
||||
if (Array.isArray(room.Tags) && room.Tags.length > 0) {
|
||||
await setRoomTags(db, roomId, room.Tags as RoomTag[])
|
||||
}
|
||||
// Same for `Roles` — mirrors 0017's backfill of `room_role` from the blobs.
|
||||
if (Array.isArray(room.Roles) && room.Roles.length > 0) {
|
||||
await db.batch(
|
||||
(room.Roles as RoomRole[]).map((r) =>
|
||||
db
|
||||
.prepare(
|
||||
`INSERT OR IGNORE INTO room_role (room_id, account_id, role, last_changed_by, invited_role)
|
||||
VALUES (?1, ?2, ?3, ?4, ?5)`
|
||||
)
|
||||
.bind(roomId, r.AccountId, r.Role ?? 0, r.LastChangedByAccountId, r.InvitedRole ?? 0)
|
||||
)
|
||||
)
|
||||
}
|
||||
for (const sub of subRooms) {
|
||||
const subRoomId = Number(sub.SubRoomId)
|
||||
await db
|
||||
@@ -1981,6 +2091,8 @@ export async function deleteRoom(db: D1Database, roomId: number): Promise<void>
|
||||
// Tag rows outlive the blob otherwise, and would keep answering `#tag` searches and
|
||||
// category rows for a room nobody can open.
|
||||
db.prepare('DELETE FROM room_tag WHERE room_id = ?1').bind(roomId),
|
||||
// Role rows likewise — they'd keep the room in everyone's contributed list.
|
||||
db.prepare('DELETE FROM room_role WHERE room_id = ?1').bind(roomId),
|
||||
// Saves and permission overrides first — both are keyed by subroom, so they'd be
|
||||
// unreachable once the subrooms themselves are gone.
|
||||
db
|
||||
@@ -2071,9 +2183,9 @@ export async function countRoomsByCreator(db: D1Database, accountId: number): Pr
|
||||
* room the player made. A room matching BOTH halves appears once — the roles half is an
|
||||
* EXISTS, not a join.
|
||||
*
|
||||
* Roles live inside the room blob rather than in a table of their own, so the match is a
|
||||
* `json_each` over `$.Roles`. A room with no `Roles` key (or a null one) simply yields no
|
||||
* rows there rather than erroring, so it only reaches the list if the account created it.
|
||||
* The roles half matches on `room_role` (the table is authoritative — see ROOM_SCHEMA_DDL),
|
||||
* so it is an indexed probe per room rather than the `json_each` over every blob it was
|
||||
* when roles lived serialized in the room.
|
||||
*/
|
||||
export async function getContributedRooms(db: D1Database, accountId: number): Promise<Room[]> {
|
||||
const { results } = await db
|
||||
@@ -2081,8 +2193,8 @@ export async function getContributedRooms(db: D1Database, accountId: number): Pr
|
||||
`SELECT ${ROOM_COLUMNS} FROM room
|
||||
WHERE creator_account_id = ?1
|
||||
OR EXISTS (
|
||||
SELECT 1 FROM json_each(room.data, '$.Roles') AS role
|
||||
WHERE json_extract(role.value, '$.AccountId') = ?1
|
||||
SELECT 1 FROM room_role WHERE room_role.room_id = room.room_id
|
||||
AND room_role.account_id = ?1
|
||||
)`
|
||||
)
|
||||
.bind(accountId)
|
||||
@@ -2921,9 +3033,11 @@ export async function getOrCreateDormRoom(db: D1Database, accountId: number): Pr
|
||||
Stats: storedStats(template?.Stats),
|
||||
CreatedAt: new Date().toISOString(),
|
||||
}
|
||||
// serializeRoom drops any SubRooms carried over from the template; the dorm's own
|
||||
// subroom is inserted into the subroom table below with a fresh globally-unique id.
|
||||
// serializeRoom drops any SubRooms carried over from the template (and Roles — those
|
||||
// go to their own table); the dorm's own subroom is inserted into the subroom table
|
||||
// below with a fresh globally-unique id.
|
||||
await db.prepare('INSERT INTO room (data) VALUES (?1)').bind(serializeRoom(room)).run()
|
||||
await insertCreatorRole(db, roomId, accountId)
|
||||
const subRoom = await insertSubRoom(db, roomId, { ...templateSub, CreatorAccountId: accountId })
|
||||
room.SubRooms = [subRoom]
|
||||
// The template carries these (it was parsed), but a dorm minted without one wouldn't.
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@hono/standard-validator": "0.2.2",
|
||||
"hono": "4.13.5",
|
||||
"hono": "4.12.27",
|
||||
"http-codex": "0.6.7",
|
||||
"workers-tagged-logger": "1.0.1",
|
||||
"zod": "4.4.3"
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@repo/domain": "workspace:*",
|
||||
"hono": "4.13.5"
|
||||
"hono": "4.12.27"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@cloudflare/workers-types": "4.20260630.1",
|
||||
|
||||
@@ -52,12 +52,8 @@ export async function validateAndGetAccountId(
|
||||
const accountId = await getAccountIdFromToken(token, secret)
|
||||
if (!accountId) return null
|
||||
|
||||
// `parseInt("42junk", 10)` is 42, which lets a malformed subject select a real
|
||||
// account. Token subjects are canonical positive base-10 account ids: reject
|
||||
// partial parses, signs, decimals, leading zeroes and values outside JS's safe range.
|
||||
if (!/^[1-9]\d*$/.test(accountId)) return null
|
||||
const id = Number(accountId)
|
||||
return Number.isSafeInteger(id) ? id : null
|
||||
const id = Number.parseInt(accountId, 10)
|
||||
return Number.isNaN(id) ? null : id
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
"dependencies": {
|
||||
"esbuild": "0.28.1",
|
||||
"slugify": "1.6.9",
|
||||
"wrangler": "4.128.0",
|
||||
"wrangler": "4.105.0",
|
||||
"yaml": "2.9.0",
|
||||
"zod": "4.4.3",
|
||||
"zx": "8.8.5"
|
||||
|
||||
Generated
+554
-1003
@@ -13,7 +13,7 @@ importers:
|
||||
version: 8.0.1(@babel/core@7.29.7)
|
||||
'@ianvs/prettier-plugin-sort-imports':
|
||||
specifier: 4.7.1
|
||||
version: 4.7.1(@vue/compiler-sfc@3.5.42)(prettier@3.9.4)
|
||||
version: 4.7.1(@vue/compiler-sfc@3.5.40)(prettier@3.9.4)
|
||||
'@repo/oxlint-config':
|
||||
specifier: workspace:*
|
||||
version: link:packages/oxlint-config
|
||||
@@ -69,11 +69,11 @@ importers:
|
||||
specifier: 0.2.9
|
||||
version: 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3)
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
hono-openapi:
|
||||
specifier: 1.3.1
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.13.5)(openapi-types@12.1.3)
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3)
|
||||
openapi-types:
|
||||
specifier: 12.1.3
|
||||
version: 12.1.3
|
||||
@@ -100,8 +100,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/ai:
|
||||
dependencies:
|
||||
@@ -118,11 +118,11 @@ importers:
|
||||
specifier: 0.2.9
|
||||
version: 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3)
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
hono-openapi:
|
||||
specifier: 1.3.1
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.13.5)(openapi-types@12.1.3)
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3)
|
||||
openapi-types:
|
||||
specifier: 12.1.3
|
||||
version: 12.1.3
|
||||
@@ -149,8 +149,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/api:
|
||||
dependencies:
|
||||
@@ -173,11 +173,11 @@ importers:
|
||||
specifier: 0.2.9
|
||||
version: 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3)
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
hono-openapi:
|
||||
specifier: 1.3.1
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.13.5)(openapi-types@12.1.3)
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3)
|
||||
openapi-types:
|
||||
specifier: 12.1.3
|
||||
version: 12.1.3
|
||||
@@ -204,8 +204,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/auth:
|
||||
dependencies:
|
||||
@@ -225,11 +225,11 @@ importers:
|
||||
specifier: 0.2.9
|
||||
version: 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3)
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
hono-openapi:
|
||||
specifier: 1.3.1
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.13.5)(openapi-types@12.1.3)
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3)
|
||||
openapi-types:
|
||||
specifier: 12.1.3
|
||||
version: 12.1.3
|
||||
@@ -256,8 +256,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/cards:
|
||||
dependencies:
|
||||
@@ -265,8 +265,8 @@ importers:
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/hono-helpers
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
workers-tagged-logger:
|
||||
specifier: 1.0.1
|
||||
version: 1.0.1
|
||||
@@ -287,8 +287,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/cdn:
|
||||
dependencies:
|
||||
@@ -305,11 +305,11 @@ importers:
|
||||
specifier: 0.2.9
|
||||
version: 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3)
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
hono-openapi:
|
||||
specifier: 1.3.1
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.13.5)(openapi-types@12.1.3)
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3)
|
||||
openapi-types:
|
||||
specifier: 12.1.3
|
||||
version: 12.1.3
|
||||
@@ -336,8 +336,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/chat:
|
||||
dependencies:
|
||||
@@ -357,11 +357,11 @@ importers:
|
||||
specifier: 0.2.9
|
||||
version: 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3)
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
hono-openapi:
|
||||
specifier: 1.3.1
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.13.5)(openapi-types@12.1.3)
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3)
|
||||
openapi-types:
|
||||
specifier: 12.1.3
|
||||
version: 12.1.3
|
||||
@@ -388,8 +388,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/clubs:
|
||||
dependencies:
|
||||
@@ -409,11 +409,11 @@ importers:
|
||||
specifier: 0.2.9
|
||||
version: 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3)
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
hono-openapi:
|
||||
specifier: 1.3.1
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.13.5)(openapi-types@12.1.3)
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3)
|
||||
openapi-types:
|
||||
specifier: 12.1.3
|
||||
version: 12.1.3
|
||||
@@ -440,8 +440,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/commerce:
|
||||
dependencies:
|
||||
@@ -455,11 +455,11 @@ importers:
|
||||
specifier: 0.2.9
|
||||
version: 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3)
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
hono-openapi:
|
||||
specifier: 1.3.1
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.13.5)(openapi-types@12.1.3)
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3)
|
||||
openapi-types:
|
||||
specifier: 12.1.3
|
||||
version: 12.1.3
|
||||
@@ -486,8 +486,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/datacollection:
|
||||
dependencies:
|
||||
@@ -495,8 +495,8 @@ importers:
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/hono-helpers
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
workers-tagged-logger:
|
||||
specifier: 1.0.1
|
||||
version: 1.0.1
|
||||
@@ -517,8 +517,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/discovery:
|
||||
dependencies:
|
||||
@@ -532,11 +532,11 @@ importers:
|
||||
specifier: 0.2.9
|
||||
version: 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3)
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
hono-openapi:
|
||||
specifier: 1.3.1
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.13.5)(openapi-types@12.1.3)
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3)
|
||||
openapi-types:
|
||||
specifier: 12.1.3
|
||||
version: 12.1.3
|
||||
@@ -563,8 +563,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/econ:
|
||||
dependencies:
|
||||
@@ -587,11 +587,11 @@ importers:
|
||||
specifier: 0.2.9
|
||||
version: 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3)
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
hono-openapi:
|
||||
specifier: 1.3.1
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.13.5)(openapi-types@12.1.3)
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3)
|
||||
openapi-types:
|
||||
specifier: 12.1.3
|
||||
version: 12.1.3
|
||||
@@ -618,8 +618,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/img:
|
||||
dependencies:
|
||||
@@ -636,11 +636,11 @@ importers:
|
||||
specifier: 0.2.9
|
||||
version: 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3)
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
hono-openapi:
|
||||
specifier: 1.3.1
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.13.5)(openapi-types@12.1.3)
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3)
|
||||
openapi-types:
|
||||
specifier: 12.1.3
|
||||
version: 12.1.3
|
||||
@@ -667,8 +667,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/leaderboard:
|
||||
dependencies:
|
||||
@@ -688,11 +688,11 @@ importers:
|
||||
specifier: 0.2.9
|
||||
version: 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3)
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
hono-openapi:
|
||||
specifier: 1.3.1
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.13.5)(openapi-types@12.1.3)
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3)
|
||||
openapi-types:
|
||||
specifier: 12.1.3
|
||||
version: 12.1.3
|
||||
@@ -719,8 +719,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/link:
|
||||
dependencies:
|
||||
@@ -728,8 +728,8 @@ importers:
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/hono-helpers
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
workers-tagged-logger:
|
||||
specifier: 1.0.1
|
||||
version: 1.0.1
|
||||
@@ -750,8 +750,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/lists:
|
||||
dependencies:
|
||||
@@ -765,11 +765,11 @@ importers:
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/jwt
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
hono-openapi:
|
||||
specifier: 1.3.1
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.13.5)(openapi-types@12.1.3)
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3)
|
||||
openapi-types:
|
||||
specifier: 12.1.3
|
||||
version: 12.1.3
|
||||
@@ -796,8 +796,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/match:
|
||||
dependencies:
|
||||
@@ -817,11 +817,11 @@ importers:
|
||||
specifier: 0.2.9
|
||||
version: 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3)
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
hono-openapi:
|
||||
specifier: 1.3.1
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.13.5)(openapi-types@12.1.3)
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3)
|
||||
openapi-types:
|
||||
specifier: 12.1.3
|
||||
version: 12.1.3
|
||||
@@ -848,8 +848,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/moderation:
|
||||
dependencies:
|
||||
@@ -857,8 +857,8 @@ importers:
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/hono-helpers
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
workers-tagged-logger:
|
||||
specifier: 1.0.1
|
||||
version: 1.0.1
|
||||
@@ -879,8 +879,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/mono:
|
||||
dependencies:
|
||||
@@ -900,11 +900,11 @@ importers:
|
||||
specifier: 0.2.9
|
||||
version: 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3)
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
hono-openapi:
|
||||
specifier: 1.3.1
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.13.5)(openapi-types@12.1.3)
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3)
|
||||
openapi-types:
|
||||
specifier: 12.1.3
|
||||
version: 12.1.3
|
||||
@@ -931,8 +931,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/notify:
|
||||
dependencies:
|
||||
@@ -943,8 +943,8 @@ importers:
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/jwt
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
workers-tagged-logger:
|
||||
specifier: 1.0.1
|
||||
version: 1.0.1
|
||||
@@ -965,8 +965,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/ns:
|
||||
dependencies:
|
||||
@@ -974,8 +974,8 @@ importers:
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/hono-helpers
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
workers-tagged-logger:
|
||||
specifier: 1.0.1
|
||||
version: 1.0.1
|
||||
@@ -996,8 +996,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/platformnotifications:
|
||||
dependencies:
|
||||
@@ -1008,8 +1008,8 @@ importers:
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/jwt
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
workers-tagged-logger:
|
||||
specifier: 1.0.1
|
||||
version: 1.0.1
|
||||
@@ -1030,8 +1030,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/playersettings:
|
||||
dependencies:
|
||||
@@ -1048,11 +1048,11 @@ importers:
|
||||
specifier: 0.2.9
|
||||
version: 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3)
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
hono-openapi:
|
||||
specifier: 1.3.1
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.13.5)(openapi-types@12.1.3)
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3)
|
||||
openapi-types:
|
||||
specifier: 12.1.3
|
||||
version: 12.1.3
|
||||
@@ -1079,8 +1079,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/roomcomments:
|
||||
dependencies:
|
||||
@@ -1100,11 +1100,11 @@ importers:
|
||||
specifier: 0.2.9
|
||||
version: 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3)
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
hono-openapi:
|
||||
specifier: 1.3.1
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.13.5)(openapi-types@12.1.3)
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3)
|
||||
openapi-types:
|
||||
specifier: 12.1.3
|
||||
version: 12.1.3
|
||||
@@ -1131,8 +1131,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/rooms:
|
||||
dependencies:
|
||||
@@ -1152,11 +1152,11 @@ importers:
|
||||
specifier: 0.2.9
|
||||
version: 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3)
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
hono-openapi:
|
||||
specifier: 1.3.1
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.13.5)(openapi-types@12.1.3)
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3)
|
||||
openapi-types:
|
||||
specifier: 12.1.3
|
||||
version: 12.1.3
|
||||
@@ -1183,8 +1183,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/storage:
|
||||
dependencies:
|
||||
@@ -1201,11 +1201,11 @@ importers:
|
||||
specifier: 0.2.9
|
||||
version: 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3)
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
hono-openapi:
|
||||
specifier: 1.3.1
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.13.5)(openapi-types@12.1.3)
|
||||
version: 1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3)
|
||||
openapi-types:
|
||||
specifier: 12.1.3
|
||||
version: 12.1.3
|
||||
@@ -1232,8 +1232,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
apps/www:
|
||||
dependencies:
|
||||
@@ -1247,11 +1247,11 @@ importers:
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/jwt
|
||||
'@scalar/api-reference':
|
||||
specifier: 1.67.0
|
||||
version: 1.67.0(tailwindcss@4.3.3)(typescript@6.0.3)(zod@4.5.4)
|
||||
specifier: 1.63.0
|
||||
version: 1.63.0(tailwindcss@4.3.3)(typescript@6.0.3)(zod@4.4.3)
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
react:
|
||||
specifier: 19.2.7
|
||||
version: 19.2.7
|
||||
@@ -1264,7 +1264,7 @@ importers:
|
||||
devDependencies:
|
||||
'@cloudflare/vite-plugin':
|
||||
specifier: 1.42.0
|
||||
version: 1.42.0(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))(workerd@1.20260831.1)(wrangler@4.128.0)
|
||||
version: 1.42.0(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))(workerd@1.20260625.1)(wrangler@4.105.0(@cloudflare/workers-types@4.20260630.1))
|
||||
'@cloudflare/vitest-pool-workers':
|
||||
specifier: 0.16.20
|
||||
version: 0.16.20(@cloudflare/workers-types@4.20260630.1)(@vitest/runner@4.1.9)(@vitest/snapshot@4.1.9)(vitest@4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0)))
|
||||
@@ -1293,8 +1293,8 @@ importers:
|
||||
specifier: 4.1.9
|
||||
version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@26.0.1)(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
|
||||
packages/domain:
|
||||
dependencies:
|
||||
@@ -1316,10 +1316,10 @@ importers:
|
||||
dependencies:
|
||||
'@hono/standard-validator':
|
||||
specifier: 0.2.2
|
||||
version: 0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5)
|
||||
version: 0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27)
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
http-codex:
|
||||
specifier: 0.6.7
|
||||
version: 0.6.7
|
||||
@@ -1352,8 +1352,8 @@ importers:
|
||||
specifier: workspace:*
|
||||
version: link:../domain
|
||||
hono:
|
||||
specifier: 4.13.5
|
||||
version: 4.13.5
|
||||
specifier: 4.12.27
|
||||
version: 4.12.27
|
||||
devDependencies:
|
||||
'@cloudflare/workers-types':
|
||||
specifier: 4.20260630.1
|
||||
@@ -1450,8 +1450,8 @@ importers:
|
||||
specifier: 1.6.9
|
||||
version: 1.6.9
|
||||
wrangler:
|
||||
specifier: 4.128.0
|
||||
version: 4.128.0
|
||||
specifier: 4.105.0
|
||||
version: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
yaml:
|
||||
specifier: 2.9.0
|
||||
version: 2.9.0
|
||||
@@ -1587,11 +1587,6 @@ packages:
|
||||
engines: {node: '>=6.0.0'}
|
||||
hasBin: true
|
||||
|
||||
'@babel/parser@7.29.8':
|
||||
resolution: {integrity: sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
hasBin: true
|
||||
|
||||
'@babel/plugin-transform-destructuring@8.0.1':
|
||||
resolution: {integrity: sha512-RtR8uLDl0QcCmqMNIkM8gmDeYZ3rS0ZH+sa+I6sfc09yFoqfp9AEPgBstq9KyfVb0lFCVSRFfJXCI70FIl5ccw==}
|
||||
engines: {node: ^22.18.0 || >=24.11.0}
|
||||
@@ -1628,10 +1623,6 @@ packages:
|
||||
resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/types@7.29.8':
|
||||
resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@cf-wasm/internals@0.1.2':
|
||||
resolution: {integrity: sha512-9d/I3JFv1IpQFYOrIw5RQShQPyuZRw9DyeBylF39Uj/MH7my8+EzKDPpUCHiqZ5O7tZS/A6zwP08egpeI5NBhA==}
|
||||
|
||||
@@ -1677,12 +1668,6 @@ packages:
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@cloudflare/workerd-darwin-64@1.20260831.1':
|
||||
resolution: {integrity: sha512-oyZ8xhu+gYTvoxV/sn6NRmTHK95RhEO1Dk54/6oPb0Uu70w7ZeRoCjkJ5aNmfS8Vrkdu6+oL0HNg6EcC61uQ2Q==}
|
||||
engines: {node: '>=16'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@cloudflare/workerd-darwin-arm64@1.20260617.1':
|
||||
resolution: {integrity: sha512-LHH7b565g9znfCUOkwbec6FG2rmRbsgCy6aJiU9KN662mNheWl5sw/iKleiFSiljPKQQP3HkjnC/NSkdgi/aSA==}
|
||||
engines: {node: '>=16'}
|
||||
@@ -1695,12 +1680,6 @@ packages:
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@cloudflare/workerd-darwin-arm64@1.20260831.1':
|
||||
resolution: {integrity: sha512-s6Go53KPnoXZ1sTGBZ3en3otfHDuMPJhiwXMYWU21JkJQkpoeRt6HFUwM0GPhK3YhXWm+8baGMvCGZYS/KA9eA==}
|
||||
engines: {node: '>=16'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@cloudflare/workerd-linux-64@1.20260617.1':
|
||||
resolution: {integrity: sha512-FMnaAKXe4Cfd8TQurCVd9fs2XQVBFRCsP+Id/SRdUv89MlwYu9zXfoyx6BxM+brPTIUK38SHbo8iaxiwzLi9JQ==}
|
||||
engines: {node: '>=16'}
|
||||
@@ -1713,12 +1692,6 @@ packages:
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@cloudflare/workerd-linux-64@1.20260831.1':
|
||||
resolution: {integrity: sha512-WxNKBgjKgeYTolW3yl1Lt3Lu67UlxdeyzWYi9MIqrKBdyQcz+UNG36RevSBf8rv1sTWapRW234VX2keZ+wXapA==}
|
||||
engines: {node: '>=16'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@cloudflare/workerd-linux-arm64@1.20260617.1':
|
||||
resolution: {integrity: sha512-MRoifFYcqbxxIIQy7PqO5tFY/qPFSnjXzakWl0sO93l+HLyG35jRAgOi6jfqa4kBxc7gKKtH861DcewjxUfkjA==}
|
||||
engines: {node: '>=16'}
|
||||
@@ -1731,12 +1704,6 @@ packages:
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@cloudflare/workerd-linux-arm64@1.20260831.1':
|
||||
resolution: {integrity: sha512-JTF9+9clUT3gaCq7Xnmd+Q/wEMaitpngSTOec/Ffb/r3xexA9XwNJVFSOKfk6q61flHGjAYJ4H9B7Mu5Qur49w==}
|
||||
engines: {node: '>=16'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@cloudflare/workerd-windows-64@1.20260617.1':
|
||||
resolution: {integrity: sha512-rgBV9wQrv0OSKgCTTbhFUFY3sLGNANZ88aqaLvtmEn2gmbFVb1J4PDGochVUdB7NSEp4D/ghHva6/8SZmbONpw==}
|
||||
engines: {node: '>=16'}
|
||||
@@ -1749,26 +1716,20 @@ packages:
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@cloudflare/workerd-windows-64@1.20260831.1':
|
||||
resolution: {integrity: sha512-do+KDYw0PABwsrKUQIccWBZB70kqKcADoSnvzJ8pvMaWUVB4qaCspEZYfm97WNdtY1wt8mlKYqIJyYUNOkTvQg==}
|
||||
engines: {node: '>=16'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@cloudflare/workers-types@4.20260630.1':
|
||||
resolution: {integrity: sha512-yl+c9vwvko9UZ0frmtsHuwOh3BRHvNjLrfelAp5Akpqe1+Ho1UWekr3nmjJ1D64CH0Yb0K0oRMV4i7npOFzsog==}
|
||||
|
||||
'@codemirror/autocomplete@6.20.3':
|
||||
resolution: {integrity: sha512-tlosUqb+3BbxCxZdu4tKeRghPFC+QM7q4X5YhKV2eCmPG+1r2F3f4AaSz5sCrFqUtX4Jh20VFTKecl16MgiV9g==}
|
||||
|
||||
'@codemirror/commands@6.11.0':
|
||||
resolution: {integrity: sha512-/K4Rl5BN0OtTiPWmJCdqODu38XnDMsDxKY5rgrPnCkutPTJf2wVbkoixLfealF5Kwse/s8P8M5jAiURiwSwnFA==}
|
||||
'@codemirror/commands@6.10.4':
|
||||
resolution: {integrity: sha512-Ryk9y9T0FFVF0cUGhAknveAyUOl/A1qReTFi+qPKtOh2Z9F4AUBz3XOrYD4ZEgZirdugVzHvd/2/Wcwy5OliTg==}
|
||||
|
||||
'@codemirror/lang-css@6.3.1':
|
||||
resolution: {integrity: sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg==}
|
||||
|
||||
'@codemirror/lang-html@6.4.12':
|
||||
resolution: {integrity: sha512-pw2ReWKUqSkbvh76RAT4NYxiogRu+PWkR2ukAwO9uOgrm8uipkzjtKKtNpyeAQwHOqxEeSvAXZ6vr3AfyB9y/w==}
|
||||
'@codemirror/lang-html@6.4.11':
|
||||
resolution: {integrity: sha512-9NsXp7Nwp891pQchI7gPdTwBuSuT3K65NGTHWHNJ55HjYcHLllr0rbIZNdOzas9ztc1EUVBlHou85FFZS4BNnw==}
|
||||
|
||||
'@codemirror/lang-javascript@6.2.5':
|
||||
resolution: {integrity: sha512-zD4e5mS+50htS7F+TYjBPsiIFGanfVqg4HyUz6WNFikgOPf2BgKlx+TQedI1w6n/IqRBVBbBWmGFdLB/7uxO4A==}
|
||||
@@ -1788,11 +1749,11 @@ packages:
|
||||
'@codemirror/lint@6.9.7':
|
||||
resolution: {integrity: sha512-28/+iWLYxKxsvGYhSYL7zaCZqLz5+FFFDq9tVsvGv9kv8RY4fFAchJ5WX9M3YrrRlTIsECjsXPqeNgnSmNP2dg==}
|
||||
|
||||
'@codemirror/state@6.7.2':
|
||||
resolution: {integrity: sha512-U3RiPX62Wl/Gx4ftQ7UxLlloSfsFTQqKa+7vFBYteZGCzkp6oBqcsD7iSwniWRGobCAmDcwZSY+Six3+3ztdfg==}
|
||||
'@codemirror/state@6.7.1':
|
||||
resolution: {integrity: sha512-9QzNDgE4EYDnAHfrTlR2lwiPciiOymLtwKK+8yHQzCc7GXhAP9xdEbEJFy2IWB1j9UGUl9BsgMmTo/ImA02T7A==}
|
||||
|
||||
'@codemirror/view@6.43.10':
|
||||
resolution: {integrity: sha512-vVWLvd4fKWYN/pMcwUrg6dWeublxmSz+V+52ZjW3h64IVN9cRUYLk5Km4JDT9vifxAFfDtNOIFxKYENthcolJQ==}
|
||||
'@codemirror/view@6.43.6':
|
||||
resolution: {integrity: sha512-EVunGSYN1wz1p75WY1s3Xg7t3i8Yol0kGZGizNdX9BUFgMFILYVe8/u6EVpo7Ff5PwbZuILb4QAq7IZoKzIEQA==}
|
||||
|
||||
'@colors/colors@1.5.0':
|
||||
resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
|
||||
@@ -1807,9 +1768,6 @@ packages:
|
||||
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
'@emnapi/runtime@1.11.3':
|
||||
resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==}
|
||||
|
||||
'@emnapi/runtime@1.8.1':
|
||||
resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==}
|
||||
|
||||
@@ -2137,9 +2095,6 @@ packages:
|
||||
'@floating-ui/utils@0.2.12':
|
||||
resolution: {integrity: sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==}
|
||||
|
||||
'@floating-ui/vue@1.1.11':
|
||||
resolution: {integrity: sha512-HzHKCNVxnGS35r9fCHBc3+uCnjw9IWIlCPL683cGgM9Kgj2BiAl8x1mS7vtvP6F9S/e/q4O6MApwSHj8hNLGfw==}
|
||||
|
||||
'@floating-ui/vue@1.1.9':
|
||||
resolution: {integrity: sha512-BfNqNW6KA83Nexspgb9DZuz578R7HT8MZw1CfK9I6Ah4QReNWEJsXWHN+SdmOVLNGmTPDi+fDT535Df5PzMLbQ==}
|
||||
|
||||
@@ -2183,285 +2138,139 @@ packages:
|
||||
resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@img/colour@1.1.0':
|
||||
resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@img/sharp-darwin-arm64@0.34.5':
|
||||
resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@img/sharp-darwin-arm64@0.35.2':
|
||||
resolution: {integrity: sha512-eEieHsMksAW4IiO5NzauESRl2D2qz3J/kwUxUrSfV06A93eEaRfMpHXyUb1mAqrR7i8U9A0GRqE9pjn6u1Jjpg==}
|
||||
engines: {node: '>=20.9.0'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@img/sharp-darwin-x64@0.34.5':
|
||||
resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@img/sharp-darwin-x64@0.35.2':
|
||||
resolution: {integrity: sha512-BaktuGPCeHJMARpodR8jK4uKiZrPAy9WrfQW0sdI37clracq8Bp01AYS3SZgi5FS/y5twa9t4+LIuuxQjqRrWw==}
|
||||
engines: {node: '>=20.9.0'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@img/sharp-freebsd-wasm32@0.35.2':
|
||||
resolution: {integrity: sha512-YoAxdnd8hPUkvLHd3bWY+YA8nw3xM/RyRopYucNsWHVSan8NLVM3X2volsfoRDcXdUJPg6tXahSd7HXPK7lRnw==}
|
||||
engines: {node: '>=20.9.0'}
|
||||
os: [freebsd]
|
||||
|
||||
'@img/sharp-libvips-darwin-arm64@1.2.4':
|
||||
resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@img/sharp-libvips-darwin-arm64@1.3.1':
|
||||
resolution: {integrity: sha512-4V/M3roRMTYjiwZY9IOVQOE8OyeCxFAkYmyZDrZl51uOKjibm3oeEJ4WAmLxutAfzFbC9jqUiPs2gbnGflH+7g==}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@img/sharp-libvips-darwin-x64@1.2.4':
|
||||
resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@img/sharp-libvips-darwin-x64@1.3.1':
|
||||
resolution: {integrity: sha512-c0/DxItpJv2+dGhgycJBBgotdqruGYDvA79drdh0MD1dFpy7JzJ/PlXwi1H4rFf0eTy8tgbI91aHDnZIceY3jQ==}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@img/sharp-libvips-linux-arm64@1.2.4':
|
||||
resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-libvips-linux-arm64@1.3.1':
|
||||
resolution: {integrity: sha512-JznefmcK9j1JKPz8AkQDh89kjojubyfOasWBPKfzMIhPwsgDy9evpE/naJTXXXmghS1iFwR8u/kTwh/I2/+GCw==}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-libvips-linux-arm@1.2.4':
|
||||
resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-libvips-linux-arm@1.3.1':
|
||||
resolution: {integrity: sha512-aGGy9aWzXgHBG7HNyQPWorZthlp7+x6fDRoPAQbGO3ThcttuTyKIx3NuSHb6zb4gBNq6/yNn9f1cy9nFKS/Vmg==}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-libvips-linux-ppc64@1.2.4':
|
||||
resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==}
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-libvips-linux-ppc64@1.3.1':
|
||||
resolution: {integrity: sha512-1EkwGNCZk6iWNCMWqrvdJ+r1j0PT1zIz60CNPhYnJlK/zyeWqlsPZIe+ocBVqPF8k/Ssee/NCk+tE9Ryrko6ng==}
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-libvips-linux-riscv64@1.2.4':
|
||||
resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-libvips-linux-riscv64@1.3.1':
|
||||
resolution: {integrity: sha512-Ilays+w2bXdnxzxtQdmXR62u8o8GYa3eL4+Gr+1KiE4xperMZUslRaVPJwwPkzlHEjGfXAfRVAa/7CYCtSqsBw==}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-libvips-linux-s390x@1.2.4':
|
||||
resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-libvips-linux-s390x@1.3.1':
|
||||
resolution: {integrity: sha512-VfBwVHQTbRoj4XlpA/KLZ7ltgMpz+4WSejFzQ+GnoImjo1PtEJ59QB2qR1xQEeRPYIkNrPIm2L4cICMvz4C2ew==}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-libvips-linux-x64@1.2.4':
|
||||
resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-libvips-linux-x64@1.3.1':
|
||||
resolution: {integrity: sha512-+c8ukgwU62DS54nCAjw7keOfHUkmr0B5QHEdcOqRnodF/MNXJbVI8Eopoj4B/0H8Asr65I+A4Amrn7a85/md6A==}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-libvips-linuxmusl-arm64@1.2.4':
|
||||
resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-libvips-linuxmusl-arm64@1.3.1':
|
||||
resolution: {integrity: sha512-qlKb/pwbkAi1WMsJrYHk7CuDrd12s27U2QnRhFYUoJNrRCmkosMTttuRFat/DDB3IlDm5qE1TJgZ4JDnHX8Ldw==}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-libvips-linuxmusl-x64@1.2.4':
|
||||
resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-libvips-linuxmusl-x64@1.3.1':
|
||||
resolution: {integrity: sha512-yO21HwoUVLN8Qa+/SBjQLMYwBWAVJjeGPNe+hc0OUeMeifEtJqu5a1c4HayE1nNpDih9y3/KkoltfkDodmKAlg==}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-linux-arm64@0.34.5':
|
||||
resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-linux-arm64@0.35.2':
|
||||
resolution: {integrity: sha512-af12Pnd0ZGu2HfP8NayB0kk6eC/lrfbQE6HlR4jD+34wdJ1Vw9TF6TMn6ZvffT+WgqVsl0hRbmNvz2u/23VmwA==}
|
||||
engines: {node: '>=20.9.0'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-linux-arm@0.34.5':
|
||||
resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-linux-arm@0.35.2':
|
||||
resolution: {integrity: sha512-SE4kzF2mepn6z+6E7L6lsV8FzuLL6IPQdyX8ZiwROAG/G8td+hP/m7FsFPwidtrF19gvajuC9l6TxAVcsA4S7A==}
|
||||
engines: {node: '>=20.9.0'}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-linux-ppc64@0.34.5':
|
||||
resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-linux-ppc64@0.35.2':
|
||||
resolution: {integrity: sha512-hYSBm7zcNtDCozCxQHYZJiu63b/bXsgRZuOxCIBZsStMM9Vap47iFHdbX4kCvQsblPB/k+clhELpdQJHQLSHvg==}
|
||||
engines: {node: '>=20.9.0'}
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-linux-riscv64@0.34.5':
|
||||
resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-linux-riscv64@0.35.2':
|
||||
resolution: {integrity: sha512-qQt0Kc13+Hoan/Awq/qMSQw3L+RI1NCRPgD5cUJ/1WSSmIoysLOc72jlRM3E0OHN9Yr313jgeQ2T+zW+F03QFA==}
|
||||
engines: {node: '>=20.9.0'}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-linux-s390x@0.34.5':
|
||||
resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-linux-s390x@0.35.2':
|
||||
resolution: {integrity: sha512-E4fLLfRPzDLlEeDaTzI98OFLcv++WL5ChLLMwPoVd0CIoZQqupBSNbOisPL5am9XsbQ9T84+iiMpUvbFtkunbA==}
|
||||
engines: {node: '>=20.9.0'}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-linux-x64@0.34.5':
|
||||
resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-linux-x64@0.35.2':
|
||||
resolution: {integrity: sha512-gi0zFJJRLswfCZmHtJdikXPOc5u7qamSOS3NHedLqLd4W8Q0NqjdBr6TTRIgsfFjqfTsHFgdfvJ9LwqSgcHiAA==}
|
||||
engines: {node: '>=20.9.0'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-linuxmusl-arm64@0.34.5':
|
||||
resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-linuxmusl-arm64@0.35.2':
|
||||
resolution: {integrity: sha512-siWbOW1u6HFnFLrp0waKyW7VEf7jYvcDWdrXEFa8AkdAQgEvuu5Fz8/Y70w9EeqAdwDtfU012BhEHHaDqvQNzg==}
|
||||
engines: {node: '>=20.9.0'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-linuxmusl-x64@0.34.5':
|
||||
resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-linuxmusl-x64@0.35.2':
|
||||
resolution: {integrity: sha512-YBqMMcjDi4QGYiSn4vNOYBhmlC4z5AXqkOUUqI2e0AFA4urNv4ESgOgwNl3K+4etQhha0twXlzeF20bbULm9Yg==}
|
||||
engines: {node: '>=20.9.0'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@img/sharp-wasm32@0.34.5':
|
||||
resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
cpu: [wasm32]
|
||||
|
||||
'@img/sharp-wasm32@0.35.2':
|
||||
resolution: {integrity: sha512-Mrv4JQNYVQ94xH+jzZ9r+gowleN8mv2FTgKT+PI6bx5C0G8TdNYndu161pg2i7uoBwxy2ImPMHrJOM2LZef7Bw==}
|
||||
engines: {node: '>=20.9.0'}
|
||||
|
||||
'@img/sharp-webcontainers-wasm32@0.35.2':
|
||||
resolution: {integrity: sha512-QNV27pxs9wpApEiCfvHM1RDoP1w1+2KrUWWDPEhEwg+latvOrfuhWrHWZKwdSFwU6jh3myjw/yOCRsUIuOft3g==}
|
||||
engines: {node: '>=20.9.0'}
|
||||
cpu: [wasm32]
|
||||
|
||||
'@img/sharp-win32-arm64@0.34.5':
|
||||
resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
|
||||
'@img/sharp-win32-arm64@0.35.2':
|
||||
resolution: {integrity: sha512-BiVRYc/t6/Vl3e1hBx0hugG4oN9Pydf4fgMSpxTQJmwGUg/YoXTWHiFeRymHfCZzifxu4F4rpk/I67D0LQ20wQ==}
|
||||
engines: {node: '>=20.9.0'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
|
||||
'@img/sharp-win32-ia32@0.34.5':
|
||||
resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
|
||||
'@img/sharp-win32-ia32@0.35.2':
|
||||
resolution: {integrity: sha512-YYEhx9PImCC7T0tI8JDMi4DB9LwLCXCU5OWNYEXAxh5Q1ShKkyC6byxzoBJ3gEFDnH2lQckWuDe70G7mB2XJog==}
|
||||
engines: {node: ^20.9.0}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
|
||||
'@img/sharp-win32-x64@0.34.5':
|
||||
resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@img/sharp-win32-x64@0.35.2':
|
||||
resolution: {integrity: sha512-imoOyBcoM/iiUr4J6VPpCNjPnjvP/Gks95898yB8YqoGGYmHYbOyCuNv9FMhFgtaiHFGbHW8bxKqRV6VjtXThQ==}
|
||||
engines: {node: '>=20.9.0'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@inquirer/ansi@1.0.2':
|
||||
resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -2596,11 +2405,11 @@ packages:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@internationalized/date@3.12.4':
|
||||
resolution: {integrity: sha512-M1dEn4c1U1HsSlaVR8upZtSqvXrTkHDfv18H01uCSJyjVLDxnBR38v/fMxecmlwXKR4i9HeZcmgQAPE6A+aGJQ==}
|
||||
'@internationalized/date@3.12.2':
|
||||
resolution: {integrity: sha512-FY1Y+H64NDs+HAF6omlnWxm3mEpfgaCSWtL5l551ZZfImA+kGjPFgrnJrGjH6lfmLL0g8Z/mBu1R3kufeCp6Jw==}
|
||||
|
||||
'@internationalized/number@3.6.8':
|
||||
resolution: {integrity: sha512-8UmMFia46DUt+k97zKd9fKWXcWHR+k8ae3eYzILETuT2KbIvLyOfac7zesw+sJdRAAZ7Q9pM1Mk22aXp2LD0Ig==}
|
||||
'@internationalized/number@3.6.7':
|
||||
resolution: {integrity: sha512-3ji1fcrT+FPAK86UqEhB/psHixYo6niWPJtt7+qRaYFynt/BaJG8GhAPimtWUpEiVSTq8ZM8L5psMxGquiB/Vg==}
|
||||
|
||||
'@jahands/cli-tools@0.11.5':
|
||||
resolution: {integrity: sha512-h3h6hXJ7TgQxP90EaxOpP+WV9ki8OF3AGclF8062YWWTKP1z3FP1fvxV03afh/+zrkVpclrrUKsQqNRWwq9M7w==}
|
||||
@@ -2633,8 +2442,8 @@ packages:
|
||||
'@lezer/common@1.5.2':
|
||||
resolution: {integrity: sha512-sxQE460fPZyU3sdc8lafxiPwJHBzZRy/udNFynGQky1SePYBdhkBl1kOagA9uT3pxR8K09bOrmTUqA9wb/PjSQ==}
|
||||
|
||||
'@lezer/css@1.3.6':
|
||||
resolution: {integrity: sha512-YJE78Wcg+zX8f10hiHWQ4Az48Qr/c13eId0VtRQYLBpxHDmDeSrXIlkbl+fJGW42rWC/uoUco9mhBZeVWP/A1g==}
|
||||
'@lezer/css@1.3.4':
|
||||
resolution: {integrity: sha512-N+tn9tej2hPvyKgHEApMOQfHczDJCwxrRFS3SPn9QjYN+uwHvEDnCgKRrb3mxDYxRS8sKMM8fhC3+lc04Abz5Q==}
|
||||
|
||||
'@lezer/highlight@1.2.3':
|
||||
resolution: {integrity: sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==}
|
||||
@@ -2657,8 +2466,8 @@ packages:
|
||||
'@lezer/yaml@1.0.4':
|
||||
resolution: {integrity: sha512-2lrrHqxalACEbxIbsjhqGpSW8kWpUKuY6RHgnSAFZa6qK62wvnPxA8hGOwOoDbwHcOFs5M4o27mjGu+P7TvBmw==}
|
||||
|
||||
'@marijn/find-cluster-break@1.0.4':
|
||||
resolution: {integrity: sha512-Wy0V7+SGUjnF9/TkiM1hKVDPj7jKXduPNboMVtHTA8dySMURWqfg/JZ9E2Sq8JgSJmkl7k7Qe9FLeMSrSraWmQ==}
|
||||
'@marijn/find-cluster-break@1.0.3':
|
||||
resolution: {integrity: sha512-FY+MKLBoTsLNJF/eLWaOsXGdz6uh3Iu1axjPf6TUq92IYumcTcXWHoS747JARLkcdlJ/Waiaxc5wQfFO8jC6NA==}
|
||||
|
||||
'@opentelemetry/api@1.9.0':
|
||||
resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
|
||||
@@ -2955,99 +2764,99 @@ packages:
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@scalar/agent-chat@0.12.29':
|
||||
resolution: {integrity: sha512-sZH6XDqhyF6X5hRSOOdlWuwV1MM2xxhLmY3OZiJFnvkLHKQNiFl6aWCxFIBkpgSxhAaXly+U2u41FjARN9rPTw==}
|
||||
'@scalar/agent-chat@0.12.22':
|
||||
resolution: {integrity: sha512-TQ4K8DOPMzRSwFWEVuJp7a+JQoiPD4WxbG0d7sJilC1dgtdDS6efRmadh87eRa17N+06xWfx5EcXg8hDrfKAFw==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/api-client@3.17.0':
|
||||
resolution: {integrity: sha512-7YLNYCfQAWtnQyu958KOEgSTW4gKhjEyrIsghUPmXfTM5Lbz5bRdPbsqIuGiHQ6kJUmGWCjPUw1KaonkiTAidA==}
|
||||
'@scalar/api-client@3.13.7':
|
||||
resolution: {integrity: sha512-bd+2nI27gnfCgzCGEP13u7rd2IlNdAB+Rx+CX0i29UXEu6SVxWpv5hBVrLLTQebfNzcUk9Evr+NkIX/WjSHp0Q==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/api-reference@1.67.0':
|
||||
resolution: {integrity: sha512-GBgsAKP9kmGbaUVZLlCeOK6QNVB/HKwfefvpRviiWsf1Qq3B4LHTrnQuZnfeojfoCqDXu2mldh8G8jSEaycpMA==}
|
||||
'@scalar/api-reference@1.63.0':
|
||||
resolution: {integrity: sha512-ie2DfrOeElmaVmY/xHd3aMfUpA5ApBDuPHYbcypn01l7rQPGQMFjPa7GX4QNzp4tgjnEMX3X9BYKSkyMQtH5ng==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/asyncapi-upgrader@0.1.8':
|
||||
resolution: {integrity: sha512-aotwerUUVKzvjgeyLseVIb93OHgwPYYUIOM/iUhQChhb7F24H5RhMrKVlQkQUhqWwvYue3mJOpT4or3zerFEiw==}
|
||||
'@scalar/asyncapi-upgrader@0.1.4':
|
||||
resolution: {integrity: sha512-pyAoyuFVlUf+ZThiuHAShV4lyF9LlPab5AJrvoER8JBz00bHF1NWiGveYySRcNcvke5U5nWCr7NxtiMIokP8sA==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/blocks@0.1.15':
|
||||
resolution: {integrity: sha512-SltVGWkIsesLDTfoSWbE+xHmqxtSAjAmdvb7m69C8hc7uslul9TloI6/UxkCIpcWsDoP/NEY+ioJz50qBpsDPg==}
|
||||
'@scalar/blocks@0.1.8':
|
||||
resolution: {integrity: sha512-I0bOMnb8+8cjboaRMWz4Vo16rcYu8+4tzLIpPeJHsJs4I5OaIIgaoNHRPaWDip9ZrqbD4m1I2gMDJmpJU/hEmA==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/code-highlight@0.4.5':
|
||||
resolution: {integrity: sha512-OCZvBYwodCR1cWemO3MXMwXumI18kFOy8k2nwP+Ic8zFLK1ObyXECRoM+UH+GTw+O4TJsrjNIdLjsnXPO1MvyA==}
|
||||
'@scalar/code-highlight@0.4.3':
|
||||
resolution: {integrity: sha512-uueW22siajrJUtszH+k/PmABqau2MmJzajpEFTPapK7Zak167xcKUIjcMbFFFgW8SGKLMSVzLkuB/VNDbOHuOg==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/components@0.29.0':
|
||||
resolution: {integrity: sha512-sSXagAIOgVCZQnZDfQHDZqpA88UYbSFlL9+hC0hJuhzs1kIRWHfxjqV/MFkTxyDc04AuGyKHruONe8Z0hTak5g==}
|
||||
'@scalar/components@0.27.9':
|
||||
resolution: {integrity: sha512-AoUTHwTfVc44zZbZnridPd7mp8lhe2LgX9KeyKw5keFlhLY1MzQv9OuXD7riLbJPrFFF/7lbqCLEpyG6vWSXQg==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/helpers@0.11.2':
|
||||
resolution: {integrity: sha512-IgHW/hIj1XAvsPIBKiOgmK87qbyDjaQQg9S/auXU4MUtvnwKKpOeIOJc0NC71FkMdr4Mok0SSVI748cmlptoXQ==}
|
||||
'@scalar/helpers@0.9.2':
|
||||
resolution: {integrity: sha512-hjyMpMZjTBZQhyByZmz5oUgRKUQJO5V5AOiJxsVEGbUmgA7sJRQeTrXLB+BEwzaKS5nm2opJeNyMBYLFNK4hiQ==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/icons@0.7.6':
|
||||
resolution: {integrity: sha512-UIQ7K/xNDo7Mgez/Z+ArG7JZnS8QRZNOl+s9frdS1T8uEJYuTqT1lnS7R0ECwIw3y6dn6EIfjaZKPihjYC7+qw==}
|
||||
'@scalar/icons@0.7.5':
|
||||
resolution: {integrity: sha512-kWYkjmYlHzrZ+31d8L1uJpVeil6r1xNcyR+MewnxFslpMBCDIeo9udhYzg09v8s6nWKxwuPokhdQPLbKS+SSgg==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/json-magic@0.13.3':
|
||||
resolution: {integrity: sha512-ONbveMHPl8ashCnTH/IzF2skr7CKUAC97m2tWQpbWJXhkUvc/B9vSRirjM0IqPCDURn4WZWAQFoaehDiEJICWA==}
|
||||
'@scalar/json-magic@0.12.19':
|
||||
resolution: {integrity: sha512-1T4QoFYZ1nKt25xFeHtghAuZzaLq2X4CpCSLFXG0Fjcz6K2HIZqo+RtywfI0WD8RRRRgS34keo7X4Gv1BQUNoQ==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/oas-utils@0.19.15':
|
||||
resolution: {integrity: sha512-hGaCIIqwiHUDdTKQPdrwa9vDe8gLXydYeBfiLjkHFpZer+ibDgLclQdI31l777L5Rs7ga2abFTzaZSJ3bPNgUw==}
|
||||
'@scalar/oas-utils@0.19.8':
|
||||
resolution: {integrity: sha512-A/bGTqthxnsgoveQ7Xomxtwk0JQ7V/cweaxz/Dhp9/JmvnAnjBjpcG050gcC1EuVkHhJL1sPH2+IczS9liQQ3A==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/openapi-types@0.9.5':
|
||||
resolution: {integrity: sha512-czrz/zkVm1oPzrpYo3hI/iymfiw1s4dgJiQtwNi2U77Sqf3EQOGKsif4VNRa5suWMYRuPaFx5EiFM1FNEV4Whg==}
|
||||
'@scalar/openapi-types@0.9.3':
|
||||
resolution: {integrity: sha512-34qglt5jSo55iZfH9i7EhjQCdE0Po2xZeh8wytQKolSnXrxsYMSyFDJEBxz1Gaew4on9N3XIWsd0QpwKVA5CSA==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/openapi-upgrader@0.2.15':
|
||||
resolution: {integrity: sha512-yqROK9U96ElasEL4Wl/+PIjQZlqrQXVUUpXk9PA6xBnrp8KdEv7at8pR5gsZkvddJfYVwLILPlctyqUg4u4YZA==}
|
||||
'@scalar/openapi-upgrader@0.2.11':
|
||||
resolution: {integrity: sha512-eYEFBO8mZfgXEO/hv8rdL5OA4oOB8orFT5kXNK4I/x9xca2D7A4BteuFXqRaw9lE1CIjtG+StlAUYVz5omTXew==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/schemas@0.8.4':
|
||||
resolution: {integrity: sha512-gbx/UjAswjJc+OZp/vcVRIopjqoJ62pOkrKLvVHa1MuMRoVxcPyNzW2/SQmnvdJku7C7a6PsKaPUQ6gZXGA4eg==}
|
||||
'@scalar/schemas@0.7.4':
|
||||
resolution: {integrity: sha512-Or31zxR+ceGGhkVU5XBO2Zv7oyGDtjsJOjM2Rr0WRZ1/tRsQc2/FsVv+9kPmCA7sqFL8BKWlNfTXcPITI7WRHw==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/sidebar@0.11.0':
|
||||
resolution: {integrity: sha512-eTl8goJs/HBSVgrIp0HfP3GUnxNA1mcVrACBOdKcoptrh+cZpEBU+/7LtKC6PwHvkujn+87wvCW/eERTdYn2vw==}
|
||||
'@scalar/sidebar@0.9.33':
|
||||
resolution: {integrity: sha512-y00qMs6dPu4Te+OuyyGSg0hGWTPsnUrn7juErtF4bOIse2w9BM1rHkYZWSdEL/afYv27x1wMBZJwAReiUeHguA==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/snippetz@0.9.29':
|
||||
resolution: {integrity: sha512-elv4AZWWY/v/f9g9QqQY2P3UekpRdpe1w0ECDCXNHvVBU2cherdU5FNnjiPYZOb52r3T2i92WVnXSFXh0CYSPw==}
|
||||
'@scalar/snippetz@0.9.23':
|
||||
resolution: {integrity: sha512-bjahBX9J7VQsOpDERMPZSPuIKZmz1DEh9NHdCE5dEe6uz1rHicai0Zqjpuduw6DVDVyWrDI0trxPzCqGzpj0oQ==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/themes@0.17.4':
|
||||
resolution: {integrity: sha512-tSCtGLb0noijR8GzgH6H/tlbSuZoLupe66ta6I9FzZxdvgj4SdPM+2Q7E8k1uwPRfrE5NvMyp61s1BsA3DTFsg==}
|
||||
'@scalar/themes@0.17.1':
|
||||
resolution: {integrity: sha512-aqR6o44CpDvgVT6dHlc1/56JRdWUrbNgaLyHKEd1KC/+Gcznix9Ud0fW7cKw2VvNgPgcqlO+MhZIrYHwbkNMew==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/typebox@0.1.3':
|
||||
resolution: {integrity: sha512-lU055AUccECZMIfGA0z/C1StYmboAYIPJLDFBzOO81yXBi35Pxdq+I4fWX6iUZ8qcoHneiLGk9jAUM1rA93iEg==}
|
||||
|
||||
'@scalar/types@0.18.3':
|
||||
resolution: {integrity: sha512-hPLLxVt/ah4RpCVp5UrLEpnBEgTwf+RvPtRiSEty3QqfBJUfADMXHz+oWK6UAa/vALg2AWuJLCD8hRlyQ2ET9w==}
|
||||
'@scalar/types@0.16.4':
|
||||
resolution: {integrity: sha512-fLf0ANAC3iQq0sIVdmH6aGM+pFSLyD8GfGBxSWcLpI0jE0iFAzX2A3p0qVZm7vqBT4TQnn0fSwg5U+h+FZ52BA==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/use-codemirror@0.14.15':
|
||||
resolution: {integrity: sha512-Uvjx0qvOsWPs+I32FL+3v//+VKwtp8ROXgbIAMauNypuw52VeF7R4RM7YoN2Xg1EAEiMtM8ZhWVzCoYTFr6AKQ==}
|
||||
'@scalar/use-codemirror@0.14.14':
|
||||
resolution: {integrity: sha512-A7Exfctudg7d3DeQFSSrZYc6yhrEsLX3Iq6GJ7m7ruqgev9y8Hbx7g8yvZWYRQuMUdFtLH5euP7a1ZwM8OrHKA==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/use-hooks@0.4.10':
|
||||
resolution: {integrity: sha512-YDIohEujqRmPCLpRlE+NTzjKPjeMJZtI4oJcZ5uH2vA1gR8wiaEStK8djBsldOFIn+LmhHagl+HHn6NX054f7Q==}
|
||||
'@scalar/use-hooks@0.4.9':
|
||||
resolution: {integrity: sha512-RnflJ178BPdH7pKY9/YBcRlhyc7uJxtqG4hBbi8IPEM4YkpLHcMmxWKgHAgC3MBc21rpuKKBE+DTJOiYmU+UyA==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/use-toasts@0.10.5':
|
||||
resolution: {integrity: sha512-5a8qTVd9eXvMDeD0ifqHvnzg0i2v15clhyFToXDHYmInQD51oBRwByCFqFO+m9ymxSLOHZ7/FiEcU6F90/QTlg==}
|
||||
'@scalar/use-toasts@0.10.4':
|
||||
resolution: {integrity: sha512-OHXkVfFKV0qx2WpKlzUpvIUkoA/PiloBcXe6soX2S/1z/D042QlKO8rNxkuC3Hlamvyvj8ru8XN17XNl+D0OPg==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@scalar/validation@0.6.3':
|
||||
resolution: {integrity: sha512-j3s9XPv8Wo1EG5/naBi4XGF0uXYQ2A3QZNI0NKWgCMxRHVrDJGlZEYymcHDHY7fquRm73P8U3c8xqJqB5yad6w==}
|
||||
'@scalar/validation@0.6.2':
|
||||
resolution: {integrity: sha512-Sc1TkcwGV6aVCO51AyKeaGiP8gpwAHxEtO5d3tZzPV+KsnlC/YokQxFxwBrbIXw73k9hmcExnJyGu3k5i6n6VA==}
|
||||
engines: {node: '>=20'}
|
||||
|
||||
'@scalar/workspace-store@0.59.0':
|
||||
resolution: {integrity: sha512-5/vMoUbOhNDj2azgnrXbatbthCKSt7eQOLwUp0Tua/mnouXcemJXNfMw+dBQHykSH0Ga8DjcA/hVxU0Xmaymdg==}
|
||||
'@scalar/workspace-store@0.55.6':
|
||||
resolution: {integrity: sha512-l7yuW1XplVRu+bqN7Mt+XtMovuKRBOHSGb00e+nEvjkkL1WIFd6pMJCogYt0ZlLvyLFPbWODWA4oG6LZjr7ijQ==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
'@sindresorhus/is@7.0.2':
|
||||
@@ -3124,11 +2933,11 @@ packages:
|
||||
'@swc/helpers@0.5.23':
|
||||
resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==}
|
||||
|
||||
'@tanstack/virtual-core@3.17.8':
|
||||
resolution: {integrity: sha512-BfEvehNpOT75r5Ksc5xW6NZuXujTfb7nlSEyVu4XHG3gdxNg1KqXruWbDewXOUaUYIo4oRbSfkjIajz4MAT8tA==}
|
||||
'@tanstack/virtual-core@3.17.5':
|
||||
resolution: {integrity: sha512-AXfBC3sq6PuYSwyxYORqqgHCNjPGAvKJvZuBBJ1klhztWBB5cgqgwsq8+fNfaQJG7/K4xYBja9S90QFn2zmQAg==}
|
||||
|
||||
'@tanstack/vue-virtual@3.13.36':
|
||||
resolution: {integrity: sha512-gKpExv4RbB9luVG+SucTXoqPZv/gzu/Yvz6BNO+8kpNxJ2x+I/ulryzl5W9BRciahZGp5Tls3Dp5XP1ztVGbMw==}
|
||||
'@tanstack/vue-virtual@3.13.33':
|
||||
resolution: {integrity: sha512-R1j/o/5pdgzDqV3Us/s7VEV1Il6ocTsElKxK9g04rq66V3m7kIULgKXD04BAQwCO0IMemXsw3ex6LSH4ug3Feg==}
|
||||
peerDependencies:
|
||||
vue: ^2.7.0 || ^3.0.0
|
||||
|
||||
@@ -3290,11 +3099,11 @@ packages:
|
||||
engines: {node: '>=16.20.0'}
|
||||
hasBin: true
|
||||
|
||||
'@ungap/structured-clone@1.4.0':
|
||||
resolution: {integrity: sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ==}
|
||||
'@ungap/structured-clone@1.3.3':
|
||||
resolution: {integrity: sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg==}
|
||||
|
||||
'@unhead/vue@2.1.17':
|
||||
resolution: {integrity: sha512-pnC8x9HLV3qQXdvWfylUEU25uhfCAy3ly9nmpQz84j9py818DRfU8jOsQ5wjdWtxyU1vX/fW2udfm4jtxUK8Bg==}
|
||||
'@unhead/vue@2.1.16':
|
||||
resolution: {integrity: sha512-t6QykImeMJcrUTbFB0Coy0cB/OZItHdQFRFLoH8GAVXKWmQORGPrwvueP9me7adOCuMH2uVvrv0nCkbi6zksaA==}
|
||||
peerDependencies:
|
||||
vue: '>=3.5.18'
|
||||
|
||||
@@ -3337,32 +3146,32 @@ packages:
|
||||
'@vitest/utils@4.1.9':
|
||||
resolution: {integrity: sha512-A51o8ymO5PpqlWNnBP9ZHPXDIpuMtTLlGSjN7la4US+LJzoUMyhwjA5QXlm39JexgwHKW4Xjs8Z2d3dLCXOeuA==}
|
||||
|
||||
'@vue/compiler-core@3.5.42':
|
||||
resolution: {integrity: sha512-2Ye1ilMtKXxl8qZUrQ5j0CdgenFp/HFQmta6rfRyfEsTG69L6Wk+tWuNoHYHMx9E8tF2Slvdg1FuwDvAXdy1LQ==}
|
||||
'@vue/compiler-core@3.5.40':
|
||||
resolution: {integrity: sha512-39E8IgOhTbVDnoJFMKc2DvYnypcZwUqgUhQkccva/0m6FUwtIKSGV7n1hpVmYcFaoRAwf9pBcwnKlCEsN63ZEQ==}
|
||||
|
||||
'@vue/compiler-dom@3.5.42':
|
||||
resolution: {integrity: sha512-qbhQZEFmycr+ni/qyuccS4sucNN7VAbDfbkvNxWOX2VfgFm90MNs3/UhRNKoPMEIVn0F8gdlYjLPvqxHwHeQOA==}
|
||||
'@vue/compiler-dom@3.5.40':
|
||||
resolution: {integrity: sha512-pwkx4vqlqOspFstrcmzwkKLePVMD3PT65imRzLhanU2V1Fj4K13g6OXjanOyzw3aTAuRk84BOmY8f3rEHqPaVA==}
|
||||
|
||||
'@vue/compiler-sfc@3.5.42':
|
||||
resolution: {integrity: sha512-fkCAFB4okcAANGMThboWnScp/gzWjU0ZSkVnjTIiplmMDq2uq0tIB3j+xVu4rhv5rvOgBySCysudmbMd6xRRqw==}
|
||||
'@vue/compiler-sfc@3.5.40':
|
||||
resolution: {integrity: sha512-gIf497P4kpuALcvs5n3AEg1Vdn0pSY4XbjASIfHNYF1/MP3T2Mf2STERTubysBxCRxzJGJYtF/O7vwJrxFB3Vw==}
|
||||
|
||||
'@vue/compiler-ssr@3.5.42':
|
||||
resolution: {integrity: sha512-xmLk3wLkbizPAiLyomjgFFosf2ys9b5Ghb+oh/k2tnvipNz8OFrQOiTcWCzyK7MpBp9KkyGtfvgfLUivbmuGYA==}
|
||||
'@vue/compiler-ssr@3.5.40':
|
||||
resolution: {integrity: sha512-rrE5xiXG663+vHCHa3J9p2z5OcBRjXmoqenprJxAFQxg5pSshzeBiCE6pu46axapRJ2Adk0YDA2BRZVjiHXnhg==}
|
||||
|
||||
'@vue/reactivity@3.5.42':
|
||||
resolution: {integrity: sha512-TzNNfKpb7hDxbQltwAut8VDQA5YP+BuRlxntHUuRjyKwlMvmAPbs3unhCvieijifY6vFfVBwsS7wG/C7uq+bEQ==}
|
||||
'@vue/reactivity@3.5.40':
|
||||
resolution: {integrity: sha512-B7ot9UlUZOi1zbq61/LvE88ZLTV8IlajTdiZTAEiDQgrnIMIZoPr9kGw0Zw46ObW62O9+H/Be3kMbfb7kYPQZA==}
|
||||
|
||||
'@vue/runtime-core@3.5.42':
|
||||
resolution: {integrity: sha512-9uACtuHs7vJGkm5Bp3xu4xRDLFTIYy5DgxpToVjqGIAhAEKwQfsaLvKINhM6nFVp6bZPRFGdDqd1g52MqKsotA==}
|
||||
'@vue/runtime-core@3.5.40':
|
||||
resolution: {integrity: sha512-KAZLweuZ6uUJPK1PMSQPgBU5gCjgrrfjUhSglmU9NhH+Zjepa8cnwSydPWDWHDwOgY4g3VcZ+PljbiHlURNCbw==}
|
||||
|
||||
'@vue/runtime-dom@3.5.42':
|
||||
resolution: {integrity: sha512-rsCmhiWLaRxGltLwhlCWyYkFn7WAbKRh0q17eZ1A6Dq6eqc2ACQ61IIryxz0LrsvCzHSilLA9JHovVwM8CNE2g==}
|
||||
'@vue/runtime-dom@3.5.40':
|
||||
resolution: {integrity: sha512-ZfrX8ssZQds900L9pr8AuK05ddnMsR4MPMZr8cPN9GoqoPWcXLhjvvbIA2SMv+7a97sJ1vv9pj/zxK0Cq/eEFQ==}
|
||||
|
||||
'@vue/server-renderer@3.5.42':
|
||||
resolution: {integrity: sha512-2++5dUyYS4gvo7xQXSECUDhB7TS0aOl5SeVfC5qSq1Jgfhjvegw1zqhwTIR3imZ+QYPJQw9gfcFvXGAjGZ7ajQ==}
|
||||
'@vue/server-renderer@3.5.40':
|
||||
resolution: {integrity: sha512-XNJym9WpevhTVt1HuwOrCRJ5Q+9z4BjTMrDtjTrvx74SmUll8spNTw6whWJa9mEkO4PKn5TihI/bm/8ds2QVJw==}
|
||||
|
||||
'@vue/shared@3.5.42':
|
||||
resolution: {integrity: sha512-2rPxex1jQf4jvl9MOHl6YaXCPcrNqz/FstMOEh3QWY+/OME9nQTvl9WYeCwhW7AFjaR0SnngZGlp/wkR6rkI6g==}
|
||||
'@vue/shared@3.5.40':
|
||||
resolution: {integrity: sha512-WxnBtruIqOoV3rA4jeKDWzrYI5h7Cp4+pjwDi8kWGHz+IslhiN+wguLVVhtv2l8VoU02rzDCVfDjgCl1lNpZVg==}
|
||||
|
||||
'@vueuse/core@10.11.1':
|
||||
resolution: {integrity: sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==}
|
||||
@@ -3631,8 +3440,8 @@ packages:
|
||||
estree-walker@3.0.3:
|
||||
resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
|
||||
|
||||
eventsource-parser@3.1.1:
|
||||
resolution: {integrity: sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==}
|
||||
eventsource-parser@3.1.0:
|
||||
resolution: {integrity: sha512-kJezFj9YFAMLeORyi7aCLxLbD5/qWMQnoMVlVPyHIll7lgRJCc3JVln9Vgl9nwQi0YkMnhdGTMNn7CkRRAptMg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
expect-type@1.4.0:
|
||||
@@ -3654,8 +3463,8 @@ packages:
|
||||
picomatch:
|
||||
optional: true
|
||||
|
||||
flatted@3.4.4:
|
||||
resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==}
|
||||
flatted@3.4.2:
|
||||
resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==}
|
||||
|
||||
focus-trap@7.8.0:
|
||||
resolution: {integrity: sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA==}
|
||||
@@ -3739,12 +3548,8 @@ packages:
|
||||
hastscript@9.0.1:
|
||||
resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==}
|
||||
|
||||
highlight.js@11.11.2:
|
||||
resolution: {integrity: sha512-oaXMACAU0kzOMXBjWpNcX+vlwSBCIAiZ9BHa7gA15NOTtT2L/l8OSZDuqS2XppOhZBPJ7hm4o8ep2kyuip2uEQ==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
|
||||
highlight.js@11.12.0:
|
||||
resolution: {integrity: sha512-nbfWpyRMcMrPMmDwJB+dhX/eiaPKtc2RB+0QZskqJ3WjRA/FDS0e9hZrx8EC/lbEv8gXy98FcDbNa/dspAaJMg==}
|
||||
highlight.js@11.11.1:
|
||||
resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
|
||||
hono-openapi@1.3.1:
|
||||
@@ -3762,8 +3567,8 @@ packages:
|
||||
hono:
|
||||
optional: true
|
||||
|
||||
hono@4.13.5:
|
||||
resolution: {integrity: sha512-O6+/eCYRkzzzy0rPWwKLiGBR1nFuUPZynnwjxN1MBA62NNqbT0wQEzQyK2gSO5yDIDB336sXQleAhOHrzlYyKw==}
|
||||
hono@4.12.27:
|
||||
resolution: {integrity: sha512-1yrb/+w6HWQJrUCLkJ2IF5jNIPvvFkblV5RNOYl6bV+OA6p9GLcMpHFFGTosSvHvcAUibuUukRqhlYI4z32C7Q==}
|
||||
engines: {node: '>=16.9.0'}
|
||||
|
||||
hookable@6.1.1:
|
||||
@@ -3818,8 +3623,8 @@ packages:
|
||||
resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
|
||||
hasBin: true
|
||||
|
||||
js-base64@3.9.3:
|
||||
resolution: {integrity: sha512-uwYQp+VJ38FVvtim6qNbit6e9uT6dwWQ4Y1+H9TxhW5hcHjpHwoxlR0nMpqUmIFOmu4VqMxwdJA88gIVuZJQ/g==}
|
||||
js-base64@3.9.1:
|
||||
resolution: {integrity: sha512-U73qptcvf/HIOauFOmqT3a0mDUp0MYlfd15oqoe9kqZt5XhiXVb+HG09sLvI9PQ9tZIBFS4nlErai8zbWazP0g==}
|
||||
|
||||
js-tokens@4.0.0:
|
||||
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
|
||||
@@ -3966,8 +3771,8 @@ packages:
|
||||
memoize-one@6.0.0:
|
||||
resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
|
||||
|
||||
microdiff@1.6.0:
|
||||
resolution: {integrity: sha512-w7JWt8Bno6I8h0rEqlxr4lNG4UbT1FVtWo42wWosIiaJ+rP3pXh7shCYDnyqBrYx36LJ1CZ64p8A62aVp0sJpQ==}
|
||||
microdiff@1.5.0:
|
||||
resolution: {integrity: sha512-Drq+/THMvDdzRYrK0oxJmOKiC24ayUV8ahrt8l3oRK51PWt6gdtrIGrlIH3pT/lFh1z93FbAcidtsHcWbnRz8Q==}
|
||||
|
||||
micromark-core-commonmark@2.0.3:
|
||||
resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==}
|
||||
@@ -4063,10 +3868,6 @@ packages:
|
||||
engines: {node: '>=22.0.0'}
|
||||
hasBin: true
|
||||
|
||||
miniflare@5.20260831.0-alpha:
|
||||
resolution: {integrity: sha512-Hwgh1VDUiPCPGQKODQfUmy7hRAje1D55icB+9png3ueiM64rlSM87nSrtqpxAD+DlLWI4ehnYBuECaXV43zGmQ==}
|
||||
engines: {node: '>=22.0.0'}
|
||||
|
||||
ms@2.1.3:
|
||||
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
||||
|
||||
@@ -4079,8 +3880,8 @@ packages:
|
||||
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
|
||||
hasBin: true
|
||||
|
||||
nanoid@3.3.18:
|
||||
resolution: {integrity: sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==}
|
||||
nanoid@3.3.16:
|
||||
resolution: {integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==}
|
||||
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
|
||||
hasBin: true
|
||||
|
||||
@@ -4156,8 +3957,8 @@ packages:
|
||||
resolution: {integrity: sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==}
|
||||
engines: {node: ^10 || ^12 || >=14}
|
||||
|
||||
postcss@8.5.26:
|
||||
resolution: {integrity: sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==}
|
||||
postcss@8.5.20:
|
||||
resolution: {integrity: sha512-lW616l85ucIQL+FocMmL7pQFPqBmwejrCMg+iPxyImlrANNJG9NHq/RkyCZopDhd8C3LA03PHRJDjkbGu8vvug==}
|
||||
engines: {node: ^10 || ^12 || >=14}
|
||||
|
||||
prettier-plugin-packagejson@3.0.2:
|
||||
@@ -4179,8 +3980,8 @@ packages:
|
||||
engines: {node: '>=14'}
|
||||
hasBin: true
|
||||
|
||||
pretty-ms@9.3.1:
|
||||
resolution: {integrity: sha512-HzMy3Geq23nVALD/M2LliU+F+M+gVNsvkQWWqeBZ8HDiCgzo6YPJ/Omrmtq24EFrIsk0a3EkQGEd7bDOo+IhGA==}
|
||||
pretty-ms@9.3.0:
|
||||
resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
property-information@7.2.0:
|
||||
@@ -4272,10 +4073,6 @@ packages:
|
||||
resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==}
|
||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||
|
||||
sharp@0.35.2:
|
||||
resolution: {integrity: sha512-FVtFjtBCMiJS6yb5CX7Sop45WFMpeGw6oRKuJnXYgf/f1ms/D7LE/ZUSNxnW7rZ/dbslQWYkoqFHGPaDBtaK4w==}
|
||||
engines: {node: '>=20.9.0'}
|
||||
|
||||
siginfo@2.0.0:
|
||||
resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
|
||||
|
||||
@@ -4457,8 +4254,8 @@ packages:
|
||||
resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
|
||||
engines: {node: '>=16'}
|
||||
|
||||
type-fest@5.9.0:
|
||||
resolution: {integrity: sha512-yANm3Jr3GiJ1qgJlxGAVxTOIcEOk1rhQHamlXtnrCK7EHP4HeM9OGxtMg/W7HFdrVzw/ZWJKGVIJusVH85sLtw==}
|
||||
type-fest@5.8.0:
|
||||
resolution: {integrity: sha512-YGYEVz3Fm5iy/AybuA0oyNFq7H4CgQNfRp/qfe8nurE1kuCeNm3/vfm9X4Mtl+qLyaKJUh5xrFZwogr41SMjYA==}
|
||||
engines: {node: '>=20'}
|
||||
|
||||
typescript@6.0.3:
|
||||
@@ -4476,15 +4273,11 @@ packages:
|
||||
resolution: {integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==}
|
||||
engines: {node: '>=20.18.1'}
|
||||
|
||||
undici@7.29.0:
|
||||
resolution: {integrity: sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==}
|
||||
engines: {node: '>=20.18.1'}
|
||||
|
||||
unenv@2.0.0-rc.24:
|
||||
resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==}
|
||||
|
||||
unhead@2.1.17:
|
||||
resolution: {integrity: sha512-HLMKXOszRhAPBrr6VlqCeVeJq2kbC4kXwzGLEZvvojPLWNYTJw22xG7Bfwhsvs31+IBet3Wl8ADg9dwYdyphfQ==}
|
||||
unhead@2.1.16:
|
||||
resolution: {integrity: sha512-cD2Q4a6SQHhW9/bPp17NT4GJ1yS0DSLe75WEHKQ8bKa/wjB6cIki3KeL86hhllNBcpv8i6bxdwtwQunneXPqKQ==}
|
||||
|
||||
unified@11.0.5:
|
||||
resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
|
||||
@@ -4603,8 +4396,8 @@ packages:
|
||||
jsdom:
|
||||
optional: true
|
||||
|
||||
vue-component-type-helpers@3.3.11:
|
||||
resolution: {integrity: sha512-LwcxzeliO9fkQcpJG0PoX8X5kmAhKmH9wkpDLxNabwzkQ9Zeib2YVHwFV4pcWmMLfXVfjr/dSV+DaJ3cIPgSNA==}
|
||||
vue-component-type-helpers@3.3.7:
|
||||
resolution: {integrity: sha512-Skkhw9agYSgsWqv7bxSOGJZa9SaiJbZVGdXuFWnrzKaQYHnw9qbjD630rw6RyMqDbp54nfLCLw5SZA55if7JLg==}
|
||||
|
||||
vue-demi@0.14.10:
|
||||
resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==}
|
||||
@@ -4620,8 +4413,8 @@ packages:
|
||||
vue-sonner@1.3.2:
|
||||
resolution: {integrity: sha512-UbZ48E9VIya3ToiRHAZUbodKute/z/M1iT8/3fU8zEbwBRE11AKuHikssv18LMk2gTTr6eMQT4qf6JoLHWuj/A==}
|
||||
|
||||
vue@3.5.42:
|
||||
resolution: {integrity: sha512-4RyHQTbQvOPs3MfvUO1Sg0YRrKNnA0mAVtvpd12Tg1fKDN7OHBUl1IqSn8zGJjK9nI3NkNp8cgTpVrSZC5TTcA==}
|
||||
vue@3.5.40:
|
||||
resolution: {integrity: sha512-+8PJ4SJXdn/cHGImF4CKdxlWHIN5Dkt7DoufRREM6h6uVCx2m7QxgcEQmmzyOK8A9mcafg7sFbJFYsdFVubTig==}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
peerDependenciesMeta:
|
||||
@@ -4652,11 +4445,6 @@ packages:
|
||||
engines: {node: '>=16'}
|
||||
hasBin: true
|
||||
|
||||
workerd@1.20260831.1:
|
||||
resolution: {integrity: sha512-A2LwrkBel/FnKABPfeBAMiL6v70+rugnunqQRfWsWZjlhsTZoBScWUVunMy/xLCGLjWCQL2zp39AVR6aO0jurQ==}
|
||||
engines: {node: '>=16'}
|
||||
hasBin: true
|
||||
|
||||
workers-tagged-logger@1.0.1:
|
||||
resolution: {integrity: sha512-D/MHPg7lnrKCPRRsa7rWF8v6dANIT/sPKe8/xd5Kb3JcsGayx53Djvnsfli7fm/DqRpRRTKdmKAKMMuvjr//5Q==}
|
||||
|
||||
@@ -4670,16 +4458,6 @@ packages:
|
||||
'@cloudflare/workers-types':
|
||||
optional: true
|
||||
|
||||
wrangler@4.128.0:
|
||||
resolution: {integrity: sha512-jNXy9e8/pbx8iqTzXPiuflnitKJZoAfEUSUUDLW87bwyeMvJ7kb3yQMSbxEcfNdfHqJW38KRcKaLljOYV4N/4w==}
|
||||
engines: {node: '>=22.0.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
'@cloudflare/workers-types': ^5.20260831.1
|
||||
peerDependenciesMeta:
|
||||
'@cloudflare/workers-types':
|
||||
optional: true
|
||||
|
||||
wrap-ansi@6.2.0:
|
||||
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -4720,9 +4498,6 @@ packages:
|
||||
zod@4.4.3:
|
||||
resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==}
|
||||
|
||||
zod@4.5.4:
|
||||
resolution: {integrity: sha512-sC95tT5iHHH9gtpj6A81kh+NEaRAUFN+qlUPDUbRfOMvNf5QCBqsb3WgvnpVtK5Y+4UfA6KqufotuTvMGiTlsA==}
|
||||
|
||||
zwitch@2.0.4:
|
||||
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
|
||||
|
||||
@@ -4735,30 +4510,30 @@ snapshots:
|
||||
|
||||
'@2toad/profanity@3.3.0': {}
|
||||
|
||||
'@ai-sdk/gateway@3.0.13(zod@4.5.4)':
|
||||
'@ai-sdk/gateway@3.0.13(zod@4.4.3)':
|
||||
dependencies:
|
||||
'@ai-sdk/provider': 3.0.2
|
||||
'@ai-sdk/provider-utils': 4.0.5(zod@4.5.4)
|
||||
'@ai-sdk/provider-utils': 4.0.5(zod@4.4.3)
|
||||
'@vercel/oidc': 3.1.0
|
||||
zod: 4.5.4
|
||||
zod: 4.4.3
|
||||
|
||||
'@ai-sdk/provider-utils@4.0.5(zod@4.5.4)':
|
||||
'@ai-sdk/provider-utils@4.0.5(zod@4.4.3)':
|
||||
dependencies:
|
||||
'@ai-sdk/provider': 3.0.2
|
||||
'@standard-schema/spec': 1.1.0
|
||||
eventsource-parser: 3.1.1
|
||||
zod: 4.5.4
|
||||
eventsource-parser: 3.1.0
|
||||
zod: 4.4.3
|
||||
|
||||
'@ai-sdk/provider@3.0.2':
|
||||
dependencies:
|
||||
json-schema: 0.4.0
|
||||
|
||||
'@ai-sdk/vue@3.0.33(vue@3.5.42(typescript@6.0.3))(zod@4.5.4)':
|
||||
'@ai-sdk/vue@3.0.33(vue@3.5.40(typescript@6.0.3))(zod@4.4.3)':
|
||||
dependencies:
|
||||
'@ai-sdk/provider-utils': 4.0.5(zod@4.5.4)
|
||||
ai: 6.0.33(zod@4.5.4)
|
||||
swrv: 1.2.0(vue@3.5.42(typescript@6.0.3))
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
'@ai-sdk/provider-utils': 4.0.5(zod@4.4.3)
|
||||
ai: 6.0.33(zod@4.4.3)
|
||||
swrv: 1.2.0(vue@3.5.40(typescript@6.0.3))
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
transitivePeerDependencies:
|
||||
- zod
|
||||
|
||||
@@ -4845,10 +4620,6 @@ snapshots:
|
||||
dependencies:
|
||||
'@babel/types': 7.29.7
|
||||
|
||||
'@babel/parser@7.29.8':
|
||||
dependencies:
|
||||
'@babel/types': 7.29.8
|
||||
|
||||
'@babel/plugin-transform-destructuring@8.0.1(@babel/core@7.29.7)':
|
||||
dependencies:
|
||||
'@babel/core': 7.29.7
|
||||
@@ -4893,11 +4664,6 @@ snapshots:
|
||||
'@babel/helper-string-parser': 7.29.7
|
||||
'@babel/helper-validator-identifier': 7.29.7
|
||||
|
||||
'@babel/types@7.29.8':
|
||||
dependencies:
|
||||
'@babel/helper-string-parser': 7.29.7
|
||||
'@babel/helper-validator-identifier': 7.29.7
|
||||
|
||||
'@cf-wasm/internals@0.1.2': {}
|
||||
|
||||
'@cf-wasm/photon@0.3.6':
|
||||
@@ -4912,19 +4678,13 @@ snapshots:
|
||||
optionalDependencies:
|
||||
workerd: 1.20260625.1
|
||||
|
||||
'@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260831.1)':
|
||||
'@cloudflare/vite-plugin@1.42.0(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))(workerd@1.20260625.1)(wrangler@4.105.0(@cloudflare/workers-types@4.20260630.1))':
|
||||
dependencies:
|
||||
unenv: 2.0.0-rc.24
|
||||
optionalDependencies:
|
||||
workerd: 1.20260831.1
|
||||
|
||||
'@cloudflare/vite-plugin@1.42.0(vite@6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0))(workerd@1.20260831.1)(wrangler@4.128.0)':
|
||||
dependencies:
|
||||
'@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260831.1)
|
||||
'@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260625.1)
|
||||
miniflare: 4.20260617.0
|
||||
unenv: 2.0.0-rc.24
|
||||
vite: 6.4.3(@types/node@26.0.1)(jiti@2.6.1)(lightningcss@1.29.2)(tsx@4.22.4)(yaml@2.9.0)
|
||||
wrangler: 4.128.0
|
||||
wrangler: 4.105.0(@cloudflare/workers-types@4.20260630.1)
|
||||
ws: 8.21.0
|
||||
transitivePeerDependencies:
|
||||
- bufferutil
|
||||
@@ -4952,79 +4712,64 @@ snapshots:
|
||||
'@cloudflare/workerd-darwin-64@1.20260625.1':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-darwin-64@1.20260831.1':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-darwin-arm64@1.20260617.1':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-darwin-arm64@1.20260625.1':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-darwin-arm64@1.20260831.1':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-linux-64@1.20260617.1':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-linux-64@1.20260625.1':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-linux-64@1.20260831.1':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-linux-arm64@1.20260617.1':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-linux-arm64@1.20260625.1':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-linux-arm64@1.20260831.1':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-windows-64@1.20260617.1':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-windows-64@1.20260625.1':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-windows-64@1.20260831.1':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workers-types@4.20260630.1': {}
|
||||
|
||||
'@codemirror/autocomplete@6.20.3':
|
||||
dependencies:
|
||||
'@codemirror/language': 6.12.4
|
||||
'@codemirror/state': 6.7.2
|
||||
'@codemirror/view': 6.43.10
|
||||
'@codemirror/state': 6.7.1
|
||||
'@codemirror/view': 6.43.6
|
||||
'@lezer/common': 1.5.2
|
||||
|
||||
'@codemirror/commands@6.11.0':
|
||||
'@codemirror/commands@6.10.4':
|
||||
dependencies:
|
||||
'@codemirror/language': 6.12.4
|
||||
'@codemirror/state': 6.7.2
|
||||
'@codemirror/view': 6.43.10
|
||||
'@codemirror/state': 6.7.1
|
||||
'@codemirror/view': 6.43.6
|
||||
'@lezer/common': 1.5.2
|
||||
|
||||
'@codemirror/lang-css@6.3.1':
|
||||
dependencies:
|
||||
'@codemirror/autocomplete': 6.20.3
|
||||
'@codemirror/language': 6.12.4
|
||||
'@codemirror/state': 6.7.2
|
||||
'@codemirror/state': 6.7.1
|
||||
'@lezer/common': 1.5.2
|
||||
'@lezer/css': 1.3.6
|
||||
'@lezer/css': 1.3.4
|
||||
|
||||
'@codemirror/lang-html@6.4.12':
|
||||
'@codemirror/lang-html@6.4.11':
|
||||
dependencies:
|
||||
'@codemirror/autocomplete': 6.20.3
|
||||
'@codemirror/lang-css': 6.3.1
|
||||
'@codemirror/lang-javascript': 6.2.5
|
||||
'@codemirror/language': 6.12.4
|
||||
'@codemirror/state': 6.7.2
|
||||
'@codemirror/view': 6.43.10
|
||||
'@codemirror/state': 6.7.1
|
||||
'@codemirror/view': 6.43.6
|
||||
'@lezer/common': 1.5.2
|
||||
'@lezer/css': 1.3.6
|
||||
'@lezer/css': 1.3.4
|
||||
'@lezer/html': 1.3.13
|
||||
|
||||
'@codemirror/lang-javascript@6.2.5':
|
||||
@@ -5032,8 +4777,8 @@ snapshots:
|
||||
'@codemirror/autocomplete': 6.20.3
|
||||
'@codemirror/language': 6.12.4
|
||||
'@codemirror/lint': 6.9.7
|
||||
'@codemirror/state': 6.7.2
|
||||
'@codemirror/view': 6.43.10
|
||||
'@codemirror/state': 6.7.1
|
||||
'@codemirror/view': 6.43.6
|
||||
'@lezer/common': 1.5.2
|
||||
'@lezer/javascript': 1.5.4
|
||||
|
||||
@@ -5046,8 +4791,8 @@ snapshots:
|
||||
dependencies:
|
||||
'@codemirror/autocomplete': 6.20.3
|
||||
'@codemirror/language': 6.12.4
|
||||
'@codemirror/state': 6.7.2
|
||||
'@codemirror/view': 6.43.10
|
||||
'@codemirror/state': 6.7.1
|
||||
'@codemirror/view': 6.43.6
|
||||
'@lezer/common': 1.5.2
|
||||
'@lezer/xml': 1.0.6
|
||||
|
||||
@@ -5055,7 +4800,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@codemirror/autocomplete': 6.20.3
|
||||
'@codemirror/language': 6.12.4
|
||||
'@codemirror/state': 6.7.2
|
||||
'@codemirror/state': 6.7.1
|
||||
'@lezer/common': 1.5.2
|
||||
'@lezer/highlight': 1.2.3
|
||||
'@lezer/lr': 1.4.10
|
||||
@@ -5063,8 +4808,8 @@ snapshots:
|
||||
|
||||
'@codemirror/language@6.12.4':
|
||||
dependencies:
|
||||
'@codemirror/state': 6.7.2
|
||||
'@codemirror/view': 6.43.10
|
||||
'@codemirror/state': 6.7.1
|
||||
'@codemirror/view': 6.43.6
|
||||
'@lezer/common': 1.5.2
|
||||
'@lezer/highlight': 1.2.3
|
||||
'@lezer/lr': 1.4.10
|
||||
@@ -5072,17 +4817,17 @@ snapshots:
|
||||
|
||||
'@codemirror/lint@6.9.7':
|
||||
dependencies:
|
||||
'@codemirror/state': 6.7.2
|
||||
'@codemirror/view': 6.43.10
|
||||
'@codemirror/state': 6.7.1
|
||||
'@codemirror/view': 6.43.6
|
||||
crelt: 1.0.7
|
||||
|
||||
'@codemirror/state@6.7.2':
|
||||
'@codemirror/state@6.7.1':
|
||||
dependencies:
|
||||
'@marijn/find-cluster-break': 1.0.4
|
||||
'@marijn/find-cluster-break': 1.0.3
|
||||
|
||||
'@codemirror/view@6.43.10':
|
||||
'@codemirror/view@6.43.6':
|
||||
dependencies:
|
||||
'@codemirror/state': 6.7.2
|
||||
'@codemirror/state': 6.7.1
|
||||
crelt: 1.0.7
|
||||
style-mod: 4.1.3
|
||||
w3c-keyname: 2.2.8
|
||||
@@ -5098,11 +4843,6 @@ snapshots:
|
||||
dependencies:
|
||||
'@jridgewell/trace-mapping': 0.3.9
|
||||
|
||||
'@emnapi/runtime@1.11.3':
|
||||
dependencies:
|
||||
tslib: 2.8.1
|
||||
optional: true
|
||||
|
||||
'@emnapi/runtime@1.8.1':
|
||||
dependencies:
|
||||
tslib: 2.8.1
|
||||
@@ -5277,20 +5017,11 @@ snapshots:
|
||||
|
||||
'@floating-ui/utils@0.2.12': {}
|
||||
|
||||
'@floating-ui/vue@1.1.11(vue@3.5.42(typescript@6.0.3))':
|
||||
'@floating-ui/vue@1.1.9(vue@3.5.40(typescript@6.0.3))':
|
||||
dependencies:
|
||||
'@floating-ui/dom': 1.8.0
|
||||
'@floating-ui/utils': 0.2.12
|
||||
vue-demi: 0.14.10(vue@3.5.42(typescript@6.0.3))
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- vue
|
||||
|
||||
'@floating-ui/vue@1.1.9(vue@3.5.42(typescript@6.0.3))':
|
||||
dependencies:
|
||||
'@floating-ui/dom': 1.8.0
|
||||
'@floating-ui/utils': 0.2.10
|
||||
vue-demi: 0.14.10(vue@3.5.42(typescript@6.0.3))
|
||||
vue-demi: 0.14.10(vue@3.5.40(typescript@6.0.3))
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- vue
|
||||
@@ -5299,17 +5030,17 @@ snapshots:
|
||||
dependencies:
|
||||
tailwindcss: 4.3.3
|
||||
|
||||
'@headlessui/vue@1.7.23(vue@3.5.42(typescript@6.0.3))':
|
||||
'@headlessui/vue@1.7.23(vue@3.5.40(typescript@6.0.3))':
|
||||
dependencies:
|
||||
'@tanstack/vue-virtual': 3.13.36(vue@3.5.42(typescript@6.0.3))
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
'@tanstack/vue-virtual': 3.13.33(vue@3.5.40(typescript@6.0.3))
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
|
||||
'@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5)':
|
||||
'@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27)':
|
||||
dependencies:
|
||||
'@standard-schema/spec': 1.1.0
|
||||
hono: 4.13.5
|
||||
hono: 4.12.27
|
||||
|
||||
'@ianvs/prettier-plugin-sort-imports@4.7.1(@vue/compiler-sfc@3.5.42)(prettier@3.9.4)':
|
||||
'@ianvs/prettier-plugin-sort-imports@4.7.1(@vue/compiler-sfc@3.5.40)(prettier@3.9.4)':
|
||||
dependencies:
|
||||
'@babel/generator': 7.29.7
|
||||
'@babel/parser': 7.29.7
|
||||
@@ -5318,212 +5049,106 @@ snapshots:
|
||||
prettier: 3.9.4
|
||||
semver: 7.8.5
|
||||
optionalDependencies:
|
||||
'@vue/compiler-sfc': 3.5.42
|
||||
'@vue/compiler-sfc': 3.5.40
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@img/colour@1.0.0': {}
|
||||
|
||||
'@img/colour@1.1.0': {}
|
||||
|
||||
'@img/sharp-darwin-arm64@0.34.5':
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-darwin-arm64': 1.2.4
|
||||
optional: true
|
||||
|
||||
'@img/sharp-darwin-arm64@0.35.2':
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-darwin-arm64': 1.3.1
|
||||
optional: true
|
||||
|
||||
'@img/sharp-darwin-x64@0.34.5':
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-darwin-x64': 1.2.4
|
||||
optional: true
|
||||
|
||||
'@img/sharp-darwin-x64@0.35.2':
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-darwin-x64': 1.3.1
|
||||
optional: true
|
||||
|
||||
'@img/sharp-freebsd-wasm32@0.35.2':
|
||||
dependencies:
|
||||
'@img/sharp-wasm32': 0.35.2
|
||||
optional: true
|
||||
|
||||
'@img/sharp-libvips-darwin-arm64@1.2.4':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-libvips-darwin-arm64@1.3.1':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-libvips-darwin-x64@1.2.4':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-libvips-darwin-x64@1.3.1':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-libvips-linux-arm64@1.2.4':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-libvips-linux-arm64@1.3.1':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-libvips-linux-arm@1.2.4':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-libvips-linux-arm@1.3.1':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-libvips-linux-ppc64@1.2.4':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-libvips-linux-ppc64@1.3.1':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-libvips-linux-riscv64@1.2.4':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-libvips-linux-riscv64@1.3.1':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-libvips-linux-s390x@1.2.4':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-libvips-linux-s390x@1.3.1':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-libvips-linux-x64@1.2.4':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-libvips-linux-x64@1.3.1':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-libvips-linuxmusl-arm64@1.2.4':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-libvips-linuxmusl-arm64@1.3.1':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-libvips-linuxmusl-x64@1.2.4':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-libvips-linuxmusl-x64@1.3.1':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-linux-arm64@0.34.5':
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linux-arm64': 1.2.4
|
||||
optional: true
|
||||
|
||||
'@img/sharp-linux-arm64@0.35.2':
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linux-arm64': 1.3.1
|
||||
optional: true
|
||||
|
||||
'@img/sharp-linux-arm@0.34.5':
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linux-arm': 1.2.4
|
||||
optional: true
|
||||
|
||||
'@img/sharp-linux-arm@0.35.2':
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linux-arm': 1.3.1
|
||||
optional: true
|
||||
|
||||
'@img/sharp-linux-ppc64@0.34.5':
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linux-ppc64': 1.2.4
|
||||
optional: true
|
||||
|
||||
'@img/sharp-linux-ppc64@0.35.2':
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linux-ppc64': 1.3.1
|
||||
optional: true
|
||||
|
||||
'@img/sharp-linux-riscv64@0.34.5':
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linux-riscv64': 1.2.4
|
||||
optional: true
|
||||
|
||||
'@img/sharp-linux-riscv64@0.35.2':
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linux-riscv64': 1.3.1
|
||||
optional: true
|
||||
|
||||
'@img/sharp-linux-s390x@0.34.5':
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linux-s390x': 1.2.4
|
||||
optional: true
|
||||
|
||||
'@img/sharp-linux-s390x@0.35.2':
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linux-s390x': 1.3.1
|
||||
optional: true
|
||||
|
||||
'@img/sharp-linux-x64@0.34.5':
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linux-x64': 1.2.4
|
||||
optional: true
|
||||
|
||||
'@img/sharp-linux-x64@0.35.2':
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linux-x64': 1.3.1
|
||||
optional: true
|
||||
|
||||
'@img/sharp-linuxmusl-arm64@0.34.5':
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linuxmusl-arm64': 1.2.4
|
||||
optional: true
|
||||
|
||||
'@img/sharp-linuxmusl-arm64@0.35.2':
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linuxmusl-arm64': 1.3.1
|
||||
optional: true
|
||||
|
||||
'@img/sharp-linuxmusl-x64@0.34.5':
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linuxmusl-x64': 1.2.4
|
||||
optional: true
|
||||
|
||||
'@img/sharp-linuxmusl-x64@0.35.2':
|
||||
optionalDependencies:
|
||||
'@img/sharp-libvips-linuxmusl-x64': 1.3.1
|
||||
optional: true
|
||||
|
||||
'@img/sharp-wasm32@0.34.5':
|
||||
dependencies:
|
||||
'@emnapi/runtime': 1.8.1
|
||||
optional: true
|
||||
|
||||
'@img/sharp-wasm32@0.35.2':
|
||||
dependencies:
|
||||
'@emnapi/runtime': 1.11.3
|
||||
optional: true
|
||||
|
||||
'@img/sharp-webcontainers-wasm32@0.35.2':
|
||||
dependencies:
|
||||
'@img/sharp-wasm32': 0.35.2
|
||||
optional: true
|
||||
|
||||
'@img/sharp-win32-arm64@0.34.5':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-win32-arm64@0.35.2':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-win32-ia32@0.34.5':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-win32-ia32@0.35.2':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-win32-x64@0.34.5':
|
||||
optional: true
|
||||
|
||||
'@img/sharp-win32-x64@0.35.2':
|
||||
optional: true
|
||||
|
||||
'@inquirer/ansi@1.0.2': {}
|
||||
|
||||
'@inquirer/checkbox@4.3.2(@types/node@26.0.1)':
|
||||
@@ -5649,11 +5274,11 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@types/node': 26.0.1
|
||||
|
||||
'@internationalized/date@3.12.4':
|
||||
'@internationalized/date@3.12.2':
|
||||
dependencies:
|
||||
'@swc/helpers': 0.5.23
|
||||
|
||||
'@internationalized/number@3.6.8':
|
||||
'@internationalized/number@3.6.7':
|
||||
dependencies:
|
||||
'@swc/helpers': 0.5.23
|
||||
|
||||
@@ -5691,7 +5316,7 @@ snapshots:
|
||||
|
||||
'@lezer/common@1.5.2': {}
|
||||
|
||||
'@lezer/css@1.3.6':
|
||||
'@lezer/css@1.3.4':
|
||||
dependencies:
|
||||
'@lezer/common': 1.5.2
|
||||
'@lezer/highlight': 1.2.3
|
||||
@@ -5735,7 +5360,7 @@ snapshots:
|
||||
'@lezer/highlight': 1.2.3
|
||||
'@lezer/lr': 1.4.10
|
||||
|
||||
'@marijn/find-cluster-break@1.0.4': {}
|
||||
'@marijn/find-cluster-break@1.0.3': {}
|
||||
|
||||
'@opentelemetry/api@1.9.0': {}
|
||||
|
||||
@@ -5828,11 +5453,11 @@ snapshots:
|
||||
|
||||
'@poppinss/exception@1.2.2': {}
|
||||
|
||||
'@replit/codemirror-css-color-picker@6.3.0(@codemirror/language@6.12.4)(@codemirror/state@6.7.2)(@codemirror/view@6.43.10)':
|
||||
'@replit/codemirror-css-color-picker@6.3.0(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)':
|
||||
dependencies:
|
||||
'@codemirror/language': 6.12.4
|
||||
'@codemirror/state': 6.7.2
|
||||
'@codemirror/view': 6.43.10
|
||||
'@codemirror/state': 6.7.1
|
||||
'@codemirror/view': 6.43.6
|
||||
|
||||
'@rolldown/pluginutils@1.0.0-rc.3': {}
|
||||
|
||||
@@ -5911,27 +5536,27 @@ snapshots:
|
||||
'@rollup/rollup-win32-x64-msvc@4.62.2':
|
||||
optional: true
|
||||
|
||||
'@scalar/agent-chat@0.12.29(tailwindcss@4.3.3)(typescript@6.0.3)(zod@4.5.4)':
|
||||
'@scalar/agent-chat@0.12.22(tailwindcss@4.3.3)(typescript@6.0.3)(zod@4.4.3)':
|
||||
dependencies:
|
||||
'@ai-sdk/vue': 3.0.33(vue@3.5.42(typescript@6.0.3))(zod@4.5.4)
|
||||
'@scalar/api-client': 3.17.0(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/components': 0.29.0(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/helpers': 0.11.2
|
||||
'@scalar/icons': 0.7.6(typescript@6.0.3)
|
||||
'@scalar/json-magic': 0.13.3
|
||||
'@scalar/openapi-types': 0.9.5
|
||||
'@scalar/schemas': 0.8.4
|
||||
'@scalar/themes': 0.17.4
|
||||
'@scalar/types': 0.18.3
|
||||
'@scalar/use-toasts': 0.10.5(typescript@6.0.3)
|
||||
'@scalar/validation': 0.6.3
|
||||
'@scalar/workspace-store': 0.59.0(typescript@6.0.3)
|
||||
'@vueuse/core': 13.9.0(vue@3.5.42(typescript@6.0.3))
|
||||
ai: 6.0.33(zod@4.5.4)
|
||||
js-base64: 3.9.3
|
||||
'@ai-sdk/vue': 3.0.33(vue@3.5.40(typescript@6.0.3))(zod@4.4.3)
|
||||
'@scalar/api-client': 3.13.7(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/components': 0.27.9(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/helpers': 0.9.2
|
||||
'@scalar/icons': 0.7.5(typescript@6.0.3)
|
||||
'@scalar/json-magic': 0.12.19
|
||||
'@scalar/openapi-types': 0.9.3
|
||||
'@scalar/schemas': 0.7.4
|
||||
'@scalar/themes': 0.17.1
|
||||
'@scalar/types': 0.16.4
|
||||
'@scalar/use-toasts': 0.10.4(typescript@6.0.3)
|
||||
'@scalar/validation': 0.6.2
|
||||
'@scalar/workspace-store': 0.55.6(typescript@6.0.3)
|
||||
'@vueuse/core': 13.9.0(vue@3.5.40(typescript@6.0.3))
|
||||
ai: 6.0.33(zod@4.4.3)
|
||||
js-base64: 3.9.1
|
||||
neverpanic: 0.0.8
|
||||
truncate-json: 3.0.1
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- async-validator
|
||||
@@ -5949,38 +5574,38 @@ snapshots:
|
||||
- universal-cookie
|
||||
- zod
|
||||
|
||||
'@scalar/api-client@3.17.0(tailwindcss@4.3.3)(typescript@6.0.3)':
|
||||
'@scalar/api-client@3.13.7(tailwindcss@4.3.3)(typescript@6.0.3)':
|
||||
dependencies:
|
||||
'@headlessui/tailwindcss': 0.2.2(tailwindcss@4.3.3)
|
||||
'@headlessui/vue': 1.7.23(vue@3.5.42(typescript@6.0.3))
|
||||
'@scalar/blocks': 0.1.15(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/components': 0.29.0(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/helpers': 0.11.2
|
||||
'@scalar/icons': 0.7.6(typescript@6.0.3)
|
||||
'@scalar/oas-utils': 0.19.15(typescript@6.0.3)
|
||||
'@scalar/openapi-types': 0.9.5
|
||||
'@scalar/sidebar': 0.11.0(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/snippetz': 0.9.29
|
||||
'@scalar/themes': 0.17.4
|
||||
'@headlessui/vue': 1.7.23(vue@3.5.40(typescript@6.0.3))
|
||||
'@scalar/blocks': 0.1.8(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/components': 0.27.9(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/helpers': 0.9.2
|
||||
'@scalar/icons': 0.7.5(typescript@6.0.3)
|
||||
'@scalar/oas-utils': 0.19.8(typescript@6.0.3)
|
||||
'@scalar/openapi-types': 0.9.3
|
||||
'@scalar/sidebar': 0.9.33(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/snippetz': 0.9.23
|
||||
'@scalar/themes': 0.17.1
|
||||
'@scalar/typebox': 0.1.3
|
||||
'@scalar/types': 0.18.3
|
||||
'@scalar/use-codemirror': 0.14.15(typescript@6.0.3)
|
||||
'@scalar/use-hooks': 0.4.10(typescript@6.0.3)
|
||||
'@scalar/use-toasts': 0.10.5(typescript@6.0.3)
|
||||
'@scalar/workspace-store': 0.59.0(typescript@6.0.3)
|
||||
'@vueuse/core': 13.9.0(vue@3.5.42(typescript@6.0.3))
|
||||
'@vueuse/integrations': 13.9.0(focus-trap@7.8.0)(fuse.js@7.5.0)(vue@3.5.42(typescript@6.0.3))
|
||||
'@scalar/types': 0.16.4
|
||||
'@scalar/use-codemirror': 0.14.14(typescript@6.0.3)
|
||||
'@scalar/use-hooks': 0.4.9(typescript@6.0.3)
|
||||
'@scalar/use-toasts': 0.10.4(typescript@6.0.3)
|
||||
'@scalar/workspace-store': 0.55.6(typescript@6.0.3)
|
||||
'@vueuse/core': 13.9.0(vue@3.5.40(typescript@6.0.3))
|
||||
'@vueuse/integrations': 13.9.0(focus-trap@7.8.0)(fuse.js@7.5.0)(vue@3.5.40(typescript@6.0.3))
|
||||
focus-trap: 7.8.0
|
||||
fuse.js: 7.5.0
|
||||
js-base64: 3.9.3
|
||||
js-base64: 3.9.1
|
||||
jsonc-parser: 3.3.1
|
||||
nanoid: 5.1.16
|
||||
pretty-ms: 9.3.1
|
||||
radix-vue: 1.9.17(vue@3.5.42(typescript@6.0.3))
|
||||
pretty-ms: 9.3.0
|
||||
radix-vue: 1.9.17(vue@3.5.40(typescript@6.0.3))
|
||||
set-cookie-parser: 3.1.0
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
yaml: 2.9.0
|
||||
zod: 4.5.4
|
||||
zod: 4.4.3
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- async-validator
|
||||
@@ -5997,32 +5622,32 @@ snapshots:
|
||||
- typescript
|
||||
- universal-cookie
|
||||
|
||||
'@scalar/api-reference@1.67.0(tailwindcss@4.3.3)(typescript@6.0.3)(zod@4.5.4)':
|
||||
'@scalar/api-reference@1.63.0(tailwindcss@4.3.3)(typescript@6.0.3)(zod@4.4.3)':
|
||||
dependencies:
|
||||
'@headlessui/vue': 1.7.23(vue@3.5.42(typescript@6.0.3))
|
||||
'@scalar/agent-chat': 0.12.29(tailwindcss@4.3.3)(typescript@6.0.3)(zod@4.5.4)
|
||||
'@scalar/api-client': 3.17.0(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/blocks': 0.1.15(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/code-highlight': 0.4.5
|
||||
'@scalar/components': 0.29.0(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/helpers': 0.11.2
|
||||
'@scalar/icons': 0.7.6(typescript@6.0.3)
|
||||
'@scalar/oas-utils': 0.19.15(typescript@6.0.3)
|
||||
'@scalar/schemas': 0.8.4
|
||||
'@scalar/sidebar': 0.11.0(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/snippetz': 0.9.29
|
||||
'@scalar/themes': 0.17.4
|
||||
'@scalar/types': 0.18.3
|
||||
'@scalar/use-hooks': 0.4.10(typescript@6.0.3)
|
||||
'@scalar/use-toasts': 0.10.5(typescript@6.0.3)
|
||||
'@scalar/validation': 0.6.3
|
||||
'@scalar/workspace-store': 0.59.0(typescript@6.0.3)
|
||||
'@unhead/vue': 2.1.17(vue@3.5.42(typescript@6.0.3))
|
||||
'@vueuse/core': 13.9.0(vue@3.5.42(typescript@6.0.3))
|
||||
'@headlessui/vue': 1.7.23(vue@3.5.40(typescript@6.0.3))
|
||||
'@scalar/agent-chat': 0.12.22(tailwindcss@4.3.3)(typescript@6.0.3)(zod@4.4.3)
|
||||
'@scalar/api-client': 3.13.7(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/blocks': 0.1.8(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/code-highlight': 0.4.3
|
||||
'@scalar/components': 0.27.9(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/helpers': 0.9.2
|
||||
'@scalar/icons': 0.7.5(typescript@6.0.3)
|
||||
'@scalar/oas-utils': 0.19.8(typescript@6.0.3)
|
||||
'@scalar/schemas': 0.7.4
|
||||
'@scalar/sidebar': 0.9.33(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/snippetz': 0.9.23
|
||||
'@scalar/themes': 0.17.1
|
||||
'@scalar/types': 0.16.4
|
||||
'@scalar/use-hooks': 0.4.9(typescript@6.0.3)
|
||||
'@scalar/use-toasts': 0.10.4(typescript@6.0.3)
|
||||
'@scalar/validation': 0.6.2
|
||||
'@scalar/workspace-store': 0.55.6(typescript@6.0.3)
|
||||
'@unhead/vue': 2.1.16(vue@3.5.40(typescript@6.0.3))
|
||||
'@vueuse/core': 13.9.0(vue@3.5.40(typescript@6.0.3))
|
||||
fuse.js: 7.5.0
|
||||
microdiff: 1.6.0
|
||||
microdiff: 1.5.0
|
||||
nanoid: 5.1.16
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
yaml: 2.9.0
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
@@ -6041,32 +5666,32 @@ snapshots:
|
||||
- universal-cookie
|
||||
- zod
|
||||
|
||||
'@scalar/asyncapi-upgrader@0.1.8':
|
||||
'@scalar/asyncapi-upgrader@0.1.4':
|
||||
dependencies:
|
||||
'@scalar/helpers': 0.11.2
|
||||
'@scalar/helpers': 0.9.2
|
||||
|
||||
'@scalar/blocks@0.1.15(tailwindcss@4.3.3)(typescript@6.0.3)':
|
||||
'@scalar/blocks@0.1.8(tailwindcss@4.3.3)(typescript@6.0.3)':
|
||||
dependencies:
|
||||
'@scalar/components': 0.29.0(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/helpers': 0.11.2
|
||||
'@scalar/icons': 0.7.6(typescript@6.0.3)
|
||||
'@scalar/snippetz': 0.9.29
|
||||
'@scalar/themes': 0.17.4
|
||||
'@scalar/types': 0.18.3
|
||||
'@scalar/workspace-store': 0.59.0(typescript@6.0.3)
|
||||
'@scalar/components': 0.27.9(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/helpers': 0.9.2
|
||||
'@scalar/icons': 0.7.5(typescript@6.0.3)
|
||||
'@scalar/snippetz': 0.9.23
|
||||
'@scalar/themes': 0.17.1
|
||||
'@scalar/types': 0.16.4
|
||||
'@scalar/workspace-store': 0.55.6(typescript@6.0.3)
|
||||
'@types/har-format': 1.2.16
|
||||
js-base64: 3.9.3
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
js-base64: 3.9.1
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- supports-color
|
||||
- tailwindcss
|
||||
- typescript
|
||||
|
||||
'@scalar/code-highlight@0.4.5':
|
||||
'@scalar/code-highlight@0.4.3':
|
||||
dependencies:
|
||||
hast-util-to-text: 4.0.2
|
||||
highlight.js: 11.12.0
|
||||
highlight.js: 11.11.1
|
||||
lowlight: 3.3.0
|
||||
rehype-external-links: 3.0.0
|
||||
rehype-format: 5.0.1
|
||||
@@ -6083,157 +5708,157 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@scalar/components@0.29.0(tailwindcss@4.3.3)(typescript@6.0.3)':
|
||||
'@scalar/components@0.27.9(tailwindcss@4.3.3)(typescript@6.0.3)':
|
||||
dependencies:
|
||||
'@floating-ui/utils': 0.2.10
|
||||
'@floating-ui/vue': 1.1.9(vue@3.5.42(typescript@6.0.3))
|
||||
'@floating-ui/vue': 1.1.9(vue@3.5.40(typescript@6.0.3))
|
||||
'@headlessui/tailwindcss': 0.2.2(tailwindcss@4.3.3)
|
||||
'@headlessui/vue': 1.7.23(vue@3.5.42(typescript@6.0.3))
|
||||
'@scalar/code-highlight': 0.4.5
|
||||
'@scalar/helpers': 0.11.2
|
||||
'@scalar/icons': 0.7.6(typescript@6.0.3)
|
||||
'@scalar/themes': 0.17.4
|
||||
'@scalar/use-hooks': 0.4.10(typescript@6.0.3)
|
||||
'@vueuse/core': 13.9.0(vue@3.5.42(typescript@6.0.3))
|
||||
'@headlessui/vue': 1.7.23(vue@3.5.40(typescript@6.0.3))
|
||||
'@scalar/code-highlight': 0.4.3
|
||||
'@scalar/helpers': 0.9.2
|
||||
'@scalar/icons': 0.7.5(typescript@6.0.3)
|
||||
'@scalar/themes': 0.17.1
|
||||
'@scalar/use-hooks': 0.4.9(typescript@6.0.3)
|
||||
'@vueuse/core': 13.9.0(vue@3.5.40(typescript@6.0.3))
|
||||
cva: 1.0.0-beta.4(typescript@6.0.3)
|
||||
radix-vue: 1.9.17(vue@3.5.42(typescript@6.0.3))
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
vue-component-type-helpers: 3.3.11
|
||||
radix-vue: 1.9.17(vue@3.5.40(typescript@6.0.3))
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
vue-component-type-helpers: 3.3.7
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- supports-color
|
||||
- tailwindcss
|
||||
- typescript
|
||||
|
||||
'@scalar/helpers@0.11.2': {}
|
||||
'@scalar/helpers@0.9.2': {}
|
||||
|
||||
'@scalar/icons@0.7.6(typescript@6.0.3)':
|
||||
'@scalar/icons@0.7.5(typescript@6.0.3)':
|
||||
dependencies:
|
||||
'@phosphor-icons/core': 2.1.1
|
||||
'@types/node': 24.13.3
|
||||
chalk: 5.6.2
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
transitivePeerDependencies:
|
||||
- typescript
|
||||
|
||||
'@scalar/json-magic@0.13.3':
|
||||
'@scalar/json-magic@0.12.19':
|
||||
dependencies:
|
||||
'@scalar/helpers': 0.11.2
|
||||
'@scalar/helpers': 0.9.2
|
||||
pathe: 2.0.3
|
||||
yaml: 2.9.0
|
||||
|
||||
'@scalar/oas-utils@0.19.15(typescript@6.0.3)':
|
||||
'@scalar/oas-utils@0.19.8(typescript@6.0.3)':
|
||||
dependencies:
|
||||
'@scalar/helpers': 0.11.2
|
||||
'@scalar/themes': 0.17.4
|
||||
'@scalar/types': 0.18.3
|
||||
'@scalar/workspace-store': 0.59.0(typescript@6.0.3)
|
||||
flatted: 3.4.4
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
'@scalar/helpers': 0.9.2
|
||||
'@scalar/themes': 0.17.1
|
||||
'@scalar/types': 0.16.4
|
||||
'@scalar/workspace-store': 0.55.6(typescript@6.0.3)
|
||||
flatted: 3.4.2
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
yaml: 2.9.0
|
||||
transitivePeerDependencies:
|
||||
- typescript
|
||||
|
||||
'@scalar/openapi-types@0.9.5': {}
|
||||
'@scalar/openapi-types@0.9.3': {}
|
||||
|
||||
'@scalar/openapi-upgrader@0.2.15':
|
||||
'@scalar/openapi-upgrader@0.2.11':
|
||||
dependencies:
|
||||
'@scalar/openapi-types': 0.9.5
|
||||
'@scalar/openapi-types': 0.9.3
|
||||
|
||||
'@scalar/schemas@0.8.4':
|
||||
'@scalar/schemas@0.7.4':
|
||||
dependencies:
|
||||
'@scalar/helpers': 0.11.2
|
||||
'@scalar/validation': 0.6.3
|
||||
'@scalar/helpers': 0.9.2
|
||||
'@scalar/validation': 0.6.2
|
||||
|
||||
'@scalar/sidebar@0.11.0(tailwindcss@4.3.3)(typescript@6.0.3)':
|
||||
'@scalar/sidebar@0.9.33(tailwindcss@4.3.3)(typescript@6.0.3)':
|
||||
dependencies:
|
||||
'@scalar/components': 0.29.0(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/helpers': 0.11.2
|
||||
'@scalar/icons': 0.7.6(typescript@6.0.3)
|
||||
'@scalar/themes': 0.17.4
|
||||
'@scalar/use-hooks': 0.4.10(typescript@6.0.3)
|
||||
'@scalar/workspace-store': 0.59.0(typescript@6.0.3)
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
'@scalar/components': 0.27.9(tailwindcss@4.3.3)(typescript@6.0.3)
|
||||
'@scalar/helpers': 0.9.2
|
||||
'@scalar/icons': 0.7.5(typescript@6.0.3)
|
||||
'@scalar/themes': 0.17.1
|
||||
'@scalar/use-hooks': 0.4.9(typescript@6.0.3)
|
||||
'@scalar/workspace-store': 0.55.6(typescript@6.0.3)
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- supports-color
|
||||
- tailwindcss
|
||||
- typescript
|
||||
|
||||
'@scalar/snippetz@0.9.29':
|
||||
'@scalar/snippetz@0.9.23':
|
||||
dependencies:
|
||||
'@scalar/helpers': 0.11.2
|
||||
'@scalar/types': 0.18.3
|
||||
js-base64: 3.9.3
|
||||
'@scalar/helpers': 0.9.2
|
||||
'@scalar/types': 0.16.4
|
||||
js-base64: 3.9.1
|
||||
stringify-object: 6.0.0
|
||||
|
||||
'@scalar/themes@0.17.4':
|
||||
'@scalar/themes@0.17.1':
|
||||
dependencies:
|
||||
nanoid: 5.1.16
|
||||
|
||||
'@scalar/typebox@0.1.3': {}
|
||||
|
||||
'@scalar/types@0.18.3':
|
||||
'@scalar/types@0.16.4':
|
||||
dependencies:
|
||||
'@scalar/helpers': 0.11.2
|
||||
'@scalar/helpers': 0.9.2
|
||||
nanoid: 5.1.16
|
||||
type-fest: 5.9.0
|
||||
zod: 4.5.4
|
||||
type-fest: 5.8.0
|
||||
zod: 4.4.3
|
||||
|
||||
'@scalar/use-codemirror@0.14.15(typescript@6.0.3)':
|
||||
'@scalar/use-codemirror@0.14.14(typescript@6.0.3)':
|
||||
dependencies:
|
||||
'@codemirror/autocomplete': 6.20.3
|
||||
'@codemirror/commands': 6.11.0
|
||||
'@codemirror/commands': 6.10.4
|
||||
'@codemirror/lang-css': 6.3.1
|
||||
'@codemirror/lang-html': 6.4.12
|
||||
'@codemirror/lang-html': 6.4.11
|
||||
'@codemirror/lang-json': 6.0.2
|
||||
'@codemirror/lang-xml': 6.1.0
|
||||
'@codemirror/lang-yaml': 6.1.3
|
||||
'@codemirror/language': 6.12.4
|
||||
'@codemirror/lint': 6.9.7
|
||||
'@codemirror/state': 6.7.2
|
||||
'@codemirror/view': 6.43.10
|
||||
'@codemirror/state': 6.7.1
|
||||
'@codemirror/view': 6.43.6
|
||||
'@lezer/common': 1.5.2
|
||||
'@lezer/highlight': 1.2.3
|
||||
'@replit/codemirror-css-color-picker': 6.3.0(@codemirror/language@6.12.4)(@codemirror/state@6.7.2)(@codemirror/view@6.43.10)
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
'@replit/codemirror-css-color-picker': 6.3.0(@codemirror/language@6.12.4)(@codemirror/state@6.7.1)(@codemirror/view@6.43.6)
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
transitivePeerDependencies:
|
||||
- typescript
|
||||
|
||||
'@scalar/use-hooks@0.4.10(typescript@6.0.3)':
|
||||
'@scalar/use-hooks@0.4.9(typescript@6.0.3)':
|
||||
dependencies:
|
||||
'@scalar/use-toasts': 0.10.5(typescript@6.0.3)
|
||||
'@scalar/validation': 0.6.3
|
||||
'@vueuse/core': 13.9.0(vue@3.5.42(typescript@6.0.3))
|
||||
'@scalar/use-toasts': 0.10.4(typescript@6.0.3)
|
||||
'@scalar/validation': 0.6.2
|
||||
'@vueuse/core': 13.9.0(vue@3.5.40(typescript@6.0.3))
|
||||
cva: 1.0.0-beta.4(typescript@6.0.3)
|
||||
tailwind-merge: 3.5.0
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
transitivePeerDependencies:
|
||||
- typescript
|
||||
|
||||
'@scalar/use-toasts@0.10.5(typescript@6.0.3)':
|
||||
'@scalar/use-toasts@0.10.4(typescript@6.0.3)':
|
||||
dependencies:
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
vue-sonner: 1.3.2
|
||||
transitivePeerDependencies:
|
||||
- typescript
|
||||
|
||||
'@scalar/validation@0.6.3': {}
|
||||
'@scalar/validation@0.6.2': {}
|
||||
|
||||
'@scalar/workspace-store@0.59.0(typescript@6.0.3)':
|
||||
'@scalar/workspace-store@0.55.6(typescript@6.0.3)':
|
||||
dependencies:
|
||||
'@scalar/asyncapi-upgrader': 0.1.8
|
||||
'@scalar/helpers': 0.11.2
|
||||
'@scalar/json-magic': 0.13.3
|
||||
'@scalar/openapi-upgrader': 0.2.15
|
||||
'@scalar/schemas': 0.8.4
|
||||
'@scalar/snippetz': 0.9.29
|
||||
'@scalar/asyncapi-upgrader': 0.1.4
|
||||
'@scalar/helpers': 0.9.2
|
||||
'@scalar/json-magic': 0.12.19
|
||||
'@scalar/openapi-upgrader': 0.2.11
|
||||
'@scalar/schemas': 0.7.4
|
||||
'@scalar/snippetz': 0.9.23
|
||||
'@scalar/typebox': 0.1.3
|
||||
'@scalar/types': 0.18.3
|
||||
'@scalar/validation': 0.6.3
|
||||
js-base64: 3.9.3
|
||||
type-fest: 5.9.0
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
'@scalar/types': 0.16.4
|
||||
'@scalar/validation': 0.6.2
|
||||
js-base64: 3.9.1
|
||||
type-fest: 5.8.0
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
yaml: 2.9.0
|
||||
transitivePeerDependencies:
|
||||
- typescript
|
||||
@@ -6264,12 +5889,12 @@ snapshots:
|
||||
dependencies:
|
||||
tslib: 2.8.1
|
||||
|
||||
'@tanstack/virtual-core@3.17.8': {}
|
||||
'@tanstack/virtual-core@3.17.5': {}
|
||||
|
||||
'@tanstack/vue-virtual@3.13.36(vue@3.5.42(typescript@6.0.3))':
|
||||
'@tanstack/vue-virtual@3.13.33(vue@3.5.40(typescript@6.0.3))':
|
||||
dependencies:
|
||||
'@tanstack/virtual-core': 3.17.8
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
'@tanstack/virtual-core': 3.17.5
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
|
||||
'@taplo/core@0.2.0': {}
|
||||
|
||||
@@ -6416,13 +6041,13 @@ snapshots:
|
||||
'@typescript/native-preview-win32-arm64': 7.0.0-dev.20260629.1
|
||||
'@typescript/native-preview-win32-x64': 7.0.0-dev.20260629.1
|
||||
|
||||
'@ungap/structured-clone@1.4.0': {}
|
||||
'@ungap/structured-clone@1.3.3': {}
|
||||
|
||||
'@unhead/vue@2.1.17(vue@3.5.42(typescript@6.0.3))':
|
||||
'@unhead/vue@2.1.16(vue@3.5.40(typescript@6.0.3))':
|
||||
dependencies:
|
||||
hookable: 6.1.1
|
||||
unhead: 2.1.17
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
unhead: 2.1.16
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
|
||||
'@vercel/oidc@3.1.0': {}
|
||||
|
||||
@@ -6479,82 +6104,82 @@ snapshots:
|
||||
convert-source-map: 2.0.0
|
||||
tinyrainbow: 3.1.0
|
||||
|
||||
'@vue/compiler-core@3.5.42':
|
||||
'@vue/compiler-core@3.5.40':
|
||||
dependencies:
|
||||
'@babel/parser': 7.29.8
|
||||
'@vue/shared': 3.5.42
|
||||
'@babel/parser': 7.29.7
|
||||
'@vue/shared': 3.5.40
|
||||
entities: 7.0.1
|
||||
estree-walker: 2.0.2
|
||||
source-map-js: 1.2.1
|
||||
|
||||
'@vue/compiler-dom@3.5.42':
|
||||
'@vue/compiler-dom@3.5.40':
|
||||
dependencies:
|
||||
'@vue/compiler-core': 3.5.42
|
||||
'@vue/shared': 3.5.42
|
||||
'@vue/compiler-core': 3.5.40
|
||||
'@vue/shared': 3.5.40
|
||||
|
||||
'@vue/compiler-sfc@3.5.42':
|
||||
'@vue/compiler-sfc@3.5.40':
|
||||
dependencies:
|
||||
'@babel/parser': 7.29.8
|
||||
'@vue/compiler-core': 3.5.42
|
||||
'@vue/compiler-dom': 3.5.42
|
||||
'@vue/compiler-ssr': 3.5.42
|
||||
'@vue/shared': 3.5.42
|
||||
'@babel/parser': 7.29.7
|
||||
'@vue/compiler-core': 3.5.40
|
||||
'@vue/compiler-dom': 3.5.40
|
||||
'@vue/compiler-ssr': 3.5.40
|
||||
'@vue/shared': 3.5.40
|
||||
estree-walker: 2.0.2
|
||||
magic-string: 0.30.21
|
||||
postcss: 8.5.26
|
||||
postcss: 8.5.20
|
||||
source-map-js: 1.2.1
|
||||
|
||||
'@vue/compiler-ssr@3.5.42':
|
||||
'@vue/compiler-ssr@3.5.40':
|
||||
dependencies:
|
||||
'@vue/compiler-dom': 3.5.42
|
||||
'@vue/shared': 3.5.42
|
||||
'@vue/compiler-dom': 3.5.40
|
||||
'@vue/shared': 3.5.40
|
||||
|
||||
'@vue/reactivity@3.5.42':
|
||||
'@vue/reactivity@3.5.40':
|
||||
dependencies:
|
||||
'@vue/shared': 3.5.42
|
||||
'@vue/shared': 3.5.40
|
||||
|
||||
'@vue/runtime-core@3.5.42':
|
||||
'@vue/runtime-core@3.5.40':
|
||||
dependencies:
|
||||
'@vue/reactivity': 3.5.42
|
||||
'@vue/shared': 3.5.42
|
||||
'@vue/reactivity': 3.5.40
|
||||
'@vue/shared': 3.5.40
|
||||
|
||||
'@vue/runtime-dom@3.5.42':
|
||||
'@vue/runtime-dom@3.5.40':
|
||||
dependencies:
|
||||
'@vue/reactivity': 3.5.42
|
||||
'@vue/runtime-core': 3.5.42
|
||||
'@vue/shared': 3.5.42
|
||||
'@vue/reactivity': 3.5.40
|
||||
'@vue/runtime-core': 3.5.40
|
||||
'@vue/shared': 3.5.40
|
||||
csstype: 3.2.3
|
||||
|
||||
'@vue/server-renderer@3.5.42':
|
||||
'@vue/server-renderer@3.5.40':
|
||||
dependencies:
|
||||
'@vue/compiler-ssr': 3.5.42
|
||||
'@vue/runtime-dom': 3.5.42
|
||||
'@vue/shared': 3.5.42
|
||||
'@vue/compiler-ssr': 3.5.40
|
||||
'@vue/runtime-dom': 3.5.40
|
||||
'@vue/shared': 3.5.40
|
||||
|
||||
'@vue/shared@3.5.42': {}
|
||||
'@vue/shared@3.5.40': {}
|
||||
|
||||
'@vueuse/core@10.11.1(vue@3.5.42(typescript@6.0.3))':
|
||||
'@vueuse/core@10.11.1(vue@3.5.40(typescript@6.0.3))':
|
||||
dependencies:
|
||||
'@types/web-bluetooth': 0.0.20
|
||||
'@vueuse/metadata': 10.11.1
|
||||
'@vueuse/shared': 10.11.1(vue@3.5.42(typescript@6.0.3))
|
||||
vue-demi: 0.14.10(vue@3.5.42(typescript@6.0.3))
|
||||
'@vueuse/shared': 10.11.1(vue@3.5.40(typescript@6.0.3))
|
||||
vue-demi: 0.14.10(vue@3.5.40(typescript@6.0.3))
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- vue
|
||||
|
||||
'@vueuse/core@13.9.0(vue@3.5.42(typescript@6.0.3))':
|
||||
'@vueuse/core@13.9.0(vue@3.5.40(typescript@6.0.3))':
|
||||
dependencies:
|
||||
'@types/web-bluetooth': 0.0.21
|
||||
'@vueuse/metadata': 13.9.0
|
||||
'@vueuse/shared': 13.9.0(vue@3.5.42(typescript@6.0.3))
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
'@vueuse/shared': 13.9.0(vue@3.5.40(typescript@6.0.3))
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
|
||||
'@vueuse/integrations@13.9.0(focus-trap@7.8.0)(fuse.js@7.5.0)(vue@3.5.42(typescript@6.0.3))':
|
||||
'@vueuse/integrations@13.9.0(focus-trap@7.8.0)(fuse.js@7.5.0)(vue@3.5.40(typescript@6.0.3))':
|
||||
dependencies:
|
||||
'@vueuse/core': 13.9.0(vue@3.5.42(typescript@6.0.3))
|
||||
'@vueuse/shared': 13.9.0(vue@3.5.42(typescript@6.0.3))
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
'@vueuse/core': 13.9.0(vue@3.5.40(typescript@6.0.3))
|
||||
'@vueuse/shared': 13.9.0(vue@3.5.40(typescript@6.0.3))
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
optionalDependencies:
|
||||
focus-trap: 7.8.0
|
||||
fuse.js: 7.5.0
|
||||
@@ -6563,24 +6188,24 @@ snapshots:
|
||||
|
||||
'@vueuse/metadata@13.9.0': {}
|
||||
|
||||
'@vueuse/shared@10.11.1(vue@3.5.42(typescript@6.0.3))':
|
||||
'@vueuse/shared@10.11.1(vue@3.5.40(typescript@6.0.3))':
|
||||
dependencies:
|
||||
vue-demi: 0.14.10(vue@3.5.42(typescript@6.0.3))
|
||||
vue-demi: 0.14.10(vue@3.5.40(typescript@6.0.3))
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- vue
|
||||
|
||||
'@vueuse/shared@13.9.0(vue@3.5.42(typescript@6.0.3))':
|
||||
'@vueuse/shared@13.9.0(vue@3.5.40(typescript@6.0.3))':
|
||||
dependencies:
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
|
||||
ai@6.0.33(zod@4.5.4):
|
||||
ai@6.0.33(zod@4.4.3):
|
||||
dependencies:
|
||||
'@ai-sdk/gateway': 3.0.13(zod@4.5.4)
|
||||
'@ai-sdk/gateway': 3.0.13(zod@4.4.3)
|
||||
'@ai-sdk/provider': 3.0.2
|
||||
'@ai-sdk/provider-utils': 4.0.5(zod@4.5.4)
|
||||
'@ai-sdk/provider-utils': 4.0.5(zod@4.4.3)
|
||||
'@opentelemetry/api': 1.9.0
|
||||
zod: 4.5.4
|
||||
zod: 4.4.3
|
||||
|
||||
ansi-regex@5.0.1: {}
|
||||
|
||||
@@ -6770,7 +6395,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@types/estree': 1.0.9
|
||||
|
||||
eventsource-parser@3.1.1: {}
|
||||
eventsource-parser@3.1.0: {}
|
||||
|
||||
expect-type@1.4.0: {}
|
||||
|
||||
@@ -6782,7 +6407,7 @@ snapshots:
|
||||
optionalDependencies:
|
||||
picomatch: 4.0.4
|
||||
|
||||
flatted@3.4.4: {}
|
||||
flatted@3.4.2: {}
|
||||
|
||||
focus-trap@7.8.0:
|
||||
dependencies:
|
||||
@@ -6874,7 +6499,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@types/hast': 3.0.5
|
||||
'@types/unist': 3.0.3
|
||||
'@ungap/structured-clone': 1.4.0
|
||||
'@ungap/structured-clone': 1.3.3
|
||||
hast-util-from-parse5: 8.0.3
|
||||
hast-util-to-parse5: 8.0.1
|
||||
html-void-elements: 3.0.0
|
||||
@@ -6889,7 +6514,7 @@ snapshots:
|
||||
hast-util-sanitize@5.0.2:
|
||||
dependencies:
|
||||
'@types/hast': 3.0.5
|
||||
'@ungap/structured-clone': 1.4.0
|
||||
'@ungap/structured-clone': 1.3.3
|
||||
unist-util-position: 5.0.0
|
||||
|
||||
hast-util-to-html@9.0.5:
|
||||
@@ -6935,21 +6560,19 @@ snapshots:
|
||||
property-information: 7.2.0
|
||||
space-separated-tokens: 2.0.2
|
||||
|
||||
highlight.js@11.11.2: {}
|
||||
highlight.js@11.11.1: {}
|
||||
|
||||
highlight.js@11.12.0: {}
|
||||
|
||||
hono-openapi@1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.13.5)(openapi-types@12.1.3):
|
||||
hono-openapi@1.3.1(@hono/standard-validator@0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27))(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-community/standard-openapi@0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3))(@types/json-schema@7.0.15)(hono@4.12.27)(openapi-types@12.1.3):
|
||||
dependencies:
|
||||
'@standard-community/standard-json': 0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3)
|
||||
'@standard-community/standard-openapi': 0.2.9(@standard-community/standard-json@0.3.5(@standard-schema/spec@1.1.0)(@types/json-schema@7.0.15)(quansync@0.2.11)(zod@4.4.3))(@standard-schema/spec@1.1.0)(openapi-types@12.1.3)(zod@4.4.3)
|
||||
'@types/json-schema': 7.0.15
|
||||
openapi-types: 12.1.3
|
||||
optionalDependencies:
|
||||
'@hono/standard-validator': 0.2.2(@standard-schema/spec@1.1.0)(hono@4.13.5)
|
||||
hono: 4.13.5
|
||||
'@hono/standard-validator': 0.2.2(@standard-schema/spec@1.1.0)(hono@4.12.27)
|
||||
hono: 4.12.27
|
||||
|
||||
hono@4.13.5: {}
|
||||
hono@4.12.27: {}
|
||||
|
||||
hookable@6.1.1: {}
|
||||
|
||||
@@ -6989,7 +6612,7 @@ snapshots:
|
||||
jiti@2.6.1:
|
||||
optional: true
|
||||
|
||||
js-base64@3.9.3: {}
|
||||
js-base64@3.9.1: {}
|
||||
|
||||
js-tokens@4.0.0: {}
|
||||
|
||||
@@ -7055,7 +6678,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@types/hast': 3.0.5
|
||||
devlop: 1.1.0
|
||||
highlight.js: 11.11.2
|
||||
highlight.js: 11.11.1
|
||||
|
||||
lru-cache@5.1.1:
|
||||
dependencies:
|
||||
@@ -7163,7 +6786,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@types/hast': 3.0.5
|
||||
'@types/mdast': 4.0.4
|
||||
'@ungap/structured-clone': 1.4.0
|
||||
'@ungap/structured-clone': 1.3.3
|
||||
devlop: 1.1.0
|
||||
micromark-util-sanitize-uri: 2.0.1
|
||||
trim-lines: 3.0.1
|
||||
@@ -7189,7 +6812,7 @@ snapshots:
|
||||
|
||||
memoize-one@6.0.0: {}
|
||||
|
||||
microdiff@1.6.0: {}
|
||||
microdiff@1.5.0: {}
|
||||
|
||||
micromark-core-commonmark@2.0.3:
|
||||
dependencies:
|
||||
@@ -7406,25 +7029,13 @@ snapshots:
|
||||
- bufferutil
|
||||
- utf-8-validate
|
||||
|
||||
miniflare@5.20260831.0-alpha:
|
||||
dependencies:
|
||||
'@cspotcode/source-map-support': 0.8.1
|
||||
sharp: 0.35.2
|
||||
undici: 7.29.0
|
||||
workerd: 1.20260831.1
|
||||
ws: 8.21.0
|
||||
youch: 4.1.0-beta.10
|
||||
transitivePeerDependencies:
|
||||
- bufferutil
|
||||
- utf-8-validate
|
||||
|
||||
ms@2.1.3: {}
|
||||
|
||||
mute-stream@2.0.0: {}
|
||||
|
||||
nanoid@3.3.15: {}
|
||||
|
||||
nanoid@3.3.18: {}
|
||||
nanoid@3.3.16: {}
|
||||
|
||||
nanoid@5.1.16: {}
|
||||
|
||||
@@ -7496,9 +7107,9 @@ snapshots:
|
||||
picocolors: 1.1.1
|
||||
source-map-js: 1.2.1
|
||||
|
||||
postcss@8.5.26:
|
||||
postcss@8.5.20:
|
||||
dependencies:
|
||||
nanoid: 3.3.18
|
||||
nanoid: 3.3.16
|
||||
picocolors: 1.1.1
|
||||
source-map-js: 1.2.1
|
||||
|
||||
@@ -7515,7 +7126,7 @@ snapshots:
|
||||
|
||||
prettier@3.9.4: {}
|
||||
|
||||
pretty-ms@9.3.1:
|
||||
pretty-ms@9.3.0:
|
||||
dependencies:
|
||||
parse-ms: 4.0.0
|
||||
|
||||
@@ -7525,20 +7136,20 @@ snapshots:
|
||||
|
||||
quansync@0.2.11: {}
|
||||
|
||||
radix-vue@1.9.17(vue@3.5.42(typescript@6.0.3)):
|
||||
radix-vue@1.9.17(vue@3.5.40(typescript@6.0.3)):
|
||||
dependencies:
|
||||
'@floating-ui/dom': 1.8.0
|
||||
'@floating-ui/vue': 1.1.11(vue@3.5.42(typescript@6.0.3))
|
||||
'@internationalized/date': 3.12.4
|
||||
'@internationalized/number': 3.6.8
|
||||
'@tanstack/vue-virtual': 3.13.36(vue@3.5.42(typescript@6.0.3))
|
||||
'@vueuse/core': 10.11.1(vue@3.5.42(typescript@6.0.3))
|
||||
'@vueuse/shared': 10.11.1(vue@3.5.42(typescript@6.0.3))
|
||||
'@floating-ui/vue': 1.1.9(vue@3.5.40(typescript@6.0.3))
|
||||
'@internationalized/date': 3.12.2
|
||||
'@internationalized/number': 3.6.7
|
||||
'@tanstack/vue-virtual': 3.13.33(vue@3.5.40(typescript@6.0.3))
|
||||
'@vueuse/core': 10.11.1(vue@3.5.40(typescript@6.0.3))
|
||||
'@vueuse/shared': 10.11.1(vue@3.5.40(typescript@6.0.3))
|
||||
aria-hidden: 1.2.6
|
||||
defu: 6.1.7
|
||||
fast-deep-equal: 3.1.3
|
||||
nanoid: 5.1.16
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
|
||||
@@ -7554,7 +7165,7 @@ snapshots:
|
||||
rehype-external-links@3.0.0:
|
||||
dependencies:
|
||||
'@types/hast': 3.0.5
|
||||
'@ungap/structured-clone': 1.4.0
|
||||
'@ungap/structured-clone': 1.3.3
|
||||
hast-util-is-element: 3.0.0
|
||||
is-absolute-url: 4.0.1
|
||||
space-separated-tokens: 2.0.2
|
||||
@@ -7696,38 +7307,6 @@ snapshots:
|
||||
'@img/sharp-win32-ia32': 0.34.5
|
||||
'@img/sharp-win32-x64': 0.34.5
|
||||
|
||||
sharp@0.35.2:
|
||||
dependencies:
|
||||
'@img/colour': 1.1.0
|
||||
detect-libc: 2.1.2
|
||||
semver: 7.8.5
|
||||
optionalDependencies:
|
||||
'@img/sharp-darwin-arm64': 0.35.2
|
||||
'@img/sharp-darwin-x64': 0.35.2
|
||||
'@img/sharp-freebsd-wasm32': 0.35.2
|
||||
'@img/sharp-libvips-darwin-arm64': 1.3.1
|
||||
'@img/sharp-libvips-darwin-x64': 1.3.1
|
||||
'@img/sharp-libvips-linux-arm': 1.3.1
|
||||
'@img/sharp-libvips-linux-arm64': 1.3.1
|
||||
'@img/sharp-libvips-linux-ppc64': 1.3.1
|
||||
'@img/sharp-libvips-linux-riscv64': 1.3.1
|
||||
'@img/sharp-libvips-linux-s390x': 1.3.1
|
||||
'@img/sharp-libvips-linux-x64': 1.3.1
|
||||
'@img/sharp-libvips-linuxmusl-arm64': 1.3.1
|
||||
'@img/sharp-libvips-linuxmusl-x64': 1.3.1
|
||||
'@img/sharp-linux-arm': 0.35.2
|
||||
'@img/sharp-linux-arm64': 0.35.2
|
||||
'@img/sharp-linux-ppc64': 0.35.2
|
||||
'@img/sharp-linux-riscv64': 0.35.2
|
||||
'@img/sharp-linux-s390x': 0.35.2
|
||||
'@img/sharp-linux-x64': 0.35.2
|
||||
'@img/sharp-linuxmusl-arm64': 0.35.2
|
||||
'@img/sharp-linuxmusl-x64': 0.35.2
|
||||
'@img/sharp-webcontainers-wasm32': 0.35.2
|
||||
'@img/sharp-win32-arm64': 0.35.2
|
||||
'@img/sharp-win32-ia32': 0.35.2
|
||||
'@img/sharp-win32-x64': 0.35.2
|
||||
|
||||
siginfo@2.0.0: {}
|
||||
|
||||
signal-exit@4.1.0: {}
|
||||
@@ -7792,9 +7371,9 @@ snapshots:
|
||||
|
||||
supports-color@10.1.0: {}
|
||||
|
||||
swrv@1.2.0(vue@3.5.42(typescript@6.0.3)):
|
||||
swrv@1.2.0(vue@3.5.40(typescript@6.0.3)):
|
||||
dependencies:
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
|
||||
syncpack-darwin-arm64@15.3.2:
|
||||
optional: true
|
||||
@@ -7885,7 +7464,7 @@ snapshots:
|
||||
|
||||
type-fest@4.41.0: {}
|
||||
|
||||
type-fest@5.9.0:
|
||||
type-fest@5.8.0:
|
||||
dependencies:
|
||||
tagged-tag: 1.0.0
|
||||
|
||||
@@ -7897,13 +7476,11 @@ snapshots:
|
||||
|
||||
undici@7.28.0: {}
|
||||
|
||||
undici@7.29.0: {}
|
||||
|
||||
unenv@2.0.0-rc.24:
|
||||
dependencies:
|
||||
pathe: 2.0.3
|
||||
|
||||
unhead@2.1.17:
|
||||
unhead@2.1.16:
|
||||
dependencies:
|
||||
hookable: 6.1.1
|
||||
|
||||
@@ -8010,21 +7587,21 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- msw
|
||||
|
||||
vue-component-type-helpers@3.3.11: {}
|
||||
vue-component-type-helpers@3.3.7: {}
|
||||
|
||||
vue-demi@0.14.10(vue@3.5.42(typescript@6.0.3)):
|
||||
vue-demi@0.14.10(vue@3.5.40(typescript@6.0.3)):
|
||||
dependencies:
|
||||
vue: 3.5.42(typescript@6.0.3)
|
||||
vue: 3.5.40(typescript@6.0.3)
|
||||
|
||||
vue-sonner@1.3.2: {}
|
||||
|
||||
vue@3.5.42(typescript@6.0.3):
|
||||
vue@3.5.40(typescript@6.0.3):
|
||||
dependencies:
|
||||
'@vue/compiler-dom': 3.5.42
|
||||
'@vue/compiler-sfc': 3.5.42
|
||||
'@vue/runtime-dom': 3.5.42
|
||||
'@vue/server-renderer': 3.5.42
|
||||
'@vue/shared': 3.5.42
|
||||
'@vue/compiler-dom': 3.5.40
|
||||
'@vue/compiler-sfc': 3.5.40
|
||||
'@vue/runtime-dom': 3.5.40
|
||||
'@vue/server-renderer': 3.5.40
|
||||
'@vue/shared': 3.5.40
|
||||
optionalDependencies:
|
||||
typescript: 6.0.3
|
||||
|
||||
@@ -8055,19 +7632,11 @@ snapshots:
|
||||
'@cloudflare/workerd-linux-arm64': 1.20260625.1
|
||||
'@cloudflare/workerd-windows-64': 1.20260625.1
|
||||
|
||||
workerd@1.20260831.1:
|
||||
optionalDependencies:
|
||||
'@cloudflare/workerd-darwin-64': 1.20260831.1
|
||||
'@cloudflare/workerd-darwin-arm64': 1.20260831.1
|
||||
'@cloudflare/workerd-linux-64': 1.20260831.1
|
||||
'@cloudflare/workerd-linux-arm64': 1.20260831.1
|
||||
'@cloudflare/workerd-windows-64': 1.20260831.1
|
||||
|
||||
workers-tagged-logger@1.0.1:
|
||||
dependencies:
|
||||
zod: 4.4.3
|
||||
optionalDependencies:
|
||||
hono: 4.13.5
|
||||
hono: 4.12.27
|
||||
|
||||
wrangler@4.105.0(@cloudflare/workers-types@4.20260630.1):
|
||||
dependencies:
|
||||
@@ -8086,22 +7655,6 @@ snapshots:
|
||||
- bufferutil
|
||||
- utf-8-validate
|
||||
|
||||
wrangler@4.128.0:
|
||||
dependencies:
|
||||
'@cloudflare/kv-asset-handler': 0.5.0
|
||||
'@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260831.1)
|
||||
blake3-wasm: 2.1.5
|
||||
esbuild: 0.28.1
|
||||
miniflare: 5.20260831.0-alpha
|
||||
path-to-regexp: 6.3.0
|
||||
unenv: 2.0.0-rc.24
|
||||
workerd: 1.20260831.1
|
||||
optionalDependencies:
|
||||
fsevents: 2.3.3
|
||||
transitivePeerDependencies:
|
||||
- bufferutil
|
||||
- utf-8-validate
|
||||
|
||||
wrap-ansi@6.2.0:
|
||||
dependencies:
|
||||
ansi-styles: 4.3.0
|
||||
@@ -8133,8 +7686,6 @@ snapshots:
|
||||
|
||||
zod@4.4.3: {}
|
||||
|
||||
zod@4.5.4: {}
|
||||
|
||||
zwitch@2.0.4: {}
|
||||
|
||||
zx@8.8.5: {}
|
||||
|
||||
Reference in New Issue
Block a user