permdock 0.6.0 → 0.7.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 +1 -0
- package/dist/{2020-C9VN-x8c.js → 2020-CJbO8Bvz.js} +1 -3
- package/dist/a2a/index.d.ts +5 -5
- package/dist/a2a/index.js +4 -4
- package/dist/{adoption-scan-DCYe60Pi.js → adoption-scan-D-feE7BE.js} +1 -1
- package/dist/agent/index.d.ts +3 -3
- package/dist/agent/index.js +1 -1
- package/dist/ai-sdk/index.d.ts +21 -6
- package/dist/ai-sdk/index.js +19 -9
- package/dist/{approval-prompt-DvSSPQJX.d.ts → approval-prompt-K0faOLFp.d.ts} +2 -2
- package/dist/approvals/index.d.ts +4 -4
- package/dist/approvals/index.js +4 -4
- package/dist/{approvals-p1PGoVjb.js → approvals-CMRfsbBh.js} +74 -48
- package/dist/{arazzo-41WuzHou.js → arazzo-ClrF3PVb.js} +2 -2
- package/dist/{arazzo-CaUVBn7D.js → arazzo-rdeJ8n1J.js} +4 -4
- package/dist/{args-IIolxxKA.js → args-CC3OwyHW.js} +112 -2
- package/dist/astro/index.d.ts +6 -6
- package/dist/astro/index.js +2 -2
- package/dist/{audience-DabClFLQ.js → audience-BrMs8c4o.js} +1 -1
- package/dist/{auth-DRLEizbL.js → auth-CscUX8Sy.js} +3 -4
- package/dist/authzen/index.d.ts +162 -22
- package/dist/authzen/index.js +315 -146
- package/dist/{automation-BNM3TtDo.d.ts → automation-DOtAFWdy.d.ts} +3 -3
- package/dist/{automation-DVjOckjV.js → automation-ySsxp_Yp.js} +1 -1
- package/dist/base-url-BQbddZO5.js +9 -0
- package/dist/better-auth/index.d.ts +2 -2
- package/dist/better-auth/index.js +2 -2
- package/dist/better-supabase/index.d.ts +50 -8
- package/dist/better-supabase/index.js +94 -32
- package/dist/{bind-CAvgUuKs.js → bind-D1nO6fiC.js} +5 -5
- package/dist/{bind-DOyrv6zi.d.ts → bind-JDuvxjuW.d.ts} +7 -7
- package/dist/{build-instance-Bu_eDqYw.js → build-instance-DxE7czo9.js} +1 -1
- package/dist/{canonical-json-BC8_nMTw.js → canonical-json-DwilZ1iB.js} +6 -3
- package/dist/{capability-Drg-1YhL.d.ts → capability-D4UC9TTW.d.ts} +2 -2
- package/dist/{capability-N1K9IpqS.js → capability-L7NnfhiE.js} +1 -1
- package/dist/{casbin-Cr7RLtA3.js → casbin-BHijLuHY.js} +2 -2
- package/dist/{casbin-Dyu2gnUD.js → casbin-BW9pS47J.js} +1 -1
- package/dist/{casl-64gpT-8x.js → casl-CmJlgziS.js} +2 -2
- package/dist/{casl-DjEDhTCP.js → casl-UbI8v-Wq.js} +1 -1
- package/dist/catalog/index.d.ts +70 -10
- package/dist/catalog/index.js +112 -6
- package/dist/catalog-BCCjSAdH.js +1 -0
- package/dist/{catalog-DZVbrF-z.js → catalog-BaMQfQ6Y.js} +3 -3
- package/dist/{catalog-HD2gf5mY.js → catalog-D69WhFii.js} +43 -13
- package/dist/{catalog-doc-Cdn7-0pQ.js → catalog-doc-CV9s6B1S.js} +28 -5
- package/dist/{catalog-fingerprint-CCP0-yQS.js → catalog-fingerprint-C144oW4M.js} +1 -1
- package/dist/{create-CQWIpUG-.js → challenge-nGWma08S.js} +122 -25
- package/dist/chat/index.d.ts +1 -1
- package/dist/chat/index.js +2 -2
- package/dist/chat-sdk/index.d.ts +3 -3
- package/dist/checks-BC_0mPIq.js +37 -0
- package/dist/claude-agent/index.d.ts +3 -3
- package/dist/claude-agent/index.js +2 -2
- package/dist/clerk/index.d.ts +3 -3
- package/dist/clerk/index.js +1 -1
- package/dist/cli/bin.js +2 -2
- package/dist/cli/index.d.ts +3 -3
- package/dist/cli/index.js +3 -3
- package/dist/cloud/index.d.ts +127 -11
- package/dist/cloud/index.js +251 -3
- package/dist/{cloud-ytQ3uviA.js → cloud-CO8pYtwr.js} +5 -5
- package/dist/{codemod-ua2hHy7w.js → codemod-BP6n8N9L.js} +3 -3
- package/dist/{codemod-5mpSpnUY.js → codemod-i4N2BhDc.js} +3 -3
- package/dist/{collect-mLTY4nwb.js → collect-BaWeMjwV.js} +17 -8
- package/dist/{collect-Ci6akVwH.js → collect-DNm3oKOk.js} +6 -5
- package/dist/collect-k_Dulxr5.js +1 -0
- package/dist/compile/index.d.ts +1 -1
- package/dist/compile/index.js +1 -1
- package/dist/{compile-CMqMx_IN.js → compile-BAEO5bOk.js} +2 -2
- package/dist/{compile-1bsAezL0.d.ts → compile-COM2VKuN.d.ts} +3 -3
- package/dist/{completion-BTFrHZhX.js → completion-BNdVf7X2.js} +3 -3
- package/dist/{config-bs_kZeYq.js → config-CoQHDrDi.js} +7 -3
- package/dist/{config-Bj2Ixq3d.js → config-DGZzMV1B.js} +2 -2
- package/dist/{config-report-DSpsLpCE.js → config-report-Cm7UITNA.js} +3 -3
- package/dist/connector-schema-_VCSsdtD.js +433 -0
- package/dist/{context-B_u3_bDJ.js → context--uM9V3Ui.js} +2 -2
- package/dist/convex/index.d.ts +5 -5
- package/dist/convex/index.js +2 -2
- package/dist/core-B5-w6Kw9.js +335 -0
- package/dist/core-CQkE8Esr.d.ts +179 -0
- package/dist/{create-B30OMUOJ.d.ts → create-B2-CQqCI.d.ts} +5 -5
- package/dist/{create-CGm28gyI.js → create-Cb86Z8Im.js} +9 -8
- package/dist/{create-DCF2SvoT.js → create-DJrlhEp9.js} +5 -5
- package/dist/{create-D_NmPOdH.d.ts → create-QHuuPw3q.d.ts} +7 -7
- package/dist/{create-CBMmFie-.d.ts → create-UTnUVETj.d.ts} +30 -10
- package/dist/{credential-BcoiejpY.js → credential-CIM7wHwA.js} +4 -4
- package/dist/{credentials-DPyHmYz5.js → credentials-BpuTwd7a.js} +1 -1
- package/dist/{deciding-columns-Sq12mEA6.js → deciding-columns-DRo2QM6E.js} +13 -2
- package/dist/{delegation-j6-rc37o.js → delegation-C5rOdTp5.js} +5 -5
- package/dist/delivery/index.d.ts +5 -5
- package/dist/delivery/index.js +4 -3
- package/dist/{delivery-DCAgNyCn.js → delivery-rwOKLWRm.js} +51 -2
- package/dist/{denied-text-CiFQNuMV.d.ts → denied-text-D4qkEtFz.d.ts} +2 -2
- package/dist/{describe-BybMRY7A.js → describe-DZlnEtLy.js} +1 -0
- package/dist/{describe-B5qgDvEW.d.ts → describe-O0SwYIK8.d.ts} +2 -2
- package/dist/{diff-CmuSD3vc.js → diff-Btr1c1Ow.js} +2 -2
- package/dist/{diff-3jbx6Rm4.js → diff-DzT-xD13.js} +10 -10
- package/dist/{doctor-BdZw53-k.js → doctor-BU1szn63.js} +241 -49
- package/dist/{doctor-3ZqNHX_G.js → doctor-BoK_y0KO.js} +4 -4
- package/dist/drizzle/index.d.ts +3 -3
- package/dist/drizzle/index.js +1 -1
- package/dist/elysia/index.d.ts +5 -5
- package/dist/elysia/index.js +3 -3
- package/dist/{errors-DH5QEGXh.d.ts → errors-B_Qg9D3e.d.ts} +2 -2
- package/dist/{errors-CWTY6uih.js → errors-DpP_U6Bf.js} +1 -0
- package/dist/{evaluate-CNClBvcj.js → evaluate-B_oqFbWC.js} +55 -12
- package/dist/{evaluations-C_1vdSZc.d.ts → evaluations-BCddEOfO.d.ts} +4 -4
- package/dist/{evaluations-beAooV0n.js → evaluations-DReoiVBw.js} +4 -4
- package/dist/eve/index.d.ts +5 -5
- package/dist/eve/index.js +3 -3
- package/dist/express/index.d.ts +5 -5
- package/dist/express/index.js +3 -3
- package/dist/fastify/index.d.ts +5 -5
- package/dist/fastify/index.js +3 -3
- package/dist/{fetch-adapter-Dw0MTS3D.d.ts → fetch-adapter-CuhyYwC1.d.ts} +4 -4
- package/dist/{fetch-adapter-DD_gfmrC.js → fetch-adapter-De-u6vhJ.js} +3 -3
- package/dist/{fields-OYG_JR78.js → fields-ClcQLrVc.js} +48 -13
- package/dist/{files-C5ZI27eV.js → files-acUbNwWt.js} +15 -2
- package/dist/{fixtures-B7XrLeY7.js → fixtures-BTMW6zgU.js} +2 -2
- package/dist/{flags-C3DktBDY.js → flags-aaeRAdiD.js} +2 -2
- package/dist/{from-snapshot-CTCMsFZk.js → from-snapshot-Bz469dIh.js} +17 -10
- package/dist/generate-3FNO5P5Q.js +159 -0
- package/dist/{grantee-hxrUsbpM.js → grantee-BrRANrpT.js} +1 -1
- package/dist/{grantee-conditions-CcXf8hMM.js → grantee-conditions-C6P1Tvol.js} +1 -1
- package/dist/{grantee-match-DbENBHLB.js → grantee-match-0RtHWQDx.js} +3 -3
- package/dist/h3/index.d.ts +4 -4
- package/dist/h3/index.js +3 -3
- package/dist/{helpers-CBYVMjwh.js → helpers-DY3vXuGs.js} +3 -3
- package/dist/hono/index.d.ts +5 -5
- package/dist/hono/index.js +3 -3
- package/dist/{hosted-BPk51-kX.d.ts → hosted-BmjzxQhp.d.ts} +14 -2
- package/dist/{hosted-B46-5LYE.js → hosted-XBgU6RGT.js} +34 -12
- package/dist/{http-DXJ37RDA.js → http-Ca3Sr5x1.js} +1 -1
- package/dist/{import-wyqXUyjm.js → import-Bz0GefWg.js} +5 -5
- package/dist/{import-CNV7I2Dw.js → import-DB2EG_iy.js} +3 -3
- package/dist/{index-C-6Letxg.d.ts → index-BE8y3moU.d.ts} +50 -8
- package/dist/{index-B8YjkEZ4.d.ts → index-BSfRl0hZ.d.ts} +6 -6
- package/dist/{index-DuWxc5dt.d.ts → index-BTkwrK7v.d.ts} +143 -14
- package/dist/index-CMiPH2Tv.d.ts +206 -0
- package/dist/{index-Ch8LpNDp.d.ts → index-DH9DUDEM.d.ts} +18 -3
- package/dist/{index-CueFnxQc.d.ts → index-DLwcuCN_.d.ts} +86 -7
- package/dist/index.d.ts +18 -17
- package/dist/index.js +27 -25
- package/dist/{init-GG6Jh8HD.js → init-5TXNji88.js} +5 -5
- package/dist/{init-DeMYsnYJ.js → init-B-4t1NzC.js} +4 -4
- package/dist/{instance-options-BsVpyGIk.d.ts → instance-options-CU0YQCLH.d.ts} +1 -1
- package/dist/{instance-snapshot-BOEhcqIF.js → instance-snapshot-CjcwnEiV.js} +16 -11
- package/dist/jwt/index.d.ts +83 -5
- package/dist/jwt/index.js +143 -5
- package/dist/{kernel-D0NVb1cK.js → kernel-DVExUwkp.js} +138 -12
- package/dist/kysely/index.d.ts +3 -3
- package/dist/kysely/index.js +1 -1
- package/dist/load-DrMHXzgN.js +1 -0
- package/dist/{load-DFS_ry0W.js → load-DxroEzH1.js} +2 -2
- package/dist/{login-Dfe5RlYk.js → login-ClSJh5t5.js} +4 -4
- package/dist/{login-imhuwvn3.js → login-WC9HPJpU.js} +6 -10
- package/dist/{manifest-C8IzW3Do.js → manifest-B79YuF2T.js} +6 -2
- package/dist/{manifest-mx5ghSFM.d.ts → manifest-BVhExYhw.d.ts} +23 -2
- package/dist/{manifest-dvL2XEe1.js → manifest-Dv6q4i5s.js} +54 -35
- package/dist/{manifest-schema-C0kK_8V0.js → manifest-schema-Cv492Qev.js} +37 -7
- package/dist/{map-claims-D3oRmTk0.js → map-claims-etGIS_Dv.js} +14 -11
- package/dist/{map-error-Dr70oA_3.js → map-error-BQGyDm_M.js} +1 -1
- package/dist/mcp/index.d.ts +64 -10
- package/dist/mcp/index.js +151 -22
- package/dist/{migrate-CIq4-E9F.js → migrate-Dodel0IJ.js} +77 -24
- package/dist/nest/index.d.ts +5 -5
- package/dist/nest/index.js +3 -3
- package/dist/next/index.d.ts +9 -9
- package/dist/next/index.js +5 -5
- package/dist/next/plugin.d.ts +1 -1
- package/dist/next/plugin.js +2 -2
- package/dist/node/index.d.ts +5 -5
- package/dist/node/index.js +2 -2
- package/dist/openai/index.d.ts +5 -5
- package/dist/openai/index.js +3 -3
- package/dist/openapi/index.d.ts +14 -4
- package/dist/openapi/index.js +1 -1
- package/dist/{openapi-C4dDTVEd.js → openapi-DMocl1bh.js} +4 -4
- package/dist/{openapi-B7HZ0f-r.js → openapi-Ddb4628T.js} +2 -7
- package/dist/{openapi-DD1SV-5-.js → openapi-ztVaux6j.js} +8 -8
- package/dist/{operation-findings-DgATDpvh.js → operation-findings-kRcEp8lE.js} +1 -1
- package/dist/{operations-X0VM7F3m.d.ts → operations-BNLes61x.d.ts} +1 -1
- package/dist/orpc/index.d.ts +6 -6
- package/dist/orpc/index.js +4 -4
- package/dist/otel/index.d.ts +3 -3
- package/dist/otel/index.js +1 -1
- package/dist/{output-1im__-08.js → output-DgSDLrta.js} +7 -3
- package/dist/{output-files-DhRBBE4n.js → output-files-CCMdcFWb.js} +2 -2
- package/dist/output-files-DPAY7-GX.js +1 -0
- package/dist/{ownership-DqaJNJPn.js → ownership-Z2LpxsGa.js} +443 -40
- package/dist/parse-Ddhz2xf4.js +148 -0
- package/dist/{parse-local-manifest-CVSs6J9I.js → parse-local-manifest-T1Q8X3A2.js} +24 -1
- package/dist/{parse-local-manifest-5ODwqu8b.d.ts → parse-local-manifest-e4mdwAKd.d.ts} +1 -1
- package/dist/pdp/index.d.ts +3 -3
- package/dist/pdp/index.js +7 -3
- package/dist/peer-12Q5I_RH.js +976 -0
- package/dist/{peer-CRvC7Hg1.js → peer-DOzzMfZL.js} +1 -1
- package/dist/{permdock-BrAscV28.js → permdock-BfWEeMqk.js} +177 -49
- package/dist/{permdock-SV8ZINYT.d.ts → permdock-Dco6dyCK.d.ts} +34 -5
- package/dist/{permission-registry-Br4jSNVi.js → permission-registry-DpPtSKNZ.js} +1 -1
- package/dist/{vocabulary-CN8H_9UF.d.ts → permission-types-DhNEmoRG.d.ts} +4 -64
- package/dist/{permissions-u_KHg-sN.d.ts → permissions-CoqCOfJ3.d.ts} +2 -1
- package/dist/{permissions-B-wCP5ZC.js → permissions-CyH2MV_B.js} +1 -1
- package/dist/{permissions-BPxlwVhN.js → permissions-DArULThq.js} +4 -4
- package/dist/pkce-5h8NgMQJ.js +21 -0
- package/dist/{policies-DP2nqRoF.js → policies-B2lZIurj.js} +3 -3
- package/dist/{policy-77FSAq_V.d.ts → policy-B7dg_yzu.d.ts} +2 -2
- package/dist/{policy-DbM5YYtV.js → policy-DaJy4nK4.js} +17 -8
- package/dist/{policy-from-catalog-C2gMa2Dj.js → policy-from-catalog-DFWYkNdu.js} +9 -9
- package/dist/{policy-types-n0uRTsW8.d.ts → policy-types-B-F-qAZk.d.ts} +83 -4
- package/dist/postgres-store-BL9M_CA1.js +1001 -0
- package/dist/{postgrest-CEgRbefE.d.ts → postgrest-CYacM_u7.d.ts} +12 -1
- package/dist/{postgrest-DAjUkF9w.js → postgrest-r5faDIzD.js} +37 -4
- package/dist/{powersync-DISt6SUe.js → powersync-13odBwiM.js} +3 -3
- package/dist/powersync-53ryOZip.js +1059 -0
- package/dist/powersync-CExtTLyA.js +1 -0
- package/dist/preset/index.js +1 -1
- package/dist/{preset-DZdU0tne.js → preset-CHTbd-DQ.js} +2 -2
- package/dist/prisma/index.d.ts +2 -2
- package/dist/prisma/index.js +1 -1
- package/dist/{problem-details-B45V5d2b.d.ts → problem-details-Tcfmj3bV.d.ts} +1 -1
- package/dist/prompt-DwtVemER.js +935 -0
- package/dist/{protected-RFGpakN9.d.ts → protected-BwZYL1X_.d.ts} +6 -5
- package/dist/{protected-BlF0F6wL.js → protected-DXE3cQYg.js} +2 -2
- package/dist/{provider-B1al-AZz.js → provider-BQsTYYy0.js} +2 -2
- package/dist/{provider-DILL9oPK.d.ts → provider-Csk-THAn.d.ts} +1 -1
- package/dist/{provider-store-DM6DNcta.js → provider-store-IgqQipCO.js} +2 -2
- package/dist/{pull-jEwbf80J.js → pull-CN5OLxrF.js} +7 -7
- package/dist/pull-Cty6Ovyu.js +1 -0
- package/dist/{push-BD4f15co.js → push-tVdG8dUL.js} +54 -14
- package/dist/{pushed-policy-DCW91KQU.d.ts → pushed-policy-BbcY9r_4.d.ts} +1 -1
- package/dist/{pushed-policy-CqtxkV4G.js → pushed-policy-CmYeSQqq.js} +1 -1
- package/dist/react/index.d.ts +6 -6
- package/dist/react/index.js +3 -3
- package/dist/react/provider-client.d.ts +1 -1
- package/dist/react/provider-client.js +1 -1
- package/dist/react-native/index.d.ts +25 -11
- package/dist/react-native/index.js +209 -21
- package/dist/{refs-K6eWUJ0H.js → refs-CNJBiTFo.js} +15 -1
- package/dist/{replay-Bkm-Ne4l.d.ts → replay-DCDD_ZfL.d.ts} +1 -1
- package/dist/{request-context-C81Pip9n.js → request-context-BykKLmyE.js} +2 -2
- package/dist/resend/index.d.ts +4 -4
- package/dist/{retire-CALjIQ7e.js → retire-Wj6dkyDE.js} +2 -2
- package/dist/{rls-BAqP4q66.js → rls-Ck_PocSp.js} +32 -8
- package/dist/{rls-DTvYd-lI.js → rls-CxBZb4rZ.js} +478 -534
- package/dist/{role-builder-uWQZ4v84.js → role-builder-C1VJzvcr.js} +3 -3
- package/dist/rolldown-runtime-C3I60J0A.js +4 -0
- package/dist/{rpc-VSl5ylaQ.js → rpc-Bk1bE-ch.js} +1 -1
- package/dist/run-Bz7DXGEv.js +1 -0
- package/dist/{run-ticket-sxFI6LAk.js → run-ticket-B5d_63Ma.js} +22 -1
- package/dist/{run-ticket-DocwaTKn.d.ts → run-ticket-BpNi7BCi.d.ts} +8 -3
- package/dist/{run-CUKuz0A8.js → run-uLD2aWuO.js} +7 -7
- package/dist/{runtime-D3VTAiCA.js → runtime-Vif3_-zf.js} +1 -1
- package/dist/{saas-BCXRuXca.js → saas-Az_Kz-4D.js} +7 -7
- package/dist/{scan-qvOe0hS3.js → scan-DSljDE1Y.js} +1 -1
- package/dist/{schema-yLuBWWsh.js → schema-gIcCx7zM.js} +1 -1
- package/dist/scim/index.d.ts +3 -2
- package/dist/scim/index.js +3 -1
- package/dist/scim-C7JYhySg.js +44 -0
- package/dist/{scim-ClHtpyV3.js → scim-YNieBO1U.js} +3 -537
- package/dist/{scopes-CUPSjo9q.js → scopes-BHsc-wp-.js} +1 -1
- package/dist/server/index.d.ts +11 -11
- package/dist/server/index.js +7 -7
- package/dist/{server-C3WXAHZj.js → server-Bnga6I50.js} +3 -3
- package/dist/{server-types-CKQiCnON.d.ts → server-types-C4gZUEZy.d.ts} +9 -9
- package/dist/{shared-DvvFzYXe.js → shared-C8LjUdVU.js} +1 -1
- package/dist/{shared-BAK8t4Uo.js → shared-fMKOv8hP.js} +44 -38
- package/dist/{sink-4-eQIRWf.d.ts → sink-Cp_Eot9W.d.ts} +4 -4
- package/dist/{skills-B6lVdD_W.js → skills-Dcjw9_1C.js} +5 -5
- package/dist/{skills-CTYwkl44.js → skills-g_3BS9NC.js} +3 -3
- package/dist/{snapshot-B7DkYg6g.js → snapshot-CbGmYiJx.js} +4 -4
- package/dist/{snapshot-cache-DZHQ0KF6.js → snapshot-cache-DT2Kx1F8.js} +1 -1
- package/dist/{snapshot-cache-PXI-vGpY.d.ts → snapshot-cache-Pahd3IYJ.d.ts} +1 -1
- package/dist/solid/index.d.ts +6 -5
- package/dist/solid/index.js +4 -4
- package/dist/solid-start/index.d.ts +6 -6
- package/dist/solid-start/index.js +3 -3
- package/dist/{sources-vs5dGOsS.js → sources-B-zYB4GS.js} +111 -25
- package/dist/{sources-Xc4zkszI.d.ts → sources-DEEuGb8S.d.ts} +63 -14
- package/dist/sources-qoIJQrJv.js +11 -0
- package/dist/{sql-B5T1IL83.js → sql-B96movIM.js} +5 -1
- package/dist/sql-CDEPCA0g.d.ts +10 -0
- package/dist/{src-Cu2m75uo.js → src-DLFrtrrC.js} +140 -48
- package/dist/ssf/index.d.ts +4 -4
- package/dist/ssf/index.js +640 -211
- package/dist/{standard-webhooks-rbD7LS6h.d.ts → standard-webhooks-B_qRg0ws.d.ts} +2 -2
- package/dist/{store-BDutJkDL.js → store-DSP9oGvh.js} +15 -7
- package/dist/{store-options-u0ycEe8s.js → store-options-B_poyYvg.js} +6 -6
- package/dist/{stores-BUGNbJTt.d.ts → stores-BAZwSYZA.d.ts} +6 -5
- package/dist/{stores-CGhM8BN_.js → stores-BqEuHC05.js} +2 -2
- package/dist/{stream-CeCMJmBB.d.ts → stream-2Vwhl7Er.d.ts} +2 -2
- package/dist/{style-Uao76wO7.js → style-Cqo7-73x.js} +1 -0
- package/dist/{style-DiKWnAvn.js → style-Ds1gNm77.js} +1 -1
- package/dist/supabase/index.d.ts +8 -7
- package/dist/supabase/index.js +5 -5
- package/dist/supabase/middleware.d.ts +6 -6
- package/dist/supabase/middleware.js +6 -6
- package/dist/{supabase-x5JtR2tc.js → supabase--0aJdLEd.js} +8 -6
- package/dist/{supabase-By_frk3U.js → supabase-Bqp7iIY2.js} +3 -3
- package/dist/supabase-hook-DJxC4PoP.js +1 -0
- package/dist/{supabase-hook-BMoEhZir.js → supabase-hook-Dg0SrQWR.js} +1060 -119
- package/dist/supautils-MESd81bF.js +689 -0
- package/dist/{support-session-C6xJQYut.js → support-session-Cna49-3f.js} +2 -2
- package/dist/svelte/index.d.ts +5 -5
- package/dist/svelte/index.js +5 -5
- package/dist/svelte/runtime.d.ts +3 -3
- package/dist/svelte/runtime.js +3 -3
- package/dist/svelte/source.d.ts +5 -5
- package/dist/svelte/source.js +2 -2
- package/dist/sveltekit/index.d.ts +6 -6
- package/dist/sveltekit/index.js +2 -2
- package/dist/tanstack-start/index.d.ts +6 -6
- package/dist/tanstack-start/index.js +2 -2
- package/dist/{tenancy-DN2QAx9z.js → tenancy-CmeBQ6Nv.js} +12 -3
- package/dist/terminal/index.d.ts +6 -6
- package/dist/terminal/index.js +3 -3
- package/dist/testing/core.d.ts +2 -0
- package/dist/testing/core.js +1 -0
- package/dist/testing/fixtures/index.d.ts +12 -0
- package/dist/testing/fixtures/index.js +770 -0
- package/dist/testing/index.d.ts +41 -174
- package/dist/testing/index.js +241 -731
- package/dist/testing/saas/index.d.ts +5 -5
- 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/text-diff-DhITNCnD.js +444 -0
- package/dist/{token-BLZcjQgt.js → token-2qYDvXz2.js} +1 -1
- package/dist/{tool-refusal-CMLN5xhn.js → tool-refusal-reAhIzdl.js} +1 -1
- package/dist/trpc/index.d.ts +6 -6
- package/dist/trpc/index.js +3 -3
- package/dist/{types-Dfv0aTER.d.ts → types-BWZybqs9.d.ts} +110 -8
- package/dist/{types-Druu9wLM.d.ts → types-BXMYB7BY.d.ts} +2 -2
- package/dist/{types-BzzaHxt3.d.ts → types-BfVmNJO5.d.ts} +14 -3
- package/dist/{types-lUlG3TVd.d.ts → types-CIeZcG8v.d.ts} +2 -2
- package/dist/{types-B3_ooZgZ.d.ts → types-CKV71kKh.d.ts} +4 -4
- package/dist/{types-CX7AvRqP.d.ts → types-CQVEQawv.d.ts} +4 -4
- package/dist/{types-C863OQiR.d.ts → types-CeIscIKp.d.ts} +4 -4
- package/dist/{types-C_IiEs64.d.ts → types-CfiKC5aN.d.ts} +1 -1
- package/dist/{types-_WhUP7ud.d.ts → types-D3A19w4A.d.ts} +8 -4
- package/dist/{types-8RnwUAvE.d.ts → types-DBHftjgS.d.ts} +15 -8
- package/dist/{types-BdtSDbBO.d.ts → types-DC44-hqb.d.ts} +2 -2
- package/dist/{types-CVZSNocA.d.ts → types-DXmwu78Z.d.ts} +4 -4
- package/dist/{types-C791HFu9.d.ts → types-cTos-H7p.d.ts} +2 -2
- package/dist/{types-BtHtcKMr.d.ts → types-g7Oy6Zg4.d.ts} +3 -3
- package/dist/unplugin/index.d.ts +1 -1
- package/dist/unplugin/index.js +2 -2
- package/dist/{usage-SveTRTyr.js → usage-Bybmck7f.js} +7 -7
- package/dist/{usage-CRVl9V3t.js → usage-CDaLXCfL.js} +2 -2
- package/dist/usage-y-kBNdqs.js +1 -0
- package/dist/{validation-error-DHUrAkku.d.ts → validation-error-CQpoquwj.d.ts} +1 -1
- package/dist/{verify-BaAKx7t6.js → verify-pe8rL_Qw.js} +350 -83
- package/dist/{views-DTIIO-oQ.js → views-BB8E9dTP.js} +1 -1
- package/dist/vocabulary-Bg3eeT2H.d.ts +67 -0
- package/dist/vue/index.d.ts +6 -5
- package/dist/vue/index.js +4 -4
- package/dist/{waiter-B986w1oK.d.ts → waiter-DwEyouan.d.ts} +2 -2
- package/dist/watch-Bd9mx3rd.js +1 -0
- package/dist/{watch-vea54PRw.js → watch-C-4VmFlL.js} +3 -3
- package/dist/webmcp/index.d.ts +2 -2
- package/dist/webmcp/index.js +2 -2
- package/dist/{where-scope-C9vfEphl.js → where-scope-wq2coopv.js} +41 -21
- package/dist/{who-can-DWBAcaCQ.js → who-can-BwNsI_Js.js} +6 -6
- package/dist/workflow/index.d.ts +3 -3
- package/dist/workflow/index.js +5 -5
- package/dist/workflow-sdk/index.d.ts +5 -5
- package/dist/{wrap-C5jC6sKI.d.ts → wrap-B6R0cMRL.d.ts} +2 -2
- package/dist/{wrap-gX61EtpB.js → wrap-CiSc_KCq.js} +8 -2
- package/package.json +22 -11
- package/schemas/cli-result-v1.json +1 -0
- package/schemas/cloud-api-v1.json +152 -7
- package/schemas/connector-v1.json +8 -0
- package/schemas/supabase-claims-v1.json +5 -0
- package/schemas/supabase-manifest-v1.json +276 -75
- package/skills/permdock/SKILL.md +1 -0
- package/skills/permdock-agents/references/runtimes.md +3 -1
- package/skills/permdock-approvals/references/stores-and-resume.md +2 -1
- package/skills/permdock-data/references/queries-and-rls.md +4 -1
- package/skills/permdock-tenancy/SKILL.md +1 -1
- package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +1 -0
- package/skills/permdock-wire/references/adapters.md +14 -0
- package/skills/permdock-wire/references/policy-options.md +1 -0
- package/dist/catalog-BoWglDPI.js +0 -1
- package/dist/collect-D7eQDffE.js +0 -1
- package/dist/index-Cp_ilKi1.d.ts +0 -91
- package/dist/load-BxEtwlBS.js +0 -1
- package/dist/output-files-B3IZJksC.js +0 -1
- package/dist/parse-Cxq0WxrA.js +0 -53
- package/dist/peer-C8swJ2GH.js +0 -50
- package/dist/powersync-BkWWCS1K.js +0 -538
- package/dist/powersync-MMJ2mI2q.js +0 -1
- package/dist/prompt-DfZLJLIn.js +0 -32
- package/dist/pull-CvpINcMK.js +0 -1
- package/dist/run-DDwUaJDU.js +0 -1
- package/dist/supabase-hook-CCw5m35C.js +0 -1
- package/dist/supautils-B6HYL9eL.js +0 -91
- package/dist/text-diff-BQcUapOb.js +0 -15
- package/dist/usage-CZpSQP6L.js +0 -1
- package/dist/watch--ovlPOc0.js +0 -1
|
@@ -48,6 +48,12 @@ type SupabaseHookManifest = {
|
|
|
48
48
|
readonly function: "permdock_bump_authz_version_for";
|
|
49
49
|
readonly args: "p_users uuid[]";
|
|
50
50
|
};
|
|
51
|
+
/** The Management API fields that make a hosted project call the hook; `permdock supabase inspect` adds them. */
|
|
52
|
+
readonly managementApi?: {
|
|
53
|
+
readonly hook_custom_access_token_enabled: true;
|
|
54
|
+
readonly hook_custom_access_token_uri: string;
|
|
55
|
+
readonly jwt_exp: number;
|
|
56
|
+
};
|
|
51
57
|
/** The `supabase.hook.memberships` sources, in the order the hook reads them. */
|
|
52
58
|
readonly memberships: readonly SupabaseManifestMembership[];
|
|
53
59
|
readonly rls: SupabaseManifestRls;
|
|
@@ -97,6 +103,9 @@ type SupabaseManifestThrough = {
|
|
|
97
103
|
/** A role column (with `through` when it references a roles table), or the fixed roles every row holds. */
|
|
98
104
|
type SupabaseManifestRole = SupabaseManifestValue | (SupabaseManifestColumn & {
|
|
99
105
|
readonly through: SupabaseManifestThrough;
|
|
106
|
+
}) | (SupabaseManifestColumn & {
|
|
107
|
+
/** Each column value to the role key it stands for, or `null` for no role; an unlisted value is no role. */
|
|
108
|
+
readonly map: Readonly<Record<string, string | null>>;
|
|
100
109
|
});
|
|
101
110
|
/** One `tableMembershipSource` or `junctionMembershipSource` source. */
|
|
102
111
|
type SupabaseManifestMembership = {
|
|
@@ -194,6 +203,8 @@ type SupabaseManifestRls = {
|
|
|
194
203
|
readonly assignments?: {
|
|
195
204
|
readonly tables: readonly string[];
|
|
196
205
|
};
|
|
206
|
+
/** `rls.tokenScopes`: the helpers narrow a delegated token by its `scope` claim through `permdock_token_scope_allows`. */
|
|
207
|
+
readonly tokenScopes?: boolean;
|
|
197
208
|
readonly apiKeys?: {
|
|
198
209
|
readonly claim: string;
|
|
199
210
|
readonly scopes: string;
|
|
@@ -202,12 +213,22 @@ type SupabaseManifestRls = {
|
|
|
202
213
|
readonly serviceRoles: readonly string[];
|
|
203
214
|
};
|
|
204
215
|
};
|
|
216
|
+
/**
|
|
217
|
+
* The manifest of a project in `rls.authorize: 'database'` mode without
|
|
218
|
+
* `supabase.hook`: no token hook, so no `hook`, `budget`, `claims`,
|
|
219
|
+
* `authzVersion` or hook `memberships`.
|
|
220
|
+
*/
|
|
221
|
+
type SupabaseDatabaseManifest = Omit<SupabaseHookManifest, "authzVersion" | "authzVersionBump" | "budget" | "claims" | "hook" | "managementApi" | "memberships">;
|
|
222
|
+
/** What `parseSupabaseManifest` returns: a manifest with or without the token hook. */
|
|
223
|
+
type SupabaseManifest = SupabaseDatabaseManifest | SupabaseHookManifest;
|
|
224
|
+
/** Whether the manifest describes a token hook. */
|
|
225
|
+
declare function hasTokenHook(manifest: SupabaseManifest): manifest is SupabaseHookManifest;
|
|
205
226
|
/**
|
|
206
227
|
* Reads a `permdock.manifest.json` document (parsed, or the JSON text) and
|
|
207
228
|
* validates it against `schemas/supabase-manifest-v1.json`. Returns a
|
|
208
229
|
* deep-frozen copy built from own keys; throws `PermDockValidationError`
|
|
209
230
|
* with every issue, so a manifest of another major is refused.
|
|
210
231
|
*/
|
|
211
|
-
declare function parseSupabaseManifest(json: unknown):
|
|
232
|
+
declare function parseSupabaseManifest(json: unknown): SupabaseManifest;
|
|
212
233
|
//#endregion
|
|
213
|
-
export {
|
|
234
|
+
export { SupabaseManifestActiveRow as a, SupabaseManifestMembership as c, SupabaseManifestRole as d, SupabaseManifestThrough as f, parseSupabaseManifest as h, SupabaseManifest as i, SupabaseManifestRequires as l, hasTokenHook as m, SupabaseHookClaim as n, SupabaseManifestColumn as o, SupabaseManifestValue as p, SupabaseHookManifest as r, SupabaseManifestHelper as s, SupabaseDatabaseManifest as t, SupabaseManifestRls as u };
|
|
@@ -30,20 +30,20 @@ const SECTIONS = [
|
|
|
30
30
|
docs: "init",
|
|
31
31
|
effects: ["files"],
|
|
32
32
|
config: false,
|
|
33
|
-
load: async () => (await import("./init-
|
|
33
|
+
load: async () => (await import("./init-5TXNji88.js")).init
|
|
34
34
|
}),
|
|
35
35
|
group("preset", "Decode a preset code, or print its permdock.com/create link", "preset", [leaf("decode", "Print what a preset code holds", {
|
|
36
36
|
examples: ["permdock preset decode p1AQIDBAc"],
|
|
37
37
|
docs: "preset",
|
|
38
38
|
effects: [],
|
|
39
39
|
config: false,
|
|
40
|
-
load: async () => (await import("./init-
|
|
40
|
+
load: async () => (await import("./init-5TXNji88.js")).presetDecode
|
|
41
41
|
}), leaf("url", "Print the permdock.com/create link that opens a code", {
|
|
42
42
|
examples: ["permdock preset url p1AQIDBAc"],
|
|
43
43
|
docs: "preset",
|
|
44
44
|
effects: [],
|
|
45
45
|
config: false,
|
|
46
|
-
load: async () => (await import("./init-
|
|
46
|
+
load: async () => (await import("./init-5TXNji88.js")).presetUrl
|
|
47
47
|
})]),
|
|
48
48
|
group("skills", "Install, update or list the PermDock Agent Skills", "skills", [
|
|
49
49
|
leaf("install", "Copy the Agent Skills into the agent folders", {
|
|
@@ -55,21 +55,21 @@ const SECTIONS = [
|
|
|
55
55
|
docs: "skills",
|
|
56
56
|
effects: ["files"],
|
|
57
57
|
config: false,
|
|
58
|
-
load: async () => (await import("./skills-
|
|
58
|
+
load: async () => (await import("./skills-g_3BS9NC.js")).install
|
|
59
59
|
}),
|
|
60
60
|
leaf("update", "Replace installed skills with this version's", {
|
|
61
61
|
examples: ["permdock skills update"],
|
|
62
62
|
docs: "skills",
|
|
63
63
|
effects: ["files"],
|
|
64
64
|
config: false,
|
|
65
|
-
load: async () => (await import("./skills-
|
|
65
|
+
load: async () => (await import("./skills-g_3BS9NC.js")).update
|
|
66
66
|
}),
|
|
67
67
|
leaf("list", "List the skills and where each is installed", {
|
|
68
68
|
examples: ["permdock skills list"],
|
|
69
69
|
docs: "skills",
|
|
70
70
|
effects: [],
|
|
71
71
|
config: false,
|
|
72
|
-
load: async () => (await import("./skills-
|
|
72
|
+
load: async () => (await import("./skills-g_3BS9NC.js")).list
|
|
73
73
|
})
|
|
74
74
|
]),
|
|
75
75
|
leaf("doctor", "Check a PermDock installation and print a fix for each finding", {
|
|
@@ -82,7 +82,7 @@ const SECTIONS = [
|
|
|
82
82
|
effects: ["files"],
|
|
83
83
|
config: true,
|
|
84
84
|
findings: true,
|
|
85
|
-
load: async () => (await import("./doctor-
|
|
85
|
+
load: async () => (await import("./doctor-BoK_y0KO.js")).doctor
|
|
86
86
|
}),
|
|
87
87
|
leaf("completion", "Print the shell completion script for bash, zsh or fish", {
|
|
88
88
|
examples: ["permdock completion zsh > ~/.zfunc/_permdock", "eval \"$(permdock completion bash)\""],
|
|
@@ -90,7 +90,7 @@ const SECTIONS = [
|
|
|
90
90
|
effects: [],
|
|
91
91
|
config: false,
|
|
92
92
|
shellOutput: true,
|
|
93
|
-
load: async () => (await import("./completion-
|
|
93
|
+
load: async () => (await import("./completion-BNdVf7X2.js")).completion
|
|
94
94
|
})
|
|
95
95
|
]
|
|
96
96
|
},
|
|
@@ -106,14 +106,14 @@ const SECTIONS = [
|
|
|
106
106
|
docs: "collect",
|
|
107
107
|
effects: ["files"],
|
|
108
108
|
config: true,
|
|
109
|
-
load: async () => (await import("./collect-
|
|
109
|
+
load: async () => (await import("./collect-DNm3oKOk.js")).collect
|
|
110
110
|
}),
|
|
111
111
|
leaf("catalog", "Export the catalog as catalog JSON, JSON Schema or Markdown", {
|
|
112
112
|
examples: ["permdock catalog --out permissions.catalog.json", "permdock catalog --kind markdown"],
|
|
113
113
|
docs: "catalog",
|
|
114
114
|
effects: ["files"],
|
|
115
115
|
config: true,
|
|
116
|
-
load: async () => (await import("./catalog-
|
|
116
|
+
load: async () => (await import("./catalog-BaMQfQ6Y.js")).catalog
|
|
117
117
|
}),
|
|
118
118
|
leaf("usage", "Report unused, ungranted and role-less permissions and conditions on undeclared fields", {
|
|
119
119
|
examples: ["permdock usage", "permdock usage --fail-on warning"],
|
|
@@ -121,14 +121,14 @@ const SECTIONS = [
|
|
|
121
121
|
effects: [],
|
|
122
122
|
config: true,
|
|
123
123
|
findings: true,
|
|
124
|
-
load: async () => (await import("./usage-
|
|
124
|
+
load: async () => (await import("./usage-CDaLXCfL.js")).usage
|
|
125
125
|
}),
|
|
126
126
|
leaf("diff", "Compare two policies or catalogs; exit 1 on a breaking change", {
|
|
127
127
|
examples: ["permdock diff main.catalog.json permissions.catalog.json", "permdock diff ./old-policy.ts ./src/policy.ts --impact"],
|
|
128
128
|
docs: "diff",
|
|
129
129
|
effects: [],
|
|
130
130
|
config: true,
|
|
131
|
-
load: async () => (await import("./diff-
|
|
131
|
+
load: async () => (await import("./diff-Btr1c1Ow.js")).diff
|
|
132
132
|
}),
|
|
133
133
|
leaf("config", "Check permdock.config.ts for unknown keys, or print the effective config", {
|
|
134
134
|
examples: ["permdock config", "permdock config --print"],
|
|
@@ -136,7 +136,7 @@ const SECTIONS = [
|
|
|
136
136
|
effects: [],
|
|
137
137
|
config: true,
|
|
138
138
|
findings: true,
|
|
139
|
-
load: async () => (await import("./config-
|
|
139
|
+
load: async () => (await import("./config-DGZzMV1B.js")).config
|
|
140
140
|
})
|
|
141
141
|
]
|
|
142
142
|
},
|
|
@@ -153,14 +153,14 @@ const SECTIONS = [
|
|
|
153
153
|
"network"
|
|
154
154
|
],
|
|
155
155
|
config: true,
|
|
156
|
-
load: async () => (await import("./rls-
|
|
156
|
+
load: async () => (await import("./rls-Ck_PocSp.js")).generate
|
|
157
157
|
}),
|
|
158
158
|
leaf("import", "Turn existing RLS policies into a generated definition", {
|
|
159
159
|
examples: ["permdock rls import --sql schema.sql --out src/permissions.generated.ts", "permdock rls import --db-url-stdin --out src/permissions.generated.ts"],
|
|
160
160
|
docs: "rls",
|
|
161
161
|
effects: ["files", "database:read"],
|
|
162
162
|
config: true,
|
|
163
|
-
load: async () => (await import("./rls-
|
|
163
|
+
load: async () => (await import("./rls-Ck_PocSp.js")).importPolicies
|
|
164
164
|
}),
|
|
165
165
|
leaf("verify", "Run the fixtures against the policies, or compare a live database", {
|
|
166
166
|
examples: [
|
|
@@ -169,16 +169,24 @@ const SECTIONS = [
|
|
|
169
169
|
"permdock rls verify --introspect --db-url-stdin"
|
|
170
170
|
],
|
|
171
171
|
docs: "rls",
|
|
172
|
-
effects: ["database:read"],
|
|
172
|
+
effects: ["files", "database:read"],
|
|
173
173
|
config: true,
|
|
174
|
-
|
|
174
|
+
findings: true,
|
|
175
|
+
load: async () => (await import("./rls-Ck_PocSp.js")).verify
|
|
175
176
|
}),
|
|
176
177
|
leaf("migrate", "Rewrite hand-written policies onto the generated helpers", {
|
|
177
178
|
examples: ["permdock rls migrate --sql supabase/migrations --dry-run", "permdock rls migrate --sql supabase/migrations"],
|
|
178
179
|
docs: "rls",
|
|
179
180
|
effects: ["rewrite", "files"],
|
|
180
181
|
config: true,
|
|
181
|
-
load: async () => (await import("./rls-
|
|
182
|
+
load: async () => (await import("./rls-Ck_PocSp.js")).migrate
|
|
183
|
+
}),
|
|
184
|
+
leaf("explain", "Show the tables, membership sources and triggers the SQL binds to", {
|
|
185
|
+
examples: ["permdock rls explain", "permdock rls explain --db-url-stdin --json"],
|
|
186
|
+
docs: "rls",
|
|
187
|
+
effects: ["database:read"],
|
|
188
|
+
config: true,
|
|
189
|
+
load: async () => (await import("./rls-Ck_PocSp.js")).explain
|
|
182
190
|
})
|
|
183
191
|
]),
|
|
184
192
|
group("supabase", "Generate the Supabase Custom Access Token Hook, or inspect its manifest", "supabase", [group("hook", "The Custom Access Token Hook", "supabase", [leaf("generate", "Compile the membership sources into the hook migration", {
|
|
@@ -186,26 +194,37 @@ const SECTIONS = [
|
|
|
186
194
|
docs: "supabase",
|
|
187
195
|
effects: ["files", "database:read"],
|
|
188
196
|
config: true,
|
|
189
|
-
load: async () => (await import("./supabase-
|
|
197
|
+
load: async () => (await import("./supabase-Bqp7iIY2.js")).hookGenerate
|
|
190
198
|
})]), leaf("inspect", "Print or write the hook and helper manifest", {
|
|
191
199
|
examples: ["permdock supabase inspect", "permdock supabase inspect --out"],
|
|
192
200
|
docs: "supabase",
|
|
193
201
|
effects: ["files"],
|
|
194
202
|
config: true,
|
|
195
|
-
load: async () => (await import("./supabase-
|
|
203
|
+
load: async () => (await import("./supabase-Bqp7iIY2.js")).inspect
|
|
196
204
|
})]),
|
|
197
205
|
group("powersync", "Generate PowerSync Sync Streams from the policy, or verify them", "powersync", [leaf("generate", "Compile the read grants into sync-config.yaml", {
|
|
198
206
|
examples: ["permdock powersync generate", "permdock powersync generate --check"],
|
|
199
207
|
docs: "powersync",
|
|
200
208
|
effects: ["files"],
|
|
201
209
|
config: true,
|
|
202
|
-
load: async () => (await import("./powersync-
|
|
210
|
+
load: async () => (await import("./powersync-13odBwiM.js")).generate
|
|
203
211
|
}), leaf("verify", "Fail on stale streams or a stream that syncs a denied row", {
|
|
204
212
|
examples: ["permdock powersync verify", "permdock powersync verify --db-url-stdin"],
|
|
205
213
|
docs: "powersync",
|
|
206
214
|
effects: ["database:read"],
|
|
207
215
|
config: true,
|
|
208
|
-
load: async () => (await import("./powersync-
|
|
216
|
+
load: async () => (await import("./powersync-13odBwiM.js")).verify
|
|
217
|
+
})]),
|
|
218
|
+
group("scim", "Generate the Postgres tables postgresDirectoryStore keeps a SCIM directory in", "scim", [leaf("generate", "Write the tenant-keyed users, groups and members tables", {
|
|
219
|
+
examples: [
|
|
220
|
+
"permdock scim generate",
|
|
221
|
+
"permdock scim generate --dialect guc --out db/scim.sql",
|
|
222
|
+
"permdock scim generate --check"
|
|
223
|
+
],
|
|
224
|
+
docs: "scim",
|
|
225
|
+
effects: ["files"],
|
|
226
|
+
config: true,
|
|
227
|
+
load: async () => (await import("./scim-C7JYhySg.js")).generate
|
|
209
228
|
})])
|
|
210
229
|
]
|
|
211
230
|
},
|
|
@@ -217,13 +236,13 @@ const SECTIONS = [
|
|
|
217
236
|
docs: "openapi",
|
|
218
237
|
effects: ["files"],
|
|
219
238
|
config: true,
|
|
220
|
-
load: async () => (await import("./openapi-
|
|
239
|
+
load: async () => (await import("./openapi-DMocl1bh.js")).emit
|
|
221
240
|
}), leaf("import", "Turn an OpenAPI document into a generated definition", {
|
|
222
241
|
examples: ["permdock openapi import --doc openapi.yaml --out src/permissions.generated.ts"],
|
|
223
242
|
docs: "openapi",
|
|
224
243
|
effects: ["files", "network"],
|
|
225
244
|
config: false,
|
|
226
|
-
load: async () => (await import("./openapi-
|
|
245
|
+
load: async () => (await import("./openapi-DMocl1bh.js")).importDocument
|
|
227
246
|
})]),
|
|
228
247
|
group("arazzo", "Check Arazzo workflows against the permissions", "arazzo", [leaf("check", "Resolve every Arazzo step to x-permdock-permissions", {
|
|
229
248
|
examples: ["permdock arazzo check --doc arazzo.json --openapi openapi.json"],
|
|
@@ -231,7 +250,7 @@ const SECTIONS = [
|
|
|
231
250
|
effects: [],
|
|
232
251
|
config: true,
|
|
233
252
|
findings: true,
|
|
234
|
-
load: async () => (await import("./arazzo-
|
|
253
|
+
load: async () => (await import("./arazzo-ClrF3PVb.js")).check
|
|
235
254
|
})]),
|
|
236
255
|
leaf("scan", "List authorization checks written without PermDock, to adopt it in an existing app", {
|
|
237
256
|
examples: ["permdock scan", "permdock scan --src app,lib --pattern isBeta"],
|
|
@@ -239,21 +258,21 @@ const SECTIONS = [
|
|
|
239
258
|
effects: [],
|
|
240
259
|
config: true,
|
|
241
260
|
findings: true,
|
|
242
|
-
load: async () => (await import("./scan-
|
|
261
|
+
load: async () => (await import("./scan-DSljDE1Y.js")).scan
|
|
243
262
|
}),
|
|
244
263
|
group("casl", "Import CASL rules into a generated module", "casl", [leaf("import", "Turn CASL rules per role into a permissions and policy module", {
|
|
245
264
|
examples: ["permdock casl import --rules rules.json --out src/permissions.generated.ts"],
|
|
246
265
|
docs: "casl",
|
|
247
266
|
effects: ["files"],
|
|
248
267
|
config: false,
|
|
249
|
-
load: async () => (await import("./casl-
|
|
268
|
+
load: async () => (await import("./casl-CmJlgziS.js")).caslImport
|
|
250
269
|
})]),
|
|
251
270
|
group("casbin", "Import a Casbin model and policy into a generated module", "casbin", [leaf("import", "Turn a Casbin RBAC model and policy into a permissions and policy module", {
|
|
252
271
|
examples: ["permdock casbin import --model model.conf --policy policy.csv --out src/permissions.generated.ts"],
|
|
253
272
|
docs: "casbin",
|
|
254
273
|
effects: ["files"],
|
|
255
274
|
config: false,
|
|
256
|
-
load: async () => (await import("./casbin-
|
|
275
|
+
load: async () => (await import("./casbin-BHijLuHY.js")).casbinImport
|
|
257
276
|
})])
|
|
258
277
|
]
|
|
259
278
|
},
|
|
@@ -265,34 +284,34 @@ const SECTIONS = [
|
|
|
265
284
|
docs: "login",
|
|
266
285
|
effects: ["network", "files"],
|
|
267
286
|
config: false,
|
|
268
|
-
load: async () => (await import("./login-
|
|
287
|
+
load: async () => (await import("./login-ClSJh5t5.js")).login
|
|
269
288
|
}),
|
|
270
289
|
leaf("logout", "Revoke and delete the stored PermDock Cloud login", {
|
|
271
290
|
examples: ["permdock logout"],
|
|
272
291
|
docs: "login",
|
|
273
292
|
effects: ["network", "files"],
|
|
274
293
|
config: false,
|
|
275
|
-
load: async () => (await import("./login-
|
|
294
|
+
load: async () => (await import("./login-ClSJh5t5.js")).logout
|
|
276
295
|
}),
|
|
277
296
|
leaf("whoami", "Print the PermDock Cloud identity the CLI acts as", {
|
|
278
297
|
examples: ["permdock whoami", "permdock whoami --json"],
|
|
279
298
|
docs: "login",
|
|
280
299
|
effects: [],
|
|
281
300
|
config: false,
|
|
282
|
-
load: async () => (await import("./login-
|
|
301
|
+
load: async () => (await import("./login-ClSJh5t5.js")).whoami
|
|
283
302
|
}),
|
|
284
303
|
group("cloud", "Publish to or pull from a PermDock Cloud project", "cloud", [leaf("push", "Publish the catalog, policy and manifest to a Cloud project", {
|
|
285
304
|
examples: ["permdock cloud push --dry-run", "permdock cloud push --project prj_123"],
|
|
286
305
|
docs: "cloud",
|
|
287
306
|
effects: ["network", "cloud:write"],
|
|
288
307
|
config: true,
|
|
289
|
-
load: async () => (await import("./cloud-
|
|
308
|
+
load: async () => (await import("./cloud-CO8pYtwr.js")).push
|
|
290
309
|
}), leaf("pull", "Write a Cloud project's published catalog and manifest", {
|
|
291
310
|
examples: ["permdock cloud pull --project prj_123"],
|
|
292
311
|
docs: "cloud",
|
|
293
312
|
effects: ["network", "files"],
|
|
294
313
|
config: true,
|
|
295
|
-
load: async () => (await import("./cloud-
|
|
314
|
+
load: async () => (await import("./cloud-CO8pYtwr.js")).pull
|
|
296
315
|
})])
|
|
297
316
|
]
|
|
298
317
|
},
|
|
@@ -303,7 +322,7 @@ const SECTIONS = [
|
|
|
303
322
|
docs: "codemod",
|
|
304
323
|
effects: ["rewrite"],
|
|
305
324
|
config: false,
|
|
306
|
-
load: async () => (await import("./codemod-
|
|
325
|
+
load: async () => (await import("./codemod-i4N2BhDc.js")).codemod
|
|
307
326
|
})]
|
|
308
327
|
}
|
|
309
328
|
];
|
|
@@ -315,7 +334,7 @@ const COMPLETE_LEAF = leaf("__complete", "Print completion candidates for a part
|
|
|
315
334
|
config: false,
|
|
316
335
|
shellOutput: true,
|
|
317
336
|
hidden: true,
|
|
318
|
-
load: async () => (await import("./completion-
|
|
337
|
+
load: async () => (await import("./completion-BNdVf7X2.js")).complete
|
|
319
338
|
});
|
|
320
339
|
const ROOT = group("permdock", "Collect, export, diff and check the permissions a PermDock policy declares", "", [...SECTIONS.flatMap((section) => section.entries), COMPLETE_LEAF]);
|
|
321
340
|
/** Each leaf with its path from the root, in manifest order. */
|
|
@@ -10,13 +10,8 @@ const supabaseManifestSchema = freezeDeep({
|
|
|
10
10
|
required: [
|
|
11
11
|
"$schema",
|
|
12
12
|
"version",
|
|
13
|
-
"hook",
|
|
14
13
|
"helpers",
|
|
15
14
|
"tenantClaim",
|
|
16
|
-
"budget",
|
|
17
|
-
"claims",
|
|
18
|
-
"authzVersion",
|
|
19
|
-
"memberships",
|
|
20
15
|
"rls",
|
|
21
16
|
"decidingColumns",
|
|
22
17
|
"markers"
|
|
@@ -95,6 +90,24 @@ const supabaseManifestSchema = freezeDeep({
|
|
|
95
90
|
}
|
|
96
91
|
},
|
|
97
92
|
authzVersion: { type: "boolean" },
|
|
93
|
+
managementApi: {
|
|
94
|
+
description: "The Management API fields that make a hosted project call the generated hook, as `permdock supabase inspect` prints and `--out` writes them.",
|
|
95
|
+
type: "object",
|
|
96
|
+
required: [
|
|
97
|
+
"hook_custom_access_token_enabled",
|
|
98
|
+
"hook_custom_access_token_uri",
|
|
99
|
+
"jwt_exp"
|
|
100
|
+
],
|
|
101
|
+
properties: {
|
|
102
|
+
hook_custom_access_token_enabled: { const: true },
|
|
103
|
+
hook_custom_access_token_uri: { type: "string" },
|
|
104
|
+
jwt_exp: {
|
|
105
|
+
description: "The access token lifetime in seconds: `[auth] jwt_expiry` of `supabase/config.toml`, or 3600 when it is unset.",
|
|
106
|
+
type: "integer"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
additionalProperties: false
|
|
110
|
+
},
|
|
98
111
|
authzVersionBump: {
|
|
99
112
|
type: "object",
|
|
100
113
|
required: [
|
|
@@ -222,6 +235,7 @@ const supabaseManifestSchema = freezeDeep({
|
|
|
222
235
|
items: { type: "string" }
|
|
223
236
|
} }
|
|
224
237
|
},
|
|
238
|
+
tokenScopes: { type: "boolean" },
|
|
225
239
|
apiKeys: {
|
|
226
240
|
type: "object",
|
|
227
241
|
required: [
|
|
@@ -349,7 +363,7 @@ const supabaseManifestSchema = freezeDeep({
|
|
|
349
363
|
},
|
|
350
364
|
helperName: {
|
|
351
365
|
type: "string",
|
|
352
|
-
pattern: "^(permdock_has(_for)?|permitted_[a-z][a-z0-9_]*_(ids|permission_keys)(_for)?|permitted_[a-z][a-z0-9_]*_users|member_[a-z][a-z0-9_]*_ids(_for)?|permdock_can_assign(_any|_custom_role)?(_for)?|permdock_api_key_allows|permdock_actor_may_write|permdock_is_approver|permdock_user_id)$"
|
|
366
|
+
pattern: "^(permdock_has(_for)?|permitted_[a-z][a-z0-9_]*_(ids|permission_keys)(_for)?|permitted_[a-z][a-z0-9_]*_users|member_[a-z][a-z0-9_]*_ids(_for)?|permdock_can_assign(_any|_custom_role)?(_for)?|permdock_api_key_allows|permdock_token_scope_allows|permdock_actor_may_write|permdock_is_approver|permdock_user_id)$"
|
|
353
367
|
},
|
|
354
368
|
column: {
|
|
355
369
|
type: "object",
|
|
@@ -357,7 +371,23 @@ const supabaseManifestSchema = freezeDeep({
|
|
|
357
371
|
additionalProperties: false,
|
|
358
372
|
properties: { column: { $ref: "#/$defs/identifier" } }
|
|
359
373
|
},
|
|
360
|
-
role: { oneOf: [
|
|
374
|
+
role: { oneOf: [
|
|
375
|
+
{ $ref: "#/$defs/value" },
|
|
376
|
+
{ $ref: "#/$defs/through" },
|
|
377
|
+
{ $ref: "#/$defs/mapped" }
|
|
378
|
+
] },
|
|
379
|
+
mapped: {
|
|
380
|
+
type: "object",
|
|
381
|
+
required: ["column", "map"],
|
|
382
|
+
additionalProperties: false,
|
|
383
|
+
properties: {
|
|
384
|
+
column: { $ref: "#/$defs/identifier" },
|
|
385
|
+
map: {
|
|
386
|
+
type: "object",
|
|
387
|
+
additionalProperties: { type: ["string", "null"] }
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
},
|
|
361
391
|
user: { oneOf: [{ $ref: "#/$defs/column" }, { $ref: "#/$defs/through" }] },
|
|
362
392
|
through: {
|
|
363
393
|
type: "object",
|
|
@@ -338,19 +338,22 @@ function mapClaimsToSubject(claims, options) {
|
|
|
338
338
|
invalidChain: false
|
|
339
339
|
};
|
|
340
340
|
}
|
|
341
|
+
/** `true` when a verified token is not an OpenID Connect ID token for one of `clients`. */
|
|
342
|
+
function idTokenMismatch(claims, headerTyp, clients) {
|
|
343
|
+
const typ = headerTyp?.toLowerCase();
|
|
344
|
+
if (typ !== void 0 && typ !== "jwt" && typ !== "application/jwt") return true;
|
|
345
|
+
if (typeof claims.iat !== "number") return true;
|
|
346
|
+
const aud = claims.aud;
|
|
347
|
+
const audiences = Array.isArray(aud) ? aud : aud === void 0 ? [] : [aud];
|
|
348
|
+
const expected = clients === void 0 ? [] : typeof clients === "string" ? [clients] : clients;
|
|
349
|
+
const azp = claims["azp"];
|
|
350
|
+
if (azp === void 0) return audiences.length > 1;
|
|
351
|
+
return typeof azp !== "string" || !expected.includes(azp);
|
|
352
|
+
}
|
|
341
353
|
function acceptMismatch(claims, headerTyp, options, audience) {
|
|
342
354
|
const accept = options.accept ?? "access-token";
|
|
343
355
|
const typ = headerTyp?.toLowerCase();
|
|
344
|
-
if (accept === "id-token")
|
|
345
|
-
if (typ !== void 0 && typ !== "jwt" && typ !== "application/jwt") return true;
|
|
346
|
-
if (typeof claims.iat !== "number") return true;
|
|
347
|
-
const aud = claims.aud;
|
|
348
|
-
const audiences = Array.isArray(aud) ? aud : aud === void 0 ? [] : [aud];
|
|
349
|
-
const clients = audience === void 0 ? [] : typeof audience === "string" ? [audience] : audience;
|
|
350
|
-
const azp = claims["azp"];
|
|
351
|
-
if (azp === void 0) return audiences.length > 1;
|
|
352
|
-
return typeof azp !== "string" || !clients.includes(azp);
|
|
353
|
-
}
|
|
356
|
+
if (accept === "id-token") return idTokenMismatch(claims, headerTyp, audience);
|
|
354
357
|
if (options.profile === "fapi2" && typ !== "at+jwt") return true;
|
|
355
358
|
if (typeof claims["nonce"] === "string") return true;
|
|
356
359
|
if (audience !== void 0 && typeof claims.aud === "string") {
|
|
@@ -360,4 +363,4 @@ function acceptMismatch(claims, headerTyp, options, audience) {
|
|
|
360
363
|
return false;
|
|
361
364
|
}
|
|
362
365
|
//#endregion
|
|
363
|
-
export {
|
|
366
|
+
export { validateCustomClaims as i, idTokenMismatch as n, mapClaimsToSubject as r, acceptMismatch as t };
|
|
@@ -2,7 +2,7 @@ import { t as compact } from "./compact-CAf557ZB.js";
|
|
|
2
2
|
import { n as PermDockValidationError } from "./validation-error-ZfUHbKvf.js";
|
|
3
3
|
import { n as PermDockDeniedError, r as PermDockRevokedError, t as PermDockApprovalRequiredError } from "./errors-BKy0EfhN.js";
|
|
4
4
|
import { c as problemResponse, i as decisionResponse } from "./problem-CTviyH5L.js";
|
|
5
|
-
import {
|
|
5
|
+
import { l as InvalidSignatureError } from "./evaluations-DReoiVBw.js";
|
|
6
6
|
//#region src/server/map-error.ts
|
|
7
7
|
/**
|
|
8
8
|
* Turns a thrown PermDock error into its Problem Details response, with the
|
package/dist/mcp/index.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { m as ApprovalStore } from "../types-
|
|
4
|
-
import { t as ApprovalHint } from "../errors-
|
|
5
|
-
import { t as InstanceOptions } from "../instance-options-
|
|
1
|
+
import { T as Policy, Y as JwtClaims, dt as TokenVerifier, lr as Subject, rr as Delegation, sr as Principal } from "../policy-types-B-F-qAZk.js";
|
|
2
|
+
import { u as Permission } from "../permission-types-DhNEmoRG.js";
|
|
3
|
+
import { m as ApprovalStore } from "../types-DC44-hqb.js";
|
|
4
|
+
import { t as ApprovalHint } from "../errors-B_Qg9D3e.js";
|
|
5
|
+
import { t as InstanceOptions } from "../instance-options-CU0YQCLH.js";
|
|
6
6
|
import { t as RequestContext } from "../request-context-C2_1lchh.js";
|
|
7
|
-
import { n as PermDockWrap } from "../wrap-
|
|
8
|
-
import { o as OtelWrap } from "../types-
|
|
9
|
-
import { n as DeniedTextEvent, t as DeniedText } from "../denied-text-
|
|
7
|
+
import { n as PermDockWrap } from "../wrap-B6R0cMRL.js";
|
|
8
|
+
import { o as OtelWrap } from "../types-CIeZcG8v.js";
|
|
9
|
+
import { n as DeniedTextEvent, t as DeniedText } from "../denied-text-D4qkEtFz.js";
|
|
10
10
|
import { t as ClientNames } from "../clients-C7zLFuWT.js";
|
|
11
|
-
import { U as JwtSubjectOptions } from "../types-
|
|
11
|
+
import { U as JwtSubjectOptions } from "../types-cTos-H7p.js";
|
|
12
12
|
import { CacheHint, Icon, McpServer, PromptCallback, ReadResourceCallback, ReadResourceTemplateCallback, RegisteredPrompt, RegisteredResource, RegisteredResourceTemplate, RegisteredTool, ResourceMetadata, ResourceTemplate, ScopeChallengeHandler, StandardSchemaWithJSON, ToolAnnotations, ToolCallback, Variables } from "@modelcontextprotocol/server";
|
|
13
13
|
//#region src/mcp/types.d.ts
|
|
14
14
|
/** The verified `AuthInfo` the MCP SDK's bearer auth puts on `ctx.http.authInfo`. */
|
|
@@ -54,6 +54,13 @@ type McpResourceConfig<TArgs extends readonly unknown[]> = Guard<TArgs> & Resour
|
|
|
54
54
|
readonly cacheHint?: CacheHint;
|
|
55
55
|
readonly scopeChallenge?: ScopeChallengeHandler;
|
|
56
56
|
};
|
|
57
|
+
/**
|
|
58
|
+
* An MCP Apps view (`ui://`). Without `permission` it takes the permission of
|
|
59
|
+
* the tool whose `_meta.ui.resourceUri` names it, and denies while no tool does.
|
|
60
|
+
*/
|
|
61
|
+
type McpUiResourceConfig = Omit<McpResourceConfig<[uri: URL]>, "permission"> & {
|
|
62
|
+
readonly permission?: Permission;
|
|
63
|
+
};
|
|
57
64
|
type McpPromptConfig<TArgs extends StandardSchemaWithJSON | undefined = undefined> = Guard<[args: InputOf<TArgs>]> & {
|
|
58
65
|
readonly title?: string;
|
|
59
66
|
readonly description?: string;
|
|
@@ -65,6 +72,7 @@ type McpPromptConfig<TArgs extends StandardSchemaWithJSON | undefined = undefine
|
|
|
65
72
|
/** `McpServer` whose `register*` methods take a `permission` and decide first. */
|
|
66
73
|
type GuardedMcpServer = Omit<McpServer, "registerTool" | "registerResource" | "registerPrompt"> & {
|
|
67
74
|
registerTool<TInput extends StandardSchemaWithJSON | undefined = undefined, TOutput extends StandardSchemaWithJSON | undefined = undefined>(name: string, config: McpToolConfig<TInput, TOutput>, handler: ToolCallback<TInput>): RegisteredTool;
|
|
75
|
+
registerResource(name: string, uri: `ui://${string}`, config: McpUiResourceConfig, read: ReadResourceCallback): RegisteredResource;
|
|
68
76
|
registerResource(name: string, uri: string, config: McpResourceConfig<[uri: URL]>, read: ReadResourceCallback): RegisteredResource;
|
|
69
77
|
registerResource(name: string, template: ResourceTemplate, config: McpResourceConfig<[uri: URL, variables: Variables]>, read: ReadResourceTemplateCallback): RegisteredResourceTemplate;
|
|
70
78
|
registerPrompt<TArgs extends StandardSchemaWithJSON | undefined = undefined>(name: string, config: McpPromptConfig<TArgs>, handler: PromptCallback<TArgs>): RegisteredPrompt;
|
|
@@ -166,6 +174,52 @@ export declare function createPermDock<TUser, TPrincipal extends Principal = Pri
|
|
|
166
174
|
/** `_meta` key on `tools/call`, `resources/read` and `prompts/get` carrying an approval token. */
|
|
167
175
|
export declare const APPROVAL_META_KEY = "dev.permdock/approval";
|
|
168
176
|
//#endregion
|
|
177
|
+
//#region src/mcp/resource-guard.d.ts
|
|
178
|
+
type McpResourceGuardOptions = {
|
|
179
|
+
/** The MCP server's resource identifier (RFC 8707); a token's `aud` must contain it. */
|
|
180
|
+
readonly resource: string | URL;
|
|
181
|
+
/** Scopes every request needs; a token without one of them gets `403 insufficient_scope`. */
|
|
182
|
+
readonly scopes?: readonly string[];
|
|
183
|
+
readonly verifier: TokenVerifier;
|
|
184
|
+
/** The authorization server's issuer, when the verifier does not check `iss` itself. */
|
|
185
|
+
readonly issuer?: string;
|
|
186
|
+
/** `true` for a revoked token; a throw also refuses it. */
|
|
187
|
+
readonly revoked?: (claims: JwtClaims) => boolean | Promise<boolean>;
|
|
188
|
+
/** The RFC 9728 metadata URL in challenges; default `<origin>/.well-known/oauth-protected-resource<path>`. */
|
|
189
|
+
readonly resourceMetadataUrl?: string;
|
|
190
|
+
};
|
|
191
|
+
type McpResourceGuardResult = {
|
|
192
|
+
readonly ok: true;
|
|
193
|
+
readonly authInfo: McpAuthInfo;
|
|
194
|
+
} | {
|
|
195
|
+
readonly ok: false;
|
|
196
|
+
readonly response: Response;
|
|
197
|
+
};
|
|
198
|
+
type ProtectedResourceMetadataOptions = {
|
|
199
|
+
readonly resource: string | URL;
|
|
200
|
+
/** `authorization_servers`: the issuers whose tokens the resource accepts. */
|
|
201
|
+
readonly authorizationServers: readonly string[];
|
|
202
|
+
/** `scopes_supported`; list every permission's `scope` so clients can ask for them up front. */
|
|
203
|
+
readonly scopesSupported?: readonly string[];
|
|
204
|
+
readonly resourceName?: string;
|
|
205
|
+
readonly resourceDocumentation?: string;
|
|
206
|
+
};
|
|
207
|
+
/**
|
|
208
|
+
* The resource-server check in front of an MCP endpoint (MCP authorization,
|
|
209
|
+
* RFC 6750, RFC 9728): reads the bearer token from `Authorization`, verifies
|
|
210
|
+
* it for `resource`, refuses a revoked one and checks `scopes`. It answers
|
|
211
|
+
* the `McpAuthInfo` the SDK's handlers read, or the `401` or `403` response
|
|
212
|
+
* with a `WWW-Authenticate` challenge naming the metadata URL. A token in the
|
|
213
|
+
* query string is never read. Never throws.
|
|
214
|
+
*/
|
|
215
|
+
export declare function mcpResourceGuard(options: McpResourceGuardOptions): (request: Request) => Promise<McpResourceGuardResult>;
|
|
216
|
+
/**
|
|
217
|
+
* The RFC 9728 Protected Resource Metadata document as a Fetch handler, for
|
|
218
|
+
* `/.well-known/oauth-protected-resource<path>`. `bearer_methods_supported`
|
|
219
|
+
* is `header`, the only method `mcpResourceGuard` reads. Any origin may read it.
|
|
220
|
+
*/
|
|
221
|
+
export declare function protectedResourceMetadata(options: ProtectedResourceMetadataOptions): (request: Request) => Response;
|
|
222
|
+
//#endregion
|
|
169
223
|
//#region src/mcp/subject.d.ts
|
|
170
224
|
type McpSubjectOptions = Pick<JwtSubjectOptions, "claims" | "groupRoles" | "schema" | "delegation"> & {
|
|
171
225
|
/** The `kind` of the actor built from `authInfo.clientId`; `'mcp-client'` when absent. Match `createPermDock`'s `actorKind`. */
|
|
@@ -183,4 +237,4 @@ type McpSubjectOptions = Pick<JwtSubjectOptions, "claims" | "groupRoles" | "sche
|
|
|
183
237
|
*/
|
|
184
238
|
export declare function subjectFromMcp(authInfo: McpAuthInfo | undefined, options?: McpSubjectOptions): Subject<McpPrincipal>;
|
|
185
239
|
//#endregion
|
|
186
|
-
export type { DeniedText, DeniedTextEvent, GuardedMcpServer, McpAuthInfo, McpPermDock, McpPermDockOptions, McpPrincipal, McpProcedureEnforcement, McpProcedureToolConfig, McpPromptConfig, McpResourceConfig, McpSubjectOptions, McpToolConfig, ProcedureMcpServer };
|
|
240
|
+
export type { DeniedText, DeniedTextEvent, GuardedMcpServer, McpAuthInfo, McpPermDock, McpPermDockOptions, McpPrincipal, McpProcedureEnforcement, McpProcedureToolConfig, McpPromptConfig, McpResourceConfig, McpResourceGuardOptions, McpResourceGuardResult, McpSubjectOptions, McpToolConfig, McpUiResourceConfig, ProcedureMcpServer, ProtectedResourceMetadataOptions };
|