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
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { i as readJsonFile } from "./files-BSjrtIHw.js";
|
|
2
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
//#region src/cli/project/package-root.ts
|
|
6
|
+
let cached;
|
|
7
|
+
/**
|
|
8
|
+
* The `permdock` package directory. The bundler may place this module in
|
|
9
|
+
* `dist/cli/` or in a shared chunk at `dist/`, so walk up instead of assuming a
|
|
10
|
+
* depth.
|
|
11
|
+
*/
|
|
12
|
+
function packageRoot() {
|
|
13
|
+
cached ??= findPackageRoot(dirname(fileURLToPath(import.meta.url)));
|
|
14
|
+
return cached;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The nearest directory at or above `start` whose `package.json` is named
|
|
18
|
+
* `permdock`.
|
|
19
|
+
*/
|
|
20
|
+
function findPackageRoot(start) {
|
|
21
|
+
let dir = start;
|
|
22
|
+
for (;;) {
|
|
23
|
+
const manifest = join(dir, "package.json");
|
|
24
|
+
if (existsSync(manifest)) {
|
|
25
|
+
const { name } = readJsonFile(manifest);
|
|
26
|
+
if (name === "permdock") return dir;
|
|
27
|
+
}
|
|
28
|
+
const parent = dirname(dir);
|
|
29
|
+
if (parent === dir) throw new Error("PermDock CLI: cannot find the permdock package root");
|
|
30
|
+
dir = parent;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
//#region src/cli/core/version.ts
|
|
35
|
+
function cliVersion() {
|
|
36
|
+
return JSON.parse(readFileSync(join(packageRoot(), "package.json"), "utf8")).version;
|
|
37
|
+
}
|
|
38
|
+
function generatorBanner() {
|
|
39
|
+
return `permdock@${cliVersion()}`;
|
|
40
|
+
}
|
|
41
|
+
const CATALOG_SCHEMA = "https://permdock.com/schemas/catalog-v1.json";
|
|
42
|
+
const SUPABASE_MANIFEST_SCHEMA = "https://permdock.com/schemas/supabase-manifest-v1.json";
|
|
43
|
+
const USAGE_REPORT_SCHEMA = "https://permdock.com/schemas/usage-report-v1.json";
|
|
44
|
+
const DOCTOR_REPORT_SCHEMA = "https://permdock.com/schemas/doctor-report-v1.json";
|
|
45
|
+
const CONFIG_REPORT_SCHEMA = "https://permdock.com/schemas/config-report-v1.json";
|
|
46
|
+
const ARAZZO_REPORT_SCHEMA = "https://permdock.com/schemas/arazzo-report-v1.json";
|
|
47
|
+
//#endregion
|
|
48
|
+
export { SUPABASE_MANIFEST_SCHEMA as a, generatorBanner as c, DOCTOR_REPORT_SCHEMA as i, packageRoot as l, CATALOG_SCHEMA as n, USAGE_REPORT_SCHEMA as o, CONFIG_REPORT_SCHEMA as r, cliVersion as s, ARAZZO_REPORT_SCHEMA as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { s as cliVersion } from "./version-DMQ0dnN5.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r as requiredPlans } from "./problem-details-
|
|
2
|
-
import {
|
|
1
|
+
import { r as requiredPlans } from "./problem-details-CLDgX1KV.js";
|
|
2
|
+
import { n as describe } from "./describe-Bb4hGK5d.js";
|
|
3
3
|
//#region src/client/views.ts
|
|
4
4
|
function permissionSet(store, permissions, data) {
|
|
5
5
|
const granted = [];
|
|
@@ -33,7 +33,11 @@ function tenantView(permdock) {
|
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
function rolesView(permdock, options) {
|
|
36
|
-
return { roles:
|
|
36
|
+
return { roles: permdock.heldRoles({
|
|
37
|
+
...options.tenant === void 0 ? {} : { tenant: options.tenant },
|
|
38
|
+
...options.scope === void 0 ? {} : { scope: options.scope },
|
|
39
|
+
...options.id === void 0 ? {} : { id: options.id }
|
|
40
|
+
}) };
|
|
37
41
|
}
|
|
38
42
|
function subjectView(permdock) {
|
|
39
43
|
const snapshot = permdock.snapshot();
|
|
@@ -45,11 +49,17 @@ function subjectView(permdock) {
|
|
|
45
49
|
simulated: typeof snapshot === "object" && snapshot !== null && "simulated" in snapshot && snapshot.simulated === true
|
|
46
50
|
};
|
|
47
51
|
}
|
|
48
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* The root's view of another tenant for a `Protected` with a `tenant` prop;
|
|
54
|
+
* `undefined` answers the active one.
|
|
55
|
+
*/
|
|
49
56
|
function scopedTenant(root, tenant) {
|
|
50
57
|
return tenant === void 0 ? void 0 : root.tenant(tenant);
|
|
51
58
|
}
|
|
52
|
-
/**
|
|
59
|
+
/**
|
|
60
|
+
* An instance whose every read answers from `current()`, so a held reference
|
|
61
|
+
* follows the store.
|
|
62
|
+
*/
|
|
53
63
|
function livePermDock(current) {
|
|
54
64
|
return new Proxy({}, { get(_target, prop, _receiver) {
|
|
55
65
|
return Reflect.get(current(), prop);
|
|
@@ -114,7 +124,10 @@ function describeWith(messages) {
|
|
|
114
124
|
messages
|
|
115
125
|
});
|
|
116
126
|
}
|
|
117
|
-
/**
|
|
127
|
+
/**
|
|
128
|
+
* The `GateView` of a permission state; `describeDecision` localises the
|
|
129
|
+
* reason.
|
|
130
|
+
*/
|
|
118
131
|
function gateView(state, describeDecision, mode = "disable") {
|
|
119
132
|
const pending = state.status === "pending";
|
|
120
133
|
const needsApproval = state.decision.outcome === "approval-required";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { F as WithX, N as AppDataSchema, n as ActionMeta } from "./permission-types-CAY-GU7e.js";
|
|
2
2
|
//#region src/core/vocabulary.d.ts
|
|
3
3
|
declare const ROLE_KIND: "role";
|
|
4
4
|
declare const PLAN_KIND: "plan";
|
|
@@ -6,8 +6,8 @@ declare const PLAN_KIND: "plan";
|
|
|
6
6
|
type VocabularyOptions<X = never> = {
|
|
7
7
|
/**
|
|
8
8
|
* A Standard Schema for every leaf's `meta.x`, validated synchronously at
|
|
9
|
-
* definition time. On a role tree it also checks the `meta.x` of custom
|
|
10
|
-
*
|
|
9
|
+
* definition time. On a role tree it also checks the `meta.x` of custom roles
|
|
10
|
+
* a `CustomRoleSource` returns; an invalid one is dropped, not the role.
|
|
11
11
|
*/
|
|
12
12
|
readonly x?: AppDataSchema<X>;
|
|
13
13
|
};
|
|
@@ -25,7 +25,10 @@ type Role<K extends string = string> = {
|
|
|
25
25
|
readonly on?: string;
|
|
26
26
|
readonly assignable: boolean;
|
|
27
27
|
readonly meta: RoleMeta;
|
|
28
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* A shared custom role: the platform defines it for every tenant, and a
|
|
30
|
+
* tenant admin cannot edit it.
|
|
31
|
+
*/
|
|
29
32
|
readonly shared?: true;
|
|
30
33
|
readonly kind: typeof ROLE_KIND;
|
|
31
34
|
};
|
package/dist/vue/index.d.ts
CHANGED
|
@@ -1,23 +1,31 @@
|
|
|
1
|
-
import { Gt as Snapshot, In as ApprovalRequiredDecision, Ln as Decision, dt as TokenVerifier, or as Membership } from "../policy-types-
|
|
2
|
-
import { u as Permission } from "../permission-types-
|
|
3
|
-
import { r as Role } from "../vocabulary-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { t as
|
|
7
|
-
import { t as
|
|
8
|
-
import {
|
|
1
|
+
import { Gt as Snapshot, In as ApprovalRequiredDecision, Ln as Decision, dt as TokenVerifier, j as PolicyVocabulary, or as Membership } from "../policy-types-CCiDRZBH.js";
|
|
2
|
+
import { u as Permission } from "../permission-types-CAY-GU7e.js";
|
|
3
|
+
import { r as Role } from "../vocabulary-DEJ5j4mR.js";
|
|
4
|
+
import { d as UncheckedData, s as RowData } from "../permdock-B6Sf4T_S.js";
|
|
5
|
+
import { c as requiredPlans } from "../errors-zi_4T-rx.js";
|
|
6
|
+
import { i as describe, r as DescribeOptions, t as DecisionDescription } from "../describe-ByS9LgHK.js";
|
|
7
|
+
import { t as PermissionBoundaryState } from "../boundary-C9ck-3uK.js";
|
|
8
|
+
import { n as ProtectedAction, t as ActionResult } from "../action-result-CL-QCITA.js";
|
|
9
|
+
import { t as approvalHeaders } from "../headers-B9jQxjtW.js";
|
|
10
|
+
import { a as FilterResult, b as eventSourceRefresh, c as PermissionSet, d as ProtectedActionView, f as ProviderOptionsBase, h as TenantView, i as ClientStatus, l as PermissionState, m as SubjectView, n as ApprovalState, o as GateMode, p as RolesOptions, r as ClientPermDock, s as GateView, t as ApprovalHandle, v as EventSourceRefreshOptions, y as RefreshTrigger } from "../types-B_d_g7T3.js";
|
|
9
11
|
import { ComputedRef, DefineComponent, MaybeRefOrGetter, Plugin, VNode } from "vue";
|
|
10
12
|
//#region src/vue/types.d.ts
|
|
11
13
|
type PermDockPluginOptions = ProviderOptionsBase & {
|
|
12
14
|
/**
|
|
13
|
-
* A ref or getter re-hydrates the store when it changes; a promise keeps
|
|
14
|
-
*
|
|
15
|
+
* A ref or getter re-hydrates the store when it changes; a promise keeps the
|
|
16
|
+
* store `pending` until it settles (await the same promise in an async
|
|
15
17
|
* `setup` under `<Suspense>`).
|
|
16
18
|
*/
|
|
17
19
|
readonly snapshot: MaybeRefOrGetter<Snapshot | string> | PromiseLike<Snapshot | string>;
|
|
18
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* A ref or getter switches the active tenant (`refresh({ tenant })`) when it
|
|
22
|
+
* changes.
|
|
23
|
+
*/
|
|
19
24
|
readonly tenant?: MaybeRefOrGetter<string | undefined>;
|
|
20
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* Read on every request: a ref or getter carries a rotated token without
|
|
27
|
+
* rebuilding the store.
|
|
28
|
+
*/
|
|
21
29
|
readonly headers?: MaybeRefOrGetter<Readonly<Record<string, string>> | undefined>;
|
|
22
30
|
/** Read on every verification; set it at install to verify signed snapshots. */
|
|
23
31
|
readonly verifier?: MaybeRefOrGetter<TokenVerifier | undefined>;
|
|
@@ -25,7 +33,10 @@ type PermDockPluginOptions = ProviderOptionsBase & {
|
|
|
25
33
|
readonly defaults?: PermDockDefaults;
|
|
26
34
|
};
|
|
27
35
|
type SlotOutput = VNode | VNode[] | string | null;
|
|
28
|
-
/**
|
|
36
|
+
/**
|
|
37
|
+
* Render functions for the `<Protected>` slots a component leaves out; they get
|
|
38
|
+
* the slot props.
|
|
39
|
+
*/
|
|
29
40
|
type PermDockDefaults = {
|
|
30
41
|
readonly pending?: () => SlotOutput;
|
|
31
42
|
readonly denied?: (props: {
|
|
@@ -35,16 +46,40 @@ type PermDockDefaults = {
|
|
|
35
46
|
readonly decision: ApprovalRequiredDecision;
|
|
36
47
|
}) => SlotOutput;
|
|
37
48
|
};
|
|
49
|
+
/**
|
|
50
|
+
* `useProtectedAction` in Vue: the fields of `ProtectedActionView` as computed
|
|
51
|
+
* refs.
|
|
52
|
+
*/
|
|
53
|
+
type ProtectedActionRefs<T> = {
|
|
54
|
+
readonly gate: ComputedRef<GateView>;
|
|
55
|
+
readonly result: ComputedRef<ActionResult<T> | undefined>;
|
|
56
|
+
readonly pending: ComputedRef<boolean>;
|
|
57
|
+
readonly approval: ComputedRef<ApprovalHandle | undefined>;
|
|
58
|
+
readonly run: (input: unknown) => Promise<ActionResult<T>>;
|
|
59
|
+
readonly retry: () => Promise<ActionResult<T> | undefined>;
|
|
60
|
+
};
|
|
38
61
|
//#endregion
|
|
39
62
|
//#region src/vue/composables.d.ts
|
|
40
|
-
export declare function usePermDock(): ClientPermDock
|
|
41
|
-
|
|
63
|
+
export declare function usePermDock<V extends PolicyVocabulary = PolicyVocabulary>(): ClientPermDock<V>;
|
|
64
|
+
type PermissionRefs = {
|
|
42
65
|
readonly allowed: ComputedRef<boolean>;
|
|
43
66
|
readonly status: ComputedRef<PermissionState["status"]>;
|
|
44
67
|
readonly decision: ComputedRef<Decision>;
|
|
45
68
|
};
|
|
69
|
+
export declare function usePermission<D>(permission: MaybeRefOrGetter<Permission>, data?: MaybeRefOrGetter<UncheckedData<D>>): PermissionRefs;
|
|
70
|
+
export declare function usePermission<P extends Permission>(permission: MaybeRefOrGetter<P>, data?: MaybeRefOrGetter<RowData<P>>): PermissionRefs;
|
|
71
|
+
/**
|
|
72
|
+
* What a permission-gated control renders, as `useGate` in React: `hidden`,
|
|
73
|
+
* `disabled`, `needsApproval`, `upgrade` and a localised `reason`.
|
|
74
|
+
*/
|
|
75
|
+
export declare function useGate<D>(permission: MaybeRefOrGetter<Permission>, data?: MaybeRefOrGetter<UncheckedData<D>>, options?: {
|
|
76
|
+
readonly mode?: GateMode;
|
|
77
|
+
}): ComputedRef<GateView>;
|
|
78
|
+
export declare function useGate<P extends Permission>(permission: MaybeRefOrGetter<P>, data?: MaybeRefOrGetter<RowData<P>>, options?: {
|
|
79
|
+
readonly mode?: GateMode;
|
|
80
|
+
}): ComputedRef<GateView>;
|
|
46
81
|
export declare function usePermissions(permissions: MaybeRefOrGetter<readonly Permission[]>, data?: MaybeRefOrGetter<unknown>): ComputedRef<PermissionSet>;
|
|
47
|
-
export declare function useFilter<T>(permission: Permission<string, T
|
|
82
|
+
export declare function useFilter<T>(permission: Permission<string, NoInfer<T>, "instance">, rows: MaybeRefOrGetter<readonly T[]>): ComputedRef<FilterResult<T>>;
|
|
48
83
|
export declare function useTenant(): ComputedRef<TenantView>;
|
|
49
84
|
export declare function useMemberships(): ComputedRef<readonly Membership[]>;
|
|
50
85
|
export declare function useRoles(options?: MaybeRefOrGetter<RolesOptions>): ComputedRef<{
|
|
@@ -58,16 +93,30 @@ export declare function useSubject(): ComputedRef<SubjectView>;
|
|
|
58
93
|
export declare function useApproval(decision: MaybeRefOrGetter<Decision>): ComputedRef<ApprovalHandle>;
|
|
59
94
|
/** `describe` with the plugin's `messages`; a call's own `messages` win. */
|
|
60
95
|
export declare function useDescribe(): (decision: Decision, options?: DescribeOptions) => DecisionDescription;
|
|
96
|
+
/**
|
|
97
|
+
* A `protectAction` server action wired to a control, as `useProtectedAction`
|
|
98
|
+
* in React: refs for `gate`, `result`, `pending` and `approval`, plus `run` and
|
|
99
|
+
* `retry`.
|
|
100
|
+
*/
|
|
101
|
+
export declare function useProtectedAction<T, D>(action: ProtectedAction<T>, permission: MaybeRefOrGetter<Permission>, data?: MaybeRefOrGetter<UncheckedData<D>>, options?: {
|
|
102
|
+
readonly mode?: GateMode;
|
|
103
|
+
}): ProtectedActionRefs<T>;
|
|
104
|
+
export declare function useProtectedAction<T, P extends Permission>(action: ProtectedAction<T>, permission: MaybeRefOrGetter<P>, data?: MaybeRefOrGetter<RowData<P>>, options?: {
|
|
105
|
+
readonly mode?: GateMode;
|
|
106
|
+
}): ProtectedActionRefs<T>;
|
|
61
107
|
//#endregion
|
|
62
108
|
//#region src/vue/boundary.d.ts
|
|
63
109
|
/**
|
|
64
|
-
* Catches `PermDockDeniedError` and `PermDockApprovalRequiredError` thrown
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
110
|
+
* Catches `PermDockDeniedError` and `PermDockApprovalRequiredError` thrown by a
|
|
111
|
+
* descendant and renders the `denied` slot, or the `approval` slot for an
|
|
112
|
+
* approval request (default `denied`). The slots receive the refused permission
|
|
113
|
+
* and `retry()`. Any other error propagates.
|
|
68
114
|
*/
|
|
69
115
|
export declare const PermissionBoundary: DefineComponent;
|
|
70
|
-
/**
|
|
116
|
+
/**
|
|
117
|
+
* Inside a `PermissionBoundary`: what was refused and `retry()`, or `null`
|
|
118
|
+
* while the children render.
|
|
119
|
+
*/
|
|
71
120
|
export declare function usePermissionBoundary(): PermissionBoundaryState | null;
|
|
72
121
|
//#endregion
|
|
73
122
|
//#region src/vue/plugin.d.ts
|
|
@@ -81,4 +130,4 @@ type ProtectedProps = {
|
|
|
81
130
|
};
|
|
82
131
|
export declare const Protected: DefineComponent<ProtectedProps>;
|
|
83
132
|
//#endregion
|
|
84
|
-
export { type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type FilterResult, type PermDockDefaults, type PermDockPluginOptions, type PermissionBoundaryState, type PermissionSet, type PermissionState, type ProtectedProps, type RolesOptions, type SubjectView, type TenantView, approvalHeaders, describe, requiredPlans };
|
|
133
|
+
export { type ActionResult, type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type EventSourceRefreshOptions, type FilterResult, type GateMode, type GateView, type PermDockDefaults, type PermDockPluginOptions, type PermissionBoundaryState, type PermissionSet, type PermissionState, type ProtectedAction, type ProtectedActionRefs, type ProtectedActionView, type ProtectedProps, type RefreshTrigger, type RolesOptions, type SubjectView, type TenantView, approvalHeaders, describe, eventSourceRefresh, requiredPlans };
|
package/dist/vue/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { r as requiredPlans } from "../problem-details-
|
|
2
|
-
import {
|
|
3
|
-
import { n as boundaryFallback, t as boundaryDigest } from "../boundary-
|
|
4
|
-
import {
|
|
5
|
-
import { i as
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
1
|
+
import { r as requiredPlans } from "../problem-details-CLDgX1KV.js";
|
|
2
|
+
import { n as describe } from "../describe-Bb4hGK5d.js";
|
|
3
|
+
import { n as boundaryFallback, t as boundaryDigest } from "../boundary-BV3O1eud.js";
|
|
4
|
+
import { n as actionRunner, r as approvalHeaders, t as actionApproval } from "../protected-action-DUYqb-Ma.js";
|
|
5
|
+
import { a as livePermDock, c as rolesView, d as subjectView, f as tenantView, i as gateView, l as scopedTenant, n as describeWith, o as permissionSet, r as filterResult, s as protectedView, t as approvalHandle, u as slotContent } from "../views-CD8wuL4Z.js";
|
|
6
|
+
import { a as isPromiseLike, r as eventSourceRefresh } from "../store-options-Dil3lraY.js";
|
|
7
|
+
import { n as switchTenant, t as providerStore } from "../provider-store-CaTv00tr.js";
|
|
8
8
|
import { computed, defineComponent, effectScope, getCurrentScope, inject, isRef, onErrorCaptured, onScopeDispose, provide, shallowRef, toValue, watch } from "vue";
|
|
9
9
|
//#region src/vue/context.ts
|
|
10
10
|
const permDockKey = Symbol("permdock");
|
|
@@ -44,6 +44,16 @@ function usePermission(permission, data) {
|
|
|
44
44
|
decision: computed(() => state.value.decision)
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
|
+
function useGate(permission, data, options = {}) {
|
|
48
|
+
const store = useStore();
|
|
49
|
+
const permdock = useTick(store);
|
|
50
|
+
const describeDecision = useDescribe();
|
|
51
|
+
return computed(() => {
|
|
52
|
+
permdock.value;
|
|
53
|
+
const current = toValue(permission);
|
|
54
|
+
return gateView(store.permissionState(current, toValue(data)), (decision) => describeDecision(decision, { permission: current }), options.mode);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
47
57
|
function usePermissions(permissions, data) {
|
|
48
58
|
const store = useStore();
|
|
49
59
|
const permdock = useTick(store);
|
|
@@ -92,14 +102,38 @@ function useApproval(decision) {
|
|
|
92
102
|
function useDescribe() {
|
|
93
103
|
return describeWith(inject(permDockUiKey, {}).messages);
|
|
94
104
|
}
|
|
105
|
+
function useProtectedAction(action, permission, data, options = {}) {
|
|
106
|
+
const store = useStore();
|
|
107
|
+
const permdock = useTick(store);
|
|
108
|
+
const gate = useGate(permission, data, options);
|
|
109
|
+
const state = shallowRef({
|
|
110
|
+
result: void 0,
|
|
111
|
+
pending: false
|
|
112
|
+
});
|
|
113
|
+
const runner = actionRunner(() => action, (next) => {
|
|
114
|
+
state.value = next;
|
|
115
|
+
});
|
|
116
|
+
const approval = computed(() => {
|
|
117
|
+
permdock.value;
|
|
118
|
+
return actionApproval(store, state.value.result);
|
|
119
|
+
});
|
|
120
|
+
return {
|
|
121
|
+
gate,
|
|
122
|
+
result: computed(() => state.value.result),
|
|
123
|
+
pending: computed(() => state.value.pending),
|
|
124
|
+
approval,
|
|
125
|
+
run: runner.run,
|
|
126
|
+
retry: runner.retry
|
|
127
|
+
};
|
|
128
|
+
}
|
|
95
129
|
//#endregion
|
|
96
130
|
//#region src/vue/boundary.ts
|
|
97
131
|
const boundaryKey = Symbol("permdock-boundary");
|
|
98
132
|
/**
|
|
99
|
-
* Catches `PermDockDeniedError` and `PermDockApprovalRequiredError` thrown
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
133
|
+
* Catches `PermDockDeniedError` and `PermDockApprovalRequiredError` thrown by a
|
|
134
|
+
* descendant and renders the `denied` slot, or the `approval` slot for an
|
|
135
|
+
* approval request (default `denied`). The slots receive the refused permission
|
|
136
|
+
* and `retry()`. Any other error propagates.
|
|
103
137
|
*/
|
|
104
138
|
const PermissionBoundary = defineComponent({
|
|
105
139
|
name: "PermissionBoundary",
|
|
@@ -127,7 +161,10 @@ const PermissionBoundary = defineComponent({
|
|
|
127
161
|
};
|
|
128
162
|
}
|
|
129
163
|
});
|
|
130
|
-
/**
|
|
164
|
+
/**
|
|
165
|
+
* Inside a `PermissionBoundary`: what was refused and `retry()`, or `null`
|
|
166
|
+
* while the children render.
|
|
167
|
+
*/
|
|
131
168
|
function usePermissionBoundary() {
|
|
132
169
|
return inject(boundaryKey, null)?.value ?? null;
|
|
133
170
|
}
|
|
@@ -209,4 +246,4 @@ const Protected = defineComponent({
|
|
|
209
246
|
}
|
|
210
247
|
});
|
|
211
248
|
//#endregion
|
|
212
|
-
export { PermissionBoundary, Protected, approvalHeaders, describe, permdockPlugin, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useDescribe, useFilter, useMemberships, usePermDock, usePermission, usePermissionBoundary, usePermissions, useRoles, useSubject, useTenant };
|
|
249
|
+
export { PermissionBoundary, Protected, approvalHeaders, describe, eventSourceRefresh, permdockPlugin, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useDescribe, useFilter, useGate, useMemberships, usePermDock, usePermission, usePermissionBoundary, usePermissions, useProtectedAction, useRoles, useSubject, useTenant };
|
|
@@ -1,25 +1,28 @@
|
|
|
1
|
-
import { Rt as Instant } from "./policy-types-
|
|
2
|
-
import { m as ApprovalStore } from "./types-
|
|
1
|
+
import { Rt as Instant } from "./policy-types-CCiDRZBH.js";
|
|
2
|
+
import { m as ApprovalStore } from "./types-B_tiYvk8.js";
|
|
3
3
|
//#region src/workflow/waiter.d.ts
|
|
4
4
|
type ApprovalWaitOptions = {
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* When the approval request expires; the wait ends then whatever the store
|
|
7
|
+
* says.
|
|
8
|
+
*/
|
|
6
9
|
readonly expiresAt?: Instant;
|
|
7
10
|
/** Aborting rejects the wait with the signal's reason. */
|
|
8
11
|
readonly signal?: AbortSignal;
|
|
9
12
|
};
|
|
10
13
|
/**
|
|
11
|
-
* Suspends a run until an approval request is decided. `wait` resolves once
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
14
|
+
* Suspends a run until an approval request is decided. `wait` resolves once the
|
|
15
|
+
* request is no longer pending, `wake` is called for its token, or it expires;
|
|
16
|
+
* it never says how the request was decided, so the caller always decides again
|
|
17
|
+
* with the token. A durable runner implements it with its own suspension
|
|
18
|
+
* primitive.
|
|
16
19
|
*/
|
|
17
20
|
type ApprovalWaiter = {
|
|
18
21
|
/** Names the implementation in errors and events. */
|
|
19
22
|
readonly name?: string;
|
|
20
|
-
wait(token: string, options?: ApprovalWaitOptions)
|
|
23
|
+
wait: (token: string, options?: ApprovalWaitOptions) => Promise<void>;
|
|
21
24
|
/** Called after an approver resolves the request for `token`. */
|
|
22
|
-
wake(token: string)
|
|
25
|
+
wake: (token: string) => void | Promise<void>;
|
|
23
26
|
};
|
|
24
27
|
type PollingApprovalWaiterOptions = {
|
|
25
28
|
readonly store: ApprovalStore;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { i as dateAt } from "./time-
|
|
2
|
-
import { a as describeError } from "./errors-
|
|
3
|
-
import { t as defaultSrcPath } from "./files-
|
|
4
|
-
import { r as runCollect } from "./collect-
|
|
5
|
-
import { n as isConfigFile, r as loadConfig } from "./config-
|
|
1
|
+
import { i as dateAt } from "./time-nR1JesoH.js";
|
|
2
|
+
import { a as describeError } from "./errors-Vpu6rKHl.js";
|
|
3
|
+
import { t as defaultSrcPath } from "./files-BSjrtIHw.js";
|
|
4
|
+
import { r as runCollect } from "./collect-B7ZFAJU3.js";
|
|
5
|
+
import { n as isConfigFile, r as loadConfig } from "./config-BwPBfN0t.js";
|
|
6
6
|
import { watch } from "node:fs";
|
|
7
7
|
import { basename, dirname, relative, resolve, sep } from "node:path";
|
|
8
8
|
//#region src/cli/watch.ts
|
|
@@ -126,9 +126,9 @@ function createCollectScheduler(cwd, options, settings) {
|
|
|
126
126
|
};
|
|
127
127
|
}
|
|
128
128
|
/**
|
|
129
|
-
* `collect --watch`: one collect now, then one per change until Ctrl-C.
|
|
130
|
-
*
|
|
131
|
-
*
|
|
129
|
+
* `collect --watch`: one collect now, then one per change until Ctrl-C. Under
|
|
130
|
+
* `--json` each collect is an NDJSON event on stdout; otherwise a line on
|
|
131
|
+
* stderr.
|
|
132
132
|
*/
|
|
133
133
|
async function watchCollect(ctx, overrides) {
|
|
134
134
|
const emit = (status, message) => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { i as watchCollect } from "./watch-Cx_WciLE.js";
|
package/dist/webmcp/index.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { Gt as Snapshot, Ln as Decision } from "../policy-types-
|
|
2
|
-
import { f as PermissionTree, u as Permission } from "../permission-types-
|
|
1
|
+
import { Gt as Snapshot, Ln as Decision } from "../policy-types-CCiDRZBH.js";
|
|
2
|
+
import { f as PermissionTree, u as Permission } from "../permission-types-CAY-GU7e.js";
|
|
3
3
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
4
4
|
//#region src/webmcp/types.d.ts
|
|
5
5
|
type WebMcpClientStatus = "ready" | "pending" | "stale" | "server-only";
|
|
6
6
|
type WebMcpPermDock = {
|
|
7
|
-
can(permission: Permission, data?: unknown)
|
|
8
|
-
decide(permission: Permission, data?: unknown)
|
|
9
|
-
snapshot()
|
|
10
|
-
tenant
|
|
11
|
-
subscribe
|
|
12
|
-
status
|
|
7
|
+
can: (permission: Permission, data?: unknown) => boolean;
|
|
8
|
+
decide: (permission: Permission, data?: unknown) => Decision;
|
|
9
|
+
snapshot: () => Snapshot | string | Promise<Snapshot | string>;
|
|
10
|
+
tenant?: (id: string) => WebMcpPermDock;
|
|
11
|
+
subscribe?: (listener: () => void) => () => void;
|
|
12
|
+
status?: (permission?: Permission, data?: unknown) => WebMcpClientStatus;
|
|
13
13
|
};
|
|
14
14
|
type WebMcpToolContent = {
|
|
15
15
|
readonly type: "text";
|
|
@@ -37,12 +37,12 @@ type WebMcpRegisteredTool = {
|
|
|
37
37
|
readonly description?: string;
|
|
38
38
|
readonly inputSchema?: Readonly<Record<string, unknown>>;
|
|
39
39
|
readonly annotations?: WebMcpToolAnnotations;
|
|
40
|
-
execute(input: unknown)
|
|
40
|
+
execute: (input: unknown) => Promise<WebMcpToolResult>;
|
|
41
41
|
};
|
|
42
42
|
type ModelContext = {
|
|
43
|
-
registerTool(tool: WebMcpRegisteredTool, options?: {
|
|
43
|
+
registerTool: (tool: WebMcpRegisteredTool, options?: {
|
|
44
44
|
readonly signal?: AbortSignal;
|
|
45
|
-
})
|
|
45
|
+
}) => {
|
|
46
46
|
readonly unregister?: () => void;
|
|
47
47
|
};
|
|
48
48
|
};
|
package/dist/webmcp/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { r as isRecord, t as compact } from "../compact-CAf557ZB.js";
|
|
2
|
-
import { n as PermDockValidationError } from "../validation-error-
|
|
3
|
-
import { c as listPermissions, f as resourceOfNode, i as getRegistry, m as annotationsFor, s as isRegistryTree } from "../permission-registry-
|
|
4
|
-
import { n as isThenable, t as ignoreRejection } from "../thenable-
|
|
2
|
+
import { n as PermDockValidationError } from "../validation-error-CYg2kJEw.js";
|
|
3
|
+
import { c as listPermissions, f as resourceOfNode, i as getRegistry, m as annotationsFor, s as isRegistryTree } from "../permission-registry-B8tYxPIt.js";
|
|
4
|
+
import { n as isThenable, t as ignoreRejection } from "../thenable-BNSM1U2R.js";
|
|
5
5
|
import { n as resourceRef } from "../resource-ref-CaS9yVPi.js";
|
|
6
|
-
import { n as deniedToolRefusal, r as toolErrorResult, t as approvalToolRefusal } from "../tool-refusal-
|
|
6
|
+
import { n as deniedToolRefusal, r as toolErrorResult, t as approvalToolRefusal } from "../tool-refusal-Qpjs_W6M.js";
|
|
7
7
|
//#region src/webmcp/register.ts
|
|
8
8
|
const MISSING_CONTEXT = "permdock/webmcp: document.modelContext is absent; registerTools is a no-op.";
|
|
9
9
|
const CURRENT = Symbol.for("permdock.current");
|
|
@@ -109,7 +109,10 @@ function approvalResult(decision, permission, data) {
|
|
|
109
109
|
structuredContent: refusal.structured
|
|
110
110
|
};
|
|
111
111
|
}
|
|
112
|
-
/**
|
|
112
|
+
/**
|
|
113
|
+
* A collection permission names the resource type only, never an id from the
|
|
114
|
+
* input.
|
|
115
|
+
*/
|
|
113
116
|
function refOf(permission, data) {
|
|
114
117
|
return resourceRef(permission, permission.kind === "collection" ? void 0 : data);
|
|
115
118
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { a as sole, r as isRecord, t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { n as freezeDeep } from "./freeze-
|
|
3
|
-
import { t as loadPrincipal } from "./principal-source-
|
|
4
|
-
import { g as secondsOf, m as rfc3339 } from "./time-
|
|
5
|
-
import { d as scopeIdOf, f as scopeList, h as tenantOf, r as findScope, s as resolveScope, t as activeFor, u as scopeChain } from "./scopes-
|
|
6
|
-
import { a as readOnlyActorRefuses, n as coveredByDelegation } from "./delegation-
|
|
7
|
-
import { r as readWireValidity, t as isActive } from "./validity-
|
|
8
|
-
import { o as resourceRoleCondition } from "./grantee-conditions-
|
|
9
|
-
import { c as nowSeconds, n as inTeam, o as membershipField, r as isMembershipExpired } from "./tenancy-
|
|
10
|
-
import {
|
|
2
|
+
import { n as freezeDeep } from "./freeze-jjan0lCv.js";
|
|
3
|
+
import { t as loadPrincipal } from "./principal-source-C6N60GtM.js";
|
|
4
|
+
import { g as secondsOf, m as rfc3339 } from "./time-nR1JesoH.js";
|
|
5
|
+
import { d as scopeIdOf, f as scopeList, h as tenantOf, r as findScope, s as resolveScope, t as activeFor, u as scopeChain } from "./scopes-0Up_UA2t.js";
|
|
6
|
+
import { a as readOnlyActorRefuses, n as coveredByDelegation } from "./delegation-CDB6_keF.js";
|
|
7
|
+
import { r as readWireValidity, t as isActive } from "./validity-Buc7w8E9.js";
|
|
8
|
+
import { o as resourceRoleCondition } from "./grantee-conditions-BrYPe-w0.js";
|
|
9
|
+
import { c as nowSeconds, n as inTeam, o as membershipField, r as isMembershipExpired } from "./tenancy-5d1zVBvK.js";
|
|
10
|
+
import { a as bindConditionRefs, n as parseSnapshot } from "./snapshot-CXlzi69u.js";
|
|
11
11
|
//#region src/core/snapshot-sign.ts
|
|
12
12
|
/**
|
|
13
13
|
* The claims `signSnapshot` signs for `snapshot`. `issuedAt` and `expiresAt`
|
|
@@ -24,7 +24,10 @@ function snapshotClaims(snapshot) {
|
|
|
24
24
|
exp: secondsOf(expiresAt)
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* Signs `snapshot` as a `vnd.permdock.snapshot+jwt` with the claims
|
|
29
|
+
* `snapshotClaims` answers.
|
|
30
|
+
*/
|
|
28
31
|
function signSnapshot(snapshot, signer, options = {}) {
|
|
29
32
|
const { iat, exp, ...payload } = snapshotClaims(snapshot);
|
|
30
33
|
return signer.sign(payload, compact({
|
|
@@ -35,8 +38,8 @@ function signSnapshot(snapshot, signer, options = {}) {
|
|
|
35
38
|
}));
|
|
36
39
|
}
|
|
37
40
|
/**
|
|
38
|
-
* The `snapshot` claim of verified claims with `issuedAt` and `expiresAt`
|
|
39
|
-
*
|
|
41
|
+
* The `snapshot` claim of verified claims with `issuedAt` and `expiresAt` taken
|
|
42
|
+
* from `iat` and `exp`; `undefined` when the claim is not an object.
|
|
40
43
|
*/
|
|
41
44
|
function snapshotClaim(claims) {
|
|
42
45
|
const claim = claims["snapshot"];
|
|
@@ -79,8 +82,8 @@ function deniedFor(permission, reason) {
|
|
|
79
82
|
const PEEK = Object.freeze({ call: "can" });
|
|
80
83
|
/**
|
|
81
84
|
* What `permission` on `row` decides for the principal `principalId` in the
|
|
82
|
-
* caller's active tenant. Never throws, never consumes a limit, and grants
|
|
83
|
-
*
|
|
85
|
+
* caller's active tenant. Never throws, never consumes a limit, and grants the
|
|
86
|
+
* caller nothing: the target is a separate instance with its own caches.
|
|
84
87
|
*/
|
|
85
88
|
async function decideForTarget(caller, principals, create, principalId, permission, row) {
|
|
86
89
|
if (caller.principal === null) return deniedFor(permission, "anonymous");
|
|
@@ -108,9 +111,9 @@ function withinDelegation(permdock, permission, ceiling) {
|
|
|
108
111
|
return (ceiling === void 0 || ceiling.includes(permission.key)) && !readOnlyActorRefuses(permdock.subject.actor, permission) && delegationMayCover(permission, permdock.subject.delegation, permdock.subject.actor !== void 0 && ceiling === void 0);
|
|
109
112
|
}
|
|
110
113
|
/**
|
|
111
|
-
* Whether the subject's delegation, its delegated ceiling and a read-only
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
+
* Whether the subject's delegation, its delegated ceiling and a read-only actor
|
|
115
|
+
* leave `permission` within reach, whatever the grants say. A hint, never a
|
|
116
|
+
* decision.
|
|
114
117
|
*/
|
|
115
118
|
function delegationAllows(permdock, permission) {
|
|
116
119
|
try {
|
|
@@ -198,7 +201,10 @@ function eq(field, value) {
|
|
|
198
201
|
value
|
|
199
202
|
};
|
|
200
203
|
}
|
|
201
|
-
/**
|
|
204
|
+
/**
|
|
205
|
+
* One equality per partitioning scope key on the membership's chain, outermost
|
|
206
|
+
* first.
|
|
207
|
+
*/
|
|
202
208
|
function namedFilters(membership, scope) {
|
|
203
209
|
if (findScope(scope.scopes, membership.scope ?? "") === void 0 || !inTeam(membership, scope.scopes, scope.team) || !activeFor(membership, scope.scopes, scope.tenant) || membership.scope === void 0) return null;
|
|
204
210
|
const filters = [];
|