permdock 0.3.1 → 0.4.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/dist/a2a/index.d.ts +7 -5
- package/dist/a2a/index.js +14 -21
- package/dist/ai-sdk/index.d.ts +18 -6
- package/dist/ai-sdk/index.js +8 -5
- package/dist/app-data-CV8pqqMi.js +59 -0
- package/dist/approvals/index.d.ts +2 -2
- package/dist/approvals/index.js +3 -3
- package/dist/{approvals-DbYAuNkG.js → approvals-DZL76lKW.js} +35 -19
- package/dist/{approvers-DT4AVyIg.js → approvers-CqPOLD-o.js} +1 -1
- package/dist/{arazzo-BAgw9ap6.js → arazzo-C4BcskbX.js} +6 -5
- package/dist/{arazzo-C9chp3ST.js → arazzo-CD8d0WLb.js} +2 -2
- package/dist/authzen/index.d.ts +3 -3
- package/dist/authzen/index.js +161 -23
- package/dist/better-auth/index.d.ts +2 -2
- package/dist/better-auth/index.js +6 -19
- package/dist/better-supabase/index.d.ts +112 -87
- package/dist/better-supabase/index.js +257 -156
- package/dist/{bind-C_ob3LKa.d.ts → bind-BzqG8SMb.d.ts} +16 -5
- package/dist/{bind-CuzGytRf.js → bind-kk-uyCwH.js} +14 -6
- package/dist/build-instance-DIIV9DbC.js +51 -0
- package/dist/{canonical-json-DemiK4Vp.js → canonical-json-CFKyFOke.js} +1 -3
- package/dist/{capability-2kYTMWDv.d.ts → capability-CksyCWDH.d.ts} +2 -2
- package/dist/{capability-4qPdO9gk.js → capability-txATtKV4.js} +3 -2
- package/dist/catalog/index.d.ts +1 -1
- package/dist/catalog/index.js +1 -1
- package/dist/catalog-6yWAX6Ps.js +2 -0
- package/dist/{catalog-CYj-mX2O.js → catalog-WHG4kBq7.js} +2 -2
- package/dist/{catalog-doc-DdGm82XT.js → catalog-doc-DWtg0gGR.js} +17 -10
- package/dist/{catalog-DWF5cYqB.js → catalog-tZUyOfOv.js} +4 -4
- package/dist/claude-agent/index.d.ts +4 -4
- package/dist/claude-agent/index.js +4 -5
- package/dist/clerk/index.d.ts +3 -3
- package/dist/clerk/index.js +8 -33
- package/dist/cli/bin.js +1 -1
- package/dist/cli/index.d.ts +3 -3
- package/dist/cli/index.js +3 -3
- package/dist/cloud/index.d.ts +4 -4
- package/dist/cloud/index.js +9 -15
- package/dist/{cloud-CfwZ39Rl.js → cloud-C7bSDgX4.js} +2 -2
- package/dist/{cloud-DWLXO2af.js → cloud-PeBN3IEn.js} +5 -5
- package/dist/{collect-DSTE3ml9.js → collect-2SrB7lfk.js} +6 -8
- package/dist/collect-Bw2Jdq1q.js +2 -0
- package/dist/{collect-CHB22Sx4.js → collect-CQx4hX4N.js} +3 -3
- package/dist/{commands-BeaGNj_o.js → commands-Cpip4ULx.js} +13 -13
- package/dist/{compact-y6vfu2_f.js → compact-CAf557ZB.js} +11 -1
- package/dist/compile/index.d.ts +1 -1
- package/dist/compile/index.js +1 -1
- package/dist/{compile-Ba4blROR.js → compile-CcEu2ZQ1.js} +6 -5
- package/dist/{compile-BkRyBDBw.d.ts → compile-CtTP7eur.d.ts} +2 -2
- package/dist/{config-BJiM-xAm.js → config-BIjREpyE.js} +4 -4
- package/dist/{config-ir40y8m0.js → config-DLt6BvV7.js} +2 -2
- package/dist/{config-report-CdCgbRnV.js → config-report--Xb9APJS.js} +5 -6
- package/dist/{connection-CU8MQxRi.js → connection-DUsczpB5.js} +3 -2
- package/dist/constants-DcJABbLW.js +20 -0
- package/dist/{context-Bcy85rGi.js → context-DieZVJXu.js} +16 -5
- package/dist/convex/index.d.ts +4 -4
- package/dist/convex/index.js +14 -16
- package/dist/create-BBO24vj6.js +324 -0
- package/dist/{credential-8P81ff4u.js → credential-kue0qpbm.js} +4 -4
- package/dist/deciding-columns-Sq12mEA6.js +123 -0
- package/dist/delegation-input-FTxMK3ji.js +19 -0
- package/dist/denied-text-DfRk15uw.d.ts +19 -0
- package/dist/{describe-DMYiCjJV.d.ts → describe-C3ldA9os.d.ts} +11 -2
- package/dist/{describe-B_gVZEVi.js → describe-Cgkp7eP0.js} +5 -4
- package/dist/{diff-C9RDjjhs.js → diff-Cnghh_Ip.js} +2 -2
- package/dist/{diff-2VaeChzX.js → diff-rpqoe7Ag.js} +9 -9
- package/dist/{doctor-Djh6JDEk.js → doctor-CuVJvhV_.js} +2 -2
- package/dist/doctor-owlv6ddh.js +2166 -0
- package/dist/drizzle/index.d.ts +2 -2
- package/dist/drizzle/index.js +6 -14
- package/dist/elysia/index.d.ts +4 -4
- package/dist/elysia/index.js +7 -7
- package/dist/{errors-DPdqI50v.d.ts → errors-OD_4c__H.d.ts} +2 -2
- package/dist/{errors-Cz5zn0mW.js → errors-drnfxYtm.js} +3 -3
- package/dist/{evaluations-tz6D9A2G.js → evaluations-C9YJsv3H.js} +45 -7
- package/dist/eve/index.d.ts +5 -5
- package/dist/eve/index.js +5 -5
- package/dist/express/index.d.ts +4 -4
- package/dist/express/index.js +8 -7
- package/dist/fastify/index.d.ts +15 -5
- package/dist/fastify/index.js +9 -29
- package/dist/fields-fwfXN01n.js +1016 -0
- package/dist/{files-DWUN9PzI.js → files-D_JIzUrP.js} +12 -3
- package/dist/{fixtures-ht28Cplr.js → fixtures-h2eG2OZV.js} +5 -6
- package/dist/{from-snapshot-CTLijvdm.js → from-snapshot-7REQZe0H.js} +32 -22
- package/dist/{generate-CH7ThJ14.js → generate-CNU1pIOo.js} +1 -3
- package/dist/grantee-CXY-0C87.js +254 -0
- package/dist/grantee-conditions-MQs5NIuX.js +270 -0
- package/dist/grantee-match-fxYp9Nmt.js +141 -0
- package/dist/{helpers-H_KARDVC.js → helpers-C9YmyBIa.js} +7 -6
- package/dist/hono/index.d.ts +4 -4
- package/dist/hono/index.js +8 -8
- package/dist/hosted-CBHgkzDl.js +655 -0
- package/dist/{http-SO7qGttf.js → http-BBoKefeS.js} +35 -2
- package/dist/{http-BIhmLfCc.js → http-BEbdMZ05.js} +2 -24
- package/dist/{rls-import-4lLW_pbb.js → import-BFIlhetD.js} +86 -80
- package/dist/{openapi-import-cmwetbzw.js → import-UHk1N7vH.js} +6 -7
- package/dist/{index-C8z4RjQV.d.ts → index-BwMe94Xq.d.ts} +1 -1
- package/dist/{index-0nNqHspG.d.ts → index-DgM7w96K.d.ts} +2 -2
- package/dist/{index-C7Tw7MaW.d.ts → index-Dz7didpC.d.ts} +3 -3
- package/dist/{index-BNc7Wer_.d.ts → index-UdVQgq48.d.ts} +105 -38
- package/dist/index.d.ts +15 -13
- package/dist/index.js +22 -22
- package/dist/{instance-options-jARdwfPN.d.ts → instance-options-plkrsAog.d.ts} +1 -1
- package/dist/{json-schema-BsAflUGW.js → json-schema-DBkdUuCO.js} +1 -3
- package/dist/jwt/index.d.ts +4 -4
- package/dist/jwt/index.js +13 -13
- package/dist/{kernel-_RRHmnMY.js → kernel-CB3LrIJM.js} +81 -32
- package/dist/kysely/index.d.ts +2 -2
- package/dist/kysely/index.js +6 -14
- package/dist/{live-options-H2eG8dfJ.js → live-options-BaAFCIiu.js} +16 -3
- package/dist/load-B_shHrmd.js +2 -0
- package/dist/{load-DhWEB9P1.js → load-C3_oTHyO.js} +11 -3
- package/dist/{manifest-iaoBXHKc.js → manifest-BngWKryL.js} +5 -18
- package/dist/{map-claims-Z4QZOiFF.js → map-claims-AVlBaJoa.js} +7 -16
- package/dist/{map-error-pgUWNNtG.js → map-error-BE27PYkE.js} +5 -5
- package/dist/{markers-B0hYLvMD.js → markers-CiwAOZtO.js} +6 -2
- package/dist/{may-use-DndQ5tQ-.js → may-use-BOn_dR_w.js} +4 -3
- package/dist/mcp/index.d.ts +26 -9
- package/dist/mcp/index.js +456 -446
- package/dist/{rls-migrate-CN4TlJTO.js → migrate-BwlB5-Wk.js} +75 -15
- package/dist/nest/index.d.ts +4 -4
- package/dist/nest/index.js +11 -12
- package/dist/next/index.d.ts +31 -8
- package/dist/next/index.js +29 -33
- package/dist/next/plugin.d.ts +1 -1
- package/dist/next/plugin.js +1 -1
- package/dist/node/index.d.ts +4 -4
- package/dist/node/index.js +4 -4
- package/dist/ocsf-uYFXGVw2.js +115 -0
- package/dist/openai/index.d.ts +5 -5
- package/dist/openai/index.js +4 -4
- package/dist/openapi/index.d.ts +3 -3
- package/dist/openapi/index.js +1 -1
- package/dist/{openapi-CqqEbHsL.js → openapi-BJdBmYDG.js} +19 -23
- package/dist/{openapi-BqRBvAng.js → openapi-DBzHQbov.js} +2 -5
- package/dist/{openapi-CQTsgKoB.js → openapi-DcQ1Kg40.js} +3 -3
- package/dist/orpc/index.d.ts +5 -5
- package/dist/orpc/index.js +9 -11
- package/dist/otel/index.d.ts +2 -2
- package/dist/otel/index.js +26 -23
- package/dist/output-files-CgIsvdSa.js +140 -0
- package/dist/{rls-ownership-DcYlZ09B.js → ownership-BgnbOJFT.js} +387 -379
- package/dist/{package-root-zGkxO3oN.js → package-root-DtNnpmUd.js} +3 -2
- package/dist/{parse-BuyjxhZV.js → parse-CVFQHk6c.js} +3 -3
- package/dist/{parse-local-manifest-BrMozJCo.js → parse-local-manifest-C-q02Pal.js} +2 -4
- package/dist/{parse-local-manifest-JLnaBH0S.d.ts → parse-local-manifest-DvYUR0QL.d.ts} +1 -1
- package/dist/pdp/index.d.ts +2 -2
- package/dist/pdp/index.js +8 -9
- package/dist/{permdock-CbgvLnuo.js → permdock-L26udHSk.js} +1387 -1220
- package/dist/{rls-fields-CZOMlwHl.js → permission-keys-B26jeyUv.js} +1268 -2053
- package/dist/permission-registry-BsblpB-z.js +385 -0
- package/dist/{permissions-DttnqqxC.d.ts → permission-types-Dg39z9Kv.d.ts} +59 -31
- package/dist/{permissions-RJrovw98.js → permissions-CCJ6lmxB.js} +3 -3
- package/dist/{permissions-CDgvKG5L.d.ts → permissions-COH-KRgT.d.ts} +2 -2
- package/dist/{policy-IB6yxpC3.d.ts → policy-types-sp9P1iIV.d.ts} +661 -582
- package/dist/{policy-D2W7uv19.d.ts → policy-ur0BBK_e.d.ts} +2 -2
- package/dist/{powersync-DE19b9dT.js → powersync-BFSbSElQ.js} +2 -2
- package/dist/powersync-DCDgZgfZ.js +2 -0
- package/dist/{powersync-Dv1_aWF7.js → powersync-cZe4kzhL.js} +26 -27
- package/dist/prisma/index.d.ts +1 -1
- package/dist/prisma/index.js +6 -12
- package/dist/{problem-B43ztKIm.js → problem-CnWraVhC.js} +8 -7
- package/dist/{problem-details-_AMOYz-w.js → problem-details-DECUnXAn.js} +2 -2
- package/dist/{problem-details-DX075l9V.d.ts → problem-details-rIIo8B2C.d.ts} +1 -1
- package/dist/{protected-BdnIEFkY.d.ts → protected-B3_P7xuw.d.ts} +9 -6
- package/dist/{protected-utU-SLuy.js → protected-BN7BUdY1.js} +20 -8
- package/dist/{provider-CSQd7m92.js → provider-Bi-0HNL3.js} +23 -10
- package/dist/{provider-DZY281jO.d.ts → provider-kwHC9CZD.d.ts} +1 -1
- package/dist/{provider-store-Cfbvo4DE.js → provider-store-Ctt-81Ni.js} +6 -3
- package/dist/react/index.d.ts +7 -7
- package/dist/react/index.js +5 -5
- package/dist/react/provider-client.d.ts +1 -1
- package/dist/react/provider-client.js +1 -1
- package/dist/react-native/index.d.ts +20 -11
- package/dist/react-native/index.js +33 -17
- package/dist/{refs-KYb4ntaz.js → refs-f3imMjNW.js} +1 -1
- package/dist/relation-walk-BXnlLtg2.js +186 -0
- package/dist/relations-CvmSpG67.js +163 -0
- package/dist/{replay-CYyiLiwO.d.ts → replay-COpmZUfx.d.ts} +1 -1
- package/dist/request-context-BVM7aWNs.js +71 -0
- package/dist/request-context-C2_1lchh.d.ts +5 -0
- package/dist/resource-relations-D1Un3pcz.js +243 -0
- package/dist/retire-BFcxL6un.js +240 -0
- package/dist/{rls-P-BeBx0n.js → rls-55DQTuf5.js} +14 -2
- package/dist/{rls-DiinlRML.js → rls-BEktUaqg.js} +884 -484
- package/dist/{policy-xyWg7QdR.js → role-builder-B4GbKM-i.js} +235 -541
- package/dist/{rpc-DL9Sqvb1.js → rpc-nYC3cR_u.js} +15 -5
- package/dist/{run-BWc9qqvE.js → run-DMcNW_8T.js} +3 -3
- package/dist/{runtime-CB8gQFvS.js → runtime-D_tMXnsq.js} +1 -1
- package/dist/{saas-DhpJjnBA.js → saas-DtaA4JuW.js} +9 -8
- package/dist/{openapi-schema--ARjyfQr.js → schema-Bol6gqXA.js} +3 -5
- package/dist/{schema-D3MnDMxa.js → schema-DjQBcAP9.js} +4 -2
- package/dist/scim/index.d.ts +1 -1
- package/dist/scim/index.js +1 -1
- package/dist/{scim-BFGBBAqR.js → scim-vFR1O5oG.js} +6 -12
- package/dist/{scopes-CVdPrWN-.js → scopes-tvpa34ep.js} +10 -2
- package/dist/server/index.d.ts +18 -8
- package/dist/server/index.js +8 -8
- package/dist/{server-DlZ28Oz5.js → server-ZYEHtNHS.js} +4 -4
- package/dist/{create-B1d519XK.d.ts → server-types-DdqBwZN_.d.ts} +69 -33
- package/dist/shared-1uhI-e-b.js +294 -0
- package/dist/{shared-DRu8VFVM.js → shared-JhMeOsDF.js} +1 -1
- package/dist/{sink-Bd9PSyfq.js → sink-BTtmfPnE.js} +1 -1
- package/dist/{sink-B1fZzIMf.d.ts → sink-CPN4zLfs.d.ts} +1 -1
- package/dist/{skills-Biq5uup3.js → skills-BZdRQkxs.js} +4 -3
- package/dist/{skills-C5CbhhpG.js → skills-Dle4ZoLF.js} +2 -2
- package/dist/{snapshot-Enxd0n-s.js → snapshot-Dc9CHPME.js} +116 -13
- package/dist/{snapshot-cache-D6jLelln.js → snapshot-cache-Cod40D-X.js} +1 -1
- package/dist/{snapshot-cache-B-LxUahj.d.ts → snapshot-cache-J5T7t_vD.d.ts} +1 -1
- package/dist/solid/index.d.ts +22 -22
- package/dist/solid/index.js +40 -10
- package/dist/{sources-4p0-4xQm.js → sources-B1-b-R0t.js} +25 -26
- package/dist/{sources-BdOYLw9j.d.ts → sources-Dljy06zL.d.ts} +6 -2
- package/dist/{sql-xdg5f4Fi.js → sql-t8teWOfo.js} +19 -3
- package/dist/{src-BDwEZWrZ.js → src-Bb7no-hS.js} +194 -123
- package/dist/ssf/index.d.ts +3 -3
- package/dist/ssf/index.js +58 -61
- package/dist/store-9KO4BlkB.d.ts +147 -0
- package/dist/{store-DMAWwAJV.js → store-ILkLUj_o.js} +4 -4
- package/dist/{store-options-ByhZq1jV.js → store-options-CbUHDoSe.js} +16 -7
- package/dist/{stores-BT2pSCub.js → stores-BHXdSbw9.js} +7 -3
- package/dist/stores-Cxz_80g-.d.ts +31 -0
- package/dist/{stream-DDpvynSB.js → stream-BMui98KK.js} +2 -1
- package/dist/{stream-D1RXubw2.d.ts → stream-Dwsg6WwE.d.ts} +2 -2
- package/dist/{subject-settings-BwBmCdTR.js → subject-settings-CkEwrw3W.js} +23 -5
- package/dist/supabase/index.d.ts +4 -4
- package/dist/supabase/index.js +3 -3
- package/dist/supabase/middleware.d.ts +11 -5
- package/dist/supabase/middleware.js +10 -7
- package/dist/{supabase-C0qESOa-.js → supabase-C1TWlnYt.js} +36 -52
- package/dist/{supabase-s4o9s1O1.js → supabase-Dbqr141s.js} +2 -2
- package/dist/supabase-hook-BULg7Ut_.js +2 -0
- package/dist/{supabase-hook-ntETYCQu.js → supabase-hook-Cva3ikXz.js} +730 -781
- package/dist/{supautils-u8jXTGrt.js → supautils-B6HYL9eL.js} +2 -2
- package/dist/svelte/Protected.svelte +9 -2
- package/dist/svelte/index.d.ts +6 -6
- package/dist/svelte/index.js +25 -11
- package/dist/svelte/runtime.d.ts +10 -3
- package/dist/svelte/runtime.js +4 -3
- package/dist/svelte/source.d.ts +6 -6
- package/dist/svelte/source.js +4 -4
- package/dist/{validity-uOp8UpYn.js → tenancy-DshjqY0n.js} +3 -39
- package/dist/terminal/index.d.ts +5 -5
- package/dist/terminal/index.js +18 -34
- package/dist/testing/index.d.ts +89 -77
- package/dist/testing/index.js +1276 -1262
- 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/thenable-QSmvt-vZ.js +65 -0
- package/dist/{token-CIWxJOCh.js → token-Bx9qy30p.js} +1 -1
- package/dist/tool-refusal-CQ7OEia9.js +41 -0
- package/dist/trpc/index.d.ts +5 -5
- package/dist/trpc/index.js +7 -8
- package/dist/{types-DbjRN55U.d.ts → types-7rJVLWe5.d.ts} +82 -4
- package/dist/{types-aqOHTHcp.d.ts → types-Br9IXUBG.d.ts} +1 -1
- package/dist/types-ByUo56un.d.ts +88 -0
- package/dist/{types-Cq_H8N_X.d.ts → types-C0dee0Qf.d.ts} +2 -2
- package/dist/{types-DxiCGmmd.d.ts → types-CIlTojhq.d.ts} +2 -2
- package/dist/{types-QCuYJh4q.d.ts → types-CUcFZfpU.d.ts} +1 -1
- package/dist/{types-C97IskBw.d.ts → types-CqrjB9o6.d.ts} +1 -1
- package/dist/{types-BnIEz1sU.d.ts → types-DHrmBJLH.d.ts} +24 -6
- package/dist/{types-Dnemwd77.d.ts → types-DpWfQdSh.d.ts} +5 -1
- package/dist/{types-Bvc4oWT6.d.ts → types-DvupZE0w.d.ts} +1 -1
- package/dist/unplugin/index.d.ts +1 -1
- package/dist/unplugin/index.js +1 -1
- package/dist/{usage-B0YuTQRO.js → usage-4G6t643F.js} +2 -2
- package/dist/{usage-ItS7nLcl.js → usage-CG9nOYZw.js} +7 -7
- package/dist/usage-iFLJ0-rr.js +2 -0
- package/dist/{validation-error-Ba264OaJ.d.ts → validation-error-BSSw0l_8.d.ts} +1 -1
- package/dist/{validation-error-CnjZ4t92.js → validation-error-ZfUHbKvf.js} +1 -1
- package/dist/validity-dVrUEPJt.js +62 -0
- package/dist/{verifier-BxBo6I44.js → verifier-DMr_Zmb_.js} +51 -15
- package/dist/{rls-verify-CMv9H3wV.js → verify-BztUB3GX.js} +668 -239
- package/dist/{version-BvacVTZR.js → version-BEogC-rB.js} +1 -1
- package/dist/{views-Soe7bGSC.js → views-CJsrBS1f.js} +23 -1
- package/dist/{vocabulary-DA8a8zif.d.ts → vocabulary-hhEFLFoL.d.ts} +15 -6
- package/dist/vue/index.d.ts +24 -19
- package/dist/vue/index.js +24 -8
- package/dist/watch-C8TpsAl4.js +2 -0
- package/dist/{watch-DVBJ9cBq.js → watch-zeucB7eF.js} +6 -6
- package/dist/webmcp/index.d.ts +2 -2
- package/dist/webmcp/index.js +13 -37
- package/dist/wrap-Cr93qqdP.d.ts +14 -0
- package/dist/wrap-DWsU_5Bd.js +26 -0
- package/package.json +8 -8
- package/schemas/catalog-v1.json +6 -0
- package/skills/permdock-credentials/SKILL.md +1 -1
- package/skills/permdock-credentials/references/tokens-keys-links.md +7 -2
- package/skills/permdock-data/references/queries-and-rls.md +4 -0
- package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +1 -0
- package/skills/permdock-wire/SKILL.md +2 -2
- package/skills/permdock-wire/references/adapters.md +9 -1
- package/skills/permdock-wire/references/policy-options.md +10 -1
- package/dist/catalog-CRW5Mx_B.js +0 -2
- package/dist/collect-DSWOk19R.js +0 -2
- package/dist/create-CMwIl-w2.js +0 -253
- package/dist/delegation-D8pUEuce.js +0 -103
- package/dist/doctor-DvH0IQff.js +0 -1194
- package/dist/doctor-collect-CjdO0wQX.js +0 -665
- package/dist/evaluation-items-CfCCejQd.js +0 -40
- package/dist/fields-BMl1RxoX.js +0 -26
- package/dist/grantee-Cv5Sogfv.js +0 -602
- package/dist/hosted-DJQw46hn.js +0 -266
- package/dist/instance-options-Dhhcnm3y.js +0 -22
- package/dist/load-DwJUafYN.js +0 -2
- package/dist/map-AcxK9o_D.js +0 -147
- package/dist/permissions-DVoF6dMt.js +0 -662
- package/dist/powersync-CrBX8hY6.js +0 -2
- package/dist/protected-xAr24FEC.d.ts +0 -40
- package/dist/relations-cjOL01hZ.js +0 -505
- package/dist/rls-graph-CHwx0V8q.js +0 -435
- package/dist/rls-shared-Cewd_-zI.js +0 -495
- package/dist/store-jOBYpiXC.d.ts +0 -36
- package/dist/stores-C0IMQrGI.d.ts +0 -52
- package/dist/supabase-config-Bj3iDH2I.js +0 -472
- package/dist/supabase-hook-gd3s8bxB.js +0 -2
- package/dist/thenable-okc2xDsj.js +0 -10
- package/dist/types-CKNSyIf_.d.ts +0 -52
- package/dist/usage-DorAJiU_.js +0 -2
- package/dist/watch-BwxLTYMZ.js +0 -2
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
import { n as isReadonlyArray, t as compact } from "../compact-
|
|
1
|
+
import { n as isReadonlyArray, r as isRecord, t as compact } from "../compact-CAf557ZB.js";
|
|
2
2
|
import { n as freezeDeep } from "../freeze-CrU8nQeX.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { r as validateRecord } from "../thenable-QSmvt-vZ.js";
|
|
4
|
+
import { n as role, r as allow } from "../role-builder-B4GbKM-i.js";
|
|
5
|
+
import { c as listPermissions } from "../permission-registry-BsblpB-z.js";
|
|
6
6
|
import { t as anonymousSubject } from "../subject-C6dLxqHU.js";
|
|
7
|
-
import { i as membershipEvent } from "../sink-
|
|
7
|
+
import { i as membershipEvent } from "../sink-BTtmfPnE.js";
|
|
8
8
|
//#region src/better-auth/parse.ts
|
|
9
|
-
function isRecord(value) {
|
|
10
|
-
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
11
|
-
}
|
|
12
9
|
function asRoles(value) {
|
|
13
10
|
if (typeof value === "string") return value === "" ? [] : value.split(",").map((item) => item.trim()).filter((item) => item !== "");
|
|
14
11
|
if (!Array.isArray(value)) return [];
|
|
@@ -205,16 +202,6 @@ const PROFILE_FIELDS = /* @__PURE__ */ new Set([
|
|
|
205
202
|
"image",
|
|
206
203
|
"displayName"
|
|
207
204
|
]);
|
|
208
|
-
function validateClaims(extra, schema) {
|
|
209
|
-
const result = schema["~standard"].validate(extra);
|
|
210
|
-
if (result instanceof Promise) {
|
|
211
|
-
ignoreRejection(result);
|
|
212
|
-
return;
|
|
213
|
-
}
|
|
214
|
-
if ("issues" in result && result.issues !== void 0) return;
|
|
215
|
-
const value = result.value;
|
|
216
|
-
return isRecord(value) ? value : void 0;
|
|
217
|
-
}
|
|
218
205
|
function extraFields(user) {
|
|
219
206
|
const reserved = /* @__PURE__ */ new Set([
|
|
220
207
|
"id",
|
|
@@ -319,7 +306,7 @@ async function subjectFromBetterAuth(auth, session, options = {}) {
|
|
|
319
306
|
const roles = asRoles(user["role"] ?? user["roles"]);
|
|
320
307
|
const declared = options.declared;
|
|
321
308
|
const globalRoles = declared === void 0 ? roles : roles.filter((role) => declared.includes(role));
|
|
322
|
-
const extra = options.schema === void 0 ? {} :
|
|
309
|
+
const extra = options.schema === void 0 ? {} : validateRecord(options.schema, extraFields(user)) ?? {};
|
|
323
310
|
const memberships = await loadMemberships(auth, session, user, id, tenant, options);
|
|
324
311
|
const principal = compact({
|
|
325
312
|
id,
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { g as SupabaseSubjectOptions, m as SupabaseSessionLike, u as SupabasePrincipal } from "../types-
|
|
1
|
+
import { E as Policy, H as CredentialVerifier, Mt as PermDockOptions, jt as PermDock, kr as Subject, xt as CredentialPrincipal } from "../policy-types-sp9P1iIV.js";
|
|
2
|
+
import { d as Permission, p as PermissionTree } from "../permission-types-Dg39z9Kv.js";
|
|
3
|
+
import { g as SupabaseSubjectOptions, m as SupabaseSessionLike, u as SupabasePrincipal } from "../types-CqrjB9o6.js";
|
|
4
4
|
import { AuthorizationProvider } from "better-supabase/config";
|
|
5
|
+
import { AuthSession, Authorizer } from "better-supabase/server";
|
|
6
|
+
import { EntitlementClaimOptions } from "better-supabase/blocks/entitlements";
|
|
7
|
+
import { ApiKey, ApiKeyClaimsOptions, ApiKeys } from "better-supabase/blocks/api-keys";
|
|
5
8
|
import { AccessTopicPolicy } from "better-supabase/realtime";
|
|
6
9
|
import { AccessBucketPolicy } from "better-supabase/storage";
|
|
7
|
-
import { ApiKey, ApiKeyClaimsOptions, ApiKeys } from "better-supabase/blocks/api-keys";
|
|
8
10
|
import { CredentialProvider } from "better-supabase/credentials";
|
|
9
11
|
import { ToolDecision, ToolRef } from "better-supabase/mcp";
|
|
10
|
-
import { EntitlementClaimOptions } from "better-supabase/blocks/entitlements";
|
|
11
|
-
import { AuthSession } from "better-supabase/server";
|
|
12
12
|
//#region src/better-supabase/provider.d.ts
|
|
13
13
|
type AuthorizationProviderOptions = {
|
|
14
14
|
/** `permdock.manifest.json`, parsed or as JSON text, from `permdock supabase inspect --out`. */
|
|
@@ -41,6 +41,111 @@ type AuthorizationProviderOptions = {
|
|
|
41
41
|
*/
|
|
42
42
|
export declare function authorizationProvider(options: AuthorizationProviderOptions): AuthorizationProvider;
|
|
43
43
|
//#endregion
|
|
44
|
+
//#region src/better-supabase/api-keys.d.ts
|
|
45
|
+
/** The roles a tenant key holds in its tenant: a list, or one per key. */
|
|
46
|
+
type ServiceRoles<K> = readonly string[] | ((key: K) => readonly string[]);
|
|
47
|
+
type ApiKeyVerifierOptions = {
|
|
48
|
+
/** `createApiKeys()` over a service transport. */
|
|
49
|
+
readonly keys: Pick<ApiKeys, "verify">;
|
|
50
|
+
/**
|
|
51
|
+
* `permdock.manifest.json`, whose `rls.apiKeys.serviceRoles` is the
|
|
52
|
+
* default for `serviceRoles`.
|
|
53
|
+
*/
|
|
54
|
+
readonly manifest?: unknown;
|
|
55
|
+
/**
|
|
56
|
+
* The roles a tenant key holds in its tenant, as a `service` principal.
|
|
57
|
+
* Without it or a manifest with `rls.apiKeys`, a tenant key verifies to
|
|
58
|
+
* `null`.
|
|
59
|
+
*/
|
|
60
|
+
readonly serviceRoles?: ServiceRoles<ApiKey>;
|
|
61
|
+
/** The permissions `*` stands for. Without it, a key with `*` verifies to `null`. */
|
|
62
|
+
readonly allPermissions?: readonly Permission[];
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* better-supabase's API keys as a `CredentialVerifier`, for
|
|
66
|
+
* `subjectFromApiKey` from `permdock/server`, which reads PermDock's
|
|
67
|
+
* `pdk_<id>_<secret>` format: create the keys with `prefix: "pdk"`. The
|
|
68
|
+
* credential id is the key's `publicId`, the id in the token. A personal key
|
|
69
|
+
* is a `user` credential acting as its user (inside its tenant when the key
|
|
70
|
+
* is limited to one), a tenant key a `service` credential holding
|
|
71
|
+
* `serviceRoles` in its tenant, and the key's scopes are the credential's
|
|
72
|
+
* permissions. better-supabase records the use when it verifies, so there is
|
|
73
|
+
* no `touch`. A rotated key in its grace period verifies, and its credential
|
|
74
|
+
* expires when the grace period ends. An invalid, revoked, expired or
|
|
75
|
+
* rate-limited key, and a failed lookup, are `null`. `permdock/server` exports a different
|
|
76
|
+
* `apiKeyVerifier`, over the application's own key records.
|
|
77
|
+
*/
|
|
78
|
+
export declare function apiKeyVerifier(options: ApiKeyVerifierOptions): CredentialVerifier;
|
|
79
|
+
/**
|
|
80
|
+
* The `claim` and `tenantClaim` options of better-supabase's
|
|
81
|
+
* `apiKeyClaims()`, from the manifest's `rls.apiKeys`, so a key's token
|
|
82
|
+
* carries the scopes ceiling, tenant and roles the `rls generate` helpers
|
|
83
|
+
* read. Throws when the manifest has no `rls.apiKeys`.
|
|
84
|
+
*/
|
|
85
|
+
export declare function apiKeyClaimOptions(manifest: unknown): Pick<ApiKeyClaimsOptions, "claim" | "tenantClaim">;
|
|
86
|
+
//#endregion
|
|
87
|
+
//#region src/better-supabase/subject.d.ts
|
|
88
|
+
/** An `AuthSession` of kind `apiKey`, from better-supabase's api-keys middleware. */
|
|
89
|
+
type ApiKeySession = Extract<AuthSession, {
|
|
90
|
+
readonly kind: "apiKey";
|
|
91
|
+
}>;
|
|
92
|
+
type ApiKeySessionOptions = {
|
|
93
|
+
/** The definitions: the key's scopes become the subject's delegation, and `*` stands for all of them. */
|
|
94
|
+
readonly permissions: PermissionTree;
|
|
95
|
+
/** `permdock.manifest.json`, whose `rls.apiKeys.serviceRoles` is the default for `serviceRoles`. */
|
|
96
|
+
readonly manifest?: unknown;
|
|
97
|
+
/** The roles a tenant key holds in its tenant. Without it or a manifest with `rls.apiKeys`, a tenant key is anonymous. */
|
|
98
|
+
readonly serviceRoles?: ServiceRoles<ApiKeySession>;
|
|
99
|
+
};
|
|
100
|
+
/** The claim, and the short code better-supabase writes for each feature key. */
|
|
101
|
+
type FeatureClaim = EntitlementClaimOptions;
|
|
102
|
+
type BetterSupabaseSubjectOptions = Omit<SupabaseSubjectOptions, "plans"> & {
|
|
103
|
+
/** How `kind: 'apiKey'` sessions map. Without it they are anonymous. */
|
|
104
|
+
readonly apiKeys?: ApiKeySessionOptions;
|
|
105
|
+
/**
|
|
106
|
+
* The claim `principal.plans` reads: its name (default `features`), or
|
|
107
|
+
* `{ claim, keys }` with the same `entitlements.claim.keys` better-supabase
|
|
108
|
+
* writes short codes with, so `plans` holds the feature keys. A code
|
|
109
|
+
* without a key is dropped.
|
|
110
|
+
*/
|
|
111
|
+
readonly plans?: string | FeatureClaim;
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* `subjectFromSupabaseSession` for better-supabase's `AuthSession`, reading
|
|
115
|
+
* `memberships` for the memberships and the entitlements module's `features`
|
|
116
|
+
* claim for `principal.plans` (`plans` names another claim). With `apiKeys`,
|
|
117
|
+
* a verified `apiKey` session is the key's credential subject: a personal key
|
|
118
|
+
* acts as its user within the key's scopes, a tenant key as a `service`
|
|
119
|
+
* principal holding `serviceRoles`. Without `apiKeys`, and for `anon`,
|
|
120
|
+
* `service` and `invalid` sessions, the subject is anonymous.
|
|
121
|
+
*/
|
|
122
|
+
export declare function subjectFromBetterSupabase(session: SupabaseSessionLike | ApiKeySession | null | undefined, options?: BetterSupabaseSubjectOptions): Subject<SupabasePrincipal> | Subject<CredentialPrincipal> | Subject;
|
|
123
|
+
//#endregion
|
|
124
|
+
//#region src/better-supabase/authorizer.d.ts
|
|
125
|
+
/** The table operations better-supabase's `permissions: true` resolves through `forOperation`. */
|
|
126
|
+
type AuthorizerOperation = "list" | "get" | "create" | "update" | "delete";
|
|
127
|
+
type AuthorizerOptions = {
|
|
128
|
+
readonly policy: Policy;
|
|
129
|
+
/** How the verified claims map to a subject; the defaults of `subjectFromBetterSupabase`. */
|
|
130
|
+
readonly subject?: Omit<BetterSupabaseSubjectOptions, "apiKeys">;
|
|
131
|
+
/**
|
|
132
|
+
* The permission of each table operation, so a resource with
|
|
133
|
+
* `permissions: true` is checked. Without it such a resource is refused.
|
|
134
|
+
*/
|
|
135
|
+
readonly operations?: Readonly<Record<string, Partial<Record<AuthorizerOperation, Permission>>>>;
|
|
136
|
+
/** Sources and sinks for each instance. The subject, actor and tenant always come from the verified request. */
|
|
137
|
+
readonly options?: Omit<PermDockOptions, "tenant" | "actor" | "delegation" | "session" | "expiresAt">;
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* better-supabase's `authorizer` for PermDock: every resource, action, route
|
|
141
|
+
* guard and MCP tool that declares a `permission` is decided with `decide`.
|
|
142
|
+
* The subject is mapped from the verified claims with
|
|
143
|
+
* `subjectFromBetterSupabase`; the request's `context.tenant` selects the
|
|
144
|
+
* active tenant only among the memberships the claims hold. A caller without
|
|
145
|
+
* claims is anonymous, and a throw denies.
|
|
146
|
+
*/
|
|
147
|
+
export declare function authorizer(options: AuthorizerOptions): Authorizer<Permission>;
|
|
148
|
+
//#endregion
|
|
44
149
|
//#region src/better-supabase/policies.d.ts
|
|
45
150
|
type AccessScope = {
|
|
46
151
|
/** A scope in the policy's scopes (or the manifest's `rls.scopes`), or `platform` for permissions granted globally. */
|
|
@@ -93,49 +198,6 @@ export declare function bucketPolicy(access: BucketAccess, options: AccessPolicy
|
|
|
93
198
|
/** As {@link bucketPolicy}, for a better-supabase Realtime topic. */
|
|
94
199
|
export declare function topicPolicy(access: TopicAccess, options: AccessPolicyOptions): AccessTopicPolicy;
|
|
95
200
|
//#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
201
|
//#region src/better-supabase/credentials.d.ts
|
|
140
202
|
type CredentialGuardOptions = {
|
|
141
203
|
/** The request's PermDock instance. */
|
|
@@ -183,41 +245,4 @@ type ToolPolicy<C> = {
|
|
|
183
245
|
*/
|
|
184
246
|
export declare function toolPolicy<C>(options: ToolPolicyOptions<C>): ToolPolicy<C>;
|
|
185
247
|
//#endregion
|
|
186
|
-
|
|
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 };
|
|
248
|
+
export type { AccessPolicyOptions, ApiKeySession, ApiKeySessionOptions, ApiKeyVerifierOptions, AuthorizationProviderOptions, AuthorizerOperation, AuthorizerOptions, BetterSupabaseSubjectOptions, BucketAccess, CredentialGuardOptions, McpToolDecision, McpToolRef, ServiceRoles, SupabasePrincipal, ToolPolicy, ToolPolicyOptions, TopicAccess };
|