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,6 +1,6 @@
|
|
|
1
|
-
import { c as missingInput } from "./errors-
|
|
1
|
+
import { c as missingInput } from "./errors-DpP_U6Bf.js";
|
|
2
2
|
import { t as defineLeaf } from "./command-L8EstFNm.js";
|
|
3
|
-
import { c as given, l as outFlag, t as checkFlag, u as permissionsFlag } from "./flags-
|
|
3
|
+
import { c as given, l as outFlag, t as checkFlag, u as permissionsFlag } from "./flags-aaeRAdiD.js";
|
|
4
4
|
//#region src/cli/commands/catalog.ts
|
|
5
5
|
const RUN_FORMAT = {
|
|
6
6
|
catalog: "json",
|
|
@@ -30,7 +30,7 @@ const catalog = defineLeaf({
|
|
|
30
30
|
...checkFlag
|
|
31
31
|
},
|
|
32
32
|
async run(ctx, { flags }) {
|
|
33
|
-
const { catalogFile, runCatalog } = await import("./catalog-
|
|
33
|
+
const { catalogFile, runCatalog } = await import("./catalog-BCCjSAdH.js");
|
|
34
34
|
const result = await runCatalog({
|
|
35
35
|
cwd: ctx.cwd,
|
|
36
36
|
config: ctx.config,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { r as isRecord } from "./compact-CAf557ZB.js";
|
|
2
2
|
import { r as listSourceFiles, t as defaultSrcPath } from "./files-D_JIzUrP.js";
|
|
3
|
-
import { a as
|
|
4
|
-
import { a as loadModule, i as loadConfiguredPolicy, r as leavesOf, s as pickNamed, t as asPermissionTree } from "./load-
|
|
5
|
-
import { a as loadConfiguredOperations, i as scanSources, r as runCollect } from "./collect-
|
|
6
|
-
import { n as fileSummary, t as applyFiles } from "./files-
|
|
3
|
+
import { a as catalogSchemaDocument, n as catalogForCompare, o as formatCatalogJson, r as catalogForDrift, s as formatCatalogMarkdown, t as buildCatalog } from "./catalog-doc-CV9s6B1S.js";
|
|
4
|
+
import { a as loadModule, i as loadConfiguredPolicy, r as leavesOf, s as pickNamed, t as asPermissionTree } from "./load-DxroEzH1.js";
|
|
5
|
+
import { a as loadConfiguredOperations, i as scanSources, r as runCollect } from "./collect-BaWeMjwV.js";
|
|
6
|
+
import { n as fileSummary, t as applyFiles } from "./files-acUbNwWt.js";
|
|
7
7
|
import { existsSync, readFileSync } from "node:fs";
|
|
8
8
|
import { resolve } from "node:path";
|
|
9
9
|
//#region src/cli/catalog.ts
|
|
@@ -53,18 +53,30 @@ async function runCatalog(input) {
|
|
|
53
53
|
output: formatCatalogJson(filtered)
|
|
54
54
|
};
|
|
55
55
|
}
|
|
56
|
-
/**
|
|
56
|
+
/**
|
|
57
|
+
* The comparable forms of a catalog file: without the fields every run
|
|
58
|
+
* changes, then also without `usages[].line`.
|
|
59
|
+
*/
|
|
57
60
|
function comparable(text) {
|
|
58
61
|
try {
|
|
59
62
|
const parsed = JSON.parse(text);
|
|
60
63
|
if (isRecord(parsed)) {
|
|
61
|
-
const
|
|
62
|
-
return
|
|
64
|
+
const doc = parsed;
|
|
65
|
+
return {
|
|
66
|
+
full: catalogForCompare(doc),
|
|
67
|
+
drift: catalogForDrift(doc)
|
|
68
|
+
};
|
|
63
69
|
}
|
|
64
70
|
} catch {}
|
|
65
|
-
return
|
|
71
|
+
return {
|
|
72
|
+
full: text,
|
|
73
|
+
drift: text
|
|
74
|
+
};
|
|
66
75
|
}
|
|
67
|
-
/**
|
|
76
|
+
/**
|
|
77
|
+
* `catalog --out`: writes the export, or with `--check` exits 1 when the file
|
|
78
|
+
* differs by more than usage line numbers.
|
|
79
|
+
*/
|
|
68
80
|
function catalogFile(cwd, out, text, check) {
|
|
69
81
|
if (check) {
|
|
70
82
|
const path = resolve(cwd, out);
|
|
@@ -76,13 +88,31 @@ function catalogFile(cwd, out, text, check) {
|
|
|
76
88
|
stale: true
|
|
77
89
|
}
|
|
78
90
|
};
|
|
79
|
-
const
|
|
91
|
+
const onDisk = comparable(readFileSync(path, "utf8"));
|
|
92
|
+
const generated = comparable(text);
|
|
93
|
+
if (onDisk.full === generated.full) return {
|
|
94
|
+
code: 0,
|
|
95
|
+
output: `${out} is up to date`,
|
|
96
|
+
data: {
|
|
97
|
+
out,
|
|
98
|
+
stale: false
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
if (onDisk.drift === generated.drift) return {
|
|
102
|
+
code: 0,
|
|
103
|
+
output: `catalog usages moved (lines only): ${out}; run permdock collect to refresh`,
|
|
104
|
+
data: {
|
|
105
|
+
out,
|
|
106
|
+
stale: false,
|
|
107
|
+
positionsMoved: true
|
|
108
|
+
}
|
|
109
|
+
};
|
|
80
110
|
return {
|
|
81
|
-
code:
|
|
82
|
-
output:
|
|
111
|
+
code: 1,
|
|
112
|
+
output: `catalog stale: ${out}`,
|
|
83
113
|
data: {
|
|
84
114
|
out,
|
|
85
|
-
stale
|
|
115
|
+
stale: true
|
|
86
116
|
}
|
|
87
117
|
};
|
|
88
118
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { r as isRecord } from "./compact-CAf557ZB.js";
|
|
2
|
+
import { a as getResource, c as listPermissions, h as formerKeys } from "./permission-registry-DpPtSKNZ.js";
|
|
3
|
+
import { t as canonicalJson } from "./canonical-json-DwilZ1iB.js";
|
|
4
|
+
import { m as findRole, v as listRoles } from "./grantee-BrRANrpT.js";
|
|
4
5
|
import { i as wireValidity } from "./validity-CZ7-y0Cj.js";
|
|
5
6
|
import { t as byCodePoint } from "./compare-pfyVnBjE.js";
|
|
6
|
-
import { t as catalogFingerprint } from "./catalog-fingerprint-
|
|
7
|
+
import { t as catalogFingerprint } from "./catalog-fingerprint-C144oW4M.js";
|
|
7
8
|
import { t as catalogSchema } from "./schema-B4v0Qrac.js";
|
|
8
9
|
import { t as policyRowConditionKeys } from "./row-conditions-h2HythXQ.js";
|
|
9
10
|
import { c as generatorBanner, n as CATALOG_SCHEMA } from "./version-CEbQ5UeM.js";
|
|
@@ -292,6 +293,28 @@ function catalogForCompare(doc) {
|
|
|
292
293
|
const { generatedAt: _generatedAt, generator: _generator, ...rest } = doc;
|
|
293
294
|
return `${JSON.stringify(rest, null, 2)}\n`;
|
|
294
295
|
}
|
|
296
|
+
/**
|
|
297
|
+
* `catalogForCompare` without `usages[].line`: an edit above a call site moves
|
|
298
|
+
* its line without changing the contract, so `--check` does not fail on it.
|
|
299
|
+
*/
|
|
300
|
+
function catalogForDrift(doc) {
|
|
301
|
+
const permissions = doc.permissions;
|
|
302
|
+
if (!Array.isArray(permissions)) return catalogForCompare(doc);
|
|
303
|
+
const { generatedAt: _generatedAt, generator: _generator, ...rest } = doc;
|
|
304
|
+
const stripped = {
|
|
305
|
+
...rest,
|
|
306
|
+
permissions: permissions.map((permission) => {
|
|
307
|
+
if (!isRecord(permission) || !Array.isArray(permission["usages"])) return permission;
|
|
308
|
+
const usages = permission["usages"].map((usage) => {
|
|
309
|
+
if (!isRecord(usage)) return usage;
|
|
310
|
+
const { line: _line, ...position } = usage;
|
|
311
|
+
return position;
|
|
312
|
+
});
|
|
313
|
+
return Object.assign({}, permission, { usages });
|
|
314
|
+
})
|
|
315
|
+
};
|
|
316
|
+
return `${JSON.stringify(stripped, null, 2)}\n`;
|
|
317
|
+
}
|
|
295
318
|
function formatCatalogMarkdown(doc) {
|
|
296
319
|
const lines = ["# Permissions", ""];
|
|
297
320
|
const byResource = /* @__PURE__ */ new Map();
|
|
@@ -312,4 +335,4 @@ function catalogSchemaDocument() {
|
|
|
312
335
|
return catalogSchema;
|
|
313
336
|
}
|
|
314
337
|
//#endregion
|
|
315
|
-
export {
|
|
338
|
+
export { catalogSchemaDocument as a, jsonSchemaOf as c, catalogOAuthScopes as i, catalogForCompare as n, formatCatalogJson as o, catalogForDrift as r, formatCatalogMarkdown as s, buildCatalog as t };
|
|
@@ -2,7 +2,7 @@ import { r as isRecord, t as compact } from "./compact-CAf557ZB.js";
|
|
|
2
2
|
import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
|
|
3
3
|
import { n as isForbiddenKey } from "./paths-DXSHAMIa.js";
|
|
4
4
|
import { l as isRfc3339 } from "./time-DkWjdL98.js";
|
|
5
|
-
import { t as canonicalJson } from "./canonical-json-
|
|
5
|
+
import { t as canonicalJson } from "./canonical-json-DwilZ1iB.js";
|
|
6
6
|
import { r as sha256Digest } from "./sha256-D9ihqmvd.js";
|
|
7
7
|
import { C as EVENT_SCHEMA_IDS, T as SINK_EVENT_SCHEMAS, i as RESERVED_CLOUD_EVENT_TYPES, l as isAbsoluteUri, r as CLOUD_EVENT_TYPES, s as cloudEventType, u as isTraceparent, v as CATALOG_EVENT_SCHEMA } from "./sink-BEZSlMS_.js";
|
|
8
8
|
import { n as copyJson, t as checkSchema } from "./json-schema-B-vAwlde.js";
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { r as isRecord, t as compact } from "./compact-CAf557ZB.js";
|
|
2
2
|
import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
|
|
3
3
|
import { i as dateAt, p as nowSeconds } from "./time-DkWjdL98.js";
|
|
4
|
-
import {
|
|
4
|
+
import { u as policyDocumentFromClaims } from "./hosted-XBgU6RGT.js";
|
|
5
5
|
import { l as isApprovalErrorCode, s as ApprovalError, t as APPROVAL_HEADER } from "./types-DqzsnlSA.js";
|
|
6
6
|
import { h as toCloudEvent, l as isAbsoluteUri } from "./sink-BEZSlMS_.js";
|
|
7
|
-
import { n as parseCatalogEventData, t as catalogFingerprint } from "./catalog-fingerprint-
|
|
7
|
+
import { n as parseCatalogEventData, t as catalogFingerprint } from "./catalog-fingerprint-C144oW4M.js";
|
|
8
8
|
import { t as parseApprovalRequest } from "./parse-request-D_tUXG6M.js";
|
|
9
9
|
import { t as timeoutSignal } from "./timeout-D51niuQP.js";
|
|
10
|
+
import { t as CLOUD_BASE_URL } from "./base-url-BQbddZO5.js";
|
|
10
11
|
//#region src/cloud/approver.ts
|
|
11
12
|
const APPROVER_HEADER = "PermDock-Approver";
|
|
12
13
|
/** The RFC 9396 `authorization_details` type that binds an approver token to one verdict. */
|
|
@@ -92,44 +93,93 @@ function firstNonEmpty(...values) {
|
|
|
92
93
|
function trimSlash(value) {
|
|
93
94
|
return value.endsWith("/") ? value.slice(0, -1) : value;
|
|
94
95
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
function cloudEndpoints(options = {}) {
|
|
100
|
-
const url = trimSlash(firstNonEmpty(options.url, readEnv("PERMDOCK_CLOUD_URL")));
|
|
101
|
-
if (url === "") throw new Error("PermDock: cloud() requires url and key.");
|
|
102
|
-
const environment = firstNonEmpty(options.environment, readEnv("PERMDOCK_CLOUD_ENV"), readEnv("VERCEL_ENV"), "production");
|
|
96
|
+
function cloudUrl(options) {
|
|
97
|
+
return trimSlash(firstNonEmpty(options.url, readEnv("PERMDOCK_CLOUD_URL"), CLOUD_BASE_URL));
|
|
98
|
+
}
|
|
99
|
+
function endpointsOf(url, environment) {
|
|
103
100
|
const issuer = `${url}/v1/environments/${encodeURIComponent(environment)}`;
|
|
104
101
|
return Object.freeze({
|
|
105
102
|
issuer,
|
|
106
103
|
jwks: `${issuer}/.well-known/jwks.json`
|
|
107
104
|
});
|
|
108
105
|
}
|
|
109
|
-
/**
|
|
106
|
+
/** `options.environment`, else `PERMDOCK_CLOUD_ENV`, else `""` for the key-bound lookup. */
|
|
107
|
+
function configuredEnvironment(options) {
|
|
108
|
+
return firstNonEmpty(options.environment, readEnv("PERMDOCK_CLOUD_ENV"));
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* The environment URL and JWK Set URL `cloud()` uses when the environment is
|
|
112
|
+
* configured: `environment`, else `PERMDOCK_CLOUD_ENV`. Throws when neither
|
|
113
|
+
* is set; `resolveCloudEndpoints` then asks the Cloud which environment the
|
|
114
|
+
* key belongs to.
|
|
115
|
+
*/
|
|
116
|
+
function cloudEndpoints(options = {}) {
|
|
117
|
+
const url = cloudUrl(options);
|
|
118
|
+
const environment = configuredEnvironment(options);
|
|
119
|
+
if (environment === "") throw new Error("PermDock: cloudEndpoints() requires environment or PERMDOCK_CLOUD_ENV; resolveCloudEndpoints() asks the Cloud for the key's environment.");
|
|
120
|
+
return endpointsOf(url, environment);
|
|
121
|
+
}
|
|
122
|
+
async function keyEnvironment(url, key, fetchFn) {
|
|
123
|
+
const response = await fetchFn(`${url}/v1/environment`, {
|
|
124
|
+
headers: {
|
|
125
|
+
authorization: `Bearer ${key}`,
|
|
126
|
+
accept: "application/json"
|
|
127
|
+
},
|
|
128
|
+
signal: timeoutSignal(CLOUD_TIMEOUT_MS)
|
|
129
|
+
});
|
|
130
|
+
if (!response.ok) throw new Error(`PermDock Cloud did not name the key's environment: HTTP ${String(response.status)}`);
|
|
131
|
+
const body = await response.json();
|
|
132
|
+
if (!isRecord(body) || typeof body["environment"] !== "string") throw new Error("PermDock Cloud answered GET /v1/environment in an unknown shape");
|
|
133
|
+
const endpoints = endpointsOf(url, body["environment"]);
|
|
134
|
+
if (body["issuer"] !== endpoints.issuer) throw new Error(`PermDock Cloud named issuer ${String(body["issuer"])}, not ${endpoints.issuer}`);
|
|
135
|
+
return endpoints;
|
|
136
|
+
}
|
|
137
|
+
/** The authenticated connection every `permdock/cloud` client shares. Throws without a key. */
|
|
110
138
|
function cloudConnection(options) {
|
|
111
139
|
const key = firstNonEmpty(options.key, readEnv("PERMDOCK_CLOUD_KEY"));
|
|
112
|
-
|
|
113
|
-
|
|
140
|
+
const url = cloudUrl(options);
|
|
141
|
+
if (key === "") throw new Error("PermDock: cloud() requires a key (PERMDOCK_CLOUD_KEY).");
|
|
142
|
+
const environment = configuredEnvironment(options);
|
|
143
|
+
const known = environment === "" ? void 0 : endpointsOf(url, environment);
|
|
114
144
|
const fetchFn = options.fetch ?? globalThis.fetch.bind(globalThis);
|
|
115
|
-
|
|
145
|
+
let pending;
|
|
146
|
+
const endpoints = () => {
|
|
147
|
+
if (known !== void 0) return Promise.resolve(known);
|
|
148
|
+
pending ??= keyEnvironment(url, key, fetchFn).catch((error) => {
|
|
149
|
+
pending = void 0;
|
|
150
|
+
throw error;
|
|
151
|
+
});
|
|
152
|
+
return pending;
|
|
153
|
+
};
|
|
154
|
+
const request = async (path, init = {}, accept, contentType) => {
|
|
155
|
+
const { issuer } = await endpoints();
|
|
116
156
|
const headers = new Headers();
|
|
117
157
|
headers.set("authorization", `Bearer ${key}`);
|
|
118
158
|
headers.set("content-type", "application/json");
|
|
119
159
|
for (const [name, value] of new Headers(init.headers)) headers.set(name, value);
|
|
120
160
|
if (accept !== void 0) headers.set("accept", accept);
|
|
121
161
|
if (contentType !== void 0) headers.set("content-type", contentType);
|
|
122
|
-
return fetchFn(`${
|
|
162
|
+
return fetchFn(`${issuer}${path}`, {
|
|
123
163
|
...init,
|
|
124
164
|
headers,
|
|
125
165
|
signal: timeoutSignal(CLOUD_TIMEOUT_MS, init.signal)
|
|
126
166
|
});
|
|
127
167
|
};
|
|
128
168
|
return Object.freeze({
|
|
129
|
-
|
|
169
|
+
known,
|
|
170
|
+
endpoints,
|
|
130
171
|
request
|
|
131
172
|
});
|
|
132
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* The environment URL and JWK Set URL for a key: `cloudEndpoints(options)`
|
|
176
|
+
* when the environment is configured, else the environment `GET
|
|
177
|
+
* /v1/environment` names for `key` (`PERMDOCK_CLOUD_KEY`). Rejects when the
|
|
178
|
+
* Cloud does not answer or answers another issuer.
|
|
179
|
+
*/
|
|
180
|
+
async function resolveCloudEndpoints(options = {}) {
|
|
181
|
+
return await cloudConnection(options).endpoints();
|
|
182
|
+
}
|
|
133
183
|
/** `true` for a compact JWS: three dot-separated parts, not JSON. */
|
|
134
184
|
function isCompactJws(value) {
|
|
135
185
|
return !value.startsWith("{") && value.split(".").length === 3;
|
|
@@ -182,7 +232,7 @@ function approvalErrorFromStatus(status) {
|
|
|
182
232
|
return new ApprovalError("approval-not-found", "approval was not found");
|
|
183
233
|
}
|
|
184
234
|
function cloud(options = {}) {
|
|
185
|
-
const {
|
|
235
|
+
const { known, endpoints, request } = cloudConnection(options);
|
|
186
236
|
const flushAt = options.flushAt ?? 32;
|
|
187
237
|
const waitUntil = options.waitUntil;
|
|
188
238
|
const approvals = {
|
|
@@ -211,7 +261,7 @@ function cloud(options = {}) {
|
|
|
211
261
|
}
|
|
212
262
|
},
|
|
213
263
|
async resolve(token, verdict) {
|
|
214
|
-
const approver = await approverHeaders(verdict, options.approver,
|
|
264
|
+
const approver = await approverHeaders(verdict, options.approver, (await endpoints()).issuer, async () => {
|
|
215
265
|
const response = await request("/approvals/by-token", { headers: { [APPROVAL_HEADER]: token } });
|
|
216
266
|
if (!response.ok) throw await approvalErrorFrom(response);
|
|
217
267
|
const found = parseApprovalRequest(await response.json());
|
|
@@ -306,8 +356,7 @@ function cloud(options = {}) {
|
|
|
306
356
|
}
|
|
307
357
|
};
|
|
308
358
|
const capacity = options.capacity ?? 1e4;
|
|
309
|
-
|
|
310
|
-
if (!isAbsoluteUri(source)) throw new TypeError("PermDock: cloud() source is an absolute URI");
|
|
359
|
+
if (options.source !== void 0 && !isAbsoluteUri(options.source)) throw new TypeError("PermDock: cloud() source is an absolute URI");
|
|
311
360
|
const pending = [];
|
|
312
361
|
const bound = () => {
|
|
313
362
|
if (pending.length > capacity) pending.splice(0, pending.length - capacity);
|
|
@@ -316,6 +365,7 @@ function cloud(options = {}) {
|
|
|
316
365
|
if (pending.length === 0) return;
|
|
317
366
|
const events = pending.splice(0);
|
|
318
367
|
try {
|
|
368
|
+
const source = options.source ?? (await endpoints()).issuer;
|
|
319
369
|
if (!(await request("/decisions", {
|
|
320
370
|
method: "POST",
|
|
321
371
|
body: JSON.stringify(events.map((event) => toCloudEvent(event, { source })))
|
|
@@ -342,6 +392,13 @@ function cloud(options = {}) {
|
|
|
342
392
|
return text;
|
|
343
393
|
} });
|
|
344
394
|
let document = null;
|
|
395
|
+
let built;
|
|
396
|
+
const policyVerifier = (resolved) => {
|
|
397
|
+
const verifier = options.verifier;
|
|
398
|
+
if (typeof verifier !== "function") return verifier;
|
|
399
|
+
built ??= verifier(resolved);
|
|
400
|
+
return built;
|
|
401
|
+
};
|
|
345
402
|
return freezeDeep({
|
|
346
403
|
approvals,
|
|
347
404
|
sink,
|
|
@@ -351,10 +408,15 @@ function cloud(options = {}) {
|
|
|
351
408
|
return document;
|
|
352
409
|
},
|
|
353
410
|
async refresh() {
|
|
354
|
-
|
|
355
|
-
if (verifier === void 0) return;
|
|
411
|
+
if (options.verifier === void 0) return;
|
|
356
412
|
let response;
|
|
413
|
+
let root;
|
|
414
|
+
let verifier;
|
|
357
415
|
try {
|
|
416
|
+
const resolved = await endpoints();
|
|
417
|
+
root = resolved.issuer;
|
|
418
|
+
verifier = policyVerifier(resolved);
|
|
419
|
+
if (verifier === void 0) return;
|
|
358
420
|
response = await request("/policy");
|
|
359
421
|
} catch {
|
|
360
422
|
return;
|
|
@@ -395,9 +457,44 @@ function cloud(options = {}) {
|
|
|
395
457
|
if (parsed === null) throw new Error("PermDock Cloud answered the catalog push in an unknown shape");
|
|
396
458
|
return parsed;
|
|
397
459
|
} },
|
|
398
|
-
|
|
399
|
-
|
|
460
|
+
endpoints,
|
|
461
|
+
...known
|
|
400
462
|
});
|
|
401
463
|
}
|
|
402
464
|
//#endregion
|
|
403
|
-
|
|
465
|
+
//#region src/cloud/challenge.ts
|
|
466
|
+
const SCHEME = /^[\s,]*([!#$%&'*+.^_`|~0-9A-Za-z-]+)(?=[\s,]|$)/u;
|
|
467
|
+
const PARAM = /^\s*([!#$%&'*+.^_`|~0-9A-Za-z-]+)\s*=\s*(?:"((?:[^"\\]|\\.)*)"|([!#$%&'*+.^_`|~0-9A-Za-z-]+))\s*(?:,|$)/u;
|
|
468
|
+
const TOKEN68 = /^\s*[A-Za-z0-9._~+/-]+=*\s*(?:,|$)/u;
|
|
469
|
+
/**
|
|
470
|
+
* The first `Bearer` challenge in `header` (RFC 9110 section 11.6.1 syntax),
|
|
471
|
+
* or `null`. Other schemes in the same field are skipped.
|
|
472
|
+
*/
|
|
473
|
+
function bearerChallenge(header) {
|
|
474
|
+
if (header === null) return null;
|
|
475
|
+
let rest = header;
|
|
476
|
+
while (rest.trim() !== "") {
|
|
477
|
+
const scheme = SCHEME.exec(rest);
|
|
478
|
+
if (scheme === null) return null;
|
|
479
|
+
rest = rest.slice(scheme[0].length);
|
|
480
|
+
const entries = [];
|
|
481
|
+
let param = PARAM.exec(rest);
|
|
482
|
+
if (param === null) {
|
|
483
|
+
const token68 = TOKEN68.exec(rest);
|
|
484
|
+
rest = token68 === null ? rest : rest.slice(token68[0].length);
|
|
485
|
+
}
|
|
486
|
+
while (param !== null) {
|
|
487
|
+
const quoted = param[2];
|
|
488
|
+
entries.push([(param[1] ?? "").toLowerCase(), quoted === void 0 ? param[3] ?? "" : quoted.replaceAll(/\\(.)/gu, "$1")]);
|
|
489
|
+
rest = rest.slice(param[0].length);
|
|
490
|
+
param = PARAM.exec(rest);
|
|
491
|
+
}
|
|
492
|
+
if ((scheme[1] ?? "").toLowerCase() === "bearer") return Object.freeze({
|
|
493
|
+
scheme: "bearer",
|
|
494
|
+
params: Object.freeze(Object.fromEntries(entries))
|
|
495
|
+
});
|
|
496
|
+
}
|
|
497
|
+
return null;
|
|
498
|
+
}
|
|
499
|
+
//#endregion
|
|
500
|
+
export { isCompactJws as a, cloudEndpoints as i, cloud as n, resolveCloudEndpoints as o, cloudConnection as r, approverHeaders as s, bearerChallenge as t };
|
package/dist/chat/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as ChatCommandResult, c as createPermDock, d as SubjectFromChatOptions, f as isChatAuthor, i as ChatCommandContext, l as ChatAuthor, n as ChatActionResult, o as ChatPermDock, p as subjectFromChat, r as ChatCommand, s as ChatPermDockOptions, t as ChatAction, u as ChatPrincipal } from "../create-
|
|
1
|
+
import { a as ChatCommandResult, c as createPermDock, d as SubjectFromChatOptions, f as isChatAuthor, i as ChatCommandContext, l as ChatAuthor, n as ChatActionResult, o as ChatPermDock, p as subjectFromChat, r as ChatCommand, s as ChatPermDockOptions, t as ChatAction, u as ChatPrincipal } from "../create-B2-CQqCI.js";
|
|
2
2
|
export { type ChatAction, type ChatActionResult, type ChatAuthor, type ChatCommand, type ChatCommandContext, type ChatCommandResult, type ChatPermDock, type ChatPermDockOptions, type ChatPrincipal, type SubjectFromChatOptions, createPermDock, isChatAuthor, subjectFromChat };
|
package/dist/chat/index.js
CHANGED
|
@@ -2,9 +2,9 @@ import { t as compact } from "../compact-CAf557ZB.js";
|
|
|
2
2
|
import { n as freezeDeep } from "../freeze-CrU8nQeX.js";
|
|
3
3
|
import { n as loadPrincipalByIdentity } from "../principal-source-pHneukrx.js";
|
|
4
4
|
import { f as nowMillis } from "../time-DkWjdL98.js";
|
|
5
|
-
import {
|
|
5
|
+
import { l as withApp, t as getPermDock } from "../permdock-BfWEeMqk.js";
|
|
6
6
|
import { c as isApprovalError } from "../types-DqzsnlSA.js";
|
|
7
|
-
import { a as requestApproval, o as resolveApproval, s as resumeDecision } from "../helpers-
|
|
7
|
+
import { a as requestApproval, o as resolveApproval, s as resumeDecision } from "../helpers-DY3vXuGs.js";
|
|
8
8
|
import { t as approvalPrompt } from "../approval-prompt-Dg5LeAcT.js";
|
|
9
9
|
//#region src/chat/subject.ts
|
|
10
10
|
function nonEmpty(value) {
|
package/dist/chat-sdk/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as ApprovalUrl, t as ApprovalPrompt } from "../approval-prompt-
|
|
2
|
-
import { l as ChatAuthor, n as ChatActionResult, o as ChatPermDock } from "../create-
|
|
3
|
-
import { n as ChatTransport } from "../types-
|
|
1
|
+
import { n as ApprovalUrl, t as ApprovalPrompt } from "../approval-prompt-K0faOLFp.js";
|
|
2
|
+
import { l as ChatAuthor, n as ChatActionResult, o as ChatPermDock } from "../create-B2-CQqCI.js";
|
|
3
|
+
import { n as ChatTransport } from "../types-g7Oy6Zg4.js";
|
|
4
4
|
import { ActionEvent, Author, CardElement } from "chat";
|
|
5
5
|
//#region src/chat-sdk/author.d.ts
|
|
6
6
|
type ChatSdkAuthorOptions = {
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { n as isReadonlyArray } from "./compact-CAf557ZB.js";
|
|
2
|
+
//#region src/core/checks.ts
|
|
3
|
+
function partsOf(check) {
|
|
4
|
+
return isReadonlyArray(check) ? [check[0], check[1]] : [check, void 0];
|
|
5
|
+
}
|
|
6
|
+
/** `true` when every check is granted, stopping at the first that is not; an empty list is `false`. */
|
|
7
|
+
function canAllWith(can, checks, options) {
|
|
8
|
+
if (checks.length === 0) return false;
|
|
9
|
+
return checks.every((check) => {
|
|
10
|
+
const [permission, data] = partsOf(check);
|
|
11
|
+
return can(permission, data, options);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
/** One decision per check, in check order. */
|
|
15
|
+
function decideAllWith(decide, checks, options) {
|
|
16
|
+
return Object.freeze(checks.map((check) => {
|
|
17
|
+
const [permission, data] = partsOf(check);
|
|
18
|
+
return decide(permission, data, options);
|
|
19
|
+
}));
|
|
20
|
+
}
|
|
21
|
+
/** The async `canAll` of an instance whose `can` answers a Promise. */
|
|
22
|
+
async function canAllAsync(can, checks, options) {
|
|
23
|
+
if (checks.length === 0) return false;
|
|
24
|
+
return (await Promise.all(checks.map((check) => {
|
|
25
|
+
const [permission, data] = partsOf(check);
|
|
26
|
+
return can(permission, data, options);
|
|
27
|
+
}))).every(Boolean);
|
|
28
|
+
}
|
|
29
|
+
/** The async `decideAll` of an instance whose `decide` answers a Promise. */
|
|
30
|
+
async function decideAllAsync(decide, checks, options) {
|
|
31
|
+
return Object.freeze(await Promise.all(checks.map((check) => {
|
|
32
|
+
const [permission, data] = partsOf(check);
|
|
33
|
+
return decide(permission, data, options);
|
|
34
|
+
})));
|
|
35
|
+
}
|
|
36
|
+
//#endregion
|
|
37
|
+
export { decideAllWith as i, canAllWith as n, decideAllAsync as r, canAllAsync as t };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { T as Policy, j as PolicyVocabulary,
|
|
2
|
-
import {
|
|
3
|
-
import { o as AgentAdapterOptions, t as AgentPermDock } from "../create-
|
|
1
|
+
import { T as Policy, j as PolicyVocabulary, sr as Principal } from "../policy-types-B-F-qAZk.js";
|
|
2
|
+
import { a as PermDock } from "../permdock-Dco6dyCK.js";
|
|
3
|
+
import { o as AgentAdapterOptions, t as AgentPermDock } from "../create-UTnUVETj.js";
|
|
4
4
|
//#region src/claude-agent/create.d.ts
|
|
5
5
|
/** Structural `McpServerProvenance` from `@anthropic-ai/claude-agent-sdk`. */
|
|
6
6
|
type ClaudeMcpServer = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as isRecord, t as compact } from "../compact-CAf557ZB.js";
|
|
2
|
-
import {
|
|
3
|
-
import { t as agentRuntime } from "../create-
|
|
2
|
+
import { l as withApp } from "../permdock-BfWEeMqk.js";
|
|
3
|
+
import { t as agentRuntime } from "../create-Cb86Z8Im.js";
|
|
4
4
|
//#region src/claude-agent/create.ts
|
|
5
5
|
const MCP_PREFIX = "mcp__";
|
|
6
6
|
function asInput(input) {
|
package/dist/clerk/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { W as CustomRoleSource,
|
|
2
|
-
import {
|
|
3
|
-
import { s as RemotePdpCache } from "../types-
|
|
1
|
+
import { W as CustomRoleSource, lr as Subject, sr as Principal } from "../policy-types-B-F-qAZk.js";
|
|
2
|
+
import { u as Permission } from "../permission-types-DhNEmoRG.js";
|
|
3
|
+
import { s as RemotePdpCache } from "../types-D3A19w4A.js";
|
|
4
4
|
import { t as ClaimsMap } from "../claims-map-Ca-QX8C6.js";
|
|
5
5
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
6
6
|
//#region src/clerk/types.d.ts
|
package/dist/clerk/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { n as freezeDeep } from "../freeze-CrU8nQeX.js";
|
|
|
3
3
|
import { r as validateRecord } from "../thenable-yD7SabqG.js";
|
|
4
4
|
import { t as anonymousSubject } from "../subject-BGoM5o8B.js";
|
|
5
5
|
import { t as readClaim } from "../claims-map-7oQ3ue4X.js";
|
|
6
|
-
import { c as ttlMs, s as ttlCache } from "../shared-
|
|
6
|
+
import { c as ttlMs, s as ttlCache } from "../shared-C8LjUdVU.js";
|
|
7
7
|
//#region src/clerk/subject.ts
|
|
8
8
|
function asRoles(value) {
|
|
9
9
|
if (typeof value === "string") return value === "" ? [] : [value];
|
package/dist/cli/bin.js
CHANGED
|
@@ -11,8 +11,8 @@ if (argv.length === 1 && (argv[0] === "--version" || argv[0] === "-v")) {
|
|
|
11
11
|
const [{ isCi }, { trapSignals }, { run }, { streamHasColors }] = await Promise.all([
|
|
12
12
|
import("../env-DJZrPjRi.js"),
|
|
13
13
|
import("../signals-D3NcTKUS.js"),
|
|
14
|
-
import("../run-
|
|
15
|
-
import("../style-
|
|
14
|
+
import("../run-Bz7DXGEv.js"),
|
|
15
|
+
import("../style-Ds1gNm77.js")
|
|
16
16
|
]);
|
|
17
17
|
const signals = trapSignals();
|
|
18
18
|
const result = await run(argv, {
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as CatalogDocument, d as CatalogRole, f as CatalogScope, l as CatalogPermission, m as CatalogUsage, n as CatalogApproval, p as CatalogSupportAccess, r as CatalogBreakGlass, t as CatalogActivation, u as CatalogResource } from "../types-
|
|
2
|
-
import { a as pushedPolicy, i as parsePushedPolicy, n as PushedGrant, r as PushedPolicy, t as PUSHED_POLICY_SCHEMA } from "../pushed-policy-
|
|
3
|
-
import { _ as RunResult, c as RlsConfig, d as RlsMembershipTable, f as RlsMemberships, g as RlsTarget, h as RlsSuspension, i as PermDockConfig, l as RlsDialect, m as RlsSuspendedScope, n as CliIo, o as RlsActiveRow, p as RlsSuspendedMembership, r as CollectConfig, s as RlsApiKeys, t as CatalogConfig, u as RlsFunctionMapping } from "../types-
|
|
1
|
+
import { a as CatalogDocument, d as CatalogRole, f as CatalogScope, l as CatalogPermission, m as CatalogUsage, n as CatalogApproval, p as CatalogSupportAccess, r as CatalogBreakGlass, t as CatalogActivation, u as CatalogResource } from "../types-BXMYB7BY.js";
|
|
2
|
+
import { a as pushedPolicy, i as parsePushedPolicy, n as PushedGrant, r as PushedPolicy, t as PUSHED_POLICY_SCHEMA } from "../pushed-policy-BbcY9r_4.js";
|
|
3
|
+
import { _ as RunResult, c as RlsConfig, d as RlsMembershipTable, f as RlsMemberships, g as RlsTarget, h as RlsSuspension, i as PermDockConfig, l as RlsDialect, m as RlsSuspendedScope, n as CliIo, o as RlsActiveRow, p as RlsSuspendedMembership, r as CollectConfig, s as RlsApiKeys, t as CatalogConfig, u as RlsFunctionMapping } from "../types-BWZybqs9.js";
|
|
4
4
|
//#region src/cli/catalog-path.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* The absolute path `permdock collect` writes the catalog to: `collect.out`,
|
package/dist/cli/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as catalogPath } from "../catalog-path-CnI0XTFK.js";
|
|
2
|
-
import { t as defineConfig } from "../config-
|
|
3
|
-
import { n as parsePushedPolicy, r as pushedPolicy, t as PUSHED_POLICY_SCHEMA } from "../pushed-policy-
|
|
2
|
+
import { t as defineConfig } from "../config-CoQHDrDi.js";
|
|
3
|
+
import { n as parsePushedPolicy, r as pushedPolicy, t as PUSHED_POLICY_SCHEMA } from "../pushed-policy-CmYeSQqq.js";
|
|
4
4
|
import { c as parseGrantsMarker, l as parseHookMarker } from "../markers-C6joDI3o.js";
|
|
5
|
-
import { t as run } from "../run-
|
|
5
|
+
import { t as run } from "../run-uLD2aWuO.js";
|
|
6
6
|
//#region src/cli/token-schemas.ts
|
|
7
7
|
const ID = {
|
|
8
8
|
type: "string",
|