permdock 0.7.0 → 0.8.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-CL-QCITA.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-BLs67P1l.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-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
- package/dist/{approval-prompt-K0faOLFp.d.ts → approval-prompt-PYagyQUj.d.ts} +13 -11
- 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-3RhGfkAK.js} +2 -2
- package/dist/{arazzo-rdeJ8n1J.js → arazzo-B5-ulWif.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-BAkBDMqn.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-DqEoWHBc.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-JDuvxjuW.d.ts → bind-Cp2hBHzP.d.ts} +27 -12
- package/dist/{bind-D1nO6fiC.js → bind-D_sZSVA3.js} +22 -10
- 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-CNWaYJyr.js} +3 -3
- package/dist/{capability-L7NnfhiE.js → capability-BqX94r07.js} +31 -25
- package/dist/{capability-D4UC9TTW.d.ts → capability-ChuiONQU.d.ts} +41 -29
- package/dist/{casbin-BW9pS47J.js → casbin-H0rKxBx2.js} +16 -8
- package/dist/{casbin-BHijLuHY.js → casbin-cbSbhT_k.js} +2 -2
- 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-BFpz2EmT.js} +20 -19
- package/dist/{catalog-BaMQfQ6Y.js → catalog-DCspHDc8.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-mRQQQhNK.js +1 -0
- package/dist/catalog-operations-Dadrl7Z-.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-BFlGMaak.js} +4 -5
- package/dist/{codemod-i4N2BhDc.js → codemod-DLQ9Zpo4.js} +3 -4
- package/dist/{codemod-BP6n8N9L.js → codemod-DWSN2erG.js} +523 -201
- package/dist/collect-B5BL3klN.js +1 -0
- package/dist/{collect-BaWeMjwV.js → collect-B7ZFAJU3.js} +26 -63
- package/dist/{collect-DNm3oKOk.js → collect-Bzv3le0A.js} +4 -5
- 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-BFzysW3o.d.ts} +36 -12
- package/dist/{compile-BAEO5bOk.js → compile-EzEMB-7v.js} +77 -33
- package/dist/{completion-BNdVf7X2.js → completion-saoYiRFO.js} +17 -8
- package/dist/config-BwPBfN0t.js +108 -0
- package/dist/{config-DGZzMV1B.js → config-DBeXXmBF.js} +2 -2
- package/dist/{config-report-Cm7UITNA.js → config-report-BipSWA6V.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-B5-w6Kw9.js → core-H-mbhpZc.js} +26 -20
- package/dist/{core-CQkE8Esr.d.ts → core-hWIARPDz.d.ts} +49 -22
- package/dist/{create-UTnUVETj.d.ts → create-BSNrVuxh.d.ts} +70 -37
- package/dist/{create-B2-CQqCI.d.ts → create-BVq1lNQE.d.ts} +49 -28
- package/dist/{create-QHuuPw3q.d.ts → create-CM1FciYG.d.ts} +37 -29
- package/dist/{create-Cb86Z8Im.js → create-Cq4Uox0f.js} +10 -7
- package/dist/{create-DJrlhEp9.js → create-_noSrY1T.js} +15 -21
- 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-CHNlVInN.d.ts +22 -0
- package/dist/{describe-DZlnEtLy.js → describe-Bb4hGK5d.js} +5 -5
- package/dist/{describe-O0SwYIK8.d.ts → describe-ByS9LgHK.d.ts} +5 -5
- package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
- package/dist/{diff-Btr1c1Ow.js → diff-CN8IYhC_.js} +2 -2
- package/dist/{diff-DzT-xD13.js → diff-iZWV65nC.js} +22 -13
- package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
- package/dist/{doctor-BU1szn63.js → doctor-CHD1M9R5.js} +287 -135
- package/dist/{doctor-BoK_y0KO.js → doctor-D3wo-yuz.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-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
- package/dist/{errors-DpP_U6Bf.js → errors-Vpu6rKHl.js} +13 -10
- package/dist/{errors-B_Qg9D3e.d.ts → errors-zi_4T-rx.d.ts} +22 -6
- package/dist/{evaluate-B_oqFbWC.js → evaluate-Dd8Ta0Ie.js} +140 -78
- package/dist/{evaluations-DReoiVBw.js → evaluations-IBceAeKT.js} +40 -19
- package/dist/{evaluations-BCddEOfO.d.ts → evaluations-z8dQFDaN.d.ts} +11 -5
- 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-C1DCvpqV.d.ts} +9 -6
- package/dist/{fetch-adapter-De-u6vhJ.js → fetch-adapter-JL43jD3E.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-B5kvbAoZ.js +58 -0
- package/dist/gen-DWCYcMQM.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-BmjzxQhp.d.ts → hosted-Cmtxogd0.d.ts} +33 -21
- package/dist/{hosted-XBgU6RGT.js → hosted-D0IzESu_.js} +42 -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-Bz0GefWg.js → import-CST57XLp.js} +64 -51
- package/dist/{import-DB2EG_iy.js → import-_YqhhwvX.js} +6 -6
- package/dist/{index-BSfRl0hZ.d.ts → index-B8s204GL.d.ts} +64 -52
- package/dist/{index-DH9DUDEM.d.ts → index-BT5-1VsX.d.ts} +54 -30
- package/dist/{index-BTkwrK7v.d.ts → index-BW_0MZOS.d.ts} +282 -172
- package/dist/{index-CMiPH2Tv.d.ts → index-BhxEUY9J.d.ts} +64 -37
- package/dist/{index-DLwcuCN_.d.ts → index-Bv5iXPqU.d.ts} +51 -30
- package/dist/{index-BE8y3moU.d.ts → index-_9UiQIkt.d.ts} +127 -82
- package/dist/index.d.ts +22 -22
- package/dist/index.js +33 -33
- package/dist/{init-5TXNji88.js → init-Dz_PsHdv.js} +5 -5
- package/dist/{init-B-4t1NzC.js → init-cE3A8aXq.js} +10 -10
- package/dist/{instance-options-CU0YQCLH.d.ts → instance-options-B0KXqTrJ.d.ts} +4 -4
- package/dist/{instance-snapshot-CjcwnEiV.js → instance-snapshot--JWiTrvO.js} +75 -55
- 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-C-fYydV2.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-D-8tMqzo.js} +4 -4
- package/dist/{login-WC9HPJpU.js → login-DplQ0s84.js} +16 -9
- package/dist/{manifest-Dv6q4i5s.js → manifest-Cgiq5oqc.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-BNWCJtmP.js} +14 -8
- 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 +72 -26
- package/dist/next/index.js +110 -6
- 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-Ddb4628T.js → openapi-BOsx0xn9.js} +33 -18
- package/dist/{openapi-DMocl1bh.js → openapi-CBZUhA3l.js} +4 -5
- package/dist/{openapi-ztVaux6j.js → openapi-VeHHU2l9.js} +23 -14
- 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-files-BHOIlrfD.js +1 -0
- package/dist/{output-files-CCMdcFWb.js → output-files-BIQ_9pIs.js} +29 -17
- package/dist/{output-DgSDLrta.js → output-tkju6U7R.js} +9 -5
- package/dist/ownership-B4L59T9u.js +1054 -0
- package/dist/{parse-Ddhz2xf4.js → parse-1_ZheTW5.js} +16 -13
- package/dist/parse-local-manifest-BQhTlLQS.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-Dco6dyCK.d.ts → permdock-B6Sf4T_S.d.ts} +253 -129
- package/dist/{permdock-BfWEeMqk.js → permdock-L-_I_3zP.js} +59 -35
- 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-mDcTWoBs.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-Ba4bDhaj.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-CJgOm6aq.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-CCiDRZBH.d.ts} +738 -349
- package/dist/{postgres-store-BL9M_CA1.js → postgres-store-DcyrPS-r.js} +43 -16
- package/dist/{postgrest-r5faDIzD.js → postgrest-D4nuPXIQ.js} +52 -33
- package/dist/{postgrest-CYacM_u7.d.ts → postgrest-DicQyqm-.d.ts} +54 -35
- package/dist/{powersync-53ryOZip.js → powersync-DHNQX06W.js} +127 -69
- package/dist/{powersync-13odBwiM.js → powersync-DXqGuq9A.js} +3 -3
- package/dist/powersync-Djf-zCpB.js +1 -0
- 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-BE7N_Luo.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-DXfq5c2d.d.ts} +1 -1
- package/dist/{provider-store-IgqQipCO.js → provider-store-CaTv00tr.js} +13 -9
- package/dist/pull-B65ndFNZ.js +1 -0
- package/dist/{pull-CN5OLxrF.js → pull-CwpGaQSi.js} +12 -11
- package/dist/{push-tVdG8dUL.js → push-DgssgzkK.js} +19 -13
- package/dist/{pushed-policy-BbcY9r_4.d.ts → pushed-policy-D1Eoi6NM.d.ts} +12 -6
- package/dist/{pushed-policy-CmYeSQqq.js → pushed-policy-ITwYKvvH.js} +10 -7
- 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-DNftIb_R.d.ts} +1 -1
- package/dist/{request-context-BykKLmyE.js → request-context-C25ilqiJ.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-CF7xXLSG.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-CxBZb4rZ.js → rls-CNEH2_BG.js} +299 -124
- package/dist/{rls-Ck_PocSp.js → rls-Ca8Jz9b5.js} +13 -6
- 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-fNqAIqQk.js} +8 -5
- package/dist/{run-uLD2aWuO.js → run-Bz26OTfO.js} +26 -23
- package/dist/run-D-JE8QWb.js +1 -0
- package/dist/{run-ticket-BpNi7BCi.d.ts → run-ticket-DbWI9f99.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-iWnUdwCt.js} +42 -29
- package/dist/{scan-DSljDE1Y.js → scan-DCj1KQfn.js} +1 -1
- package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
- package/dist/{schema-gIcCx7zM.js → schema-Dst9I9Gs.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-CIlpSA2G.d.ts} +81 -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-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
- package/dist/{sink-Cp_Eot9W.d.ts → sink-Dvi7YZG_.d.ts} +44 -20
- package/dist/{skills-Dcjw9_1C.js → skills-Bjj7BNEQ.js} +12 -8
- package/dist/{skills-g_3BS9NC.js → skills-OuoMR49L.js} +3 -3
- package/dist/{snapshot-CbGmYiJx.js → snapshot-CXlzi69u.js} +21 -18
- package/dist/{snapshot-cache-Pahd3IYJ.d.ts → snapshot-cache-BAXZ0KOp.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-DEEuGb8S.d.ts → sources-B1Os_YUu.d.ts} +126 -53
- package/dist/{sources-B-zYB4GS.js → sources-CMAM-2A3.js} +46 -27
- 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-DZ0l9UAg.js} +190 -100
- package/dist/ssf/index.d.ts +3 -3
- package/dist/ssf/index.js +47 -35
- package/dist/{standard-webhooks-B_qRg0ws.d.ts → standard-webhooks-C-qX4mJW.d.ts} +7 -7
- package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
- 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-C0Kta5Ft.d.ts +59 -0
- package/dist/{stores-BqEuHC05.js → stores-DxZWDXCs.js} +42 -5
- package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
- package/dist/{stream-2Vwhl7Er.d.ts → stream-ltuLdtTG.d.ts} +4 -3
- 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-BL1qJzzY.js} +79 -35
- package/dist/{supabase-Bqp7iIY2.js → supabase-D39cuGPt.js} +3 -3
- package/dist/{supabase-hook-Dg0SrQWR.js → supabase-hook-B-yXnzUl.js} +175 -196
- package/dist/supabase-hook-H-MtE9Wd.js +1 -0
- package/dist/{supautils-MESd81bF.js → supautils-BU-pAEpf.js} +166 -47
- 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-DeMNEy6V.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 +224 -141
- package/dist/testing/index.js +299 -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-BIPIDa6a.d.ts +50 -0
- package/dist/{types-DBHftjgS.d.ts → types-AMJ5qoU_.d.ts} +45 -33
- package/dist/{types-CfiKC5aN.d.ts → types-B2mlGuhW.d.ts} +14 -11
- package/dist/{types-D3A19w4A.d.ts → types-B4uqKDnp.d.ts} +22 -13
- package/dist/{types-CQVEQawv.d.ts → types-BJk0BKRX.d.ts} +24 -14
- package/dist/types-B_d_g7T3.d.ts +262 -0
- package/dist/{types-DC44-hqb.d.ts → types-B_tiYvk8.d.ts} +59 -32
- package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
- package/dist/{types-BWZybqs9.d.ts → types-DC1Loeh3.d.ts} +381 -202
- package/dist/{types-CIeZcG8v.d.ts → types-DHKPcqzr.d.ts} +2 -2
- package/dist/{types-cTos-H7p.d.ts → types-DjuMBNF9.d.ts} +68 -32
- package/dist/{types-CeIscIKp.d.ts → types-HzqOtvsJ.d.ts} +23 -12
- package/dist/{types-BXMYB7BY.d.ts → types-ZzRGoViD.d.ts} +77 -24
- package/dist/{types-BfVmNJO5.d.ts → types-ah9NlU6j.d.ts} +128 -50
- package/dist/{types-DXmwu78Z.d.ts → types-djVzLlIV.d.ts} +31 -14
- package/dist/{types-g7Oy6Zg4.d.ts → types-yUuPR5Hy.d.ts} +47 -24
- package/dist/unplugin/index.d.ts +1 -1
- package/dist/unplugin/index.js +2 -2
- package/dist/usage-CYeXek0p.js +1 -0
- package/dist/{usage-Bybmck7f.js → usage-CxEzS4ey.js} +50 -26
- package/dist/{usage-CDaLXCfL.js → usage-ab0PdusX.js} +2 -2
- package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
- package/dist/{validation-error-CQpoquwj.d.ts → validation-error-YGg2mXyH.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-DZeqoWu5.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-Bu9zAlE0.d.ts} +13 -10
- package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
- package/dist/{watch-C-4VmFlL.js → watch-Cx_WciLE.js} +8 -8
- package/dist/watch-DB42U1ib.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-rI7dCR9Q.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-DlJE3gS_.d.ts} +8 -5
- package/package.json +7 -7
- 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 +14 -22
- 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
package/dist/mcp/index.js
CHANGED
|
@@ -1,27 +1,33 @@
|
|
|
1
1
|
import { r as isRecord, t as compact } from "../compact-CAf557ZB.js";
|
|
2
|
-
import { n as freezeDeep } from "../freeze-
|
|
3
|
-
import { i as stepUpOf, o as statusProblem } from "../problem-details-
|
|
4
|
-
import {
|
|
5
|
-
import { m as annotationsFor } from "../permission-registry-
|
|
6
|
-
import { t as actorMayCallTool } from "../delegation-
|
|
2
|
+
import { n as freezeDeep } from "../freeze-jjan0lCv.js";
|
|
3
|
+
import { i as stepUpOf, o as statusProblem } from "../problem-details-CLDgX1KV.js";
|
|
4
|
+
import { n as describe } from "../describe-Bb4hGK5d.js";
|
|
5
|
+
import { m as annotationsFor } from "../permission-registry-B8tYxPIt.js";
|
|
6
|
+
import { t as actorMayCallTool } from "../delegation-CDB6_keF.js";
|
|
7
7
|
import { n as resourceRef } from "../resource-ref-CaS9yVPi.js";
|
|
8
|
-
import { i as challengeScope, l as withApp, o as hasScope, s as scopesReaching } from "../permdock-
|
|
8
|
+
import { i as challengeScope, l as withApp, o as hasScope, s as scopesReaching } from "../permdock-L-_I_3zP.js";
|
|
9
9
|
import { t as anonymousSubject } from "../subject-BGoM5o8B.js";
|
|
10
|
-
import { t as composeWraps } from "../wrap-
|
|
11
|
-
import {
|
|
12
|
-
import { t as clientNameOf } from "../clients-
|
|
13
|
-
import { r as mapClaimsToSubject } from "../map-claims-
|
|
14
|
-
import { r as instanceOptions } from "../build-instance-
|
|
15
|
-
import { i as refusalText, n as createAgentKernel } from "../kernel-
|
|
10
|
+
import { t as composeWraps } from "../wrap-B2wziJI_.js";
|
|
11
|
+
import { l as problemResponse, o as methodNotAllowed, r as bearerChallenge, u as protectedResourceMetadataUrl } from "../problem-BVLHFK33.js";
|
|
12
|
+
import { t as clientNameOf } from "../clients-DYr3U86j.js";
|
|
13
|
+
import { r as mapClaimsToSubject } from "../map-claims-BNWCJtmP.js";
|
|
14
|
+
import { r as instanceOptions } from "../build-instance-CNWaYJyr.js";
|
|
15
|
+
import { i as refusalText, n as createAgentKernel } from "../kernel-C-fYydV2.js";
|
|
16
16
|
import { t as boundedMap } from "../lru-8q4WZjBV.js";
|
|
17
17
|
import { t as delegationFrom } from "../delegation-input-FTxMK3ji.js";
|
|
18
|
-
import { n as deniedToolRefusal, r as toolErrorResult, t as approvalToolRefusal } from "../tool-refusal-
|
|
18
|
+
import { n as deniedToolRefusal, r as toolErrorResult, t as approvalToolRefusal } from "../tool-refusal-Qpjs_W6M.js";
|
|
19
19
|
//#region src/mcp/mcp-auth.ts
|
|
20
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* `_meta` key on `tools/call`, `resources/read` and `prompts/get` carrying an
|
|
22
|
+
* approval token.
|
|
23
|
+
*/
|
|
21
24
|
const APPROVAL_META_KEY = "dev.permdock/approval";
|
|
22
25
|
const CLIENT_CAPABILITIES = "io.modelcontextprotocol/clientCapabilities";
|
|
23
26
|
const PROTOCOL_VERSION = "io.modelcontextprotocol/protocolVersion";
|
|
24
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* The first protocol revision whose list results define `ttlMs` and
|
|
29
|
+
* `cacheScope`.
|
|
30
|
+
*/
|
|
25
31
|
const CACHEABLE_LISTS_SINCE = "2026-07-28";
|
|
26
32
|
function contextOf(value) {
|
|
27
33
|
return isRecord(value) ? value : {};
|
|
@@ -54,8 +60,8 @@ function sameResource(expected, actual) {
|
|
|
54
60
|
}
|
|
55
61
|
/**
|
|
56
62
|
* Whether the request was sent under a revision that defines `cacheScope` on
|
|
57
|
-
* list results. Only those requests carry the per-request envelope; a
|
|
58
|
-
*
|
|
63
|
+
* list results. Only those requests carry the per-request envelope; a 2025-era
|
|
64
|
+
* request has none and gets no cache fields.
|
|
59
65
|
*/
|
|
60
66
|
function definesCacheScope(context) {
|
|
61
67
|
const version = context.mcpReq?.envelope?.[PROTOCOL_VERSION];
|
|
@@ -165,7 +171,10 @@ function throwRefusal(refusal) {
|
|
|
165
171
|
if (refusal.inputRequired !== void 0) return refusal.inputRequired;
|
|
166
172
|
throw new Error(refusal.text);
|
|
167
173
|
}
|
|
168
|
-
/**
|
|
174
|
+
/**
|
|
175
|
+
* The MRTR URL elicitation that sends the user to `options.approval.at`, when
|
|
176
|
+
* the client accepts one.
|
|
177
|
+
*/
|
|
169
178
|
async function approvalInput(options, decision, handlerContext, context, capabilities) {
|
|
170
179
|
const at = options.approval?.at;
|
|
171
180
|
if (at === void 0 || !acceptsUrlElicitation(context, capabilities)) return;
|
|
@@ -174,7 +183,10 @@ async function approvalInput(options, decision, handlerContext, context, capabil
|
|
|
174
183
|
const requestState = options.requestState === void 0 ? decision.token : await options.requestState.mint(decision.token, handlerContext);
|
|
175
184
|
return urlElicitation("approval", options.approval?.hint ?? describe(decision).detail, url, requestState);
|
|
176
185
|
}
|
|
177
|
-
/**
|
|
186
|
+
/**
|
|
187
|
+
* A step-up denial: the RFC 9470 challenge, and a URL elicitation to `stepUpAt`
|
|
188
|
+
* when the client accepts one.
|
|
189
|
+
*/
|
|
178
190
|
function stepUpRefusal(stepUpAt, decision, permission, data, context, capabilities) {
|
|
179
191
|
const base = deniedRefusal(decision, permission, data);
|
|
180
192
|
const { acrValues, maxAge } = stepUpOf(decision);
|
|
@@ -215,7 +227,10 @@ function forThisServer(checks, authInfo) {
|
|
|
215
227
|
function reachable(checks, authInfo, reach) {
|
|
216
228
|
return authInfo === void 0 ? checks.options.requireAuthInfo !== true : forThisServer(checks, authInfo) && hasScope(authInfo.scopes, reach.scopes);
|
|
217
229
|
}
|
|
218
|
-
/**
|
|
230
|
+
/**
|
|
231
|
+
* The refusal a token earns before any decision: none, the wrong resource, or a
|
|
232
|
+
* missing scope.
|
|
233
|
+
*/
|
|
219
234
|
function credentialRefusal(checks, permission, reach, authInfo) {
|
|
220
235
|
if (authInfo === void 0) return checks.options.requireAuthInfo === true ? plainRefusal(permission, "Denied: no verified credentials.", { error: "invalid_token" }) : void 0;
|
|
221
236
|
if (!forThisServer(checks, authInfo)) return plainRefusal(permission, "Denied: the token was not issued for this server.", { error: "invalid_token" });
|
|
@@ -233,7 +248,10 @@ function credentialRefusal(checks, permission, reach, authInfo) {
|
|
|
233
248
|
}))
|
|
234
249
|
}));
|
|
235
250
|
}
|
|
236
|
-
/**
|
|
251
|
+
/**
|
|
252
|
+
* The completion re-check of a long-running tool: the call must still be
|
|
253
|
+
* allowed, or approved with the same token.
|
|
254
|
+
*/
|
|
237
255
|
async function recheck(checks, binding, args, call, permission, approved, tool) {
|
|
238
256
|
const rechecked = await checks.kernel.check(binding, args, call, compact({
|
|
239
257
|
simulate: true,
|
|
@@ -328,8 +346,9 @@ async function checkCall(checks, permission, reach, args, load, context, handler
|
|
|
328
346
|
};
|
|
329
347
|
}
|
|
330
348
|
/**
|
|
331
|
-
* The keys a list shows: unguarded ones, and guarded ones the token reaches and
|
|
332
|
-
* With `tools`, a guarded key is also a tool name an
|
|
349
|
+
* The keys a list shows: unguarded ones, and guarded ones the token reaches and
|
|
350
|
+
* the subject may use. With `tools`, a guarded key is also a tool name an
|
|
351
|
+
* `agent` actor's `tools` list must name.
|
|
333
352
|
*/
|
|
334
353
|
async function visible(checks, context, permissionOf, keys, declaredOf = () => void 0, tools = false) {
|
|
335
354
|
const authInfo = context.http?.authInfo;
|
|
@@ -485,7 +504,10 @@ function protectServer(checks, server, enforcement) {
|
|
|
485
504
|
for (const field of ["data", "longRunning"]) if (config[field] !== void 0) throw new TypeError(`permdock/mcp: tool ${name} sets ${field}, but with enforce: 'procedure' its procedure decides.`);
|
|
486
505
|
return requirePermission("tool", name, { permission: enforcement.permissionFor(name) });
|
|
487
506
|
};
|
|
488
|
-
/**
|
|
507
|
+
/**
|
|
508
|
+
* With `enforce: 'procedure'` the handler runs undecided: the procedure it
|
|
509
|
+
* calls decides.
|
|
510
|
+
*/
|
|
489
511
|
const wrapTool = (tool, permission, reach, load, handler, longRunning) => enforcement === void 0 ? guardTool(tool, permission, reach, load, handler, longRunning) : async (...params) => {
|
|
490
512
|
const result = await handler(...params);
|
|
491
513
|
await announce(contextOf(params.at(-1)));
|
|
@@ -545,7 +567,10 @@ function protectServer(checks, server, enforcement) {
|
|
|
545
567
|
const originalResource = server.registerResource.bind(server);
|
|
546
568
|
const registerResource = (name, uriOrTemplate, config, read) => {
|
|
547
569
|
const own = config["permission"] === void 0 && typeof uriOrTemplate === "string" && uriOrTemplate.startsWith(UI_SCHEME) ? void 0 : requirePermission("resource", name, config);
|
|
548
|
-
/**
|
|
570
|
+
/**
|
|
571
|
+
* A `ui://` view without its own permission takes the one of the tool
|
|
572
|
+
* linking it; unlinked, it denies.
|
|
573
|
+
*/
|
|
549
574
|
const permissionNow = () => own ?? (typeof uriOrTemplate === "string" ? uiLinks.get(uriOrTemplate)?.permission : void 0);
|
|
550
575
|
const { permission: _permission, data, scopeChallenge, ...passthrough } = config;
|
|
551
576
|
const load = data;
|
|
@@ -581,18 +606,20 @@ function protectServer(checks, server, enforcement) {
|
|
|
581
606
|
//#endregion
|
|
582
607
|
//#region src/mcp/subject.ts
|
|
583
608
|
const DEFAULT_MCP_ACTOR_KIND = "mcp-client";
|
|
584
|
-
/**
|
|
609
|
+
/**
|
|
610
|
+
* `kind`, or the default when absent; `undefined` for a kind that is not a
|
|
611
|
+
* non-empty string.
|
|
612
|
+
*/
|
|
585
613
|
function mcpActorKind(kind) {
|
|
586
614
|
if (kind === void 0) return DEFAULT_MCP_ACTOR_KIND;
|
|
587
615
|
return typeof kind === "string" && kind !== "" ? kind : void 0;
|
|
588
616
|
}
|
|
589
617
|
/**
|
|
590
618
|
* Maps the `AuthInfo` the MCP SDK's bearer verification produced to a
|
|
591
|
-
* `Subject`: the principal from the verified claims in `extra`, the client
|
|
592
|
-
*
|
|
593
|
-
*
|
|
594
|
-
*
|
|
595
|
-
* the anonymous subject.
|
|
619
|
+
* `Subject`: the principal from the verified claims in `extra`, the client as
|
|
620
|
+
* an actor of kind `actorKind` (`mcp-client` by default), the granted scopes as
|
|
621
|
+
* the delegation. Never verifies and never throws; anything unusable, including
|
|
622
|
+
* an `actorKind` that is not a non-empty string, is the anonymous subject.
|
|
596
623
|
*/
|
|
597
624
|
function subjectFromMcp(authInfo, options = {}) {
|
|
598
625
|
try {
|
|
@@ -657,7 +684,10 @@ function createPermDock(policy, given) {
|
|
|
657
684
|
}
|
|
658
685
|
//#endregion
|
|
659
686
|
//#region src/mcp/resource-guard.ts
|
|
660
|
-
/**
|
|
687
|
+
/**
|
|
688
|
+
* The `error_description` of every `invalid_token` challenge (RFC 6750 section
|
|
689
|
+
* 3.1).
|
|
690
|
+
*/
|
|
661
691
|
const INVALID_TOKEN = "The access token is invalid";
|
|
662
692
|
const BEARER = /^Bearer +([\w~+/.-]+=*)$/iu;
|
|
663
693
|
function tokenScopes(claims) {
|
|
@@ -672,12 +702,12 @@ function refuse(status, challenge, detail) {
|
|
|
672
702
|
};
|
|
673
703
|
}
|
|
674
704
|
/**
|
|
675
|
-
* The resource-server check in front of an MCP endpoint (MCP authorization,
|
|
676
|
-
*
|
|
677
|
-
*
|
|
678
|
-
*
|
|
679
|
-
*
|
|
680
|
-
*
|
|
705
|
+
* The resource-server check in front of an MCP endpoint (MCP authorization, RFC
|
|
706
|
+
* 6750, RFC 9728): reads the bearer token from `Authorization`, verifies it for
|
|
707
|
+
* `resource`, refuses a revoked one and checks `scopes`. It answers the
|
|
708
|
+
* `McpAuthInfo` the SDK's handlers read, or the `401` or `403` response with a
|
|
709
|
+
* `WWW-Authenticate` challenge naming the metadata URL. A token in the query
|
|
710
|
+
* string is never read. Never throws.
|
|
681
711
|
*/
|
|
682
712
|
function mcpResourceGuard(options) {
|
|
683
713
|
const resource = new URL(String(options.resource));
|
|
@@ -728,8 +758,8 @@ function mcpResourceGuard(options) {
|
|
|
728
758
|
}
|
|
729
759
|
/**
|
|
730
760
|
* The RFC 9728 Protected Resource Metadata document as a Fetch handler, for
|
|
731
|
-
* `/.well-known/oauth-protected-resource<path>`. `bearer_methods_supported`
|
|
732
|
-
*
|
|
761
|
+
* `/.well-known/oauth-protected-resource<path>`. `bearer_methods_supported` is
|
|
762
|
+
* `header`, the only method `mcpResourceGuard` reads. Any origin may read it.
|
|
733
763
|
*/
|
|
734
764
|
function protectedResourceMetadata(options) {
|
|
735
765
|
const body = JSON.stringify(compact({
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { r as isRecord } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { i as dateAt } from "./time-
|
|
3
|
-
import { a as describeError } from "./errors-
|
|
4
|
-
import { o as sqlFiles } from "./files-
|
|
5
|
-
import { r as escapeSqlIdent, s as quoteSqlLiteral } from "./sql-
|
|
6
|
-
import "./sources-
|
|
7
|
-
import { a as RETIRE_MARKER } from "./markers-
|
|
8
|
-
import {
|
|
9
|
-
import { f as writeOutputFiles, n as dataMigrationFile } from "./output-files-
|
|
10
|
-
import { r as HELPERS } from "./shared-
|
|
11
|
-
import { o as sqlStatements } from "./deciding-columns-
|
|
12
|
-
import { i as retireSql, r as retirePlan } from "./retire-
|
|
2
|
+
import { i as dateAt } from "./time-nR1JesoH.js";
|
|
3
|
+
import { a as describeError } from "./errors-Vpu6rKHl.js";
|
|
4
|
+
import { o as sqlFiles } from "./files-BSjrtIHw.js";
|
|
5
|
+
import { r as escapeSqlIdent, s as quoteSqlLiteral } from "./sql-0WjxIp9g.js";
|
|
6
|
+
import "./sources-CMAM-2A3.js";
|
|
7
|
+
import { a as RETIRE_MARKER } from "./markers-BeHZ4x9Q.js";
|
|
8
|
+
import { i as refuseDirty, t as applyFiles } from "./files-B3AA05f1.js";
|
|
9
|
+
import { f as writeOutputFiles, n as dataMigrationFile } from "./output-files-BIQ_9pIs.js";
|
|
10
|
+
import { r as HELPERS } from "./shared-Afctg7B0.js";
|
|
11
|
+
import { o as sqlStatements } from "./deciding-columns-NB4wcyBf.js";
|
|
12
|
+
import { i as retireSql, r as retirePlan } from "./retire-B2xffQgY.js";
|
|
13
13
|
import { existsSync, readFileSync } from "node:fs";
|
|
14
14
|
import { relative, resolve } from "node:path";
|
|
15
15
|
import { parse } from "pgsql-parser";
|
|
@@ -84,7 +84,10 @@ function callEnd(text, start) {
|
|
|
84
84
|
}
|
|
85
85
|
return -1;
|
|
86
86
|
}
|
|
87
|
-
/**
|
|
87
|
+
/**
|
|
88
|
+
* The top-level arguments of the call at `start`, as written; `end` is past its
|
|
89
|
+
* closing paren.
|
|
90
|
+
*/
|
|
88
91
|
function argTexts(text, start, end) {
|
|
89
92
|
const open = text.indexOf("(", start);
|
|
90
93
|
const args = [];
|
|
@@ -129,7 +132,10 @@ function isNullConst(node) {
|
|
|
129
132
|
return child(child(node, "A_Const"), "isnull") === true;
|
|
130
133
|
}
|
|
131
134
|
const literal = quoteSqlLiteral;
|
|
132
|
-
/**
|
|
135
|
+
/**
|
|
136
|
+
* The PermDock key for a legacy one: `keys` first, then `renamed`, then the
|
|
137
|
+
* longest matching prefix.
|
|
138
|
+
*/
|
|
133
139
|
function mapKey(config, key, renamed = {}) {
|
|
134
140
|
const exact = config.keys?.[key];
|
|
135
141
|
if (exact !== void 0) return exact;
|
|
@@ -228,7 +234,10 @@ var Rewriter = class {
|
|
|
228
234
|
if (this.#config.globalScopes?.includes(named) === true || isNullConst(idArg)) return this.#global(keyArg, selected);
|
|
229
235
|
return this.#row(this.#config.scopes?.[named] ?? named, idArg, keyArg, 1);
|
|
230
236
|
}
|
|
231
|
-
/**
|
|
237
|
+
/**
|
|
238
|
+
* `selected`: the call is already a `select` target, so `permdock_has` needs
|
|
239
|
+
* no wrapping subquery.
|
|
240
|
+
*/
|
|
232
241
|
rewrite(call, selected) {
|
|
233
242
|
const { helper, args } = call;
|
|
234
243
|
this.#args = argTexts(this.#text, call.start, call.end);
|
|
@@ -275,7 +284,10 @@ function bodyStrings(statement) {
|
|
|
275
284
|
}
|
|
276
285
|
return found;
|
|
277
286
|
}
|
|
278
|
-
/**
|
|
287
|
+
/**
|
|
288
|
+
* What `call`, written inside a function body, becomes: the rewrite that its
|
|
289
|
+
* place keeps from being applied.
|
|
290
|
+
*/
|
|
279
291
|
async function suggest(call, config, target) {
|
|
280
292
|
const sql = `select ${call}`;
|
|
281
293
|
let tree;
|
|
@@ -293,7 +305,10 @@ async function suggest(call, config, target) {
|
|
|
293
305
|
const outcome = rewriter.rewrite(found, true);
|
|
294
306
|
return "to" in outcome ? outcome.to : void 0;
|
|
295
307
|
}
|
|
296
|
-
/**
|
|
308
|
+
/**
|
|
309
|
+
* Rewrites the configured helper calls in one file's policies; everything else
|
|
310
|
+
* is reported.
|
|
311
|
+
*/
|
|
297
312
|
async function migrateSql(file, text, config, target) {
|
|
298
313
|
const rewrites = [];
|
|
299
314
|
const skipped = [];
|
|
@@ -418,7 +433,10 @@ function describe(report, write) {
|
|
|
418
433
|
lines.push(`rls migrate: ${write ? "rewrote" : "would rewrite"} ${String(report.rewrites.length)} call(s) in ${String(files)} file(s), skipped ${String(report.skipped.length)}${unknown === 0 ? "" : `, ${String(unknown)} with an unknown key`}${write ? "" : "; drop --dry-run to apply them"}`);
|
|
419
434
|
return lines.join("\n");
|
|
420
435
|
}
|
|
421
|
-
/**
|
|
436
|
+
/**
|
|
437
|
+
* `permdock rls migrate`: a dry run unless `write`; exits 1 while a key is
|
|
438
|
+
* unknown.
|
|
439
|
+
*/
|
|
422
440
|
async function runRlsMigrate(input) {
|
|
423
441
|
const root = resolve(input.cwd, input.sql);
|
|
424
442
|
if (!existsSync(root)) return {
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { c as listPermissions } from "./permission-registry-B8tYxPIt.js";
|
|
2
|
+
import { i as configError } from "./errors-Vpu6rKHl.js";
|
|
3
|
+
import { a as loadModule, s as pickNamed, t as asPermissionTree } from "./load-DjSU5KXO.js";
|
|
4
|
+
import { i as isModuleKey, n as MODULE_KEYS } from "./config-shape-ykV0Vm2n.js";
|
|
5
|
+
import { existsSync, readFileSync, statSync } from "node:fs";
|
|
6
|
+
import { dirname, relative, resolve } from "node:path";
|
|
7
|
+
import { parseSync } from "oxc-parser";
|
|
8
|
+
//#region src/cli/project/module-values.ts
|
|
9
|
+
/** The export each module key is read from, as `load.ts` reads it. */
|
|
10
|
+
const EXPORT_OF = {
|
|
11
|
+
policy: "policy",
|
|
12
|
+
permissions: "permissions",
|
|
13
|
+
operations: "operations"
|
|
14
|
+
};
|
|
15
|
+
const EXTENSIONS = [
|
|
16
|
+
".ts",
|
|
17
|
+
".tsx",
|
|
18
|
+
".mts",
|
|
19
|
+
".js",
|
|
20
|
+
".mjs",
|
|
21
|
+
".jsx"
|
|
22
|
+
];
|
|
23
|
+
function isFile(path) {
|
|
24
|
+
return existsSync(path) && statSync(path).isFile();
|
|
25
|
+
}
|
|
26
|
+
/** A relative specifier resolved the way a TypeScript bundler resolves it. */
|
|
27
|
+
function resolveRelative(from, specifier) {
|
|
28
|
+
const base = resolve(dirname(from), specifier);
|
|
29
|
+
return [
|
|
30
|
+
base,
|
|
31
|
+
base.replace(/\.js$/u, ".ts").replace(/\.mjs$/u, ".mts"),
|
|
32
|
+
...EXTENSIONS.map((extension) => `${base}${extension}`),
|
|
33
|
+
...EXTENSIONS.map((extension) => resolve(base, `index${extension}`))
|
|
34
|
+
].find(isFile);
|
|
35
|
+
}
|
|
36
|
+
function relativeImports(file) {
|
|
37
|
+
const parsed = parseSync(file, readFileSync(file, "utf8"));
|
|
38
|
+
return [...new Set(parsed.module.staticImports.map((entry) => entry.moduleRequest.value).filter((specifier) => specifier.startsWith(".")))];
|
|
39
|
+
}
|
|
40
|
+
function fieldOf(value, key) {
|
|
41
|
+
return Reflect.get(value, key);
|
|
42
|
+
}
|
|
43
|
+
function leafKeys(value) {
|
|
44
|
+
try {
|
|
45
|
+
return listPermissions(asPermissionTree(value)).map((leaf) => leaf.key).toSorted().join(",");
|
|
46
|
+
} catch {
|
|
47
|
+
return "";
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Whether `exported` is the value the config passed. A module evaluated twice
|
|
52
|
+
* (once natively, once through jiti, or fresh under `--watch`) yields a second
|
|
53
|
+
* object, so a policy compares by fingerprint and a tree by its leaf keys.
|
|
54
|
+
*/
|
|
55
|
+
function sameValue(key, value, exported) {
|
|
56
|
+
if (exported === value) return true;
|
|
57
|
+
if (exported === null || typeof exported !== "object") return false;
|
|
58
|
+
switch (key) {
|
|
59
|
+
case "policy": {
|
|
60
|
+
const fingerprint = fieldOf(value, "fingerprint");
|
|
61
|
+
return typeof fingerprint === "string" && fingerprint === fieldOf(exported, "fingerprint");
|
|
62
|
+
}
|
|
63
|
+
case "permissions": return leafKeys(value) !== "" && leafKeys(value) === leafKeys(exported);
|
|
64
|
+
case "operations": {
|
|
65
|
+
const names = Object.keys(value).toSorted().join(",");
|
|
66
|
+
return names !== "" && names === Object.keys(exported).toSorted().join(",");
|
|
67
|
+
}
|
|
68
|
+
default: return key;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The module path, relative to `cwd`, of the module the config file imports
|
|
73
|
+
* `value` from as its `policy`, `permissions` or `operations` export.
|
|
74
|
+
*/
|
|
75
|
+
async function traceModuleValue(input) {
|
|
76
|
+
const name = EXPORT_OF[input.key];
|
|
77
|
+
for (const specifier of relativeImports(input.file)) {
|
|
78
|
+
const abs = resolveRelative(input.file, specifier);
|
|
79
|
+
if (abs === void 0) continue;
|
|
80
|
+
const mod = await loadModule(abs, input.options).catch(() => void 0);
|
|
81
|
+
if (mod !== void 0 && sameValue(input.key, input.value, pickNamed(mod, [name]))) {
|
|
82
|
+
const path = relative(input.cwd, abs).replaceAll("\\", "/");
|
|
83
|
+
return path.startsWith(".") ? path : `./${path}`;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
throw configError(`PermDock CLI: ${input.display}: ${input.key} is a value no relative import of the config exports as '${name}' or default; import it from its module, or set ${input.key} to the module path`);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* `config` with each `policy`, `permissions` or `operations` value replaced by
|
|
90
|
+
* the path of the module the config file imports it from, so every command
|
|
91
|
+
* reads one form.
|
|
92
|
+
*/
|
|
93
|
+
async function traceModuleValues(input) {
|
|
94
|
+
const traced = { ...input.config };
|
|
95
|
+
for (const key of Object.keys(MODULE_KEYS)) {
|
|
96
|
+
const value = input.config[key];
|
|
97
|
+
if (!isModuleKey(key) || value === null || typeof value !== "object") continue;
|
|
98
|
+
traced[key] = await traceModuleValue({
|
|
99
|
+
...input,
|
|
100
|
+
key,
|
|
101
|
+
value
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
return traced;
|
|
105
|
+
}
|
|
106
|
+
//#endregion
|
|
107
|
+
export { traceModuleValues };
|
package/dist/nest/index.d.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { T as Policy, sr as Principal } from "../policy-types-
|
|
2
|
-
import { u as Permission } from "../permission-types-
|
|
3
|
-
import { a as PermDock } from "../permdock-
|
|
4
|
-
import { n as RevocationFeed } from "../revocations-
|
|
5
|
-
import { D as ConnectionOptions, T as Connection, f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-
|
|
6
|
-
import { t as ServerAdapterOptions } from "../bind-
|
|
1
|
+
import { T as Policy, sr as Principal } from "../policy-types-CCiDRZBH.js";
|
|
2
|
+
import { u as Permission } from "../permission-types-CAY-GU7e.js";
|
|
3
|
+
import { a as PermDock } from "../permdock-B6Sf4T_S.js";
|
|
4
|
+
import { n as RevocationFeed } from "../revocations-BaUXHM1N.js";
|
|
5
|
+
import { D as ConnectionOptions, T as Connection, f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-CIlpSA2G.js";
|
|
6
|
+
import { t as ServerAdapterOptions } from "../bind-Cp2hBHzP.js";
|
|
7
7
|
import { r as sendResponse, t as NodeRequest } from "../http-B_LphE5Y.js";
|
|
8
8
|
import { CanActivate, DynamicModule, ExceptionFilter, ExecutionContext, Type } from "@nestjs/common";
|
|
9
9
|
//#region src/nest/http.d.ts
|
|
10
10
|
/**
|
|
11
11
|
* `@nestjs/platform-express` hands the guard an `IncomingMessage`;
|
|
12
|
-
* `@nestjs/platform-fastify` hands it a `FastifyRequest` whose stream is
|
|
12
|
+
* `@nestjs/platform-fastify` hands it a `FastifyRequest` whose stream is
|
|
13
|
+
* `raw`.
|
|
13
14
|
*/
|
|
14
15
|
export declare function toRequest(req: NodeRequest): Request;
|
|
15
16
|
//#endregion
|
|
@@ -30,18 +31,27 @@ type NestPermDockOptions<TUser = unknown> = ServerAdapterOptions<NestRequest, TU
|
|
|
30
31
|
};
|
|
31
32
|
/** A gateway client: Socket.IO (`emit`, `disconnect`) or `ws` (`close`). */
|
|
32
33
|
type NestSocket = {
|
|
33
|
-
emit
|
|
34
|
-
disconnect
|
|
35
|
-
close
|
|
34
|
+
emit?: (event: string, payload: unknown) => unknown;
|
|
35
|
+
disconnect?: (close?: boolean) => unknown;
|
|
36
|
+
close?: (code?: number, reason?: string) => unknown;
|
|
36
37
|
};
|
|
37
|
-
/**
|
|
38
|
+
/**
|
|
39
|
+
* `Protect(null, data?, { oauthScopes })` needs a principal and one of the
|
|
40
|
+
* OAuth scopes, but no permission.
|
|
41
|
+
*/
|
|
38
42
|
type NestProtect = (permission: Permission | null, data?: (req: NestRequest) => unknown, protectOptions?: ProtectOptions) => ClassDecorator & MethodDecorator;
|
|
39
43
|
type NestHandlerOptions = {
|
|
40
|
-
/**
|
|
44
|
+
/**
|
|
45
|
+
* Controller path; may hold route params such as `:org`. Default
|
|
46
|
+
* `api/permdock`.
|
|
47
|
+
*/
|
|
41
48
|
readonly path?: string;
|
|
42
49
|
};
|
|
43
50
|
type PermDockModuleOptions = {
|
|
44
|
-
/**
|
|
51
|
+
/**
|
|
52
|
+
* `"global"` registers `PermDockGuard` as `APP_GUARD`, so every `Protect`
|
|
53
|
+
* rule runs without `UseGuards`.
|
|
54
|
+
*/
|
|
45
55
|
readonly guard?: "global";
|
|
46
56
|
};
|
|
47
57
|
type NestPermDock = {
|
package/dist/nest/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
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 { c as writeReply, r as hasCredentials } from "../http-
|
|
5
|
-
import { l as InvalidSignatureError, p as webBotAuthVerifier, u as discoverViaSignatureAgent } from "../evaluations-
|
|
6
|
-
import { t as problemFromError } from "../map-error-
|
|
7
|
-
import { a as socketConnection, r as bindKernel } from "../bind-
|
|
8
|
-
import { a as onRevoked, n as closeReason, t as POLICY_VIOLATION } from "../stream-
|
|
9
|
-
import { n as sendResponse, r as toRequest$1, t as isServerResponse } from "../http-
|
|
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 { c as writeReply, r as hasCredentials } from "../http-DKLXrFGk.js";
|
|
5
|
+
import { l as InvalidSignatureError, p as webBotAuthVerifier, u as discoverViaSignatureAgent } from "../evaluations-IBceAeKT.js";
|
|
6
|
+
import { t as problemFromError } from "../map-error-pasIGqMT.js";
|
|
7
|
+
import { a as socketConnection, r as bindKernel } from "../bind-D_sZSVA3.js";
|
|
8
|
+
import { a as onRevoked, n as closeReason, t as POLICY_VIOLATION } from "../stream-CDvF0sJm.js";
|
|
9
|
+
import { n as sendResponse, r as toRequest$1, t as isServerResponse } from "../http-DH94eh6f.js";
|
|
10
10
|
import { Catch, Controller, Get, Inject, Injectable, Module, Post, Req, Res, createParamDecorator } from "@nestjs/common";
|
|
11
11
|
import { APP_FILTER, APP_GUARD, Reflector } from "@nestjs/core";
|
|
12
12
|
//#region src/nest/decorate.ts
|
|
@@ -35,7 +35,8 @@ function isFastifyReply(value) {
|
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
37
|
* `@nestjs/platform-express` hands the guard an `IncomingMessage`;
|
|
38
|
-
* `@nestjs/platform-fastify` hands it a `FastifyRequest` whose stream is
|
|
38
|
+
* `@nestjs/platform-fastify` hands it a `FastifyRequest` whose stream is
|
|
39
|
+
* `raw`.
|
|
39
40
|
*/
|
|
40
41
|
function toRequest(req) {
|
|
41
42
|
if (isReadable(req)) return toRequest$1(req);
|
|
@@ -75,7 +76,10 @@ function applyParameter(cls, key, index, decorator) {
|
|
|
75
76
|
function hasEmit(value) {
|
|
76
77
|
return typeof value === "object" && value !== null && typeof value.emit === "function";
|
|
77
78
|
}
|
|
78
|
-
/**
|
|
79
|
+
/**
|
|
80
|
+
* One call per loader for a request, so class and method rules naming the same
|
|
81
|
+
* loader share its row.
|
|
82
|
+
*/
|
|
79
83
|
function loadsFor(req) {
|
|
80
84
|
const loaded = /* @__PURE__ */ new Map();
|
|
81
85
|
return (loader) => {
|
|
@@ -130,7 +134,10 @@ function createPermDock(policy, options) {
|
|
|
130
134
|
});
|
|
131
135
|
return conn;
|
|
132
136
|
});
|
|
133
|
-
/**
|
|
137
|
+
/**
|
|
138
|
+
* Decides each rule for a gateway message against the client's connection, as
|
|
139
|
+
* `protect` does for HTTP.
|
|
140
|
+
*/
|
|
134
141
|
const checkMessage = async (rules, conn, req) => {
|
|
135
142
|
const request = req === void 0 ? void 0 : bind(req);
|
|
136
143
|
const load = loadsFor(req);
|
package/dist/next/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as PermissionBoundaryState } from "../boundary-
|
|
1
|
+
import { t as PermissionBoundaryState } from "../boundary-C9ck-3uK.js";
|
|
2
2
|
import { ComponentType, ReactNode } from "react";
|
|
3
3
|
//#region src/next/client.d.ts
|
|
4
4
|
/** A fallback node, or a function of what was refused. */
|
|
@@ -6,7 +6,10 @@ export type PermissionBoundaryFallback = ReactNode | ((state: PermissionBoundary
|
|
|
6
6
|
export type PermissionBoundaryProps = {
|
|
7
7
|
/** Rendered in place of the children when one throws `PermDockDeniedError`. */
|
|
8
8
|
readonly denied?: PermissionBoundaryFallback;
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Rendered when a child throws `PermDockApprovalRequiredError`; defaults to
|
|
11
|
+
* `denied`.
|
|
12
|
+
*/
|
|
10
13
|
readonly approval?: PermissionBoundaryFallback;
|
|
11
14
|
};
|
|
12
15
|
/**
|
package/dist/next/client.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { n as boundaryFallback, t as boundaryDigest } from "../boundary-
|
|
2
|
+
import { n as boundaryFallback, t as boundaryDigest } from "../boundary-BV3O1eud.js";
|
|
3
3
|
import { createContext, useContext } from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
import * as nextError from "next/error.js";
|