{"version":3,"file":"sveltekit.cjs","names":["createHandler"],"sources":["../src/adapter/sveltekit/handler.ts","../src/adapter/sveltekit/route-handler.ts"],"sourcesContent":["import { type Handle, type RequestEvent } from '@sveltejs/kit';\nimport type { ClientContract } from '@zenstackhq/orm';\nimport type { SchemaDef } from '@zenstackhq/orm/schema';\nimport { logInternalError, type CommonAdapterOptions } from '../common';\n\n/**\n * SvelteKit request handler options\n */\nexport interface SvelteKitHandlerOptions<Schema extends SchemaDef> extends CommonAdapterOptions<Schema> {\n    /**\n     * Url prefix, e.g.: /api\n     */\n    prefix: string;\n\n    /**\n     * Callback for getting a ZenStackClient for the given request\n     */\n    getClient: (event: RequestEvent) => ClientContract<Schema> | Promise<ClientContract<Schema>>;\n}\n\n/**\n * SvelteKit server hooks handler for handling CRUD requests. This handler is to be used in `hooks.server.ts`.\n * @deprecated use `SvelteKitRouteHandler` instead.\n */\nfunction createHandler<Schema extends SchemaDef>(options: SvelteKitHandlerOptions<Schema>): Handle {\n    return async ({ event, resolve }) => {\n        if (event.url.pathname.startsWith(options.prefix)) {\n            const client = await options.getClient(event);\n            if (!client) {\n                return new Response(JSON.stringify({ message: 'unable to get ZenStackClient from request context' }), {\n                    status: 400,\n                    headers: {\n                        'content-type': 'application/json',\n                    },\n                });\n            }\n\n            const query = Object.fromEntries(event.url.searchParams);\n            let requestBody: unknown;\n            if (event.request.body) {\n                try {\n                    const text = await event.request.text();\n                    if (text) {\n                        requestBody = JSON.parse(text);\n                    }\n                } catch {\n                    return new Response(JSON.stringify({ message: 'invalid JSON payload' }), {\n                        status: 400,\n                        headers: {\n                            'content-type': 'application/json',\n                        },\n                    });\n                }\n            }\n\n            const path = event.url.pathname.substring(options.prefix.length);\n\n            try {\n                const r = await options.apiHandler.handleRequest({\n                    method: event.request.method,\n                    path,\n                    query,\n                    requestBody,\n                    client,\n                });\n\n                return new Response(JSON.stringify(r.body), {\n                    status: r.status,\n                    headers: {\n                        'content-type': 'application/json',\n                    },\n                });\n            } catch (err) {\n                logInternalError(options.apiHandler.log, err);\n                return new Response(JSON.stringify({ message: 'An internal server error occurred' }), {\n                    status: 500,\n                    headers: {\n                        'content-type': 'application/json',\n                    },\n                });\n            }\n        }\n\n        return resolve(event);\n    };\n}\n\nexport { createHandler as SvelteKitHandler };\n","import { json, type RequestEvent, type RequestHandler } from '@sveltejs/kit';\nimport type { ClientContract } from '@zenstackhq/orm';\nimport type { SchemaDef } from '@zenstackhq/orm/schema';\nimport { logInternalError, type CommonAdapterOptions } from '../common';\n\n/**\n * SvelteKit route handler options\n */\nexport interface SvelteKitRouteHandlerOptions<Schema extends SchemaDef> extends CommonAdapterOptions<Schema> {\n    /**\n     * Callback for getting a ZenStackClient for the given request event\n     */\n    getClient: (event: RequestEvent) => ClientContract<Schema> | Promise<ClientContract<Schema>>;\n}\n\n/**\n * SvelteKit server route handler for handling CRUD requests. This handler is to be used in a `+server.ts`\n * API route file.\n */\nfunction createHandler<Schema extends SchemaDef>(options: SvelteKitRouteHandlerOptions<Schema>): RequestHandler {\n    return async (event) => {\n        const client = await options.getClient(event);\n        if (!client) {\n            return json({ message: 'unable to get ZenStackClient from request context' }, { status: 400 });\n        }\n\n        const query = Object.fromEntries(event.url.searchParams);\n        let requestBody: unknown;\n        if (event.request.body) {\n            try {\n                requestBody = await event.request.json();\n            } catch {\n                return json({ message: 'invalid JSON payload' }, { status: 400 });\n            }\n        }\n\n        const path = event.params['path'];\n        if (!path) {\n            return json({ message: 'route is missing path parameter' }, { status: 400 });\n        }\n\n        try {\n            const r = await options.apiHandler.handleRequest({\n                method: event.request.method,\n                path,\n                query,\n                requestBody,\n                client,\n            });\n\n            return json(r.body, { status: r.status });\n        } catch (err) {\n            logInternalError(options.apiHandler.log, err);\n            return json({ message: 'An internal server error occurred' }, { status: 500 });\n        }\n    };\n}\n\nexport { createHandler as SvelteKitRouteHandler };\n"],"mappings":";;;;;;;;;AAwBA,SAAS,cAAwC,SAAkD;AAC/F,QAAO,OAAO,EAAE,OAAO,cAAc;AACjC,MAAI,MAAM,IAAI,SAAS,WAAW,QAAQ,OAAO,EAAE;GAC/C,MAAM,SAAS,MAAM,QAAQ,UAAU,MAAM;AAC7C,OAAI,CAAC,OACD,QAAO,IAAI,SAAS,KAAK,UAAU,EAAE,SAAS,qDAAqD,CAAC,EAAE;IAClG,QAAQ;IACR,SAAS,EACL,gBAAgB,oBACnB;IACJ,CAAC;GAGN,MAAM,QAAQ,OAAO,YAAY,MAAM,IAAI,aAAa;GACxD,IAAI;AACJ,OAAI,MAAM,QAAQ,KACd,KAAI;IACA,MAAM,OAAO,MAAM,MAAM,QAAQ,MAAM;AACvC,QAAI,KACA,eAAc,KAAK,MAAM,KAAK;WAE9B;AACJ,WAAO,IAAI,SAAS,KAAK,UAAU,EAAE,SAAS,wBAAwB,CAAC,EAAE;KACrE,QAAQ;KACR,SAAS,EACL,gBAAgB,oBACnB;KACJ,CAAC;;GAIV,MAAM,OAAO,MAAM,IAAI,SAAS,UAAU,QAAQ,OAAO,OAAO;AAEhE,OAAI;IACA,MAAM,IAAI,MAAM,QAAQ,WAAW,cAAc;KAC7C,QAAQ,MAAM,QAAQ;KACtB;KACA;KACA;KACA;KACH,CAAC;AAEF,WAAO,IAAI,SAAS,KAAK,UAAU,EAAE,KAAK,EAAE;KACxC,QAAQ,EAAE;KACV,SAAS,EACL,gBAAgB,oBACnB;KACJ,CAAC;YACG,KAAK;AACV,mBAAA,iBAAiB,QAAQ,WAAW,KAAK,IAAI;AAC7C,WAAO,IAAI,SAAS,KAAK,UAAU,EAAE,SAAS,qCAAqC,CAAC,EAAE;KAClF,QAAQ;KACR,SAAS,EACL,gBAAgB,oBACnB;KACJ,CAAC;;;AAIV,SAAO,QAAQ,MAAM;;;;;;;;;AChE7B,SAASA,gBAAwC,SAA+D;AAC5G,QAAO,OAAO,UAAU;EACpB,MAAM,SAAS,MAAM,QAAQ,UAAU,MAAM;AAC7C,MAAI,CAAC,OACD,SAAA,GAAA,cAAA,MAAY,EAAE,SAAS,qDAAqD,EAAE,EAAE,QAAQ,KAAK,CAAC;EAGlG,MAAM,QAAQ,OAAO,YAAY,MAAM,IAAI,aAAa;EACxD,IAAI;AACJ,MAAI,MAAM,QAAQ,KACd,KAAI;AACA,iBAAc,MAAM,MAAM,QAAQ,MAAM;UACpC;AACJ,WAAA,GAAA,cAAA,MAAY,EAAE,SAAS,wBAAwB,EAAE,EAAE,QAAQ,KAAK,CAAC;;EAIzE,MAAM,OAAO,MAAM,OAAO;AAC1B,MAAI,CAAC,KACD,SAAA,GAAA,cAAA,MAAY,EAAE,SAAS,mCAAmC,EAAE,EAAE,QAAQ,KAAK,CAAC;AAGhF,MAAI;GACA,MAAM,IAAI,MAAM,QAAQ,WAAW,cAAc;IAC7C,QAAQ,MAAM,QAAQ;IACtB;IACA;IACA;IACA;IACH,CAAC;AAEF,WAAA,GAAA,cAAA,MAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;WACpC,KAAK;AACV,kBAAA,iBAAiB,QAAQ,WAAW,KAAK,IAAI;AAC7C,WAAA,GAAA,cAAA,MAAY,EAAE,SAAS,qCAAqC,EAAE,EAAE,QAAQ,KAAK,CAAC"}