permdock 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/{2020-C9VN-x8c.js → 2020-CJbO8Bvz.js} +1 -3
- package/dist/a2a/index.d.ts +5 -5
- package/dist/a2a/index.js +4 -4
- package/dist/{adoption-scan-DCYe60Pi.js → adoption-scan-D-feE7BE.js} +1 -1
- package/dist/agent/index.d.ts +3 -3
- package/dist/agent/index.js +1 -1
- package/dist/ai-sdk/index.d.ts +21 -6
- package/dist/ai-sdk/index.js +19 -9
- package/dist/{approval-prompt-DvSSPQJX.d.ts → approval-prompt-K0faOLFp.d.ts} +2 -2
- package/dist/approvals/index.d.ts +4 -4
- package/dist/approvals/index.js +4 -4
- package/dist/{approvals-p1PGoVjb.js → approvals-CMRfsbBh.js} +74 -48
- package/dist/{arazzo-41WuzHou.js → arazzo-ClrF3PVb.js} +2 -2
- package/dist/{arazzo-CaUVBn7D.js → arazzo-rdeJ8n1J.js} +4 -4
- package/dist/{args-IIolxxKA.js → args-CC3OwyHW.js} +112 -2
- package/dist/astro/index.d.ts +6 -6
- package/dist/astro/index.js +2 -2
- package/dist/{audience-DabClFLQ.js → audience-BrMs8c4o.js} +1 -1
- package/dist/{auth-DRLEizbL.js → auth-CscUX8Sy.js} +3 -4
- package/dist/authzen/index.d.ts +162 -22
- package/dist/authzen/index.js +315 -146
- package/dist/{automation-BNM3TtDo.d.ts → automation-DOtAFWdy.d.ts} +3 -3
- package/dist/{automation-DVjOckjV.js → automation-ySsxp_Yp.js} +1 -1
- package/dist/base-url-BQbddZO5.js +9 -0
- package/dist/better-auth/index.d.ts +2 -2
- package/dist/better-auth/index.js +2 -2
- package/dist/better-supabase/index.d.ts +50 -8
- package/dist/better-supabase/index.js +94 -32
- package/dist/{bind-CAvgUuKs.js → bind-D1nO6fiC.js} +5 -5
- package/dist/{bind-DOyrv6zi.d.ts → bind-JDuvxjuW.d.ts} +7 -7
- package/dist/{build-instance-Bu_eDqYw.js → build-instance-DxE7czo9.js} +1 -1
- package/dist/{canonical-json-BC8_nMTw.js → canonical-json-DwilZ1iB.js} +6 -3
- package/dist/{capability-Drg-1YhL.d.ts → capability-D4UC9TTW.d.ts} +2 -2
- package/dist/{capability-N1K9IpqS.js → capability-L7NnfhiE.js} +1 -1
- package/dist/{casbin-Cr7RLtA3.js → casbin-BHijLuHY.js} +2 -2
- package/dist/{casbin-Dyu2gnUD.js → casbin-BW9pS47J.js} +1 -1
- package/dist/{casl-64gpT-8x.js → casl-CmJlgziS.js} +2 -2
- package/dist/{casl-DjEDhTCP.js → casl-UbI8v-Wq.js} +1 -1
- package/dist/catalog/index.d.ts +70 -10
- package/dist/catalog/index.js +112 -6
- package/dist/catalog-BCCjSAdH.js +1 -0
- package/dist/{catalog-DZVbrF-z.js → catalog-BaMQfQ6Y.js} +3 -3
- package/dist/{catalog-HD2gf5mY.js → catalog-D69WhFii.js} +43 -13
- package/dist/{catalog-doc-Cdn7-0pQ.js → catalog-doc-CV9s6B1S.js} +28 -5
- package/dist/{catalog-fingerprint-CCP0-yQS.js → catalog-fingerprint-C144oW4M.js} +1 -1
- package/dist/{create-CQWIpUG-.js → challenge-nGWma08S.js} +122 -25
- package/dist/chat/index.d.ts +1 -1
- package/dist/chat/index.js +2 -2
- package/dist/chat-sdk/index.d.ts +3 -3
- package/dist/checks-BC_0mPIq.js +37 -0
- package/dist/claude-agent/index.d.ts +3 -3
- package/dist/claude-agent/index.js +2 -2
- package/dist/clerk/index.d.ts +3 -3
- package/dist/clerk/index.js +1 -1
- package/dist/cli/bin.js +2 -2
- package/dist/cli/index.d.ts +3 -3
- package/dist/cli/index.js +3 -3
- package/dist/cloud/index.d.ts +127 -11
- package/dist/cloud/index.js +251 -3
- package/dist/{cloud-ytQ3uviA.js → cloud-CO8pYtwr.js} +5 -5
- package/dist/{codemod-ua2hHy7w.js → codemod-BP6n8N9L.js} +3 -3
- package/dist/{codemod-5mpSpnUY.js → codemod-i4N2BhDc.js} +3 -3
- package/dist/{collect-mLTY4nwb.js → collect-BaWeMjwV.js} +17 -8
- package/dist/{collect-Ci6akVwH.js → collect-DNm3oKOk.js} +6 -5
- package/dist/collect-k_Dulxr5.js +1 -0
- package/dist/compile/index.d.ts +1 -1
- package/dist/compile/index.js +1 -1
- package/dist/{compile-CMqMx_IN.js → compile-BAEO5bOk.js} +2 -2
- package/dist/{compile-1bsAezL0.d.ts → compile-COM2VKuN.d.ts} +3 -3
- package/dist/{completion-BTFrHZhX.js → completion-BNdVf7X2.js} +3 -3
- package/dist/{config-bs_kZeYq.js → config-CoQHDrDi.js} +7 -3
- package/dist/{config-Bj2Ixq3d.js → config-DGZzMV1B.js} +2 -2
- package/dist/{config-report-DSpsLpCE.js → config-report-Cm7UITNA.js} +3 -3
- package/dist/connector-schema-_VCSsdtD.js +433 -0
- package/dist/{context-B_u3_bDJ.js → context--uM9V3Ui.js} +2 -2
- package/dist/convex/index.d.ts +5 -5
- package/dist/convex/index.js +2 -2
- package/dist/core-B5-w6Kw9.js +335 -0
- package/dist/core-CQkE8Esr.d.ts +179 -0
- package/dist/{create-B30OMUOJ.d.ts → create-B2-CQqCI.d.ts} +5 -5
- package/dist/{create-CGm28gyI.js → create-Cb86Z8Im.js} +9 -8
- package/dist/{create-DCF2SvoT.js → create-DJrlhEp9.js} +5 -5
- package/dist/{create-D_NmPOdH.d.ts → create-QHuuPw3q.d.ts} +7 -7
- package/dist/{create-CBMmFie-.d.ts → create-UTnUVETj.d.ts} +30 -10
- package/dist/{credential-BcoiejpY.js → credential-CIM7wHwA.js} +4 -4
- package/dist/{credentials-DPyHmYz5.js → credentials-BpuTwd7a.js} +1 -1
- package/dist/{deciding-columns-Sq12mEA6.js → deciding-columns-DRo2QM6E.js} +13 -2
- package/dist/{delegation-j6-rc37o.js → delegation-C5rOdTp5.js} +5 -5
- package/dist/delivery/index.d.ts +5 -5
- package/dist/delivery/index.js +4 -3
- package/dist/{delivery-DCAgNyCn.js → delivery-rwOKLWRm.js} +51 -2
- package/dist/{denied-text-CiFQNuMV.d.ts → denied-text-D4qkEtFz.d.ts} +2 -2
- package/dist/{describe-BybMRY7A.js → describe-DZlnEtLy.js} +1 -0
- package/dist/{describe-B5qgDvEW.d.ts → describe-O0SwYIK8.d.ts} +2 -2
- package/dist/{diff-CmuSD3vc.js → diff-Btr1c1Ow.js} +2 -2
- package/dist/{diff-3jbx6Rm4.js → diff-DzT-xD13.js} +10 -10
- package/dist/{doctor-BdZw53-k.js → doctor-BU1szn63.js} +241 -49
- package/dist/{doctor-3ZqNHX_G.js → doctor-BoK_y0KO.js} +4 -4
- package/dist/drizzle/index.d.ts +3 -3
- package/dist/drizzle/index.js +1 -1
- package/dist/elysia/index.d.ts +5 -5
- package/dist/elysia/index.js +3 -3
- package/dist/{errors-DH5QEGXh.d.ts → errors-B_Qg9D3e.d.ts} +2 -2
- package/dist/{errors-CWTY6uih.js → errors-DpP_U6Bf.js} +1 -0
- package/dist/{evaluate-CNClBvcj.js → evaluate-B_oqFbWC.js} +55 -12
- package/dist/{evaluations-C_1vdSZc.d.ts → evaluations-BCddEOfO.d.ts} +4 -4
- package/dist/{evaluations-beAooV0n.js → evaluations-DReoiVBw.js} +4 -4
- package/dist/eve/index.d.ts +5 -5
- package/dist/eve/index.js +3 -3
- package/dist/express/index.d.ts +5 -5
- package/dist/express/index.js +3 -3
- package/dist/fastify/index.d.ts +5 -5
- package/dist/fastify/index.js +3 -3
- package/dist/{fetch-adapter-Dw0MTS3D.d.ts → fetch-adapter-CuhyYwC1.d.ts} +4 -4
- package/dist/{fetch-adapter-DD_gfmrC.js → fetch-adapter-De-u6vhJ.js} +3 -3
- package/dist/{fields-OYG_JR78.js → fields-ClcQLrVc.js} +48 -13
- package/dist/{files-C5ZI27eV.js → files-acUbNwWt.js} +15 -2
- package/dist/{fixtures-B7XrLeY7.js → fixtures-BTMW6zgU.js} +2 -2
- package/dist/{flags-C3DktBDY.js → flags-aaeRAdiD.js} +2 -2
- package/dist/{from-snapshot-CTCMsFZk.js → from-snapshot-Bz469dIh.js} +17 -10
- package/dist/generate-3FNO5P5Q.js +159 -0
- package/dist/{grantee-hxrUsbpM.js → grantee-BrRANrpT.js} +1 -1
- package/dist/{grantee-conditions-CcXf8hMM.js → grantee-conditions-C6P1Tvol.js} +1 -1
- package/dist/{grantee-match-DbENBHLB.js → grantee-match-0RtHWQDx.js} +3 -3
- package/dist/h3/index.d.ts +4 -4
- package/dist/h3/index.js +3 -3
- package/dist/{helpers-CBYVMjwh.js → helpers-DY3vXuGs.js} +3 -3
- package/dist/hono/index.d.ts +5 -5
- package/dist/hono/index.js +3 -3
- package/dist/{hosted-BPk51-kX.d.ts → hosted-BmjzxQhp.d.ts} +14 -2
- package/dist/{hosted-B46-5LYE.js → hosted-XBgU6RGT.js} +34 -12
- package/dist/{http-DXJ37RDA.js → http-Ca3Sr5x1.js} +1 -1
- package/dist/{import-wyqXUyjm.js → import-Bz0GefWg.js} +5 -5
- package/dist/{import-CNV7I2Dw.js → import-DB2EG_iy.js} +3 -3
- package/dist/{index-C-6Letxg.d.ts → index-BE8y3moU.d.ts} +50 -8
- package/dist/{index-B8YjkEZ4.d.ts → index-BSfRl0hZ.d.ts} +6 -6
- package/dist/{index-DuWxc5dt.d.ts → index-BTkwrK7v.d.ts} +143 -14
- package/dist/index-CMiPH2Tv.d.ts +206 -0
- package/dist/{index-Ch8LpNDp.d.ts → index-DH9DUDEM.d.ts} +18 -3
- package/dist/{index-CueFnxQc.d.ts → index-DLwcuCN_.d.ts} +86 -7
- package/dist/index.d.ts +18 -17
- package/dist/index.js +27 -25
- package/dist/{init-GG6Jh8HD.js → init-5TXNji88.js} +5 -5
- package/dist/{init-DeMYsnYJ.js → init-B-4t1NzC.js} +4 -4
- package/dist/{instance-options-BsVpyGIk.d.ts → instance-options-CU0YQCLH.d.ts} +1 -1
- package/dist/{instance-snapshot-BOEhcqIF.js → instance-snapshot-CjcwnEiV.js} +16 -11
- package/dist/jwt/index.d.ts +83 -5
- package/dist/jwt/index.js +143 -5
- package/dist/{kernel-D0NVb1cK.js → kernel-DVExUwkp.js} +138 -12
- package/dist/kysely/index.d.ts +3 -3
- package/dist/kysely/index.js +1 -1
- package/dist/load-DrMHXzgN.js +1 -0
- package/dist/{load-DFS_ry0W.js → load-DxroEzH1.js} +2 -2
- package/dist/{login-Dfe5RlYk.js → login-ClSJh5t5.js} +4 -4
- package/dist/{login-imhuwvn3.js → login-WC9HPJpU.js} +6 -10
- package/dist/{manifest-C8IzW3Do.js → manifest-B79YuF2T.js} +6 -2
- package/dist/{manifest-mx5ghSFM.d.ts → manifest-BVhExYhw.d.ts} +23 -2
- package/dist/{manifest-dvL2XEe1.js → manifest-Dv6q4i5s.js} +54 -35
- package/dist/{manifest-schema-C0kK_8V0.js → manifest-schema-Cv492Qev.js} +37 -7
- package/dist/{map-claims-D3oRmTk0.js → map-claims-etGIS_Dv.js} +14 -11
- package/dist/{map-error-Dr70oA_3.js → map-error-BQGyDm_M.js} +1 -1
- package/dist/mcp/index.d.ts +64 -10
- package/dist/mcp/index.js +151 -22
- package/dist/{migrate-CIq4-E9F.js → migrate-Dodel0IJ.js} +77 -24
- package/dist/nest/index.d.ts +5 -5
- package/dist/nest/index.js +3 -3
- package/dist/next/index.d.ts +9 -9
- package/dist/next/index.js +5 -5
- package/dist/next/plugin.d.ts +1 -1
- package/dist/next/plugin.js +2 -2
- package/dist/node/index.d.ts +5 -5
- package/dist/node/index.js +2 -2
- package/dist/openai/index.d.ts +5 -5
- package/dist/openai/index.js +3 -3
- package/dist/openapi/index.d.ts +14 -4
- package/dist/openapi/index.js +1 -1
- package/dist/{openapi-C4dDTVEd.js → openapi-DMocl1bh.js} +4 -4
- package/dist/{openapi-B7HZ0f-r.js → openapi-Ddb4628T.js} +2 -7
- package/dist/{openapi-DD1SV-5-.js → openapi-ztVaux6j.js} +8 -8
- package/dist/{operation-findings-DgATDpvh.js → operation-findings-kRcEp8lE.js} +1 -1
- package/dist/{operations-X0VM7F3m.d.ts → operations-BNLes61x.d.ts} +1 -1
- package/dist/orpc/index.d.ts +6 -6
- package/dist/orpc/index.js +4 -4
- package/dist/otel/index.d.ts +3 -3
- package/dist/otel/index.js +1 -1
- package/dist/{output-1im__-08.js → output-DgSDLrta.js} +7 -3
- package/dist/{output-files-DhRBBE4n.js → output-files-CCMdcFWb.js} +2 -2
- package/dist/output-files-DPAY7-GX.js +1 -0
- package/dist/{ownership-DqaJNJPn.js → ownership-Z2LpxsGa.js} +443 -40
- package/dist/parse-Ddhz2xf4.js +148 -0
- package/dist/{parse-local-manifest-CVSs6J9I.js → parse-local-manifest-T1Q8X3A2.js} +24 -1
- package/dist/{parse-local-manifest-5ODwqu8b.d.ts → parse-local-manifest-e4mdwAKd.d.ts} +1 -1
- package/dist/pdp/index.d.ts +3 -3
- package/dist/pdp/index.js +7 -3
- package/dist/peer-12Q5I_RH.js +976 -0
- package/dist/{peer-CRvC7Hg1.js → peer-DOzzMfZL.js} +1 -1
- package/dist/{permdock-BrAscV28.js → permdock-BfWEeMqk.js} +177 -49
- package/dist/{permdock-SV8ZINYT.d.ts → permdock-Dco6dyCK.d.ts} +34 -5
- package/dist/{permission-registry-Br4jSNVi.js → permission-registry-DpPtSKNZ.js} +1 -1
- package/dist/{vocabulary-CN8H_9UF.d.ts → permission-types-DhNEmoRG.d.ts} +4 -64
- package/dist/{permissions-u_KHg-sN.d.ts → permissions-CoqCOfJ3.d.ts} +2 -1
- package/dist/{permissions-B-wCP5ZC.js → permissions-CyH2MV_B.js} +1 -1
- package/dist/{permissions-BPxlwVhN.js → permissions-DArULThq.js} +4 -4
- package/dist/pkce-5h8NgMQJ.js +21 -0
- package/dist/{policies-DP2nqRoF.js → policies-B2lZIurj.js} +3 -3
- package/dist/{policy-77FSAq_V.d.ts → policy-B7dg_yzu.d.ts} +2 -2
- package/dist/{policy-DbM5YYtV.js → policy-DaJy4nK4.js} +17 -8
- package/dist/{policy-from-catalog-C2gMa2Dj.js → policy-from-catalog-DFWYkNdu.js} +9 -9
- package/dist/{policy-types-n0uRTsW8.d.ts → policy-types-B-F-qAZk.d.ts} +83 -4
- package/dist/postgres-store-BL9M_CA1.js +1001 -0
- package/dist/{postgrest-CEgRbefE.d.ts → postgrest-CYacM_u7.d.ts} +12 -1
- package/dist/{postgrest-DAjUkF9w.js → postgrest-r5faDIzD.js} +37 -4
- package/dist/{powersync-DISt6SUe.js → powersync-13odBwiM.js} +3 -3
- package/dist/powersync-53ryOZip.js +1059 -0
- package/dist/powersync-CExtTLyA.js +1 -0
- package/dist/preset/index.js +1 -1
- package/dist/{preset-DZdU0tne.js → preset-CHTbd-DQ.js} +2 -2
- package/dist/prisma/index.d.ts +2 -2
- package/dist/prisma/index.js +1 -1
- package/dist/{problem-details-B45V5d2b.d.ts → problem-details-Tcfmj3bV.d.ts} +1 -1
- package/dist/prompt-DwtVemER.js +935 -0
- package/dist/{protected-RFGpakN9.d.ts → protected-BwZYL1X_.d.ts} +6 -5
- package/dist/{protected-BlF0F6wL.js → protected-DXE3cQYg.js} +2 -2
- package/dist/{provider-B1al-AZz.js → provider-BQsTYYy0.js} +2 -2
- package/dist/{provider-DILL9oPK.d.ts → provider-Csk-THAn.d.ts} +1 -1
- package/dist/{provider-store-DM6DNcta.js → provider-store-IgqQipCO.js} +2 -2
- package/dist/{pull-jEwbf80J.js → pull-CN5OLxrF.js} +7 -7
- package/dist/pull-Cty6Ovyu.js +1 -0
- package/dist/{push-BD4f15co.js → push-tVdG8dUL.js} +54 -14
- package/dist/{pushed-policy-DCW91KQU.d.ts → pushed-policy-BbcY9r_4.d.ts} +1 -1
- package/dist/{pushed-policy-CqtxkV4G.js → pushed-policy-CmYeSQqq.js} +1 -1
- package/dist/react/index.d.ts +6 -6
- package/dist/react/index.js +3 -3
- package/dist/react/provider-client.d.ts +1 -1
- package/dist/react/provider-client.js +1 -1
- package/dist/react-native/index.d.ts +25 -11
- package/dist/react-native/index.js +209 -21
- package/dist/{refs-K6eWUJ0H.js → refs-CNJBiTFo.js} +15 -1
- package/dist/{replay-Bkm-Ne4l.d.ts → replay-DCDD_ZfL.d.ts} +1 -1
- package/dist/{request-context-C81Pip9n.js → request-context-BykKLmyE.js} +2 -2
- package/dist/resend/index.d.ts +4 -4
- package/dist/{retire-CALjIQ7e.js → retire-Wj6dkyDE.js} +2 -2
- package/dist/{rls-BAqP4q66.js → rls-Ck_PocSp.js} +32 -8
- package/dist/{rls-DTvYd-lI.js → rls-CxBZb4rZ.js} +478 -534
- package/dist/{role-builder-uWQZ4v84.js → role-builder-C1VJzvcr.js} +3 -3
- package/dist/rolldown-runtime-C3I60J0A.js +4 -0
- package/dist/{rpc-VSl5ylaQ.js → rpc-Bk1bE-ch.js} +1 -1
- package/dist/run-Bz7DXGEv.js +1 -0
- package/dist/{run-ticket-sxFI6LAk.js → run-ticket-B5d_63Ma.js} +22 -1
- package/dist/{run-ticket-DocwaTKn.d.ts → run-ticket-BpNi7BCi.d.ts} +8 -3
- package/dist/{run-CUKuz0A8.js → run-uLD2aWuO.js} +7 -7
- package/dist/{runtime-D3VTAiCA.js → runtime-Vif3_-zf.js} +1 -1
- package/dist/{saas-BCXRuXca.js → saas-Az_Kz-4D.js} +7 -7
- package/dist/{scan-qvOe0hS3.js → scan-DSljDE1Y.js} +1 -1
- package/dist/{schema-yLuBWWsh.js → schema-gIcCx7zM.js} +1 -1
- package/dist/scim/index.d.ts +3 -2
- package/dist/scim/index.js +3 -1
- package/dist/scim-C7JYhySg.js +44 -0
- package/dist/{scim-ClHtpyV3.js → scim-YNieBO1U.js} +3 -537
- package/dist/{scopes-CUPSjo9q.js → scopes-BHsc-wp-.js} +1 -1
- package/dist/server/index.d.ts +11 -11
- package/dist/server/index.js +7 -7
- package/dist/{server-C3WXAHZj.js → server-Bnga6I50.js} +3 -3
- package/dist/{server-types-CKQiCnON.d.ts → server-types-C4gZUEZy.d.ts} +9 -9
- package/dist/{shared-DvvFzYXe.js → shared-C8LjUdVU.js} +1 -1
- package/dist/{shared-BAK8t4Uo.js → shared-fMKOv8hP.js} +44 -38
- package/dist/{sink-4-eQIRWf.d.ts → sink-Cp_Eot9W.d.ts} +4 -4
- package/dist/{skills-B6lVdD_W.js → skills-Dcjw9_1C.js} +5 -5
- package/dist/{skills-CTYwkl44.js → skills-g_3BS9NC.js} +3 -3
- package/dist/{snapshot-B7DkYg6g.js → snapshot-CbGmYiJx.js} +4 -4
- package/dist/{snapshot-cache-DZHQ0KF6.js → snapshot-cache-DT2Kx1F8.js} +1 -1
- package/dist/{snapshot-cache-PXI-vGpY.d.ts → snapshot-cache-Pahd3IYJ.d.ts} +1 -1
- package/dist/solid/index.d.ts +6 -5
- package/dist/solid/index.js +4 -4
- package/dist/solid-start/index.d.ts +6 -6
- package/dist/solid-start/index.js +3 -3
- package/dist/{sources-vs5dGOsS.js → sources-B-zYB4GS.js} +111 -25
- package/dist/{sources-Xc4zkszI.d.ts → sources-DEEuGb8S.d.ts} +63 -14
- package/dist/sources-qoIJQrJv.js +11 -0
- package/dist/{sql-B5T1IL83.js → sql-B96movIM.js} +5 -1
- package/dist/sql-CDEPCA0g.d.ts +10 -0
- package/dist/{src-Cu2m75uo.js → src-DLFrtrrC.js} +140 -48
- package/dist/ssf/index.d.ts +4 -4
- package/dist/ssf/index.js +640 -211
- package/dist/{standard-webhooks-rbD7LS6h.d.ts → standard-webhooks-B_qRg0ws.d.ts} +2 -2
- package/dist/{store-BDutJkDL.js → store-DSP9oGvh.js} +15 -7
- package/dist/{store-options-u0ycEe8s.js → store-options-B_poyYvg.js} +6 -6
- package/dist/{stores-BUGNbJTt.d.ts → stores-BAZwSYZA.d.ts} +6 -5
- package/dist/{stores-CGhM8BN_.js → stores-BqEuHC05.js} +2 -2
- package/dist/{stream-CeCMJmBB.d.ts → stream-2Vwhl7Er.d.ts} +2 -2
- package/dist/{style-Uao76wO7.js → style-Cqo7-73x.js} +1 -0
- package/dist/{style-DiKWnAvn.js → style-Ds1gNm77.js} +1 -1
- package/dist/supabase/index.d.ts +8 -7
- package/dist/supabase/index.js +5 -5
- package/dist/supabase/middleware.d.ts +6 -6
- package/dist/supabase/middleware.js +6 -6
- package/dist/{supabase-x5JtR2tc.js → supabase--0aJdLEd.js} +8 -6
- package/dist/{supabase-By_frk3U.js → supabase-Bqp7iIY2.js} +3 -3
- package/dist/supabase-hook-DJxC4PoP.js +1 -0
- package/dist/{supabase-hook-BMoEhZir.js → supabase-hook-Dg0SrQWR.js} +1060 -119
- package/dist/supautils-MESd81bF.js +689 -0
- package/dist/{support-session-C6xJQYut.js → support-session-Cna49-3f.js} +2 -2
- package/dist/svelte/index.d.ts +5 -5
- package/dist/svelte/index.js +5 -5
- package/dist/svelte/runtime.d.ts +3 -3
- package/dist/svelte/runtime.js +3 -3
- package/dist/svelte/source.d.ts +5 -5
- package/dist/svelte/source.js +2 -2
- package/dist/sveltekit/index.d.ts +6 -6
- package/dist/sveltekit/index.js +2 -2
- package/dist/tanstack-start/index.d.ts +6 -6
- package/dist/tanstack-start/index.js +2 -2
- package/dist/{tenancy-DN2QAx9z.js → tenancy-CmeBQ6Nv.js} +12 -3
- package/dist/terminal/index.d.ts +6 -6
- package/dist/terminal/index.js +3 -3
- package/dist/testing/core.d.ts +2 -0
- package/dist/testing/core.js +1 -0
- package/dist/testing/fixtures/index.d.ts +12 -0
- package/dist/testing/fixtures/index.js +770 -0
- package/dist/testing/index.d.ts +41 -174
- package/dist/testing/index.js +241 -731
- package/dist/testing/saas/index.d.ts +5 -5
- package/dist/testing/saas/index.js +2 -2
- package/dist/testing/saas/permissions.d.ts +1 -1
- package/dist/testing/saas/permissions.js +1 -1
- package/dist/text-diff-DhITNCnD.js +444 -0
- package/dist/{token-BLZcjQgt.js → token-2qYDvXz2.js} +1 -1
- package/dist/{tool-refusal-CMLN5xhn.js → tool-refusal-reAhIzdl.js} +1 -1
- package/dist/trpc/index.d.ts +6 -6
- package/dist/trpc/index.js +3 -3
- package/dist/{types-Dfv0aTER.d.ts → types-BWZybqs9.d.ts} +110 -8
- package/dist/{types-Druu9wLM.d.ts → types-BXMYB7BY.d.ts} +2 -2
- package/dist/{types-BzzaHxt3.d.ts → types-BfVmNJO5.d.ts} +14 -3
- package/dist/{types-lUlG3TVd.d.ts → types-CIeZcG8v.d.ts} +2 -2
- package/dist/{types-B3_ooZgZ.d.ts → types-CKV71kKh.d.ts} +4 -4
- package/dist/{types-CX7AvRqP.d.ts → types-CQVEQawv.d.ts} +4 -4
- package/dist/{types-C863OQiR.d.ts → types-CeIscIKp.d.ts} +4 -4
- package/dist/{types-C_IiEs64.d.ts → types-CfiKC5aN.d.ts} +1 -1
- package/dist/{types-_WhUP7ud.d.ts → types-D3A19w4A.d.ts} +8 -4
- package/dist/{types-8RnwUAvE.d.ts → types-DBHftjgS.d.ts} +15 -8
- package/dist/{types-BdtSDbBO.d.ts → types-DC44-hqb.d.ts} +2 -2
- package/dist/{types-CVZSNocA.d.ts → types-DXmwu78Z.d.ts} +4 -4
- package/dist/{types-C791HFu9.d.ts → types-cTos-H7p.d.ts} +2 -2
- package/dist/{types-BtHtcKMr.d.ts → types-g7Oy6Zg4.d.ts} +3 -3
- package/dist/unplugin/index.d.ts +1 -1
- package/dist/unplugin/index.js +2 -2
- package/dist/{usage-SveTRTyr.js → usage-Bybmck7f.js} +7 -7
- package/dist/{usage-CRVl9V3t.js → usage-CDaLXCfL.js} +2 -2
- package/dist/usage-y-kBNdqs.js +1 -0
- package/dist/{validation-error-DHUrAkku.d.ts → validation-error-CQpoquwj.d.ts} +1 -1
- package/dist/{verify-BaAKx7t6.js → verify-pe8rL_Qw.js} +350 -83
- package/dist/{views-DTIIO-oQ.js → views-BB8E9dTP.js} +1 -1
- package/dist/vocabulary-Bg3eeT2H.d.ts +67 -0
- package/dist/vue/index.d.ts +6 -5
- package/dist/vue/index.js +4 -4
- package/dist/{waiter-B986w1oK.d.ts → waiter-DwEyouan.d.ts} +2 -2
- package/dist/watch-Bd9mx3rd.js +1 -0
- package/dist/{watch-vea54PRw.js → watch-C-4VmFlL.js} +3 -3
- package/dist/webmcp/index.d.ts +2 -2
- package/dist/webmcp/index.js +2 -2
- package/dist/{where-scope-C9vfEphl.js → where-scope-wq2coopv.js} +41 -21
- package/dist/{who-can-DWBAcaCQ.js → who-can-BwNsI_Js.js} +6 -6
- package/dist/workflow/index.d.ts +3 -3
- package/dist/workflow/index.js +5 -5
- package/dist/workflow-sdk/index.d.ts +5 -5
- package/dist/{wrap-C5jC6sKI.d.ts → wrap-B6R0cMRL.d.ts} +2 -2
- package/dist/{wrap-gX61EtpB.js → wrap-CiSc_KCq.js} +8 -2
- package/package.json +22 -11
- package/schemas/cli-result-v1.json +1 -0
- package/schemas/cloud-api-v1.json +152 -7
- package/schemas/connector-v1.json +8 -0
- package/schemas/supabase-claims-v1.json +5 -0
- package/schemas/supabase-manifest-v1.json +276 -75
- package/skills/permdock/SKILL.md +1 -0
- package/skills/permdock-agents/references/runtimes.md +3 -1
- package/skills/permdock-approvals/references/stores-and-resume.md +2 -1
- package/skills/permdock-data/references/queries-and-rls.md +4 -1
- package/skills/permdock-tenancy/SKILL.md +1 -1
- package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +1 -0
- package/skills/permdock-wire/references/adapters.md +14 -0
- package/skills/permdock-wire/references/policy-options.md +1 -0
- package/dist/catalog-BoWglDPI.js +0 -1
- package/dist/collect-D7eQDffE.js +0 -1
- package/dist/index-Cp_ilKi1.d.ts +0 -91
- package/dist/load-BxEtwlBS.js +0 -1
- package/dist/output-files-B3IZJksC.js +0 -1
- package/dist/parse-Cxq0WxrA.js +0 -53
- package/dist/peer-C8swJ2GH.js +0 -50
- package/dist/powersync-BkWWCS1K.js +0 -538
- package/dist/powersync-MMJ2mI2q.js +0 -1
- package/dist/prompt-DfZLJLIn.js +0 -32
- package/dist/pull-CvpINcMK.js +0 -1
- package/dist/run-DDwUaJDU.js +0 -1
- package/dist/supabase-hook-CCw5m35C.js +0 -1
- package/dist/supautils-B6HYL9eL.js +0 -91
- package/dist/text-diff-BQcUapOb.js +0 -15
- package/dist/usage-CZpSQP6L.js +0 -1
- package/dist/watch--ovlPOc0.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as requiredPlans } from "./problem-details-cn5X30gZ.js";
|
|
2
|
-
import { t as describe } from "./describe-
|
|
2
|
+
import { t as describe } from "./describe-DZlnEtLy.js";
|
|
3
3
|
//#region src/client/views.ts
|
|
4
4
|
function permissionSet(store, permissions, data) {
|
|
5
5
|
const granted = [];
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { j as WithX, k as AppDataSchema, n as ActionMeta } from "./permission-types-DhNEmoRG.js";
|
|
2
|
+
//#region src/core/vocabulary.d.ts
|
|
3
|
+
declare const ROLE_KIND: "role";
|
|
4
|
+
declare const PLAN_KIND: "plan";
|
|
5
|
+
/** `defineRoles` and `definePlans` options. */
|
|
6
|
+
type VocabularyOptions<X = never> = {
|
|
7
|
+
/**
|
|
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
|
+
* roles a `CustomRoleSource` returns; an invalid one is dropped, not the role.
|
|
11
|
+
*/
|
|
12
|
+
readonly x?: AppDataSchema<X>;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* A role's metadata. `audience` names the surface its holders use (`'staff'`,
|
|
16
|
+
* `'portal'`, `'platform'`); `permdock.audiences()` lists the distinct
|
|
17
|
+
* audiences of the roles held in the active scope.
|
|
18
|
+
*/
|
|
19
|
+
type RoleMeta = ActionMeta & {
|
|
20
|
+
readonly audience?: string;
|
|
21
|
+
};
|
|
22
|
+
type Role<K extends string = string> = {
|
|
23
|
+
readonly key: K;
|
|
24
|
+
/** A declared scope name, or the `tenant` / `team` alias. */
|
|
25
|
+
readonly on?: string;
|
|
26
|
+
readonly assignable: boolean;
|
|
27
|
+
readonly meta: RoleMeta;
|
|
28
|
+
/** A shared custom role: the platform defines it for every tenant, and a tenant admin cannot edit it. */
|
|
29
|
+
readonly shared?: true;
|
|
30
|
+
readonly kind: typeof ROLE_KIND;
|
|
31
|
+
};
|
|
32
|
+
type Plan<K extends string = string> = {
|
|
33
|
+
readonly key: K;
|
|
34
|
+
readonly meta: ActionMeta;
|
|
35
|
+
readonly kind: typeof PLAN_KIND;
|
|
36
|
+
};
|
|
37
|
+
type RoleInit = {
|
|
38
|
+
/** A declared scope name, or the `tenant` / `team` alias. */
|
|
39
|
+
readonly on?: string;
|
|
40
|
+
readonly assignable?: boolean;
|
|
41
|
+
readonly meta?: RoleMeta;
|
|
42
|
+
};
|
|
43
|
+
type PlanInit = {
|
|
44
|
+
readonly meta?: ActionMeta;
|
|
45
|
+
};
|
|
46
|
+
type RoleTree = {
|
|
47
|
+
readonly [key: string]: Role;
|
|
48
|
+
};
|
|
49
|
+
type PlanTree = {
|
|
50
|
+
readonly [key: string]: Plan;
|
|
51
|
+
};
|
|
52
|
+
type Vocabulary = {
|
|
53
|
+
readonly permissions?: unknown;
|
|
54
|
+
readonly roles?: RoleTree;
|
|
55
|
+
readonly plans?: PlanTree;
|
|
56
|
+
};
|
|
57
|
+
type InferRoleTree<Input, X = never> = { readonly [K in keyof Input & string]: WithX<Role<K>, X>; };
|
|
58
|
+
type InferPlanTree<Input, X = never> = { readonly [K in keyof Input & string]: WithX<Plan<K>, X>; };
|
|
59
|
+
declare function isRole(value: unknown): value is Role;
|
|
60
|
+
declare function isPlan(value: unknown): value is Plan;
|
|
61
|
+
declare function defineRoles<const Input extends Record<string, RoleInit>, X = never>(input: Input, options?: VocabularyOptions<X>): InferRoleTree<Input, X>;
|
|
62
|
+
declare function definePlans<const Input extends Record<string, PlanInit>, X = never>(input: Input, options?: VocabularyOptions<X>): InferPlanTree<Input, X>;
|
|
63
|
+
declare function listRoles(tree: RoleTree | undefined): readonly Role[];
|
|
64
|
+
declare function listPlans(tree: PlanTree | undefined): readonly Plan[];
|
|
65
|
+
declare function findRole(tree: RoleTree | undefined, key: string): Role | undefined;
|
|
66
|
+
//#endregion
|
|
67
|
+
export { RoleTree as a, definePlans as c, isPlan as d, isRole as f, RoleMeta as i, defineRoles as l, listRoles as m, PlanTree as n, Vocabulary as o, listPlans as p, Role as r, VocabularyOptions as s, Plan as t, findRole as u };
|
package/dist/vue/index.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { Gt as Snapshot, In as ApprovalRequiredDecision, Ln as Decision, dt as TokenVerifier, or as Membership } from "../policy-types-B-F-qAZk.js";
|
|
2
|
+
import { u as Permission } from "../permission-types-DhNEmoRG.js";
|
|
3
|
+
import { r as Role } from "../vocabulary-Bg3eeT2H.js";
|
|
4
|
+
import { n as requiredPlans } from "../problem-details-Tcfmj3bV.js";
|
|
5
|
+
import { i as describe, r as DescribeOptions, t as DecisionDescription } from "../describe-O0SwYIK8.js";
|
|
5
6
|
import { t as PermissionBoundaryState } from "../boundary-BmHxVH1J.js";
|
|
6
7
|
import { t as approvalHeaders } from "../headers-CIbDTUTK.js";
|
|
7
|
-
import { a as FilterResult, c as PermissionSet, d as RolesOptions, f as SubjectView, i as ClientStatus, l as PermissionState, n as ApprovalState, p as TenantView, r as ClientPermDock, t as ApprovalHandle, u as ProviderOptionsBase } from "../types-
|
|
8
|
+
import { a as FilterResult, c as PermissionSet, d as RolesOptions, f as SubjectView, i as ClientStatus, l as PermissionState, n as ApprovalState, p as TenantView, r as ClientPermDock, t as ApprovalHandle, u as ProviderOptionsBase } from "../types-CKV71kKh.js";
|
|
8
9
|
import { ComputedRef, DefineComponent, MaybeRefOrGetter, Plugin, VNode } from "vue";
|
|
9
10
|
//#region src/vue/types.d.ts
|
|
10
11
|
type PermDockPluginOptions = ProviderOptionsBase & {
|
package/dist/vue/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { r as requiredPlans } from "../problem-details-cn5X30gZ.js";
|
|
2
|
-
import { t as describe } from "../describe-
|
|
2
|
+
import { t as describe } from "../describe-DZlnEtLy.js";
|
|
3
3
|
import { n as boundaryFallback, t as boundaryDigest } from "../boundary-BM8a_P6E.js";
|
|
4
4
|
import { t as approvalHeaders } from "../headers-BIjfMaoC.js";
|
|
5
|
-
import { i as isPromiseLike } from "../store-options-
|
|
6
|
-
import { n as switchTenant, t as providerStore } from "../provider-store-
|
|
7
|
-
import { a as livePermDock, c as rolesView, d as subjectView, f as tenantView, l as scopedTenant, n as describeWith, o as permissionSet, r as filterResult, s as protectedView, t as approvalHandle, u as slotContent } from "../views-
|
|
5
|
+
import { i as isPromiseLike } from "../store-options-B_poyYvg.js";
|
|
6
|
+
import { n as switchTenant, t as providerStore } from "../provider-store-IgqQipCO.js";
|
|
7
|
+
import { a as livePermDock, c as rolesView, d as subjectView, f as tenantView, l as scopedTenant, n as describeWith, o as permissionSet, r as filterResult, s as protectedView, t as approvalHandle, u as slotContent } from "../views-BB8E9dTP.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");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Rt as Instant } from "./policy-types-
|
|
2
|
-
import { m as ApprovalStore } from "./types-
|
|
1
|
+
import { Rt as Instant } from "./policy-types-B-F-qAZk.js";
|
|
2
|
+
import { m as ApprovalStore } from "./types-DC44-hqb.js";
|
|
3
3
|
//#region src/workflow/waiter.d.ts
|
|
4
4
|
type ApprovalWaitOptions = {
|
|
5
5
|
/** When the approval request expires; the wait ends then whatever the store says. */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { i as watchCollect } from "./watch-C-4VmFlL.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { i as dateAt } from "./time-DkWjdL98.js";
|
|
2
|
-
import { a as describeError } from "./errors-
|
|
2
|
+
import { a as describeError } from "./errors-DpP_U6Bf.js";
|
|
3
3
|
import { t as defaultSrcPath } from "./files-D_JIzUrP.js";
|
|
4
|
-
import { r as runCollect } from "./collect-
|
|
5
|
-
import { n as isConfigFile, r as loadConfig } from "./config-
|
|
4
|
+
import { r as runCollect } from "./collect-BaWeMjwV.js";
|
|
5
|
+
import { n as isConfigFile, r as loadConfig } from "./config-CoQHDrDi.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
|
package/dist/webmcp/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Gt as Snapshot, Ln as Decision } from "../policy-types-B-F-qAZk.js";
|
|
2
|
+
import { f as PermissionTree, u as Permission } from "../permission-types-DhNEmoRG.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";
|
package/dist/webmcp/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { r as isRecord, t as compact } from "../compact-CAf557ZB.js";
|
|
2
2
|
import { n as PermDockValidationError } from "../validation-error-ZfUHbKvf.js";
|
|
3
|
-
import { c as listPermissions, f as resourceOfNode, i as getRegistry, m as annotationsFor, s as isRegistryTree } from "../permission-registry-
|
|
3
|
+
import { c as listPermissions, f as resourceOfNode, i as getRegistry, m as annotationsFor, s as isRegistryTree } from "../permission-registry-DpPtSKNZ.js";
|
|
4
4
|
import { n as isThenable, t as ignoreRejection } from "../thenable-yD7SabqG.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-reAhIzdl.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");
|
|
@@ -2,28 +2,36 @@ import { a as sole, r as isRecord, t as compact } from "./compact-CAf557ZB.js";
|
|
|
2
2
|
import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
|
|
3
3
|
import { t as loadPrincipal } from "./principal-source-pHneukrx.js";
|
|
4
4
|
import { g as secondsOf, m as rfc3339 } from "./time-DkWjdL98.js";
|
|
5
|
-
import { d as
|
|
6
|
-
import { a as readOnlyActorRefuses, n as coveredByDelegation } from "./delegation-
|
|
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-BHsc-wp-.js";
|
|
6
|
+
import { a as readOnlyActorRefuses, n as coveredByDelegation } from "./delegation-C5rOdTp5.js";
|
|
7
7
|
import { r as readWireValidity, t as isActive } from "./validity-CZ7-y0Cj.js";
|
|
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 { i as bindConditionRefs, n as parseSnapshot } from "./snapshot-
|
|
8
|
+
import { o as resourceRoleCondition } from "./grantee-conditions-C6P1Tvol.js";
|
|
9
|
+
import { c as nowSeconds, n as inTeam, o as membershipField, r as isMembershipExpired } from "./tenancy-CmeBQ6Nv.js";
|
|
10
|
+
import { i as bindConditionRefs, n as parseSnapshot } from "./snapshot-CbGmYiJx.js";
|
|
11
11
|
//#region src/core/snapshot-sign.ts
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
13
|
+
* The claims `signSnapshot` signs for `snapshot`. `issuedAt` and `expiresAt`
|
|
14
|
+
* become `iat` and `exp` and leave the `snapshot` claim, so the registered
|
|
15
|
+
* claims are the only times a verifier reads.
|
|
16
16
|
*/
|
|
17
|
-
function
|
|
17
|
+
function snapshotClaims(snapshot) {
|
|
18
18
|
const { issuedAt, expiresAt, ...claim } = snapshot;
|
|
19
|
-
const payload = { snapshot: claim };
|
|
20
|
-
if (snapshot.subject.principal !== null) payload["sub"] = snapshot.subject.principal.id;
|
|
21
19
|
const iat = secondsOf(issuedAt);
|
|
20
|
+
return compact({
|
|
21
|
+
snapshot: claim,
|
|
22
|
+
sub: snapshot.subject.principal?.id,
|
|
23
|
+
iat: iat === void 0 || iat <= 0 ? void 0 : iat,
|
|
24
|
+
exp: secondsOf(expiresAt)
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
/** Signs `snapshot` as a `vnd.permdock.snapshot+jwt` with the claims `snapshotClaims` answers. */
|
|
28
|
+
function signSnapshot(snapshot, signer, options = {}) {
|
|
29
|
+
const { iat, exp, ...payload } = snapshotClaims(snapshot);
|
|
22
30
|
return signer.sign(payload, compact({
|
|
23
31
|
typ: "vnd.permdock.snapshot+jwt",
|
|
24
32
|
audience: options.audience,
|
|
25
|
-
issuedAt: iat
|
|
26
|
-
expiresAt:
|
|
33
|
+
issuedAt: iat,
|
|
34
|
+
expiresAt: exp
|
|
27
35
|
}));
|
|
28
36
|
}
|
|
29
37
|
/**
|
|
@@ -96,6 +104,22 @@ function delegationMayCover(permission, delegation, hasActor) {
|
|
|
96
104
|
function blocksEveryRow(grant) {
|
|
97
105
|
return grant.effect === "deny" && grant.where === void 0 && grant.check === void 0 && grant.portable !== false && grant.fields === void 0 && (grant.scope === void 0 || grant.scope === "tenant");
|
|
98
106
|
}
|
|
107
|
+
function withinDelegation(permdock, permission, ceiling) {
|
|
108
|
+
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
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Whether the subject's delegation, its delegated ceiling and a read-only
|
|
112
|
+
* actor leave `permission` within reach, whatever the grants say. A hint,
|
|
113
|
+
* never a decision.
|
|
114
|
+
*/
|
|
115
|
+
function delegationAllows(permdock, permission) {
|
|
116
|
+
try {
|
|
117
|
+
const snapshot = permdock.snapshot();
|
|
118
|
+
return "grants" in snapshot && withinDelegation(permdock, permission, snapshot.delegated);
|
|
119
|
+
} catch {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
99
123
|
/**
|
|
100
124
|
* Whether `permission` could be granted to this instance's subject for some
|
|
101
125
|
* row: the grants its snapshot carries for the active tenant, minus an
|
|
@@ -105,10 +129,7 @@ function blocksEveryRow(grant) {
|
|
|
105
129
|
function mayUse(permdock, permission) {
|
|
106
130
|
try {
|
|
107
131
|
const snapshot = permdock.snapshot();
|
|
108
|
-
if (!("grants" in snapshot)) return false;
|
|
109
|
-
const ceiling = snapshot.delegated;
|
|
110
|
-
if (ceiling !== void 0 && !ceiling.includes(permission.key) || readOnlyActorRefuses(permdock.subject.actor, permission)) return false;
|
|
111
|
-
if (!delegationMayCover(permission, permdock.subject.delegation, permdock.subject.actor !== void 0 && ceiling === void 0)) return false;
|
|
132
|
+
if (!("grants" in snapshot) || !withinDelegation(permdock, permission, snapshot.delegated)) return false;
|
|
112
133
|
const tenant = permdock.subject.principal?.tenant;
|
|
113
134
|
const scopes = scopeList(snapshot.scopes);
|
|
114
135
|
const grants = snapshot.grants.filter((grant) => {
|
|
@@ -143,8 +164,7 @@ function permittedIds(permdock, permission, scope, options = {}) {
|
|
|
143
164
|
if (!("grants" in snapshot)) return [];
|
|
144
165
|
const scopes = scopeList(snapshot.scopes);
|
|
145
166
|
const name = resolveScope(scopes, scope);
|
|
146
|
-
|
|
147
|
-
if (name === void 0 || 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)) return [];
|
|
167
|
+
if (name === void 0 || !withinDelegation(permdock, permission, snapshot.delegated)) return [];
|
|
148
168
|
const conditioned = options.conditioned === true;
|
|
149
169
|
const now = nowSeconds();
|
|
150
170
|
const allowed = /* @__PURE__ */ new Set();
|
|
@@ -183,7 +203,7 @@ function namedFilters(membership, scope) {
|
|
|
183
203
|
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;
|
|
184
204
|
const filters = [];
|
|
185
205
|
for (const name of scopeChain(scope.scopes, membership.scope).toReversed()) {
|
|
186
|
-
const key = scope.fieldOf
|
|
206
|
+
const key = scope.fieldOf(name);
|
|
187
207
|
if (key !== void 0 && scope.partitioned(name, key)) filters.push(eq(key, scopeIdOf(membership, name)));
|
|
188
208
|
}
|
|
189
209
|
return filters;
|
|
@@ -303,4 +323,4 @@ function whereFromGrants(grants, scope) {
|
|
|
303
323
|
return freezeDeep(result);
|
|
304
324
|
}
|
|
305
325
|
//#endregion
|
|
306
|
-
export {
|
|
326
|
+
export { decideForTarget as a, snapshotClaim as c, permittedIds as i, snapshotClaims as l, delegationAllows as n, deniedFor as o, mayUse as r, signSnapshot as s, whereFromGrants as t, snapshotFromClaims as u };
|
|
@@ -2,15 +2,15 @@ import { t as compact } from "./compact-CAf557ZB.js";
|
|
|
2
2
|
import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
|
|
3
3
|
import { r as ownGet } from "./paths-DXSHAMIa.js";
|
|
4
4
|
import { n as internalsOf } from "./internals-Dk8A8fX3.js";
|
|
5
|
-
import { a as getResource } from "./permission-registry-
|
|
5
|
+
import { a as getResource } from "./permission-registry-DpPtSKNZ.js";
|
|
6
6
|
import { a as expandRelation, c as isEdgeRelation, l as isFieldRelation, u as isPrincipalRelation } from "./resource-relations-D_jw0BFx.js";
|
|
7
7
|
import { s as instantAt } from "./time-DkWjdL98.js";
|
|
8
|
-
import {
|
|
9
|
-
import { o as flattenGrantee } from "./grantee-
|
|
10
|
-
import { r as relationCondition } from "./grantee-conditions-
|
|
11
|
-
import { c as nowSeconds, p as scopeField } from "./tenancy-
|
|
8
|
+
import { f as scopeList, l as rootScope, o as normalizeMemberships, s as resolveScope } from "./scopes-BHsc-wp-.js";
|
|
9
|
+
import { o as flattenGrantee } from "./grantee-BrRANrpT.js";
|
|
10
|
+
import { r as relationCondition } from "./grantee-conditions-C6P1Tvol.js";
|
|
11
|
+
import { c as nowSeconds, p as scopeField } from "./tenancy-CmeBQ6Nv.js";
|
|
12
12
|
import { t as byCodePoint } from "./compare-pfyVnBjE.js";
|
|
13
|
-
import {
|
|
13
|
+
import { D as emptyListeners, t as evaluate } from "./evaluate-B_oqFbWC.js";
|
|
14
14
|
import { n as relationId, t as pendingRelations } from "./relations-BnCWnJGI.js";
|
|
15
15
|
import { t as relationWalk } from "./relation-walk-3OyDBF0S.js";
|
|
16
16
|
//#region src/core/who-can.ts
|
package/dist/workflow/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as AutomationSource, i as AutomationRequest, l as memoryAutomationSource, n as AutomationDecision, r as AutomationMode, s as MemoryAutomationSource, t as Automation, u as parseAutomation } from "../automation-
|
|
2
|
-
import { i as pollingApprovalWaiter, n as ApprovalWaiter, r as PollingApprovalWaiterOptions, t as ApprovalWaitOptions } from "../waiter-
|
|
3
|
-
import { a as WorkflowPermDockOptions, i as WorkflowPermDock, n as AwaitApprovalOptions, o as createPermDock, r as StartAutomationResult, t as AutomationOptions } from "../create-
|
|
1
|
+
import { a as AutomationSource, i as AutomationRequest, l as memoryAutomationSource, n as AutomationDecision, r as AutomationMode, s as MemoryAutomationSource, t as Automation, u as parseAutomation } from "../automation-DOtAFWdy.js";
|
|
2
|
+
import { i as pollingApprovalWaiter, n as ApprovalWaiter, r as PollingApprovalWaiterOptions, t as ApprovalWaitOptions } from "../waiter-DwEyouan.js";
|
|
3
|
+
import { a as WorkflowPermDockOptions, i as WorkflowPermDock, n as AwaitApprovalOptions, o as createPermDock, r as StartAutomationResult, t as AutomationOptions } from "../create-QHuuPw3q.js";
|
|
4
4
|
import "../index-CaxrMD1A.js";
|
|
5
5
|
export { type ApprovalWaitOptions, type ApprovalWaiter, type Automation, type AutomationDecision, type AutomationMode, type AutomationOptions, type AutomationRequest, type AutomationSource, type AwaitApprovalOptions, type MemoryAutomationSource, type PollingApprovalWaiterOptions, type StartAutomationResult, type WorkflowPermDock, type WorkflowPermDockOptions, createPermDock, memoryAutomationSource, parseAutomation, pollingApprovalWaiter };
|
package/dist/workflow/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { t as compact } from "../compact-CAf557ZB.js";
|
|
2
2
|
import { n as freezeDeep } from "../freeze-CrU8nQeX.js";
|
|
3
|
-
import { n as findPermission } from "../permission-registry-
|
|
3
|
+
import { n as findPermission } from "../permission-registry-DpPtSKNZ.js";
|
|
4
4
|
import { n as isThenable } from "../thenable-yD7SabqG.js";
|
|
5
|
-
import { n as memoryAutomationSource, r as parseAutomation } from "../automation-
|
|
6
|
-
import {
|
|
5
|
+
import { n as memoryAutomationSource, r as parseAutomation } from "../automation-ySsxp_Yp.js";
|
|
6
|
+
import { l as withApp, t as getPermDock } from "../permdock-BfWEeMqk.js";
|
|
7
7
|
import { o as automationEvent } from "../sink-BEZSlMS_.js";
|
|
8
|
-
import { a as requestApproval, s as resumeDecision } from "../helpers-
|
|
9
|
-
import {
|
|
8
|
+
import { a as requestApproval, s as resumeDecision } from "../helpers-DY3vXuGs.js";
|
|
9
|
+
import { i as subjectFromRunTicket, r as signRunTicket } from "../run-ticket-B5d_63Ma.js";
|
|
10
10
|
import { t as pollingApprovalWaiter } from "../waiter-BGUtGYoU.js";
|
|
11
11
|
//#region src/workflow/create.ts
|
|
12
12
|
function writeQuietly(sink, event) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { n as ApprovalWaiter } from "../waiter-
|
|
5
|
-
import { i as WorkflowPermDock, r as StartAutomationResult, t as AutomationOptions } from "../create-
|
|
1
|
+
import { Ln as Decision } from "../policy-types-B-F-qAZk.js";
|
|
2
|
+
import { u as Permission } from "../permission-types-DhNEmoRG.js";
|
|
3
|
+
import { a as PermDock } from "../permdock-Dco6dyCK.js";
|
|
4
|
+
import { n as ApprovalWaiter } from "../waiter-DwEyouan.js";
|
|
5
|
+
import { i as WorkflowPermDock, r as StartAutomationResult, t as AutomationOptions } from "../create-QHuuPw3q.js";
|
|
6
6
|
//#region src/workflow-sdk/index.d.ts
|
|
7
7
|
/** The part of a Workflow SDK `Hook` the waiter reads: awaiting it suspends the run. */
|
|
8
8
|
export type WorkflowSdkHook = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { j as PolicyVocabulary } from "./policy-types-
|
|
2
|
-
import {
|
|
1
|
+
import { j as PolicyVocabulary } from "./policy-types-B-F-qAZk.js";
|
|
2
|
+
import { a as PermDock } from "./permdock-Dco6dyCK.js";
|
|
3
3
|
//#region src/core/wrap.d.ts
|
|
4
4
|
/** A wrapper an adapter applies to each instance it builds, as `withOtel` does. */
|
|
5
5
|
type PermDockWrap = <V extends PolicyVocabulary>(permdock: PermDock<V>) => PermDock<V>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { n as internalsOf, t as attachInternals } from "./internals-Dk8A8fX3.js";
|
|
2
|
+
import { i as decideAllWith, n as canAllWith } from "./checks-BC_0mPIq.js";
|
|
2
3
|
//#region src/core/wrap.ts
|
|
3
4
|
/**
|
|
4
5
|
* A frozen copy of `permdock` with the members `overrides` returns replaced.
|
|
@@ -7,9 +8,14 @@ import { n as internalsOf, t as attachInternals } from "./internals-Dk8A8fX3.js"
|
|
|
7
8
|
*/
|
|
8
9
|
function wrapPermDock(permdock, overrides) {
|
|
9
10
|
const wrap = (next) => wrapPermDock(next, overrides);
|
|
10
|
-
const
|
|
11
|
+
const replaced = {
|
|
11
12
|
...permdock,
|
|
12
|
-
...overrides(permdock)
|
|
13
|
+
...overrides(permdock)
|
|
14
|
+
};
|
|
15
|
+
const wrapped = {
|
|
16
|
+
...replaced,
|
|
17
|
+
canAll: (checks, options) => canAllWith(replaced.can, checks, options),
|
|
18
|
+
decideAll: (checks, options) => decideAllWith(replaced.decide, checks, options),
|
|
13
19
|
tenant: (id) => wrap(permdock.tenant(id)),
|
|
14
20
|
team: (id) => wrap(permdock.team(id)),
|
|
15
21
|
derive: async (options) => wrap(await permdock.derive(options))
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "permdock",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Typed permissions for TypeScript apps, APIs, databases, and AI agents, with the permdock CLI and test runners.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai-agents",
|
|
@@ -271,6 +271,14 @@
|
|
|
271
271
|
"types": "./dist/testing/index.d.ts",
|
|
272
272
|
"default": "./dist/testing/index.js"
|
|
273
273
|
},
|
|
274
|
+
"./testing/core": {
|
|
275
|
+
"types": "./dist/testing/core.d.ts",
|
|
276
|
+
"default": "./dist/testing/core.js"
|
|
277
|
+
},
|
|
278
|
+
"./testing/fixtures": {
|
|
279
|
+
"types": "./dist/testing/fixtures/index.d.ts",
|
|
280
|
+
"default": "./dist/testing/fixtures/index.js"
|
|
281
|
+
},
|
|
274
282
|
"./testing/saas": {
|
|
275
283
|
"types": "./dist/testing/saas/index.d.ts",
|
|
276
284
|
"default": "./dist/testing/saas/index.js"
|
|
@@ -299,26 +307,23 @@
|
|
|
299
307
|
"types": "./dist/unplugin/index.d.ts",
|
|
300
308
|
"default": "./dist/unplugin/index.js"
|
|
301
309
|
},
|
|
302
|
-
"./schemas/*": "./schemas/*"
|
|
310
|
+
"./schemas/*": "./schemas/*",
|
|
311
|
+
"./package.json": "./package.json"
|
|
303
312
|
},
|
|
304
313
|
"publishConfig": {
|
|
305
314
|
"access": "public",
|
|
306
315
|
"provenance": true
|
|
307
316
|
},
|
|
308
317
|
"dependencies": {
|
|
309
|
-
"@clack/prompts": "1.8.1",
|
|
310
318
|
"@standard-schema/spec": "1.1.0",
|
|
311
|
-
"diff": "9.0.0",
|
|
312
|
-
"fastest-levenshtein": "1.0.16",
|
|
313
319
|
"jiti": "2.7.0",
|
|
314
|
-
"oxc-parser": "0.154.0"
|
|
315
|
-
"package-manager-detector": "1.9.0",
|
|
316
|
-
"smol-toml": "1.9.1"
|
|
320
|
+
"oxc-parser": "0.154.0"
|
|
317
321
|
},
|
|
318
322
|
"devDependencies": {
|
|
319
323
|
"@anthropic-ai/claude-agent-sdk": "0.3.301",
|
|
320
324
|
"@arethetypeswrong/cli": "0.18.5",
|
|
321
325
|
"@babel/core": "8.0.7",
|
|
326
|
+
"@clack/prompts": "1.8.1",
|
|
322
327
|
"@modelcontextprotocol/client": "2.3.1",
|
|
323
328
|
"@modelcontextprotocol/server": "2.3.1",
|
|
324
329
|
"@nestjs/common": "12.1.3",
|
|
@@ -348,13 +353,15 @@
|
|
|
348
353
|
"ajv": "8.20.0",
|
|
349
354
|
"astro": "7.4.0",
|
|
350
355
|
"babel-plugin-react-compiler": "1.0.0",
|
|
351
|
-
"better-supabase": "0.
|
|
352
|
-
"better-supabase-floor": "npm:better-supabase@0.
|
|
356
|
+
"better-supabase": "0.12.0",
|
|
357
|
+
"better-supabase-floor": "npm:better-supabase@0.11.0",
|
|
353
358
|
"chat": "4.42.0",
|
|
359
|
+
"diff": "9.0.0",
|
|
354
360
|
"drizzle-orm": "1.0.0-rc.5-5935859",
|
|
355
361
|
"elysia": "1.4.30",
|
|
356
362
|
"eve": "0.79.2",
|
|
357
363
|
"express": "5.3.0",
|
|
364
|
+
"fastest-levenshtein": "1.0.16",
|
|
358
365
|
"fastify": "5.12.7",
|
|
359
366
|
"h3": "2.0.2",
|
|
360
367
|
"happy-dom": "20.14.5",
|
|
@@ -364,6 +371,7 @@
|
|
|
364
371
|
"next": "16.4.1",
|
|
365
372
|
"oxlint": "1.88.0",
|
|
366
373
|
"oxlint-tsgolint": "7.0.2004",
|
|
374
|
+
"package-manager-detector": "1.9.0",
|
|
367
375
|
"pg": "8.23.1",
|
|
368
376
|
"pgsql-parser": "18.2.12",
|
|
369
377
|
"publint": "0.3.25",
|
|
@@ -372,6 +380,7 @@
|
|
|
372
380
|
"reflect-metadata": "0.2.2",
|
|
373
381
|
"resend": "6.33.0",
|
|
374
382
|
"rxjs": "7.8.2",
|
|
383
|
+
"smol-toml": "1.9.1",
|
|
375
384
|
"solid-js": "1.9.17",
|
|
376
385
|
"svelte": "5.57.2",
|
|
377
386
|
"temporal-polyfill": "1.0.6",
|
|
@@ -402,7 +411,7 @@
|
|
|
402
411
|
"@trpc/server": ">=11",
|
|
403
412
|
"ai": ">=5",
|
|
404
413
|
"astro": ">=5",
|
|
405
|
-
"better-supabase": ">=0.
|
|
414
|
+
"better-supabase": ">=0.11.0 <0.13.0",
|
|
406
415
|
"chat": ">=4",
|
|
407
416
|
"drizzle-orm": ">=0.40 || >=1.0.0-rc.0",
|
|
408
417
|
"elysia": ">=1",
|
|
@@ -556,6 +565,8 @@
|
|
|
556
565
|
"bench": "vitest bench --run --project \"node (bench)\" --reporter=verbose",
|
|
557
566
|
"build": "tsdown",
|
|
558
567
|
"check:publish": "publint && pnpm pack --out pack.tgz && attw --profile esm-only pack.tgz && rm -f pack.tgz",
|
|
568
|
+
"gen": "node ../../scripts/testing-fixtures.ts",
|
|
569
|
+
"gen:check": "node ../../scripts/testing-fixtures.ts --check",
|
|
559
570
|
"lint": "oxlint --disable-nested-config --type-aware",
|
|
560
571
|
"test": "vitest run --coverage",
|
|
561
572
|
"typecheck": "tsc --noEmit && tsc --noEmit -p tests/tsconfig.json"
|