permdock 0.7.0 → 0.9.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 -3
- package/dist/a2a/index.d.ts +7 -7
- package/dist/a2a/index.js +8 -8
- package/dist/action-result-BcudBQOF.d.ts +19 -0
- package/dist/{adapter-context-CRhqyzCk.js → adapter-context-CIQpQxbE.js} +8 -2
- package/dist/{adoption-scan-D-feE7BE.js → adoption-scan-Ch07MdxN.js} +5 -5
- package/dist/agent/index.d.ts +2 -2
- package/dist/agent/index.js +1 -1
- package/dist/ai-sdk/index.d.ts +19 -13
- package/dist/ai-sdk/index.js +6 -6
- package/dist/{app-data-MuyzVqX8.js → app-data-UNNm07jV.js} +10 -7
- package/dist/{approval-header-CJACtHkv.js → approval-header-8QV6MU4H.js} +6 -3
- package/dist/{approval-prompt-K0faOLFp.d.ts → approval-prompt-3BqWczTt.d.ts} +13 -11
- package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
- package/dist/approvals/index.d.ts +4 -4
- package/dist/approvals/index.js +6 -6
- package/dist/{approvals-CMRfsbBh.js → approvals-DnIBTuXE.js} +66 -42
- package/dist/{approvers-CqPOLD-o.js → approvers-B4r0N_Uz.js} +8 -2
- package/dist/{arazzo-ClrF3PVb.js → arazzo-BpS7LnV0.js} +2 -2
- package/dist/{arazzo-rdeJ8n1J.js → arazzo-CmQaGPkM.js} +6 -6
- package/dist/{args-CC3OwyHW.js → args-0FrVs5EH.js} +14 -7
- package/dist/astro/index.d.ts +30 -12
- package/dist/astro/index.js +2 -2
- package/dist/{audience-BrMs8c4o.js → audience-DTjR8xet.js} +8 -8
- package/dist/{auth-CscUX8Sy.js → auth--yPyZNgr.js} +19 -7
- package/dist/authzen/index.d.ts +34 -28
- package/dist/authzen/index.js +23 -20
- package/dist/{automation-DOtAFWdy.d.ts → automation-C6Jg75xq.d.ts} +42 -32
- package/dist/{automation-ySsxp_Yp.js → automation-x3KEUusw.js} +22 -21
- package/dist/better-auth/index.d.ts +2 -2
- package/dist/better-auth/index.js +13 -7
- package/dist/better-supabase/index.d.ts +357 -227
- package/dist/better-supabase/index.js +219 -140
- package/dist/{bind-D1nO6fiC.js → bind-BNQA9JK9.js} +26 -10
- package/dist/{bind-JDuvxjuW.d.ts → bind-YYjvfpB9.d.ts} +32 -12
- package/dist/{body-CH5of8Ne.js → body-CJQwYVa8.js} +3 -3
- package/dist/{body-text-QcXok_SI.js → body-text-DQhcmqdY.js} +8 -4
- package/dist/{boundary-BM8a_P6E.js → boundary-BV3O1eud.js} +8 -2
- package/dist/{boundary-BmHxVH1J.d.ts → boundary-C9ck-3uK.d.ts} +13 -4
- package/dist/{budget-NbEtbJC_.js → budget-BELja5A9.js} +6 -3
- package/dist/{budget-JqcRqyhK.d.ts → budget-hYsPz_yE.d.ts} +6 -3
- package/dist/{build-instance-DxE7czo9.js → build-instance-BWXqwQYU.js} +3 -3
- package/dist/{capability-L7NnfhiE.js → capability-BqX94r07.js} +31 -25
- package/dist/{capability-D4UC9TTW.d.ts → capability-Di9tiUvi.d.ts} +41 -29
- package/dist/{casbin-BHijLuHY.js → casbin-B7_yS-oo.js} +2 -2
- package/dist/{casbin-BW9pS47J.js → casbin-bHyIxTNQ.js} +16 -8
- package/dist/{casl-CmJlgziS.js → casl-C4OINZHI.js} +2 -2
- package/dist/{casl-UbI8v-Wq.js → casl-CHHoCldP.js} +19 -10
- package/dist/catalog/index.d.ts +51 -30
- package/dist/catalog/index.js +18 -15
- package/dist/{catalog-D69WhFii.js → catalog-CGlSwU6j.js} +20 -19
- package/dist/catalog-D3oS2GH3.js +1 -0
- package/dist/{catalog-BaMQfQ6Y.js → catalog-amPDr0JQ.js} +3 -3
- package/dist/{catalog-doc-CV9s6B1S.js → catalog-doc-DjMKzJp9.js} +28 -14
- package/dist/{catalog-fingerprint-C144oW4M.js → catalog-fingerprint-e6aCWosn.js} +18 -14
- package/dist/catalog-operations-DeHTrJSV.js +60 -0
- package/dist/{challenge-nGWma08S.js → challenge-DImNcR7B.js} +48 -27
- package/dist/chat/index.d.ts +1 -1
- package/dist/chat/index.js +13 -10
- package/dist/chat-sdk/index.d.ts +44 -26
- package/dist/chat-sdk/index.js +17 -17
- package/dist/{checks-BC_0mPIq.js → checks-CGkP3Z7A.js} +4 -1
- package/dist/{claims-map-7oQ3ue4X.js → claims-map-CKkoAAYF.js} +5 -2
- package/dist/{claims-map-Ca-QX8C6.d.ts → claims-map-D1Pb5oRq.d.ts} +8 -5
- package/dist/claude-agent/index.d.ts +6 -6
- package/dist/claude-agent/index.js +6 -3
- package/dist/clerk/index.d.ts +11 -7
- package/dist/clerk/index.js +6 -6
- package/dist/cli/bin.js +4 -4
- package/dist/cli/index.d.ts +82 -7
- package/dist/cli/index.js +6 -6
- package/dist/{clients-C7zLFuWT.d.ts → clients-C_NOET3z.d.ts} +5 -5
- package/dist/{clients-DjU5ABMy.js → clients-DYr3U86j.js} +3 -3
- package/dist/cloud/index.d.ts +84 -52
- package/dist/cloud/index.js +53 -39
- package/dist/{cloud-CO8pYtwr.js → cloud-3kWfjnYy.js} +4 -5
- package/dist/{codemod-BP6n8N9L.js → codemod-Bv5i-Mzo.js} +523 -201
- package/dist/{codemod-i4N2BhDc.js → codemod-D9Aiii1r.js} +3 -4
- package/dist/{collect-DNm3oKOk.js → collect-B80GYEot.js} +4 -5
- package/dist/collect-D-eroIfV.js +1 -0
- package/dist/{collect-BaWeMjwV.js → collect-WCl8cJQV.js} +26 -63
- package/dist/{compare-pfyVnBjE.js → compare-DTfyUunF.js} +2 -2
- package/dist/compile/index.d.ts +2 -2
- package/dist/compile/index.js +1 -1
- package/dist/{compile-COM2VKuN.d.ts → compile-BEklRUYo.d.ts} +36 -12
- package/dist/{compile-BAEO5bOk.js → compile-EzEMB-7v.js} +77 -33
- package/dist/{completion-BNdVf7X2.js → completion-_bc0OUQ-.js} +17 -8
- package/dist/config-BwPBfN0t.js +108 -0
- package/dist/{config-DGZzMV1B.js → config-D5XrLWpk.js} +2 -2
- package/dist/{config-report-Cm7UITNA.js → config-report-BmWIskD7.js} +9 -6
- package/dist/config-shape-ykV0Vm2n.js +134 -0
- package/dist/{connection-DjhIJSs2.js → connection-B72dg5Q2.js} +23 -22
- package/dist/{connector-schema-_VCSsdtD.js → connector-schema-CYLQNMYq.js} +3 -2
- package/dist/{context--uM9V3Ui.js → context-BnIzxTNE.js} +4 -3
- package/dist/convex/index.d.ts +13 -7
- package/dist/convex/index.js +9 -6
- package/dist/{core-CQkE8Esr.d.ts → core-CFepFiDP.d.ts} +49 -22
- package/dist/{core-B5-w6Kw9.js → core-DzVINFbU.js} +26 -20
- package/dist/{create-Cb86Z8Im.js → create-6EwRQlig.js} +10 -7
- package/dist/{create-DJrlhEp9.js → create-BLPKnJKa.js} +35 -25
- package/dist/{create-UTnUVETj.d.ts → create-BPUopdfL.d.ts} +70 -37
- package/dist/{create-QHuuPw3q.d.ts → create-BamXmeob.d.ts} +37 -29
- package/dist/{create-B2-CQqCI.d.ts → create-DBvUsgzK.d.ts} +49 -28
- package/dist/{credential-CIM7wHwA.js → credential-CyyyvCsL.js} +41 -38
- package/dist/{credentials-BpuTwd7a.js → credentials-CdDxp7jN.js} +6 -6
- package/dist/{deciding-columns-DRo2QM6E.js → deciding-columns-NB4wcyBf.js} +2 -2
- package/dist/{delegation-C5rOdTp5.js → delegation-CDB6_keF.js} +31 -22
- package/dist/delivery/index.d.ts +4 -4
- package/dist/delivery/index.js +5 -5
- package/dist/{delivery-rwOKLWRm.js → delivery-BupfvJIV.js} +34 -22
- package/dist/{delivery-event-xX4obB8F.js → delivery-event-JioK5YbS.js} +6 -6
- package/dist/denied-text-DHldhVUv.d.ts +22 -0
- package/dist/{describe-DZlnEtLy.js → describe-Bb4hGK5d.js} +5 -5
- package/dist/{describe-O0SwYIK8.d.ts → describe-BbFPBSms.d.ts} +5 -5
- package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
- package/dist/{diff-Btr1c1Ow.js → diff-BwR1JdP2.js} +2 -2
- package/dist/{diff-DzT-xD13.js → diff-CQegtBAo.js} +22 -13
- package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
- package/dist/{doctor-BU1szn63.js → doctor-ClRVAtXQ.js} +287 -135
- package/dist/{doctor-BoK_y0KO.js → doctor-LPMYjSqO.js} +4 -4
- package/dist/drizzle/index.d.ts +33 -19
- package/dist/drizzle/index.js +17 -9
- package/dist/elysia/index.d.ts +17 -11
- package/dist/elysia/index.js +5 -5
- package/dist/{errors-BKy0EfhN.js → errors-B6R_lg2a.js} +13 -4
- package/dist/{errors-B_Qg9D3e.d.ts → errors-BIM4MFsJ.d.ts} +22 -6
- package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
- package/dist/{errors-DpP_U6Bf.js → errors-Vpu6rKHl.js} +13 -10
- package/dist/{evaluate-B_oqFbWC.js → evaluate-BAmf_AQd.js} +153 -82
- package/dist/{evaluations-BCddEOfO.d.ts → evaluations-DOWuBpWv.d.ts} +11 -5
- package/dist/{evaluations-DReoiVBw.js → evaluations-IBceAeKT.js} +40 -19
- package/dist/eve/index.d.ts +9 -6
- package/dist/eve/index.js +4 -4
- package/dist/{event-time-CsegxXxB.js → event-time-BGy48400.js} +8 -4
- package/dist/{expiry-D4_YKRKD.js → expiry-6XByK0dm.js} +8 -5
- package/dist/express/index.d.ts +9 -6
- package/dist/express/index.js +9 -6
- package/dist/fastify/index.d.ts +16 -10
- package/dist/fastify/index.js +8 -5
- package/dist/{fetch-adapter-CuhyYwC1.d.ts → fetch-adapter-BIbBAtPZ.d.ts} +9 -6
- package/dist/{fetch-adapter-De-u6vhJ.js → fetch-adapter-dPTgJVHd.js} +14 -11
- package/dist/fields-D0vUI6dq.js +498 -0
- package/dist/{files-acUbNwWt.js → files-B3AA05f1.js} +8 -5
- package/dist/{files-D_JIzUrP.js → files-BSjrtIHw.js} +11 -4
- package/dist/{fixtures-BTMW6zgU.js → fixtures-A1_sp_tR.js} +15 -6
- package/dist/{flags-aaeRAdiD.js → flags-DXjoTVbS.js} +2 -2
- package/dist/{freeze-CrU8nQeX.js → freeze-jjan0lCv.js} +4 -1
- package/dist/{from-snapshot-Bz469dIh.js → from-snapshot-DCakWRsr.js} +18 -15
- package/dist/gen-BFfzZSLH.js +58 -0
- package/dist/gen-BtfFWGbz.js +827 -0
- package/dist/{generate-3FNO5P5Q.js → generate-CRVV5V7l.js} +14 -8
- package/dist/generate-CezbCaTI.js +275 -0
- package/dist/{grantee-BrRANrpT.js → grantee-Dke-9rd1.js} +4 -4
- package/dist/{grantee-conditions-C6P1Tvol.js → grantee-conditions-BrYPe-w0.js} +12 -12
- package/dist/{grantee-match-0RtHWQDx.js → grantee-match-7RZZvoT_.js} +12 -6
- package/dist/{graph-sql-B-dsAT6j.d.ts → graph-sql-BwFC4Qjs.d.ts} +3 -3
- package/dist/h3/index.d.ts +10 -7
- package/dist/h3/index.js +3 -3
- package/dist/headers-B9jQxjtW.d.ts +10 -0
- package/dist/{helpers-DY3vXuGs.js → helpers-DJicaG6f.js} +40 -28
- package/dist/hono/index.d.ts +16 -10
- package/dist/hono/index.js +5 -5
- package/dist/{hosted-XBgU6RGT.js → hosted-D0IzESu_.js} +42 -21
- package/dist/{hosted-BmjzxQhp.d.ts → hosted-DVxlLZMe.d.ts} +33 -21
- package/dist/{http-ujKm0JXE.js → http-DH94eh6f.js} +4 -4
- package/dist/{http-BBoKefeS.js → http-DKLXrFGk.js} +13 -7
- package/dist/{http-Ca3Sr5x1.js → http-DOL33cO0.js} +11 -8
- package/dist/{import-DB2EG_iy.js → import-ACkOrv6g.js} +6 -6
- package/dist/{import-Bz0GefWg.js → import-CST57XLp.js} +64 -51
- package/dist/{index-CMiPH2Tv.d.ts → index-BinlXeU-.d.ts} +64 -37
- package/dist/{index-BSfRl0hZ.d.ts → index-CV-7DWeD.d.ts} +64 -52
- package/dist/{index-BE8y3moU.d.ts → index-DJwEgYzA.d.ts} +127 -82
- package/dist/{index-DH9DUDEM.d.ts → index-Dj2qF9VC.d.ts} +54 -30
- package/dist/{index-BTkwrK7v.d.ts → index-vYjMrXyK.d.ts} +336 -173
- package/dist/{index-DLwcuCN_.d.ts → index-ymept53A.d.ts} +51 -30
- package/dist/index.d.ts +22 -22
- package/dist/index.js +34 -34
- package/dist/{init-B-4t1NzC.js → init-BjuFDYT1.js} +10 -10
- package/dist/{init-5TXNji88.js → init-txYTuW9u.js} +5 -5
- package/dist/{instance-options-CU0YQCLH.d.ts → instance-options-CoHn-0e8.d.ts} +4 -4
- package/dist/{instance-snapshot-CjcwnEiV.js → instance-snapshot-DuWf1cT3.js} +86 -61
- package/dist/{instant-BluqDvyS.js → instant-DK3Iz83e.js} +2 -2
- package/dist/{internals-Dk8A8fX3.js → internals-B3IgHrvo.js} +6 -3
- package/dist/{json-schema-B-vAwlde.js → json-schema-BPGa-RjQ.js} +9 -3
- package/dist/{json-schema-CN_iLFH2.d.ts → json-schema-BfXgnRNT.d.ts} +4 -4
- package/dist/jwt/index.d.ts +57 -27
- package/dist/jwt/index.js +24 -21
- package/dist/{kernel-DVExUwkp.js → kernel-qv4cr9w8.js} +32 -23
- package/dist/kysely/index.d.ts +49 -33
- package/dist/kysely/index.js +9 -7
- package/dist/{live-options-BaAFCIiu.js → live-options-BBIT68le.js} +2 -2
- package/dist/{load-DxroEzH1.js → load-DjSU5KXO.js} +6 -6
- package/dist/load-Dm0pSYH3.js +1 -0
- package/dist/{login-ClSJh5t5.js → login-CfImTJGb.js} +4 -4
- package/dist/{login-WC9HPJpU.js → login-CgfCTO3F.js} +16 -9
- package/dist/{manifest-Dv6q4i5s.js → manifest-B2QPh19C.js} +49 -38
- package/dist/{manifest-BVhExYhw.d.ts → manifest-CzzWtnAb.d.ts} +126 -31
- package/dist/{manifest-schema-Cv492Qev.js → manifest-schema-2r37XRhD.js} +44 -3
- package/dist/{manifest-B79YuF2T.js → manifest-wg8WkkpD.js} +6 -6
- package/dist/{map-claims-etGIS_Dv.js → map-claims-C-nv08_n.js} +16 -9
- package/dist/{map-error-BQGyDm_M.js → map-error-pasIGqMT.js} +7 -7
- package/dist/{markers-C6joDI3o.js → markers-BeHZ4x9Q.js} +20 -5
- package/dist/mcp/index.d.ts +114 -61
- package/dist/mcp/index.js +70 -40
- package/dist/{migrate-Dodel0IJ.js → migrate-B7oP_sQU.js} +35 -17
- package/dist/module-values-BJTBdo6y.js +107 -0
- package/dist/nest/index.d.ts +23 -13
- package/dist/nest/index.js +18 -11
- package/dist/next/client.d.ts +5 -2
- package/dist/next/client.js +1 -1
- package/dist/next/index.d.ts +79 -26
- package/dist/next/index.js +121 -10
- package/dist/next/plugin.d.ts +1 -1
- package/dist/next/plugin.js +4 -3
- package/dist/node/index.d.ts +5 -5
- package/dist/node/index.js +3 -3
- package/dist/{ocsf-BFp-PZZA.js → ocsf-TcjRBgIs.js} +15 -5
- package/dist/openai/index.d.ts +13 -7
- package/dist/openai/index.js +3 -3
- package/dist/openapi/index.d.ts +51 -30
- package/dist/openapi/index.js +2 -2
- package/dist/{openapi-ztVaux6j.js → openapi-BGeuunWC.js} +23 -14
- package/dist/{openapi-DMocl1bh.js → openapi-BIpw3Mb7.js} +4 -5
- package/dist/{openapi-Ddb4628T.js → openapi-BOsx0xn9.js} +33 -18
- package/dist/{operation-findings-kRcEp8lE.js → operation-findings-CXtFzlKJ.js} +3 -3
- package/dist/{operations-BNLes61x.d.ts → operations-Ci_rT6Uo.d.ts} +10 -7
- package/dist/orpc/index.d.ts +68 -14
- package/dist/orpc/index.js +62 -13
- package/dist/otel/index.d.ts +7 -4
- package/dist/otel/index.js +8 -5
- package/dist/{output-DgSDLrta.js → output-DV5dwOTs.js} +9 -5
- package/dist/output-files-BHOIlrfD.js +1 -0
- package/dist/{output-files-CCMdcFWb.js → output-files-BIQ_9pIs.js} +29 -17
- package/dist/ownership-DA5YdYTm.js +1059 -0
- package/dist/{parse-Ddhz2xf4.js → parse-1_ZheTW5.js} +16 -13
- package/dist/parse-local-manifest-CCmbhnxP.d.ts +10 -0
- package/dist/{parse-local-manifest-T1Q8X3A2.js → parse-local-manifest-DEiCF4ah.js} +19 -7
- package/dist/{parse-request-D_tUXG6M.js → parse-request-CwCZpyjV.js} +7 -8
- package/dist/{paths-DXSHAMIa.js → paths-CUvURzHp.js} +4 -1
- package/dist/pdp/index.d.ts +9 -6
- package/dist/pdp/index.js +20 -13
- package/dist/{peer-DOzzMfZL.js → peer-C9LvBCcb.js} +1 -1
- package/dist/{peer-12Q5I_RH.js → peer-Q0fuZ6hx.js} +9 -3
- package/dist/{permdock-BfWEeMqk.js → permdock-BvjivVb9.js} +200 -140
- package/dist/{permdock-Dco6dyCK.d.ts → permdock-CprAPN3w.d.ts} +260 -129
- package/dist/{permission-registry-DpPtSKNZ.js → permission-registry-B8tYxPIt.js} +23 -10
- package/dist/{permission-types-DhNEmoRG.d.ts → permission-types-CAY-GU7e.d.ts} +127 -41
- package/dist/{permissions-CoqCOfJ3.d.ts → permissions-Bx6UI8n1.d.ts} +6 -3
- package/dist/{permissions-CyH2MV_B.js → permissions-CVXmRILq.js} +3 -3
- package/dist/{permissions-DArULThq.js → permissions-CYcHj_w7.js} +8 -5
- package/dist/pg-DQTqRrou.js +60 -0
- package/dist/{pins-8ILTftC9.js → pins-nqarl3oE.js} +4 -1
- package/dist/{pkce-5h8NgMQJ.js → pkce-CnmmYqUZ.js} +1 -1
- package/dist/{policy-B7dg_yzu.d.ts → policy-BycVKnXv.d.ts} +5 -5
- package/dist/{policy-DaJy4nK4.js → policy-CLQ8__GF.js} +43 -23
- package/dist/{policy-from-catalog-DFWYkNdu.js → policy-from-catalog-CU3An8uP.js} +28 -25
- package/dist/{policy-module-CTlwMvLI.js → policy-module-xym9fnSq.js} +12 -6
- package/dist/{policy-types-B-F-qAZk.d.ts → policy-types-DGIO_gxq.d.ts} +782 -357
- package/dist/{postgres-store-BL9M_CA1.js → postgres-store-DcyrPS-r.js} +43 -16
- package/dist/{postgrest-r5faDIzD.js → postgrest-5Dr3W64L.js} +84 -86
- package/dist/{postgrest-CYacM_u7.d.ts → postgrest-D5nUGm-c.d.ts} +55 -35
- package/dist/powersync-B701tvhE.js +1 -0
- package/dist/{powersync-13odBwiM.js → powersync-Bg8u-JcR.js} +3 -3
- package/dist/{powersync-53ryOZip.js → powersync-CJrT1DSc.js} +127 -69
- package/dist/preset/index.d.ts +38 -28
- package/dist/preset/index.js +1 -1
- package/dist/{preset-CHTbd-DQ.js → preset-BjLzeFpp.js} +56 -32
- package/dist/{principal-source-pHneukrx.js → principal-source-C6N60GtM.js} +10 -10
- package/dist/prisma/index.d.ts +69 -41
- package/dist/prisma/index.js +21 -17
- package/dist/{problem-CTviyH5L.js → problem-BVLHFK33.js} +41 -21
- package/dist/{problem-details-cn5X30gZ.js → problem-details-CLDgX1KV.js} +13 -4
- package/dist/{problem-types-CJ2325SZ.js → problem-types-DSsRfONQ.js} +4 -1
- package/dist/{prompt-DwtVemER.js → prompt-BYc6drYW.js} +4 -1
- package/dist/protected-action-D8x73IGm.d.ts +58 -0
- package/dist/protected-action-DUYqb-Ma.js +80 -0
- package/dist/{protected-DXE3cQYg.js → protected-action-QEA8arRB.js} +48 -14
- package/dist/{provider-BQsTYYy0.js → provider-C55OGXJ7.js} +5 -4
- package/dist/{provider-Csk-THAn.d.ts → provider-DfLeek9O.d.ts} +1 -1
- package/dist/{provider-store-IgqQipCO.js → provider-store-CaTv00tr.js} +13 -9
- package/dist/{pull-CN5OLxrF.js → pull-2nJr0qg_.js} +12 -11
- package/dist/pull-C3EEGzSw.js +1 -0
- package/dist/{push-tVdG8dUL.js → push-Bn-lMEmI.js} +19 -13
- package/dist/{pushed-policy-CmYeSQqq.js → pushed-policy-CDuOL2de.js} +10 -7
- package/dist/{pushed-policy-BbcY9r_4.d.ts → pushed-policy-CryQheKq.d.ts} +12 -6
- package/dist/react/index.d.ts +9 -8
- package/dist/react/index.js +7 -6
- package/dist/react/provider-client.d.ts +1 -1
- package/dist/react/provider-client.js +1 -1
- package/dist/react-native/index.d.ts +94 -55
- package/dist/react-native/index.js +200 -61
- package/dist/{refs-CNJBiTFo.js → refs-C8BKxc_e.js} +2 -2
- package/dist/{relation-walk-3OyDBF0S.js → relation-walk-DK_gkgL7.js} +12 -9
- package/dist/{relations-BnCWnJGI.js → relations-BxvRvDHK.js} +3 -3
- package/dist/{replay-Du1tJjG7.js → replay-BU09ad4L.js} +1 -1
- package/dist/{replay-DCDD_ZfL.d.ts → replay-Bs9Df2fQ.d.ts} +1 -1
- package/dist/{request-context-BykKLmyE.js → request-context-Duzdf0cd.js} +8 -8
- package/dist/{request-schema-CMreVuFM.js → request-schema-DhX7UbfQ.js} +4 -1
- package/dist/resend/index.d.ts +34 -28
- package/dist/resend/index.js +29 -29
- package/dist/resolve-names-ConCSj1y.js +201 -0
- package/dist/{resource-relations-D_jw0BFx.js → resource-relations-8-pCScBO.js} +18 -9
- package/dist/{retire-Wj6dkyDE.js → retire-B2xffQgY.js} +15 -6
- package/dist/{revocations-R07lFBnX.d.ts → revocations-BaUXHM1N.d.ts} +6 -3
- package/dist/{rls-Ck_PocSp.js → rls-Ba9wN0SP.js} +13 -6
- package/dist/{rls-CxBZb4rZ.js → rls-Cx0dtsB7.js} +310 -128
- package/dist/{role-builder-C1VJzvcr.js → role-builder-BK2-T6oD.js} +41 -20
- package/dist/{row-conditions-h2HythXQ.js → row-conditions-BAGHOmVq.js} +4 -3
- package/dist/{rpc-Bk1bE-ch.js → rpc-vHIwyXCp.js} +8 -5
- package/dist/run-Ck22anC2.js +1 -0
- package/dist/{run-uLD2aWuO.js → run-PbRlXTfh.js} +26 -23
- package/dist/{run-ticket-BpNi7BCi.d.ts → run-ticket-B2o2Kxz8.d.ts} +29 -14
- package/dist/{run-ticket-B5d_63Ma.js → run-ticket-Dv7aF7Dk.js} +9 -9
- package/dist/{runtime-Vif3_-zf.js → runtime-BGnrOkVH.js} +5 -2
- package/dist/{saas-Az_Kz-4D.js → saas-DK4V-3Is.js} +42 -29
- package/dist/{scan-DSljDE1Y.js → scan-CRTj6fke.js} +1 -1
- package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
- package/dist/{schema-gIcCx7zM.js → schema-BTsE1WRT.js} +8 -4
- package/dist/scim/index.d.ts +2 -2
- package/dist/scim/index.js +2 -2
- package/dist/{scim-C7JYhySg.js → scim-D8YupzX1.js} +2 -2
- package/dist/{scim-YNieBO1U.js → scim-jJBJ7g1Z.js} +33 -15
- package/dist/{scopes-BHsc-wp-.js → scopes-0Up_UA2t.js} +41 -23
- package/dist/server/index.d.ts +11 -11
- package/dist/server/index.js +12 -12
- package/dist/{server-Bnga6I50.js → server-3cVlTLde.js} +31 -31
- package/dist/{server-types-C4gZUEZy.d.ts → server-types-CyRN0-Cd.d.ts} +88 -46
- package/dist/{sha256-D9ihqmvd.js → sha256-C-4WXKIu.js} +4 -3
- package/dist/{shared-fMKOv8hP.js → shared-Afctg7B0.js} +65 -32
- package/dist/{shared-C8LjUdVU.js → shared-l0oGGetg.js} +9 -6
- package/dist/{signals-D3NcTKUS.js → signals-B1vHR3fN.js} +2 -2
- package/dist/{sink-Cp_Eot9W.d.ts → sink-B5zoUW_O.d.ts} +44 -20
- package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
- package/dist/{skills-g_3BS9NC.js → skills-C9uKfSF5.js} +3 -3
- package/dist/{skills-Dcjw9_1C.js → skills-CQQcuGBi.js} +12 -8
- package/dist/{snapshot-CbGmYiJx.js → snapshot-CXlzi69u.js} +21 -18
- package/dist/{snapshot-cache-Pahd3IYJ.d.ts → snapshot-cache-BjAWkchD.d.ts} +21 -12
- package/dist/{snapshot-cache-DT2Kx1F8.js → snapshot-cache-Bx_4xC_6.js} +14 -11
- package/dist/solid/index.d.ts +55 -16
- package/dist/solid/index.js +46 -12
- package/dist/solid-start/index.d.ts +30 -12
- package/dist/solid-start/index.js +3 -3
- package/dist/{sources-B-zYB4GS.js → sources-CMAM-2A3.js} +46 -27
- package/dist/{sources-DEEuGb8S.d.ts → sources-CWG32C0G.d.ts} +126 -53
- package/dist/{sql-B96movIM.js → sql-0WjxIp9g.js} +28 -7
- package/dist/{sql-CDEPCA0g.d.ts → sql-B80DFdpG.d.ts} +2 -2
- package/dist/{src-DLFrtrrC.js → src-C_pi2Rnh.js} +292 -101
- package/dist/ssf/index.d.ts +3 -3
- package/dist/ssf/index.js +47 -35
- package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
- package/dist/{standard-webhooks-B_qRg0ws.d.ts → standard-webhooks-DOYEuOLx.d.ts} +7 -7
- package/dist/{store-DSP9oGvh.js → store-RNFvaJJv.js} +32 -26
- package/dist/{store-options-B_poyYvg.js → store-options-Dil3lraY.js} +105 -15
- package/dist/stores-DZJvxFIZ.d.ts +59 -0
- package/dist/{stores-BqEuHC05.js → stores-DxZWDXCs.js} +42 -5
- package/dist/{stream-2Vwhl7Er.d.ts → stream-9y9qw51m.d.ts} +4 -3
- package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
- package/dist/{style-Ds1gNm77.js → style-DblOtSga.js} +1 -1
- package/dist/{style-Cqo7-73x.js → style-Ds11Hmk4.js} +2 -1
- package/dist/{subject-settings-CkEwrw3W.js → subject-settings-8sH5HlII.js} +8 -4
- package/dist/{row-check-Dt35czLy.d.ts → subject-settings-vNW8qmUH.d.ts} +30 -18
- package/dist/supabase/index.d.ts +48 -38
- package/dist/supabase/index.js +5 -5
- package/dist/supabase/middleware.d.ts +19 -13
- package/dist/supabase/middleware.js +7 -7
- package/dist/{supabase--0aJdLEd.js → supabase-DnMMg5Fn.js} +79 -35
- package/dist/{supabase-Bqp7iIY2.js → supabase-SBs3MYUE.js} +3 -3
- package/dist/supabase-hook-C0FyEACZ.js +1 -0
- package/dist/{supabase-hook-Dg0SrQWR.js → supabase-hook-CrgU06WH.js} +175 -196
- package/dist/{supautils-MESd81bF.js → supautils-ByezN3b8.js} +385 -219
- package/dist/{support-session-Cna49-3f.js → support-session-BsmPCbz8.js} +21 -21
- package/dist/svelte/PermissionBoundary.svelte +2 -6
- package/dist/svelte/Protected.svelte +2 -8
- package/dist/svelte/index.d.ts +9 -8
- package/dist/svelte/index.js +10 -9
- package/dist/svelte/runtime.d.ts +4 -4
- package/dist/svelte/runtime.js +4 -4
- package/dist/svelte/source.d.ts +9 -8
- package/dist/svelte/source.js +6 -5
- package/dist/sveltekit/index.d.ts +30 -12
- package/dist/sveltekit/index.js +2 -2
- package/dist/{ownership-Z2LpxsGa.js → tables-BqrxBCir.js} +641 -1104
- package/dist/tanstack-start/index.d.ts +22 -10
- package/dist/tanstack-start/index.js +2 -2
- package/dist/{target-Bw37TFNA.js → target-qdEAnnhU.js} +6 -6
- package/dist/{tenancy-CmeBQ6Nv.js → tenancy-5d1zVBvK.js} +25 -19
- package/dist/terminal/index.d.ts +23 -14
- package/dist/terminal/index.js +17 -20
- package/dist/testing/core.d.ts +1 -1
- package/dist/testing/core.js +1 -1
- package/dist/testing/fixtures/index.d.ts +8 -5
- package/dist/testing/fixtures/index.js +78 -17
- package/dist/testing/index.d.ts +225 -141
- package/dist/testing/index.js +352 -234
- package/dist/testing/saas/index.d.ts +43 -27
- 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 → text-diff-BtfSmdUo.js} +2 -2
- package/dist/{thenable-yD7SabqG.js → thenable-BNSM1U2R.js} +12 -3
- package/dist/{time-DkWjdL98.js → time-nR1JesoH.js} +32 -8
- package/dist/{token-2qYDvXz2.js → token-DC9EQiet.js} +14 -12
- package/dist/{tool-refusal-reAhIzdl.js → tool-refusal-Qpjs_W6M.js} +5 -2
- package/dist/trpc/index.d.ts +11 -8
- package/dist/trpc/index.js +15 -9
- package/dist/type-helpers-c7Xo_2Cu.d.ts +50 -0
- package/dist/{types-CfiKC5aN.d.ts → types-B2efzoSX.d.ts} +14 -11
- package/dist/{types-CIeZcG8v.d.ts → types-B6ExllNo.d.ts} +2 -2
- package/dist/{types-DBHftjgS.d.ts → types-BB-zWDcR.d.ts} +45 -33
- package/dist/{types-BfVmNJO5.d.ts → types-BMVDHvI0.d.ts} +128 -50
- package/dist/{types-DXmwu78Z.d.ts → types-CEinc15V.d.ts} +31 -14
- package/dist/{types-g7Oy6Zg4.d.ts → types-CN0LsqbK.d.ts} +47 -24
- package/dist/{types-CeIscIKp.d.ts → types-CWBsAwqn.d.ts} +23 -12
- package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
- package/dist/{types-BWZybqs9.d.ts → types-CzOeVvcC.d.ts} +384 -203
- package/dist/{types-DC44-hqb.d.ts → types-DLvhVm1r.d.ts} +59 -32
- package/dist/{types-D3A19w4A.d.ts → types-DlelvQk4.d.ts} +22 -13
- package/dist/{types-cTos-H7p.d.ts → types-DsHGPtkR.d.ts} +68 -32
- package/dist/{types-BXMYB7BY.d.ts → types-ZzRGoViD.d.ts} +77 -24
- package/dist/{types-CQVEQawv.d.ts → types-rCRV4Ge-.d.ts} +24 -14
- package/dist/types-tQB2CEnY.d.ts +262 -0
- package/dist/unplugin/index.d.ts +1 -1
- package/dist/unplugin/index.js +2 -2
- package/dist/usage-0hjZPIRX.js +1 -0
- package/dist/{usage-Bybmck7f.js → usage-B9EtHWLa.js} +50 -26
- package/dist/{usage-CDaLXCfL.js → usage-CBzgwfIs.js} +2 -2
- package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
- package/dist/{validation-error-CQpoquwj.d.ts → validation-error-uvp-kyfO.d.ts} +5 -2
- package/dist/{validity-CZ7-y0Cj.js → validity-Buc7w8E9.js} +13 -10
- package/dist/{verifier-DHuh-okk.js → verifier-DUV6pLqZ.js} +10 -4
- package/dist/{verify-pe8rL_Qw.js → verify-DlUcTDBz.js} +148 -487
- package/dist/version-DMQ0dnN5.js +48 -0
- package/dist/version-DizhmD72.js +1 -0
- package/dist/{views-BB8E9dTP.js → views-CD8wuL4Z.js} +19 -6
- package/dist/{vocabulary-Bg3eeT2H.d.ts → vocabulary-DEJ5j4mR.d.ts} +7 -4
- package/dist/vue/index.d.ts +71 -22
- package/dist/vue/index.js +50 -13
- package/dist/{waiter-DwEyouan.d.ts → waiter-CqUKX6CY.d.ts} +13 -10
- package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
- package/dist/{watch-C-4VmFlL.js → watch-BFDKqmUa.js} +8 -8
- package/dist/watch-ClLuO2TL.js +1 -0
- package/dist/webmcp/index.d.ts +11 -11
- package/dist/webmcp/index.js +8 -5
- package/dist/{where-scope-wq2coopv.js → where-scope-DlCdCM_8.js} +24 -18
- package/dist/{who-can-BwNsI_Js.js → who-can-BoDJm0Nc.js} +23 -20
- package/dist/workflow/index.d.ts +3 -3
- package/dist/workflow/index.js +13 -13
- package/dist/workflow-sdk/index.d.ts +19 -13
- package/dist/workflow-sdk/index.js +6 -6
- package/dist/{wrap-CiSc_KCq.js → wrap-B2wziJI_.js} +4 -4
- package/dist/{wrap-B6R0cMRL.d.ts → wrap-DxXB54Wu.d.ts} +8 -5
- package/package.json +8 -8
- package/schemas/catalog-v1.json +3 -0
- package/schemas/supabase-manifest-v1.json +33 -1
- package/skills/permdock-credentials/references/tokens-keys-links.md +8 -6
- package/skills/permdock-data/references/queries-and-rls.md +2 -1
- package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -2
- package/skills/permdock-wire/references/adapters.md +16 -23
- package/dist/catalog-BCCjSAdH.js +0 -1
- package/dist/collect-k_Dulxr5.js +0 -1
- package/dist/config-CoQHDrDi.js +0 -166
- package/dist/denied-text-D4qkEtFz.d.ts +0 -19
- package/dist/fields-ClcQLrVc.js +0 -238
- package/dist/generate-CNU1pIOo.js +0 -171
- package/dist/headers-BIjfMaoC.js +0 -8
- package/dist/headers-CIbDTUTK.d.ts +0 -7
- package/dist/load-DrMHXzgN.js +0 -1
- package/dist/output-files-DPAY7-GX.js +0 -1
- package/dist/package-root-Dk_ETdkp.js +0 -31
- package/dist/parse-local-manifest-e4mdwAKd.d.ts +0 -10
- package/dist/policies-B2lZIurj.js +0 -295
- package/dist/powersync-CExtTLyA.js +0 -1
- package/dist/problem-details-Tcfmj3bV.d.ts +0 -7
- package/dist/protected-BwZYL1X_.d.ts +0 -39
- package/dist/pull-Cty6Ovyu.js +0 -1
- package/dist/run-Bz7DXGEv.js +0 -1
- package/dist/stores-BAZwSYZA.d.ts +0 -31
- package/dist/supabase-hook-DJxC4PoP.js +0 -1
- package/dist/types-CKV71kKh.d.ts +0 -172
- package/dist/usage-y-kBNdqs.js +0 -1
- package/dist/version-CEbQ5UeM.js +0 -18
- package/dist/version-DXkYUISx.js +0 -1
- package/dist/watch-Bd9mx3rd.js +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { n as freezeDeep } from "./freeze-
|
|
2
|
-
import { n as PermDockValidationError } from "./validation-error-
|
|
3
|
-
import { n as copyJson, t as checkSchema } from "./json-schema-
|
|
4
|
-
import { t as supabaseManifestSchema } from "./manifest-schema-
|
|
1
|
+
import { n as freezeDeep } from "./freeze-jjan0lCv.js";
|
|
2
|
+
import { n as PermDockValidationError } from "./validation-error-CYg2kJEw.js";
|
|
3
|
+
import { n as copyJson, t as checkSchema } from "./json-schema-BPGa-RjQ.js";
|
|
4
|
+
import { t as supabaseManifestSchema } from "./manifest-schema-2r37XRhD.js";
|
|
5
5
|
//#region src/supabase/manifest.ts
|
|
6
6
|
/** Whether the manifest describes a token hook. */
|
|
7
7
|
function hasTokenHook(manifest) {
|
|
@@ -10,8 +10,8 @@ function hasTokenHook(manifest) {
|
|
|
10
10
|
/**
|
|
11
11
|
* Reads a `permdock.manifest.json` document (parsed, or the JSON text) and
|
|
12
12
|
* validates it against `schemas/supabase-manifest-v1.json`. Returns a
|
|
13
|
-
* deep-frozen copy built from own keys; throws `PermDockValidationError`
|
|
14
|
-
*
|
|
13
|
+
* deep-frozen copy built from own keys; throws `PermDockValidationError` with
|
|
14
|
+
* every issue, so a manifest of another major is refused.
|
|
15
15
|
*/
|
|
16
16
|
function parseSupabaseManifest(json) {
|
|
17
17
|
const issues = [];
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { r as isRecord, t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { n as freezeDeep } from "./freeze-
|
|
3
|
-
import { n as isForbiddenKey, o as readPath } from "./paths-
|
|
4
|
-
import { n as expirySeconds } from "./expiry-
|
|
5
|
-
import { r as validateRecord } from "./thenable-
|
|
2
|
+
import { n as freezeDeep } from "./freeze-jjan0lCv.js";
|
|
3
|
+
import { n as isForbiddenKey, o as readPath } from "./paths-CUvURzHp.js";
|
|
4
|
+
import { n as expirySeconds } from "./expiry-6XByK0dm.js";
|
|
5
|
+
import { r as validateRecord } from "./thenable-BNSM1U2R.js";
|
|
6
6
|
import { t as anonymousSubject } from "./subject-BGoM5o8B.js";
|
|
7
|
-
import { t as readClaim } from "./claims-map-
|
|
8
|
-
import { t as clientNameOf } from "./clients-
|
|
7
|
+
import { t as readClaim } from "./claims-map-CKkoAAYF.js";
|
|
8
|
+
import { t as clientNameOf } from "./clients-DYr3U86j.js";
|
|
9
9
|
//#region src/jwt/map-claims.ts
|
|
10
10
|
/** OpenID Connect Core section 5.1: profile data the provider owns. */
|
|
11
11
|
const PROFILE_CLAIMS = [
|
|
@@ -180,7 +180,10 @@ function membershipsFromClaim(value) {
|
|
|
180
180
|
});
|
|
181
181
|
return out;
|
|
182
182
|
}
|
|
183
|
-
/**
|
|
183
|
+
/**
|
|
184
|
+
* Zitadel's `role -> { orgId: orgDomain }` form: string values and no `roles`
|
|
185
|
+
* key.
|
|
186
|
+
*/
|
|
184
187
|
function isRoleToOrganisations(value) {
|
|
185
188
|
const entries = Object.entries(value);
|
|
186
189
|
return entries.length > 0 && !("roles" in value) && entries.every(([key, item]) => typeof item === "string" && !isForbiddenKey(key));
|
|
@@ -332,13 +335,17 @@ function mapClaimsToSubject(claims, options) {
|
|
|
332
335
|
delegation: options.accept === "id-token" ? void 0 : delegationOf(claims, options, act.status === "ok" ? act.chain : void 0),
|
|
333
336
|
context: {},
|
|
334
337
|
session: typeof sessionValue === "string" ? sessionValue : void 0,
|
|
335
|
-
expiresAt
|
|
338
|
+
expiresAt,
|
|
339
|
+
issuedAt: typeof claims.iat === "number" && Number.isFinite(claims.iat) ? claims.iat : void 0
|
|
336
340
|
})),
|
|
337
341
|
invalidClaims,
|
|
338
342
|
invalidChain: false
|
|
339
343
|
};
|
|
340
344
|
}
|
|
341
|
-
/**
|
|
345
|
+
/**
|
|
346
|
+
* `true` when a verified token is not an OpenID Connect ID token for one of
|
|
347
|
+
* `clients`.
|
|
348
|
+
*/
|
|
342
349
|
function idTokenMismatch(claims, headerTyp, clients) {
|
|
343
350
|
const typ = headerTyp?.toLowerCase();
|
|
344
351
|
if (typ !== void 0 && typ !== "jwt" && typ !== "application/jwt") return true;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { n as PermDockValidationError } from "./validation-error-
|
|
3
|
-
import { n as PermDockDeniedError, r as PermDockRevokedError, t as PermDockApprovalRequiredError } from "./errors-
|
|
4
|
-
import {
|
|
5
|
-
import { l as InvalidSignatureError } from "./evaluations-
|
|
2
|
+
import { n as PermDockValidationError } from "./validation-error-CYg2kJEw.js";
|
|
3
|
+
import { n as PermDockDeniedError, r as PermDockRevokedError, t as PermDockApprovalRequiredError } from "./errors-B6R_lg2a.js";
|
|
4
|
+
import { a as decisionResponse, l as problemResponse } from "./problem-BVLHFK33.js";
|
|
5
|
+
import { l as InvalidSignatureError } from "./evaluations-IBceAeKT.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
|
|
9
|
-
* status, `WWW-Authenticate` and rate-limit fields `protect` sends for the
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* status, `WWW-Authenticate` and rate-limit fields `protect` sends for the same
|
|
10
|
+
* decision. Returns `undefined` for anything else so the framework's own error
|
|
11
|
+
* path takes over.
|
|
12
12
|
*/
|
|
13
13
|
function problemFromError(error, options = {}) {
|
|
14
14
|
if (error instanceof InvalidSignatureError) return error.response;
|
|
@@ -3,13 +3,25 @@ import { t as beforeFirst } from "./text-BMFRfBqc.js";
|
|
|
3
3
|
const HOOK_MARKER = "-- permdock:hook v1";
|
|
4
4
|
/** The first line of a `--grants-out` file. */
|
|
5
5
|
const GRANTS_MARKER = "-- permdock:grants v1";
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* The first line of the `seeds` part: the `role_permissions` rows, a versioned
|
|
8
|
+
* migration.
|
|
9
|
+
*/
|
|
7
10
|
const SEEDS_MARKER = "-- permdock:seeds v1";
|
|
8
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* The first line of the `indexes` part: the indexes the policies and helpers
|
|
13
|
+
* read through.
|
|
14
|
+
*/
|
|
9
15
|
const INDEXES_MARKER = "-- permdock:indexes v1";
|
|
10
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* The first line of a `--backfill-out` migration: existing custom roles copied
|
|
18
|
+
* into the custom-role tables.
|
|
19
|
+
*/
|
|
11
20
|
const BACKFILL_MARKER = "-- permdock:backfill v1";
|
|
12
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* The first line of a `rls migrate --retire-out` migration: a materialised
|
|
23
|
+
* permissions table and its refresh triggers dropped.
|
|
24
|
+
*/
|
|
13
25
|
const RETIRE_MARKER = "-- permdock:retire v1";
|
|
14
26
|
const HOOK_LINE = /^-- permdock:hook v(?<version>[1-9]\d*)(?: (?<rest>.*))?$/u;
|
|
15
27
|
const GRANTS_LINE = /^-- permdock:grants v(?<version>[1-9]\d*)(?: (?<rest>.*))?$/u;
|
|
@@ -25,7 +37,10 @@ function pairs(rest) {
|
|
|
25
37
|
}
|
|
26
38
|
return fields;
|
|
27
39
|
}
|
|
28
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* The fields of a hook marker line, or undefined when `sql` does not start with
|
|
42
|
+
* one.
|
|
43
|
+
*/
|
|
29
44
|
function hookMarkerFields(sql) {
|
|
30
45
|
const line = firstLine(sql);
|
|
31
46
|
return line.startsWith(`-- permdock:hook v1 `) ? pairs(line.slice(20)) : void 0;
|
package/dist/mcp/index.d.ts
CHANGED
|
@@ -1,24 +1,30 @@
|
|
|
1
|
-
import { T as Policy,
|
|
2
|
-
import { u as Permission } from "../permission-types-
|
|
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, Z as JwtClaims, hr as Subject, ht as TokenVerifier, lr as Delegation, pr as Principal } from "../policy-types-DGIO_gxq.js";
|
|
2
|
+
import { u as Permission } from "../permission-types-CAY-GU7e.js";
|
|
3
|
+
import { m as ApprovalStore } from "../types-DLvhVm1r.js";
|
|
4
|
+
import { t as ApprovalHint } from "../errors-BIM4MFsJ.js";
|
|
5
|
+
import { t as InstanceOptions } from "../instance-options-CoHn-0e8.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-
|
|
10
|
-
import { t as ClientNames } from "../clients-
|
|
11
|
-
import { U as JwtSubjectOptions } from "../types-
|
|
7
|
+
import { n as PermDockWrap } from "../wrap-DxXB54Wu.js";
|
|
8
|
+
import { o as OtelWrap } from "../types-B6ExllNo.js";
|
|
9
|
+
import { n as DeniedTextEvent, t as DeniedText } from "../denied-text-DHldhVUv.js";
|
|
10
|
+
import { t as ClientNames } from "../clients-C_NOET3z.js";
|
|
11
|
+
import { U as JwtSubjectOptions } from "../types-DsHGPtkR.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
|
+
/**
|
|
15
|
+
* The verified `AuthInfo` the MCP SDK's bearer auth puts on
|
|
16
|
+
* `ctx.http.authInfo`.
|
|
17
|
+
*/
|
|
15
18
|
type McpAuthInfo = {
|
|
16
19
|
readonly token?: string;
|
|
17
20
|
readonly clientId?: string;
|
|
18
21
|
readonly scopes?: readonly string[];
|
|
19
22
|
readonly expiresAt?: number;
|
|
20
23
|
readonly resource?: URL;
|
|
21
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
* Stamped by the SDK's bearer-auth helpers from their `resourceMetadataUrl`
|
|
26
|
+
* option.
|
|
27
|
+
*/
|
|
22
28
|
readonly resourceMetadataUrl?: string;
|
|
23
29
|
readonly extra?: Readonly<Record<string, unknown>>;
|
|
24
30
|
};
|
|
@@ -44,9 +50,9 @@ type McpToolConfig<TInput extends StandardSchemaWithJSON | undefined = undefined
|
|
|
44
50
|
readonly oauthScopes?: readonly string[];
|
|
45
51
|
readonly _meta?: Record<string, unknown>;
|
|
46
52
|
/**
|
|
47
|
-
* Decide again when the handler resolves, without consuming quota, and
|
|
48
|
-
*
|
|
49
|
-
*
|
|
53
|
+
* Decide again when the handler resolves, without consuming quota, and return
|
|
54
|
+
* the refusal instead of the result unless the call is still allowed. The
|
|
55
|
+
* re-check withholds the result; it cannot undo the work.
|
|
50
56
|
*/
|
|
51
57
|
readonly longRunning?: boolean;
|
|
52
58
|
};
|
|
@@ -56,7 +62,8 @@ type McpResourceConfig<TArgs extends readonly unknown[]> = Guard<TArgs> & Resour
|
|
|
56
62
|
};
|
|
57
63
|
/**
|
|
58
64
|
* 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
|
|
65
|
+
* the tool whose `_meta.ui.resourceUri` names it, and denies while no tool
|
|
66
|
+
* does.
|
|
60
67
|
*/
|
|
61
68
|
type McpUiResourceConfig = Omit<McpResourceConfig<[uri: URL]>, "permission"> & {
|
|
62
69
|
readonly permission?: Permission;
|
|
@@ -71,45 +78,57 @@ type McpPromptConfig<TArgs extends StandardSchemaWithJSON | undefined = undefine
|
|
|
71
78
|
};
|
|
72
79
|
/** `McpServer` whose `register*` methods take a `permission` and decide first. */
|
|
73
80
|
type GuardedMcpServer = Omit<McpServer, "registerTool" | "registerResource" | "registerPrompt"> & {
|
|
74
|
-
registerTool<TInput extends StandardSchemaWithJSON | undefined = undefined, TOutput extends StandardSchemaWithJSON | undefined = undefined>(name: string, config: McpToolConfig<TInput, TOutput>, handler: ToolCallback<TInput>)
|
|
75
|
-
registerResource
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
81
|
+
registerTool: <TInput extends StandardSchemaWithJSON | undefined = undefined, TOutput extends StandardSchemaWithJSON | undefined = undefined>(name: string, config: McpToolConfig<TInput, TOutput>, handler: ToolCallback<TInput>) => RegisteredTool;
|
|
82
|
+
registerResource: {
|
|
83
|
+
(name: string, uri: `ui://${string}`, config: McpUiResourceConfig, read: ReadResourceCallback): RegisteredResource;
|
|
84
|
+
(name: string, uri: string, config: McpResourceConfig<[uri: URL]>, read: ReadResourceCallback): RegisteredResource;
|
|
85
|
+
(name: string, template: ResourceTemplate, config: McpResourceConfig<[uri: URL, variables: Variables]>, read: ReadResourceTemplateCallback): RegisteredResourceTemplate;
|
|
86
|
+
};
|
|
87
|
+
registerPrompt: <TArgs extends StandardSchemaWithJSON | undefined = undefined>(name: string, config: McpPromptConfig<TArgs>, handler: PromptCallback<TArgs>) => RegisteredPrompt;
|
|
79
88
|
};
|
|
80
89
|
/** A tool config when the tool's own procedure decides: no loader, no re-check. */
|
|
81
90
|
type McpProcedureToolConfig<TInput extends StandardSchemaWithJSON | undefined = undefined, TOutput extends StandardSchemaWithJSON | undefined = undefined> = Omit<McpToolConfig<TInput, TOutput>, "permission" | "data" | "longRunning"> & {
|
|
82
91
|
/** Overrides `permissionFor(name)`. */
|
|
83
92
|
readonly permission?: Permission;
|
|
84
93
|
};
|
|
85
|
-
/**
|
|
94
|
+
/**
|
|
95
|
+
* `GuardedMcpServer` whose tools are listed and annotated by permission but
|
|
96
|
+
* decided by the procedure they call.
|
|
97
|
+
*/
|
|
86
98
|
type ProcedureMcpServer = Omit<GuardedMcpServer, "registerTool"> & {
|
|
87
|
-
registerTool<TInput extends StandardSchemaWithJSON | undefined = undefined, TOutput extends StandardSchemaWithJSON | undefined = undefined>(name: string, config: McpProcedureToolConfig<TInput, TOutput>, handler: ToolCallback<TInput>)
|
|
99
|
+
registerTool: <TInput extends StandardSchemaWithJSON | undefined = undefined, TOutput extends StandardSchemaWithJSON | undefined = undefined>(name: string, config: McpProcedureToolConfig<TInput, TOutput>, handler: ToolCallback<TInput>) => RegisteredTool;
|
|
88
100
|
};
|
|
89
101
|
/**
|
|
90
|
-
* Tools whose handler calls a procedure that already runs `protect`, such as
|
|
91
|
-
*
|
|
102
|
+
* Tools whose handler calls a procedure that already runs `protect`, such as an
|
|
103
|
+
* oRPC procedure through `call()`. `tools/list` and annotations use the
|
|
92
104
|
* permission; the call itself is not guarded, so each call decides once.
|
|
93
105
|
*/
|
|
94
106
|
type McpProcedureEnforcement = {
|
|
95
107
|
readonly enforce: "procedure";
|
|
96
|
-
/**
|
|
108
|
+
/**
|
|
109
|
+
* The permission of the tool `name`; `permissionOf(procedure)` from
|
|
110
|
+
* `permdock/orpc` reads it. `undefined` throws at registration.
|
|
111
|
+
*/
|
|
97
112
|
readonly permissionFor: (name: string) => Permission | undefined;
|
|
98
113
|
readonly oauthScopesFor?: (name: string) => readonly string[] | undefined;
|
|
99
114
|
};
|
|
100
115
|
type McpPermDockOptions<TUser = unknown> = InstanceOptions & {
|
|
101
|
-
/**
|
|
116
|
+
/**
|
|
117
|
+
* Receives the verified auth info, or `{}` on a transport without one
|
|
118
|
+
* (stdio).
|
|
119
|
+
*/
|
|
102
120
|
readonly subject: (authInfo: McpAuthInfo) => TUser | Promise<TUser>;
|
|
103
121
|
/**
|
|
104
|
-
* The `kind` of the actor built from `authInfo.clientId`; `'mcp-client'`
|
|
105
|
-
*
|
|
122
|
+
* The `kind` of the actor built from `authInfo.clientId`; `'mcp-client'` when
|
|
123
|
+
* absent. `'oauth-client'` decides the token under the kind
|
|
106
124
|
* `subjectFromSupabase`, `subjectFromJwt` and `permdock/a2a` give an OAuth
|
|
107
125
|
* client, so one policy delegation covers the token on every surface.
|
|
108
126
|
*/
|
|
109
127
|
readonly actorKind?: string;
|
|
110
128
|
/**
|
|
111
129
|
* Replaces the actor built from `authInfo.clientId`, `actorKind` and
|
|
112
|
-
* `clients`. Read it from the verified `authInfo`, never from tool
|
|
130
|
+
* `clients`. Read it from the verified `authInfo`, never from tool
|
|
131
|
+
* arguments.
|
|
113
132
|
*/
|
|
114
133
|
readonly actor?: (authInfo: McpAuthInfo) => unknown;
|
|
115
134
|
/**
|
|
@@ -117,28 +136,36 @@ type McpPermDockOptions<TUser = unknown> = InstanceOptions & {
|
|
|
117
136
|
* `authInfo.extra.authorization_details`.
|
|
118
137
|
*/
|
|
119
138
|
readonly delegation?: (authInfo: McpAuthInfo) => Delegation | undefined | Promise<Delegation | undefined>;
|
|
120
|
-
/**
|
|
139
|
+
/**
|
|
140
|
+
* Names for OAuth client ids (`ClientNames`): the actor gets `client` set to
|
|
141
|
+
* the name of `authInfo.clientId`, which a policy delegation matches with
|
|
142
|
+
* `to: { kind, client }`.
|
|
143
|
+
*/
|
|
121
144
|
readonly clients?: ClientNames;
|
|
122
145
|
readonly tenant?: string | ((authInfo: McpAuthInfo) => string | undefined | Promise<string | undefined>);
|
|
123
146
|
/** Deny every call and list nothing when the transport carries no auth info. */
|
|
124
147
|
readonly requireAuthInfo?: boolean;
|
|
125
148
|
/**
|
|
126
149
|
* This server's RFC 8707 resource identifier. A token whose
|
|
127
|
-
* `authInfo.resource` is absent or different is refused with
|
|
150
|
+
* `authInfo.resource` is absent or different is refused with
|
|
151
|
+
* `invalid_token`.
|
|
128
152
|
*/
|
|
129
153
|
readonly resource?: string | URL;
|
|
130
154
|
/**
|
|
131
|
-
* Where a human approves. With `at` set, `approval-required` answers a
|
|
132
|
-
*
|
|
155
|
+
* Where a human approves. With `at` set, `approval-required` answers a client
|
|
156
|
+
* that supports URL elicitation with an `input_required` result.
|
|
133
157
|
*/
|
|
134
158
|
readonly approval?: ApprovalHint;
|
|
135
|
-
/**
|
|
159
|
+
/**
|
|
160
|
+
* Where the user re-authenticates; `acr_values` and `max_age` are appended to
|
|
161
|
+
* `at`.
|
|
162
|
+
*/
|
|
136
163
|
readonly stepUp?: {
|
|
137
164
|
readonly at: string;
|
|
138
165
|
};
|
|
139
166
|
/**
|
|
140
|
-
* Seals the approval token into `requestState`. Pass the codec from the
|
|
141
|
-
*
|
|
167
|
+
* Seals the approval token into `requestState`. Pass the codec from the SDK's
|
|
168
|
+
* `createRequestStateCodec` when the server verifies request state.
|
|
142
169
|
*/
|
|
143
170
|
readonly requestState?: {
|
|
144
171
|
readonly mint: (token: string, context?: never) => Promise<string>;
|
|
@@ -146,11 +173,14 @@ type McpPermDockOptions<TUser = unknown> = InstanceOptions & {
|
|
|
146
173
|
readonly store?: ApprovalStore;
|
|
147
174
|
/** `(permdock) => withOtel(permdock, options)` from `permdock/otel`. */
|
|
148
175
|
readonly otel?: OtelWrap;
|
|
149
|
-
/**
|
|
176
|
+
/**
|
|
177
|
+
* Wraps each instance after `otel`; build it with `wrapPermDock` to cover
|
|
178
|
+
* derived instances.
|
|
179
|
+
*/
|
|
150
180
|
readonly wrap?: PermDockWrap;
|
|
151
181
|
/**
|
|
152
|
-
* Request values merged into `subject.context`, under `policy.context`.
|
|
153
|
-
*
|
|
182
|
+
* Request values merged into `subject.context`, under `policy.context`. Read
|
|
183
|
+
* them from the verified `authInfo`, never from tool arguments.
|
|
154
184
|
*/
|
|
155
185
|
readonly context?: (authInfo: McpAuthInfo) => RequestContext | undefined | Promise<RequestContext | undefined>;
|
|
156
186
|
/**
|
|
@@ -160,7 +190,10 @@ type McpPermDockOptions<TUser = unknown> = InstanceOptions & {
|
|
|
160
190
|
readonly deniedText?: DeniedText;
|
|
161
191
|
};
|
|
162
192
|
type McpPermDock = {
|
|
163
|
-
/**
|
|
193
|
+
/**
|
|
194
|
+
* Call before registering anything: later `register*` calls must carry a
|
|
195
|
+
* `permission`.
|
|
196
|
+
*/
|
|
164
197
|
readonly protectServer: {
|
|
165
198
|
(server: McpServer): GuardedMcpServer;
|
|
166
199
|
(server: McpServer, options: McpProcedureEnforcement): ProcedureMcpServer;
|
|
@@ -171,21 +204,36 @@ type McpPermDock = {
|
|
|
171
204
|
export declare function createPermDock<TUser, TPrincipal extends Principal = Principal>(policy: Policy<TUser, TPrincipal>, given: McpPermDockOptions<TUser>): McpPermDock;
|
|
172
205
|
//#endregion
|
|
173
206
|
//#region src/mcp/mcp-auth.d.ts
|
|
174
|
-
/**
|
|
207
|
+
/**
|
|
208
|
+
* `_meta` key on `tools/call`, `resources/read` and `prompts/get` carrying an
|
|
209
|
+
* approval token.
|
|
210
|
+
*/
|
|
175
211
|
export declare const APPROVAL_META_KEY = "dev.permdock/approval";
|
|
176
212
|
//#endregion
|
|
177
213
|
//#region src/mcp/resource-guard.d.ts
|
|
178
214
|
type McpResourceGuardOptions = {
|
|
179
|
-
/**
|
|
215
|
+
/**
|
|
216
|
+
* The MCP server's resource identifier (RFC 8707); a token's `aud` must
|
|
217
|
+
* contain it.
|
|
218
|
+
*/
|
|
180
219
|
readonly resource: string | URL;
|
|
181
|
-
/**
|
|
220
|
+
/**
|
|
221
|
+
* Scopes every request needs; a token without one of them gets `403
|
|
222
|
+
* insufficient_scope`.
|
|
223
|
+
*/
|
|
182
224
|
readonly scopes?: readonly string[];
|
|
183
225
|
readonly verifier: TokenVerifier;
|
|
184
|
-
/**
|
|
226
|
+
/**
|
|
227
|
+
* The authorization server's issuer, when the verifier does not check `iss`
|
|
228
|
+
* itself.
|
|
229
|
+
*/
|
|
185
230
|
readonly issuer?: string;
|
|
186
231
|
/** `true` for a revoked token; a throw also refuses it. */
|
|
187
232
|
readonly revoked?: (claims: JwtClaims) => boolean | Promise<boolean>;
|
|
188
|
-
/**
|
|
233
|
+
/**
|
|
234
|
+
* The RFC 9728 metadata URL in challenges; default
|
|
235
|
+
* `<origin>/.well-known/oauth-protected-resource<path>`.
|
|
236
|
+
*/
|
|
189
237
|
readonly resourceMetadataUrl?: string;
|
|
190
238
|
};
|
|
191
239
|
type McpResourceGuardResult = {
|
|
@@ -199,41 +247,46 @@ type ProtectedResourceMetadataOptions = {
|
|
|
199
247
|
readonly resource: string | URL;
|
|
200
248
|
/** `authorization_servers`: the issuers whose tokens the resource accepts. */
|
|
201
249
|
readonly authorizationServers: readonly string[];
|
|
202
|
-
/**
|
|
250
|
+
/**
|
|
251
|
+
* `scopes_supported`; list every permission's `scope` so clients can ask for
|
|
252
|
+
* them up front.
|
|
253
|
+
*/
|
|
203
254
|
readonly scopesSupported?: readonly string[];
|
|
204
255
|
readonly resourceName?: string;
|
|
205
256
|
readonly resourceDocumentation?: string;
|
|
206
257
|
};
|
|
207
258
|
/**
|
|
208
|
-
* The resource-server check in front of an MCP endpoint (MCP authorization,
|
|
209
|
-
*
|
|
210
|
-
*
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
*
|
|
259
|
+
* The resource-server check in front of an MCP endpoint (MCP authorization, RFC
|
|
260
|
+
* 6750, RFC 9728): reads the bearer token from `Authorization`, verifies it for
|
|
261
|
+
* `resource`, refuses a revoked one and checks `scopes`. It answers the
|
|
262
|
+
* `McpAuthInfo` the SDK's handlers read, or the `401` or `403` response with a
|
|
263
|
+
* `WWW-Authenticate` challenge naming the metadata URL. A token in the query
|
|
264
|
+
* string is never read. Never throws.
|
|
214
265
|
*/
|
|
215
266
|
export declare function mcpResourceGuard(options: McpResourceGuardOptions): (request: Request) => Promise<McpResourceGuardResult>;
|
|
216
267
|
/**
|
|
217
268
|
* The RFC 9728 Protected Resource Metadata document as a Fetch handler, for
|
|
218
|
-
* `/.well-known/oauth-protected-resource<path>`. `bearer_methods_supported`
|
|
219
|
-
*
|
|
269
|
+
* `/.well-known/oauth-protected-resource<path>`. `bearer_methods_supported` is
|
|
270
|
+
* `header`, the only method `mcpResourceGuard` reads. Any origin may read it.
|
|
220
271
|
*/
|
|
221
272
|
export declare function protectedResourceMetadata(options: ProtectedResourceMetadataOptions): (request: Request) => Response;
|
|
222
273
|
//#endregion
|
|
223
274
|
//#region src/mcp/subject.d.ts
|
|
224
275
|
type McpSubjectOptions = Pick<JwtSubjectOptions, "claims" | "groupRoles" | "schema" | "delegation"> & {
|
|
225
|
-
/**
|
|
276
|
+
/**
|
|
277
|
+
* The `kind` of the actor built from `authInfo.clientId`; `'mcp-client'` when
|
|
278
|
+
* absent. Match `createPermDock`'s `actorKind`.
|
|
279
|
+
*/
|
|
226
280
|
readonly actorKind?: string;
|
|
227
281
|
/** Names for OAuth client ids; match `createPermDock`'s `clients`. */
|
|
228
282
|
readonly clients?: ClientNames;
|
|
229
283
|
};
|
|
230
284
|
/**
|
|
231
285
|
* Maps the `AuthInfo` the MCP SDK's bearer verification produced to a
|
|
232
|
-
* `Subject`: the principal from the verified claims in `extra`, the client
|
|
233
|
-
*
|
|
234
|
-
*
|
|
235
|
-
*
|
|
236
|
-
* the anonymous subject.
|
|
286
|
+
* `Subject`: the principal from the verified claims in `extra`, the client as
|
|
287
|
+
* an actor of kind `actorKind` (`mcp-client` by default), the granted scopes as
|
|
288
|
+
* the delegation. Never verifies and never throws; anything unusable, including
|
|
289
|
+
* an `actorKind` that is not a non-empty string, is the anonymous subject.
|
|
237
290
|
*/
|
|
238
291
|
export declare function subjectFromMcp(authInfo: McpAuthInfo | undefined, options?: McpSubjectOptions): Subject<McpPrincipal>;
|
|
239
292
|
//#endregion
|