permdock 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +106 -47
- package/dist/a2a/index.d.ts +7 -16
- package/dist/a2a/index.js +59 -98
- package/dist/adapter-context-mlWsVGGg.js +23 -0
- package/dist/ai-sdk/index.d.ts +37 -16
- package/dist/ai-sdk/index.js +30 -13
- package/dist/approvals/index.d.ts +3 -3
- package/dist/approvals/index.js +5 -4
- package/dist/{approvals-DaxY-Bdg.js → approvals-DbYAuNkG.js} +17 -11
- package/dist/approvers-DT4AVyIg.js +52 -0
- package/dist/{arazzo-CTeVuXr5.js → arazzo-BAgw9ap6.js} +2 -2
- package/dist/{arazzo-aoTkqYsJ.js → arazzo-CKwwqFWz.js} +2 -2
- package/dist/authzen/index.d.ts +4 -13
- package/dist/authzen/index.js +16 -50
- package/dist/better-auth/index.d.ts +20 -3
- package/dist/better-auth/index.js +27 -7
- package/dist/better-supabase/index.d.ts +223 -0
- package/dist/better-supabase/index.js +648 -0
- package/dist/bind-C_ob3LKa.d.ts +25 -0
- package/dist/bind-CuzGytRf.js +97 -0
- package/dist/boundary-BM8a_P6E.js +13 -0
- package/dist/boundary-BmHxVH1J.d.ts +15 -0
- package/dist/canonical-json-DemiK4Vp.js +26 -0
- package/dist/{capability-BDG_nkxt.d.ts → capability-2kYTMWDv.d.ts} +2 -2
- package/dist/{capability-B68OFnZx.js → capability-4qPdO9gk.js} +7 -5
- package/dist/catalog/index.d.ts +1 -1
- package/dist/catalog/index.js +1 -1
- package/dist/catalog-CRW5Mx_B.js +2 -0
- package/dist/{catalog-H-vFGwWK.js → catalog-DWF5cYqB.js} +4 -4
- package/dist/{catalog-B0E6bggc.js → catalog-dFZdWCGN.js} +2 -2
- package/dist/{catalog-doc-BSo_Q_-6.js → catalog-doc-DdGm82XT.js} +20 -32
- package/dist/claude-agent/index.d.ts +5 -14
- package/dist/claude-agent/index.js +4 -10
- package/dist/clerk/index.d.ts +12 -3
- package/dist/clerk/index.js +26 -5
- package/dist/cli/bin.js +1 -1
- package/dist/cli/index.d.ts +3 -3
- package/dist/cli/index.js +2 -2
- package/dist/clients-C7zLFuWT.d.ts +12 -0
- package/dist/clients-DjU5ABMy.js +23 -0
- package/dist/cloud/index.d.ts +4 -5
- package/dist/cloud/index.js +20 -6
- package/dist/{cloud-BNQTrmrr.js → cloud-CB_ELYuX.js} +2 -2
- package/dist/{cloud-Cuxr6Czw.js → cloud-DWLXO2af.js} +7 -6
- package/dist/collect-DClJsheJ.js +83 -0
- package/dist/{collect-O-tOtbnk.js → collect-DSTE3ml9.js} +194 -42
- package/dist/collect-DSWOk19R.js +2 -0
- package/dist/{commands-BMh_Etm2.js → commands-DSxCqG9A.js} +16 -12
- package/dist/compile/index.d.ts +3 -0
- package/dist/compile/index.js +2 -0
- package/dist/{compile-D22iwvuV.js → compile-Ba4blROR.js} +85 -30
- package/dist/compile-BkRyBDBw.d.ts +94 -0
- package/dist/config-BJiM-xAm.js +157 -0
- package/dist/config-Dnszbv-6.js +36 -0
- package/dist/config-report-DMvWKUxL.js +44 -0
- package/dist/{connection-JvqwHODC.js → connection-CU8MQxRi.js} +1 -1
- package/dist/{context-CKEAabd7.js → context-Bcy85rGi.js} +36 -27
- package/dist/convex/index.d.ts +9 -4
- package/dist/convex/index.js +14 -4
- package/dist/create-B1d519XK.d.ts +245 -0
- package/dist/create-CMwIl-w2.js +253 -0
- package/dist/{credential-B_rkUNlY.js → credential-8P81ff4u.js} +26 -46
- package/dist/delegation-D8pUEuce.js +103 -0
- package/dist/{describe-Bt1YD5uS.js → describe-B_gVZEVi.js} +10 -15
- package/dist/{describe-DernyItf.d.ts → describe-DMYiCjJV.d.ts} +9 -10
- package/dist/{diff-x5Il8LVa.js → diff-2VaeChzX.js} +44 -11
- package/dist/{diff-BUzf5Poi.js → diff-DBIhz_f2.js} +2 -2
- package/dist/{doctor-Bqo6FwUa.js → doctor-BwCAMLx_.js} +2 -2
- package/dist/doctor-collect-CHk6XWOA.js +665 -0
- package/dist/doctor-igIiM_Hl.js +1194 -0
- package/dist/drizzle/index.d.ts +4 -3
- package/dist/drizzle/index.js +3 -3
- package/dist/elysia/index.d.ts +6 -28
- package/dist/elysia/index.js +16 -60
- package/dist/{errors-DSMnAVNa.js → errors-CWfoNg9N.js} +8 -4
- package/dist/{errors-Iy71s7Oj.js → errors-Cz5zn0mW.js} +17 -71
- package/dist/{errors-DbZ1YOnb.d.ts → errors-DPdqI50v.d.ts} +8 -21
- package/dist/{errors-m3u9TmDu.js → errors-DRnGZHzF.js} +4 -1
- package/dist/evaluation-items-CfCCejQd.js +40 -0
- package/dist/{evaluations-DsAU9ppl.js → evaluations-tz6D9A2G.js} +28 -46
- package/dist/eve/index.d.ts +6 -15
- package/dist/eve/index.js +7 -12
- package/dist/expiry-BoBJ8Tvc.js +7 -0
- package/dist/express/index.d.ts +6 -29
- package/dist/express/index.js +28 -58
- package/dist/fastify/index.d.ts +6 -29
- package/dist/fastify/index.js +16 -65
- package/dist/fields-BMl1RxoX.js +26 -0
- package/dist/{files-B_wAGYmt.js → files-DWUN9PzI.js} +5 -1
- package/dist/{fixtures-Cvaw0gDG.js → fixtures-ht28Cplr.js} +5 -2
- package/dist/{freeze-y1_jQL4v.js → freeze-CrU8nQeX.js} +31 -2
- package/dist/{from-snapshot-BMGnhmgv.js → from-snapshot-CTLijvdm.js} +66 -48
- package/dist/{grantee-Bv04_Vzf.js → grantee-Cv5Sogfv.js} +88 -7
- package/dist/graph-sql-B-dsAT6j.d.ts +29 -0
- package/dist/{headers-B5RRv3Xm.js → headers-BZSDieNT.js} +1 -1
- package/dist/{headers-C8SHQccD.d.ts → headers-Cf-zWvsO.d.ts} +1 -1
- package/dist/helpers-H_KARDVC.js +421 -0
- package/dist/hono/index.d.ts +6 -28
- package/dist/hono/index.js +11 -43
- package/dist/{hosted-BwKQ1BTA.js → hosted-DJQw46hn.js} +6 -5
- package/dist/{http-GgVApX1k.js → http-BIhmLfCc.js} +4 -20
- package/dist/http-SO7qGttf.js +44 -0
- package/dist/ids-DC4V4CFu.js +18 -0
- package/dist/index-0nNqHspG.d.ts +6 -0
- package/dist/{index-xIxJLwOQ.d.ts → index-BNc7Wer_.d.ts} +75 -7
- package/dist/{index-CltcQ4Bf.d.ts → index-C7Tw7MaW.d.ts} +68 -5
- package/dist/{index-LF_hS-yn.d.ts → index-C8z4RjQV.d.ts} +1 -1
- package/dist/index.d.ts +14 -9
- package/dist/index.js +22 -17
- package/dist/instance-options-Dhhcnm3y.js +22 -0
- package/dist/instance-options-jARdwfPN.d.ts +11 -0
- package/dist/{parse-DPfIvFMU.js → json-schema-BsAflUGW.js} +28 -57
- package/dist/jwt/index.d.ts +10 -6
- package/dist/jwt/index.js +32 -13
- package/dist/kernel-_RRHmnMY.js +208 -0
- package/dist/kysely/index.d.ts +4 -3
- package/dist/kysely/index.js +3 -3
- package/dist/live-options-H2eG8dfJ.js +60 -0
- package/dist/{load-BZ24CpZP.js → load-DhWEB9P1.js} +16 -10
- package/dist/load-DwJUafYN.js +2 -0
- package/dist/manifest-iaoBXHKc.js +783 -0
- package/dist/manifest-uDS9y5de.d.ts +206 -0
- package/dist/{map-DowSO96j.js → map-AcxK9o_D.js} +4 -15
- package/dist/{map-claims-B_6I1Rn-.js → map-claims-Z4QZOiFF.js} +13 -4
- package/dist/map-error-pgUWNNtG.js +23 -0
- package/dist/may-use-DndQ5tQ-.js +77 -0
- package/dist/mcp/index.d.ts +54 -22
- package/dist/mcp/index.js +218 -178
- package/dist/nest/index.d.ts +26 -31
- package/dist/nest/index.js +75 -84
- package/dist/next/client.d.ts +7 -8
- package/dist/next/client.js +11 -9
- package/dist/next/index.d.ts +30 -47
- package/dist/next/index.js +45 -60
- package/dist/next/plugin.d.ts +1 -1
- package/dist/next/plugin.js +32 -1
- package/dist/node/index.d.ts +9 -28
- package/dist/node/index.js +11 -43
- package/dist/openai/index.d.ts +6 -15
- package/dist/openai/index.js +7 -20
- package/dist/openapi/index.d.ts +87 -4
- package/dist/openapi/index.js +3 -3
- package/dist/{openapi-DcqM8nU7.js → openapi-BqRBvAng.js} +237 -5
- package/dist/{openapi-DWD0Uc_4.js → openapi-CqqEbHsL.js} +5 -5
- package/dist/{openapi-import-BWRUNNeW.js → openapi-import-cmwetbzw.js} +1 -1
- package/dist/{openapi-CwePaF7C.js → openapi-l0xYHkcv.js} +3 -3
- package/dist/{openapi-schema-D8j_T9tO.js → openapi-schema--ARjyfQr.js} +2 -2
- package/dist/orpc/index.d.ts +15 -28
- package/dist/orpc/index.js +74 -117
- package/dist/otel/index.d.ts +2 -2
- package/dist/parse-BuyjxhZV.js +53 -0
- package/dist/parse-local-manifest-BrMozJCo.js +36 -0
- package/dist/parse-local-manifest-JLnaBH0S.d.ts +10 -0
- package/dist/pdp/index.d.ts +2 -2
- package/dist/pdp/index.js +14 -127
- package/dist/{permdock-yoZ7EjxX.js → permdock-CbgvLnuo.js} +672 -149
- package/dist/{permissions-B8vCg_bI.d.ts → permissions-CDgvKG5L.d.ts} +2 -2
- package/dist/{permissions-DC7GROPA.js → permissions-DVoF6dMt.js} +77 -15
- package/dist/{permissions-B4apnahQ.d.ts → permissions-DttnqqxC.d.ts} +34 -5
- package/dist/{permissions-CofRqesP.js → permissions-RJrovw98.js} +3 -3
- package/dist/{pins-CqE1jZuF.js → pins-8ILTftC9.js} +2 -2
- package/dist/{policy-Cq2fB8Q5.d.ts → policy-D2W7uv19.d.ts} +2 -2
- package/dist/{policy-CInmNGkM.d.ts → policy-IB6yxpC3.d.ts} +351 -42
- package/dist/{policy-ANp36PnI.js → policy-xyWg7QdR.js} +173 -22
- package/dist/powersync-BylawD_U.js +540 -0
- package/dist/powersync-DliZK_-y.js +62 -0
- package/dist/powersync-e_AZrKbg.js +2 -0
- package/dist/prisma/index.d.ts +3 -2
- package/dist/prisma/index.js +45 -20
- package/dist/{problem-Cgp9-KZA.js → problem-B43ztKIm.js} +74 -109
- package/dist/problem-details-DX075l9V.d.ts +7 -0
- package/dist/problem-details-_AMOYz-w.js +144 -0
- package/dist/{protected-BuPAycJT.d.ts → protected-BdnIEFkY.d.ts} +5 -4
- package/dist/protected-utU-SLuy.js +100 -0
- package/dist/protected-xAr24FEC.d.ts +40 -0
- package/dist/provider-CSQd7m92.js +52 -0
- package/dist/{provider-wTAUda2v.d.ts → provider-DZY281jO.d.ts} +1 -1
- package/dist/provider-store-Cfbvo4DE.js +43 -0
- package/dist/react/index.d.ts +7 -5
- package/dist/react/index.js +5 -4
- package/dist/react/provider-client.d.ts +1 -1
- package/dist/react/provider-client.js +1 -1
- package/dist/react-native/index.d.ts +166 -10
- package/dist/react-native/index.js +607 -85
- package/dist/{refs-ChLSxbST.js → refs-KYb4ntaz.js} +4 -3
- package/dist/{relations-r4soIFZB.js → relations-cjOL01hZ.js} +110 -31
- package/dist/replay-BsOyTrdV.js +28 -0
- package/dist/replay-CYyiLiwO.d.ts +5 -0
- package/dist/resource-ref-CaS9yVPi.js +20 -0
- package/dist/revocations-Bhr0aMIC.js +27 -0
- package/dist/{rls-BOFU3chG.js → rls-B4ur8nKQ.js} +8 -3
- package/dist/rls-DQtdgTHB.js +2521 -0
- package/dist/rls-fields-74oZPXWL.js +3582 -0
- package/dist/{rls-graph-DxQ39PJj.js → rls-graph-CHwx0V8q.js} +100 -36
- package/dist/{rls-import-CXV6LBlS.js → rls-import-BTFVk3jH.js} +7 -6
- package/dist/{rls-migrate-DrFPbf8p.js → rls-migrate-CN4TlJTO.js} +6 -5
- package/dist/rls-ownership-RuFqaqGz.js +843 -0
- package/dist/rls-shared-Cewd_-zI.js +495 -0
- package/dist/rls-verify-CVQTHTh5.js +746 -0
- package/dist/{row-check-BajTgQZ-.d.ts → row-check-Dt35czLy.d.ts} +12 -15
- package/dist/row-conditions-h2HythXQ.js +27 -0
- package/dist/rpc-DL9Sqvb1.js +89 -0
- package/dist/{run-CJ6UvS3a.js → run-DKDbM4Du.js} +31 -12
- package/dist/runtime-CB8gQFvS.js +11 -0
- package/dist/{saas-BRrZzJkM.js → saas-DhpJjnBA.js} +17 -7
- package/dist/{schema-P8yoma__.js → schema-D3MnDMxa.js} +8 -4
- package/dist/scim/index.d.ts +1 -1
- package/dist/scim/index.js +1 -1
- package/dist/{scim-9NFa0XVZ.js → scim-BFGBBAqR.js} +1 -1
- package/dist/{scopes-cKVp_WTw.js → scopes-CVdPrWN-.js} +35 -8
- package/dist/server/index.d.ts +22 -11
- package/dist/server/index.js +11 -8
- package/dist/{credentials-BgRX3WEg.js → server-DlZ28Oz5.js} +1 -1
- package/dist/shared-DRu8VFVM.js +123 -0
- package/dist/{sink-Cfr9-7YC.d.ts → sink-B1fZzIMf.d.ts} +1 -1
- package/dist/skills-Biq5uup3.js +192 -0
- package/dist/{skills-C_lpV4Jx.js → skills-Bx-U0irG.js} +10 -4
- package/dist/{snapshot-DE8dE_hz.js → snapshot-Enxd0n-s.js} +138 -214
- package/dist/snapshot-cache-B-LxUahj.d.ts +45 -0
- package/dist/snapshot-cache-D6jLelln.js +44 -0
- package/dist/solid/index.d.ts +39 -9
- package/dist/solid/index.js +76 -85
- package/dist/sources-4p0-4xQm.js +545 -0
- package/dist/sources-BdOYLw9j.d.ts +192 -0
- package/dist/{sql-Bll1d7y0.js → sql-xdg5f4Fi.js} +6 -1
- package/dist/{src-CTNT-PBW.js → src-BDwEZWrZ.js} +149 -11
- package/dist/ssf/index.d.ts +3 -2
- package/dist/ssf/index.js +3 -29
- package/dist/store-DMAWwAJV.js +371 -0
- package/dist/{store-Bq90395i.d.ts → store-jOBYpiXC.d.ts} +13 -4
- package/dist/store-options-ByhZq1jV.js +716 -0
- package/dist/{stores-CkG2HrSg.js → stores-BT2pSCub.js} +10 -63
- package/dist/{stores-CvOnu_2T.d.ts → stores-C0IMQrGI.d.ts} +20 -9
- package/dist/{stream-BhMfZOwr.d.ts → stream-D1RXubw2.d.ts} +2 -2
- package/dist/{stream-Q_xlB6Ko.js → stream-DDpvynSB.js} +16 -2
- package/dist/subject-settings-BwBmCdTR.js +128 -0
- package/dist/supabase/index.d.ts +133 -6
- package/dist/supabase/index.js +4 -3
- package/dist/supabase/middleware.d.ts +32 -27
- package/dist/supabase/middleware.js +56 -22
- package/dist/{supabase-D8UlBA7Z.js → supabase-Boqb9a_Y.js} +3 -3
- package/dist/{supabase-DTxGtYdi.js → supabase-C0qESOa-.js} +347 -367
- package/dist/supabase-config-BpPXt3x1.js +472 -0
- package/dist/supabase-hook-6sYLXg_u.js +2 -0
- package/dist/{supabase-hook-D_OqGb_V.js → supabase-hook-CSLQ4zJ3.js} +1037 -705
- package/dist/supautils-Cn4R4cJ4.js +91 -0
- package/dist/svelte/PermissionBoundary.svelte +37 -0
- package/dist/svelte/Protected.svelte +8 -2
- package/dist/svelte/index.d.ts +9 -6
- package/dist/svelte/index.js +61 -7
- package/dist/svelte/runtime.d.ts +4 -3
- package/dist/svelte/runtime.js +4 -3
- package/dist/svelte/source.d.ts +9 -6
- package/dist/svelte/source.js +7 -4
- package/dist/terminal/index.d.ts +6 -14
- package/dist/terminal/index.js +44 -32
- package/dist/testing/index.d.ts +105 -16
- package/dist/testing/index.js +504 -40
- package/dist/testing/saas/index.d.ts +4 -4
- package/dist/testing/saas/index.js +2 -2
- package/dist/testing/saas/permissions.d.ts +1 -1
- package/dist/testing/saas/permissions.js +1 -1
- package/dist/token-CIWxJOCh.js +50 -0
- package/dist/trpc/index.d.ts +7 -26
- package/dist/trpc/index.js +17 -100
- package/dist/types-BnIEz1sU.d.ts +48 -0
- package/dist/{types-CxquUByI.d.ts → types-Bvc4oWT6.d.ts} +1 -1
- package/dist/{sources-DOpW5Ila.d.ts → types-C97IskBw.d.ts} +86 -127
- package/dist/types-CKNSyIf_.d.ts +52 -0
- package/dist/types-Cq_H8N_X.d.ts +197 -0
- package/dist/{types-D6Z6-rKJ.d.ts → types-DbjRN55U.d.ts} +273 -22
- package/dist/{types-BBK-exvJ.d.ts → types-Dnemwd77.d.ts} +7 -1
- package/dist/{types-BvBk1wgn.d.ts → types-DxiCGmmd.d.ts} +5 -3
- package/dist/{types-B9dmiiab.d.ts → types-QCuYJh4q.d.ts} +1 -1
- package/dist/{types-B8w5PFtS.d.ts → types-aqOHTHcp.d.ts} +17 -1
- package/dist/unplugin/index.d.ts +1 -1
- package/dist/unplugin/index.js +10 -9
- package/dist/usage-DorAJiU_.js +2 -0
- package/dist/{usage-1ozMubLY.js → usage-GTixvDDU.js} +2 -2
- package/dist/{usage-CUnK6Ou9.js → usage-ItS7nLcl.js} +225 -62
- package/dist/validation-error-Ba264OaJ.d.ts +26 -0
- package/dist/validation-error-CnjZ4t92.js +33 -0
- package/dist/{validity-D0uRmJKJ.js → validity-uOp8UpYn.js} +57 -36
- package/dist/{verifier-B90agnhl.js → verifier-BxBo6I44.js} +10 -5
- package/dist/version-BvacVTZR.js +17 -0
- package/dist/views-Soe7bGSC.js +95 -0
- package/dist/{vocabulary-Dk0fs-Jk.d.ts → vocabulary-DA8a8zif.d.ts} +1 -1
- package/dist/vue/index.d.ts +35 -13
- package/dist/vue/index.js +86 -93
- package/dist/watch-BwxLTYMZ.js +2 -0
- package/dist/watch-DVBJ9cBq.js +128 -0
- package/dist/webmcp/index.d.ts +2 -2
- package/dist/webmcp/index.js +7 -13
- package/package.json +62 -36
- package/schemas/approval-request-v1.json +175 -0
- package/schemas/catalog-v1.json +29 -1
- package/schemas/supabase-claims-v1.json +6 -1
- package/schemas/supabase-manifest-v1.json +150 -6
- package/skills/permdock/SKILL.md +7 -7
- package/skills/permdock-agents/SKILL.md +5 -5
- package/skills/permdock-agents/references/runtimes.md +12 -10
- package/skills/permdock-approvals/SKILL.md +4 -4
- package/skills/permdock-approvals/references/stores-and-resume.md +15 -4
- package/skills/permdock-audit/SKILL.md +3 -3
- package/skills/permdock-credentials/SKILL.md +4 -4
- package/skills/permdock-credentials/references/tokens-keys-links.md +7 -2
- package/skills/permdock-data/SKILL.md +4 -4
- package/skills/permdock-data/references/queries-and-rls.md +14 -6
- package/skills/permdock-data/references/relationships.md +5 -3
- package/skills/permdock-tenancy/SKILL.md +9 -6
- package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +14 -8
- package/skills/permdock-wire/SKILL.md +4 -4
- package/skills/permdock-wire/references/adapters.md +42 -30
- package/skills/permdock-wire/references/policy-options.md +5 -3
- package/dist/approvers-aH0PJkmf.js +0 -20
- package/dist/catalog-idsHc0vo.js +0 -2
- package/dist/collect-B7_TIfmg.js +0 -49
- package/dist/collect-fRPAQIWb.js +0 -2
- package/dist/compile-CQbvyIBr.d.ts +0 -30
- package/dist/config-BPYmjTOp.js +0 -26
- package/dist/context-gtAwAILx.js +0 -6
- package/dist/create-BKF3dgFk.d.ts +0 -162
- package/dist/create-CSkhDU9T.js +0 -222
- package/dist/doctor-BGle8Gqi.js +0 -1314
- package/dist/helpers-DnSOrhB9.js +0 -682
- package/dist/index-fG6NSXlc.d.ts +0 -9
- package/dist/kernel-YOGCWNLf.js +0 -211
- package/dist/load-QOOm1z70.js +0 -2
- package/dist/manifest-DDQbC6K0.d.ts +0 -118
- package/dist/map-error-RJ3ZsUyA.js +0 -16
- package/dist/may-use-CnFEjVEp.js +0 -37
- package/dist/pg-4GJWDUxG.js +0 -953
- package/dist/plugin-4gr7IxFJ.js +0 -65
- package/dist/protected-B4K3BKoX.js +0 -138
- package/dist/protected-wY7nXhY9.d.ts +0 -23
- package/dist/provider-_wx46HpB.js +0 -48
- package/dist/rls-CJVja9Ww.js +0 -2119
- package/dist/rls-helpers-BxRuif0l.js +0 -1346
- package/dist/runtime-DP9ttFh1.js +0 -27
- package/dist/skills-Dx3QLnMY.js +0 -110
- package/dist/source-DoBBYJi2.js +0 -6
- package/dist/sources-DVHM3Mwq.js +0 -284
- package/dist/store-C6hFW6ta.js +0 -508
- package/dist/subject-settings-xt7V845g.js +0 -82
- package/dist/supabase-hook-DW-xP4hU.js +0 -2
- package/dist/types-DbWdEfcm.d.ts +0 -87
- package/dist/types-bva3i4Gf.d.ts +0 -98
- package/dist/types-i4BAOvdb.d.ts +0 -97
- package/dist/usage-PyEor6GA.js +0 -2
- package/dist/version-CnSh33Fj.js +0 -16
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { $t as CredentialPrincipal, C as Policy, Pr as Subject, ln as PermDock, nt as CredentialVerifier } from "../policy-IB6yxpC3.js";
|
|
2
|
+
import { f as Permission, m as PermissionTree } from "../permissions-DttnqqxC.js";
|
|
3
|
+
import { g as SupabaseSubjectOptions, m as SupabaseSessionLike, u as SupabasePrincipal } from "../types-C97IskBw.js";
|
|
4
|
+
import { AuthorizationProvider } from "better-supabase/config";
|
|
5
|
+
import { AccessTopicPolicy } from "better-supabase/realtime";
|
|
6
|
+
import { AccessBucketPolicy } from "better-supabase/storage";
|
|
7
|
+
import { ApiKey, ApiKeyClaimsOptions, ApiKeys } from "better-supabase/blocks/api-keys";
|
|
8
|
+
import { CredentialProvider } from "better-supabase/credentials";
|
|
9
|
+
import { ToolDecision, ToolRef } from "better-supabase/mcp";
|
|
10
|
+
import { EntitlementClaimOptions } from "better-supabase/blocks/entitlements";
|
|
11
|
+
import { AuthSession } from "better-supabase/server";
|
|
12
|
+
//#region src/better-supabase/provider.d.ts
|
|
13
|
+
type AuthorizationProviderOptions = {
|
|
14
|
+
/** `permdock.manifest.json`, parsed or as JSON text, from `permdock supabase inspect --out`. */
|
|
15
|
+
readonly manifest: unknown;
|
|
16
|
+
/**
|
|
17
|
+
* `permissions.catalog.json` from `permdock catalog`. Without it the
|
|
18
|
+
* provider lists no permissions, so better-supabase refuses every key in
|
|
19
|
+
* a bucket, topic or module check.
|
|
20
|
+
*/
|
|
21
|
+
readonly catalog?: unknown;
|
|
22
|
+
/** The scope tenants are; defaults to the manifest's one root scope. */
|
|
23
|
+
readonly scope?: string;
|
|
24
|
+
/**
|
|
25
|
+
* The permission that lets a user decide a tool call waiting for approval
|
|
26
|
+
* in a tenant, for better-supabase's `canApprove`. The approver is never
|
|
27
|
+
* the user who asked (`approvals.distinctApprover`). Without it the chat's
|
|
28
|
+
* owner decides.
|
|
29
|
+
*/
|
|
30
|
+
readonly approver?: Permission;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* better-supabase's `authorization` config value, built from PermDock's
|
|
34
|
+
* manifest and catalog: the scopes, the `rls generate` helpers as SQL
|
|
35
|
+
* templates, the membership tables, suspension rows, the token hook and
|
|
36
|
+
* every catalog key with `sqlComplete` set from its `rowConditions`. A
|
|
37
|
+
* `_for` template and `permissionsFor` are set only when the manifest lists
|
|
38
|
+
* their helper, which `rls.mode: 'database'` writes; `canApprove` only with
|
|
39
|
+
* `approver`. Throws when the manifest or catalog is invalid, or when the
|
|
40
|
+
* tenant scope is ambiguous.
|
|
41
|
+
*/
|
|
42
|
+
export declare function authorizationProvider(options: AuthorizationProviderOptions): AuthorizationProvider;
|
|
43
|
+
//#endregion
|
|
44
|
+
//#region src/better-supabase/policies.d.ts
|
|
45
|
+
type AccessScope = {
|
|
46
|
+
/** A scope in the policy's scopes (or the manifest's `rls.scopes`), or `platform` for permissions granted globally. */
|
|
47
|
+
readonly scope: string;
|
|
48
|
+
/** 1-based path or topic segment holding the scope id; better-supabase's default is the `{organizationId}` segment. */
|
|
49
|
+
readonly segment?: number;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Either the policy the app already defines, or the two files the CLI writes.
|
|
53
|
+
* With `policy` nothing is read at runtime: the scopes, the row conditions and
|
|
54
|
+
* the scopes a permission is granted at come from the definitions.
|
|
55
|
+
*/
|
|
56
|
+
type AccessPolicyOptions = AccessScope & ({
|
|
57
|
+
/** `permdock.manifest.json`, parsed or as JSON text: it names the helpers' schema and the scopes. */
|
|
58
|
+
readonly manifest: unknown;
|
|
59
|
+
/** `permissions.catalog.json`: only keys it marks `rowConditions: false` are accepted. */
|
|
60
|
+
readonly catalog: unknown;
|
|
61
|
+
readonly policy?: undefined;
|
|
62
|
+
readonly schema?: undefined;
|
|
63
|
+
} | {
|
|
64
|
+
/** The `definePolicy` result: only keys with no row condition in it are accepted. */
|
|
65
|
+
readonly policy: Policy;
|
|
66
|
+
/** The schema `rls generate` put the helpers in (`rls.schema`). Default `permdock`. */
|
|
67
|
+
readonly schema?: string;
|
|
68
|
+
readonly manifest?: undefined;
|
|
69
|
+
readonly catalog?: undefined;
|
|
70
|
+
});
|
|
71
|
+
type BucketAccess = {
|
|
72
|
+
/** Downloads, signed URLs, renders and metadata reads. */
|
|
73
|
+
readonly read: Permission;
|
|
74
|
+
/** Listing; without it `read` covers listing too. */
|
|
75
|
+
readonly list?: Permission;
|
|
76
|
+
/** Uploads, updates and moves; also deletes unless `delete` is set. */
|
|
77
|
+
readonly write: Permission;
|
|
78
|
+
readonly delete?: Permission;
|
|
79
|
+
};
|
|
80
|
+
type TopicAccess = {
|
|
81
|
+
readonly receive: Permission;
|
|
82
|
+
/** Lets clients send on the topic. */
|
|
83
|
+
readonly send?: Permission;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* A better-supabase bucket `policy` that checks PermDock permissions with
|
|
87
|
+
* the `rls generate` helpers at `scope`. The helpers check role and scope
|
|
88
|
+
* only, so a permission with row conditions (`rowConditions: true` in the
|
|
89
|
+
* catalog, or a conditioned grant in `policy`), or one not granted at
|
|
90
|
+
* `scope`, throws.
|
|
91
|
+
*/
|
|
92
|
+
export declare function bucketPolicy(access: BucketAccess, options: AccessPolicyOptions): AccessBucketPolicy;
|
|
93
|
+
/** As {@link bucketPolicy}, for a better-supabase Realtime topic. */
|
|
94
|
+
export declare function topicPolicy(access: TopicAccess, options: AccessPolicyOptions): AccessTopicPolicy;
|
|
95
|
+
//#endregion
|
|
96
|
+
//#region src/better-supabase/api-keys.d.ts
|
|
97
|
+
/** The roles a tenant key holds in its tenant: a list, or one per key. */
|
|
98
|
+
type ServiceRoles<K> = readonly string[] | ((key: K) => readonly string[]);
|
|
99
|
+
type ApiKeyVerifierOptions = {
|
|
100
|
+
/** `createApiKeys()` over a service transport. */
|
|
101
|
+
readonly keys: Pick<ApiKeys, "verify">;
|
|
102
|
+
/**
|
|
103
|
+
* `permdock.manifest.json`, whose `rls.apiKeys.serviceRoles` is the
|
|
104
|
+
* default for `serviceRoles`.
|
|
105
|
+
*/
|
|
106
|
+
readonly manifest?: unknown;
|
|
107
|
+
/**
|
|
108
|
+
* The roles a tenant key holds in its tenant, as a `service` principal.
|
|
109
|
+
* Without it or a manifest with `rls.apiKeys`, a tenant key verifies to
|
|
110
|
+
* `null`.
|
|
111
|
+
*/
|
|
112
|
+
readonly serviceRoles?: ServiceRoles<ApiKey>;
|
|
113
|
+
/** The permissions `*` stands for. Without it, a key with `*` verifies to `null`. */
|
|
114
|
+
readonly allPermissions?: readonly Permission[];
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* better-supabase's API keys as a `CredentialVerifier`, for
|
|
118
|
+
* `subjectFromApiKey` from `permdock/server`, which reads PermDock's
|
|
119
|
+
* `pdk_<id>_<secret>` format: create the keys with `prefix: "pdk"`. The
|
|
120
|
+
* credential id is the key's `publicId`, the id in the token. A personal key
|
|
121
|
+
* is a `user` credential acting as its user (inside its tenant when the key
|
|
122
|
+
* is limited to one), a tenant key a `service` credential holding
|
|
123
|
+
* `serviceRoles` in its tenant, and the key's scopes are the credential's
|
|
124
|
+
* permissions. better-supabase records the use when it verifies, so there is
|
|
125
|
+
* no `touch`. A rotated key in its grace period verifies, and its credential
|
|
126
|
+
* expires when the grace period ends. An invalid, revoked, expired or
|
|
127
|
+
* rate-limited key, and a failed lookup, are `null`. `permdock/server` exports a different
|
|
128
|
+
* `apiKeyVerifier`, over the application's own key records.
|
|
129
|
+
*/
|
|
130
|
+
export declare function apiKeyVerifier(options: ApiKeyVerifierOptions): CredentialVerifier;
|
|
131
|
+
/**
|
|
132
|
+
* The `claim` and `tenantClaim` options of better-supabase's
|
|
133
|
+
* `apiKeyClaims()`, from the manifest's `rls.apiKeys`, so a key's token
|
|
134
|
+
* carries the scopes ceiling, tenant and roles the `rls generate` helpers
|
|
135
|
+
* read. Throws when the manifest has no `rls.apiKeys`.
|
|
136
|
+
*/
|
|
137
|
+
export declare function apiKeyClaimOptions(manifest: unknown): Pick<ApiKeyClaimsOptions, "claim" | "tenantClaim">;
|
|
138
|
+
//#endregion
|
|
139
|
+
//#region src/better-supabase/credentials.d.ts
|
|
140
|
+
type CredentialGuardOptions = {
|
|
141
|
+
/** The request's PermDock instance. */
|
|
142
|
+
readonly permdock: () => PermDock | Promise<PermDock>;
|
|
143
|
+
/** The permission that resolves a token or connects an account; decided on the ref. */
|
|
144
|
+
readonly use: Permission;
|
|
145
|
+
/** The permission that revokes a stored credential; defaults to `use`. */
|
|
146
|
+
readonly revoke?: Permission;
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* `provider` with every `getToken`, `startAuthorization`,
|
|
150
|
+
* `completeAuthorization` and `revoke` decided by PermDock first, on the
|
|
151
|
+
* `CredentialRef` as the row. Anything but `granted` is a `forbidden`
|
|
152
|
+
* error with hint `PERMDOCK_DENIED`, and a failed check is one too.
|
|
153
|
+
* `capabilities` and `verifyInbound` (a third party's request, with no
|
|
154
|
+
* user) pass through. Build it per request, with that request's PermDock.
|
|
155
|
+
*/
|
|
156
|
+
export declare function credentialGuard(provider: CredentialProvider, options: CredentialGuardOptions): CredentialProvider;
|
|
157
|
+
//#endregion
|
|
158
|
+
//#region src/better-supabase/mcp.d.ts
|
|
159
|
+
/** What better-supabase's `createMcp` hooks see of a tool. */
|
|
160
|
+
type McpToolRef = Pick<ToolRef, "meta">;
|
|
161
|
+
/** The outcome of better-supabase's `createMcp` `authorize` hook. */
|
|
162
|
+
type McpToolDecision = ToolDecision;
|
|
163
|
+
type ToolPolicyOptions<C> = {
|
|
164
|
+
/** The request's PermDock instance, from the hook's context. */
|
|
165
|
+
readonly permdock: (ctx: C) => PermDock | Promise<PermDock>;
|
|
166
|
+
/**
|
|
167
|
+
* The row an instance permission is decided on, from the validated
|
|
168
|
+
* arguments. Without it the call is decided without a row, which an
|
|
169
|
+
* instance permission with a row condition denies.
|
|
170
|
+
*/
|
|
171
|
+
readonly data?: (ctx: C, tool: McpToolRef, args: unknown) => unknown;
|
|
172
|
+
};
|
|
173
|
+
type ToolPolicy<C> = {
|
|
174
|
+
readonly authorize: (ctx: C, tool: McpToolRef, args: unknown) => Promise<McpToolDecision>;
|
|
175
|
+
readonly visible: (ctx: C, tool: McpToolRef) => Promise<boolean>;
|
|
176
|
+
};
|
|
177
|
+
/**
|
|
178
|
+
* The `authorize` and `visible` hooks of better-supabase's `createMcp`, for
|
|
179
|
+
* tools whose `meta` is a PermDock permission. A tool without a permission
|
|
180
|
+
* is hidden and refused. `authorize` grants only a `granted` decision: an
|
|
181
|
+
* approval-required call is refused, because `createMcp`
|
|
182
|
+
* has no approval flow. A throw anywhere refuses.
|
|
183
|
+
*/
|
|
184
|
+
export declare function toolPolicy<C>(options: ToolPolicyOptions<C>): ToolPolicy<C>;
|
|
185
|
+
//#endregion
|
|
186
|
+
//#region src/better-supabase/subject.d.ts
|
|
187
|
+
/** An `AuthSession` of kind `apiKey`, from better-supabase's api-keys middleware. */
|
|
188
|
+
type ApiKeySession = Extract<AuthSession, {
|
|
189
|
+
readonly kind: "apiKey";
|
|
190
|
+
}>;
|
|
191
|
+
type ApiKeySessionOptions = {
|
|
192
|
+
/** The definitions: the key's scopes become the subject's delegation, and `*` stands for all of them. */
|
|
193
|
+
readonly permissions: PermissionTree;
|
|
194
|
+
/** `permdock.manifest.json`, whose `rls.apiKeys.serviceRoles` is the default for `serviceRoles`. */
|
|
195
|
+
readonly manifest?: unknown;
|
|
196
|
+
/** The roles a tenant key holds in its tenant. Without it or a manifest with `rls.apiKeys`, a tenant key is anonymous. */
|
|
197
|
+
readonly serviceRoles?: ServiceRoles<ApiKeySession>;
|
|
198
|
+
};
|
|
199
|
+
/** The claim, and the short code better-supabase writes for each feature key. */
|
|
200
|
+
type FeatureClaim = EntitlementClaimOptions;
|
|
201
|
+
type BetterSupabaseSubjectOptions = Omit<SupabaseSubjectOptions, "plans"> & {
|
|
202
|
+
/** How `kind: 'apiKey'` sessions map. Without it they are anonymous. */
|
|
203
|
+
readonly apiKeys?: ApiKeySessionOptions;
|
|
204
|
+
/**
|
|
205
|
+
* The claim `principal.plans` reads: its name (default `features`), or
|
|
206
|
+
* `{ claim, keys }` with the same `entitlements.claim.keys` better-supabase
|
|
207
|
+
* writes short codes with, so `plans` holds the feature keys. A code
|
|
208
|
+
* without a key is dropped.
|
|
209
|
+
*/
|
|
210
|
+
readonly plans?: string | FeatureClaim;
|
|
211
|
+
};
|
|
212
|
+
/**
|
|
213
|
+
* `subjectFromSupabaseSession` for better-supabase's `AuthSession`, reading
|
|
214
|
+
* `memberships` for the memberships and the entitlements module's `features`
|
|
215
|
+
* claim for `principal.plans` (`plans` names another claim). With `apiKeys`,
|
|
216
|
+
* a verified `apiKey` session is the key's credential subject: a personal key
|
|
217
|
+
* acts as its user within the key's scopes, a tenant key as a `service`
|
|
218
|
+
* principal holding `serviceRoles`. Without `apiKeys`, and for `anon`,
|
|
219
|
+
* `service` and `invalid` sessions, the subject is anonymous.
|
|
220
|
+
*/
|
|
221
|
+
export declare function subjectFromBetterSupabase(session: SupabaseSessionLike | ApiKeySession | null | undefined, options?: BetterSupabaseSubjectOptions): Subject<SupabasePrincipal> | Subject<CredentialPrincipal> | Subject;
|
|
222
|
+
//#endregion
|
|
223
|
+
export type { AccessPolicyOptions, ApiKeySession, ApiKeySessionOptions, ApiKeyVerifierOptions, AuthorizationProviderOptions, BetterSupabaseSubjectOptions, BucketAccess, CredentialGuardOptions, McpToolDecision, McpToolRef, ServiceRoles, SupabasePrincipal, ToolPolicy, ToolPolicyOptions, TopicAccess };
|