From a3c1c064291e0c13801fce25353785ce9aa9f84a Mon Sep 17 00:00:00 2001 From: Micah Heneveld Date: Sat, 17 Jan 2026 18:52:20 -0800 Subject: [PATCH] Updated cloud references to use latest specs --- src/lib/utils/specs.ts | 23 ++++++++++++++++--- .../[platform]/[service]/+page.server.ts | 8 ++++--- .../[version]/models/[model]/+page.server.ts | 2 +- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/src/lib/utils/specs.ts b/src/lib/utils/specs.ts index 7cd3a4c879..d85eee6753 100644 --- a/src/lib/utils/specs.ts +++ b/src/lib/utils/specs.ts @@ -113,6 +113,7 @@ function getExamples(version: string) { import: 'default' }); case '1.7.x': + case 'latest': return import.meta.glob('$appwrite/docs/examples/1.7.x/**/*.md', { query: '?raw', import: 'default' @@ -248,6 +249,21 @@ export async function getDescription(service: string) { return descriptions[target]() as unknown as string; } +function getContentTypeDescription(content: Record): string { + const contentType = Object.keys(content)[0]; + + if (contentType === '*/*') { + const mediaTypeObject = content[contentType]; + const schema = mediaTypeObject?.schema as OpenAPIV3.SchemaObject; + + if (schema?.type === 'string' && schema?.format === 'binary') { + return 'application/gzip'; + } + } + + return contentType; +} + export async function getService( version: string, platform: string, @@ -319,17 +335,18 @@ export async function getService( return { code: Number(code), - contentType: response?.content ? Object.keys(response.content)[0] : undefined, + contentType: response?.content ? getContentTypeDescription(response.content) : undefined, models }; } ); + const exampleVersion = version === 'latest' ? '1.7.x' : version; const path = isAndroid - ? `/node_modules/@appwrite.io/repo/docs/examples/${version}/${ + ? `/node_modules/@appwrite.io/repo/docs/examples/${exampleVersion}/${ isAndroidServer ? 'server-kotlin' : 'client-android' }/${isAndroidJava ? 'java' : 'kotlin'}/${operation['x-appwrite'].demo}` - : `/node_modules/@appwrite.io/repo/docs/examples/${version}/${platform}/examples/${operation['x-appwrite'].demo}`; + : `/node_modules/@appwrite.io/repo/docs/examples/${exampleVersion}/${platform}/examples/${operation['x-appwrite'].demo}`; if (!(path in examples)) { continue; } diff --git a/src/routes/docs/references/[version]/[platform]/[service]/+page.server.ts b/src/routes/docs/references/[version]/[platform]/[service]/+page.server.ts index 8e3a41e80c..fd6da544a9 100644 --- a/src/routes/docs/references/[version]/[platform]/[service]/+page.server.ts +++ b/src/routes/docs/references/[version]/[platform]/[service]/+page.server.ts @@ -18,11 +18,13 @@ export const entries: EntryGenerator = () => { export const load: PageServerLoad = async ({ params }) => { const { platform, service } = params; - const version = params.version === 'cloud' ? '1.7.x' : params.version; - - if (!versions.includes(version)) error(404, 'Invalid version'); + + // Validate original params.version + if (params.version !== 'cloud' && !versions.includes(params.version)) error(404, 'Invalid version'); if (!platforms.includes(platform as Platform)) error(404, 'Invalid platform'); if (!services.includes(service as ServiceValue)) error(404, 'Invalid service'); + // Convert cloud to latest after validation + const version = params.version === 'cloud' ? 'latest' : params.version; return getService(version, platform, service); }; diff --git a/src/routes/docs/references/[version]/models/[model]/+page.server.ts b/src/routes/docs/references/[version]/models/[model]/+page.server.ts index 9c0c1c0c7b..ff11b8408e 100644 --- a/src/routes/docs/references/[version]/models/[model]/+page.server.ts +++ b/src/routes/docs/references/[version]/models/[model]/+page.server.ts @@ -21,7 +21,7 @@ type Model = { }; export const load: PageServerLoad = async ({ params }) => { - const version = params.version === 'cloud' ? '1.7.x' : params.version; + const version = params.version === 'cloud' ? 'latest' : params.version; const api = await getApi(version, 'console-web'); const schema = getSchema(params.model, api); const props = Object.entries(schema.properties ?? {});