{"_id":"@af-mobile/adapters","_rev":"2-12da5ec449ea684b966cd56a25cf0d10","name":"@af-mobile/adapters","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@af-mobile/adapters","version":"0.1.0","keywords":["aiflow","supabase","adapter","web-components","postgrest"],"license":"MIT","_id":"@af-mobile/adapters@0.1.0","maintainers":[{"name":"soulor8908","email":"871816706@qq.com"}],"dist":{"shasum":"144de6777e268ecfa4f0bf812b66c5e069c3a1e1","tarball":"https://registry.npmjs.org/@af-mobile/adapters/-/adapters-0.1.0.tgz","fileCount":2,"integrity":"sha512-ahjGG7XqrVUFlOuNjT8NHLnhQzJ34EbfqBWzjm2TNx0mxAsOxtDw1klwjoMjPdVLMGXGFSpcm/M7S0uK0NF3AQ==","signatures":[{"sig":"MEYCIQCqZeJkKwjKgYSFecqO/TamU0uWGUYE17NQ0tQEqN5gCQIhAJ3BBQmFczYgvYoFI2IDUSznEpS312nf1ClkHr7qP9ig","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4392},"type":"module","exports":{"./supabase":"./supabase.js"},"gitHead":"8fcae530a604c2785b5bf75057547a8b87105294","_npmUser":{"name":"soulor8908","email":"871816706@qq.com"},"_npmVersion":"11.9.0","description":"AIFlow UI 后端 scheme 适配器（supabase:// 等），peer 依赖 @af-mobile/ui，零 BaaS SDK 强依赖","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"peerDependencies":{"@af-mobile/ui":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/adapters_0.1.0_1786944240185_0.07080121387123262","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@af-mobile/adapters","version":"0.1.1","description":"AIFlow UI 后端 scheme 适配器（supabase:// 等），peer 依赖 @af-mobile/ui，零 BaaS SDK 强依赖","type":"module","exports":{"./supabase":"./supabase.js"},"keywords":["aiflow","supabase","adapter","web-components","postgrest"],"peerDependencies":{"@af-mobile/ui":"^1.4.0"},"license":"MIT","gitHead":"c22bdc91899afdc725600040511a27699a59df74","_id":"@af-mobile/adapters@0.1.1","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-oTpTG/vlMVnVBts99rbJngwQMN4UbhNnYjd5FAbeeqiLfgWTaT9aLUsDQ/CLBuxa3g7tBRPjbFTKDpsJooHvxw==","shasum":"f77ec3c09415a6a8d1981de10c5a228974359d9a","tarball":"https://registry.npmjs.org/@af-mobile/adapters/-/adapters-0.1.1.tgz","fileCount":3,"unpackedSize":6032,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFOMCw8AyhMlVLAplI0JyzIsSRyxvKHw3kr0l9n0X6hEAiEAx19Yu5JMvx25VJpMQy2fsG6OzM9mlsqs54tYEAtANHw="}]},"_npmUser":{"name":"soulor8908","email":"871816706@qq.com"},"directories":{},"maintainers":[{"name":"soulor8908","email":"871816706@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/adapters_0.1.1_1786944980287_0.541759513630784"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-17T05:23:59.991Z","modified":"2026-08-17T05:36:20.714Z","0.1.0":"2026-08-17T05:24:00.328Z","0.1.1":"2026-08-17T05:36:20.447Z"},"license":"MIT","keywords":["aiflow","supabase","adapter","web-components","postgrest"],"description":"AIFlow UI 后端 scheme 适配器（supabase:// 等），peer 依赖 @af-mobile/ui，零 BaaS SDK 强依赖","maintainers":[{"name":"soulor8908","email":"871816706@qq.com"}],"readme":"# @af-mobile/adapters\n\n为 AIFlow UI（`@af-mobile/ui`）提供数据源适配器。当前内置 **Supabase**（`supabase://` scheme）适配器：把 `supabase://table?select=...&filter=...` 翻译成 PostgREST 请求，复用 `@af-mobile/ui` 的 `fetchPage` 原生通道（分页 + total）。\n\n## 安装\n\n```bash\nnpm i @af-mobile/ui @af-mobile/adapters\n```\n\n> peer 依赖 `@af-mobile/ui`（≥1.4.0，需含 `registerBackend` / `fetchPage`）。\n\n## 用法\n\n```js\nimport { registerSupabase } from '@af-mobile/adapters';\n\n// 注册 supabase scheme + 鉴权拦截器；返回注销函数\nconst unregister = registerSupabase({\n  anonKey: import.meta.env.VITE_SUPABASE_ANON_KEY, // 也可走环境变量\n  getToken: async () => (await getSession())?.access_token, // 可选，用户态\n});\n```\n\n之后即可用 `supabase://` 形式作为数据源：\n\n```\nsupabase://products?select=id,title,price&category=eq.shoes&order=created_at.desc\n```\n\n- 自动变成 `GET {VITE_SUPABASE_URL}/rest/v1/products?...`\n- 自动带 `Range: {from}-{to}` 分页头 + `Prefer: count=exact`（返回 `total`）\n\n## 环境变量\n\n| 变量 | 用途 |\n|---|---|\n| `VITE_SUPABASE_URL` | Supabase REST 根地址（必需） |\n| `VITE_SUPABASE_ANON_KEY` | anon 公钥（`registerSupabase` 未传 `anonKey` 时读取） |\n\n## API\n\n| 导出 | 说明 |\n|---|---|\n| `registerSupabase({ anonKey?, getToken? })` | 注册 `supabase` backend + request 拦截器，返回注销函数 |\n| `supabaseAdapter(url, opts)` | 底层适配器函数（`supabase://` → PostgREST 请求） |\n\n> 当前专注于最常用的 Supabase。增量式扩展其他数据源时将陆续追加。","readmeFilename":"README.md"}