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 { T as Policy } from "./policy-types-
|
|
2
|
-
import {
|
|
3
|
-
import { m as ApprovalStore } from "./types-
|
|
1
|
+
import { T as Policy } from "./policy-types-B-F-qAZk.js";
|
|
2
|
+
import { a as PermDock } from "./permdock-Dco6dyCK.js";
|
|
3
|
+
import { m as ApprovalStore } from "./types-DC44-hqb.js";
|
|
4
4
|
//#region src/server/evaluations.d.ts
|
|
5
5
|
/** AuthZEN 1.0 section 7.1.2.1 `options.evaluations_semantic` values. */
|
|
6
6
|
declare const EVALUATIONS_SEMANTICS: readonly ["execute_all", "deny_on_first_deny", "permit_on_first_permit"];
|
|
@@ -13,7 +13,7 @@ declare function evaluationsSemantic(body: Readonly<Record<string, unknown>>): E
|
|
|
13
13
|
*/
|
|
14
14
|
declare function evaluateBatch<T extends {
|
|
15
15
|
readonly decision: boolean;
|
|
16
|
-
}>(items: readonly
|
|
16
|
+
}, I = unknown>(items: readonly I[], semantic: EvaluationsSemantic, rowOf: (item: I) => Promise<T>): Promise<T[]>;
|
|
17
17
|
declare function evaluationsHandler(options: {
|
|
18
18
|
readonly policy: Policy;
|
|
19
19
|
readonly resolve?: (request: Request) => Promise<PermDock>;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { r as isRecord, t as compact } from "./compact-CAf557ZB.js";
|
|
2
2
|
import { t as PROBLEM_BASE } from "./validation-error-ZfUHbKvf.js";
|
|
3
3
|
import { t as wireDenials } from "./wire-denial-C7PaVYEM.js";
|
|
4
|
-
import { c as listPermissions, g as formerScopes, h as formerKeys } from "./permission-registry-
|
|
4
|
+
import { c as listPermissions, g as formerScopes, h as formerKeys } from "./permission-registry-DpPtSKNZ.js";
|
|
5
5
|
import { h as secondsAt } from "./time-DkWjdL98.js";
|
|
6
6
|
import { n as resourceRef } from "./resource-ref-CaS9yVPi.js";
|
|
7
7
|
import { n as readBodyText } from "./body-text-QcXok_SI.js";
|
|
8
8
|
import { c as problemResponse, d as validationProblem, n as batchTooLarge } from "./problem-CTviyH5L.js";
|
|
9
|
-
import { i as readApprovalHeader, s as resumeDecision } from "./helpers-
|
|
9
|
+
import { i as readApprovalHeader, s as resumeDecision } from "./helpers-DY3vXuGs.js";
|
|
10
10
|
import { t as bodyTooLarge } from "./body-CH5of8Ne.js";
|
|
11
11
|
import { t as timeoutSignal } from "./timeout-D51niuQP.js";
|
|
12
12
|
//#region src/core/decision.ts
|
|
@@ -420,7 +420,7 @@ function unknownSemanticProblem() {
|
|
|
420
420
|
* order, stopping after the first deny or permit.
|
|
421
421
|
*/
|
|
422
422
|
async function evaluateBatch(items, semantic, rowOf) {
|
|
423
|
-
if (semantic === "execute_all") return Promise.all(items.map(rowOf));
|
|
423
|
+
if (semantic === "execute_all") return Promise.all(items.map((item) => rowOf(item)));
|
|
424
424
|
const stopOn = semantic === "permit_on_first_permit";
|
|
425
425
|
const rows = [];
|
|
426
426
|
for (const item of items) {
|
|
@@ -607,4 +607,4 @@ function evaluationsHandler(options) {
|
|
|
607
607
|
};
|
|
608
608
|
}
|
|
609
609
|
//#endregion
|
|
610
|
-
export {
|
|
610
|
+
export { NO_GRANT as _, evaluationReasons as a, withRequestId as c, invalidSignatureProblem as d, invalidSignatureResponse as f, wireResourceId as g, permissionLookup as h, evaluateBatch as i, InvalidSignatureError as l, itemResourceData as m, applyApprovalResume as n, evaluationsHandler as o, webBotAuthVerifier as p, authzenMetadata as r, evaluationsSemantic as s, EVALUATIONS_SEMANTICS as t, discoverViaSignatureAgent as u };
|
package/dist/eve/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { T as Policy, j as PolicyVocabulary,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { u as ApprovalRequest } from "../types-
|
|
5
|
-
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 { u as Permission } from "../permission-types-DhNEmoRG.js";
|
|
3
|
+
import { a as PermDock } from "../permdock-Dco6dyCK.js";
|
|
4
|
+
import { u as ApprovalRequest } from "../types-DC44-hqb.js";
|
|
5
|
+
import { o as AgentAdapterOptions, t as AgentPermDock } from "../create-UTnUVETj.js";
|
|
6
6
|
//#region src/eve/create.d.ts
|
|
7
7
|
/** Structural `SessionAuthContext` from `eve`. */
|
|
8
8
|
type EvePrincipal = {
|
package/dist/eve/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as compact } from "../compact-CAf557ZB.js";
|
|
2
|
-
import {
|
|
2
|
+
import { l as withApp } from "../permdock-BfWEeMqk.js";
|
|
3
3
|
import { c as isApprovalError } from "../types-DqzsnlSA.js";
|
|
4
|
-
import { o as resolveApproval } from "../helpers-
|
|
5
|
-
import { t as agentRuntime } from "../create-
|
|
4
|
+
import { o as resolveApproval } from "../helpers-DY3vXuGs.js";
|
|
5
|
+
import { t as agentRuntime } from "../create-Cb86Z8Im.js";
|
|
6
6
|
import { t as boundedMap } from "../lru-8q4WZjBV.js";
|
|
7
7
|
//#region src/eve/create.ts
|
|
8
8
|
const TOKENS_PER_PROCESS = 1e3;
|
package/dist/express/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { T as Policy, j as PolicyVocabulary,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-
|
|
5
|
-
import { t as ServerAdapterOptions } from "../bind-
|
|
1
|
+
import { T as Policy, j as PolicyVocabulary, sr as Principal } 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 { f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-C4gZUEZy.js";
|
|
5
|
+
import { t as ServerAdapterOptions } from "../bind-JDuvxjuW.js";
|
|
6
6
|
import { i as toRequest, r as sendResponse } from "../http-B_LphE5Y.js";
|
|
7
7
|
import { ErrorRequestHandler, Request, RequestHandler, Response, Router } from "express";
|
|
8
8
|
//#region src/express/create.d.ts
|
package/dist/express/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as hasCredentials } from "../http-BBoKefeS.js";
|
|
2
|
-
import {
|
|
3
|
-
import { t as problemFromError } from "../map-error-
|
|
4
|
-
import { i as decorate, r as bindKernel } from "../bind-
|
|
2
|
+
import { l as InvalidSignatureError, p as webBotAuthVerifier, u as discoverViaSignatureAgent } from "../evaluations-DReoiVBw.js";
|
|
3
|
+
import { t as problemFromError } from "../map-error-BQGyDm_M.js";
|
|
4
|
+
import { i as decorate, r as bindKernel } from "../bind-D1nO6fiC.js";
|
|
5
5
|
import { n as sendResponse, r as toRequest } from "../http-ujKm0JXE.js";
|
|
6
6
|
import express from "express";
|
|
7
7
|
//#region src/express/create.ts
|
package/dist/fastify/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { T as Policy, j as PolicyVocabulary,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-
|
|
5
|
-
import { t as ServerAdapterOptions } from "../bind-
|
|
1
|
+
import { T as Policy, j as PolicyVocabulary, sr as Principal } 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 { f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-C4gZUEZy.js";
|
|
5
|
+
import { t as ServerAdapterOptions } from "../bind-JDuvxjuW.js";
|
|
6
6
|
import { FastifyPluginAsync, FastifyReply, FastifyRequest, FastifySchema, FastifyTypeProvider, FastifyTypeProviderDefault, RawRequestDefaultExpression, RawServerDefault, RouteGenericInterface } from "fastify";
|
|
7
7
|
//#region src/server/http.d.ts
|
|
8
8
|
/** A Fastify-style reply: `code`, `header` and `send`. */
|
package/dist/fastify/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { c as writeReply, i as headersFrom, n as firstHeader, r as hasCredentials, t as fetchRequest } from "../http-BBoKefeS.js";
|
|
2
|
-
import {
|
|
3
|
-
import { t as problemFromError } from "../map-error-
|
|
4
|
-
import { i as decorate, r as bindKernel } from "../bind-
|
|
2
|
+
import { l as InvalidSignatureError, p as webBotAuthVerifier, u as discoverViaSignatureAgent } from "../evaluations-DReoiVBw.js";
|
|
3
|
+
import { t as problemFromError } from "../map-error-BQGyDm_M.js";
|
|
4
|
+
import { i as decorate, r as bindKernel } from "../bind-D1nO6fiC.js";
|
|
5
5
|
//#region src/fastify/http.ts
|
|
6
6
|
function toRequest(request) {
|
|
7
7
|
const host = firstHeader(request.headers.host) ?? "localhost";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as OperationInput, t as Operation } from "./operations-
|
|
1
|
+
import { u as Permission } from "./permission-types-DhNEmoRG.js";
|
|
2
|
+
import { a as OperationInput, t as Operation } from "./operations-BNLes61x.js";
|
|
3
3
|
import { n as RevocationFeed } from "./revocations-R07lFBnX.js";
|
|
4
|
-
import { o as ProtectOptions } from "./server-types-
|
|
5
|
-
import { t as ServerAdapterOptions } from "./bind-
|
|
4
|
+
import { o as ProtectOptions } from "./server-types-C4gZUEZy.js";
|
|
5
|
+
import { t as ServerAdapterOptions } from "./bind-JDuvxjuW.js";
|
|
6
6
|
//#region src/server/fetch-adapter.d.ts
|
|
7
7
|
/** What `protect` checks: a permission, an operation from `defineOperations`, or `null` for a route that needs only OAuth scopes. */
|
|
8
8
|
type ProtectTarget = Permission | Operation | null;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { o as isPermission } from "./permission-registry-
|
|
2
|
+
import { o as isPermission } from "./permission-registry-DpPtSKNZ.js";
|
|
3
3
|
import { r as hasCredentials } from "./http-BBoKefeS.js";
|
|
4
4
|
import { a as methodNotAllowed } from "./problem-CTviyH5L.js";
|
|
5
|
-
import { t as problemFromError } from "./map-error-
|
|
6
|
-
import { i as decorate, r as bindKernel } from "./bind-
|
|
5
|
+
import { t as problemFromError } from "./map-error-BQGyDm_M.js";
|
|
6
|
+
import { i as decorate, r as bindKernel } from "./bind-D1nO6fiC.js";
|
|
7
7
|
//#region src/server/fetch-adapter.ts
|
|
8
8
|
/**
|
|
9
9
|
* `protect(target, data, options)(handler)` for a framework whose routes are
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { i as configError } from "./errors-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { c as branchClauses, i as orSql, s as andSql, u as wrapSql } from "./policies-
|
|
1
|
+
import { i as configError } from "./errors-DpP_U6Bf.js";
|
|
2
|
+
import { c as jsonSchemaOf } from "./catalog-doc-CV9s6B1S.js";
|
|
3
|
+
import { A as quoteQualified, E as helperSchema, O as quoteIdent, k as quoteLiteral, s as signedIn } from "./shared-fMKOv8hP.js";
|
|
4
|
+
import { c as branchClauses, i as orSql, s as andSql, u as wrapSql } from "./policies-B2lZIurj.js";
|
|
5
5
|
//#region src/cli/rls/fields.ts
|
|
6
6
|
/** Names of the field-view objects. Part of the SQL contract. */
|
|
7
7
|
const FIELD_VIEWS = {
|
|
@@ -12,7 +12,9 @@ const FIELD_VIEWS = {
|
|
|
12
12
|
/** The companion's row-key column, joined to the base table's key. */
|
|
13
13
|
key: "permdock_key",
|
|
14
14
|
/** Marks the companion so doctor PD022 knows it reads as its owner on purpose. */
|
|
15
|
-
comment: "permdock:field-companion"
|
|
15
|
+
comment: "permdock:field-companion",
|
|
16
|
+
/** `<table>_mask(p_row)`: the row-masking function `fields: 'mask'` adds. */
|
|
17
|
+
mask: "_mask"
|
|
16
18
|
};
|
|
17
19
|
function covers(branch, column) {
|
|
18
20
|
return branch.fields === void 0 || branch.fields.includes(column);
|
|
@@ -67,12 +69,13 @@ function viewName(table, suffix) {
|
|
|
67
69
|
return `${table}${suffix}`;
|
|
68
70
|
}
|
|
69
71
|
/**
|
|
70
|
-
* `<helper schema>.<table
|
|
71
|
-
*
|
|
72
|
+
* `<helper schema>.<table><suffix>`: outside the Data API's schemas, so the
|
|
73
|
+
* companion's owner rights reach clients only through the `_visible` join and
|
|
74
|
+
* the mask function is neither an RPC nor a computed field.
|
|
72
75
|
*/
|
|
73
|
-
function
|
|
76
|
+
function helperObjectName(ctx, table, suffix) {
|
|
74
77
|
const base = table.startsWith("public.") ? table.slice(7) : table.replaceAll(".", "_");
|
|
75
|
-
return `${helperSchema(ctx)}.${viewName(base,
|
|
78
|
+
return `${helperSchema(ctx)}.${viewName(base, suffix)}`;
|
|
76
79
|
}
|
|
77
80
|
/**
|
|
78
81
|
* One view per table whose read grants limit fields. A column is restricted
|
|
@@ -93,7 +96,7 @@ function fieldViews(policy, ctx, branches, options, warnings) {
|
|
|
93
96
|
const resource = reads.find((branch) => branch.resource !== void 0)?.resource;
|
|
94
97
|
if (!limited || allows.length === 0 || resource === void 0) continue;
|
|
95
98
|
const names = schemaColumns(policy, resource);
|
|
96
|
-
if (names === void 0) throw configError(`PermDock CLI: --fields views needs the ${resource} schema's JSON Schema (Standard JSON Schema) to list the columns of ${table}`);
|
|
99
|
+
if (names === void 0) throw configError(`PermDock CLI: --fields ${options.mask === true ? "mask" : "views"} needs the ${resource} schema's JSON Schema (Standard JSON Schema) to list the columns of ${table}`);
|
|
97
100
|
const key = policy.resources.get(resource)?.id ?? "id";
|
|
98
101
|
const restricted = (column) => column !== key && (allows.some((branch) => branch.fields !== void 0 && !branch.fields.includes(column)) || denies.some((branch) => branch.fields?.includes(column) === true));
|
|
99
102
|
const columns = names.map((name) => {
|
|
@@ -116,7 +119,8 @@ function fieldViews(policy, ctx, branches, options, warnings) {
|
|
|
116
119
|
key,
|
|
117
120
|
columns,
|
|
118
121
|
roles: reads.some((branch) => branch.roles.includes("anon")) ? ["anon", "authenticated"] : ["authenticated"],
|
|
119
|
-
...options.revokeColumns ? { companion:
|
|
122
|
+
...options.revokeColumns ? { companion: helperObjectName(ctx, table, FIELD_VIEWS.companion) } : {},
|
|
123
|
+
...options.mask === true ? { maskFunction: helperObjectName(ctx, table, FIELD_VIEWS.mask) } : {}
|
|
120
124
|
});
|
|
121
125
|
}
|
|
122
126
|
return views;
|
|
@@ -176,6 +180,34 @@ function columnRevokeSql(view) {
|
|
|
176
180
|
return `revoke select (${columnList(restrictedColumns(view))}) on table ${quoteQualified(view.table)} from anon, authenticated;`;
|
|
177
181
|
}
|
|
178
182
|
/**
|
|
183
|
+
* `<table>_mask(p_row)`: the row with each restricted column the caller may
|
|
184
|
+
* not read set to null, by the same masks as the view. It reads only the row
|
|
185
|
+
* it is given, so its caller decides which rows; `security invoker`, because
|
|
186
|
+
* it needs nothing beyond the helpers the masks call. The body names the
|
|
187
|
+
* parameter `$1`, since a column called `p_row` would shadow the name.
|
|
188
|
+
*/
|
|
189
|
+
function maskFunctionSql(view, fn) {
|
|
190
|
+
const table = quoteQualified(view.table);
|
|
191
|
+
const name = quoteQualified(fn);
|
|
192
|
+
const nulls = view.columns.flatMap((column) => column.mask === void 0 ? [] : [`case when ${column.mask} then '{}'::jsonb else pg_catalog.jsonb_build_object(${quoteLiteral(column.name)}, null) end`]);
|
|
193
|
+
return `-- ${fn}: a row of ${view.table} with ${restrictedColumns(view).join(", ")} null unless a read grant covers the column for the row, for SQL that reads ${view.table} without ${view.view}
|
|
194
|
+
create or replace function ${name}(p_row ${table})
|
|
195
|
+
returns ${table}
|
|
196
|
+
language sql
|
|
197
|
+
stable
|
|
198
|
+
security invoker
|
|
199
|
+
set search_path = ''
|
|
200
|
+
as $$
|
|
201
|
+
select pg_catalog.jsonb_populate_record(
|
|
202
|
+
$1,
|
|
203
|
+
${nulls.join("\n || ")}
|
|
204
|
+
)
|
|
205
|
+
from (select ($1).*) r
|
|
206
|
+
$$;
|
|
207
|
+
revoke all on function ${name}(${table}) from public, anon, authenticated;
|
|
208
|
+
grant execute on function ${name}(${table}) to ${view.roles.join(", ")};`;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
179
211
|
* The view SQL: the `security_invoker` view, and with `--revoke-columns` the
|
|
180
212
|
* owner-rights companion it joins for the restricted columns. The companion
|
|
181
213
|
* masks every column with the full field decision and keeps only rows where
|
|
@@ -184,10 +216,12 @@ function columnRevokeSql(view) {
|
|
|
184
216
|
function fieldViewsSql(views) {
|
|
185
217
|
return views.map((view) => {
|
|
186
218
|
const head = `-- field view over ${view.table}: ${restrictedColumns(view).join(", ")} read as null unless a read grant covers the column for the row`;
|
|
219
|
+
const mask = view.maskFunction === void 0 ? [] : [maskFunctionSql(view, view.maskFunction)];
|
|
187
220
|
if (view.companion === void 0) return [
|
|
188
221
|
head,
|
|
189
222
|
inlineViewSql(view),
|
|
190
|
-
grantView(view.view, view.roles)
|
|
223
|
+
grantView(view.view, view.roles),
|
|
224
|
+
...mask
|
|
191
225
|
].join("\n");
|
|
192
226
|
return [
|
|
193
227
|
head,
|
|
@@ -195,7 +229,8 @@ function fieldViewsSql(views) {
|
|
|
195
229
|
companionSql(view, view.companion),
|
|
196
230
|
grantView(view.companion, view.roles),
|
|
197
231
|
joinedViewSql(view, view.companion),
|
|
198
|
-
grantView(view.view, view.roles)
|
|
232
|
+
grantView(view.view, view.roles),
|
|
233
|
+
...mask
|
|
199
234
|
].join("\n");
|
|
200
235
|
}).join("\n\n");
|
|
201
236
|
}
|
|
@@ -1,10 +1,19 @@
|
|
|
1
|
-
import { n as CliError } from "./errors-
|
|
2
|
-
import { existsSync, mkdirSync, readFileSync, realpathSync, renameSync, rmSync, writeFileSync } from "node:fs";
|
|
1
|
+
import { n as CliError } from "./errors-DpP_U6Bf.js";
|
|
2
|
+
import { existsSync, mkdirSync, readFileSync, realpathSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
3
3
|
import { dirname, relative, resolve } from "node:path";
|
|
4
4
|
import { execFileSync } from "node:child_process";
|
|
5
5
|
//#region src/cli/core/files.ts
|
|
6
|
+
/** `/dev/null` and its kin: a rename over a device is refused, so it is written in place. */
|
|
7
|
+
function isCharacterDevice(abs) {
|
|
8
|
+
try {
|
|
9
|
+
return statSync(abs).isCharacterDevice();
|
|
10
|
+
} catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
6
14
|
function outcomeOf(abs, text) {
|
|
7
15
|
if (!existsSync(abs)) return "created";
|
|
16
|
+
if (isCharacterDevice(abs)) return "updated";
|
|
8
17
|
return readFileSync(abs, "utf8") === text ? "unchanged" : "updated";
|
|
9
18
|
}
|
|
10
19
|
/** What writing `files` would do, without writing. */
|
|
@@ -27,6 +36,10 @@ function applyFiles(cwd, files, options = {}) {
|
|
|
27
36
|
for (const [index, file] of files.entries()) {
|
|
28
37
|
if (planned[index]?.outcome === "unchanged") continue;
|
|
29
38
|
const target = resolve(cwd, file.path);
|
|
39
|
+
if (isCharacterDevice(target)) {
|
|
40
|
+
writeFileSync(target, file.text);
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
30
43
|
const temp = `${target}.permdock-${String(process.pid)}.tmp`;
|
|
31
44
|
mkdirSync(dirname(target), { recursive: true });
|
|
32
45
|
writeFileSync(temp, file.text);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as isRecord } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { i as configError } from "./errors-
|
|
2
|
+
import { i as configError } from "./errors-DpP_U6Bf.js";
|
|
3
3
|
import { i as readJsonFile } from "./files-D_JIzUrP.js";
|
|
4
|
-
import { a as loadModule, s as pickNamed } from "./load-
|
|
4
|
+
import { a as loadModule, s as pickNamed } from "./load-DxroEzH1.js";
|
|
5
5
|
import { existsSync } from "node:fs";
|
|
6
6
|
import { resolve } from "node:path";
|
|
7
7
|
//#region src/cli/fixtures.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as CliError } from "./errors-
|
|
2
|
-
import { n as secretInput } from "./credentials-
|
|
1
|
+
import { n as CliError } from "./errors-DpP_U6Bf.js";
|
|
2
|
+
import { n as secretInput } from "./credentials-BpuTwd7a.js";
|
|
3
3
|
//#region src/cli/core/flags.ts
|
|
4
4
|
/** The flag vocabulary shared with better-supabase: one spelling per meaning. */
|
|
5
5
|
const dbUrlFlags = { "db-url-stdin": {
|
|
@@ -2,19 +2,20 @@ import { t as compact } from "./compact-CAf557ZB.js";
|
|
|
2
2
|
import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
|
|
3
3
|
import { a as deniedMessage, i as approvalMessage, n as PermDockDeniedError, t as PermDockApprovalRequiredError } from "./errors-BKy0EfhN.js";
|
|
4
4
|
import { o as sameId } from "./expiry-D4_YKRKD.js";
|
|
5
|
-
import { c as listPermissions } from "./permission-registry-
|
|
5
|
+
import { c as listPermissions } from "./permission-registry-DpPtSKNZ.js";
|
|
6
6
|
import { g as secondsOf, o as epochSeconds, t as INVALID_NOW } from "./time-DkWjdL98.js";
|
|
7
|
-
import {
|
|
8
|
-
import { a as readOnlyActorRefuses, c as rowIdOf, l as rowValues, n as coveredByDelegation, u as evaluateCondition } from "./delegation-
|
|
9
|
-
import { b as synthesiseRole, m as findRole, v as listRoles } from "./grantee-
|
|
7
|
+
import { f as scopeList, h as tenantOf, o as normalizeMemberships, s as resolveScope, t as activeFor } from "./scopes-BHsc-wp-.js";
|
|
8
|
+
import { a as readOnlyActorRefuses, c as rowIdOf, l as rowValues, n as coveredByDelegation, u as evaluateCondition } from "./delegation-C5rOdTp5.js";
|
|
9
|
+
import { b as synthesiseRole, m as findRole, v as listRoles } from "./grantee-BrRANrpT.js";
|
|
10
10
|
import { a as grantCoversField, o as pickVisible, r as readWireValidity, t as isActive } from "./validity-CZ7-y0Cj.js";
|
|
11
|
-
import { c as nowSeconds, d as resolveActiveTenant, f as rowInScope, n as inTeam, r as isMembershipExpired, s as nestedAppliesWithoutRow } from "./tenancy-
|
|
11
|
+
import { c as nowSeconds, d as resolveActiveTenant, f as rowInScope, n as inTeam, r as isMembershipExpired, s as nestedAppliesWithoutRow } from "./tenancy-CmeBQ6Nv.js";
|
|
12
12
|
import { t as requiresApproval } from "./approval-required-TzNB9oQA.js";
|
|
13
|
-
import { r as tokenPayload, t as decisionToken } from "./token-
|
|
13
|
+
import { r as tokenPayload, t as decisionToken } from "./token-2qYDvXz2.js";
|
|
14
14
|
import { t as fromWireDelegation } from "./wire-delegation-Cv3W2eaM.js";
|
|
15
|
-
import { n as matchGrantee } from "./grantee-match-
|
|
15
|
+
import { n as matchGrantee } from "./grantee-match-0RtHWQDx.js";
|
|
16
16
|
import { t as resourceIdOf } from "./resource-ref-CaS9yVPi.js";
|
|
17
|
-
import {
|
|
17
|
+
import { i as permittedIds, o as deniedFor, r as mayUse, s as signSnapshot, t as whereFromGrants } from "./where-scope-wq2coopv.js";
|
|
18
|
+
import { i as decideAllWith, n as canAllWith } from "./checks-BC_0mPIq.js";
|
|
18
19
|
//#region src/core/snapshot-evaluate.ts
|
|
19
20
|
function coveredByInclude(snapshot, permission) {
|
|
20
21
|
const include = snapshot.include;
|
|
@@ -51,7 +52,7 @@ function scopeOk(snapshot, grant, permission, subject, data, team, now, only) {
|
|
|
51
52
|
};
|
|
52
53
|
if (!activeFor(membership, scopes, principal.tenant)) return {
|
|
53
54
|
ok: false,
|
|
54
|
-
reason: principal.tenant === void 0 ? "no-membership" : "tenant-mismatch"
|
|
55
|
+
reason: principal.tenant === void 0 && principal.unheldTenant === void 0 ? "no-tenant" : principal.tenant === void 0 ? "no-membership" : "tenant-mismatch"
|
|
55
56
|
};
|
|
56
57
|
if (!inTeam(membership, scopes, team)) return {
|
|
57
58
|
ok: false,
|
|
@@ -361,7 +362,8 @@ function subjectFromSnapshot(snapshot, tenant) {
|
|
|
361
362
|
return freezeDeep(compact({
|
|
362
363
|
principal: principal === null ? null : compact({
|
|
363
364
|
...principal,
|
|
364
|
-
tenant: nextTenant
|
|
365
|
+
tenant: nextTenant,
|
|
366
|
+
unheldTenant: nextTenant === void 0 ? tenant : void 0
|
|
365
367
|
}),
|
|
366
368
|
delegation: fromWireDelegation(snapshot.subject.delegation),
|
|
367
369
|
context: snapshot.subject.context,
|
|
@@ -440,9 +442,14 @@ function fromSnapshot(snapshot, options = {}) {
|
|
|
440
442
|
const instance = {
|
|
441
443
|
can,
|
|
442
444
|
decide,
|
|
445
|
+
canAll: (checks, decideOptions) => canAllWith(can, checks, decideOptions),
|
|
446
|
+
decideAll: (checks, decideOptions) => decideAllWith(decide, checks, decideOptions),
|
|
443
447
|
decideEach(permission, rows, decideOptions) {
|
|
444
448
|
return Object.freeze(rows.map((row) => run(permission, row, decideOptions)));
|
|
445
449
|
},
|
|
450
|
+
decideIds(permission, ids) {
|
|
451
|
+
return Promise.resolve(Object.freeze(ids.map(() => deniedFor(permission, "unsupported"))));
|
|
452
|
+
},
|
|
446
453
|
decideFor(_principalId, permission) {
|
|
447
454
|
return Promise.resolve(deniedFor(permission, "unsupported"));
|
|
448
455
|
},
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { n as SCIM_TABLES, r as SCIM_UNIQUE } from "./postgres-store-BL9M_CA1.js";
|
|
2
|
+
import { o as quoteSqlIdent } from "./sql-B96movIM.js";
|
|
3
|
+
import { n as fileSummary, t as applyFiles } from "./files-acUbNwWt.js";
|
|
4
|
+
import { r as driftOf } from "./output-files-CCMdcFWb.js";
|
|
5
|
+
//#region src/cli/scim/generate.ts
|
|
6
|
+
const SCIM_MARKER = "-- generated by permdock scim generate";
|
|
7
|
+
/** The client roles each dialect's data API connects as; none may reach the directory. */
|
|
8
|
+
function clientRoles(dialect) {
|
|
9
|
+
switch (dialect) {
|
|
10
|
+
case "supabase": return [
|
|
11
|
+
"public",
|
|
12
|
+
"anon",
|
|
13
|
+
"authenticated"
|
|
14
|
+
];
|
|
15
|
+
case "neon": return [
|
|
16
|
+
"public",
|
|
17
|
+
"anonymous",
|
|
18
|
+
"authenticated"
|
|
19
|
+
];
|
|
20
|
+
case "guc": return ["public"];
|
|
21
|
+
default: return dialect;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The directory `postgresDirectoryStore` reads and writes: users, groups and
|
|
26
|
+
* group members keyed on `(tenant, id)`, with `userName` and `externalId`
|
|
27
|
+
* unique per tenant. Member values are SCIM `value`s, not a foreign key to
|
|
28
|
+
* users, because a member may be a nested group. No client role may read
|
|
29
|
+
* or write the tables.
|
|
30
|
+
*/
|
|
31
|
+
function scimSchemaSql(input) {
|
|
32
|
+
const schema = quoteSqlIdent(input.schema);
|
|
33
|
+
const table = (name) => `${schema}.${quoteSqlIdent(name)}`;
|
|
34
|
+
const users = table(SCIM_TABLES.users);
|
|
35
|
+
const groups = table(SCIM_TABLES.groups);
|
|
36
|
+
const members = table(SCIM_TABLES.members);
|
|
37
|
+
const all = [
|
|
38
|
+
users,
|
|
39
|
+
groups,
|
|
40
|
+
members
|
|
41
|
+
].join(", ");
|
|
42
|
+
return `${SCIM_MARKER} (--dialect ${input.dialect})
|
|
43
|
+
-- the SCIM directory postgresDirectoryStore reads and writes for scimHandler; every row belongs to one tenant
|
|
44
|
+
create schema if not exists ${schema};
|
|
45
|
+
|
|
46
|
+
create table if not exists ${users} (
|
|
47
|
+
seq bigint generated always as identity unique,
|
|
48
|
+
tenant text not null check (tenant <> ''),
|
|
49
|
+
id text not null check (id <> ''),
|
|
50
|
+
user_name text not null,
|
|
51
|
+
external_id text,
|
|
52
|
+
active boolean not null default true,
|
|
53
|
+
emails jsonb,
|
|
54
|
+
x jsonb,
|
|
55
|
+
created_at timestamptz not null default now(),
|
|
56
|
+
updated_at timestamptz not null default now(),
|
|
57
|
+
revision bigint not null default 1,
|
|
58
|
+
primary key (tenant, id),
|
|
59
|
+
constraint ${quoteSqlIdent(SCIM_UNIQUE.userName)} unique (tenant, user_name),
|
|
60
|
+
constraint ${quoteSqlIdent(SCIM_UNIQUE.userExternalId)} unique (tenant, external_id)
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
create table if not exists ${groups} (
|
|
64
|
+
seq bigint generated always as identity unique,
|
|
65
|
+
tenant text not null check (tenant <> ''),
|
|
66
|
+
id text not null check (id <> ''),
|
|
67
|
+
display_name text not null,
|
|
68
|
+
external_id text,
|
|
69
|
+
roles text[],
|
|
70
|
+
x jsonb,
|
|
71
|
+
created_at timestamptz not null default now(),
|
|
72
|
+
updated_at timestamptz not null default now(),
|
|
73
|
+
revision bigint not null default 1,
|
|
74
|
+
primary key (tenant, id),
|
|
75
|
+
constraint ${quoteSqlIdent(SCIM_UNIQUE.groupExternalId)} unique (tenant, external_id)
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
create table if not exists ${members} (
|
|
79
|
+
tenant text not null,
|
|
80
|
+
group_id text not null,
|
|
81
|
+
user_id text not null,
|
|
82
|
+
position integer not null default 0,
|
|
83
|
+
primary key (tenant, group_id, user_id),
|
|
84
|
+
foreign key (tenant, group_id) references ${groups} (tenant, id) on delete cascade
|
|
85
|
+
);
|
|
86
|
+
create index if not exists ${quoteSqlIdent(`${SCIM_TABLES.members}_user_idx`)} on ${members} (tenant, user_id);
|
|
87
|
+
|
|
88
|
+
-- server only: grant select, insert, update and delete on these tables to the role postgresDirectoryStore
|
|
89
|
+
-- connects as when it does not own them
|
|
90
|
+
alter table ${users} enable row level security;
|
|
91
|
+
alter table ${groups} enable row level security;
|
|
92
|
+
alter table ${members} enable row level security;
|
|
93
|
+
revoke all on table ${all} from ${clientRoles(input.dialect).join(", ")};
|
|
94
|
+
`;
|
|
95
|
+
}
|
|
96
|
+
/** `supabase/schemas/<schema>/scim.sql` for Supabase, the pg-delta per-schema layout; `permdock_scim.sql` otherwise. */
|
|
97
|
+
function scimOut(dialect, schema) {
|
|
98
|
+
return dialect === "supabase" ? `supabase/schemas/${schema}/scim.sql` : "permdock_scim.sql";
|
|
99
|
+
}
|
|
100
|
+
function runScimGenerate(input) {
|
|
101
|
+
const dialect = input.dialect ?? input.config.rls?.dialect ?? "supabase";
|
|
102
|
+
const schema = input.schema ?? input.config.rls?.schema ?? "permdock";
|
|
103
|
+
const sql = scimSchemaSql({
|
|
104
|
+
schema,
|
|
105
|
+
dialect
|
|
106
|
+
});
|
|
107
|
+
const out = input.out ?? scimOut(dialect, schema);
|
|
108
|
+
const data = {
|
|
109
|
+
out,
|
|
110
|
+
dialect,
|
|
111
|
+
schema,
|
|
112
|
+
tables: Object.values(SCIM_TABLES).map((name) => `${schema}.${name}`)
|
|
113
|
+
};
|
|
114
|
+
if (out === "-") return {
|
|
115
|
+
code: 0,
|
|
116
|
+
output: sql.trimEnd(),
|
|
117
|
+
data: {
|
|
118
|
+
...data,
|
|
119
|
+
sql
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
if (input.check) {
|
|
123
|
+
const drift = driftOf(input.cwd, [{
|
|
124
|
+
part: "scim",
|
|
125
|
+
rel: out,
|
|
126
|
+
text: sql
|
|
127
|
+
}]);
|
|
128
|
+
return drift.length === 0 ? {
|
|
129
|
+
code: 0,
|
|
130
|
+
output: `${out} is current`,
|
|
131
|
+
data
|
|
132
|
+
} : {
|
|
133
|
+
code: 1,
|
|
134
|
+
output: `${drift.join("\n")}\nrun permdock scim generate`,
|
|
135
|
+
data: {
|
|
136
|
+
...data,
|
|
137
|
+
drift
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
const applied = applyFiles(input.cwd, [{
|
|
142
|
+
path: out,
|
|
143
|
+
text: sql
|
|
144
|
+
}], { dryRun: input.dryRun });
|
|
145
|
+
return {
|
|
146
|
+
code: 0,
|
|
147
|
+
output: fileSummary(applied, input.dryRun),
|
|
148
|
+
data: {
|
|
149
|
+
...data,
|
|
150
|
+
files: applied
|
|
151
|
+
},
|
|
152
|
+
next: [{
|
|
153
|
+
when: "in CI, to fail when the file is stale",
|
|
154
|
+
command: "permdock scim generate --check"
|
|
155
|
+
}]
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
//#endregion
|
|
159
|
+
export { runScimGenerate };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as compact } from "./compact-CAf557ZB.js";
|
|
2
2
|
import { n as freezeDeep, t as freezeCopy } from "./freeze-CrU8nQeX.js";
|
|
3
3
|
import { i as ownKeys, n as isForbiddenKey, t as assertSafeKey } from "./paths-DXSHAMIa.js";
|
|
4
|
-
import { c as listPermissions, o as isPermission } from "./permission-registry-
|
|
4
|
+
import { c as listPermissions, o as isPermission } from "./permission-registry-DpPtSKNZ.js";
|
|
5
5
|
import { i as readAppData, r as parseAppData, t as assertAppData } from "./app-data-MuyzVqX8.js";
|
|
6
6
|
//#region src/core/vocabulary.ts
|
|
7
7
|
const ROLE_KIND = "role";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as sole, t as compact } from "./compact-CAf557ZB.js";
|
|
2
2
|
import { a as expandRelation, c as isEdgeRelation, d as isSelfParented, l as isFieldRelation, m as restrictedStops, p as restrictedFor, s as isComputedRelation, u as isPrincipalRelation } from "./resource-relations-D_jw0BFx.js";
|
|
3
3
|
import { d as isoNow } from "./time-DkWjdL98.js";
|
|
4
|
-
import {
|
|
4
|
+
import { f as scopeList, l as rootScope, s as resolveScope } from "./scopes-BHsc-wp-.js";
|
|
5
5
|
//#region src/core/grantee-conditions.ts
|
|
6
6
|
/**
|
|
7
7
|
* Where a graph relation starts on the row: its own id when the relation is
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as compact } from "./compact-CAf557ZB.js";
|
|
2
2
|
import { u as isoAt } from "./time-DkWjdL98.js";
|
|
3
|
-
import {
|
|
4
|
-
import { o as flattenGrantee } from "./grantee-
|
|
5
|
-
import { r as relationCondition, t as inheritCondition } from "./grantee-conditions-
|
|
3
|
+
import { f as scopeList, t as activeFor } from "./scopes-BHsc-wp-.js";
|
|
4
|
+
import { o as flattenGrantee } from "./grantee-BrRANrpT.js";
|
|
5
|
+
import { r as relationCondition, t as inheritCondition } from "./grantee-conditions-C6P1Tvol.js";
|
|
6
6
|
//#region src/core/grantee-match.ts
|
|
7
7
|
function combineWhere(left, right) {
|
|
8
8
|
if (left === void 0) return right;
|
package/dist/h3/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { D as ConnectionOptions, T as Connection, f as InvalidSignatureError, i as OpenApiHooks, u as SnapshotQuery, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-
|
|
4
|
-
import { a as ProtectTarget, n as FetchAdapterOptions, r as FetchProtect, t as ContextReader } from "../fetch-adapter-
|
|
1
|
+
import { Gt as Snapshot, 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 { D as ConnectionOptions, T as Connection, f as InvalidSignatureError, i as OpenApiHooks, u as SnapshotQuery, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-C4gZUEZy.js";
|
|
4
|
+
import { a as ProtectTarget, n as FetchAdapterOptions, r as FetchProtect, t as ContextReader } from "../fetch-adapter-CuhyYwC1.js";
|
|
5
5
|
import { EventHandler, H3Event, H3EventContext, Middleware } from "h3";
|
|
6
6
|
//#region src/h3/create.d.ts
|
|
7
7
|
type H3PermDockOptions<TUser = unknown> = FetchAdapterOptions<H3Event, TUser>;
|
package/dist/h3/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { i as decorate } from "../bind-
|
|
3
|
-
import { t as fetchAdapter } from "../fetch-adapter-
|
|
1
|
+
import { l as InvalidSignatureError, p as webBotAuthVerifier, u as discoverViaSignatureAgent } from "../evaluations-DReoiVBw.js";
|
|
2
|
+
import { i as decorate } from "../bind-D1nO6fiC.js";
|
|
3
|
+
import { t as fetchAdapter } from "../fetch-adapter-De-u6vhJ.js";
|
|
4
4
|
//#region src/h3/create.ts
|
|
5
5
|
function createPermDock(policy, options) {
|
|
6
6
|
const adapter = fetchAdapter(policy, options, "h3", (event) => event.req);
|