[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-supabase-supabase-server":3,"mdc--1nrgju-key":34,"related-repo-supabase-supabase-server":7932,"related-org-supabase-supabase-server":7941},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"supabase-server","write server-side code with Supabase","Use when planning or writing server-side code that uses `@supabase\u002Fserver` — Edge Functions, Hono apps, webhook handlers, or any backend that creates Supabase clients or validates inbound auth. Trigger **before** writing or modifying any file that imports from `@supabase\u002Fserver` (or sub-paths like `@supabase\u002Fserver\u002Fcore`); calls `withSupabase`, `createSupabaseContext`, `createAdminClient`, `createContextClient`, `verifyAuth`, `verifyCredentials`, or `extractCredentials`; configures an `auth:` mode (`'none'` | `'publishable'` | `'secret'` | `'user'`, or keyed variants like `'secret:*'`); or lives under `supabase\u002Ffunctions\u002F` and authenticates an inbound request. Also trigger during planning — if a plan mentions any of the above, load the skill before drafting code; do not extrapolate `auth:` values or auth modes from neighboring functions. Also trigger when you see legacy patterns to migrate to this package — `Deno.serve`, `createClient(Deno.env.get('SUPABASE_URL'))`, imports from `esm.sh\u002F@supabase` or `deno.land\u002Fstd`, usage of `SUPABASE_ANON_KEY` \u002F `SUPABASE_SERVICE_ROLE_KEY`, or the deprecated `allow:` config option \u002F removed `'always'` \u002F `'public'` mode values \u002F removed `authType` field.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"supabase","Supabase","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fsupabase.png",[12,16,19,20],{"name":13,"slug":14,"type":15},"Backend","backend","tag",{"name":17,"slug":18,"type":15},"Auth","auth",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Edge Functions","edge-functions",83,"https:\u002F\u002Fgithub.com\u002Fsupabase\u002Fserver","2026-07-17T05:33:41.457911",null,13,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"Server-side utilities for Supabase. Handles auth, client creation, and context injection so you write business logic, not boilerplate.","https:\u002F\u002Fgithub.com\u002Fsupabase\u002Fserver\u002Ftree\u002FHEAD\u002Fskills\u002Fsupabase-server","---\nname: supabase-server\ndescription: Use when planning or writing server-side code that uses `@supabase\u002Fserver` — Edge Functions, Hono apps, webhook handlers, or any backend that creates Supabase clients or validates inbound auth. Trigger **before** writing or modifying any file that imports from `@supabase\u002Fserver` (or sub-paths like `@supabase\u002Fserver\u002Fcore`); calls `withSupabase`, `createSupabaseContext`, `createAdminClient`, `createContextClient`, `verifyAuth`, `verifyCredentials`, or `extractCredentials`; configures an `auth:` mode (`'none'` | `'publishable'` | `'secret'` | `'user'`, or keyed variants like `'secret:*'`); or lives under `supabase\u002Ffunctions\u002F` and authenticates an inbound request. Also trigger during planning — if a plan mentions any of the above, load the skill before drafting code; do not extrapolate `auth:` values or auth modes from neighboring functions. Also trigger when you see legacy patterns to migrate to this package — `Deno.serve`, `createClient(Deno.env.get('SUPABASE_URL'))`, imports from `esm.sh\u002F@supabase` or `deno.land\u002Fstd`, usage of `SUPABASE_ANON_KEY` \u002F `SUPABASE_SERVICE_ROLE_KEY`, or the deprecated `allow:` config option \u002F removed `'always'` \u002F `'public'` mode values \u002F removed `authType` field.\n---\n\n# @supabase\u002Fserver\n\n> **v1.0 — Public Beta.** First stable release under SemVer: breaking changes only ship as a major bump. The package is still early — expect new adapters, ergonomic improvements, and features to land frequently in minor releases. If you encounter a bug or rough edge while writing code with it, surface it to the user with a pointer to [open an issue](https:\u002F\u002Fgithub.com\u002Fsupabase\u002Fserver\u002Fissues).\n\n> **This is a brand new package.** There is no information available online yet — no blog posts, no Stack Overflow answers, no tutorials. Do not search the web for usage examples. Rely exclusively on the documentation files listed below and the source code in this repository.\n\n> **The config option is `auth`, not `allow`.** `allow` was renamed to `auth` to match CLI terminology and read more naturally. The legacy `allow` key still works (with a one-time `console.warn`) but is deprecated and will be removed in a future major release. **Always emit `auth` in new code** — e.g. `withSupabase({ auth: 'user' }, ...)`. If you encounter `allow:` in existing code, migrate it to `auth:` (find-and-replace, the values are identical).\n\n> **Auth mode values: `'none'` (not `'always'`), `'publishable'` (not `'public'`).** The four valid values are `'user'`, `'publishable'`, `'secret'`, `'none'`. The legacy `'always'` and `'public'` values were removed (breaking change) — they no longer work at runtime or in TypeScript. Always emit the new values in code you write, and migrate any legacy references you find: `'always'` → `'none'`, `'public'` → `'publishable'`, `'public:\u003Cname>'` → `'publishable:\u003Cname>'`. Runtime checks like `ctx.authType === 'public'` must also be updated to `ctx.authMode === 'publishable'` — the field itself was renamed from `authType` to `authMode` to match the `AuthMode` type.\n\n> **Do not use legacy Supabase keys.** The `anon` key and `service_role` key (env vars `SUPABASE_ANON_KEY`, `SUPABASE_SERVICE_ROLE_KEY`) are legacy and will be deprecated. Do not use them unless the user explicitly asks. Always use the new API keys:\n>\n> | Legacy (avoid)              | New (use this)                                       |\n> | --------------------------- | ---------------------------------------------------- |\n> | `SUPABASE_ANON_KEY`         | `SUPABASE_PUBLISHABLE_KEY(S)` (`sb_publishable_...`) |\n> | `SUPABASE_SERVICE_ROLE_KEY` | `SUPABASE_SECRET_KEY(S)` (`sb_secret_...`)           |\n>\n> Do not call `createClient(url, anonKey)` directly — use `@supabase\u002Fserver` auth modes (`auth: 'user'`, `auth: 'secret'`, etc.) which handle key resolution automatically. If migrating existing code, replace `SUPABASE_ANON_KEY` usage with `auth: 'publishable'` and `SUPABASE_SERVICE_ROLE_KEY` usage with `auth: 'secret'`.\n\nServer-side utilities for Supabase. Handles auth, client creation, and context injection so you write business logic, not boilerplate.\n\n## What this package does\n\n- Wraps fetch handlers with credential verification, CORS, and pre-configured Supabase clients\n- Supports 4 auth modes: `user` (JWT), `publishable` (publishable key), `secret` (secret key), `none` (no credentials required)\n- Array syntax (`auth: ['user', 'secret']`) is first-match-wins. A present-but-invalid JWT rejects with `InvalidCredentialsError` — it does not silently downgrade to the next mode.\n- Provides composable core primitives for custom auth flows and framework integration\n- Includes a Hono adapter for per-route auth\n\n## Entry points\n\n| Import                           | Deno \u002F Edge Functions                | Provides                                                                                                          |\n| -------------------------------- | ------------------------------------ | ----------------------------------------------------------------------------------------------------------------- |\n| `@supabase\u002Fserver`               | `npm:@supabase\u002Fserver`               | `withSupabase`, `createSupabaseContext`, types, errors                                                            |\n| `@supabase\u002Fserver\u002Fcore`          | `npm:@supabase\u002Fserver\u002Fcore`          | `verifyAuth`, `verifyCredentials`, `extractCredentials`, `resolveEnv`, `createContextClient`, `createAdminClient` |\n| `@supabase\u002Fserver\u002Fadapters\u002Fhono` | `npm:@supabase\u002Fserver\u002Fadapters\u002Fhono` | `withSupabase` (Hono middleware variant)                                                                          |\n\n## Quick starts\n\n> **Supabase Edge Functions: disable `verify_jwt` for non-user auth.** By default, Supabase Edge Functions require a valid JWT on every request. If your function uses `auth: 'publishable'`, `auth: 'secret'`, or `auth: 'none'`, you must disable the platform-level JWT check in `supabase\u002Fconfig.toml`, otherwise the request will be rejected before it reaches your handler:\n>\n> ```toml\n> [functions.my-function]\n> verify_jwt = false\n> ```\n>\n> Functions using `auth: 'user'` can leave `verify_jwt` enabled (the default) since callers already provide a valid JWT.\n\n### Supabase Edge Functions (Deno)\n\nEnvironment variables are auto-injected by the platform — zero config. **All imports must use the `npm:` specifier.**\n\n```ts\n\u002F\u002F withSupabase — high-level wrapper\nimport { withSupabase } from 'npm:@supabase\u002Fserver'\n\nexport default {\n  fetch: withSupabase({ auth: 'user' }, async (_req, ctx) => {\n    const { data } = await ctx.supabase.from('todos').select()\n    return Response.json(data)\n  }),\n}\n```\n\n```ts\n\u002F\u002F createSupabaseContext — returns { data, error } for custom response control\nimport { createSupabaseContext } from 'npm:@supabase\u002Fserver'\n\nexport default {\n  fetch: async (req: Request) => {\n    const { data: ctx, error } = await createSupabaseContext(req, {\n      auth: 'user',\n    })\n    if (error) {\n      return Response.json(\n        { message: error.message, code: error.code },\n        { status: error.status },\n      )\n    }\n    const { data } = await ctx.supabase.from('todos').select()\n    return Response.json(data)\n  },\n}\n```\n\n### Cloudflare Workers\n\nRequires `nodejs_compat` compatibility flag in `wrangler.toml`, or pass env overrides via the `env` config option. See `docs\u002Fenvironment-variables.md`.\n\n```ts\nimport { withSupabase } from '@supabase\u002Fserver'\n\nexport default {\n  fetch: withSupabase({ auth: 'user' }, async (_req, ctx) => {\n    const { data } = await ctx.supabase.from('todos').select()\n    return Response.json(data)\n  }),\n}\n```\n\n### Hono\n\nCORS is not handled by the adapter — use `hono\u002Fcors` middleware. See `docs\u002Fadapters\u002Fhono.md`.\n\n```ts\n\u002F\u002F Node.js \u002F Bun\nimport { Hono } from 'hono'\nimport { withSupabase } from '@supabase\u002Fserver\u002Fadapters\u002Fhono'\n\nconst app = new Hono()\napp.use('*', withSupabase({ auth: 'user' }))\n\napp.get('\u002Ftodos', async (c) => {\n  const { supabase } = c.var.supabaseContext\n  const { data } = await supabase.from('todos').select()\n  return c.json(data)\n})\n\nexport default app\n```\n\n```ts\n\u002F\u002F Deno \u002F Supabase Edge Functions\nimport { Hono } from 'npm:hono'\nimport { withSupabase } from 'npm:@supabase\u002Fserver\u002Fadapters\u002Fhono'\n\nconst app = new Hono()\napp.use('*', withSupabase({ auth: 'user' }))\n\napp.get('\u002Ftodos', async (c) => {\n  const { supabase } = c.var.supabaseContext\n  const { data } = await supabase.from('todos').select()\n  return c.json(data)\n})\n\nexport default { fetch: app.fetch }\n```\n\n### Cookie-based environments (compose with `@supabase\u002Fssr`)\n\nFor Next.js \u002F SvelteKit \u002F Remix, **compose `@supabase\u002Fserver` with [`@supabase\u002Fssr`](https:\u002F\u002Fgithub.com\u002Fsupabase\u002Fssr)** — they are not replacements for each other. `@supabase\u002Fssr` owns cookies and refresh-token rotation (its middleware is required, otherwise the access token cookie goes stale and verification fails). In your Server Component or Route Handler, use `@supabase\u002Fssr`'s `createServerClient` to read the (middleware-refreshed) session, hand the access token to `verifyCredentials` from `@supabase\u002Fserver\u002Fcore`, then build the typed clients with `createContextClient` + `createAdminClient`. See `docs\u002Fssr-frameworks.md` for the full adapter pattern.\n\n```ts\n\u002F\u002F Key imports for building the adapter\nimport { createServerClient } from '@supabase\u002Fssr'\nimport {\n  verifyCredentials,\n  createContextClient,\n  createAdminClient,\n} from '@supabase\u002Fserver\u002Fcore'\n```\n\n### Server-to-server (secret key auth)\n\nFor internal services, cron jobs, or automation calling your Edge Function. The caller sends the secret key in the `apikey` header. See `docs\u002Fauth-modes.md` for named key syntax.\n\n**Edge Function (Deno):**\n\n```ts\nimport { withSupabase } from 'npm:@supabase\u002Fserver'\n\n\u002F\u002F Only accept the \"automations\" named secret key\nexport default {\n  fetch: withSupabase({ auth: 'secret:automations' }, async (req, ctx) => {\n    const body = await req.json()\n    const { data } = await ctx.supabaseAdmin\n      .from('scheduled_tasks')\n      .insert({ name: body.taskName, scheduled_at: body.scheduledAt })\n    return Response.json({ success: true, data })\n  }),\n}\n```\n\n**Caller (external service):**\n\n```ts\nawait fetch('https:\u002F\u002F\u003Cproject>.supabase.co\u002Ffunctions\u002Fv1\u002Fmy-function', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application\u002Fjson',\n    apikey: 'sb_secret_automations_...', \u002F\u002F the named secret key\n  },\n  body: JSON.stringify({\n    taskName: 'cleanup',\n    scheduledAt: new Date().toISOString(),\n  }),\n})\n```\n\nBare `auth: 'secret'` matches only the `default` key. Use `auth: 'secret:name'` to require a specific named key, or `auth: 'secret:*'` to accept any secret key in the set.\n\n## When to use `auth: 'none'`\n\n> **`auth: 'none'` disables all authentication.** The handler runs for every request with no credential checks. Only use it when auth is genuinely unnecessary — health checks, public status pages, or endpoints with no sensitive data and no side effects.\n\n**Before using `auth: 'none'`, confirm with the user whether the endpoint is truly public.** If not, propose an alternative:\n\n- **Another service or cron job calls this function** — use `auth: 'secret'` or `auth: 'secret:\u003Cname>'` instead. The caller sends the secret key in the `apikey` header.\n- **An external webhook provider calls this function** — use `auth: 'secret'` and have the provider send the secret key, or implement the provider's own signature verification inside the handler.\n\n**Never use `auth: 'none'` for endpoints that read or write user data without verifying who the caller is.**\n\n**On `auth: ['user', 'none']`.** A stale or malformed JWT on such an endpoint is rejected with `InvalidCredentialsError` — it is not silently downgraded to anonymous. Callers that might hold a cached\u002Fexpired token should either omit the `Authorization` header entirely or refresh before calling. If the goal is \"anonymous unless a valid user is signed in,\" this is the correct behavior; if the goal is truly \"accept anything,\" use `auth: 'none'` on its own.\n\n## Edge Function recipes\n\n### Function-to-function calls\n\nOne Edge Function can call another using the admin client. The called function uses `auth: 'secret'` and the caller invokes it via `ctx.supabaseAdmin.functions.invoke()`.\n\n**Config** (`supabase\u002Fconfig.toml`):\n\n```toml\n[functions.process-order]\nverify_jwt = false  # called with secret key, not a user JWT\n```\n\n**Called function** (`supabase\u002Ffunctions\u002Fprocess-order\u002Findex.ts`):\n\n```ts\nimport { withSupabase } from 'npm:@supabase\u002Fserver'\n\nexport default {\n  fetch: withSupabase({ auth: 'secret' }, async (req, ctx) => {\n    const { orderId } = await req.json()\n    const { data } = await ctx.supabaseAdmin\n      .from('orders')\n      .update({ status: 'processing' })\n      .eq('id', orderId)\n      .select()\n      .single()\n    return Response.json(data)\n  }),\n}\n```\n\n**Calling function** (`supabase\u002Ffunctions\u002Fcheckout\u002Findex.ts`):\n\n```ts\nimport { withSupabase } from 'npm:@supabase\u002Fserver'\n\nexport default {\n  fetch: withSupabase({ auth: 'user' }, async (req, ctx) => {\n    const { orderId } = await req.json()\n\n    \u002F\u002F Calls process-order with the secret key automatically\n    const { data, error } = await ctx.supabaseAdmin.functions.invoke(\n      'process-order',\n      { body: { orderId } },\n    )\n\n    if (error) {\n      return Response.json({ error: error.message }, { status: 500 })\n    }\n    return Response.json(data)\n  }),\n}\n```\n\n### Calling from database with pg_net\n\nUse `pg_net` to call Edge Functions directly from SQL. The secret key is stored in Vault so it never appears in queries.\n\n**Prerequisites:**\n\n```sql\n-- 1. Enable the pg_net extension\ncreate extension if not exists pg_net with schema extensions;\n\n-- 2. Store your secret key in Vault\nselect vault.create_secret(\n  'sb_secret_...',        -- your secret key value\n  'supabase_secret_key'   -- a name to reference it by\n);\n```\n\n**Call the function:**\n\n```sql\nselect net.http_post(\n  url := 'https:\u002F\u002F\u003Cproject-ref>.supabase.co\u002Ffunctions\u002Fv1\u002Fprocess-order',\n  headers := jsonb_build_object(\n    'Content-Type', 'application\u002Fjson',\n    'apikey', (\n      select decrypted_secret\n      from vault.decrypted_secrets\n      where name = 'supabase_secret_key'\n    )\n  ),\n  body := jsonb_build_object('orderId', 'order_123')\n);\n```\n\nThe receiving function uses `auth: 'secret'` (see example above). `pg_net` is asynchronous — the HTTP request is queued and executed in the background. Check `net._http_response` for results.\n\n### Stripe webhook\n\nExternal webhook providers like Stripe cannot send your Supabase API keys. Use `auth: 'none'` to skip credential checks, then verify the webhook signature inside the handler.\n\n**Config** (`supabase\u002Fconfig.toml`):\n\n```toml\n[functions.stripe-webhook]\nverify_jwt = false\n```\n\n**Set secrets:**\n\n```bash\nsupabase secrets set STRIPE_SECRET_KEY=sk_live_...\nsupabase secrets set STRIPE_WEBHOOK_SECRET=whsec_...\n```\n\n**Function** (`supabase\u002Ffunctions\u002Fstripe-webhook\u002Findex.ts`):\n\n```ts\nimport { withSupabase } from 'npm:@supabase\u002Fserver'\nimport Stripe from 'npm:stripe'\n\nconst stripe = new Stripe(Deno.env.get('STRIPE_SECRET_KEY')!)\n\nexport default {\n  fetch: withSupabase({ auth: 'none' }, async (req, ctx) => {\n    const body = await req.text()\n    const sig = req.headers.get('stripe-signature')!\n\n    let event: Stripe.Event\n    try {\n      event = await stripe.webhooks.constructEventAsync(\n        body,\n        sig,\n        Deno.env.get('STRIPE_WEBHOOK_SECRET')!,\n      )\n    } catch {\n      return Response.json({ error: 'Invalid signature' }, { status: 401 })\n    }\n\n    switch (event.type) {\n      case 'checkout.session.completed': {\n        const session = event.data.object as Stripe.Checkout.Session\n        await ctx.supabaseAdmin\n          .from('orders')\n          .update({ status: 'paid' })\n          .eq('stripe_session_id', session.id)\n        break\n      }\n    }\n\n    return Response.json({ received: true })\n  }),\n}\n```\n\n### Migrating legacy Edge Functions\n\nIf you encounter code using `SUPABASE_ANON_KEY`, `SUPABASE_SERVICE_ROLE_KEY`, `Deno.serve`, imports from `esm.sh\u002F@supabase` or `deno.land\u002Fstd`, suggest migrating to `@supabase\u002Fserver`. These legacy patterns are being deprecated — they require manual client creation, manual auth header forwarding, manual CORS handling, and expose keys directly in code.\n\n**How to recognize legacy code:**\n\n- `import { serve } from \"https:\u002F\u002Fdeno.land\u002Fstd\u002F...\"` — oldest pattern, uses deprecated Deno standard library\n- `import { createClient } from \"https:\u002F\u002Fesm.sh\u002F@supabase\u002Fsupabase-js\"` — old CDN import, not compatible with modern runtimes\n- `Deno.serve(async (req) => { ... })` with manual `createClient()` — current but verbose, requires manual auth forwarding\n- `Deno.env.get('SUPABASE_ANON_KEY')` or `SUPABASE_SERVICE_ROLE_KEY` — legacy keys that will be removed\n\n**Before** (legacy — manual client, manual auth forwarding):\n\nLegacy keys will be removed, making this code stop working. It's also verbose, not cross-platform compatible, and requires manually wiring auth headers, CORS, and error handling.\n\n```ts\nimport { createClient } from 'npm:@supabase\u002Fsupabase-js@2'\n\nDeno.serve(async (req: Request) => {\n  const supabaseClient = createClient(\n    Deno.env.get('SUPABASE_URL') ?? '',\n    Deno.env.get('SUPABASE_ANON_KEY') ?? '',\n    {\n      global: { headers: { Authorization: req.headers.get('Authorization')! } },\n    },\n  )\n  const { data } = await supabaseClient.from('orders').select('*')\n  return Response.json(data)\n})\n```\n\n**After** (new — auth, clients, and CORS handled automatically):\n\nUses the latest API keys, works across runtimes (Deno, Node.js, Cloudflare), and handles auth verification, client creation, and CORS in a single line.\n\n```ts\nimport { withSupabase } from 'npm:@supabase\u002Fserver'\n\nexport default {\n  fetch: withSupabase({ auth: 'user' }, async (_req, ctx) => {\n    const { data } = await ctx.supabase.from('orders').select('*')\n    return Response.json(data)\n  }),\n}\n```\n\nThe migration mapping: `SUPABASE_ANON_KEY` with manual auth header → `auth: 'user'`, `SUPABASE_ANON_KEY` without auth → `auth: 'publishable'`. For `SUPABASE_SERVICE_ROLE_KEY`, it depends on intent: if the legacy code validates the incoming key to protect the endpoint (e.g., `req.headers.get('apikey') === serviceRoleKey`), use `auth: 'secret'`. If it only uses the key to create an admin client for elevated DB access, no specific auth mode is needed — `ctx.supabaseAdmin` is always available regardless of auth mode.\n\n## Documentation\n\nThe full documentation lives in the `docs\u002F` directory of the `@supabase\u002Fserver` package. To read a doc, find the package location first:\n\n- **If working inside the SDK repo:** `docs\u002F` is at the project root.\n- **If the package is installed as a dependency:** look in `node_modules\u002F@supabase\u002Fserver\u002Fdocs\u002F`.\n\n| Question                                                            | Doc file                        |\n| ------------------------------------------------------------------- | ------------------------------- |\n| How do I create a basic endpoint?                                   | `docs\u002Fgetting-started.md`       |\n| What auth modes are available? Array syntax? Named keys?            | `docs\u002Fauth-modes.md`            |\n| Which framework adapters exist? How do I contribute one?            | `src\u002Fadapters\u002FREADME.md`        |\n| How do I use this with Hono?                                        | `docs\u002Fadapters\u002Fhono.md`         |\n| How do I use this with H3 \u002F Nuxt?                                   | `docs\u002Fadapters\u002Fh3.md`           |\n| How do I use low-level primitives for custom flows?                 | `docs\u002Fcore-primitives.md`       |\n| How do environment variables work across runtimes?                  | `docs\u002Fenvironment-variables.md` |\n| How do I handle errors? What codes exist?                           | `docs\u002Ferror-handling.md`        |\n| How do I get typed database queries?                                | `docs\u002Ftypescript-generics.md`   |\n| How do I use this with `@supabase\u002Fssr` (Next.js, SvelteKit, Remix)? | `docs\u002Fssr-frameworks.md`        |\n| What's the complete API surface?                                    | `docs\u002Fapi-reference.md`         |\n| What security decisions does this package make?                     | `docs\u002Fsecurity.md`              |\n",{"data":35,"body":36},{"name":4,"description":6},{"type":37,"children":38},"root",[39,48,75,88,183,349,540,544,551,629,635,796,802,902,909,927,1268,1785,1791,1827,2102,2108,2128,2586,3052,3065,3152,3273,3279,3300,3308,3726,3734,4034,4070,4081,4099,4116,4167,4182,4221,4227,4233,4252,4268,4291,4307,4739,4755,5254,5260,5273,5281,5353,5361,5462,5489,5495,5507,5521,5543,5551,5602,5618,6644,6650,6697,6705,6766,6776,6781,7267,7277,7282,7573,7635,7641,7661,7697,7926],{"type":40,"tag":41,"props":42,"children":44},"element","h1",{"id":43},"supabaseserver",[45],{"type":46,"value":47},"text","@supabase\u002Fserver",{"type":40,"tag":49,"props":50,"children":51},"blockquote",{},[52],{"type":40,"tag":53,"props":54,"children":55},"p",{},[56,62,64,73],{"type":40,"tag":57,"props":58,"children":59},"strong",{},[60],{"type":46,"value":61},"v1.0 — Public Beta.",{"type":46,"value":63}," First stable release under SemVer: breaking changes only ship as a major bump. The package is still early — expect new adapters, ergonomic improvements, and features to land frequently in minor releases. If you encounter a bug or rough edge while writing code with it, surface it to the user with a pointer to ",{"type":40,"tag":65,"props":66,"children":70},"a",{"href":67,"rel":68},"https:\u002F\u002Fgithub.com\u002Fsupabase\u002Fserver\u002Fissues",[69],"nofollow",[71],{"type":46,"value":72},"open an issue",{"type":46,"value":74},".",{"type":40,"tag":49,"props":76,"children":77},{},[78],{"type":40,"tag":53,"props":79,"children":80},{},[81,86],{"type":40,"tag":57,"props":82,"children":83},{},[84],{"type":46,"value":85},"This is a brand new package.",{"type":46,"value":87}," There is no information available online yet — no blog posts, no Stack Overflow answers, no tutorials. Do not search the web for usage examples. Rely exclusively on the documentation files listed below and the source code in this repository.",{"type":40,"tag":49,"props":89,"children":90},{},[91],{"type":40,"tag":53,"props":92,"children":93},{},[94,114,116,121,123,128,130,135,137,143,145,157,159,165,167,173,175,181],{"type":40,"tag":57,"props":95,"children":96},{},[97,99,105,107,113],{"type":46,"value":98},"The config option is ",{"type":40,"tag":100,"props":101,"children":103},"code",{"className":102},[],[104],{"type":46,"value":18},{"type":46,"value":106},", not ",{"type":40,"tag":100,"props":108,"children":110},{"className":109},[],[111],{"type":46,"value":112},"allow",{"type":46,"value":74},{"type":46,"value":115}," ",{"type":40,"tag":100,"props":117,"children":119},{"className":118},[],[120],{"type":46,"value":112},{"type":46,"value":122}," was renamed to ",{"type":40,"tag":100,"props":124,"children":126},{"className":125},[],[127],{"type":46,"value":18},{"type":46,"value":129}," to match CLI terminology and read more naturally. The legacy ",{"type":40,"tag":100,"props":131,"children":133},{"className":132},[],[134],{"type":46,"value":112},{"type":46,"value":136}," key still works (with a one-time ",{"type":40,"tag":100,"props":138,"children":140},{"className":139},[],[141],{"type":46,"value":142},"console.warn",{"type":46,"value":144},") but is deprecated and will be removed in a future major release. ",{"type":40,"tag":57,"props":146,"children":147},{},[148,150,155],{"type":46,"value":149},"Always emit ",{"type":40,"tag":100,"props":151,"children":153},{"className":152},[],[154],{"type":46,"value":18},{"type":46,"value":156}," in new code",{"type":46,"value":158}," — e.g. ",{"type":40,"tag":100,"props":160,"children":162},{"className":161},[],[163],{"type":46,"value":164},"withSupabase({ auth: 'user' }, ...)",{"type":46,"value":166},". If you encounter ",{"type":40,"tag":100,"props":168,"children":170},{"className":169},[],[171],{"type":46,"value":172},"allow:",{"type":46,"value":174}," in existing code, migrate it to ",{"type":40,"tag":100,"props":176,"children":178},{"className":177},[],[179],{"type":46,"value":180},"auth:",{"type":46,"value":182}," (find-and-replace, the values are identical).",{"type":40,"tag":49,"props":184,"children":185},{},[186],{"type":40,"tag":53,"props":187,"children":188},{},[189,225,227,233,235,240,241,247,248,253,255,260,262,267,269,274,276,281,282,287,288,293,294,300,301,307,309,315,317,323,325,331,333,339,341,347],{"type":40,"tag":57,"props":190,"children":191},{},[192,194,200,202,208,210,216,217,223],{"type":46,"value":193},"Auth mode values: ",{"type":40,"tag":100,"props":195,"children":197},{"className":196},[],[198],{"type":46,"value":199},"'none'",{"type":46,"value":201}," (not ",{"type":40,"tag":100,"props":203,"children":205},{"className":204},[],[206],{"type":46,"value":207},"'always'",{"type":46,"value":209},"), ",{"type":40,"tag":100,"props":211,"children":213},{"className":212},[],[214],{"type":46,"value":215},"'publishable'",{"type":46,"value":201},{"type":40,"tag":100,"props":218,"children":220},{"className":219},[],[221],{"type":46,"value":222},"'public'",{"type":46,"value":224},").",{"type":46,"value":226}," The four valid values are ",{"type":40,"tag":100,"props":228,"children":230},{"className":229},[],[231],{"type":46,"value":232},"'user'",{"type":46,"value":234},", ",{"type":40,"tag":100,"props":236,"children":238},{"className":237},[],[239],{"type":46,"value":215},{"type":46,"value":234},{"type":40,"tag":100,"props":242,"children":244},{"className":243},[],[245],{"type":46,"value":246},"'secret'",{"type":46,"value":234},{"type":40,"tag":100,"props":249,"children":251},{"className":250},[],[252],{"type":46,"value":199},{"type":46,"value":254},". The legacy ",{"type":40,"tag":100,"props":256,"children":258},{"className":257},[],[259],{"type":46,"value":207},{"type":46,"value":261}," and ",{"type":40,"tag":100,"props":263,"children":265},{"className":264},[],[266],{"type":46,"value":222},{"type":46,"value":268}," values were removed (breaking change) — they no longer work at runtime or in TypeScript. Always emit the new values in code you write, and migrate any legacy references you find: ",{"type":40,"tag":100,"props":270,"children":272},{"className":271},[],[273],{"type":46,"value":207},{"type":46,"value":275}," → ",{"type":40,"tag":100,"props":277,"children":279},{"className":278},[],[280],{"type":46,"value":199},{"type":46,"value":234},{"type":40,"tag":100,"props":283,"children":285},{"className":284},[],[286],{"type":46,"value":222},{"type":46,"value":275},{"type":40,"tag":100,"props":289,"children":291},{"className":290},[],[292],{"type":46,"value":215},{"type":46,"value":234},{"type":40,"tag":100,"props":295,"children":297},{"className":296},[],[298],{"type":46,"value":299},"'public:\u003Cname>'",{"type":46,"value":275},{"type":40,"tag":100,"props":302,"children":304},{"className":303},[],[305],{"type":46,"value":306},"'publishable:\u003Cname>'",{"type":46,"value":308},". Runtime checks like ",{"type":40,"tag":100,"props":310,"children":312},{"className":311},[],[313],{"type":46,"value":314},"ctx.authType === 'public'",{"type":46,"value":316}," must also be updated to ",{"type":40,"tag":100,"props":318,"children":320},{"className":319},[],[321],{"type":46,"value":322},"ctx.authMode === 'publishable'",{"type":46,"value":324}," — the field itself was renamed from ",{"type":40,"tag":100,"props":326,"children":328},{"className":327},[],[329],{"type":46,"value":330},"authType",{"type":46,"value":332}," to ",{"type":40,"tag":100,"props":334,"children":336},{"className":335},[],[337],{"type":46,"value":338},"authMode",{"type":46,"value":340}," to match the ",{"type":40,"tag":100,"props":342,"children":344},{"className":343},[],[345],{"type":46,"value":346},"AuthMode",{"type":46,"value":348}," type.",{"type":40,"tag":49,"props":350,"children":351},{},[352,393,479],{"type":40,"tag":53,"props":353,"children":354},{},[355,360,362,368,370,376,378,384,385,391],{"type":40,"tag":57,"props":356,"children":357},{},[358],{"type":46,"value":359},"Do not use legacy Supabase keys.",{"type":46,"value":361}," The ",{"type":40,"tag":100,"props":363,"children":365},{"className":364},[],[366],{"type":46,"value":367},"anon",{"type":46,"value":369}," key and ",{"type":40,"tag":100,"props":371,"children":373},{"className":372},[],[374],{"type":46,"value":375},"service_role",{"type":46,"value":377}," key (env vars ",{"type":40,"tag":100,"props":379,"children":381},{"className":380},[],[382],{"type":46,"value":383},"SUPABASE_ANON_KEY",{"type":46,"value":234},{"type":40,"tag":100,"props":386,"children":388},{"className":387},[],[389],{"type":46,"value":390},"SUPABASE_SERVICE_ROLE_KEY",{"type":46,"value":392},") are legacy and will be deprecated. Do not use them unless the user explicitly asks. Always use the new API keys:",{"type":40,"tag":394,"props":395,"children":396},"table",{},[397,416],{"type":40,"tag":398,"props":399,"children":400},"thead",{},[401],{"type":40,"tag":402,"props":403,"children":404},"tr",{},[405,411],{"type":40,"tag":406,"props":407,"children":408},"th",{},[409],{"type":46,"value":410},"Legacy (avoid)",{"type":40,"tag":406,"props":412,"children":413},{},[414],{"type":46,"value":415},"New (use this)",{"type":40,"tag":417,"props":418,"children":419},"tbody",{},[420,451],{"type":40,"tag":402,"props":421,"children":422},{},[423,432],{"type":40,"tag":424,"props":425,"children":426},"td",{},[427],{"type":40,"tag":100,"props":428,"children":430},{"className":429},[],[431],{"type":46,"value":383},{"type":40,"tag":424,"props":433,"children":434},{},[435,441,443,449],{"type":40,"tag":100,"props":436,"children":438},{"className":437},[],[439],{"type":46,"value":440},"SUPABASE_PUBLISHABLE_KEY(S)",{"type":46,"value":442}," (",{"type":40,"tag":100,"props":444,"children":446},{"className":445},[],[447],{"type":46,"value":448},"sb_publishable_...",{"type":46,"value":450},")",{"type":40,"tag":402,"props":452,"children":453},{},[454,462],{"type":40,"tag":424,"props":455,"children":456},{},[457],{"type":40,"tag":100,"props":458,"children":460},{"className":459},[],[461],{"type":46,"value":390},{"type":40,"tag":424,"props":463,"children":464},{},[465,471,472,478],{"type":40,"tag":100,"props":466,"children":468},{"className":467},[],[469],{"type":46,"value":470},"SUPABASE_SECRET_KEY(S)",{"type":46,"value":442},{"type":40,"tag":100,"props":473,"children":475},{"className":474},[],[476],{"type":46,"value":477},"sb_secret_...",{"type":46,"value":450},{"type":40,"tag":53,"props":480,"children":481},{},[482,484,490,492,497,499,505,506,512,514,519,521,527,528,533,534,539],{"type":46,"value":483},"Do not call ",{"type":40,"tag":100,"props":485,"children":487},{"className":486},[],[488],{"type":46,"value":489},"createClient(url, anonKey)",{"type":46,"value":491}," directly — use ",{"type":40,"tag":100,"props":493,"children":495},{"className":494},[],[496],{"type":46,"value":47},{"type":46,"value":498}," auth modes (",{"type":40,"tag":100,"props":500,"children":502},{"className":501},[],[503],{"type":46,"value":504},"auth: 'user'",{"type":46,"value":234},{"type":40,"tag":100,"props":507,"children":509},{"className":508},[],[510],{"type":46,"value":511},"auth: 'secret'",{"type":46,"value":513},", etc.) which handle key resolution automatically. If migrating existing code, replace ",{"type":40,"tag":100,"props":515,"children":517},{"className":516},[],[518],{"type":46,"value":383},{"type":46,"value":520}," usage with ",{"type":40,"tag":100,"props":522,"children":524},{"className":523},[],[525],{"type":46,"value":526},"auth: 'publishable'",{"type":46,"value":261},{"type":40,"tag":100,"props":529,"children":531},{"className":530},[],[532],{"type":46,"value":390},{"type":46,"value":520},{"type":40,"tag":100,"props":535,"children":537},{"className":536},[],[538],{"type":46,"value":511},{"type":46,"value":74},{"type":40,"tag":53,"props":541,"children":542},{},[543],{"type":46,"value":31},{"type":40,"tag":545,"props":546,"children":548},"h2",{"id":547},"what-this-package-does",[549],{"type":46,"value":550},"What this package does",{"type":40,"tag":552,"props":553,"children":554},"ul",{},[555,561,598,619,624],{"type":40,"tag":556,"props":557,"children":558},"li",{},[559],{"type":46,"value":560},"Wraps fetch handlers with credential verification, CORS, and pre-configured Supabase clients",{"type":40,"tag":556,"props":562,"children":563},{},[564,566,572,574,580,582,588,590,596],{"type":46,"value":565},"Supports 4 auth modes: ",{"type":40,"tag":100,"props":567,"children":569},{"className":568},[],[570],{"type":46,"value":571},"user",{"type":46,"value":573}," (JWT), ",{"type":40,"tag":100,"props":575,"children":577},{"className":576},[],[578],{"type":46,"value":579},"publishable",{"type":46,"value":581}," (publishable key), ",{"type":40,"tag":100,"props":583,"children":585},{"className":584},[],[586],{"type":46,"value":587},"secret",{"type":46,"value":589}," (secret key), ",{"type":40,"tag":100,"props":591,"children":593},{"className":592},[],[594],{"type":46,"value":595},"none",{"type":46,"value":597}," (no credentials required)",{"type":40,"tag":556,"props":599,"children":600},{},[601,603,609,611,617],{"type":46,"value":602},"Array syntax (",{"type":40,"tag":100,"props":604,"children":606},{"className":605},[],[607],{"type":46,"value":608},"auth: ['user', 'secret']",{"type":46,"value":610},") is first-match-wins. A present-but-invalid JWT rejects with ",{"type":40,"tag":100,"props":612,"children":614},{"className":613},[],[615],{"type":46,"value":616},"InvalidCredentialsError",{"type":46,"value":618}," — it does not silently downgrade to the next mode.",{"type":40,"tag":556,"props":620,"children":621},{},[622],{"type":46,"value":623},"Provides composable core primitives for custom auth flows and framework integration",{"type":40,"tag":556,"props":625,"children":626},{},[627],{"type":46,"value":628},"Includes a Hono adapter for per-route auth",{"type":40,"tag":545,"props":630,"children":632},{"id":631},"entry-points",[633],{"type":46,"value":634},"Entry points",{"type":40,"tag":394,"props":636,"children":637},{},[638,659],{"type":40,"tag":398,"props":639,"children":640},{},[641],{"type":40,"tag":402,"props":642,"children":643},{},[644,649,654],{"type":40,"tag":406,"props":645,"children":646},{},[647],{"type":46,"value":648},"Import",{"type":40,"tag":406,"props":650,"children":651},{},[652],{"type":46,"value":653},"Deno \u002F Edge Functions",{"type":40,"tag":406,"props":655,"children":656},{},[657],{"type":46,"value":658},"Provides",{"type":40,"tag":417,"props":660,"children":661},{},[662,700,765],{"type":40,"tag":402,"props":663,"children":664},{},[665,673,682],{"type":40,"tag":424,"props":666,"children":667},{},[668],{"type":40,"tag":100,"props":669,"children":671},{"className":670},[],[672],{"type":46,"value":47},{"type":40,"tag":424,"props":674,"children":675},{},[676],{"type":40,"tag":100,"props":677,"children":679},{"className":678},[],[680],{"type":46,"value":681},"npm:@supabase\u002Fserver",{"type":40,"tag":424,"props":683,"children":684},{},[685,691,692,698],{"type":40,"tag":100,"props":686,"children":688},{"className":687},[],[689],{"type":46,"value":690},"withSupabase",{"type":46,"value":234},{"type":40,"tag":100,"props":693,"children":695},{"className":694},[],[696],{"type":46,"value":697},"createSupabaseContext",{"type":46,"value":699},", types, errors",{"type":40,"tag":402,"props":701,"children":702},{},[703,712,721],{"type":40,"tag":424,"props":704,"children":705},{},[706],{"type":40,"tag":100,"props":707,"children":709},{"className":708},[],[710],{"type":46,"value":711},"@supabase\u002Fserver\u002Fcore",{"type":40,"tag":424,"props":713,"children":714},{},[715],{"type":40,"tag":100,"props":716,"children":718},{"className":717},[],[719],{"type":46,"value":720},"npm:@supabase\u002Fserver\u002Fcore",{"type":40,"tag":424,"props":722,"children":723},{},[724,730,731,737,738,744,745,751,752,758,759],{"type":40,"tag":100,"props":725,"children":727},{"className":726},[],[728],{"type":46,"value":729},"verifyAuth",{"type":46,"value":234},{"type":40,"tag":100,"props":732,"children":734},{"className":733},[],[735],{"type":46,"value":736},"verifyCredentials",{"type":46,"value":234},{"type":40,"tag":100,"props":739,"children":741},{"className":740},[],[742],{"type":46,"value":743},"extractCredentials",{"type":46,"value":234},{"type":40,"tag":100,"props":746,"children":748},{"className":747},[],[749],{"type":46,"value":750},"resolveEnv",{"type":46,"value":234},{"type":40,"tag":100,"props":753,"children":755},{"className":754},[],[756],{"type":46,"value":757},"createContextClient",{"type":46,"value":234},{"type":40,"tag":100,"props":760,"children":762},{"className":761},[],[763],{"type":46,"value":764},"createAdminClient",{"type":40,"tag":402,"props":766,"children":767},{},[768,777,786],{"type":40,"tag":424,"props":769,"children":770},{},[771],{"type":40,"tag":100,"props":772,"children":774},{"className":773},[],[775],{"type":46,"value":776},"@supabase\u002Fserver\u002Fadapters\u002Fhono",{"type":40,"tag":424,"props":778,"children":779},{},[780],{"type":40,"tag":100,"props":781,"children":783},{"className":782},[],[784],{"type":46,"value":785},"npm:@supabase\u002Fserver\u002Fadapters\u002Fhono",{"type":40,"tag":424,"props":787,"children":788},{},[789,794],{"type":40,"tag":100,"props":790,"children":792},{"className":791},[],[793],{"type":46,"value":690},{"type":46,"value":795}," (Hono middleware variant)",{"type":40,"tag":545,"props":797,"children":799},{"id":798},"quick-starts",[800],{"type":46,"value":801},"Quick starts",{"type":40,"tag":49,"props":803,"children":804},{},[805,852,883],{"type":40,"tag":53,"props":806,"children":807},{},[808,821,823,828,829,834,836,842,844,850],{"type":40,"tag":57,"props":809,"children":810},{},[811,813,819],{"type":46,"value":812},"Supabase Edge Functions: disable ",{"type":40,"tag":100,"props":814,"children":816},{"className":815},[],[817],{"type":46,"value":818},"verify_jwt",{"type":46,"value":820}," for non-user auth.",{"type":46,"value":822}," By default, Supabase Edge Functions require a valid JWT on every request. If your function uses ",{"type":40,"tag":100,"props":824,"children":826},{"className":825},[],[827],{"type":46,"value":526},{"type":46,"value":234},{"type":40,"tag":100,"props":830,"children":832},{"className":831},[],[833],{"type":46,"value":511},{"type":46,"value":835},", or ",{"type":40,"tag":100,"props":837,"children":839},{"className":838},[],[840],{"type":46,"value":841},"auth: 'none'",{"type":46,"value":843},", you must disable the platform-level JWT check in ",{"type":40,"tag":100,"props":845,"children":847},{"className":846},[],[848],{"type":46,"value":849},"supabase\u002Fconfig.toml",{"type":46,"value":851},", otherwise the request will be rejected before it reaches your handler:",{"type":40,"tag":853,"props":854,"children":859},"pre",{"className":855,"code":856,"language":857,"meta":858,"style":858},"language-toml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[functions.my-function]\nverify_jwt = false\n","toml","",[860],{"type":40,"tag":100,"props":861,"children":862},{"__ignoreMap":858},[863,874],{"type":40,"tag":864,"props":865,"children":868},"span",{"class":866,"line":867},"line",1,[869],{"type":40,"tag":864,"props":870,"children":871},{},[872],{"type":46,"value":873},"[functions.my-function]\n",{"type":40,"tag":864,"props":875,"children":877},{"class":866,"line":876},2,[878],{"type":40,"tag":864,"props":879,"children":880},{},[881],{"type":46,"value":882},"verify_jwt = false\n",{"type":40,"tag":53,"props":884,"children":885},{},[886,888,893,895,900],{"type":46,"value":887},"Functions using ",{"type":40,"tag":100,"props":889,"children":891},{"className":890},[],[892],{"type":46,"value":504},{"type":46,"value":894}," can leave ",{"type":40,"tag":100,"props":896,"children":898},{"className":897},[],[899],{"type":46,"value":818},{"type":46,"value":901}," enabled (the default) since callers already provide a valid JWT.",{"type":40,"tag":903,"props":904,"children":906},"h3",{"id":905},"supabase-edge-functions-deno",[907],{"type":46,"value":908},"Supabase Edge Functions (Deno)",{"type":40,"tag":53,"props":910,"children":911},{},[912,914],{"type":46,"value":913},"Environment variables are auto-injected by the platform — zero config. ",{"type":40,"tag":57,"props":915,"children":916},{},[917,919,925],{"type":46,"value":918},"All imports must use the ",{"type":40,"tag":100,"props":920,"children":922},{"className":921},[],[923],{"type":46,"value":924},"npm:",{"type":46,"value":926}," specifier.",{"type":40,"tag":853,"props":928,"children":932},{"className":929,"code":930,"language":931,"meta":858,"style":858},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F withSupabase — high-level wrapper\nimport { withSupabase } from 'npm:@supabase\u002Fserver'\n\nexport default {\n  fetch: withSupabase({ auth: 'user' }, async (_req, ctx) => {\n    const { data } = await ctx.supabase.from('todos').select()\n    return Response.json(data)\n  }),\n}\n","ts",[933],{"type":40,"tag":100,"props":934,"children":935},{"__ignoreMap":858},[936,945,991,1001,1020,1116,1204,1241,1259],{"type":40,"tag":864,"props":937,"children":938},{"class":866,"line":867},[939],{"type":40,"tag":864,"props":940,"children":942},{"style":941},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[943],{"type":46,"value":944},"\u002F\u002F withSupabase — high-level wrapper\n",{"type":40,"tag":864,"props":946,"children":947},{"class":866,"line":876},[948,954,960,966,971,976,981,986],{"type":40,"tag":864,"props":949,"children":951},{"style":950},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[952],{"type":46,"value":953},"import",{"type":40,"tag":864,"props":955,"children":957},{"style":956},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[958],{"type":46,"value":959}," {",{"type":40,"tag":864,"props":961,"children":963},{"style":962},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[964],{"type":46,"value":965}," withSupabase",{"type":40,"tag":864,"props":967,"children":968},{"style":956},[969],{"type":46,"value":970}," }",{"type":40,"tag":864,"props":972,"children":973},{"style":950},[974],{"type":46,"value":975}," from",{"type":40,"tag":864,"props":977,"children":978},{"style":956},[979],{"type":46,"value":980}," '",{"type":40,"tag":864,"props":982,"children":984},{"style":983},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[985],{"type":46,"value":681},{"type":40,"tag":864,"props":987,"children":988},{"style":956},[989],{"type":46,"value":990},"'\n",{"type":40,"tag":864,"props":992,"children":994},{"class":866,"line":993},3,[995],{"type":40,"tag":864,"props":996,"children":998},{"emptyLinePlaceholder":997},true,[999],{"type":46,"value":1000},"\n",{"type":40,"tag":864,"props":1002,"children":1004},{"class":866,"line":1003},4,[1005,1010,1015],{"type":40,"tag":864,"props":1006,"children":1007},{"style":950},[1008],{"type":46,"value":1009},"export",{"type":40,"tag":864,"props":1011,"children":1012},{"style":950},[1013],{"type":46,"value":1014}," default",{"type":40,"tag":864,"props":1016,"children":1017},{"style":956},[1018],{"type":46,"value":1019}," {\n",{"type":40,"tag":864,"props":1021,"children":1023},{"class":866,"line":1022},5,[1024,1030,1035,1040,1045,1050,1055,1059,1063,1067,1072,1077,1083,1087,1093,1098,1103,1107,1112],{"type":40,"tag":864,"props":1025,"children":1027},{"style":1026},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[1028],{"type":46,"value":1029},"  fetch",{"type":40,"tag":864,"props":1031,"children":1032},{"style":956},[1033],{"type":46,"value":1034},":",{"type":40,"tag":864,"props":1036,"children":1038},{"style":1037},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[1039],{"type":46,"value":965},{"type":40,"tag":864,"props":1041,"children":1042},{"style":962},[1043],{"type":46,"value":1044},"(",{"type":40,"tag":864,"props":1046,"children":1047},{"style":956},[1048],{"type":46,"value":1049},"{",{"type":40,"tag":864,"props":1051,"children":1052},{"style":1026},[1053],{"type":46,"value":1054}," auth",{"type":40,"tag":864,"props":1056,"children":1057},{"style":956},[1058],{"type":46,"value":1034},{"type":40,"tag":864,"props":1060,"children":1061},{"style":956},[1062],{"type":46,"value":980},{"type":40,"tag":864,"props":1064,"children":1065},{"style":983},[1066],{"type":46,"value":571},{"type":40,"tag":864,"props":1068,"children":1069},{"style":956},[1070],{"type":46,"value":1071},"'",{"type":40,"tag":864,"props":1073,"children":1074},{"style":956},[1075],{"type":46,"value":1076}," },",{"type":40,"tag":864,"props":1078,"children":1080},{"style":1079},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[1081],{"type":46,"value":1082}," async",{"type":40,"tag":864,"props":1084,"children":1085},{"style":956},[1086],{"type":46,"value":442},{"type":40,"tag":864,"props":1088,"children":1090},{"style":1089},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[1091],{"type":46,"value":1092},"_req",{"type":40,"tag":864,"props":1094,"children":1095},{"style":956},[1096],{"type":46,"value":1097},",",{"type":40,"tag":864,"props":1099,"children":1100},{"style":1089},[1101],{"type":46,"value":1102}," ctx",{"type":40,"tag":864,"props":1104,"children":1105},{"style":956},[1106],{"type":46,"value":450},{"type":40,"tag":864,"props":1108,"children":1109},{"style":1079},[1110],{"type":46,"value":1111}," =>",{"type":40,"tag":864,"props":1113,"children":1114},{"style":956},[1115],{"type":46,"value":1019},{"type":40,"tag":864,"props":1117,"children":1119},{"class":866,"line":1118},6,[1120,1125,1129,1134,1138,1143,1148,1152,1156,1160,1164,1169,1173,1177,1182,1186,1190,1194,1199],{"type":40,"tag":864,"props":1121,"children":1122},{"style":1079},[1123],{"type":46,"value":1124},"    const",{"type":40,"tag":864,"props":1126,"children":1127},{"style":956},[1128],{"type":46,"value":959},{"type":40,"tag":864,"props":1130,"children":1131},{"style":962},[1132],{"type":46,"value":1133}," data",{"type":40,"tag":864,"props":1135,"children":1136},{"style":956},[1137],{"type":46,"value":970},{"type":40,"tag":864,"props":1139,"children":1140},{"style":956},[1141],{"type":46,"value":1142}," =",{"type":40,"tag":864,"props":1144,"children":1145},{"style":950},[1146],{"type":46,"value":1147}," await",{"type":40,"tag":864,"props":1149,"children":1150},{"style":962},[1151],{"type":46,"value":1102},{"type":40,"tag":864,"props":1153,"children":1154},{"style":956},[1155],{"type":46,"value":74},{"type":40,"tag":864,"props":1157,"children":1158},{"style":962},[1159],{"type":46,"value":8},{"type":40,"tag":864,"props":1161,"children":1162},{"style":956},[1163],{"type":46,"value":74},{"type":40,"tag":864,"props":1165,"children":1166},{"style":1037},[1167],{"type":46,"value":1168},"from",{"type":40,"tag":864,"props":1170,"children":1171},{"style":1026},[1172],{"type":46,"value":1044},{"type":40,"tag":864,"props":1174,"children":1175},{"style":956},[1176],{"type":46,"value":1071},{"type":40,"tag":864,"props":1178,"children":1179},{"style":983},[1180],{"type":46,"value":1181},"todos",{"type":40,"tag":864,"props":1183,"children":1184},{"style":956},[1185],{"type":46,"value":1071},{"type":40,"tag":864,"props":1187,"children":1188},{"style":1026},[1189],{"type":46,"value":450},{"type":40,"tag":864,"props":1191,"children":1192},{"style":956},[1193],{"type":46,"value":74},{"type":40,"tag":864,"props":1195,"children":1196},{"style":1037},[1197],{"type":46,"value":1198},"select",{"type":40,"tag":864,"props":1200,"children":1201},{"style":1026},[1202],{"type":46,"value":1203},"()\n",{"type":40,"tag":864,"props":1205,"children":1207},{"class":866,"line":1206},7,[1208,1213,1218,1222,1227,1231,1236],{"type":40,"tag":864,"props":1209,"children":1210},{"style":950},[1211],{"type":46,"value":1212},"    return",{"type":40,"tag":864,"props":1214,"children":1215},{"style":962},[1216],{"type":46,"value":1217}," Response",{"type":40,"tag":864,"props":1219,"children":1220},{"style":956},[1221],{"type":46,"value":74},{"type":40,"tag":864,"props":1223,"children":1224},{"style":1037},[1225],{"type":46,"value":1226},"json",{"type":40,"tag":864,"props":1228,"children":1229},{"style":1026},[1230],{"type":46,"value":1044},{"type":40,"tag":864,"props":1232,"children":1233},{"style":962},[1234],{"type":46,"value":1235},"data",{"type":40,"tag":864,"props":1237,"children":1238},{"style":1026},[1239],{"type":46,"value":1240},")\n",{"type":40,"tag":864,"props":1242,"children":1244},{"class":866,"line":1243},8,[1245,1250,1254],{"type":40,"tag":864,"props":1246,"children":1247},{"style":956},[1248],{"type":46,"value":1249},"  }",{"type":40,"tag":864,"props":1251,"children":1252},{"style":962},[1253],{"type":46,"value":450},{"type":40,"tag":864,"props":1255,"children":1256},{"style":956},[1257],{"type":46,"value":1258},",\n",{"type":40,"tag":864,"props":1260,"children":1262},{"class":866,"line":1261},9,[1263],{"type":40,"tag":864,"props":1264,"children":1265},{"style":956},[1266],{"type":46,"value":1267},"}\n",{"type":40,"tag":853,"props":1269,"children":1271},{"className":929,"code":1270,"language":931,"meta":858,"style":858},"\u002F\u002F createSupabaseContext — returns { data, error } for custom response control\nimport { createSupabaseContext } from 'npm:@supabase\u002Fserver'\n\nexport default {\n  fetch: async (req: Request) => {\n    const { data: ctx, error } = await createSupabaseContext(req, {\n      auth: 'user',\n    })\n    if (error) {\n      return Response.json(\n        { message: error.message, code: error.code },\n        { status: error.status },\n      )\n    }\n    const { data } = await ctx.supabase.from('todos').select()\n    return Response.json(data)\n  },\n}\n",[1272],{"type":40,"tag":100,"props":1273,"children":1274},{"__ignoreMap":858},[1275,1283,1319,1326,1341,1387,1451,1479,1491,1518,1544,1605,1639,1647,1656,1736,1768,1777],{"type":40,"tag":864,"props":1276,"children":1277},{"class":866,"line":867},[1278],{"type":40,"tag":864,"props":1279,"children":1280},{"style":941},[1281],{"type":46,"value":1282},"\u002F\u002F createSupabaseContext — returns { data, error } for custom response control\n",{"type":40,"tag":864,"props":1284,"children":1285},{"class":866,"line":876},[1286,1290,1294,1299,1303,1307,1311,1315],{"type":40,"tag":864,"props":1287,"children":1288},{"style":950},[1289],{"type":46,"value":953},{"type":40,"tag":864,"props":1291,"children":1292},{"style":956},[1293],{"type":46,"value":959},{"type":40,"tag":864,"props":1295,"children":1296},{"style":962},[1297],{"type":46,"value":1298}," createSupabaseContext",{"type":40,"tag":864,"props":1300,"children":1301},{"style":956},[1302],{"type":46,"value":970},{"type":40,"tag":864,"props":1304,"children":1305},{"style":950},[1306],{"type":46,"value":975},{"type":40,"tag":864,"props":1308,"children":1309},{"style":956},[1310],{"type":46,"value":980},{"type":40,"tag":864,"props":1312,"children":1313},{"style":983},[1314],{"type":46,"value":681},{"type":40,"tag":864,"props":1316,"children":1317},{"style":956},[1318],{"type":46,"value":990},{"type":40,"tag":864,"props":1320,"children":1321},{"class":866,"line":993},[1322],{"type":40,"tag":864,"props":1323,"children":1324},{"emptyLinePlaceholder":997},[1325],{"type":46,"value":1000},{"type":40,"tag":864,"props":1327,"children":1328},{"class":866,"line":1003},[1329,1333,1337],{"type":40,"tag":864,"props":1330,"children":1331},{"style":950},[1332],{"type":46,"value":1009},{"type":40,"tag":864,"props":1334,"children":1335},{"style":950},[1336],{"type":46,"value":1014},{"type":40,"tag":864,"props":1338,"children":1339},{"style":956},[1340],{"type":46,"value":1019},{"type":40,"tag":864,"props":1342,"children":1343},{"class":866,"line":1022},[1344,1348,1352,1356,1360,1365,1369,1375,1379,1383],{"type":40,"tag":864,"props":1345,"children":1346},{"style":1037},[1347],{"type":46,"value":1029},{"type":40,"tag":864,"props":1349,"children":1350},{"style":956},[1351],{"type":46,"value":1034},{"type":40,"tag":864,"props":1353,"children":1354},{"style":1079},[1355],{"type":46,"value":1082},{"type":40,"tag":864,"props":1357,"children":1358},{"style":956},[1359],{"type":46,"value":442},{"type":40,"tag":864,"props":1361,"children":1362},{"style":1089},[1363],{"type":46,"value":1364},"req",{"type":40,"tag":864,"props":1366,"children":1367},{"style":956},[1368],{"type":46,"value":1034},{"type":40,"tag":864,"props":1370,"children":1372},{"style":1371},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[1373],{"type":46,"value":1374}," Request",{"type":40,"tag":864,"props":1376,"children":1377},{"style":956},[1378],{"type":46,"value":450},{"type":40,"tag":864,"props":1380,"children":1381},{"style":1079},[1382],{"type":46,"value":1111},{"type":40,"tag":864,"props":1384,"children":1385},{"style":956},[1386],{"type":46,"value":1019},{"type":40,"tag":864,"props":1388,"children":1389},{"class":866,"line":1118},[1390,1394,1398,1402,1406,1410,1414,1419,1423,1427,1431,1435,1439,1443,1447],{"type":40,"tag":864,"props":1391,"children":1392},{"style":1079},[1393],{"type":46,"value":1124},{"type":40,"tag":864,"props":1395,"children":1396},{"style":956},[1397],{"type":46,"value":959},{"type":40,"tag":864,"props":1399,"children":1400},{"style":1026},[1401],{"type":46,"value":1133},{"type":40,"tag":864,"props":1403,"children":1404},{"style":956},[1405],{"type":46,"value":1034},{"type":40,"tag":864,"props":1407,"children":1408},{"style":962},[1409],{"type":46,"value":1102},{"type":40,"tag":864,"props":1411,"children":1412},{"style":956},[1413],{"type":46,"value":1097},{"type":40,"tag":864,"props":1415,"children":1416},{"style":962},[1417],{"type":46,"value":1418}," error",{"type":40,"tag":864,"props":1420,"children":1421},{"style":956},[1422],{"type":46,"value":970},{"type":40,"tag":864,"props":1424,"children":1425},{"style":956},[1426],{"type":46,"value":1142},{"type":40,"tag":864,"props":1428,"children":1429},{"style":950},[1430],{"type":46,"value":1147},{"type":40,"tag":864,"props":1432,"children":1433},{"style":1037},[1434],{"type":46,"value":1298},{"type":40,"tag":864,"props":1436,"children":1437},{"style":1026},[1438],{"type":46,"value":1044},{"type":40,"tag":864,"props":1440,"children":1441},{"style":962},[1442],{"type":46,"value":1364},{"type":40,"tag":864,"props":1444,"children":1445},{"style":956},[1446],{"type":46,"value":1097},{"type":40,"tag":864,"props":1448,"children":1449},{"style":956},[1450],{"type":46,"value":1019},{"type":40,"tag":864,"props":1452,"children":1453},{"class":866,"line":1206},[1454,1459,1463,1467,1471,1475],{"type":40,"tag":864,"props":1455,"children":1456},{"style":1026},[1457],{"type":46,"value":1458},"      auth",{"type":40,"tag":864,"props":1460,"children":1461},{"style":956},[1462],{"type":46,"value":1034},{"type":40,"tag":864,"props":1464,"children":1465},{"style":956},[1466],{"type":46,"value":980},{"type":40,"tag":864,"props":1468,"children":1469},{"style":983},[1470],{"type":46,"value":571},{"type":40,"tag":864,"props":1472,"children":1473},{"style":956},[1474],{"type":46,"value":1071},{"type":40,"tag":864,"props":1476,"children":1477},{"style":956},[1478],{"type":46,"value":1258},{"type":40,"tag":864,"props":1480,"children":1481},{"class":866,"line":1243},[1482,1487],{"type":40,"tag":864,"props":1483,"children":1484},{"style":956},[1485],{"type":46,"value":1486},"    }",{"type":40,"tag":864,"props":1488,"children":1489},{"style":1026},[1490],{"type":46,"value":1240},{"type":40,"tag":864,"props":1492,"children":1493},{"class":866,"line":1261},[1494,1499,1503,1508,1513],{"type":40,"tag":864,"props":1495,"children":1496},{"style":950},[1497],{"type":46,"value":1498},"    if",{"type":40,"tag":864,"props":1500,"children":1501},{"style":1026},[1502],{"type":46,"value":442},{"type":40,"tag":864,"props":1504,"children":1505},{"style":962},[1506],{"type":46,"value":1507},"error",{"type":40,"tag":864,"props":1509,"children":1510},{"style":1026},[1511],{"type":46,"value":1512},") ",{"type":40,"tag":864,"props":1514,"children":1515},{"style":956},[1516],{"type":46,"value":1517},"{\n",{"type":40,"tag":864,"props":1519,"children":1521},{"class":866,"line":1520},10,[1522,1527,1531,1535,1539],{"type":40,"tag":864,"props":1523,"children":1524},{"style":950},[1525],{"type":46,"value":1526},"      return",{"type":40,"tag":864,"props":1528,"children":1529},{"style":962},[1530],{"type":46,"value":1217},{"type":40,"tag":864,"props":1532,"children":1533},{"style":956},[1534],{"type":46,"value":74},{"type":40,"tag":864,"props":1536,"children":1537},{"style":1037},[1538],{"type":46,"value":1226},{"type":40,"tag":864,"props":1540,"children":1541},{"style":1026},[1542],{"type":46,"value":1543},"(\n",{"type":40,"tag":864,"props":1545,"children":1547},{"class":866,"line":1546},11,[1548,1553,1558,1562,1566,1570,1575,1579,1584,1588,1592,1596,1600],{"type":40,"tag":864,"props":1549,"children":1550},{"style":956},[1551],{"type":46,"value":1552},"        {",{"type":40,"tag":864,"props":1554,"children":1555},{"style":1026},[1556],{"type":46,"value":1557}," message",{"type":40,"tag":864,"props":1559,"children":1560},{"style":956},[1561],{"type":46,"value":1034},{"type":40,"tag":864,"props":1563,"children":1564},{"style":962},[1565],{"type":46,"value":1418},{"type":40,"tag":864,"props":1567,"children":1568},{"style":956},[1569],{"type":46,"value":74},{"type":40,"tag":864,"props":1571,"children":1572},{"style":962},[1573],{"type":46,"value":1574},"message",{"type":40,"tag":864,"props":1576,"children":1577},{"style":956},[1578],{"type":46,"value":1097},{"type":40,"tag":864,"props":1580,"children":1581},{"style":1026},[1582],{"type":46,"value":1583}," code",{"type":40,"tag":864,"props":1585,"children":1586},{"style":956},[1587],{"type":46,"value":1034},{"type":40,"tag":864,"props":1589,"children":1590},{"style":962},[1591],{"type":46,"value":1418},{"type":40,"tag":864,"props":1593,"children":1594},{"style":956},[1595],{"type":46,"value":74},{"type":40,"tag":864,"props":1597,"children":1598},{"style":962},[1599],{"type":46,"value":100},{"type":40,"tag":864,"props":1601,"children":1602},{"style":956},[1603],{"type":46,"value":1604}," },\n",{"type":40,"tag":864,"props":1606,"children":1608},{"class":866,"line":1607},12,[1609,1613,1618,1622,1626,1630,1635],{"type":40,"tag":864,"props":1610,"children":1611},{"style":956},[1612],{"type":46,"value":1552},{"type":40,"tag":864,"props":1614,"children":1615},{"style":1026},[1616],{"type":46,"value":1617}," status",{"type":40,"tag":864,"props":1619,"children":1620},{"style":956},[1621],{"type":46,"value":1034},{"type":40,"tag":864,"props":1623,"children":1624},{"style":962},[1625],{"type":46,"value":1418},{"type":40,"tag":864,"props":1627,"children":1628},{"style":956},[1629],{"type":46,"value":74},{"type":40,"tag":864,"props":1631,"children":1632},{"style":962},[1633],{"type":46,"value":1634},"status",{"type":40,"tag":864,"props":1636,"children":1637},{"style":956},[1638],{"type":46,"value":1604},{"type":40,"tag":864,"props":1640,"children":1641},{"class":866,"line":27},[1642],{"type":40,"tag":864,"props":1643,"children":1644},{"style":1026},[1645],{"type":46,"value":1646},"      )\n",{"type":40,"tag":864,"props":1648,"children":1650},{"class":866,"line":1649},14,[1651],{"type":40,"tag":864,"props":1652,"children":1653},{"style":956},[1654],{"type":46,"value":1655},"    }\n",{"type":40,"tag":864,"props":1657,"children":1659},{"class":866,"line":1658},15,[1660,1664,1668,1672,1676,1680,1684,1688,1692,1696,1700,1704,1708,1712,1716,1720,1724,1728,1732],{"type":40,"tag":864,"props":1661,"children":1662},{"style":1079},[1663],{"type":46,"value":1124},{"type":40,"tag":864,"props":1665,"children":1666},{"style":956},[1667],{"type":46,"value":959},{"type":40,"tag":864,"props":1669,"children":1670},{"style":962},[1671],{"type":46,"value":1133},{"type":40,"tag":864,"props":1673,"children":1674},{"style":956},[1675],{"type":46,"value":970},{"type":40,"tag":864,"props":1677,"children":1678},{"style":956},[1679],{"type":46,"value":1142},{"type":40,"tag":864,"props":1681,"children":1682},{"style":950},[1683],{"type":46,"value":1147},{"type":40,"tag":864,"props":1685,"children":1686},{"style":962},[1687],{"type":46,"value":1102},{"type":40,"tag":864,"props":1689,"children":1690},{"style":956},[1691],{"type":46,"value":74},{"type":40,"tag":864,"props":1693,"children":1694},{"style":962},[1695],{"type":46,"value":8},{"type":40,"tag":864,"props":1697,"children":1698},{"style":956},[1699],{"type":46,"value":74},{"type":40,"tag":864,"props":1701,"children":1702},{"style":1037},[1703],{"type":46,"value":1168},{"type":40,"tag":864,"props":1705,"children":1706},{"style":1026},[1707],{"type":46,"value":1044},{"type":40,"tag":864,"props":1709,"children":1710},{"style":956},[1711],{"type":46,"value":1071},{"type":40,"tag":864,"props":1713,"children":1714},{"style":983},[1715],{"type":46,"value":1181},{"type":40,"tag":864,"props":1717,"children":1718},{"style":956},[1719],{"type":46,"value":1071},{"type":40,"tag":864,"props":1721,"children":1722},{"style":1026},[1723],{"type":46,"value":450},{"type":40,"tag":864,"props":1725,"children":1726},{"style":956},[1727],{"type":46,"value":74},{"type":40,"tag":864,"props":1729,"children":1730},{"style":1037},[1731],{"type":46,"value":1198},{"type":40,"tag":864,"props":1733,"children":1734},{"style":1026},[1735],{"type":46,"value":1203},{"type":40,"tag":864,"props":1737,"children":1739},{"class":866,"line":1738},16,[1740,1744,1748,1752,1756,1760,1764],{"type":40,"tag":864,"props":1741,"children":1742},{"style":950},[1743],{"type":46,"value":1212},{"type":40,"tag":864,"props":1745,"children":1746},{"style":962},[1747],{"type":46,"value":1217},{"type":40,"tag":864,"props":1749,"children":1750},{"style":956},[1751],{"type":46,"value":74},{"type":40,"tag":864,"props":1753,"children":1754},{"style":1037},[1755],{"type":46,"value":1226},{"type":40,"tag":864,"props":1757,"children":1758},{"style":1026},[1759],{"type":46,"value":1044},{"type":40,"tag":864,"props":1761,"children":1762},{"style":962},[1763],{"type":46,"value":1235},{"type":40,"tag":864,"props":1765,"children":1766},{"style":1026},[1767],{"type":46,"value":1240},{"type":40,"tag":864,"props":1769,"children":1771},{"class":866,"line":1770},17,[1772],{"type":40,"tag":864,"props":1773,"children":1774},{"style":956},[1775],{"type":46,"value":1776},"  },\n",{"type":40,"tag":864,"props":1778,"children":1780},{"class":866,"line":1779},18,[1781],{"type":40,"tag":864,"props":1782,"children":1783},{"style":956},[1784],{"type":46,"value":1267},{"type":40,"tag":903,"props":1786,"children":1788},{"id":1787},"cloudflare-workers",[1789],{"type":46,"value":1790},"Cloudflare Workers",{"type":40,"tag":53,"props":1792,"children":1793},{},[1794,1796,1802,1804,1810,1812,1818,1820,1826],{"type":46,"value":1795},"Requires ",{"type":40,"tag":100,"props":1797,"children":1799},{"className":1798},[],[1800],{"type":46,"value":1801},"nodejs_compat",{"type":46,"value":1803}," compatibility flag in ",{"type":40,"tag":100,"props":1805,"children":1807},{"className":1806},[],[1808],{"type":46,"value":1809},"wrangler.toml",{"type":46,"value":1811},", or pass env overrides via the ",{"type":40,"tag":100,"props":1813,"children":1815},{"className":1814},[],[1816],{"type":46,"value":1817},"env",{"type":46,"value":1819}," config option. See ",{"type":40,"tag":100,"props":1821,"children":1823},{"className":1822},[],[1824],{"type":46,"value":1825},"docs\u002Fenvironment-variables.md",{"type":46,"value":74},{"type":40,"tag":853,"props":1828,"children":1830},{"className":929,"code":1829,"language":931,"meta":858,"style":858},"import { withSupabase } from '@supabase\u002Fserver'\n\nexport default {\n  fetch: withSupabase({ auth: 'user' }, async (_req, ctx) => {\n    const { data } = await ctx.supabase.from('todos').select()\n    return Response.json(data)\n  }),\n}\n",[1831],{"type":40,"tag":100,"props":1832,"children":1833},{"__ignoreMap":858},[1834,1869,1876,1891,1970,2049,2080,2095],{"type":40,"tag":864,"props":1835,"children":1836},{"class":866,"line":867},[1837,1841,1845,1849,1853,1857,1861,1865],{"type":40,"tag":864,"props":1838,"children":1839},{"style":950},[1840],{"type":46,"value":953},{"type":40,"tag":864,"props":1842,"children":1843},{"style":956},[1844],{"type":46,"value":959},{"type":40,"tag":864,"props":1846,"children":1847},{"style":962},[1848],{"type":46,"value":965},{"type":40,"tag":864,"props":1850,"children":1851},{"style":956},[1852],{"type":46,"value":970},{"type":40,"tag":864,"props":1854,"children":1855},{"style":950},[1856],{"type":46,"value":975},{"type":40,"tag":864,"props":1858,"children":1859},{"style":956},[1860],{"type":46,"value":980},{"type":40,"tag":864,"props":1862,"children":1863},{"style":983},[1864],{"type":46,"value":47},{"type":40,"tag":864,"props":1866,"children":1867},{"style":956},[1868],{"type":46,"value":990},{"type":40,"tag":864,"props":1870,"children":1871},{"class":866,"line":876},[1872],{"type":40,"tag":864,"props":1873,"children":1874},{"emptyLinePlaceholder":997},[1875],{"type":46,"value":1000},{"type":40,"tag":864,"props":1877,"children":1878},{"class":866,"line":993},[1879,1883,1887],{"type":40,"tag":864,"props":1880,"children":1881},{"style":950},[1882],{"type":46,"value":1009},{"type":40,"tag":864,"props":1884,"children":1885},{"style":950},[1886],{"type":46,"value":1014},{"type":40,"tag":864,"props":1888,"children":1889},{"style":956},[1890],{"type":46,"value":1019},{"type":40,"tag":864,"props":1892,"children":1893},{"class":866,"line":1003},[1894,1898,1902,1906,1910,1914,1918,1922,1926,1930,1934,1938,1942,1946,1950,1954,1958,1962,1966],{"type":40,"tag":864,"props":1895,"children":1896},{"style":1026},[1897],{"type":46,"value":1029},{"type":40,"tag":864,"props":1899,"children":1900},{"style":956},[1901],{"type":46,"value":1034},{"type":40,"tag":864,"props":1903,"children":1904},{"style":1037},[1905],{"type":46,"value":965},{"type":40,"tag":864,"props":1907,"children":1908},{"style":962},[1909],{"type":46,"value":1044},{"type":40,"tag":864,"props":1911,"children":1912},{"style":956},[1913],{"type":46,"value":1049},{"type":40,"tag":864,"props":1915,"children":1916},{"style":1026},[1917],{"type":46,"value":1054},{"type":40,"tag":864,"props":1919,"children":1920},{"style":956},[1921],{"type":46,"value":1034},{"type":40,"tag":864,"props":1923,"children":1924},{"style":956},[1925],{"type":46,"value":980},{"type":40,"tag":864,"props":1927,"children":1928},{"style":983},[1929],{"type":46,"value":571},{"type":40,"tag":864,"props":1931,"children":1932},{"style":956},[1933],{"type":46,"value":1071},{"type":40,"tag":864,"props":1935,"children":1936},{"style":956},[1937],{"type":46,"value":1076},{"type":40,"tag":864,"props":1939,"children":1940},{"style":1079},[1941],{"type":46,"value":1082},{"type":40,"tag":864,"props":1943,"children":1944},{"style":956},[1945],{"type":46,"value":442},{"type":40,"tag":864,"props":1947,"children":1948},{"style":1089},[1949],{"type":46,"value":1092},{"type":40,"tag":864,"props":1951,"children":1952},{"style":956},[1953],{"type":46,"value":1097},{"type":40,"tag":864,"props":1955,"children":1956},{"style":1089},[1957],{"type":46,"value":1102},{"type":40,"tag":864,"props":1959,"children":1960},{"style":956},[1961],{"type":46,"value":450},{"type":40,"tag":864,"props":1963,"children":1964},{"style":1079},[1965],{"type":46,"value":1111},{"type":40,"tag":864,"props":1967,"children":1968},{"style":956},[1969],{"type":46,"value":1019},{"type":40,"tag":864,"props":1971,"children":1972},{"class":866,"line":1022},[1973,1977,1981,1985,1989,1993,1997,2001,2005,2009,2013,2017,2021,2025,2029,2033,2037,2041,2045],{"type":40,"tag":864,"props":1974,"children":1975},{"style":1079},[1976],{"type":46,"value":1124},{"type":40,"tag":864,"props":1978,"children":1979},{"style":956},[1980],{"type":46,"value":959},{"type":40,"tag":864,"props":1982,"children":1983},{"style":962},[1984],{"type":46,"value":1133},{"type":40,"tag":864,"props":1986,"children":1987},{"style":956},[1988],{"type":46,"value":970},{"type":40,"tag":864,"props":1990,"children":1991},{"style":956},[1992],{"type":46,"value":1142},{"type":40,"tag":864,"props":1994,"children":1995},{"style":950},[1996],{"type":46,"value":1147},{"type":40,"tag":864,"props":1998,"children":1999},{"style":962},[2000],{"type":46,"value":1102},{"type":40,"tag":864,"props":2002,"children":2003},{"style":956},[2004],{"type":46,"value":74},{"type":40,"tag":864,"props":2006,"children":2007},{"style":962},[2008],{"type":46,"value":8},{"type":40,"tag":864,"props":2010,"children":2011},{"style":956},[2012],{"type":46,"value":74},{"type":40,"tag":864,"props":2014,"children":2015},{"style":1037},[2016],{"type":46,"value":1168},{"type":40,"tag":864,"props":2018,"children":2019},{"style":1026},[2020],{"type":46,"value":1044},{"type":40,"tag":864,"props":2022,"children":2023},{"style":956},[2024],{"type":46,"value":1071},{"type":40,"tag":864,"props":2026,"children":2027},{"style":983},[2028],{"type":46,"value":1181},{"type":40,"tag":864,"props":2030,"children":2031},{"style":956},[2032],{"type":46,"value":1071},{"type":40,"tag":864,"props":2034,"children":2035},{"style":1026},[2036],{"type":46,"value":450},{"type":40,"tag":864,"props":2038,"children":2039},{"style":956},[2040],{"type":46,"value":74},{"type":40,"tag":864,"props":2042,"children":2043},{"style":1037},[2044],{"type":46,"value":1198},{"type":40,"tag":864,"props":2046,"children":2047},{"style":1026},[2048],{"type":46,"value":1203},{"type":40,"tag":864,"props":2050,"children":2051},{"class":866,"line":1118},[2052,2056,2060,2064,2068,2072,2076],{"type":40,"tag":864,"props":2053,"children":2054},{"style":950},[2055],{"type":46,"value":1212},{"type":40,"tag":864,"props":2057,"children":2058},{"style":962},[2059],{"type":46,"value":1217},{"type":40,"tag":864,"props":2061,"children":2062},{"style":956},[2063],{"type":46,"value":74},{"type":40,"tag":864,"props":2065,"children":2066},{"style":1037},[2067],{"type":46,"value":1226},{"type":40,"tag":864,"props":2069,"children":2070},{"style":1026},[2071],{"type":46,"value":1044},{"type":40,"tag":864,"props":2073,"children":2074},{"style":962},[2075],{"type":46,"value":1235},{"type":40,"tag":864,"props":2077,"children":2078},{"style":1026},[2079],{"type":46,"value":1240},{"type":40,"tag":864,"props":2081,"children":2082},{"class":866,"line":1206},[2083,2087,2091],{"type":40,"tag":864,"props":2084,"children":2085},{"style":956},[2086],{"type":46,"value":1249},{"type":40,"tag":864,"props":2088,"children":2089},{"style":962},[2090],{"type":46,"value":450},{"type":40,"tag":864,"props":2092,"children":2093},{"style":956},[2094],{"type":46,"value":1258},{"type":40,"tag":864,"props":2096,"children":2097},{"class":866,"line":1243},[2098],{"type":40,"tag":864,"props":2099,"children":2100},{"style":956},[2101],{"type":46,"value":1267},{"type":40,"tag":903,"props":2103,"children":2105},{"id":2104},"hono",[2106],{"type":46,"value":2107},"Hono",{"type":40,"tag":53,"props":2109,"children":2110},{},[2111,2113,2119,2121,2127],{"type":46,"value":2112},"CORS is not handled by the adapter — use ",{"type":40,"tag":100,"props":2114,"children":2116},{"className":2115},[],[2117],{"type":46,"value":2118},"hono\u002Fcors",{"type":46,"value":2120}," middleware. See ",{"type":40,"tag":100,"props":2122,"children":2124},{"className":2123},[],[2125],{"type":46,"value":2126},"docs\u002Fadapters\u002Fhono.md",{"type":46,"value":74},{"type":40,"tag":853,"props":2129,"children":2131},{"className":929,"code":2130,"language":931,"meta":858,"style":858},"\u002F\u002F Node.js \u002F Bun\nimport { Hono } from 'hono'\nimport { withSupabase } from '@supabase\u002Fserver\u002Fadapters\u002Fhono'\n\nconst app = new Hono()\napp.use('*', withSupabase({ auth: 'user' }))\n\napp.get('\u002Ftodos', async (c) => {\n  const { supabase } = c.var.supabaseContext\n  const { data } = await supabase.from('todos').select()\n  return c.json(data)\n})\n\nexport default app\n",[2132],{"type":40,"tag":100,"props":2133,"children":2134},{"__ignoreMap":858},[2135,2143,2179,2214,2221,2252,2331,2338,2400,2448,2519,2551,2563,2570],{"type":40,"tag":864,"props":2136,"children":2137},{"class":866,"line":867},[2138],{"type":40,"tag":864,"props":2139,"children":2140},{"style":941},[2141],{"type":46,"value":2142},"\u002F\u002F Node.js \u002F Bun\n",{"type":40,"tag":864,"props":2144,"children":2145},{"class":866,"line":876},[2146,2150,2154,2159,2163,2167,2171,2175],{"type":40,"tag":864,"props":2147,"children":2148},{"style":950},[2149],{"type":46,"value":953},{"type":40,"tag":864,"props":2151,"children":2152},{"style":956},[2153],{"type":46,"value":959},{"type":40,"tag":864,"props":2155,"children":2156},{"style":962},[2157],{"type":46,"value":2158}," Hono",{"type":40,"tag":864,"props":2160,"children":2161},{"style":956},[2162],{"type":46,"value":970},{"type":40,"tag":864,"props":2164,"children":2165},{"style":950},[2166],{"type":46,"value":975},{"type":40,"tag":864,"props":2168,"children":2169},{"style":956},[2170],{"type":46,"value":980},{"type":40,"tag":864,"props":2172,"children":2173},{"style":983},[2174],{"type":46,"value":2104},{"type":40,"tag":864,"props":2176,"children":2177},{"style":956},[2178],{"type":46,"value":990},{"type":40,"tag":864,"props":2180,"children":2181},{"class":866,"line":993},[2182,2186,2190,2194,2198,2202,2206,2210],{"type":40,"tag":864,"props":2183,"children":2184},{"style":950},[2185],{"type":46,"value":953},{"type":40,"tag":864,"props":2187,"children":2188},{"style":956},[2189],{"type":46,"value":959},{"type":40,"tag":864,"props":2191,"children":2192},{"style":962},[2193],{"type":46,"value":965},{"type":40,"tag":864,"props":2195,"children":2196},{"style":956},[2197],{"type":46,"value":970},{"type":40,"tag":864,"props":2199,"children":2200},{"style":950},[2201],{"type":46,"value":975},{"type":40,"tag":864,"props":2203,"children":2204},{"style":956},[2205],{"type":46,"value":980},{"type":40,"tag":864,"props":2207,"children":2208},{"style":983},[2209],{"type":46,"value":776},{"type":40,"tag":864,"props":2211,"children":2212},{"style":956},[2213],{"type":46,"value":990},{"type":40,"tag":864,"props":2215,"children":2216},{"class":866,"line":1003},[2217],{"type":40,"tag":864,"props":2218,"children":2219},{"emptyLinePlaceholder":997},[2220],{"type":46,"value":1000},{"type":40,"tag":864,"props":2222,"children":2223},{"class":866,"line":1022},[2224,2229,2234,2239,2244,2248],{"type":40,"tag":864,"props":2225,"children":2226},{"style":1079},[2227],{"type":46,"value":2228},"const",{"type":40,"tag":864,"props":2230,"children":2231},{"style":962},[2232],{"type":46,"value":2233}," app ",{"type":40,"tag":864,"props":2235,"children":2236},{"style":956},[2237],{"type":46,"value":2238},"=",{"type":40,"tag":864,"props":2240,"children":2241},{"style":956},[2242],{"type":46,"value":2243}," new",{"type":40,"tag":864,"props":2245,"children":2246},{"style":1037},[2247],{"type":46,"value":2158},{"type":40,"tag":864,"props":2249,"children":2250},{"style":962},[2251],{"type":46,"value":1203},{"type":40,"tag":864,"props":2253,"children":2254},{"class":866,"line":1118},[2255,2260,2264,2269,2273,2277,2282,2286,2290,2294,2298,2302,2306,2310,2314,2318,2322,2326],{"type":40,"tag":864,"props":2256,"children":2257},{"style":962},[2258],{"type":46,"value":2259},"app",{"type":40,"tag":864,"props":2261,"children":2262},{"style":956},[2263],{"type":46,"value":74},{"type":40,"tag":864,"props":2265,"children":2266},{"style":1037},[2267],{"type":46,"value":2268},"use",{"type":40,"tag":864,"props":2270,"children":2271},{"style":962},[2272],{"type":46,"value":1044},{"type":40,"tag":864,"props":2274,"children":2275},{"style":956},[2276],{"type":46,"value":1071},{"type":40,"tag":864,"props":2278,"children":2279},{"style":983},[2280],{"type":46,"value":2281},"*",{"type":40,"tag":864,"props":2283,"children":2284},{"style":956},[2285],{"type":46,"value":1071},{"type":40,"tag":864,"props":2287,"children":2288},{"style":956},[2289],{"type":46,"value":1097},{"type":40,"tag":864,"props":2291,"children":2292},{"style":1037},[2293],{"type":46,"value":965},{"type":40,"tag":864,"props":2295,"children":2296},{"style":962},[2297],{"type":46,"value":1044},{"type":40,"tag":864,"props":2299,"children":2300},{"style":956},[2301],{"type":46,"value":1049},{"type":40,"tag":864,"props":2303,"children":2304},{"style":1026},[2305],{"type":46,"value":1054},{"type":40,"tag":864,"props":2307,"children":2308},{"style":956},[2309],{"type":46,"value":1034},{"type":40,"tag":864,"props":2311,"children":2312},{"style":956},[2313],{"type":46,"value":980},{"type":40,"tag":864,"props":2315,"children":2316},{"style":983},[2317],{"type":46,"value":571},{"type":40,"tag":864,"props":2319,"children":2320},{"style":956},[2321],{"type":46,"value":1071},{"type":40,"tag":864,"props":2323,"children":2324},{"style":956},[2325],{"type":46,"value":970},{"type":40,"tag":864,"props":2327,"children":2328},{"style":962},[2329],{"type":46,"value":2330},"))\n",{"type":40,"tag":864,"props":2332,"children":2333},{"class":866,"line":1206},[2334],{"type":40,"tag":864,"props":2335,"children":2336},{"emptyLinePlaceholder":997},[2337],{"type":46,"value":1000},{"type":40,"tag":864,"props":2339,"children":2340},{"class":866,"line":1243},[2341,2345,2349,2354,2358,2362,2367,2371,2375,2379,2383,2388,2392,2396],{"type":40,"tag":864,"props":2342,"children":2343},{"style":962},[2344],{"type":46,"value":2259},{"type":40,"tag":864,"props":2346,"children":2347},{"style":956},[2348],{"type":46,"value":74},{"type":40,"tag":864,"props":2350,"children":2351},{"style":1037},[2352],{"type":46,"value":2353},"get",{"type":40,"tag":864,"props":2355,"children":2356},{"style":962},[2357],{"type":46,"value":1044},{"type":40,"tag":864,"props":2359,"children":2360},{"style":956},[2361],{"type":46,"value":1071},{"type":40,"tag":864,"props":2363,"children":2364},{"style":983},[2365],{"type":46,"value":2366},"\u002Ftodos",{"type":40,"tag":864,"props":2368,"children":2369},{"style":956},[2370],{"type":46,"value":1071},{"type":40,"tag":864,"props":2372,"children":2373},{"style":956},[2374],{"type":46,"value":1097},{"type":40,"tag":864,"props":2376,"children":2377},{"style":1079},[2378],{"type":46,"value":1082},{"type":40,"tag":864,"props":2380,"children":2381},{"style":956},[2382],{"type":46,"value":442},{"type":40,"tag":864,"props":2384,"children":2385},{"style":1089},[2386],{"type":46,"value":2387},"c",{"type":40,"tag":864,"props":2389,"children":2390},{"style":956},[2391],{"type":46,"value":450},{"type":40,"tag":864,"props":2393,"children":2394},{"style":1079},[2395],{"type":46,"value":1111},{"type":40,"tag":864,"props":2397,"children":2398},{"style":956},[2399],{"type":46,"value":1019},{"type":40,"tag":864,"props":2401,"children":2402},{"class":866,"line":1261},[2403,2408,2412,2417,2421,2425,2430,2434,2439,2443],{"type":40,"tag":864,"props":2404,"children":2405},{"style":1079},[2406],{"type":46,"value":2407},"  const",{"type":40,"tag":864,"props":2409,"children":2410},{"style":956},[2411],{"type":46,"value":959},{"type":40,"tag":864,"props":2413,"children":2414},{"style":962},[2415],{"type":46,"value":2416}," supabase",{"type":40,"tag":864,"props":2418,"children":2419},{"style":956},[2420],{"type":46,"value":970},{"type":40,"tag":864,"props":2422,"children":2423},{"style":956},[2424],{"type":46,"value":1142},{"type":40,"tag":864,"props":2426,"children":2427},{"style":962},[2428],{"type":46,"value":2429}," c",{"type":40,"tag":864,"props":2431,"children":2432},{"style":956},[2433],{"type":46,"value":74},{"type":40,"tag":864,"props":2435,"children":2436},{"style":962},[2437],{"type":46,"value":2438},"var",{"type":40,"tag":864,"props":2440,"children":2441},{"style":956},[2442],{"type":46,"value":74},{"type":40,"tag":864,"props":2444,"children":2445},{"style":962},[2446],{"type":46,"value":2447},"supabaseContext\n",{"type":40,"tag":864,"props":2449,"children":2450},{"class":866,"line":1520},[2451,2455,2459,2463,2467,2471,2475,2479,2483,2487,2491,2495,2499,2503,2507,2511,2515],{"type":40,"tag":864,"props":2452,"children":2453},{"style":1079},[2454],{"type":46,"value":2407},{"type":40,"tag":864,"props":2456,"children":2457},{"style":956},[2458],{"type":46,"value":959},{"type":40,"tag":864,"props":2460,"children":2461},{"style":962},[2462],{"type":46,"value":1133},{"type":40,"tag":864,"props":2464,"children":2465},{"style":956},[2466],{"type":46,"value":970},{"type":40,"tag":864,"props":2468,"children":2469},{"style":956},[2470],{"type":46,"value":1142},{"type":40,"tag":864,"props":2472,"children":2473},{"style":950},[2474],{"type":46,"value":1147},{"type":40,"tag":864,"props":2476,"children":2477},{"style":962},[2478],{"type":46,"value":2416},{"type":40,"tag":864,"props":2480,"children":2481},{"style":956},[2482],{"type":46,"value":74},{"type":40,"tag":864,"props":2484,"children":2485},{"style":1037},[2486],{"type":46,"value":1168},{"type":40,"tag":864,"props":2488,"children":2489},{"style":1026},[2490],{"type":46,"value":1044},{"type":40,"tag":864,"props":2492,"children":2493},{"style":956},[2494],{"type":46,"value":1071},{"type":40,"tag":864,"props":2496,"children":2497},{"style":983},[2498],{"type":46,"value":1181},{"type":40,"tag":864,"props":2500,"children":2501},{"style":956},[2502],{"type":46,"value":1071},{"type":40,"tag":864,"props":2504,"children":2505},{"style":1026},[2506],{"type":46,"value":450},{"type":40,"tag":864,"props":2508,"children":2509},{"style":956},[2510],{"type":46,"value":74},{"type":40,"tag":864,"props":2512,"children":2513},{"style":1037},[2514],{"type":46,"value":1198},{"type":40,"tag":864,"props":2516,"children":2517},{"style":1026},[2518],{"type":46,"value":1203},{"type":40,"tag":864,"props":2520,"children":2521},{"class":866,"line":1546},[2522,2527,2531,2535,2539,2543,2547],{"type":40,"tag":864,"props":2523,"children":2524},{"style":950},[2525],{"type":46,"value":2526},"  return",{"type":40,"tag":864,"props":2528,"children":2529},{"style":962},[2530],{"type":46,"value":2429},{"type":40,"tag":864,"props":2532,"children":2533},{"style":956},[2534],{"type":46,"value":74},{"type":40,"tag":864,"props":2536,"children":2537},{"style":1037},[2538],{"type":46,"value":1226},{"type":40,"tag":864,"props":2540,"children":2541},{"style":1026},[2542],{"type":46,"value":1044},{"type":40,"tag":864,"props":2544,"children":2545},{"style":962},[2546],{"type":46,"value":1235},{"type":40,"tag":864,"props":2548,"children":2549},{"style":1026},[2550],{"type":46,"value":1240},{"type":40,"tag":864,"props":2552,"children":2553},{"class":866,"line":1607},[2554,2559],{"type":40,"tag":864,"props":2555,"children":2556},{"style":956},[2557],{"type":46,"value":2558},"}",{"type":40,"tag":864,"props":2560,"children":2561},{"style":962},[2562],{"type":46,"value":1240},{"type":40,"tag":864,"props":2564,"children":2565},{"class":866,"line":27},[2566],{"type":40,"tag":864,"props":2567,"children":2568},{"emptyLinePlaceholder":997},[2569],{"type":46,"value":1000},{"type":40,"tag":864,"props":2571,"children":2572},{"class":866,"line":1649},[2573,2577,2581],{"type":40,"tag":864,"props":2574,"children":2575},{"style":950},[2576],{"type":46,"value":1009},{"type":40,"tag":864,"props":2578,"children":2579},{"style":950},[2580],{"type":46,"value":1014},{"type":40,"tag":864,"props":2582,"children":2583},{"style":962},[2584],{"type":46,"value":2585}," app\n",{"type":40,"tag":853,"props":2587,"children":2589},{"className":929,"code":2588,"language":931,"meta":858,"style":858},"\u002F\u002F Deno \u002F Supabase Edge Functions\nimport { Hono } from 'npm:hono'\nimport { withSupabase } from 'npm:@supabase\u002Fserver\u002Fadapters\u002Fhono'\n\nconst app = new Hono()\napp.use('*', withSupabase({ auth: 'user' }))\n\napp.get('\u002Ftodos', async (c) => {\n  const { supabase } = c.var.supabaseContext\n  const { data } = await supabase.from('todos').select()\n  return c.json(data)\n})\n\nexport default { fetch: app.fetch }\n",[2590],{"type":40,"tag":100,"props":2591,"children":2592},{"__ignoreMap":858},[2593,2601,2637,2672,2679,2706,2781,2788,2847,2890,2961,2992,3003,3010],{"type":40,"tag":864,"props":2594,"children":2595},{"class":866,"line":867},[2596],{"type":40,"tag":864,"props":2597,"children":2598},{"style":941},[2599],{"type":46,"value":2600},"\u002F\u002F Deno \u002F Supabase Edge Functions\n",{"type":40,"tag":864,"props":2602,"children":2603},{"class":866,"line":876},[2604,2608,2612,2616,2620,2624,2628,2633],{"type":40,"tag":864,"props":2605,"children":2606},{"style":950},[2607],{"type":46,"value":953},{"type":40,"tag":864,"props":2609,"children":2610},{"style":956},[2611],{"type":46,"value":959},{"type":40,"tag":864,"props":2613,"children":2614},{"style":962},[2615],{"type":46,"value":2158},{"type":40,"tag":864,"props":2617,"children":2618},{"style":956},[2619],{"type":46,"value":970},{"type":40,"tag":864,"props":2621,"children":2622},{"style":950},[2623],{"type":46,"value":975},{"type":40,"tag":864,"props":2625,"children":2626},{"style":956},[2627],{"type":46,"value":980},{"type":40,"tag":864,"props":2629,"children":2630},{"style":983},[2631],{"type":46,"value":2632},"npm:hono",{"type":40,"tag":864,"props":2634,"children":2635},{"style":956},[2636],{"type":46,"value":990},{"type":40,"tag":864,"props":2638,"children":2639},{"class":866,"line":993},[2640,2644,2648,2652,2656,2660,2664,2668],{"type":40,"tag":864,"props":2641,"children":2642},{"style":950},[2643],{"type":46,"value":953},{"type":40,"tag":864,"props":2645,"children":2646},{"style":956},[2647],{"type":46,"value":959},{"type":40,"tag":864,"props":2649,"children":2650},{"style":962},[2651],{"type":46,"value":965},{"type":40,"tag":864,"props":2653,"children":2654},{"style":956},[2655],{"type":46,"value":970},{"type":40,"tag":864,"props":2657,"children":2658},{"style":950},[2659],{"type":46,"value":975},{"type":40,"tag":864,"props":2661,"children":2662},{"style":956},[2663],{"type":46,"value":980},{"type":40,"tag":864,"props":2665,"children":2666},{"style":983},[2667],{"type":46,"value":785},{"type":40,"tag":864,"props":2669,"children":2670},{"style":956},[2671],{"type":46,"value":990},{"type":40,"tag":864,"props":2673,"children":2674},{"class":866,"line":1003},[2675],{"type":40,"tag":864,"props":2676,"children":2677},{"emptyLinePlaceholder":997},[2678],{"type":46,"value":1000},{"type":40,"tag":864,"props":2680,"children":2681},{"class":866,"line":1022},[2682,2686,2690,2694,2698,2702],{"type":40,"tag":864,"props":2683,"children":2684},{"style":1079},[2685],{"type":46,"value":2228},{"type":40,"tag":864,"props":2687,"children":2688},{"style":962},[2689],{"type":46,"value":2233},{"type":40,"tag":864,"props":2691,"children":2692},{"style":956},[2693],{"type":46,"value":2238},{"type":40,"tag":864,"props":2695,"children":2696},{"style":956},[2697],{"type":46,"value":2243},{"type":40,"tag":864,"props":2699,"children":2700},{"style":1037},[2701],{"type":46,"value":2158},{"type":40,"tag":864,"props":2703,"children":2704},{"style":962},[2705],{"type":46,"value":1203},{"type":40,"tag":864,"props":2707,"children":2708},{"class":866,"line":1118},[2709,2713,2717,2721,2725,2729,2733,2737,2741,2745,2749,2753,2757,2761,2765,2769,2773,2777],{"type":40,"tag":864,"props":2710,"children":2711},{"style":962},[2712],{"type":46,"value":2259},{"type":40,"tag":864,"props":2714,"children":2715},{"style":956},[2716],{"type":46,"value":74},{"type":40,"tag":864,"props":2718,"children":2719},{"style":1037},[2720],{"type":46,"value":2268},{"type":40,"tag":864,"props":2722,"children":2723},{"style":962},[2724],{"type":46,"value":1044},{"type":40,"tag":864,"props":2726,"children":2727},{"style":956},[2728],{"type":46,"value":1071},{"type":40,"tag":864,"props":2730,"children":2731},{"style":983},[2732],{"type":46,"value":2281},{"type":40,"tag":864,"props":2734,"children":2735},{"style":956},[2736],{"type":46,"value":1071},{"type":40,"tag":864,"props":2738,"children":2739},{"style":956},[2740],{"type":46,"value":1097},{"type":40,"tag":864,"props":2742,"children":2743},{"style":1037},[2744],{"type":46,"value":965},{"type":40,"tag":864,"props":2746,"children":2747},{"style":962},[2748],{"type":46,"value":1044},{"type":40,"tag":864,"props":2750,"children":2751},{"style":956},[2752],{"type":46,"value":1049},{"type":40,"tag":864,"props":2754,"children":2755},{"style":1026},[2756],{"type":46,"value":1054},{"type":40,"tag":864,"props":2758,"children":2759},{"style":956},[2760],{"type":46,"value":1034},{"type":40,"tag":864,"props":2762,"children":2763},{"style":956},[2764],{"type":46,"value":980},{"type":40,"tag":864,"props":2766,"children":2767},{"style":983},[2768],{"type":46,"value":571},{"type":40,"tag":864,"props":2770,"children":2771},{"style":956},[2772],{"type":46,"value":1071},{"type":40,"tag":864,"props":2774,"children":2775},{"style":956},[2776],{"type":46,"value":970},{"type":40,"tag":864,"props":2778,"children":2779},{"style":962},[2780],{"type":46,"value":2330},{"type":40,"tag":864,"props":2782,"children":2783},{"class":866,"line":1206},[2784],{"type":40,"tag":864,"props":2785,"children":2786},{"emptyLinePlaceholder":997},[2787],{"type":46,"value":1000},{"type":40,"tag":864,"props":2789,"children":2790},{"class":866,"line":1243},[2791,2795,2799,2803,2807,2811,2815,2819,2823,2827,2831,2835,2839,2843],{"type":40,"tag":864,"props":2792,"children":2793},{"style":962},[2794],{"type":46,"value":2259},{"type":40,"tag":864,"props":2796,"children":2797},{"style":956},[2798],{"type":46,"value":74},{"type":40,"tag":864,"props":2800,"children":2801},{"style":1037},[2802],{"type":46,"value":2353},{"type":40,"tag":864,"props":2804,"children":2805},{"style":962},[2806],{"type":46,"value":1044},{"type":40,"tag":864,"props":2808,"children":2809},{"style":956},[2810],{"type":46,"value":1071},{"type":40,"tag":864,"props":2812,"children":2813},{"style":983},[2814],{"type":46,"value":2366},{"type":40,"tag":864,"props":2816,"children":2817},{"style":956},[2818],{"type":46,"value":1071},{"type":40,"tag":864,"props":2820,"children":2821},{"style":956},[2822],{"type":46,"value":1097},{"type":40,"tag":864,"props":2824,"children":2825},{"style":1079},[2826],{"type":46,"value":1082},{"type":40,"tag":864,"props":2828,"children":2829},{"style":956},[2830],{"type":46,"value":442},{"type":40,"tag":864,"props":2832,"children":2833},{"style":1089},[2834],{"type":46,"value":2387},{"type":40,"tag":864,"props":2836,"children":2837},{"style":956},[2838],{"type":46,"value":450},{"type":40,"tag":864,"props":2840,"children":2841},{"style":1079},[2842],{"type":46,"value":1111},{"type":40,"tag":864,"props":2844,"children":2845},{"style":956},[2846],{"type":46,"value":1019},{"type":40,"tag":864,"props":2848,"children":2849},{"class":866,"line":1261},[2850,2854,2858,2862,2866,2870,2874,2878,2882,2886],{"type":40,"tag":864,"props":2851,"children":2852},{"style":1079},[2853],{"type":46,"value":2407},{"type":40,"tag":864,"props":2855,"children":2856},{"style":956},[2857],{"type":46,"value":959},{"type":40,"tag":864,"props":2859,"children":2860},{"style":962},[2861],{"type":46,"value":2416},{"type":40,"tag":864,"props":2863,"children":2864},{"style":956},[2865],{"type":46,"value":970},{"type":40,"tag":864,"props":2867,"children":2868},{"style":956},[2869],{"type":46,"value":1142},{"type":40,"tag":864,"props":2871,"children":2872},{"style":962},[2873],{"type":46,"value":2429},{"type":40,"tag":864,"props":2875,"children":2876},{"style":956},[2877],{"type":46,"value":74},{"type":40,"tag":864,"props":2879,"children":2880},{"style":962},[2881],{"type":46,"value":2438},{"type":40,"tag":864,"props":2883,"children":2884},{"style":956},[2885],{"type":46,"value":74},{"type":40,"tag":864,"props":2887,"children":2888},{"style":962},[2889],{"type":46,"value":2447},{"type":40,"tag":864,"props":2891,"children":2892},{"class":866,"line":1520},[2893,2897,2901,2905,2909,2913,2917,2921,2925,2929,2933,2937,2941,2945,2949,2953,2957],{"type":40,"tag":864,"props":2894,"children":2895},{"style":1079},[2896],{"type":46,"value":2407},{"type":40,"tag":864,"props":2898,"children":2899},{"style":956},[2900],{"type":46,"value":959},{"type":40,"tag":864,"props":2902,"children":2903},{"style":962},[2904],{"type":46,"value":1133},{"type":40,"tag":864,"props":2906,"children":2907},{"style":956},[2908],{"type":46,"value":970},{"type":40,"tag":864,"props":2910,"children":2911},{"style":956},[2912],{"type":46,"value":1142},{"type":40,"tag":864,"props":2914,"children":2915},{"style":950},[2916],{"type":46,"value":1147},{"type":40,"tag":864,"props":2918,"children":2919},{"style":962},[2920],{"type":46,"value":2416},{"type":40,"tag":864,"props":2922,"children":2923},{"style":956},[2924],{"type":46,"value":74},{"type":40,"tag":864,"props":2926,"children":2927},{"style":1037},[2928],{"type":46,"value":1168},{"type":40,"tag":864,"props":2930,"children":2931},{"style":1026},[2932],{"type":46,"value":1044},{"type":40,"tag":864,"props":2934,"children":2935},{"style":956},[2936],{"type":46,"value":1071},{"type":40,"tag":864,"props":2938,"children":2939},{"style":983},[2940],{"type":46,"value":1181},{"type":40,"tag":864,"props":2942,"children":2943},{"style":956},[2944],{"type":46,"value":1071},{"type":40,"tag":864,"props":2946,"children":2947},{"style":1026},[2948],{"type":46,"value":450},{"type":40,"tag":864,"props":2950,"children":2951},{"style":956},[2952],{"type":46,"value":74},{"type":40,"tag":864,"props":2954,"children":2955},{"style":1037},[2956],{"type":46,"value":1198},{"type":40,"tag":864,"props":2958,"children":2959},{"style":1026},[2960],{"type":46,"value":1203},{"type":40,"tag":864,"props":2962,"children":2963},{"class":866,"line":1546},[2964,2968,2972,2976,2980,2984,2988],{"type":40,"tag":864,"props":2965,"children":2966},{"style":950},[2967],{"type":46,"value":2526},{"type":40,"tag":864,"props":2969,"children":2970},{"style":962},[2971],{"type":46,"value":2429},{"type":40,"tag":864,"props":2973,"children":2974},{"style":956},[2975],{"type":46,"value":74},{"type":40,"tag":864,"props":2977,"children":2978},{"style":1037},[2979],{"type":46,"value":1226},{"type":40,"tag":864,"props":2981,"children":2982},{"style":1026},[2983],{"type":46,"value":1044},{"type":40,"tag":864,"props":2985,"children":2986},{"style":962},[2987],{"type":46,"value":1235},{"type":40,"tag":864,"props":2989,"children":2990},{"style":1026},[2991],{"type":46,"value":1240},{"type":40,"tag":864,"props":2993,"children":2994},{"class":866,"line":1607},[2995,2999],{"type":40,"tag":864,"props":2996,"children":2997},{"style":956},[2998],{"type":46,"value":2558},{"type":40,"tag":864,"props":3000,"children":3001},{"style":962},[3002],{"type":46,"value":1240},{"type":40,"tag":864,"props":3004,"children":3005},{"class":866,"line":27},[3006],{"type":40,"tag":864,"props":3007,"children":3008},{"emptyLinePlaceholder":997},[3009],{"type":46,"value":1000},{"type":40,"tag":864,"props":3011,"children":3012},{"class":866,"line":1649},[3013,3017,3021,3025,3030,3034,3039,3043,3048],{"type":40,"tag":864,"props":3014,"children":3015},{"style":950},[3016],{"type":46,"value":1009},{"type":40,"tag":864,"props":3018,"children":3019},{"style":950},[3020],{"type":46,"value":1014},{"type":40,"tag":864,"props":3022,"children":3023},{"style":956},[3024],{"type":46,"value":959},{"type":40,"tag":864,"props":3026,"children":3027},{"style":1026},[3028],{"type":46,"value":3029}," fetch",{"type":40,"tag":864,"props":3031,"children":3032},{"style":956},[3033],{"type":46,"value":1034},{"type":40,"tag":864,"props":3035,"children":3036},{"style":962},[3037],{"type":46,"value":3038}," app",{"type":40,"tag":864,"props":3040,"children":3041},{"style":956},[3042],{"type":46,"value":74},{"type":40,"tag":864,"props":3044,"children":3045},{"style":962},[3046],{"type":46,"value":3047},"fetch ",{"type":40,"tag":864,"props":3049,"children":3050},{"style":956},[3051],{"type":46,"value":1267},{"type":40,"tag":903,"props":3053,"children":3055},{"id":3054},"cookie-based-environments-compose-with-supabasessr",[3056,3058,3064],{"type":46,"value":3057},"Cookie-based environments (compose with ",{"type":40,"tag":100,"props":3059,"children":3061},{"className":3060},[],[3062],{"type":46,"value":3063},"@supabase\u002Fssr",{"type":46,"value":450},{"type":40,"tag":53,"props":3066,"children":3067},{},[3068,3070,3092,3094,3099,3101,3106,3108,3114,3116,3121,3123,3128,3130,3135,3137,3142,3144,3150],{"type":46,"value":3069},"For Next.js \u002F SvelteKit \u002F Remix, ",{"type":40,"tag":57,"props":3071,"children":3072},{},[3073,3075,3080,3082],{"type":46,"value":3074},"compose ",{"type":40,"tag":100,"props":3076,"children":3078},{"className":3077},[],[3079],{"type":46,"value":47},{"type":46,"value":3081}," with ",{"type":40,"tag":65,"props":3083,"children":3086},{"href":3084,"rel":3085},"https:\u002F\u002Fgithub.com\u002Fsupabase\u002Fssr",[69],[3087],{"type":40,"tag":100,"props":3088,"children":3090},{"className":3089},[],[3091],{"type":46,"value":3063},{"type":46,"value":3093}," — they are not replacements for each other. ",{"type":40,"tag":100,"props":3095,"children":3097},{"className":3096},[],[3098],{"type":46,"value":3063},{"type":46,"value":3100}," owns cookies and refresh-token rotation (its middleware is required, otherwise the access token cookie goes stale and verification fails). In your Server Component or Route Handler, use ",{"type":40,"tag":100,"props":3102,"children":3104},{"className":3103},[],[3105],{"type":46,"value":3063},{"type":46,"value":3107},"'s ",{"type":40,"tag":100,"props":3109,"children":3111},{"className":3110},[],[3112],{"type":46,"value":3113},"createServerClient",{"type":46,"value":3115}," to read the (middleware-refreshed) session, hand the access token to ",{"type":40,"tag":100,"props":3117,"children":3119},{"className":3118},[],[3120],{"type":46,"value":736},{"type":46,"value":3122}," from ",{"type":40,"tag":100,"props":3124,"children":3126},{"className":3125},[],[3127],{"type":46,"value":711},{"type":46,"value":3129},", then build the typed clients with ",{"type":40,"tag":100,"props":3131,"children":3133},{"className":3132},[],[3134],{"type":46,"value":757},{"type":46,"value":3136}," + ",{"type":40,"tag":100,"props":3138,"children":3140},{"className":3139},[],[3141],{"type":46,"value":764},{"type":46,"value":3143},". See ",{"type":40,"tag":100,"props":3145,"children":3147},{"className":3146},[],[3148],{"type":46,"value":3149},"docs\u002Fssr-frameworks.md",{"type":46,"value":3151}," for the full adapter pattern.",{"type":40,"tag":853,"props":3153,"children":3155},{"className":929,"code":3154,"language":931,"meta":858,"style":858},"\u002F\u002F Key imports for building the adapter\nimport { createServerClient } from '@supabase\u002Fssr'\nimport {\n  verifyCredentials,\n  createContextClient,\n  createAdminClient,\n} from '@supabase\u002Fserver\u002Fcore'\n",[3156],{"type":40,"tag":100,"props":3157,"children":3158},{"__ignoreMap":858},[3159,3167,3203,3214,3226,3238,3250],{"type":40,"tag":864,"props":3160,"children":3161},{"class":866,"line":867},[3162],{"type":40,"tag":864,"props":3163,"children":3164},{"style":941},[3165],{"type":46,"value":3166},"\u002F\u002F Key imports for building the adapter\n",{"type":40,"tag":864,"props":3168,"children":3169},{"class":866,"line":876},[3170,3174,3178,3183,3187,3191,3195,3199],{"type":40,"tag":864,"props":3171,"children":3172},{"style":950},[3173],{"type":46,"value":953},{"type":40,"tag":864,"props":3175,"children":3176},{"style":956},[3177],{"type":46,"value":959},{"type":40,"tag":864,"props":3179,"children":3180},{"style":962},[3181],{"type":46,"value":3182}," createServerClient",{"type":40,"tag":864,"props":3184,"children":3185},{"style":956},[3186],{"type":46,"value":970},{"type":40,"tag":864,"props":3188,"children":3189},{"style":950},[3190],{"type":46,"value":975},{"type":40,"tag":864,"props":3192,"children":3193},{"style":956},[3194],{"type":46,"value":980},{"type":40,"tag":864,"props":3196,"children":3197},{"style":983},[3198],{"type":46,"value":3063},{"type":40,"tag":864,"props":3200,"children":3201},{"style":956},[3202],{"type":46,"value":990},{"type":40,"tag":864,"props":3204,"children":3205},{"class":866,"line":993},[3206,3210],{"type":40,"tag":864,"props":3207,"children":3208},{"style":950},[3209],{"type":46,"value":953},{"type":40,"tag":864,"props":3211,"children":3212},{"style":956},[3213],{"type":46,"value":1019},{"type":40,"tag":864,"props":3215,"children":3216},{"class":866,"line":1003},[3217,3222],{"type":40,"tag":864,"props":3218,"children":3219},{"style":962},[3220],{"type":46,"value":3221},"  verifyCredentials",{"type":40,"tag":864,"props":3223,"children":3224},{"style":956},[3225],{"type":46,"value":1258},{"type":40,"tag":864,"props":3227,"children":3228},{"class":866,"line":1022},[3229,3234],{"type":40,"tag":864,"props":3230,"children":3231},{"style":962},[3232],{"type":46,"value":3233},"  createContextClient",{"type":40,"tag":864,"props":3235,"children":3236},{"style":956},[3237],{"type":46,"value":1258},{"type":40,"tag":864,"props":3239,"children":3240},{"class":866,"line":1118},[3241,3246],{"type":40,"tag":864,"props":3242,"children":3243},{"style":962},[3244],{"type":46,"value":3245},"  createAdminClient",{"type":40,"tag":864,"props":3247,"children":3248},{"style":956},[3249],{"type":46,"value":1258},{"type":40,"tag":864,"props":3251,"children":3252},{"class":866,"line":1206},[3253,3257,3261,3265,3269],{"type":40,"tag":864,"props":3254,"children":3255},{"style":956},[3256],{"type":46,"value":2558},{"type":40,"tag":864,"props":3258,"children":3259},{"style":950},[3260],{"type":46,"value":975},{"type":40,"tag":864,"props":3262,"children":3263},{"style":956},[3264],{"type":46,"value":980},{"type":40,"tag":864,"props":3266,"children":3267},{"style":983},[3268],{"type":46,"value":711},{"type":40,"tag":864,"props":3270,"children":3271},{"style":956},[3272],{"type":46,"value":990},{"type":40,"tag":903,"props":3274,"children":3276},{"id":3275},"server-to-server-secret-key-auth",[3277],{"type":46,"value":3278},"Server-to-server (secret key auth)",{"type":40,"tag":53,"props":3280,"children":3281},{},[3282,3284,3290,3292,3298],{"type":46,"value":3283},"For internal services, cron jobs, or automation calling your Edge Function. The caller sends the secret key in the ",{"type":40,"tag":100,"props":3285,"children":3287},{"className":3286},[],[3288],{"type":46,"value":3289},"apikey",{"type":46,"value":3291}," header. See ",{"type":40,"tag":100,"props":3293,"children":3295},{"className":3294},[],[3296],{"type":46,"value":3297},"docs\u002Fauth-modes.md",{"type":46,"value":3299}," for named key syntax.",{"type":40,"tag":53,"props":3301,"children":3302},{},[3303],{"type":40,"tag":57,"props":3304,"children":3305},{},[3306],{"type":46,"value":3307},"Edge Function (Deno):",{"type":40,"tag":853,"props":3309,"children":3311},{"className":929,"code":3310,"language":931,"meta":858,"style":858},"import { withSupabase } from 'npm:@supabase\u002Fserver'\n\n\u002F\u002F Only accept the \"automations\" named secret key\nexport default {\n  fetch: withSupabase({ auth: 'secret:automations' }, async (req, ctx) => {\n    const body = await req.json()\n    const { data } = await ctx.supabaseAdmin\n      .from('scheduled_tasks')\n      .insert({ name: body.taskName, scheduled_at: body.scheduledAt })\n    return Response.json({ success: true, data })\n  }),\n}\n",[3312],{"type":40,"tag":100,"props":3313,"children":3314},{"__ignoreMap":858},[3315,3350,3357,3365,3380,3460,3497,3537,3570,3646,3704,3719],{"type":40,"tag":864,"props":3316,"children":3317},{"class":866,"line":867},[3318,3322,3326,3330,3334,3338,3342,3346],{"type":40,"tag":864,"props":3319,"children":3320},{"style":950},[3321],{"type":46,"value":953},{"type":40,"tag":864,"props":3323,"children":3324},{"style":956},[3325],{"type":46,"value":959},{"type":40,"tag":864,"props":3327,"children":3328},{"style":962},[3329],{"type":46,"value":965},{"type":40,"tag":864,"props":3331,"children":3332},{"style":956},[3333],{"type":46,"value":970},{"type":40,"tag":864,"props":3335,"children":3336},{"style":950},[3337],{"type":46,"value":975},{"type":40,"tag":864,"props":3339,"children":3340},{"style":956},[3341],{"type":46,"value":980},{"type":40,"tag":864,"props":3343,"children":3344},{"style":983},[3345],{"type":46,"value":681},{"type":40,"tag":864,"props":3347,"children":3348},{"style":956},[3349],{"type":46,"value":990},{"type":40,"tag":864,"props":3351,"children":3352},{"class":866,"line":876},[3353],{"type":40,"tag":864,"props":3354,"children":3355},{"emptyLinePlaceholder":997},[3356],{"type":46,"value":1000},{"type":40,"tag":864,"props":3358,"children":3359},{"class":866,"line":993},[3360],{"type":40,"tag":864,"props":3361,"children":3362},{"style":941},[3363],{"type":46,"value":3364},"\u002F\u002F Only accept the \"automations\" named secret key\n",{"type":40,"tag":864,"props":3366,"children":3367},{"class":866,"line":1003},[3368,3372,3376],{"type":40,"tag":864,"props":3369,"children":3370},{"style":950},[3371],{"type":46,"value":1009},{"type":40,"tag":864,"props":3373,"children":3374},{"style":950},[3375],{"type":46,"value":1014},{"type":40,"tag":864,"props":3377,"children":3378},{"style":956},[3379],{"type":46,"value":1019},{"type":40,"tag":864,"props":3381,"children":3382},{"class":866,"line":1022},[3383,3387,3391,3395,3399,3403,3407,3411,3415,3420,3424,3428,3432,3436,3440,3444,3448,3452,3456],{"type":40,"tag":864,"props":3384,"children":3385},{"style":1026},[3386],{"type":46,"value":1029},{"type":40,"tag":864,"props":3388,"children":3389},{"style":956},[3390],{"type":46,"value":1034},{"type":40,"tag":864,"props":3392,"children":3393},{"style":1037},[3394],{"type":46,"value":965},{"type":40,"tag":864,"props":3396,"children":3397},{"style":962},[3398],{"type":46,"value":1044},{"type":40,"tag":864,"props":3400,"children":3401},{"style":956},[3402],{"type":46,"value":1049},{"type":40,"tag":864,"props":3404,"children":3405},{"style":1026},[3406],{"type":46,"value":1054},{"type":40,"tag":864,"props":3408,"children":3409},{"style":956},[3410],{"type":46,"value":1034},{"type":40,"tag":864,"props":3412,"children":3413},{"style":956},[3414],{"type":46,"value":980},{"type":40,"tag":864,"props":3416,"children":3417},{"style":983},[3418],{"type":46,"value":3419},"secret:automations",{"type":40,"tag":864,"props":3421,"children":3422},{"style":956},[3423],{"type":46,"value":1071},{"type":40,"tag":864,"props":3425,"children":3426},{"style":956},[3427],{"type":46,"value":1076},{"type":40,"tag":864,"props":3429,"children":3430},{"style":1079},[3431],{"type":46,"value":1082},{"type":40,"tag":864,"props":3433,"children":3434},{"style":956},[3435],{"type":46,"value":442},{"type":40,"tag":864,"props":3437,"children":3438},{"style":1089},[3439],{"type":46,"value":1364},{"type":40,"tag":864,"props":3441,"children":3442},{"style":956},[3443],{"type":46,"value":1097},{"type":40,"tag":864,"props":3445,"children":3446},{"style":1089},[3447],{"type":46,"value":1102},{"type":40,"tag":864,"props":3449,"children":3450},{"style":956},[3451],{"type":46,"value":450},{"type":40,"tag":864,"props":3453,"children":3454},{"style":1079},[3455],{"type":46,"value":1111},{"type":40,"tag":864,"props":3457,"children":3458},{"style":956},[3459],{"type":46,"value":1019},{"type":40,"tag":864,"props":3461,"children":3462},{"class":866,"line":1118},[3463,3467,3472,3476,3480,3485,3489,3493],{"type":40,"tag":864,"props":3464,"children":3465},{"style":1079},[3466],{"type":46,"value":1124},{"type":40,"tag":864,"props":3468,"children":3469},{"style":962},[3470],{"type":46,"value":3471}," body",{"type":40,"tag":864,"props":3473,"children":3474},{"style":956},[3475],{"type":46,"value":1142},{"type":40,"tag":864,"props":3477,"children":3478},{"style":950},[3479],{"type":46,"value":1147},{"type":40,"tag":864,"props":3481,"children":3482},{"style":962},[3483],{"type":46,"value":3484}," req",{"type":40,"tag":864,"props":3486,"children":3487},{"style":956},[3488],{"type":46,"value":74},{"type":40,"tag":864,"props":3490,"children":3491},{"style":1037},[3492],{"type":46,"value":1226},{"type":40,"tag":864,"props":3494,"children":3495},{"style":1026},[3496],{"type":46,"value":1203},{"type":40,"tag":864,"props":3498,"children":3499},{"class":866,"line":1206},[3500,3504,3508,3512,3516,3520,3524,3528,3532],{"type":40,"tag":864,"props":3501,"children":3502},{"style":1079},[3503],{"type":46,"value":1124},{"type":40,"tag":864,"props":3505,"children":3506},{"style":956},[3507],{"type":46,"value":959},{"type":40,"tag":864,"props":3509,"children":3510},{"style":962},[3511],{"type":46,"value":1133},{"type":40,"tag":864,"props":3513,"children":3514},{"style":956},[3515],{"type":46,"value":970},{"type":40,"tag":864,"props":3517,"children":3518},{"style":956},[3519],{"type":46,"value":1142},{"type":40,"tag":864,"props":3521,"children":3522},{"style":950},[3523],{"type":46,"value":1147},{"type":40,"tag":864,"props":3525,"children":3526},{"style":962},[3527],{"type":46,"value":1102},{"type":40,"tag":864,"props":3529,"children":3530},{"style":956},[3531],{"type":46,"value":74},{"type":40,"tag":864,"props":3533,"children":3534},{"style":962},[3535],{"type":46,"value":3536},"supabaseAdmin\n",{"type":40,"tag":864,"props":3538,"children":3539},{"class":866,"line":1243},[3540,3545,3549,3553,3557,3562,3566],{"type":40,"tag":864,"props":3541,"children":3542},{"style":956},[3543],{"type":46,"value":3544},"      .",{"type":40,"tag":864,"props":3546,"children":3547},{"style":1037},[3548],{"type":46,"value":1168},{"type":40,"tag":864,"props":3550,"children":3551},{"style":1026},[3552],{"type":46,"value":1044},{"type":40,"tag":864,"props":3554,"children":3555},{"style":956},[3556],{"type":46,"value":1071},{"type":40,"tag":864,"props":3558,"children":3559},{"style":983},[3560],{"type":46,"value":3561},"scheduled_tasks",{"type":40,"tag":864,"props":3563,"children":3564},{"style":956},[3565],{"type":46,"value":1071},{"type":40,"tag":864,"props":3567,"children":3568},{"style":1026},[3569],{"type":46,"value":1240},{"type":40,"tag":864,"props":3571,"children":3572},{"class":866,"line":1261},[3573,3577,3582,3586,3590,3595,3599,3603,3607,3612,3616,3621,3625,3629,3633,3638,3642],{"type":40,"tag":864,"props":3574,"children":3575},{"style":956},[3576],{"type":46,"value":3544},{"type":40,"tag":864,"props":3578,"children":3579},{"style":1037},[3580],{"type":46,"value":3581},"insert",{"type":40,"tag":864,"props":3583,"children":3584},{"style":1026},[3585],{"type":46,"value":1044},{"type":40,"tag":864,"props":3587,"children":3588},{"style":956},[3589],{"type":46,"value":1049},{"type":40,"tag":864,"props":3591,"children":3592},{"style":1026},[3593],{"type":46,"value":3594}," name",{"type":40,"tag":864,"props":3596,"children":3597},{"style":956},[3598],{"type":46,"value":1034},{"type":40,"tag":864,"props":3600,"children":3601},{"style":962},[3602],{"type":46,"value":3471},{"type":40,"tag":864,"props":3604,"children":3605},{"style":956},[3606],{"type":46,"value":74},{"type":40,"tag":864,"props":3608,"children":3609},{"style":962},[3610],{"type":46,"value":3611},"taskName",{"type":40,"tag":864,"props":3613,"children":3614},{"style":956},[3615],{"type":46,"value":1097},{"type":40,"tag":864,"props":3617,"children":3618},{"style":1026},[3619],{"type":46,"value":3620}," scheduled_at",{"type":40,"tag":864,"props":3622,"children":3623},{"style":956},[3624],{"type":46,"value":1034},{"type":40,"tag":864,"props":3626,"children":3627},{"style":962},[3628],{"type":46,"value":3471},{"type":40,"tag":864,"props":3630,"children":3631},{"style":956},[3632],{"type":46,"value":74},{"type":40,"tag":864,"props":3634,"children":3635},{"style":962},[3636],{"type":46,"value":3637},"scheduledAt",{"type":40,"tag":864,"props":3639,"children":3640},{"style":956},[3641],{"type":46,"value":970},{"type":40,"tag":864,"props":3643,"children":3644},{"style":1026},[3645],{"type":46,"value":1240},{"type":40,"tag":864,"props":3647,"children":3648},{"class":866,"line":1520},[3649,3653,3657,3661,3665,3669,3673,3678,3682,3688,3692,3696,3700],{"type":40,"tag":864,"props":3650,"children":3651},{"style":950},[3652],{"type":46,"value":1212},{"type":40,"tag":864,"props":3654,"children":3655},{"style":962},[3656],{"type":46,"value":1217},{"type":40,"tag":864,"props":3658,"children":3659},{"style":956},[3660],{"type":46,"value":74},{"type":40,"tag":864,"props":3662,"children":3663},{"style":1037},[3664],{"type":46,"value":1226},{"type":40,"tag":864,"props":3666,"children":3667},{"style":1026},[3668],{"type":46,"value":1044},{"type":40,"tag":864,"props":3670,"children":3671},{"style":956},[3672],{"type":46,"value":1049},{"type":40,"tag":864,"props":3674,"children":3675},{"style":1026},[3676],{"type":46,"value":3677}," success",{"type":40,"tag":864,"props":3679,"children":3680},{"style":956},[3681],{"type":46,"value":1034},{"type":40,"tag":864,"props":3683,"children":3685},{"style":3684},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[3686],{"type":46,"value":3687}," true",{"type":40,"tag":864,"props":3689,"children":3690},{"style":956},[3691],{"type":46,"value":1097},{"type":40,"tag":864,"props":3693,"children":3694},{"style":962},[3695],{"type":46,"value":1133},{"type":40,"tag":864,"props":3697,"children":3698},{"style":956},[3699],{"type":46,"value":970},{"type":40,"tag":864,"props":3701,"children":3702},{"style":1026},[3703],{"type":46,"value":1240},{"type":40,"tag":864,"props":3705,"children":3706},{"class":866,"line":1546},[3707,3711,3715],{"type":40,"tag":864,"props":3708,"children":3709},{"style":956},[3710],{"type":46,"value":1249},{"type":40,"tag":864,"props":3712,"children":3713},{"style":962},[3714],{"type":46,"value":450},{"type":40,"tag":864,"props":3716,"children":3717},{"style":956},[3718],{"type":46,"value":1258},{"type":40,"tag":864,"props":3720,"children":3721},{"class":866,"line":1607},[3722],{"type":40,"tag":864,"props":3723,"children":3724},{"style":956},[3725],{"type":46,"value":1267},{"type":40,"tag":53,"props":3727,"children":3728},{},[3729],{"type":40,"tag":57,"props":3730,"children":3731},{},[3732],{"type":46,"value":3733},"Caller (external service):",{"type":40,"tag":853,"props":3735,"children":3737},{"className":929,"code":3736,"language":931,"meta":858,"style":858},"await fetch('https:\u002F\u002F\u003Cproject>.supabase.co\u002Ffunctions\u002Fv1\u002Fmy-function', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application\u002Fjson',\n    apikey: 'sb_secret_automations_...', \u002F\u002F the named secret key\n  },\n  body: JSON.stringify({\n    taskName: 'cleanup',\n    scheduledAt: new Date().toISOString(),\n  }),\n})\n",[3738],{"type":40,"tag":100,"props":3739,"children":3740},{"__ignoreMap":858},[3741,3778,3807,3823,3861,3895,3902,3936,3965,4008,4023],{"type":40,"tag":864,"props":3742,"children":3743},{"class":866,"line":867},[3744,3749,3753,3757,3761,3766,3770,3774],{"type":40,"tag":864,"props":3745,"children":3746},{"style":950},[3747],{"type":46,"value":3748},"await",{"type":40,"tag":864,"props":3750,"children":3751},{"style":1037},[3752],{"type":46,"value":3029},{"type":40,"tag":864,"props":3754,"children":3755},{"style":962},[3756],{"type":46,"value":1044},{"type":40,"tag":864,"props":3758,"children":3759},{"style":956},[3760],{"type":46,"value":1071},{"type":40,"tag":864,"props":3762,"children":3763},{"style":983},[3764],{"type":46,"value":3765},"https:\u002F\u002F\u003Cproject>.supabase.co\u002Ffunctions\u002Fv1\u002Fmy-function",{"type":40,"tag":864,"props":3767,"children":3768},{"style":956},[3769],{"type":46,"value":1071},{"type":40,"tag":864,"props":3771,"children":3772},{"style":956},[3773],{"type":46,"value":1097},{"type":40,"tag":864,"props":3775,"children":3776},{"style":956},[3777],{"type":46,"value":1019},{"type":40,"tag":864,"props":3779,"children":3780},{"class":866,"line":876},[3781,3786,3790,3794,3799,3803],{"type":40,"tag":864,"props":3782,"children":3783},{"style":1026},[3784],{"type":46,"value":3785},"  method",{"type":40,"tag":864,"props":3787,"children":3788},{"style":956},[3789],{"type":46,"value":1034},{"type":40,"tag":864,"props":3791,"children":3792},{"style":956},[3793],{"type":46,"value":980},{"type":40,"tag":864,"props":3795,"children":3796},{"style":983},[3797],{"type":46,"value":3798},"POST",{"type":40,"tag":864,"props":3800,"children":3801},{"style":956},[3802],{"type":46,"value":1071},{"type":40,"tag":864,"props":3804,"children":3805},{"style":956},[3806],{"type":46,"value":1258},{"type":40,"tag":864,"props":3808,"children":3809},{"class":866,"line":993},[3810,3815,3819],{"type":40,"tag":864,"props":3811,"children":3812},{"style":1026},[3813],{"type":46,"value":3814},"  headers",{"type":40,"tag":864,"props":3816,"children":3817},{"style":956},[3818],{"type":46,"value":1034},{"type":40,"tag":864,"props":3820,"children":3821},{"style":956},[3822],{"type":46,"value":1019},{"type":40,"tag":864,"props":3824,"children":3825},{"class":866,"line":1003},[3826,3831,3836,3840,3844,3848,3853,3857],{"type":40,"tag":864,"props":3827,"children":3828},{"style":956},[3829],{"type":46,"value":3830},"    '",{"type":40,"tag":864,"props":3832,"children":3833},{"style":1026},[3834],{"type":46,"value":3835},"Content-Type",{"type":40,"tag":864,"props":3837,"children":3838},{"style":956},[3839],{"type":46,"value":1071},{"type":40,"tag":864,"props":3841,"children":3842},{"style":956},[3843],{"type":46,"value":1034},{"type":40,"tag":864,"props":3845,"children":3846},{"style":956},[3847],{"type":46,"value":980},{"type":40,"tag":864,"props":3849,"children":3850},{"style":983},[3851],{"type":46,"value":3852},"application\u002Fjson",{"type":40,"tag":864,"props":3854,"children":3855},{"style":956},[3856],{"type":46,"value":1071},{"type":40,"tag":864,"props":3858,"children":3859},{"style":956},[3860],{"type":46,"value":1258},{"type":40,"tag":864,"props":3862,"children":3863},{"class":866,"line":1022},[3864,3869,3873,3877,3882,3886,3890],{"type":40,"tag":864,"props":3865,"children":3866},{"style":1026},[3867],{"type":46,"value":3868},"    apikey",{"type":40,"tag":864,"props":3870,"children":3871},{"style":956},[3872],{"type":46,"value":1034},{"type":40,"tag":864,"props":3874,"children":3875},{"style":956},[3876],{"type":46,"value":980},{"type":40,"tag":864,"props":3878,"children":3879},{"style":983},[3880],{"type":46,"value":3881},"sb_secret_automations_...",{"type":40,"tag":864,"props":3883,"children":3884},{"style":956},[3885],{"type":46,"value":1071},{"type":40,"tag":864,"props":3887,"children":3888},{"style":956},[3889],{"type":46,"value":1097},{"type":40,"tag":864,"props":3891,"children":3892},{"style":941},[3893],{"type":46,"value":3894}," \u002F\u002F the named secret key\n",{"type":40,"tag":864,"props":3896,"children":3897},{"class":866,"line":1118},[3898],{"type":40,"tag":864,"props":3899,"children":3900},{"style":956},[3901],{"type":46,"value":1776},{"type":40,"tag":864,"props":3903,"children":3904},{"class":866,"line":1206},[3905,3910,3914,3919,3923,3928,3932],{"type":40,"tag":864,"props":3906,"children":3907},{"style":1026},[3908],{"type":46,"value":3909},"  body",{"type":40,"tag":864,"props":3911,"children":3912},{"style":956},[3913],{"type":46,"value":1034},{"type":40,"tag":864,"props":3915,"children":3916},{"style":962},[3917],{"type":46,"value":3918}," JSON",{"type":40,"tag":864,"props":3920,"children":3921},{"style":956},[3922],{"type":46,"value":74},{"type":40,"tag":864,"props":3924,"children":3925},{"style":1037},[3926],{"type":46,"value":3927},"stringify",{"type":40,"tag":864,"props":3929,"children":3930},{"style":962},[3931],{"type":46,"value":1044},{"type":40,"tag":864,"props":3933,"children":3934},{"style":956},[3935],{"type":46,"value":1517},{"type":40,"tag":864,"props":3937,"children":3938},{"class":866,"line":1243},[3939,3944,3948,3952,3957,3961],{"type":40,"tag":864,"props":3940,"children":3941},{"style":1026},[3942],{"type":46,"value":3943},"    taskName",{"type":40,"tag":864,"props":3945,"children":3946},{"style":956},[3947],{"type":46,"value":1034},{"type":40,"tag":864,"props":3949,"children":3950},{"style":956},[3951],{"type":46,"value":980},{"type":40,"tag":864,"props":3953,"children":3954},{"style":983},[3955],{"type":46,"value":3956},"cleanup",{"type":40,"tag":864,"props":3958,"children":3959},{"style":956},[3960],{"type":46,"value":1071},{"type":40,"tag":864,"props":3962,"children":3963},{"style":956},[3964],{"type":46,"value":1258},{"type":40,"tag":864,"props":3966,"children":3967},{"class":866,"line":1261},[3968,3973,3977,3981,3986,3991,3995,4000,4004],{"type":40,"tag":864,"props":3969,"children":3970},{"style":1026},[3971],{"type":46,"value":3972},"    scheduledAt",{"type":40,"tag":864,"props":3974,"children":3975},{"style":956},[3976],{"type":46,"value":1034},{"type":40,"tag":864,"props":3978,"children":3979},{"style":956},[3980],{"type":46,"value":2243},{"type":40,"tag":864,"props":3982,"children":3983},{"style":1037},[3984],{"type":46,"value":3985}," Date",{"type":40,"tag":864,"props":3987,"children":3988},{"style":962},[3989],{"type":46,"value":3990},"()",{"type":40,"tag":864,"props":3992,"children":3993},{"style":956},[3994],{"type":46,"value":74},{"type":40,"tag":864,"props":3996,"children":3997},{"style":1037},[3998],{"type":46,"value":3999},"toISOString",{"type":40,"tag":864,"props":4001,"children":4002},{"style":962},[4003],{"type":46,"value":3990},{"type":40,"tag":864,"props":4005,"children":4006},{"style":956},[4007],{"type":46,"value":1258},{"type":40,"tag":864,"props":4009,"children":4010},{"class":866,"line":1520},[4011,4015,4019],{"type":40,"tag":864,"props":4012,"children":4013},{"style":956},[4014],{"type":46,"value":1249},{"type":40,"tag":864,"props":4016,"children":4017},{"style":962},[4018],{"type":46,"value":450},{"type":40,"tag":864,"props":4020,"children":4021},{"style":956},[4022],{"type":46,"value":1258},{"type":40,"tag":864,"props":4024,"children":4025},{"class":866,"line":1546},[4026,4030],{"type":40,"tag":864,"props":4027,"children":4028},{"style":956},[4029],{"type":46,"value":2558},{"type":40,"tag":864,"props":4031,"children":4032},{"style":962},[4033],{"type":46,"value":1240},{"type":40,"tag":53,"props":4035,"children":4036},{},[4037,4039,4044,4046,4052,4054,4060,4062,4068],{"type":46,"value":4038},"Bare ",{"type":40,"tag":100,"props":4040,"children":4042},{"className":4041},[],[4043],{"type":46,"value":511},{"type":46,"value":4045}," matches only the ",{"type":40,"tag":100,"props":4047,"children":4049},{"className":4048},[],[4050],{"type":46,"value":4051},"default",{"type":46,"value":4053}," key. Use ",{"type":40,"tag":100,"props":4055,"children":4057},{"className":4056},[],[4058],{"type":46,"value":4059},"auth: 'secret:name'",{"type":46,"value":4061}," to require a specific named key, or ",{"type":40,"tag":100,"props":4063,"children":4065},{"className":4064},[],[4066],{"type":46,"value":4067},"auth: 'secret:*'",{"type":46,"value":4069}," to accept any secret key in the set.",{"type":40,"tag":545,"props":4071,"children":4073},{"id":4072},"when-to-use-auth-none",[4074,4076],{"type":46,"value":4075},"When to use ",{"type":40,"tag":100,"props":4077,"children":4079},{"className":4078},[],[4080],{"type":46,"value":841},{"type":40,"tag":49,"props":4082,"children":4083},{},[4084],{"type":40,"tag":53,"props":4085,"children":4086},{},[4087,4097],{"type":40,"tag":57,"props":4088,"children":4089},{},[4090,4095],{"type":40,"tag":100,"props":4091,"children":4093},{"className":4092},[],[4094],{"type":46,"value":841},{"type":46,"value":4096}," disables all authentication.",{"type":46,"value":4098}," The handler runs for every request with no credential checks. Only use it when auth is genuinely unnecessary — health checks, public status pages, or endpoints with no sensitive data and no side effects.",{"type":40,"tag":53,"props":4100,"children":4101},{},[4102,4114],{"type":40,"tag":57,"props":4103,"children":4104},{},[4105,4107,4112],{"type":46,"value":4106},"Before using ",{"type":40,"tag":100,"props":4108,"children":4110},{"className":4109},[],[4111],{"type":46,"value":841},{"type":46,"value":4113},", confirm with the user whether the endpoint is truly public.",{"type":46,"value":4115}," If not, propose an alternative:",{"type":40,"tag":552,"props":4117,"children":4118},{},[4119,4151],{"type":40,"tag":556,"props":4120,"children":4121},{},[4122,4127,4129,4134,4136,4142,4144,4149],{"type":40,"tag":57,"props":4123,"children":4124},{},[4125],{"type":46,"value":4126},"Another service or cron job calls this function",{"type":46,"value":4128}," — use ",{"type":40,"tag":100,"props":4130,"children":4132},{"className":4131},[],[4133],{"type":46,"value":511},{"type":46,"value":4135}," or ",{"type":40,"tag":100,"props":4137,"children":4139},{"className":4138},[],[4140],{"type":46,"value":4141},"auth: 'secret:\u003Cname>'",{"type":46,"value":4143}," instead. The caller sends the secret key in the ",{"type":40,"tag":100,"props":4145,"children":4147},{"className":4146},[],[4148],{"type":46,"value":3289},{"type":46,"value":4150}," header.",{"type":40,"tag":556,"props":4152,"children":4153},{},[4154,4159,4160,4165],{"type":40,"tag":57,"props":4155,"children":4156},{},[4157],{"type":46,"value":4158},"An external webhook provider calls this function",{"type":46,"value":4128},{"type":40,"tag":100,"props":4161,"children":4163},{"className":4162},[],[4164],{"type":46,"value":511},{"type":46,"value":4166}," and have the provider send the secret key, or implement the provider's own signature verification inside the handler.",{"type":40,"tag":53,"props":4168,"children":4169},{},[4170],{"type":40,"tag":57,"props":4171,"children":4172},{},[4173,4175,4180],{"type":46,"value":4174},"Never use ",{"type":40,"tag":100,"props":4176,"children":4178},{"className":4177},[],[4179],{"type":46,"value":841},{"type":46,"value":4181}," for endpoints that read or write user data without verifying who the caller is.",{"type":40,"tag":53,"props":4183,"children":4184},{},[4185,4197,4199,4204,4206,4212,4214,4219],{"type":40,"tag":57,"props":4186,"children":4187},{},[4188,4190,4196],{"type":46,"value":4189},"On ",{"type":40,"tag":100,"props":4191,"children":4193},{"className":4192},[],[4194],{"type":46,"value":4195},"auth: ['user', 'none']",{"type":46,"value":74},{"type":46,"value":4198}," A stale or malformed JWT on such an endpoint is rejected with ",{"type":40,"tag":100,"props":4200,"children":4202},{"className":4201},[],[4203],{"type":46,"value":616},{"type":46,"value":4205}," — it is not silently downgraded to anonymous. Callers that might hold a cached\u002Fexpired token should either omit the ",{"type":40,"tag":100,"props":4207,"children":4209},{"className":4208},[],[4210],{"type":46,"value":4211},"Authorization",{"type":46,"value":4213}," header entirely or refresh before calling. If the goal is \"anonymous unless a valid user is signed in,\" this is the correct behavior; if the goal is truly \"accept anything,\" use ",{"type":40,"tag":100,"props":4215,"children":4217},{"className":4216},[],[4218],{"type":46,"value":841},{"type":46,"value":4220}," on its own.",{"type":40,"tag":545,"props":4222,"children":4224},{"id":4223},"edge-function-recipes",[4225],{"type":46,"value":4226},"Edge Function recipes",{"type":40,"tag":903,"props":4228,"children":4230},{"id":4229},"function-to-function-calls",[4231],{"type":46,"value":4232},"Function-to-function calls",{"type":40,"tag":53,"props":4234,"children":4235},{},[4236,4238,4243,4245,4251],{"type":46,"value":4237},"One Edge Function can call another using the admin client. The called function uses ",{"type":40,"tag":100,"props":4239,"children":4241},{"className":4240},[],[4242],{"type":46,"value":511},{"type":46,"value":4244}," and the caller invokes it via ",{"type":40,"tag":100,"props":4246,"children":4248},{"className":4247},[],[4249],{"type":46,"value":4250},"ctx.supabaseAdmin.functions.invoke()",{"type":46,"value":74},{"type":40,"tag":53,"props":4253,"children":4254},{},[4255,4260,4261,4266],{"type":40,"tag":57,"props":4256,"children":4257},{},[4258],{"type":46,"value":4259},"Config",{"type":46,"value":442},{"type":40,"tag":100,"props":4262,"children":4264},{"className":4263},[],[4265],{"type":46,"value":849},{"type":46,"value":4267},"):",{"type":40,"tag":853,"props":4269,"children":4271},{"className":855,"code":4270,"language":857,"meta":858,"style":858},"[functions.process-order]\nverify_jwt = false  # called with secret key, not a user JWT\n",[4272],{"type":40,"tag":100,"props":4273,"children":4274},{"__ignoreMap":858},[4275,4283],{"type":40,"tag":864,"props":4276,"children":4277},{"class":866,"line":867},[4278],{"type":40,"tag":864,"props":4279,"children":4280},{},[4281],{"type":46,"value":4282},"[functions.process-order]\n",{"type":40,"tag":864,"props":4284,"children":4285},{"class":866,"line":876},[4286],{"type":40,"tag":864,"props":4287,"children":4288},{},[4289],{"type":46,"value":4290},"verify_jwt = false  # called with secret key, not a user JWT\n",{"type":40,"tag":53,"props":4292,"children":4293},{},[4294,4299,4300,4306],{"type":40,"tag":57,"props":4295,"children":4296},{},[4297],{"type":46,"value":4298},"Called function",{"type":46,"value":442},{"type":40,"tag":100,"props":4301,"children":4303},{"className":4302},[],[4304],{"type":46,"value":4305},"supabase\u002Ffunctions\u002Fprocess-order\u002Findex.ts",{"type":46,"value":4267},{"type":40,"tag":853,"props":4308,"children":4310},{"className":929,"code":4309,"language":931,"meta":858,"style":858},"import { withSupabase } from 'npm:@supabase\u002Fserver'\n\nexport default {\n  fetch: withSupabase({ auth: 'secret' }, async (req, ctx) => {\n    const { orderId } = await req.json()\n    const { data } = await ctx.supabaseAdmin\n      .from('orders')\n      .update({ status: 'processing' })\n      .eq('id', orderId)\n      .select()\n      .single()\n    return Response.json(data)\n  }),\n}\n",[4311],{"type":40,"tag":100,"props":4312,"children":4313},{"__ignoreMap":858},[4314,4349,4356,4371,4450,4494,4533,4565,4614,4655,4670,4686,4717,4732],{"type":40,"tag":864,"props":4315,"children":4316},{"class":866,"line":867},[4317,4321,4325,4329,4333,4337,4341,4345],{"type":40,"tag":864,"props":4318,"children":4319},{"style":950},[4320],{"type":46,"value":953},{"type":40,"tag":864,"props":4322,"children":4323},{"style":956},[4324],{"type":46,"value":959},{"type":40,"tag":864,"props":4326,"children":4327},{"style":962},[4328],{"type":46,"value":965},{"type":40,"tag":864,"props":4330,"children":4331},{"style":956},[4332],{"type":46,"value":970},{"type":40,"tag":864,"props":4334,"children":4335},{"style":950},[4336],{"type":46,"value":975},{"type":40,"tag":864,"props":4338,"children":4339},{"style":956},[4340],{"type":46,"value":980},{"type":40,"tag":864,"props":4342,"children":4343},{"style":983},[4344],{"type":46,"value":681},{"type":40,"tag":864,"props":4346,"children":4347},{"style":956},[4348],{"type":46,"value":990},{"type":40,"tag":864,"props":4350,"children":4351},{"class":866,"line":876},[4352],{"type":40,"tag":864,"props":4353,"children":4354},{"emptyLinePlaceholder":997},[4355],{"type":46,"value":1000},{"type":40,"tag":864,"props":4357,"children":4358},{"class":866,"line":993},[4359,4363,4367],{"type":40,"tag":864,"props":4360,"children":4361},{"style":950},[4362],{"type":46,"value":1009},{"type":40,"tag":864,"props":4364,"children":4365},{"style":950},[4366],{"type":46,"value":1014},{"type":40,"tag":864,"props":4368,"children":4369},{"style":956},[4370],{"type":46,"value":1019},{"type":40,"tag":864,"props":4372,"children":4373},{"class":866,"line":1003},[4374,4378,4382,4386,4390,4394,4398,4402,4406,4410,4414,4418,4422,4426,4430,4434,4438,4442,4446],{"type":40,"tag":864,"props":4375,"children":4376},{"style":1026},[4377],{"type":46,"value":1029},{"type":40,"tag":864,"props":4379,"children":4380},{"style":956},[4381],{"type":46,"value":1034},{"type":40,"tag":864,"props":4383,"children":4384},{"style":1037},[4385],{"type":46,"value":965},{"type":40,"tag":864,"props":4387,"children":4388},{"style":962},[4389],{"type":46,"value":1044},{"type":40,"tag":864,"props":4391,"children":4392},{"style":956},[4393],{"type":46,"value":1049},{"type":40,"tag":864,"props":4395,"children":4396},{"style":1026},[4397],{"type":46,"value":1054},{"type":40,"tag":864,"props":4399,"children":4400},{"style":956},[4401],{"type":46,"value":1034},{"type":40,"tag":864,"props":4403,"children":4404},{"style":956},[4405],{"type":46,"value":980},{"type":40,"tag":864,"props":4407,"children":4408},{"style":983},[4409],{"type":46,"value":587},{"type":40,"tag":864,"props":4411,"children":4412},{"style":956},[4413],{"type":46,"value":1071},{"type":40,"tag":864,"props":4415,"children":4416},{"style":956},[4417],{"type":46,"value":1076},{"type":40,"tag":864,"props":4419,"children":4420},{"style":1079},[4421],{"type":46,"value":1082},{"type":40,"tag":864,"props":4423,"children":4424},{"style":956},[4425],{"type":46,"value":442},{"type":40,"tag":864,"props":4427,"children":4428},{"style":1089},[4429],{"type":46,"value":1364},{"type":40,"tag":864,"props":4431,"children":4432},{"style":956},[4433],{"type":46,"value":1097},{"type":40,"tag":864,"props":4435,"children":4436},{"style":1089},[4437],{"type":46,"value":1102},{"type":40,"tag":864,"props":4439,"children":4440},{"style":956},[4441],{"type":46,"value":450},{"type":40,"tag":864,"props":4443,"children":4444},{"style":1079},[4445],{"type":46,"value":1111},{"type":40,"tag":864,"props":4447,"children":4448},{"style":956},[4449],{"type":46,"value":1019},{"type":40,"tag":864,"props":4451,"children":4452},{"class":866,"line":1022},[4453,4457,4461,4466,4470,4474,4478,4482,4486,4490],{"type":40,"tag":864,"props":4454,"children":4455},{"style":1079},[4456],{"type":46,"value":1124},{"type":40,"tag":864,"props":4458,"children":4459},{"style":956},[4460],{"type":46,"value":959},{"type":40,"tag":864,"props":4462,"children":4463},{"style":962},[4464],{"type":46,"value":4465}," orderId",{"type":40,"tag":864,"props":4467,"children":4468},{"style":956},[4469],{"type":46,"value":970},{"type":40,"tag":864,"props":4471,"children":4472},{"style":956},[4473],{"type":46,"value":1142},{"type":40,"tag":864,"props":4475,"children":4476},{"style":950},[4477],{"type":46,"value":1147},{"type":40,"tag":864,"props":4479,"children":4480},{"style":962},[4481],{"type":46,"value":3484},{"type":40,"tag":864,"props":4483,"children":4484},{"style":956},[4485],{"type":46,"value":74},{"type":40,"tag":864,"props":4487,"children":4488},{"style":1037},[4489],{"type":46,"value":1226},{"type":40,"tag":864,"props":4491,"children":4492},{"style":1026},[4493],{"type":46,"value":1203},{"type":40,"tag":864,"props":4495,"children":4496},{"class":866,"line":1118},[4497,4501,4505,4509,4513,4517,4521,4525,4529],{"type":40,"tag":864,"props":4498,"children":4499},{"style":1079},[4500],{"type":46,"value":1124},{"type":40,"tag":864,"props":4502,"children":4503},{"style":956},[4504],{"type":46,"value":959},{"type":40,"tag":864,"props":4506,"children":4507},{"style":962},[4508],{"type":46,"value":1133},{"type":40,"tag":864,"props":4510,"children":4511},{"style":956},[4512],{"type":46,"value":970},{"type":40,"tag":864,"props":4514,"children":4515},{"style":956},[4516],{"type":46,"value":1142},{"type":40,"tag":864,"props":4518,"children":4519},{"style":950},[4520],{"type":46,"value":1147},{"type":40,"tag":864,"props":4522,"children":4523},{"style":962},[4524],{"type":46,"value":1102},{"type":40,"tag":864,"props":4526,"children":4527},{"style":956},[4528],{"type":46,"value":74},{"type":40,"tag":864,"props":4530,"children":4531},{"style":962},[4532],{"type":46,"value":3536},{"type":40,"tag":864,"props":4534,"children":4535},{"class":866,"line":1206},[4536,4540,4544,4548,4552,4557,4561],{"type":40,"tag":864,"props":4537,"children":4538},{"style":956},[4539],{"type":46,"value":3544},{"type":40,"tag":864,"props":4541,"children":4542},{"style":1037},[4543],{"type":46,"value":1168},{"type":40,"tag":864,"props":4545,"children":4546},{"style":1026},[4547],{"type":46,"value":1044},{"type":40,"tag":864,"props":4549,"children":4550},{"style":956},[4551],{"type":46,"value":1071},{"type":40,"tag":864,"props":4553,"children":4554},{"style":983},[4555],{"type":46,"value":4556},"orders",{"type":40,"tag":864,"props":4558,"children":4559},{"style":956},[4560],{"type":46,"value":1071},{"type":40,"tag":864,"props":4562,"children":4563},{"style":1026},[4564],{"type":46,"value":1240},{"type":40,"tag":864,"props":4566,"children":4567},{"class":866,"line":1243},[4568,4572,4577,4581,4585,4589,4593,4597,4602,4606,4610],{"type":40,"tag":864,"props":4569,"children":4570},{"style":956},[4571],{"type":46,"value":3544},{"type":40,"tag":864,"props":4573,"children":4574},{"style":1037},[4575],{"type":46,"value":4576},"update",{"type":40,"tag":864,"props":4578,"children":4579},{"style":1026},[4580],{"type":46,"value":1044},{"type":40,"tag":864,"props":4582,"children":4583},{"style":956},[4584],{"type":46,"value":1049},{"type":40,"tag":864,"props":4586,"children":4587},{"style":1026},[4588],{"type":46,"value":1617},{"type":40,"tag":864,"props":4590,"children":4591},{"style":956},[4592],{"type":46,"value":1034},{"type":40,"tag":864,"props":4594,"children":4595},{"style":956},[4596],{"type":46,"value":980},{"type":40,"tag":864,"props":4598,"children":4599},{"style":983},[4600],{"type":46,"value":4601},"processing",{"type":40,"tag":864,"props":4603,"children":4604},{"style":956},[4605],{"type":46,"value":1071},{"type":40,"tag":864,"props":4607,"children":4608},{"style":956},[4609],{"type":46,"value":970},{"type":40,"tag":864,"props":4611,"children":4612},{"style":1026},[4613],{"type":46,"value":1240},{"type":40,"tag":864,"props":4615,"children":4616},{"class":866,"line":1261},[4617,4621,4626,4630,4634,4639,4643,4647,4651],{"type":40,"tag":864,"props":4618,"children":4619},{"style":956},[4620],{"type":46,"value":3544},{"type":40,"tag":864,"props":4622,"children":4623},{"style":1037},[4624],{"type":46,"value":4625},"eq",{"type":40,"tag":864,"props":4627,"children":4628},{"style":1026},[4629],{"type":46,"value":1044},{"type":40,"tag":864,"props":4631,"children":4632},{"style":956},[4633],{"type":46,"value":1071},{"type":40,"tag":864,"props":4635,"children":4636},{"style":983},[4637],{"type":46,"value":4638},"id",{"type":40,"tag":864,"props":4640,"children":4641},{"style":956},[4642],{"type":46,"value":1071},{"type":40,"tag":864,"props":4644,"children":4645},{"style":956},[4646],{"type":46,"value":1097},{"type":40,"tag":864,"props":4648,"children":4649},{"style":962},[4650],{"type":46,"value":4465},{"type":40,"tag":864,"props":4652,"children":4653},{"style":1026},[4654],{"type":46,"value":1240},{"type":40,"tag":864,"props":4656,"children":4657},{"class":866,"line":1520},[4658,4662,4666],{"type":40,"tag":864,"props":4659,"children":4660},{"style":956},[4661],{"type":46,"value":3544},{"type":40,"tag":864,"props":4663,"children":4664},{"style":1037},[4665],{"type":46,"value":1198},{"type":40,"tag":864,"props":4667,"children":4668},{"style":1026},[4669],{"type":46,"value":1203},{"type":40,"tag":864,"props":4671,"children":4672},{"class":866,"line":1546},[4673,4677,4682],{"type":40,"tag":864,"props":4674,"children":4675},{"style":956},[4676],{"type":46,"value":3544},{"type":40,"tag":864,"props":4678,"children":4679},{"style":1037},[4680],{"type":46,"value":4681},"single",{"type":40,"tag":864,"props":4683,"children":4684},{"style":1026},[4685],{"type":46,"value":1203},{"type":40,"tag":864,"props":4687,"children":4688},{"class":866,"line":1607},[4689,4693,4697,4701,4705,4709,4713],{"type":40,"tag":864,"props":4690,"children":4691},{"style":950},[4692],{"type":46,"value":1212},{"type":40,"tag":864,"props":4694,"children":4695},{"style":962},[4696],{"type":46,"value":1217},{"type":40,"tag":864,"props":4698,"children":4699},{"style":956},[4700],{"type":46,"value":74},{"type":40,"tag":864,"props":4702,"children":4703},{"style":1037},[4704],{"type":46,"value":1226},{"type":40,"tag":864,"props":4706,"children":4707},{"style":1026},[4708],{"type":46,"value":1044},{"type":40,"tag":864,"props":4710,"children":4711},{"style":962},[4712],{"type":46,"value":1235},{"type":40,"tag":864,"props":4714,"children":4715},{"style":1026},[4716],{"type":46,"value":1240},{"type":40,"tag":864,"props":4718,"children":4719},{"class":866,"line":27},[4720,4724,4728],{"type":40,"tag":864,"props":4721,"children":4722},{"style":956},[4723],{"type":46,"value":1249},{"type":40,"tag":864,"props":4725,"children":4726},{"style":962},[4727],{"type":46,"value":450},{"type":40,"tag":864,"props":4729,"children":4730},{"style":956},[4731],{"type":46,"value":1258},{"type":40,"tag":864,"props":4733,"children":4734},{"class":866,"line":1649},[4735],{"type":40,"tag":864,"props":4736,"children":4737},{"style":956},[4738],{"type":46,"value":1267},{"type":40,"tag":53,"props":4740,"children":4741},{},[4742,4747,4748,4754],{"type":40,"tag":57,"props":4743,"children":4744},{},[4745],{"type":46,"value":4746},"Calling function",{"type":46,"value":442},{"type":40,"tag":100,"props":4749,"children":4751},{"className":4750},[],[4752],{"type":46,"value":4753},"supabase\u002Ffunctions\u002Fcheckout\u002Findex.ts",{"type":46,"value":4267},{"type":40,"tag":853,"props":4756,"children":4758},{"className":929,"code":4757,"language":931,"meta":858,"style":858},"import { withSupabase } from 'npm:@supabase\u002Fserver'\n\nexport default {\n  fetch: withSupabase({ auth: 'user' }, async (req, ctx) => {\n    const { orderId } = await req.json()\n\n    \u002F\u002F Calls process-order with the secret key automatically\n    const { data, error } = await ctx.supabaseAdmin.functions.invoke(\n      'process-order',\n      { body: { orderId } },\n    )\n\n    if (error) {\n      return Response.json({ error: error.message }, { status: 500 })\n    }\n    return Response.json(data)\n  }),\n}\n",[4759],{"type":40,"tag":100,"props":4760,"children":4761},{"__ignoreMap":858},[4762,4797,4804,4819,4898,4941,4948,4956,5026,5047,5079,5087,5094,5117,5194,5201,5232,5247],{"type":40,"tag":864,"props":4763,"children":4764},{"class":866,"line":867},[4765,4769,4773,4777,4781,4785,4789,4793],{"type":40,"tag":864,"props":4766,"children":4767},{"style":950},[4768],{"type":46,"value":953},{"type":40,"tag":864,"props":4770,"children":4771},{"style":956},[4772],{"type":46,"value":959},{"type":40,"tag":864,"props":4774,"children":4775},{"style":962},[4776],{"type":46,"value":965},{"type":40,"tag":864,"props":4778,"children":4779},{"style":956},[4780],{"type":46,"value":970},{"type":40,"tag":864,"props":4782,"children":4783},{"style":950},[4784],{"type":46,"value":975},{"type":40,"tag":864,"props":4786,"children":4787},{"style":956},[4788],{"type":46,"value":980},{"type":40,"tag":864,"props":4790,"children":4791},{"style":983},[4792],{"type":46,"value":681},{"type":40,"tag":864,"props":4794,"children":4795},{"style":956},[4796],{"type":46,"value":990},{"type":40,"tag":864,"props":4798,"children":4799},{"class":866,"line":876},[4800],{"type":40,"tag":864,"props":4801,"children":4802},{"emptyLinePlaceholder":997},[4803],{"type":46,"value":1000},{"type":40,"tag":864,"props":4805,"children":4806},{"class":866,"line":993},[4807,4811,4815],{"type":40,"tag":864,"props":4808,"children":4809},{"style":950},[4810],{"type":46,"value":1009},{"type":40,"tag":864,"props":4812,"children":4813},{"style":950},[4814],{"type":46,"value":1014},{"type":40,"tag":864,"props":4816,"children":4817},{"style":956},[4818],{"type":46,"value":1019},{"type":40,"tag":864,"props":4820,"children":4821},{"class":866,"line":1003},[4822,4826,4830,4834,4838,4842,4846,4850,4854,4858,4862,4866,4870,4874,4878,4882,4886,4890,4894],{"type":40,"tag":864,"props":4823,"children":4824},{"style":1026},[4825],{"type":46,"value":1029},{"type":40,"tag":864,"props":4827,"children":4828},{"style":956},[4829],{"type":46,"value":1034},{"type":40,"tag":864,"props":4831,"children":4832},{"style":1037},[4833],{"type":46,"value":965},{"type":40,"tag":864,"props":4835,"children":4836},{"style":962},[4837],{"type":46,"value":1044},{"type":40,"tag":864,"props":4839,"children":4840},{"style":956},[4841],{"type":46,"value":1049},{"type":40,"tag":864,"props":4843,"children":4844},{"style":1026},[4845],{"type":46,"value":1054},{"type":40,"tag":864,"props":4847,"children":4848},{"style":956},[4849],{"type":46,"value":1034},{"type":40,"tag":864,"props":4851,"children":4852},{"style":956},[4853],{"type":46,"value":980},{"type":40,"tag":864,"props":4855,"children":4856},{"style":983},[4857],{"type":46,"value":571},{"type":40,"tag":864,"props":4859,"children":4860},{"style":956},[4861],{"type":46,"value":1071},{"type":40,"tag":864,"props":4863,"children":4864},{"style":956},[4865],{"type":46,"value":1076},{"type":40,"tag":864,"props":4867,"children":4868},{"style":1079},[4869],{"type":46,"value":1082},{"type":40,"tag":864,"props":4871,"children":4872},{"style":956},[4873],{"type":46,"value":442},{"type":40,"tag":864,"props":4875,"children":4876},{"style":1089},[4877],{"type":46,"value":1364},{"type":40,"tag":864,"props":4879,"children":4880},{"style":956},[4881],{"type":46,"value":1097},{"type":40,"tag":864,"props":4883,"children":4884},{"style":1089},[4885],{"type":46,"value":1102},{"type":40,"tag":864,"props":4887,"children":4888},{"style":956},[4889],{"type":46,"value":450},{"type":40,"tag":864,"props":4891,"children":4892},{"style":1079},[4893],{"type":46,"value":1111},{"type":40,"tag":864,"props":4895,"children":4896},{"style":956},[4897],{"type":46,"value":1019},{"type":40,"tag":864,"props":4899,"children":4900},{"class":866,"line":1022},[4901,4905,4909,4913,4917,4921,4925,4929,4933,4937],{"type":40,"tag":864,"props":4902,"children":4903},{"style":1079},[4904],{"type":46,"value":1124},{"type":40,"tag":864,"props":4906,"children":4907},{"style":956},[4908],{"type":46,"value":959},{"type":40,"tag":864,"props":4910,"children":4911},{"style":962},[4912],{"type":46,"value":4465},{"type":40,"tag":864,"props":4914,"children":4915},{"style":956},[4916],{"type":46,"value":970},{"type":40,"tag":864,"props":4918,"children":4919},{"style":956},[4920],{"type":46,"value":1142},{"type":40,"tag":864,"props":4922,"children":4923},{"style":950},[4924],{"type":46,"value":1147},{"type":40,"tag":864,"props":4926,"children":4927},{"style":962},[4928],{"type":46,"value":3484},{"type":40,"tag":864,"props":4930,"children":4931},{"style":956},[4932],{"type":46,"value":74},{"type":40,"tag":864,"props":4934,"children":4935},{"style":1037},[4936],{"type":46,"value":1226},{"type":40,"tag":864,"props":4938,"children":4939},{"style":1026},[4940],{"type":46,"value":1203},{"type":40,"tag":864,"props":4942,"children":4943},{"class":866,"line":1118},[4944],{"type":40,"tag":864,"props":4945,"children":4946},{"emptyLinePlaceholder":997},[4947],{"type":46,"value":1000},{"type":40,"tag":864,"props":4949,"children":4950},{"class":866,"line":1206},[4951],{"type":40,"tag":864,"props":4952,"children":4953},{"style":941},[4954],{"type":46,"value":4955},"    \u002F\u002F Calls process-order with the secret key automatically\n",{"type":40,"tag":864,"props":4957,"children":4958},{"class":866,"line":1243},[4959,4963,4967,4971,4975,4979,4983,4987,4991,4995,4999,5004,5008,5013,5017,5022],{"type":40,"tag":864,"props":4960,"children":4961},{"style":1079},[4962],{"type":46,"value":1124},{"type":40,"tag":864,"props":4964,"children":4965},{"style":956},[4966],{"type":46,"value":959},{"type":40,"tag":864,"props":4968,"children":4969},{"style":962},[4970],{"type":46,"value":1133},{"type":40,"tag":864,"props":4972,"children":4973},{"style":956},[4974],{"type":46,"value":1097},{"type":40,"tag":864,"props":4976,"children":4977},{"style":962},[4978],{"type":46,"value":1418},{"type":40,"tag":864,"props":4980,"children":4981},{"style":956},[4982],{"type":46,"value":970},{"type":40,"tag":864,"props":4984,"children":4985},{"style":956},[4986],{"type":46,"value":1142},{"type":40,"tag":864,"props":4988,"children":4989},{"style":950},[4990],{"type":46,"value":1147},{"type":40,"tag":864,"props":4992,"children":4993},{"style":962},[4994],{"type":46,"value":1102},{"type":40,"tag":864,"props":4996,"children":4997},{"style":956},[4998],{"type":46,"value":74},{"type":40,"tag":864,"props":5000,"children":5001},{"style":962},[5002],{"type":46,"value":5003},"supabaseAdmin",{"type":40,"tag":864,"props":5005,"children":5006},{"style":956},[5007],{"type":46,"value":74},{"type":40,"tag":864,"props":5009,"children":5010},{"style":962},[5011],{"type":46,"value":5012},"functions",{"type":40,"tag":864,"props":5014,"children":5015},{"style":956},[5016],{"type":46,"value":74},{"type":40,"tag":864,"props":5018,"children":5019},{"style":1037},[5020],{"type":46,"value":5021},"invoke",{"type":40,"tag":864,"props":5023,"children":5024},{"style":1026},[5025],{"type":46,"value":1543},{"type":40,"tag":864,"props":5027,"children":5028},{"class":866,"line":1261},[5029,5034,5039,5043],{"type":40,"tag":864,"props":5030,"children":5031},{"style":956},[5032],{"type":46,"value":5033},"      '",{"type":40,"tag":864,"props":5035,"children":5036},{"style":983},[5037],{"type":46,"value":5038},"process-order",{"type":40,"tag":864,"props":5040,"children":5041},{"style":956},[5042],{"type":46,"value":1071},{"type":40,"tag":864,"props":5044,"children":5045},{"style":956},[5046],{"type":46,"value":1258},{"type":40,"tag":864,"props":5048,"children":5049},{"class":866,"line":1520},[5050,5055,5059,5063,5067,5071,5075],{"type":40,"tag":864,"props":5051,"children":5052},{"style":956},[5053],{"type":46,"value":5054},"      {",{"type":40,"tag":864,"props":5056,"children":5057},{"style":1026},[5058],{"type":46,"value":3471},{"type":40,"tag":864,"props":5060,"children":5061},{"style":956},[5062],{"type":46,"value":1034},{"type":40,"tag":864,"props":5064,"children":5065},{"style":956},[5066],{"type":46,"value":959},{"type":40,"tag":864,"props":5068,"children":5069},{"style":962},[5070],{"type":46,"value":4465},{"type":40,"tag":864,"props":5072,"children":5073},{"style":956},[5074],{"type":46,"value":970},{"type":40,"tag":864,"props":5076,"children":5077},{"style":956},[5078],{"type":46,"value":1604},{"type":40,"tag":864,"props":5080,"children":5081},{"class":866,"line":1546},[5082],{"type":40,"tag":864,"props":5083,"children":5084},{"style":1026},[5085],{"type":46,"value":5086},"    )\n",{"type":40,"tag":864,"props":5088,"children":5089},{"class":866,"line":1607},[5090],{"type":40,"tag":864,"props":5091,"children":5092},{"emptyLinePlaceholder":997},[5093],{"type":46,"value":1000},{"type":40,"tag":864,"props":5095,"children":5096},{"class":866,"line":27},[5097,5101,5105,5109,5113],{"type":40,"tag":864,"props":5098,"children":5099},{"style":950},[5100],{"type":46,"value":1498},{"type":40,"tag":864,"props":5102,"children":5103},{"style":1026},[5104],{"type":46,"value":442},{"type":40,"tag":864,"props":5106,"children":5107},{"style":962},[5108],{"type":46,"value":1507},{"type":40,"tag":864,"props":5110,"children":5111},{"style":1026},[5112],{"type":46,"value":1512},{"type":40,"tag":864,"props":5114,"children":5115},{"style":956},[5116],{"type":46,"value":1517},{"type":40,"tag":864,"props":5118,"children":5119},{"class":866,"line":1649},[5120,5124,5128,5132,5136,5140,5144,5148,5152,5156,5160,5164,5168,5172,5176,5180,5186,5190],{"type":40,"tag":864,"props":5121,"children":5122},{"style":950},[5123],{"type":46,"value":1526},{"type":40,"tag":864,"props":5125,"children":5126},{"style":962},[5127],{"type":46,"value":1217},{"type":40,"tag":864,"props":5129,"children":5130},{"style":956},[5131],{"type":46,"value":74},{"type":40,"tag":864,"props":5133,"children":5134},{"style":1037},[5135],{"type":46,"value":1226},{"type":40,"tag":864,"props":5137,"children":5138},{"style":1026},[5139],{"type":46,"value":1044},{"type":40,"tag":864,"props":5141,"children":5142},{"style":956},[5143],{"type":46,"value":1049},{"type":40,"tag":864,"props":5145,"children":5146},{"style":1026},[5147],{"type":46,"value":1418},{"type":40,"tag":864,"props":5149,"children":5150},{"style":956},[5151],{"type":46,"value":1034},{"type":40,"tag":864,"props":5153,"children":5154},{"style":962},[5155],{"type":46,"value":1418},{"type":40,"tag":864,"props":5157,"children":5158},{"style":956},[5159],{"type":46,"value":74},{"type":40,"tag":864,"props":5161,"children":5162},{"style":962},[5163],{"type":46,"value":1574},{"type":40,"tag":864,"props":5165,"children":5166},{"style":956},[5167],{"type":46,"value":1076},{"type":40,"tag":864,"props":5169,"children":5170},{"style":956},[5171],{"type":46,"value":959},{"type":40,"tag":864,"props":5173,"children":5174},{"style":1026},[5175],{"type":46,"value":1617},{"type":40,"tag":864,"props":5177,"children":5178},{"style":956},[5179],{"type":46,"value":1034},{"type":40,"tag":864,"props":5181,"children":5183},{"style":5182},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[5184],{"type":46,"value":5185}," 500",{"type":40,"tag":864,"props":5187,"children":5188},{"style":956},[5189],{"type":46,"value":970},{"type":40,"tag":864,"props":5191,"children":5192},{"style":1026},[5193],{"type":46,"value":1240},{"type":40,"tag":864,"props":5195,"children":5196},{"class":866,"line":1658},[5197],{"type":40,"tag":864,"props":5198,"children":5199},{"style":956},[5200],{"type":46,"value":1655},{"type":40,"tag":864,"props":5202,"children":5203},{"class":866,"line":1738},[5204,5208,5212,5216,5220,5224,5228],{"type":40,"tag":864,"props":5205,"children":5206},{"style":950},[5207],{"type":46,"value":1212},{"type":40,"tag":864,"props":5209,"children":5210},{"style":962},[5211],{"type":46,"value":1217},{"type":40,"tag":864,"props":5213,"children":5214},{"style":956},[5215],{"type":46,"value":74},{"type":40,"tag":864,"props":5217,"children":5218},{"style":1037},[5219],{"type":46,"value":1226},{"type":40,"tag":864,"props":5221,"children":5222},{"style":1026},[5223],{"type":46,"value":1044},{"type":40,"tag":864,"props":5225,"children":5226},{"style":962},[5227],{"type":46,"value":1235},{"type":40,"tag":864,"props":5229,"children":5230},{"style":1026},[5231],{"type":46,"value":1240},{"type":40,"tag":864,"props":5233,"children":5234},{"class":866,"line":1770},[5235,5239,5243],{"type":40,"tag":864,"props":5236,"children":5237},{"style":956},[5238],{"type":46,"value":1249},{"type":40,"tag":864,"props":5240,"children":5241},{"style":962},[5242],{"type":46,"value":450},{"type":40,"tag":864,"props":5244,"children":5245},{"style":956},[5246],{"type":46,"value":1258},{"type":40,"tag":864,"props":5248,"children":5249},{"class":866,"line":1779},[5250],{"type":40,"tag":864,"props":5251,"children":5252},{"style":956},[5253],{"type":46,"value":1267},{"type":40,"tag":903,"props":5255,"children":5257},{"id":5256},"calling-from-database-with-pg_net",[5258],{"type":46,"value":5259},"Calling from database with pg_net",{"type":40,"tag":53,"props":5261,"children":5262},{},[5263,5265,5271],{"type":46,"value":5264},"Use ",{"type":40,"tag":100,"props":5266,"children":5268},{"className":5267},[],[5269],{"type":46,"value":5270},"pg_net",{"type":46,"value":5272}," to call Edge Functions directly from SQL. The secret key is stored in Vault so it never appears in queries.",{"type":40,"tag":53,"props":5274,"children":5275},{},[5276],{"type":40,"tag":57,"props":5277,"children":5278},{},[5279],{"type":46,"value":5280},"Prerequisites:",{"type":40,"tag":853,"props":5282,"children":5286},{"className":5283,"code":5284,"language":5285,"meta":858,"style":858},"language-sql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","-- 1. Enable the pg_net extension\ncreate extension if not exists pg_net with schema extensions;\n\n-- 2. Store your secret key in Vault\nselect vault.create_secret(\n  'sb_secret_...',        -- your secret key value\n  'supabase_secret_key'   -- a name to reference it by\n);\n","sql",[5287],{"type":40,"tag":100,"props":5288,"children":5289},{"__ignoreMap":858},[5290,5298,5306,5313,5321,5329,5337,5345],{"type":40,"tag":864,"props":5291,"children":5292},{"class":866,"line":867},[5293],{"type":40,"tag":864,"props":5294,"children":5295},{},[5296],{"type":46,"value":5297},"-- 1. Enable the pg_net extension\n",{"type":40,"tag":864,"props":5299,"children":5300},{"class":866,"line":876},[5301],{"type":40,"tag":864,"props":5302,"children":5303},{},[5304],{"type":46,"value":5305},"create extension if not exists pg_net with schema extensions;\n",{"type":40,"tag":864,"props":5307,"children":5308},{"class":866,"line":993},[5309],{"type":40,"tag":864,"props":5310,"children":5311},{"emptyLinePlaceholder":997},[5312],{"type":46,"value":1000},{"type":40,"tag":864,"props":5314,"children":5315},{"class":866,"line":1003},[5316],{"type":40,"tag":864,"props":5317,"children":5318},{},[5319],{"type":46,"value":5320},"-- 2. Store your secret key in Vault\n",{"type":40,"tag":864,"props":5322,"children":5323},{"class":866,"line":1022},[5324],{"type":40,"tag":864,"props":5325,"children":5326},{},[5327],{"type":46,"value":5328},"select vault.create_secret(\n",{"type":40,"tag":864,"props":5330,"children":5331},{"class":866,"line":1118},[5332],{"type":40,"tag":864,"props":5333,"children":5334},{},[5335],{"type":46,"value":5336},"  'sb_secret_...',        -- your secret key value\n",{"type":40,"tag":864,"props":5338,"children":5339},{"class":866,"line":1206},[5340],{"type":40,"tag":864,"props":5341,"children":5342},{},[5343],{"type":46,"value":5344},"  'supabase_secret_key'   -- a name to reference it by\n",{"type":40,"tag":864,"props":5346,"children":5347},{"class":866,"line":1243},[5348],{"type":40,"tag":864,"props":5349,"children":5350},{},[5351],{"type":46,"value":5352},");\n",{"type":40,"tag":53,"props":5354,"children":5355},{},[5356],{"type":40,"tag":57,"props":5357,"children":5358},{},[5359],{"type":46,"value":5360},"Call the function:",{"type":40,"tag":853,"props":5362,"children":5364},{"className":5283,"code":5363,"language":5285,"meta":858,"style":858},"select net.http_post(\n  url := 'https:\u002F\u002F\u003Cproject-ref>.supabase.co\u002Ffunctions\u002Fv1\u002Fprocess-order',\n  headers := jsonb_build_object(\n    'Content-Type', 'application\u002Fjson',\n    'apikey', (\n      select decrypted_secret\n      from vault.decrypted_secrets\n      where name = 'supabase_secret_key'\n    )\n  ),\n  body := jsonb_build_object('orderId', 'order_123')\n);\n",[5365],{"type":40,"tag":100,"props":5366,"children":5367},{"__ignoreMap":858},[5368,5376,5384,5392,5400,5408,5416,5424,5432,5439,5447,5455],{"type":40,"tag":864,"props":5369,"children":5370},{"class":866,"line":867},[5371],{"type":40,"tag":864,"props":5372,"children":5373},{},[5374],{"type":46,"value":5375},"select net.http_post(\n",{"type":40,"tag":864,"props":5377,"children":5378},{"class":866,"line":876},[5379],{"type":40,"tag":864,"props":5380,"children":5381},{},[5382],{"type":46,"value":5383},"  url := 'https:\u002F\u002F\u003Cproject-ref>.supabase.co\u002Ffunctions\u002Fv1\u002Fprocess-order',\n",{"type":40,"tag":864,"props":5385,"children":5386},{"class":866,"line":993},[5387],{"type":40,"tag":864,"props":5388,"children":5389},{},[5390],{"type":46,"value":5391},"  headers := jsonb_build_object(\n",{"type":40,"tag":864,"props":5393,"children":5394},{"class":866,"line":1003},[5395],{"type":40,"tag":864,"props":5396,"children":5397},{},[5398],{"type":46,"value":5399},"    'Content-Type', 'application\u002Fjson',\n",{"type":40,"tag":864,"props":5401,"children":5402},{"class":866,"line":1022},[5403],{"type":40,"tag":864,"props":5404,"children":5405},{},[5406],{"type":46,"value":5407},"    'apikey', (\n",{"type":40,"tag":864,"props":5409,"children":5410},{"class":866,"line":1118},[5411],{"type":40,"tag":864,"props":5412,"children":5413},{},[5414],{"type":46,"value":5415},"      select decrypted_secret\n",{"type":40,"tag":864,"props":5417,"children":5418},{"class":866,"line":1206},[5419],{"type":40,"tag":864,"props":5420,"children":5421},{},[5422],{"type":46,"value":5423},"      from vault.decrypted_secrets\n",{"type":40,"tag":864,"props":5425,"children":5426},{"class":866,"line":1243},[5427],{"type":40,"tag":864,"props":5428,"children":5429},{},[5430],{"type":46,"value":5431},"      where name = 'supabase_secret_key'\n",{"type":40,"tag":864,"props":5433,"children":5434},{"class":866,"line":1261},[5435],{"type":40,"tag":864,"props":5436,"children":5437},{},[5438],{"type":46,"value":5086},{"type":40,"tag":864,"props":5440,"children":5441},{"class":866,"line":1520},[5442],{"type":40,"tag":864,"props":5443,"children":5444},{},[5445],{"type":46,"value":5446},"  ),\n",{"type":40,"tag":864,"props":5448,"children":5449},{"class":866,"line":1546},[5450],{"type":40,"tag":864,"props":5451,"children":5452},{},[5453],{"type":46,"value":5454},"  body := jsonb_build_object('orderId', 'order_123')\n",{"type":40,"tag":864,"props":5456,"children":5457},{"class":866,"line":1607},[5458],{"type":40,"tag":864,"props":5459,"children":5460},{},[5461],{"type":46,"value":5352},{"type":40,"tag":53,"props":5463,"children":5464},{},[5465,5467,5472,5474,5479,5481,5487],{"type":46,"value":5466},"The receiving function uses ",{"type":40,"tag":100,"props":5468,"children":5470},{"className":5469},[],[5471],{"type":46,"value":511},{"type":46,"value":5473}," (see example above). ",{"type":40,"tag":100,"props":5475,"children":5477},{"className":5476},[],[5478],{"type":46,"value":5270},{"type":46,"value":5480}," is asynchronous — the HTTP request is queued and executed in the background. Check ",{"type":40,"tag":100,"props":5482,"children":5484},{"className":5483},[],[5485],{"type":46,"value":5486},"net._http_response",{"type":46,"value":5488}," for results.",{"type":40,"tag":903,"props":5490,"children":5492},{"id":5491},"stripe-webhook",[5493],{"type":46,"value":5494},"Stripe webhook",{"type":40,"tag":53,"props":5496,"children":5497},{},[5498,5500,5505],{"type":46,"value":5499},"External webhook providers like Stripe cannot send your Supabase API keys. Use ",{"type":40,"tag":100,"props":5501,"children":5503},{"className":5502},[],[5504],{"type":46,"value":841},{"type":46,"value":5506}," to skip credential checks, then verify the webhook signature inside the handler.",{"type":40,"tag":53,"props":5508,"children":5509},{},[5510,5514,5515,5520],{"type":40,"tag":57,"props":5511,"children":5512},{},[5513],{"type":46,"value":4259},{"type":46,"value":442},{"type":40,"tag":100,"props":5516,"children":5518},{"className":5517},[],[5519],{"type":46,"value":849},{"type":46,"value":4267},{"type":40,"tag":853,"props":5522,"children":5524},{"className":855,"code":5523,"language":857,"meta":858,"style":858},"[functions.stripe-webhook]\nverify_jwt = false\n",[5525],{"type":40,"tag":100,"props":5526,"children":5527},{"__ignoreMap":858},[5528,5536],{"type":40,"tag":864,"props":5529,"children":5530},{"class":866,"line":867},[5531],{"type":40,"tag":864,"props":5532,"children":5533},{},[5534],{"type":46,"value":5535},"[functions.stripe-webhook]\n",{"type":40,"tag":864,"props":5537,"children":5538},{"class":866,"line":876},[5539],{"type":40,"tag":864,"props":5540,"children":5541},{},[5542],{"type":46,"value":882},{"type":40,"tag":53,"props":5544,"children":5545},{},[5546],{"type":40,"tag":57,"props":5547,"children":5548},{},[5549],{"type":46,"value":5550},"Set secrets:",{"type":40,"tag":853,"props":5552,"children":5556},{"className":5553,"code":5554,"language":5555,"meta":858,"style":858},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","supabase secrets set STRIPE_SECRET_KEY=sk_live_...\nsupabase secrets set STRIPE_WEBHOOK_SECRET=whsec_...\n","bash",[5557],{"type":40,"tag":100,"props":5558,"children":5559},{"__ignoreMap":858},[5560,5582],{"type":40,"tag":864,"props":5561,"children":5562},{"class":866,"line":867},[5563,5567,5572,5577],{"type":40,"tag":864,"props":5564,"children":5565},{"style":1371},[5566],{"type":46,"value":8},{"type":40,"tag":864,"props":5568,"children":5569},{"style":983},[5570],{"type":46,"value":5571}," secrets",{"type":40,"tag":864,"props":5573,"children":5574},{"style":983},[5575],{"type":46,"value":5576}," set",{"type":40,"tag":864,"props":5578,"children":5579},{"style":983},[5580],{"type":46,"value":5581}," STRIPE_SECRET_KEY=sk_live_...\n",{"type":40,"tag":864,"props":5583,"children":5584},{"class":866,"line":876},[5585,5589,5593,5597],{"type":40,"tag":864,"props":5586,"children":5587},{"style":1371},[5588],{"type":46,"value":8},{"type":40,"tag":864,"props":5590,"children":5591},{"style":983},[5592],{"type":46,"value":5571},{"type":40,"tag":864,"props":5594,"children":5595},{"style":983},[5596],{"type":46,"value":5576},{"type":40,"tag":864,"props":5598,"children":5599},{"style":983},[5600],{"type":46,"value":5601}," STRIPE_WEBHOOK_SECRET=whsec_...\n",{"type":40,"tag":53,"props":5603,"children":5604},{},[5605,5610,5611,5617],{"type":40,"tag":57,"props":5606,"children":5607},{},[5608],{"type":46,"value":5609},"Function",{"type":46,"value":442},{"type":40,"tag":100,"props":5612,"children":5614},{"className":5613},[],[5615],{"type":46,"value":5616},"supabase\u002Ffunctions\u002Fstripe-webhook\u002Findex.ts",{"type":46,"value":4267},{"type":40,"tag":853,"props":5619,"children":5621},{"className":929,"code":5620,"language":931,"meta":858,"style":858},"import { withSupabase } from 'npm:@supabase\u002Fserver'\nimport Stripe from 'npm:stripe'\n\nconst stripe = new Stripe(Deno.env.get('STRIPE_SECRET_KEY')!)\n\nexport default {\n  fetch: withSupabase({ auth: 'none' }, async (req, ctx) => {\n    const body = await req.text()\n    const sig = req.headers.get('stripe-signature')!\n\n    let event: Stripe.Event\n    try {\n      event = await stripe.webhooks.constructEventAsync(\n        body,\n        sig,\n        Deno.env.get('STRIPE_WEBHOOK_SECRET')!,\n      )\n    } catch {\n      return Response.json({ error: 'Invalid signature' }, { status: 401 })\n    }\n\n    switch (event.type) {\n      case 'checkout.session.completed': {\n        const session = event.data.object as Stripe.Checkout.Session\n        await ctx.supabaseAdmin\n          .from('orders')\n          .update({ status: 'paid' })\n          .eq('stripe_session_id', session.id)\n        break\n      }\n    }\n\n    return Response.json({ received: true })\n  }),\n}\n",[5622],{"type":40,"tag":100,"props":5623,"children":5624},{"__ignoreMap":858},[5625,5660,5689,5696,5772,5779,5794,5873,5908,5971,5978,6008,6020,6063,6075,6087,6137,6144,6160,6238,6246,6254,6289,6319,6385,6406,6439,6488,6537,6546,6555,6563,6571,6620,6636],{"type":40,"tag":864,"props":5626,"children":5627},{"class":866,"line":867},[5628,5632,5636,5640,5644,5648,5652,5656],{"type":40,"tag":864,"props":5629,"children":5630},{"style":950},[5631],{"type":46,"value":953},{"type":40,"tag":864,"props":5633,"children":5634},{"style":956},[5635],{"type":46,"value":959},{"type":40,"tag":864,"props":5637,"children":5638},{"style":962},[5639],{"type":46,"value":965},{"type":40,"tag":864,"props":5641,"children":5642},{"style":956},[5643],{"type":46,"value":970},{"type":40,"tag":864,"props":5645,"children":5646},{"style":950},[5647],{"type":46,"value":975},{"type":40,"tag":864,"props":5649,"children":5650},{"style":956},[5651],{"type":46,"value":980},{"type":40,"tag":864,"props":5653,"children":5654},{"style":983},[5655],{"type":46,"value":681},{"type":40,"tag":864,"props":5657,"children":5658},{"style":956},[5659],{"type":46,"value":990},{"type":40,"tag":864,"props":5661,"children":5662},{"class":866,"line":876},[5663,5667,5672,5676,5680,5685],{"type":40,"tag":864,"props":5664,"children":5665},{"style":950},[5666],{"type":46,"value":953},{"type":40,"tag":864,"props":5668,"children":5669},{"style":962},[5670],{"type":46,"value":5671}," Stripe ",{"type":40,"tag":864,"props":5673,"children":5674},{"style":950},[5675],{"type":46,"value":1168},{"type":40,"tag":864,"props":5677,"children":5678},{"style":956},[5679],{"type":46,"value":980},{"type":40,"tag":864,"props":5681,"children":5682},{"style":983},[5683],{"type":46,"value":5684},"npm:stripe",{"type":40,"tag":864,"props":5686,"children":5687},{"style":956},[5688],{"type":46,"value":990},{"type":40,"tag":864,"props":5690,"children":5691},{"class":866,"line":993},[5692],{"type":40,"tag":864,"props":5693,"children":5694},{"emptyLinePlaceholder":997},[5695],{"type":46,"value":1000},{"type":40,"tag":864,"props":5697,"children":5698},{"class":866,"line":1003},[5699,5703,5708,5712,5716,5721,5726,5730,5734,5738,5742,5746,5750,5755,5759,5763,5768],{"type":40,"tag":864,"props":5700,"children":5701},{"style":1079},[5702],{"type":46,"value":2228},{"type":40,"tag":864,"props":5704,"children":5705},{"style":962},[5706],{"type":46,"value":5707}," stripe ",{"type":40,"tag":864,"props":5709,"children":5710},{"style":956},[5711],{"type":46,"value":2238},{"type":40,"tag":864,"props":5713,"children":5714},{"style":956},[5715],{"type":46,"value":2243},{"type":40,"tag":864,"props":5717,"children":5718},{"style":1037},[5719],{"type":46,"value":5720}," Stripe",{"type":40,"tag":864,"props":5722,"children":5723},{"style":962},[5724],{"type":46,"value":5725},"(Deno",{"type":40,"tag":864,"props":5727,"children":5728},{"style":956},[5729],{"type":46,"value":74},{"type":40,"tag":864,"props":5731,"children":5732},{"style":962},[5733],{"type":46,"value":1817},{"type":40,"tag":864,"props":5735,"children":5736},{"style":956},[5737],{"type":46,"value":74},{"type":40,"tag":864,"props":5739,"children":5740},{"style":1037},[5741],{"type":46,"value":2353},{"type":40,"tag":864,"props":5743,"children":5744},{"style":962},[5745],{"type":46,"value":1044},{"type":40,"tag":864,"props":5747,"children":5748},{"style":956},[5749],{"type":46,"value":1071},{"type":40,"tag":864,"props":5751,"children":5752},{"style":983},[5753],{"type":46,"value":5754},"STRIPE_SECRET_KEY",{"type":40,"tag":864,"props":5756,"children":5757},{"style":956},[5758],{"type":46,"value":1071},{"type":40,"tag":864,"props":5760,"children":5761},{"style":962},[5762],{"type":46,"value":450},{"type":40,"tag":864,"props":5764,"children":5765},{"style":956},[5766],{"type":46,"value":5767},"!",{"type":40,"tag":864,"props":5769,"children":5770},{"style":962},[5771],{"type":46,"value":1240},{"type":40,"tag":864,"props":5773,"children":5774},{"class":866,"line":1022},[5775],{"type":40,"tag":864,"props":5776,"children":5777},{"emptyLinePlaceholder":997},[5778],{"type":46,"value":1000},{"type":40,"tag":864,"props":5780,"children":5781},{"class":866,"line":1118},[5782,5786,5790],{"type":40,"tag":864,"props":5783,"children":5784},{"style":950},[5785],{"type":46,"value":1009},{"type":40,"tag":864,"props":5787,"children":5788},{"style":950},[5789],{"type":46,"value":1014},{"type":40,"tag":864,"props":5791,"children":5792},{"style":956},[5793],{"type":46,"value":1019},{"type":40,"tag":864,"props":5795,"children":5796},{"class":866,"line":1206},[5797,5801,5805,5809,5813,5817,5821,5825,5829,5833,5837,5841,5845,5849,5853,5857,5861,5865,5869],{"type":40,"tag":864,"props":5798,"children":5799},{"style":1026},[5800],{"type":46,"value":1029},{"type":40,"tag":864,"props":5802,"children":5803},{"style":956},[5804],{"type":46,"value":1034},{"type":40,"tag":864,"props":5806,"children":5807},{"style":1037},[5808],{"type":46,"value":965},{"type":40,"tag":864,"props":5810,"children":5811},{"style":962},[5812],{"type":46,"value":1044},{"type":40,"tag":864,"props":5814,"children":5815},{"style":956},[5816],{"type":46,"value":1049},{"type":40,"tag":864,"props":5818,"children":5819},{"style":1026},[5820],{"type":46,"value":1054},{"type":40,"tag":864,"props":5822,"children":5823},{"style":956},[5824],{"type":46,"value":1034},{"type":40,"tag":864,"props":5826,"children":5827},{"style":956},[5828],{"type":46,"value":980},{"type":40,"tag":864,"props":5830,"children":5831},{"style":983},[5832],{"type":46,"value":595},{"type":40,"tag":864,"props":5834,"children":5835},{"style":956},[5836],{"type":46,"value":1071},{"type":40,"tag":864,"props":5838,"children":5839},{"style":956},[5840],{"type":46,"value":1076},{"type":40,"tag":864,"props":5842,"children":5843},{"style":1079},[5844],{"type":46,"value":1082},{"type":40,"tag":864,"props":5846,"children":5847},{"style":956},[5848],{"type":46,"value":442},{"type":40,"tag":864,"props":5850,"children":5851},{"style":1089},[5852],{"type":46,"value":1364},{"type":40,"tag":864,"props":5854,"children":5855},{"style":956},[5856],{"type":46,"value":1097},{"type":40,"tag":864,"props":5858,"children":5859},{"style":1089},[5860],{"type":46,"value":1102},{"type":40,"tag":864,"props":5862,"children":5863},{"style":956},[5864],{"type":46,"value":450},{"type":40,"tag":864,"props":5866,"children":5867},{"style":1079},[5868],{"type":46,"value":1111},{"type":40,"tag":864,"props":5870,"children":5871},{"style":956},[5872],{"type":46,"value":1019},{"type":40,"tag":864,"props":5874,"children":5875},{"class":866,"line":1243},[5876,5880,5884,5888,5892,5896,5900,5904],{"type":40,"tag":864,"props":5877,"children":5878},{"style":1079},[5879],{"type":46,"value":1124},{"type":40,"tag":864,"props":5881,"children":5882},{"style":962},[5883],{"type":46,"value":3471},{"type":40,"tag":864,"props":5885,"children":5886},{"style":956},[5887],{"type":46,"value":1142},{"type":40,"tag":864,"props":5889,"children":5890},{"style":950},[5891],{"type":46,"value":1147},{"type":40,"tag":864,"props":5893,"children":5894},{"style":962},[5895],{"type":46,"value":3484},{"type":40,"tag":864,"props":5897,"children":5898},{"style":956},[5899],{"type":46,"value":74},{"type":40,"tag":864,"props":5901,"children":5902},{"style":1037},[5903],{"type":46,"value":46},{"type":40,"tag":864,"props":5905,"children":5906},{"style":1026},[5907],{"type":46,"value":1203},{"type":40,"tag":864,"props":5909,"children":5910},{"class":866,"line":1261},[5911,5915,5920,5924,5928,5932,5937,5941,5945,5949,5953,5958,5962,5966],{"type":40,"tag":864,"props":5912,"children":5913},{"style":1079},[5914],{"type":46,"value":1124},{"type":40,"tag":864,"props":5916,"children":5917},{"style":962},[5918],{"type":46,"value":5919}," sig",{"type":40,"tag":864,"props":5921,"children":5922},{"style":956},[5923],{"type":46,"value":1142},{"type":40,"tag":864,"props":5925,"children":5926},{"style":962},[5927],{"type":46,"value":3484},{"type":40,"tag":864,"props":5929,"children":5930},{"style":956},[5931],{"type":46,"value":74},{"type":40,"tag":864,"props":5933,"children":5934},{"style":962},[5935],{"type":46,"value":5936},"headers",{"type":40,"tag":864,"props":5938,"children":5939},{"style":956},[5940],{"type":46,"value":74},{"type":40,"tag":864,"props":5942,"children":5943},{"style":1037},[5944],{"type":46,"value":2353},{"type":40,"tag":864,"props":5946,"children":5947},{"style":1026},[5948],{"type":46,"value":1044},{"type":40,"tag":864,"props":5950,"children":5951},{"style":956},[5952],{"type":46,"value":1071},{"type":40,"tag":864,"props":5954,"children":5955},{"style":983},[5956],{"type":46,"value":5957},"stripe-signature",{"type":40,"tag":864,"props":5959,"children":5960},{"style":956},[5961],{"type":46,"value":1071},{"type":40,"tag":864,"props":5963,"children":5964},{"style":1026},[5965],{"type":46,"value":450},{"type":40,"tag":864,"props":5967,"children":5968},{"style":956},[5969],{"type":46,"value":5970},"!\n",{"type":40,"tag":864,"props":5972,"children":5973},{"class":866,"line":1520},[5974],{"type":40,"tag":864,"props":5975,"children":5976},{"emptyLinePlaceholder":997},[5977],{"type":46,"value":1000},{"type":40,"tag":864,"props":5979,"children":5980},{"class":866,"line":1546},[5981,5986,5991,5995,5999,6003],{"type":40,"tag":864,"props":5982,"children":5983},{"style":1079},[5984],{"type":46,"value":5985},"    let",{"type":40,"tag":864,"props":5987,"children":5988},{"style":962},[5989],{"type":46,"value":5990}," event",{"type":40,"tag":864,"props":5992,"children":5993},{"style":956},[5994],{"type":46,"value":1034},{"type":40,"tag":864,"props":5996,"children":5997},{"style":1371},[5998],{"type":46,"value":5720},{"type":40,"tag":864,"props":6000,"children":6001},{"style":956},[6002],{"type":46,"value":74},{"type":40,"tag":864,"props":6004,"children":6005},{"style":1371},[6006],{"type":46,"value":6007},"Event\n",{"type":40,"tag":864,"props":6009,"children":6010},{"class":866,"line":1607},[6011,6016],{"type":40,"tag":864,"props":6012,"children":6013},{"style":950},[6014],{"type":46,"value":6015},"    try",{"type":40,"tag":864,"props":6017,"children":6018},{"style":956},[6019],{"type":46,"value":1019},{"type":40,"tag":864,"props":6021,"children":6022},{"class":866,"line":27},[6023,6028,6032,6036,6041,6045,6050,6054,6059],{"type":40,"tag":864,"props":6024,"children":6025},{"style":962},[6026],{"type":46,"value":6027},"      event",{"type":40,"tag":864,"props":6029,"children":6030},{"style":956},[6031],{"type":46,"value":1142},{"type":40,"tag":864,"props":6033,"children":6034},{"style":950},[6035],{"type":46,"value":1147},{"type":40,"tag":864,"props":6037,"children":6038},{"style":962},[6039],{"type":46,"value":6040}," stripe",{"type":40,"tag":864,"props":6042,"children":6043},{"style":956},[6044],{"type":46,"value":74},{"type":40,"tag":864,"props":6046,"children":6047},{"style":962},[6048],{"type":46,"value":6049},"webhooks",{"type":40,"tag":864,"props":6051,"children":6052},{"style":956},[6053],{"type":46,"value":74},{"type":40,"tag":864,"props":6055,"children":6056},{"style":1037},[6057],{"type":46,"value":6058},"constructEventAsync",{"type":40,"tag":864,"props":6060,"children":6061},{"style":1026},[6062],{"type":46,"value":1543},{"type":40,"tag":864,"props":6064,"children":6065},{"class":866,"line":1649},[6066,6071],{"type":40,"tag":864,"props":6067,"children":6068},{"style":962},[6069],{"type":46,"value":6070},"        body",{"type":40,"tag":864,"props":6072,"children":6073},{"style":956},[6074],{"type":46,"value":1258},{"type":40,"tag":864,"props":6076,"children":6077},{"class":866,"line":1658},[6078,6083],{"type":40,"tag":864,"props":6079,"children":6080},{"style":962},[6081],{"type":46,"value":6082},"        sig",{"type":40,"tag":864,"props":6084,"children":6085},{"style":956},[6086],{"type":46,"value":1258},{"type":40,"tag":864,"props":6088,"children":6089},{"class":866,"line":1738},[6090,6095,6099,6103,6107,6111,6115,6119,6124,6128,6132],{"type":40,"tag":864,"props":6091,"children":6092},{"style":962},[6093],{"type":46,"value":6094},"        Deno",{"type":40,"tag":864,"props":6096,"children":6097},{"style":956},[6098],{"type":46,"value":74},{"type":40,"tag":864,"props":6100,"children":6101},{"style":962},[6102],{"type":46,"value":1817},{"type":40,"tag":864,"props":6104,"children":6105},{"style":956},[6106],{"type":46,"value":74},{"type":40,"tag":864,"props":6108,"children":6109},{"style":1037},[6110],{"type":46,"value":2353},{"type":40,"tag":864,"props":6112,"children":6113},{"style":1026},[6114],{"type":46,"value":1044},{"type":40,"tag":864,"props":6116,"children":6117},{"style":956},[6118],{"type":46,"value":1071},{"type":40,"tag":864,"props":6120,"children":6121},{"style":983},[6122],{"type":46,"value":6123},"STRIPE_WEBHOOK_SECRET",{"type":40,"tag":864,"props":6125,"children":6126},{"style":956},[6127],{"type":46,"value":1071},{"type":40,"tag":864,"props":6129,"children":6130},{"style":1026},[6131],{"type":46,"value":450},{"type":40,"tag":864,"props":6133,"children":6134},{"style":956},[6135],{"type":46,"value":6136},"!,\n",{"type":40,"tag":864,"props":6138,"children":6139},{"class":866,"line":1770},[6140],{"type":40,"tag":864,"props":6141,"children":6142},{"style":1026},[6143],{"type":46,"value":1646},{"type":40,"tag":864,"props":6145,"children":6146},{"class":866,"line":1779},[6147,6151,6156],{"type":40,"tag":864,"props":6148,"children":6149},{"style":956},[6150],{"type":46,"value":1486},{"type":40,"tag":864,"props":6152,"children":6153},{"style":950},[6154],{"type":46,"value":6155}," catch",{"type":40,"tag":864,"props":6157,"children":6158},{"style":956},[6159],{"type":46,"value":1019},{"type":40,"tag":864,"props":6161,"children":6163},{"class":866,"line":6162},19,[6164,6168,6172,6176,6180,6184,6188,6192,6196,6200,6205,6209,6213,6217,6221,6225,6230,6234],{"type":40,"tag":864,"props":6165,"children":6166},{"style":950},[6167],{"type":46,"value":1526},{"type":40,"tag":864,"props":6169,"children":6170},{"style":962},[6171],{"type":46,"value":1217},{"type":40,"tag":864,"props":6173,"children":6174},{"style":956},[6175],{"type":46,"value":74},{"type":40,"tag":864,"props":6177,"children":6178},{"style":1037},[6179],{"type":46,"value":1226},{"type":40,"tag":864,"props":6181,"children":6182},{"style":1026},[6183],{"type":46,"value":1044},{"type":40,"tag":864,"props":6185,"children":6186},{"style":956},[6187],{"type":46,"value":1049},{"type":40,"tag":864,"props":6189,"children":6190},{"style":1026},[6191],{"type":46,"value":1418},{"type":40,"tag":864,"props":6193,"children":6194},{"style":956},[6195],{"type":46,"value":1034},{"type":40,"tag":864,"props":6197,"children":6198},{"style":956},[6199],{"type":46,"value":980},{"type":40,"tag":864,"props":6201,"children":6202},{"style":983},[6203],{"type":46,"value":6204},"Invalid signature",{"type":40,"tag":864,"props":6206,"children":6207},{"style":956},[6208],{"type":46,"value":1071},{"type":40,"tag":864,"props":6210,"children":6211},{"style":956},[6212],{"type":46,"value":1076},{"type":40,"tag":864,"props":6214,"children":6215},{"style":956},[6216],{"type":46,"value":959},{"type":40,"tag":864,"props":6218,"children":6219},{"style":1026},[6220],{"type":46,"value":1617},{"type":40,"tag":864,"props":6222,"children":6223},{"style":956},[6224],{"type":46,"value":1034},{"type":40,"tag":864,"props":6226,"children":6227},{"style":5182},[6228],{"type":46,"value":6229}," 401",{"type":40,"tag":864,"props":6231,"children":6232},{"style":956},[6233],{"type":46,"value":970},{"type":40,"tag":864,"props":6235,"children":6236},{"style":1026},[6237],{"type":46,"value":1240},{"type":40,"tag":864,"props":6239,"children":6241},{"class":866,"line":6240},20,[6242],{"type":40,"tag":864,"props":6243,"children":6244},{"style":956},[6245],{"type":46,"value":1655},{"type":40,"tag":864,"props":6247,"children":6249},{"class":866,"line":6248},21,[6250],{"type":40,"tag":864,"props":6251,"children":6252},{"emptyLinePlaceholder":997},[6253],{"type":46,"value":1000},{"type":40,"tag":864,"props":6255,"children":6257},{"class":866,"line":6256},22,[6258,6263,6267,6272,6276,6281,6285],{"type":40,"tag":864,"props":6259,"children":6260},{"style":950},[6261],{"type":46,"value":6262},"    switch",{"type":40,"tag":864,"props":6264,"children":6265},{"style":1026},[6266],{"type":46,"value":442},{"type":40,"tag":864,"props":6268,"children":6269},{"style":962},[6270],{"type":46,"value":6271},"event",{"type":40,"tag":864,"props":6273,"children":6274},{"style":956},[6275],{"type":46,"value":74},{"type":40,"tag":864,"props":6277,"children":6278},{"style":962},[6279],{"type":46,"value":6280},"type",{"type":40,"tag":864,"props":6282,"children":6283},{"style":1026},[6284],{"type":46,"value":1512},{"type":40,"tag":864,"props":6286,"children":6287},{"style":956},[6288],{"type":46,"value":1517},{"type":40,"tag":864,"props":6290,"children":6292},{"class":866,"line":6291},23,[6293,6298,6302,6307,6311,6315],{"type":40,"tag":864,"props":6294,"children":6295},{"style":950},[6296],{"type":46,"value":6297},"      case",{"type":40,"tag":864,"props":6299,"children":6300},{"style":956},[6301],{"type":46,"value":980},{"type":40,"tag":864,"props":6303,"children":6304},{"style":983},[6305],{"type":46,"value":6306},"checkout.session.completed",{"type":40,"tag":864,"props":6308,"children":6309},{"style":956},[6310],{"type":46,"value":1071},{"type":40,"tag":864,"props":6312,"children":6313},{"style":956},[6314],{"type":46,"value":1034},{"type":40,"tag":864,"props":6316,"children":6317},{"style":956},[6318],{"type":46,"value":1019},{"type":40,"tag":864,"props":6320,"children":6322},{"class":866,"line":6321},24,[6323,6328,6333,6337,6341,6345,6349,6353,6358,6363,6367,6371,6376,6380],{"type":40,"tag":864,"props":6324,"children":6325},{"style":1079},[6326],{"type":46,"value":6327},"        const",{"type":40,"tag":864,"props":6329,"children":6330},{"style":962},[6331],{"type":46,"value":6332}," session",{"type":40,"tag":864,"props":6334,"children":6335},{"style":956},[6336],{"type":46,"value":1142},{"type":40,"tag":864,"props":6338,"children":6339},{"style":962},[6340],{"type":46,"value":5990},{"type":40,"tag":864,"props":6342,"children":6343},{"style":956},[6344],{"type":46,"value":74},{"type":40,"tag":864,"props":6346,"children":6347},{"style":962},[6348],{"type":46,"value":1235},{"type":40,"tag":864,"props":6350,"children":6351},{"style":956},[6352],{"type":46,"value":74},{"type":40,"tag":864,"props":6354,"children":6355},{"style":962},[6356],{"type":46,"value":6357},"object",{"type":40,"tag":864,"props":6359,"children":6360},{"style":950},[6361],{"type":46,"value":6362}," as",{"type":40,"tag":864,"props":6364,"children":6365},{"style":1371},[6366],{"type":46,"value":5720},{"type":40,"tag":864,"props":6368,"children":6369},{"style":956},[6370],{"type":46,"value":74},{"type":40,"tag":864,"props":6372,"children":6373},{"style":1371},[6374],{"type":46,"value":6375},"Checkout",{"type":40,"tag":864,"props":6377,"children":6378},{"style":956},[6379],{"type":46,"value":74},{"type":40,"tag":864,"props":6381,"children":6382},{"style":1371},[6383],{"type":46,"value":6384},"Session\n",{"type":40,"tag":864,"props":6386,"children":6388},{"class":866,"line":6387},25,[6389,6394,6398,6402],{"type":40,"tag":864,"props":6390,"children":6391},{"style":950},[6392],{"type":46,"value":6393},"        await",{"type":40,"tag":864,"props":6395,"children":6396},{"style":962},[6397],{"type":46,"value":1102},{"type":40,"tag":864,"props":6399,"children":6400},{"style":956},[6401],{"type":46,"value":74},{"type":40,"tag":864,"props":6403,"children":6404},{"style":962},[6405],{"type":46,"value":3536},{"type":40,"tag":864,"props":6407,"children":6409},{"class":866,"line":6408},26,[6410,6415,6419,6423,6427,6431,6435],{"type":40,"tag":864,"props":6411,"children":6412},{"style":956},[6413],{"type":46,"value":6414},"          .",{"type":40,"tag":864,"props":6416,"children":6417},{"style":1037},[6418],{"type":46,"value":1168},{"type":40,"tag":864,"props":6420,"children":6421},{"style":1026},[6422],{"type":46,"value":1044},{"type":40,"tag":864,"props":6424,"children":6425},{"style":956},[6426],{"type":46,"value":1071},{"type":40,"tag":864,"props":6428,"children":6429},{"style":983},[6430],{"type":46,"value":4556},{"type":40,"tag":864,"props":6432,"children":6433},{"style":956},[6434],{"type":46,"value":1071},{"type":40,"tag":864,"props":6436,"children":6437},{"style":1026},[6438],{"type":46,"value":1240},{"type":40,"tag":864,"props":6440,"children":6442},{"class":866,"line":6441},27,[6443,6447,6451,6455,6459,6463,6467,6471,6476,6480,6484],{"type":40,"tag":864,"props":6444,"children":6445},{"style":956},[6446],{"type":46,"value":6414},{"type":40,"tag":864,"props":6448,"children":6449},{"style":1037},[6450],{"type":46,"value":4576},{"type":40,"tag":864,"props":6452,"children":6453},{"style":1026},[6454],{"type":46,"value":1044},{"type":40,"tag":864,"props":6456,"children":6457},{"style":956},[6458],{"type":46,"value":1049},{"type":40,"tag":864,"props":6460,"children":6461},{"style":1026},[6462],{"type":46,"value":1617},{"type":40,"tag":864,"props":6464,"children":6465},{"style":956},[6466],{"type":46,"value":1034},{"type":40,"tag":864,"props":6468,"children":6469},{"style":956},[6470],{"type":46,"value":980},{"type":40,"tag":864,"props":6472,"children":6473},{"style":983},[6474],{"type":46,"value":6475},"paid",{"type":40,"tag":864,"props":6477,"children":6478},{"style":956},[6479],{"type":46,"value":1071},{"type":40,"tag":864,"props":6481,"children":6482},{"style":956},[6483],{"type":46,"value":970},{"type":40,"tag":864,"props":6485,"children":6486},{"style":1026},[6487],{"type":46,"value":1240},{"type":40,"tag":864,"props":6489,"children":6491},{"class":866,"line":6490},28,[6492,6496,6500,6504,6508,6513,6517,6521,6525,6529,6533],{"type":40,"tag":864,"props":6493,"children":6494},{"style":956},[6495],{"type":46,"value":6414},{"type":40,"tag":864,"props":6497,"children":6498},{"style":1037},[6499],{"type":46,"value":4625},{"type":40,"tag":864,"props":6501,"children":6502},{"style":1026},[6503],{"type":46,"value":1044},{"type":40,"tag":864,"props":6505,"children":6506},{"style":956},[6507],{"type":46,"value":1071},{"type":40,"tag":864,"props":6509,"children":6510},{"style":983},[6511],{"type":46,"value":6512},"stripe_session_id",{"type":40,"tag":864,"props":6514,"children":6515},{"style":956},[6516],{"type":46,"value":1071},{"type":40,"tag":864,"props":6518,"children":6519},{"style":956},[6520],{"type":46,"value":1097},{"type":40,"tag":864,"props":6522,"children":6523},{"style":962},[6524],{"type":46,"value":6332},{"type":40,"tag":864,"props":6526,"children":6527},{"style":956},[6528],{"type":46,"value":74},{"type":40,"tag":864,"props":6530,"children":6531},{"style":962},[6532],{"type":46,"value":4638},{"type":40,"tag":864,"props":6534,"children":6535},{"style":1026},[6536],{"type":46,"value":1240},{"type":40,"tag":864,"props":6538,"children":6540},{"class":866,"line":6539},29,[6541],{"type":40,"tag":864,"props":6542,"children":6543},{"style":950},[6544],{"type":46,"value":6545},"        break\n",{"type":40,"tag":864,"props":6547,"children":6549},{"class":866,"line":6548},30,[6550],{"type":40,"tag":864,"props":6551,"children":6552},{"style":956},[6553],{"type":46,"value":6554},"      }\n",{"type":40,"tag":864,"props":6556,"children":6558},{"class":866,"line":6557},31,[6559],{"type":40,"tag":864,"props":6560,"children":6561},{"style":956},[6562],{"type":46,"value":1655},{"type":40,"tag":864,"props":6564,"children":6566},{"class":866,"line":6565},32,[6567],{"type":40,"tag":864,"props":6568,"children":6569},{"emptyLinePlaceholder":997},[6570],{"type":46,"value":1000},{"type":40,"tag":864,"props":6572,"children":6574},{"class":866,"line":6573},33,[6575,6579,6583,6587,6591,6595,6599,6604,6608,6612,6616],{"type":40,"tag":864,"props":6576,"children":6577},{"style":950},[6578],{"type":46,"value":1212},{"type":40,"tag":864,"props":6580,"children":6581},{"style":962},[6582],{"type":46,"value":1217},{"type":40,"tag":864,"props":6584,"children":6585},{"style":956},[6586],{"type":46,"value":74},{"type":40,"tag":864,"props":6588,"children":6589},{"style":1037},[6590],{"type":46,"value":1226},{"type":40,"tag":864,"props":6592,"children":6593},{"style":1026},[6594],{"type":46,"value":1044},{"type":40,"tag":864,"props":6596,"children":6597},{"style":956},[6598],{"type":46,"value":1049},{"type":40,"tag":864,"props":6600,"children":6601},{"style":1026},[6602],{"type":46,"value":6603}," received",{"type":40,"tag":864,"props":6605,"children":6606},{"style":956},[6607],{"type":46,"value":1034},{"type":40,"tag":864,"props":6609,"children":6610},{"style":3684},[6611],{"type":46,"value":3687},{"type":40,"tag":864,"props":6613,"children":6614},{"style":956},[6615],{"type":46,"value":970},{"type":40,"tag":864,"props":6617,"children":6618},{"style":1026},[6619],{"type":46,"value":1240},{"type":40,"tag":864,"props":6621,"children":6623},{"class":866,"line":6622},34,[6624,6628,6632],{"type":40,"tag":864,"props":6625,"children":6626},{"style":956},[6627],{"type":46,"value":1249},{"type":40,"tag":864,"props":6629,"children":6630},{"style":962},[6631],{"type":46,"value":450},{"type":40,"tag":864,"props":6633,"children":6634},{"style":956},[6635],{"type":46,"value":1258},{"type":40,"tag":864,"props":6637,"children":6639},{"class":866,"line":6638},35,[6640],{"type":40,"tag":864,"props":6641,"children":6642},{"style":956},[6643],{"type":46,"value":1267},{"type":40,"tag":903,"props":6645,"children":6647},{"id":6646},"migrating-legacy-edge-functions",[6648],{"type":46,"value":6649},"Migrating legacy Edge Functions",{"type":40,"tag":53,"props":6651,"children":6652},{},[6653,6655,6660,6661,6666,6667,6673,6675,6681,6682,6688,6690,6695],{"type":46,"value":6654},"If you encounter code using ",{"type":40,"tag":100,"props":6656,"children":6658},{"className":6657},[],[6659],{"type":46,"value":383},{"type":46,"value":234},{"type":40,"tag":100,"props":6662,"children":6664},{"className":6663},[],[6665],{"type":46,"value":390},{"type":46,"value":234},{"type":40,"tag":100,"props":6668,"children":6670},{"className":6669},[],[6671],{"type":46,"value":6672},"Deno.serve",{"type":46,"value":6674},", imports from ",{"type":40,"tag":100,"props":6676,"children":6678},{"className":6677},[],[6679],{"type":46,"value":6680},"esm.sh\u002F@supabase",{"type":46,"value":4135},{"type":40,"tag":100,"props":6683,"children":6685},{"className":6684},[],[6686],{"type":46,"value":6687},"deno.land\u002Fstd",{"type":46,"value":6689},", suggest migrating to ",{"type":40,"tag":100,"props":6691,"children":6693},{"className":6692},[],[6694],{"type":46,"value":47},{"type":46,"value":6696},". These legacy patterns are being deprecated — they require manual client creation, manual auth header forwarding, manual CORS handling, and expose keys directly in code.",{"type":40,"tag":53,"props":6698,"children":6699},{},[6700],{"type":40,"tag":57,"props":6701,"children":6702},{},[6703],{"type":46,"value":6704},"How to recognize legacy code:",{"type":40,"tag":552,"props":6706,"children":6707},{},[6708,6719,6730,6749],{"type":40,"tag":556,"props":6709,"children":6710},{},[6711,6717],{"type":40,"tag":100,"props":6712,"children":6714},{"className":6713},[],[6715],{"type":46,"value":6716},"import { serve } from \"https:\u002F\u002Fdeno.land\u002Fstd\u002F...\"",{"type":46,"value":6718}," — oldest pattern, uses deprecated Deno standard library",{"type":40,"tag":556,"props":6720,"children":6721},{},[6722,6728],{"type":40,"tag":100,"props":6723,"children":6725},{"className":6724},[],[6726],{"type":46,"value":6727},"import { createClient } from \"https:\u002F\u002Fesm.sh\u002F@supabase\u002Fsupabase-js\"",{"type":46,"value":6729}," — old CDN import, not compatible with modern runtimes",{"type":40,"tag":556,"props":6731,"children":6732},{},[6733,6739,6741,6747],{"type":40,"tag":100,"props":6734,"children":6736},{"className":6735},[],[6737],{"type":46,"value":6738},"Deno.serve(async (req) => { ... })",{"type":46,"value":6740}," with manual ",{"type":40,"tag":100,"props":6742,"children":6744},{"className":6743},[],[6745],{"type":46,"value":6746},"createClient()",{"type":46,"value":6748}," — current but verbose, requires manual auth forwarding",{"type":40,"tag":556,"props":6750,"children":6751},{},[6752,6758,6759,6764],{"type":40,"tag":100,"props":6753,"children":6755},{"className":6754},[],[6756],{"type":46,"value":6757},"Deno.env.get('SUPABASE_ANON_KEY')",{"type":46,"value":4135},{"type":40,"tag":100,"props":6760,"children":6762},{"className":6761},[],[6763],{"type":46,"value":390},{"type":46,"value":6765}," — legacy keys that will be removed",{"type":40,"tag":53,"props":6767,"children":6768},{},[6769,6774],{"type":40,"tag":57,"props":6770,"children":6771},{},[6772],{"type":46,"value":6773},"Before",{"type":46,"value":6775}," (legacy — manual client, manual auth forwarding):",{"type":40,"tag":53,"props":6777,"children":6778},{},[6779],{"type":46,"value":6780},"Legacy keys will be removed, making this code stop working. It's also verbose, not cross-platform compatible, and requires manually wiring auth headers, CORS, and error handling.",{"type":40,"tag":853,"props":6782,"children":6784},{"className":929,"code":6783,"language":931,"meta":858,"style":858},"import { createClient } from 'npm:@supabase\u002Fsupabase-js@2'\n\nDeno.serve(async (req: Request) => {\n  const supabaseClient = createClient(\n    Deno.env.get('SUPABASE_URL') ?? '',\n    Deno.env.get('SUPABASE_ANON_KEY') ?? '',\n    {\n      global: { headers: { Authorization: req.headers.get('Authorization')! } },\n    },\n  )\n  const { data } = await supabaseClient.from('orders').select('*')\n  return Response.json(data)\n})\n",[6785],{"type":40,"tag":100,"props":6786,"children":6787},{"__ignoreMap":858},[6788,6825,6832,6886,6910,6969,7024,7032,7122,7130,7138,7225,7256],{"type":40,"tag":864,"props":6789,"children":6790},{"class":866,"line":867},[6791,6795,6799,6804,6808,6812,6816,6821],{"type":40,"tag":864,"props":6792,"children":6793},{"style":950},[6794],{"type":46,"value":953},{"type":40,"tag":864,"props":6796,"children":6797},{"style":956},[6798],{"type":46,"value":959},{"type":40,"tag":864,"props":6800,"children":6801},{"style":962},[6802],{"type":46,"value":6803}," createClient",{"type":40,"tag":864,"props":6805,"children":6806},{"style":956},[6807],{"type":46,"value":970},{"type":40,"tag":864,"props":6809,"children":6810},{"style":950},[6811],{"type":46,"value":975},{"type":40,"tag":864,"props":6813,"children":6814},{"style":956},[6815],{"type":46,"value":980},{"type":40,"tag":864,"props":6817,"children":6818},{"style":983},[6819],{"type":46,"value":6820},"npm:@supabase\u002Fsupabase-js@2",{"type":40,"tag":864,"props":6822,"children":6823},{"style":956},[6824],{"type":46,"value":990},{"type":40,"tag":864,"props":6826,"children":6827},{"class":866,"line":876},[6828],{"type":40,"tag":864,"props":6829,"children":6830},{"emptyLinePlaceholder":997},[6831],{"type":46,"value":1000},{"type":40,"tag":864,"props":6833,"children":6834},{"class":866,"line":993},[6835,6840,6844,6849,6853,6858,6862,6866,6870,6874,6878,6882],{"type":40,"tag":864,"props":6836,"children":6837},{"style":962},[6838],{"type":46,"value":6839},"Deno",{"type":40,"tag":864,"props":6841,"children":6842},{"style":956},[6843],{"type":46,"value":74},{"type":40,"tag":864,"props":6845,"children":6846},{"style":1037},[6847],{"type":46,"value":6848},"serve",{"type":40,"tag":864,"props":6850,"children":6851},{"style":962},[6852],{"type":46,"value":1044},{"type":40,"tag":864,"props":6854,"children":6855},{"style":1079},[6856],{"type":46,"value":6857},"async",{"type":40,"tag":864,"props":6859,"children":6860},{"style":956},[6861],{"type":46,"value":442},{"type":40,"tag":864,"props":6863,"children":6864},{"style":1089},[6865],{"type":46,"value":1364},{"type":40,"tag":864,"props":6867,"children":6868},{"style":956},[6869],{"type":46,"value":1034},{"type":40,"tag":864,"props":6871,"children":6872},{"style":1371},[6873],{"type":46,"value":1374},{"type":40,"tag":864,"props":6875,"children":6876},{"style":956},[6877],{"type":46,"value":450},{"type":40,"tag":864,"props":6879,"children":6880},{"style":1079},[6881],{"type":46,"value":1111},{"type":40,"tag":864,"props":6883,"children":6884},{"style":956},[6885],{"type":46,"value":1019},{"type":40,"tag":864,"props":6887,"children":6888},{"class":866,"line":1003},[6889,6893,6898,6902,6906],{"type":40,"tag":864,"props":6890,"children":6891},{"style":1079},[6892],{"type":46,"value":2407},{"type":40,"tag":864,"props":6894,"children":6895},{"style":962},[6896],{"type":46,"value":6897}," supabaseClient",{"type":40,"tag":864,"props":6899,"children":6900},{"style":956},[6901],{"type":46,"value":1142},{"type":40,"tag":864,"props":6903,"children":6904},{"style":1037},[6905],{"type":46,"value":6803},{"type":40,"tag":864,"props":6907,"children":6908},{"style":1026},[6909],{"type":46,"value":1543},{"type":40,"tag":864,"props":6911,"children":6912},{"class":866,"line":1022},[6913,6918,6922,6926,6930,6934,6938,6942,6947,6951,6955,6960,6965],{"type":40,"tag":864,"props":6914,"children":6915},{"style":962},[6916],{"type":46,"value":6917},"    Deno",{"type":40,"tag":864,"props":6919,"children":6920},{"style":956},[6921],{"type":46,"value":74},{"type":40,"tag":864,"props":6923,"children":6924},{"style":962},[6925],{"type":46,"value":1817},{"type":40,"tag":864,"props":6927,"children":6928},{"style":956},[6929],{"type":46,"value":74},{"type":40,"tag":864,"props":6931,"children":6932},{"style":1037},[6933],{"type":46,"value":2353},{"type":40,"tag":864,"props":6935,"children":6936},{"style":1026},[6937],{"type":46,"value":1044},{"type":40,"tag":864,"props":6939,"children":6940},{"style":956},[6941],{"type":46,"value":1071},{"type":40,"tag":864,"props":6943,"children":6944},{"style":983},[6945],{"type":46,"value":6946},"SUPABASE_URL",{"type":40,"tag":864,"props":6948,"children":6949},{"style":956},[6950],{"type":46,"value":1071},{"type":40,"tag":864,"props":6952,"children":6953},{"style":1026},[6954],{"type":46,"value":1512},{"type":40,"tag":864,"props":6956,"children":6957},{"style":956},[6958],{"type":46,"value":6959},"??",{"type":40,"tag":864,"props":6961,"children":6962},{"style":956},[6963],{"type":46,"value":6964}," ''",{"type":40,"tag":864,"props":6966,"children":6967},{"style":956},[6968],{"type":46,"value":1258},{"type":40,"tag":864,"props":6970,"children":6971},{"class":866,"line":1118},[6972,6976,6980,6984,6988,6992,6996,7000,7004,7008,7012,7016,7020],{"type":40,"tag":864,"props":6973,"children":6974},{"style":962},[6975],{"type":46,"value":6917},{"type":40,"tag":864,"props":6977,"children":6978},{"style":956},[6979],{"type":46,"value":74},{"type":40,"tag":864,"props":6981,"children":6982},{"style":962},[6983],{"type":46,"value":1817},{"type":40,"tag":864,"props":6985,"children":6986},{"style":956},[6987],{"type":46,"value":74},{"type":40,"tag":864,"props":6989,"children":6990},{"style":1037},[6991],{"type":46,"value":2353},{"type":40,"tag":864,"props":6993,"children":6994},{"style":1026},[6995],{"type":46,"value":1044},{"type":40,"tag":864,"props":6997,"children":6998},{"style":956},[6999],{"type":46,"value":1071},{"type":40,"tag":864,"props":7001,"children":7002},{"style":983},[7003],{"type":46,"value":383},{"type":40,"tag":864,"props":7005,"children":7006},{"style":956},[7007],{"type":46,"value":1071},{"type":40,"tag":864,"props":7009,"children":7010},{"style":1026},[7011],{"type":46,"value":1512},{"type":40,"tag":864,"props":7013,"children":7014},{"style":956},[7015],{"type":46,"value":6959},{"type":40,"tag":864,"props":7017,"children":7018},{"style":956},[7019],{"type":46,"value":6964},{"type":40,"tag":864,"props":7021,"children":7022},{"style":956},[7023],{"type":46,"value":1258},{"type":40,"tag":864,"props":7025,"children":7026},{"class":866,"line":1206},[7027],{"type":40,"tag":864,"props":7028,"children":7029},{"style":956},[7030],{"type":46,"value":7031},"    {\n",{"type":40,"tag":864,"props":7033,"children":7034},{"class":866,"line":1243},[7035,7040,7044,7048,7053,7057,7061,7066,7070,7074,7078,7082,7086,7090,7094,7098,7102,7106,7110,7114,7118],{"type":40,"tag":864,"props":7036,"children":7037},{"style":1026},[7038],{"type":46,"value":7039},"      global",{"type":40,"tag":864,"props":7041,"children":7042},{"style":956},[7043],{"type":46,"value":1034},{"type":40,"tag":864,"props":7045,"children":7046},{"style":956},[7047],{"type":46,"value":959},{"type":40,"tag":864,"props":7049,"children":7050},{"style":1026},[7051],{"type":46,"value":7052}," headers",{"type":40,"tag":864,"props":7054,"children":7055},{"style":956},[7056],{"type":46,"value":1034},{"type":40,"tag":864,"props":7058,"children":7059},{"style":956},[7060],{"type":46,"value":959},{"type":40,"tag":864,"props":7062,"children":7063},{"style":1026},[7064],{"type":46,"value":7065}," Authorization",{"type":40,"tag":864,"props":7067,"children":7068},{"style":956},[7069],{"type":46,"value":1034},{"type":40,"tag":864,"props":7071,"children":7072},{"style":962},[7073],{"type":46,"value":3484},{"type":40,"tag":864,"props":7075,"children":7076},{"style":956},[7077],{"type":46,"value":74},{"type":40,"tag":864,"props":7079,"children":7080},{"style":962},[7081],{"type":46,"value":5936},{"type":40,"tag":864,"props":7083,"children":7084},{"style":956},[7085],{"type":46,"value":74},{"type":40,"tag":864,"props":7087,"children":7088},{"style":1037},[7089],{"type":46,"value":2353},{"type":40,"tag":864,"props":7091,"children":7092},{"style":1026},[7093],{"type":46,"value":1044},{"type":40,"tag":864,"props":7095,"children":7096},{"style":956},[7097],{"type":46,"value":1071},{"type":40,"tag":864,"props":7099,"children":7100},{"style":983},[7101],{"type":46,"value":4211},{"type":40,"tag":864,"props":7103,"children":7104},{"style":956},[7105],{"type":46,"value":1071},{"type":40,"tag":864,"props":7107,"children":7108},{"style":1026},[7109],{"type":46,"value":450},{"type":40,"tag":864,"props":7111,"children":7112},{"style":956},[7113],{"type":46,"value":5767},{"type":40,"tag":864,"props":7115,"children":7116},{"style":956},[7117],{"type":46,"value":970},{"type":40,"tag":864,"props":7119,"children":7120},{"style":956},[7121],{"type":46,"value":1604},{"type":40,"tag":864,"props":7123,"children":7124},{"class":866,"line":1261},[7125],{"type":40,"tag":864,"props":7126,"children":7127},{"style":956},[7128],{"type":46,"value":7129},"    },\n",{"type":40,"tag":864,"props":7131,"children":7132},{"class":866,"line":1520},[7133],{"type":40,"tag":864,"props":7134,"children":7135},{"style":1026},[7136],{"type":46,"value":7137},"  )\n",{"type":40,"tag":864,"props":7139,"children":7140},{"class":866,"line":1546},[7141,7145,7149,7153,7157,7161,7165,7169,7173,7177,7181,7185,7189,7193,7197,7201,7205,7209,7213,7217,7221],{"type":40,"tag":864,"props":7142,"children":7143},{"style":1079},[7144],{"type":46,"value":2407},{"type":40,"tag":864,"props":7146,"children":7147},{"style":956},[7148],{"type":46,"value":959},{"type":40,"tag":864,"props":7150,"children":7151},{"style":962},[7152],{"type":46,"value":1133},{"type":40,"tag":864,"props":7154,"children":7155},{"style":956},[7156],{"type":46,"value":970},{"type":40,"tag":864,"props":7158,"children":7159},{"style":956},[7160],{"type":46,"value":1142},{"type":40,"tag":864,"props":7162,"children":7163},{"style":950},[7164],{"type":46,"value":1147},{"type":40,"tag":864,"props":7166,"children":7167},{"style":962},[7168],{"type":46,"value":6897},{"type":40,"tag":864,"props":7170,"children":7171},{"style":956},[7172],{"type":46,"value":74},{"type":40,"tag":864,"props":7174,"children":7175},{"style":1037},[7176],{"type":46,"value":1168},{"type":40,"tag":864,"props":7178,"children":7179},{"style":1026},[7180],{"type":46,"value":1044},{"type":40,"tag":864,"props":7182,"children":7183},{"style":956},[7184],{"type":46,"value":1071},{"type":40,"tag":864,"props":7186,"children":7187},{"style":983},[7188],{"type":46,"value":4556},{"type":40,"tag":864,"props":7190,"children":7191},{"style":956},[7192],{"type":46,"value":1071},{"type":40,"tag":864,"props":7194,"children":7195},{"style":1026},[7196],{"type":46,"value":450},{"type":40,"tag":864,"props":7198,"children":7199},{"style":956},[7200],{"type":46,"value":74},{"type":40,"tag":864,"props":7202,"children":7203},{"style":1037},[7204],{"type":46,"value":1198},{"type":40,"tag":864,"props":7206,"children":7207},{"style":1026},[7208],{"type":46,"value":1044},{"type":40,"tag":864,"props":7210,"children":7211},{"style":956},[7212],{"type":46,"value":1071},{"type":40,"tag":864,"props":7214,"children":7215},{"style":983},[7216],{"type":46,"value":2281},{"type":40,"tag":864,"props":7218,"children":7219},{"style":956},[7220],{"type":46,"value":1071},{"type":40,"tag":864,"props":7222,"children":7223},{"style":1026},[7224],{"type":46,"value":1240},{"type":40,"tag":864,"props":7226,"children":7227},{"class":866,"line":1607},[7228,7232,7236,7240,7244,7248,7252],{"type":40,"tag":864,"props":7229,"children":7230},{"style":950},[7231],{"type":46,"value":2526},{"type":40,"tag":864,"props":7233,"children":7234},{"style":962},[7235],{"type":46,"value":1217},{"type":40,"tag":864,"props":7237,"children":7238},{"style":956},[7239],{"type":46,"value":74},{"type":40,"tag":864,"props":7241,"children":7242},{"style":1037},[7243],{"type":46,"value":1226},{"type":40,"tag":864,"props":7245,"children":7246},{"style":1026},[7247],{"type":46,"value":1044},{"type":40,"tag":864,"props":7249,"children":7250},{"style":962},[7251],{"type":46,"value":1235},{"type":40,"tag":864,"props":7253,"children":7254},{"style":1026},[7255],{"type":46,"value":1240},{"type":40,"tag":864,"props":7257,"children":7258},{"class":866,"line":27},[7259,7263],{"type":40,"tag":864,"props":7260,"children":7261},{"style":956},[7262],{"type":46,"value":2558},{"type":40,"tag":864,"props":7264,"children":7265},{"style":962},[7266],{"type":46,"value":1240},{"type":40,"tag":53,"props":7268,"children":7269},{},[7270,7275],{"type":40,"tag":57,"props":7271,"children":7272},{},[7273],{"type":46,"value":7274},"After",{"type":46,"value":7276}," (new — auth, clients, and CORS handled automatically):",{"type":40,"tag":53,"props":7278,"children":7279},{},[7280],{"type":46,"value":7281},"Uses the latest API keys, works across runtimes (Deno, Node.js, Cloudflare), and handles auth verification, client creation, and CORS in a single line.",{"type":40,"tag":853,"props":7283,"children":7285},{"className":929,"code":7284,"language":931,"meta":858,"style":858},"import { withSupabase } from 'npm:@supabase\u002Fserver'\n\nexport default {\n  fetch: withSupabase({ auth: 'user' }, async (_req, ctx) => {\n    const { data } = await ctx.supabase.from('orders').select('*')\n    return Response.json(data)\n  }),\n}\n",[7286],{"type":40,"tag":100,"props":7287,"children":7288},{"__ignoreMap":858},[7289,7324,7331,7346,7425,7520,7551,7566],{"type":40,"tag":864,"props":7290,"children":7291},{"class":866,"line":867},[7292,7296,7300,7304,7308,7312,7316,7320],{"type":40,"tag":864,"props":7293,"children":7294},{"style":950},[7295],{"type":46,"value":953},{"type":40,"tag":864,"props":7297,"children":7298},{"style":956},[7299],{"type":46,"value":959},{"type":40,"tag":864,"props":7301,"children":7302},{"style":962},[7303],{"type":46,"value":965},{"type":40,"tag":864,"props":7305,"children":7306},{"style":956},[7307],{"type":46,"value":970},{"type":40,"tag":864,"props":7309,"children":7310},{"style":950},[7311],{"type":46,"value":975},{"type":40,"tag":864,"props":7313,"children":7314},{"style":956},[7315],{"type":46,"value":980},{"type":40,"tag":864,"props":7317,"children":7318},{"style":983},[7319],{"type":46,"value":681},{"type":40,"tag":864,"props":7321,"children":7322},{"style":956},[7323],{"type":46,"value":990},{"type":40,"tag":864,"props":7325,"children":7326},{"class":866,"line":876},[7327],{"type":40,"tag":864,"props":7328,"children":7329},{"emptyLinePlaceholder":997},[7330],{"type":46,"value":1000},{"type":40,"tag":864,"props":7332,"children":7333},{"class":866,"line":993},[7334,7338,7342],{"type":40,"tag":864,"props":7335,"children":7336},{"style":950},[7337],{"type":46,"value":1009},{"type":40,"tag":864,"props":7339,"children":7340},{"style":950},[7341],{"type":46,"value":1014},{"type":40,"tag":864,"props":7343,"children":7344},{"style":956},[7345],{"type":46,"value":1019},{"type":40,"tag":864,"props":7347,"children":7348},{"class":866,"line":1003},[7349,7353,7357,7361,7365,7369,7373,7377,7381,7385,7389,7393,7397,7401,7405,7409,7413,7417,7421],{"type":40,"tag":864,"props":7350,"children":7351},{"style":1026},[7352],{"type":46,"value":1029},{"type":40,"tag":864,"props":7354,"children":7355},{"style":956},[7356],{"type":46,"value":1034},{"type":40,"tag":864,"props":7358,"children":7359},{"style":1037},[7360],{"type":46,"value":965},{"type":40,"tag":864,"props":7362,"children":7363},{"style":962},[7364],{"type":46,"value":1044},{"type":40,"tag":864,"props":7366,"children":7367},{"style":956},[7368],{"type":46,"value":1049},{"type":40,"tag":864,"props":7370,"children":7371},{"style":1026},[7372],{"type":46,"value":1054},{"type":40,"tag":864,"props":7374,"children":7375},{"style":956},[7376],{"type":46,"value":1034},{"type":40,"tag":864,"props":7378,"children":7379},{"style":956},[7380],{"type":46,"value":980},{"type":40,"tag":864,"props":7382,"children":7383},{"style":983},[7384],{"type":46,"value":571},{"type":40,"tag":864,"props":7386,"children":7387},{"style":956},[7388],{"type":46,"value":1071},{"type":40,"tag":864,"props":7390,"children":7391},{"style":956},[7392],{"type":46,"value":1076},{"type":40,"tag":864,"props":7394,"children":7395},{"style":1079},[7396],{"type":46,"value":1082},{"type":40,"tag":864,"props":7398,"children":7399},{"style":956},[7400],{"type":46,"value":442},{"type":40,"tag":864,"props":7402,"children":7403},{"style":1089},[7404],{"type":46,"value":1092},{"type":40,"tag":864,"props":7406,"children":7407},{"style":956},[7408],{"type":46,"value":1097},{"type":40,"tag":864,"props":7410,"children":7411},{"style":1089},[7412],{"type":46,"value":1102},{"type":40,"tag":864,"props":7414,"children":7415},{"style":956},[7416],{"type":46,"value":450},{"type":40,"tag":864,"props":7418,"children":7419},{"style":1079},[7420],{"type":46,"value":1111},{"type":40,"tag":864,"props":7422,"children":7423},{"style":956},[7424],{"type":46,"value":1019},{"type":40,"tag":864,"props":7426,"children":7427},{"class":866,"line":1022},[7428,7432,7436,7440,7444,7448,7452,7456,7460,7464,7468,7472,7476,7480,7484,7488,7492,7496,7500,7504,7508,7512,7516],{"type":40,"tag":864,"props":7429,"children":7430},{"style":1079},[7431],{"type":46,"value":1124},{"type":40,"tag":864,"props":7433,"children":7434},{"style":956},[7435],{"type":46,"value":959},{"type":40,"tag":864,"props":7437,"children":7438},{"style":962},[7439],{"type":46,"value":1133},{"type":40,"tag":864,"props":7441,"children":7442},{"style":956},[7443],{"type":46,"value":970},{"type":40,"tag":864,"props":7445,"children":7446},{"style":956},[7447],{"type":46,"value":1142},{"type":40,"tag":864,"props":7449,"children":7450},{"style":950},[7451],{"type":46,"value":1147},{"type":40,"tag":864,"props":7453,"children":7454},{"style":962},[7455],{"type":46,"value":1102},{"type":40,"tag":864,"props":7457,"children":7458},{"style":956},[7459],{"type":46,"value":74},{"type":40,"tag":864,"props":7461,"children":7462},{"style":962},[7463],{"type":46,"value":8},{"type":40,"tag":864,"props":7465,"children":7466},{"style":956},[7467],{"type":46,"value":74},{"type":40,"tag":864,"props":7469,"children":7470},{"style":1037},[7471],{"type":46,"value":1168},{"type":40,"tag":864,"props":7473,"children":7474},{"style":1026},[7475],{"type":46,"value":1044},{"type":40,"tag":864,"props":7477,"children":7478},{"style":956},[7479],{"type":46,"value":1071},{"type":40,"tag":864,"props":7481,"children":7482},{"style":983},[7483],{"type":46,"value":4556},{"type":40,"tag":864,"props":7485,"children":7486},{"style":956},[7487],{"type":46,"value":1071},{"type":40,"tag":864,"props":7489,"children":7490},{"style":1026},[7491],{"type":46,"value":450},{"type":40,"tag":864,"props":7493,"children":7494},{"style":956},[7495],{"type":46,"value":74},{"type":40,"tag":864,"props":7497,"children":7498},{"style":1037},[7499],{"type":46,"value":1198},{"type":40,"tag":864,"props":7501,"children":7502},{"style":1026},[7503],{"type":46,"value":1044},{"type":40,"tag":864,"props":7505,"children":7506},{"style":956},[7507],{"type":46,"value":1071},{"type":40,"tag":864,"props":7509,"children":7510},{"style":983},[7511],{"type":46,"value":2281},{"type":40,"tag":864,"props":7513,"children":7514},{"style":956},[7515],{"type":46,"value":1071},{"type":40,"tag":864,"props":7517,"children":7518},{"style":1026},[7519],{"type":46,"value":1240},{"type":40,"tag":864,"props":7521,"children":7522},{"class":866,"line":1118},[7523,7527,7531,7535,7539,7543,7547],{"type":40,"tag":864,"props":7524,"children":7525},{"style":950},[7526],{"type":46,"value":1212},{"type":40,"tag":864,"props":7528,"children":7529},{"style":962},[7530],{"type":46,"value":1217},{"type":40,"tag":864,"props":7532,"children":7533},{"style":956},[7534],{"type":46,"value":74},{"type":40,"tag":864,"props":7536,"children":7537},{"style":1037},[7538],{"type":46,"value":1226},{"type":40,"tag":864,"props":7540,"children":7541},{"style":1026},[7542],{"type":46,"value":1044},{"type":40,"tag":864,"props":7544,"children":7545},{"style":962},[7546],{"type":46,"value":1235},{"type":40,"tag":864,"props":7548,"children":7549},{"style":1026},[7550],{"type":46,"value":1240},{"type":40,"tag":864,"props":7552,"children":7553},{"class":866,"line":1206},[7554,7558,7562],{"type":40,"tag":864,"props":7555,"children":7556},{"style":956},[7557],{"type":46,"value":1249},{"type":40,"tag":864,"props":7559,"children":7560},{"style":962},[7561],{"type":46,"value":450},{"type":40,"tag":864,"props":7563,"children":7564},{"style":956},[7565],{"type":46,"value":1258},{"type":40,"tag":864,"props":7567,"children":7568},{"class":866,"line":1243},[7569],{"type":40,"tag":864,"props":7570,"children":7571},{"style":956},[7572],{"type":46,"value":1267},{"type":40,"tag":53,"props":7574,"children":7575},{},[7576,7578,7583,7585,7590,7591,7596,7598,7603,7605,7610,7612,7618,7620,7625,7627,7633],{"type":46,"value":7577},"The migration mapping: ",{"type":40,"tag":100,"props":7579,"children":7581},{"className":7580},[],[7582],{"type":46,"value":383},{"type":46,"value":7584}," with manual auth header → ",{"type":40,"tag":100,"props":7586,"children":7588},{"className":7587},[],[7589],{"type":46,"value":504},{"type":46,"value":234},{"type":40,"tag":100,"props":7592,"children":7594},{"className":7593},[],[7595],{"type":46,"value":383},{"type":46,"value":7597}," without auth → ",{"type":40,"tag":100,"props":7599,"children":7601},{"className":7600},[],[7602],{"type":46,"value":526},{"type":46,"value":7604},". For ",{"type":40,"tag":100,"props":7606,"children":7608},{"className":7607},[],[7609],{"type":46,"value":390},{"type":46,"value":7611},", it depends on intent: if the legacy code validates the incoming key to protect the endpoint (e.g., ",{"type":40,"tag":100,"props":7613,"children":7615},{"className":7614},[],[7616],{"type":46,"value":7617},"req.headers.get('apikey') === serviceRoleKey",{"type":46,"value":7619},"), use ",{"type":40,"tag":100,"props":7621,"children":7623},{"className":7622},[],[7624],{"type":46,"value":511},{"type":46,"value":7626},". If it only uses the key to create an admin client for elevated DB access, no specific auth mode is needed — ",{"type":40,"tag":100,"props":7628,"children":7630},{"className":7629},[],[7631],{"type":46,"value":7632},"ctx.supabaseAdmin",{"type":46,"value":7634}," is always available regardless of auth mode.",{"type":40,"tag":545,"props":7636,"children":7638},{"id":7637},"documentation",[7639],{"type":46,"value":7640},"Documentation",{"type":40,"tag":53,"props":7642,"children":7643},{},[7644,7646,7652,7654,7659],{"type":46,"value":7645},"The full documentation lives in the ",{"type":40,"tag":100,"props":7647,"children":7649},{"className":7648},[],[7650],{"type":46,"value":7651},"docs\u002F",{"type":46,"value":7653}," directory of the ",{"type":40,"tag":100,"props":7655,"children":7657},{"className":7656},[],[7658],{"type":46,"value":47},{"type":46,"value":7660}," package. To read a doc, find the package location first:",{"type":40,"tag":552,"props":7662,"children":7663},{},[7664,7680],{"type":40,"tag":556,"props":7665,"children":7666},{},[7667,7672,7673,7678],{"type":40,"tag":57,"props":7668,"children":7669},{},[7670],{"type":46,"value":7671},"If working inside the SDK repo:",{"type":46,"value":115},{"type":40,"tag":100,"props":7674,"children":7676},{"className":7675},[],[7677],{"type":46,"value":7651},{"type":46,"value":7679}," is at the project root.",{"type":40,"tag":556,"props":7681,"children":7682},{},[7683,7688,7690,7696],{"type":40,"tag":57,"props":7684,"children":7685},{},[7686],{"type":46,"value":7687},"If the package is installed as a dependency:",{"type":46,"value":7689}," look in ",{"type":40,"tag":100,"props":7691,"children":7693},{"className":7692},[],[7694],{"type":46,"value":7695},"node_modules\u002F@supabase\u002Fserver\u002Fdocs\u002F",{"type":46,"value":74},{"type":40,"tag":394,"props":7698,"children":7699},{},[7700,7716],{"type":40,"tag":398,"props":7701,"children":7702},{},[7703],{"type":40,"tag":402,"props":7704,"children":7705},{},[7706,7711],{"type":40,"tag":406,"props":7707,"children":7708},{},[7709],{"type":46,"value":7710},"Question",{"type":40,"tag":406,"props":7712,"children":7713},{},[7714],{"type":46,"value":7715},"Doc file",{"type":40,"tag":417,"props":7717,"children":7718},{},[7719,7736,7752,7769,7785,7802,7819,7835,7852,7869,7892,7909],{"type":40,"tag":402,"props":7720,"children":7721},{},[7722,7727],{"type":40,"tag":424,"props":7723,"children":7724},{},[7725],{"type":46,"value":7726},"How do I create a basic endpoint?",{"type":40,"tag":424,"props":7728,"children":7729},{},[7730],{"type":40,"tag":100,"props":7731,"children":7733},{"className":7732},[],[7734],{"type":46,"value":7735},"docs\u002Fgetting-started.md",{"type":40,"tag":402,"props":7737,"children":7738},{},[7739,7744],{"type":40,"tag":424,"props":7740,"children":7741},{},[7742],{"type":46,"value":7743},"What auth modes are available? Array syntax? Named keys?",{"type":40,"tag":424,"props":7745,"children":7746},{},[7747],{"type":40,"tag":100,"props":7748,"children":7750},{"className":7749},[],[7751],{"type":46,"value":3297},{"type":40,"tag":402,"props":7753,"children":7754},{},[7755,7760],{"type":40,"tag":424,"props":7756,"children":7757},{},[7758],{"type":46,"value":7759},"Which framework adapters exist? How do I contribute one?",{"type":40,"tag":424,"props":7761,"children":7762},{},[7763],{"type":40,"tag":100,"props":7764,"children":7766},{"className":7765},[],[7767],{"type":46,"value":7768},"src\u002Fadapters\u002FREADME.md",{"type":40,"tag":402,"props":7770,"children":7771},{},[7772,7777],{"type":40,"tag":424,"props":7773,"children":7774},{},[7775],{"type":46,"value":7776},"How do I use this with Hono?",{"type":40,"tag":424,"props":7778,"children":7779},{},[7780],{"type":40,"tag":100,"props":7781,"children":7783},{"className":7782},[],[7784],{"type":46,"value":2126},{"type":40,"tag":402,"props":7786,"children":7787},{},[7788,7793],{"type":40,"tag":424,"props":7789,"children":7790},{},[7791],{"type":46,"value":7792},"How do I use this with H3 \u002F Nuxt?",{"type":40,"tag":424,"props":7794,"children":7795},{},[7796],{"type":40,"tag":100,"props":7797,"children":7799},{"className":7798},[],[7800],{"type":46,"value":7801},"docs\u002Fadapters\u002Fh3.md",{"type":40,"tag":402,"props":7803,"children":7804},{},[7805,7810],{"type":40,"tag":424,"props":7806,"children":7807},{},[7808],{"type":46,"value":7809},"How do I use low-level primitives for custom flows?",{"type":40,"tag":424,"props":7811,"children":7812},{},[7813],{"type":40,"tag":100,"props":7814,"children":7816},{"className":7815},[],[7817],{"type":46,"value":7818},"docs\u002Fcore-primitives.md",{"type":40,"tag":402,"props":7820,"children":7821},{},[7822,7827],{"type":40,"tag":424,"props":7823,"children":7824},{},[7825],{"type":46,"value":7826},"How do environment variables work across runtimes?",{"type":40,"tag":424,"props":7828,"children":7829},{},[7830],{"type":40,"tag":100,"props":7831,"children":7833},{"className":7832},[],[7834],{"type":46,"value":1825},{"type":40,"tag":402,"props":7836,"children":7837},{},[7838,7843],{"type":40,"tag":424,"props":7839,"children":7840},{},[7841],{"type":46,"value":7842},"How do I handle errors? What codes exist?",{"type":40,"tag":424,"props":7844,"children":7845},{},[7846],{"type":40,"tag":100,"props":7847,"children":7849},{"className":7848},[],[7850],{"type":46,"value":7851},"docs\u002Ferror-handling.md",{"type":40,"tag":402,"props":7853,"children":7854},{},[7855,7860],{"type":40,"tag":424,"props":7856,"children":7857},{},[7858],{"type":46,"value":7859},"How do I get typed database queries?",{"type":40,"tag":424,"props":7861,"children":7862},{},[7863],{"type":40,"tag":100,"props":7864,"children":7866},{"className":7865},[],[7867],{"type":46,"value":7868},"docs\u002Ftypescript-generics.md",{"type":40,"tag":402,"props":7870,"children":7871},{},[7872,7884],{"type":40,"tag":424,"props":7873,"children":7874},{},[7875,7877,7882],{"type":46,"value":7876},"How do I use this with ",{"type":40,"tag":100,"props":7878,"children":7880},{"className":7879},[],[7881],{"type":46,"value":3063},{"type":46,"value":7883}," (Next.js, SvelteKit, Remix)?",{"type":40,"tag":424,"props":7885,"children":7886},{},[7887],{"type":40,"tag":100,"props":7888,"children":7890},{"className":7889},[],[7891],{"type":46,"value":3149},{"type":40,"tag":402,"props":7893,"children":7894},{},[7895,7900],{"type":40,"tag":424,"props":7896,"children":7897},{},[7898],{"type":46,"value":7899},"What's the complete API surface?",{"type":40,"tag":424,"props":7901,"children":7902},{},[7903],{"type":40,"tag":100,"props":7904,"children":7906},{"className":7905},[],[7907],{"type":46,"value":7908},"docs\u002Fapi-reference.md",{"type":40,"tag":402,"props":7910,"children":7911},{},[7912,7917],{"type":40,"tag":424,"props":7913,"children":7914},{},[7915],{"type":46,"value":7916},"What security decisions does this package make?",{"type":40,"tag":424,"props":7918,"children":7919},{},[7920],{"type":40,"tag":100,"props":7921,"children":7923},{"className":7922},[],[7924],{"type":46,"value":7925},"docs\u002Fsecurity.md",{"type":40,"tag":7927,"props":7928,"children":7929},"style",{},[7930],{"type":46,"value":7931},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":7933,"total":867},[7934],{"slug":4,"name":4,"fn":5,"description":6,"org":7935,"tags":7936,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7937,7938,7939,7940],{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"items":7942,"total":993},[7943,7966,7979],{"slug":8,"name":8,"fn":7944,"description":7945,"org":7946,"tags":7947,"stars":7963,"repoUrl":7964,"updatedAt":7965},"build applications with Supabase","Use when doing ANY task involving Supabase. Triggers: Supabase products (Database, Auth, Edge Functions, Realtime, Storage, Vectors, Cron, Queues); client libraries and SSR integrations (supabase-js, @supabase\u002Fssr) in Next.js, React, SvelteKit, Astro, Remix; auth issues (login, logout, sessions, JWT, cookies, getSession, getUser, getClaims, RLS); Supabase CLI or MCP server; schema changes, migrations, declarative schemas, security audits, Postgres extensions (pg_graphql, pg_cron, pg_vector).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7948,7949,7952,7953,7956,7959,7962],{"name":17,"slug":18,"type":15},{"name":7950,"slug":7951,"type":15},"Database","database",{"name":21,"slug":22,"type":15},{"name":7954,"slug":7955,"type":15},"PostgreSQL","postgresql",{"name":7957,"slug":7958,"type":15},"Realtime","realtime",{"name":7960,"slug":7961,"type":15},"Storage","storage",{"name":9,"slug":8,"type":15},2343,"https:\u002F\u002Fgithub.com\u002Fsupabase\u002Fagent-skills","2026-04-06T17:55:02.34554",{"slug":7967,"name":7967,"fn":7968,"description":7969,"org":7970,"tags":7971,"stars":7963,"repoUrl":7964,"updatedAt":7978},"supabase-postgres-best-practices","optimize Postgres queries and schema design","Postgres performance optimization and best practices from Supabase. Use this skill when writing, reviewing, or optimizing Postgres queries, schema designs, or database configurations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7972,7973,7976,7977],{"name":7950,"slug":7951,"type":15},{"name":7974,"slug":7975,"type":15},"Performance","performance",{"name":7954,"slug":7955,"type":15},{"name":9,"slug":8,"type":15},"2026-04-06T17:55:03.601545",{"slug":4,"name":4,"fn":5,"description":6,"org":7980,"tags":7981,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7982,7983,7984,7985],{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15}]