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
package/dist/cloud/index.d.ts
CHANGED
|
@@ -1,21 +1,137 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { m as ApprovalStore } from "../types-
|
|
3
|
-
import { i as CatalogEventData, l as CloudEventType, r as CLOUD_EVENT_TYPES, s as CloudEvent } from "../sink-
|
|
4
|
-
import { c as DeliveryTransport } from "../types-
|
|
5
|
-
import { a as CloudConnectionOptions, c as CloudOptions, i as CloudClient, l as CloudSignerOptions, n as CloudCatalog, o as CloudEndpointOptions, r as CloudCatalogPush, s as CloudEndpoints, t as CloudApproverOptions } from "../types-
|
|
6
|
-
import { n as ApprovalWaiter } from "../waiter-
|
|
7
|
-
import { l as ReplayStore } from "../types-
|
|
8
|
-
import { f as WebhookVerifier, r as WebhookFailureCause$1, s as WebhookJwks } from "../standard-webhooks-
|
|
1
|
+
import { $t as CredentialEvent, Qt as AutomationEvent, Rt as Instant, Xt as AccessEvent, en as DecisionEvent, in as DirectoryEvent, nn as DeliveryEvent, on as MembershipEvent, tn as DeliveryChannel, ut as TokenSigner } from "../policy-types-B-F-qAZk.js";
|
|
2
|
+
import { m as ApprovalStore } from "../types-DC44-hqb.js";
|
|
3
|
+
import { i as CatalogEventData, l as CloudEventType, r as CLOUD_EVENT_TYPES, s as CloudEvent } from "../sink-Cp_Eot9W.js";
|
|
4
|
+
import { c as DeliveryTransport } from "../types-g7Oy6Zg4.js";
|
|
5
|
+
import { a as CloudConnectionOptions, c as CloudOptions, i as CloudClient, l as CloudSignerOptions, n as CloudCatalog, o as CloudEndpointOptions, r as CloudCatalogPush, s as CloudEndpoints, t as CloudApproverOptions } from "../types-DBHftjgS.js";
|
|
6
|
+
import { n as ApprovalWaiter } from "../waiter-DwEyouan.js";
|
|
7
|
+
import { l as ReplayStore } from "../types-cTos-H7p.js";
|
|
8
|
+
import { f as WebhookVerifier, r as WebhookFailureCause$1, s as WebhookJwks } from "../standard-webhooks-B_qRg0ws.js";
|
|
9
|
+
//#region src/cloud/base-url.d.ts
|
|
10
|
+
/**
|
|
11
|
+
* The one base URL of PermDock Cloud. The platform issuer is this URL; its
|
|
12
|
+
* OAuth routes, `/.well-known/oauth-authorization-server` and `/openapi.json`
|
|
13
|
+
* sit at the root, unversioned, and the data routes under `/v1`.
|
|
14
|
+
*/
|
|
15
|
+
export declare const CLOUD_BASE_URL = "https://permdock.com/api";
|
|
16
|
+
/** The scopes the platform issuer grants a person's login. */
|
|
17
|
+
type CloudScope = "projects:read" | "policy:read" | "catalog:write" | "evidence:read" | "approvals:read";
|
|
18
|
+
//#endregion
|
|
9
19
|
//#region src/cloud/request.d.ts
|
|
10
20
|
/**
|
|
11
|
-
* The environment URL and JWK Set URL `cloud()` uses
|
|
12
|
-
*
|
|
21
|
+
* The environment URL and JWK Set URL `cloud()` uses when the environment is
|
|
22
|
+
* configured: `environment`, else `PERMDOCK_CLOUD_ENV`. Throws when neither
|
|
23
|
+
* is set; `resolveCloudEndpoints` then asks the Cloud which environment the
|
|
24
|
+
* key belongs to.
|
|
13
25
|
*/
|
|
14
26
|
export declare function cloudEndpoints(options?: CloudEndpointOptions): CloudEndpoints;
|
|
27
|
+
/**
|
|
28
|
+
* The environment URL and JWK Set URL for a key: `cloudEndpoints(options)`
|
|
29
|
+
* when the environment is configured, else the environment `GET
|
|
30
|
+
* /v1/environment` names for `key` (`PERMDOCK_CLOUD_KEY`). Rejects when the
|
|
31
|
+
* Cloud does not answer or answers another issuer.
|
|
32
|
+
*/
|
|
33
|
+
export declare function resolveCloudEndpoints(options?: CloudConnectionOptions): Promise<CloudEndpoints>;
|
|
15
34
|
//#endregion
|
|
16
35
|
//#region src/cloud/create.d.ts
|
|
17
36
|
export declare function cloud(options?: CloudOptions): CloudClient;
|
|
18
37
|
//#endregion
|
|
38
|
+
//#region src/cloud/oauth.d.ts
|
|
39
|
+
type CloudOAuthOptions = {
|
|
40
|
+
/** The client id the dashboard issued, or one from `/oauth/register`. */
|
|
41
|
+
readonly clientId: string;
|
|
42
|
+
/** Registered with the client; the Cloud redirects here with `code` and `state`. */
|
|
43
|
+
readonly redirectUri: string;
|
|
44
|
+
/** A confidential client's secret, sent as `client_secret_basic` (RFC 6749 section 2.3.1). Server-only. */
|
|
45
|
+
readonly clientSecret?: string;
|
|
46
|
+
/** The Cloud base URL and platform issuer; defaults to `CLOUD_BASE_URL`. */
|
|
47
|
+
readonly url?: string;
|
|
48
|
+
/** Requested on `authorizeUrl`; defaults to `projects:read` and `policy:read`. */
|
|
49
|
+
readonly scopes?: readonly CloudScope[];
|
|
50
|
+
readonly fetch?: typeof fetch;
|
|
51
|
+
/** The clock `expires_at` is computed from; defaults to the system clock. */
|
|
52
|
+
readonly now?: () => Instant;
|
|
53
|
+
};
|
|
54
|
+
/** A token response, with RFC 6749 field names; `expires_at` is seconds since the epoch. */
|
|
55
|
+
type CloudCredential = {
|
|
56
|
+
readonly access_token: string;
|
|
57
|
+
readonly token_type?: string;
|
|
58
|
+
readonly expires_at?: number;
|
|
59
|
+
readonly refresh_token?: string;
|
|
60
|
+
readonly scope?: string;
|
|
61
|
+
};
|
|
62
|
+
/** A started authorization. Keep `state` and `codeVerifier` server-side until the callback. */
|
|
63
|
+
type CloudAuthorization = {
|
|
64
|
+
/** Where to send the browser. */
|
|
65
|
+
readonly url: string;
|
|
66
|
+
readonly state: string;
|
|
67
|
+
readonly codeVerifier: string;
|
|
68
|
+
};
|
|
69
|
+
/** `GET /v1/projects` item. A project is one environment: `id` is the `{env}` of `/v1/environments/{env}`. */
|
|
70
|
+
type CloudProject = {
|
|
71
|
+
readonly id: string;
|
|
72
|
+
readonly name: string;
|
|
73
|
+
readonly environment: string;
|
|
74
|
+
readonly slug?: string;
|
|
75
|
+
readonly issuer?: string;
|
|
76
|
+
readonly catalog?: {
|
|
77
|
+
readonly version: number;
|
|
78
|
+
readonly fingerprint: string;
|
|
79
|
+
};
|
|
80
|
+
readonly updatedAt?: string;
|
|
81
|
+
};
|
|
82
|
+
type CloudProjectPage = {
|
|
83
|
+
readonly items: readonly CloudProject[];
|
|
84
|
+
/** Pass back as `cursor` for the next page. */
|
|
85
|
+
readonly next?: string;
|
|
86
|
+
};
|
|
87
|
+
type CloudOAuthClient = {
|
|
88
|
+
/** The platform issuer the client discovers its endpoints from. */
|
|
89
|
+
readonly issuer: string;
|
|
90
|
+
/** An authorization code request with PKCE `S256` and a fresh `state`. */
|
|
91
|
+
readonly authorizeUrl: (options?: {
|
|
92
|
+
readonly scopes?: readonly CloudScope[];
|
|
93
|
+
}) => Promise<CloudAuthorization>;
|
|
94
|
+
/**
|
|
95
|
+
* Redeems the callback URL. Throws `state-mismatch` unless it echoes
|
|
96
|
+
* `pending.state`, `issuer-mismatch` for an RFC 9207 `iss` of another
|
|
97
|
+
* server, and `authorization-denied` for an `error` or a missing `code`.
|
|
98
|
+
*/
|
|
99
|
+
readonly exchangeCode: (callback: string | URL, pending: Pick<CloudAuthorization, "state" | "codeVerifier">) => Promise<CloudCredential>;
|
|
100
|
+
readonly refresh: (refreshToken: string) => Promise<CloudCredential>;
|
|
101
|
+
/** `GET /v1/projects` with a login holding `projects:read`. */
|
|
102
|
+
readonly listProjects: (accessToken: string, options?: {
|
|
103
|
+
readonly cursor?: string;
|
|
104
|
+
}) => Promise<CloudProjectPage>;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* An OAuth 2.0 client of the PermDock Cloud platform issuer, for an app that
|
|
108
|
+
* signs its users in to PermDock Cloud and reads their projects. Endpoints come
|
|
109
|
+
* from the issuer's RFC 8414 metadata; every call throws a `CloudAuthError`.
|
|
110
|
+
*/
|
|
111
|
+
export declare function cloudOAuth(options: CloudOAuthOptions): CloudOAuthClient;
|
|
112
|
+
//#endregion
|
|
113
|
+
//#region src/cloud/oauth-error.d.ts
|
|
114
|
+
type CloudAuthErrorCode = "discovery-failed" | "state-mismatch" | "issuer-mismatch" | "authorization-denied" | "token-refused" | "invalid-token" | "insufficient-scope" | "forbidden" | "rate-limited" | "unreachable" | "unexpected-response";
|
|
115
|
+
type CloudAuthErrorDetails = {
|
|
116
|
+
/** The HTTP status, when the Cloud answered. */
|
|
117
|
+
readonly status?: number;
|
|
118
|
+
/** The RFC 6749 or RFC 6750 `error` the Cloud sent (`invalid_grant`, `insufficient_scope`). */
|
|
119
|
+
readonly error?: string;
|
|
120
|
+
/** The scope an `insufficient_scope` challenge names. */
|
|
121
|
+
readonly scope?: string;
|
|
122
|
+
};
|
|
123
|
+
/** A failed `cloudOAuth` call. `code` tells a dead token (`invalid-token`) from a missing scope (`insufficient-scope`). */
|
|
124
|
+
export declare class CloudAuthError extends Error {
|
|
125
|
+
override readonly name: "CloudAuthError";
|
|
126
|
+
readonly code: CloudAuthErrorCode;
|
|
127
|
+
readonly status: number | undefined;
|
|
128
|
+
readonly error: string | undefined;
|
|
129
|
+
readonly scope: string | undefined;
|
|
130
|
+
constructor(code: CloudAuthErrorCode, message: string, details?: CloudAuthErrorDetails);
|
|
131
|
+
}
|
|
132
|
+
/** Matches by `name` and `code`, so an error from another copy of the module still maps. */
|
|
133
|
+
export declare function isCloudAuthError(value: unknown): value is CloudAuthError;
|
|
134
|
+
//#endregion
|
|
19
135
|
//#region src/cloud/delivery.d.ts
|
|
20
136
|
/**
|
|
21
137
|
* A `DeliveryTransport` for `channel` that hands each checked recipient to
|
|
@@ -126,4 +242,4 @@ export declare function approvalTokensOf(events: readonly PermDockCloudEvent[]):
|
|
|
126
242
|
*/
|
|
127
243
|
export declare function cloudApprovalWaiter(options: CloudApprovalWaiterOptions): CloudApprovalWaiter;
|
|
128
244
|
//#endregion
|
|
129
|
-
export type { CloudApprovalWaiter, CloudApprovalWaiterOptions, CloudApproverOptions, CloudCatalog, CloudCatalogPush, CloudClient, CloudConnectionOptions, CloudEndpointOptions, CloudEndpoints, CloudOptions, CloudSignerOptions, PermDockCloudEvent, VerifiedWebhook, WebhookFailureCause, WebhookOptions };
|
|
245
|
+
export type { CloudApprovalWaiter, CloudApprovalWaiterOptions, CloudApproverOptions, CloudAuthErrorCode, CloudAuthErrorDetails, CloudAuthorization, CloudCatalog, CloudCatalogPush, CloudClient, CloudConnectionOptions, CloudCredential, CloudEndpointOptions, CloudEndpoints, CloudOAuthClient, CloudOAuthOptions, CloudOptions, CloudProject, CloudProjectPage, CloudScope, CloudSignerOptions, PermDockCloudEvent, VerifiedWebhook, WebhookFailureCause, WebhookOptions };
|
package/dist/cloud/index.js
CHANGED
|
@@ -1,13 +1,261 @@
|
|
|
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 { o as statusProblem } from "../problem-details-cn5X30gZ.js";
|
|
4
|
+
import { h as secondsAt } from "../time-DkWjdL98.js";
|
|
4
5
|
import { r as CLOUD_EVENT_TYPES } from "../sink-BEZSlMS_.js";
|
|
5
|
-
import { i as parseCloudEventBatch, r as parseCloudEvent$1 } from "../catalog-fingerprint-
|
|
6
|
+
import { i as parseCloudEventBatch, r as parseCloudEvent$1 } from "../catalog-fingerprint-C144oW4M.js";
|
|
7
|
+
import { n as readBodyText } from "../body-text-QcXok_SI.js";
|
|
6
8
|
import { c as problemResponse } from "../problem-CTviyH5L.js";
|
|
9
|
+
import { t as timeoutSignal } from "../timeout-D51niuQP.js";
|
|
7
10
|
import { n as webhookVerifier } from "../standard-webhooks-DgFFD-Ga.js";
|
|
11
|
+
import { c as stringField, n as discoverAuthorizationServer, r as parseToken } from "../device-BARQ8eYG.js";
|
|
8
12
|
import { t as pollingApprovalWaiter } from "../waiter-BGUtGYoU.js";
|
|
9
13
|
import { i as isDeliveryTarget } from "../target-Bw37TFNA.js";
|
|
10
|
-
import {
|
|
14
|
+
import { t as CLOUD_BASE_URL } from "../base-url-BQbddZO5.js";
|
|
15
|
+
import { a as isCompactJws, i as cloudEndpoints, n as cloud, o as resolveCloudEndpoints, r as cloudConnection, t as bearerChallenge } from "../challenge-nGWma08S.js";
|
|
16
|
+
import { n as randomToken, t as pkce } from "../pkce-5h8NgMQJ.js";
|
|
17
|
+
//#region src/cloud/oauth-error.ts
|
|
18
|
+
/** A failed `cloudOAuth` call. `code` tells a dead token (`invalid-token`) from a missing scope (`insufficient-scope`). */
|
|
19
|
+
var CloudAuthError = class extends Error {
|
|
20
|
+
name = "CloudAuthError";
|
|
21
|
+
code;
|
|
22
|
+
status;
|
|
23
|
+
error;
|
|
24
|
+
scope;
|
|
25
|
+
constructor(code, message, details = {}) {
|
|
26
|
+
super(message);
|
|
27
|
+
this.code = code;
|
|
28
|
+
this.status = details.status;
|
|
29
|
+
this.error = details.error;
|
|
30
|
+
this.scope = details.scope;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
const CODES = /* @__PURE__ */ new Set([
|
|
34
|
+
"discovery-failed",
|
|
35
|
+
"state-mismatch",
|
|
36
|
+
"issuer-mismatch",
|
|
37
|
+
"authorization-denied",
|
|
38
|
+
"token-refused",
|
|
39
|
+
"invalid-token",
|
|
40
|
+
"insufficient-scope",
|
|
41
|
+
"forbidden",
|
|
42
|
+
"rate-limited",
|
|
43
|
+
"unreachable",
|
|
44
|
+
"unexpected-response"
|
|
45
|
+
]);
|
|
46
|
+
/** Matches by `name` and `code`, so an error from another copy of the module still maps. */
|
|
47
|
+
function isCloudAuthError(value) {
|
|
48
|
+
if (!(value instanceof Error) || value.name !== "CloudAuthError") return false;
|
|
49
|
+
const code = Reflect.get(value, "code");
|
|
50
|
+
return typeof code === "string" && CODES.has(code);
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
//#region src/cloud/oauth.ts
|
|
54
|
+
/** Milliseconds a Cloud OAuth or read request may take; a slower one fails with `unreachable`. */
|
|
55
|
+
const OAUTH_TIMEOUT_MS = 1e4;
|
|
56
|
+
const DEFAULT_SCOPES = ["projects:read", "policy:read"];
|
|
57
|
+
function trimSlash(value) {
|
|
58
|
+
return value.replace(/\/+$/u, "");
|
|
59
|
+
}
|
|
60
|
+
/** The form-urlencoding RFC 6749 section 2.3.1 applies to client_secret_basic credentials. */
|
|
61
|
+
function formEncode(value) {
|
|
62
|
+
return encodeURIComponent(value).replaceAll("%20", "+");
|
|
63
|
+
}
|
|
64
|
+
function isLoopback(hostname) {
|
|
65
|
+
return hostname === "localhost" || hostname === "127.0.0.1" || hostname === "[::1]";
|
|
66
|
+
}
|
|
67
|
+
/** An endpoint must be `https:`, except on a loopback issuer, which a local Cloud serves over plain HTTP. */
|
|
68
|
+
function secureEndpoint(value, issuer) {
|
|
69
|
+
try {
|
|
70
|
+
const url = new URL(value);
|
|
71
|
+
return url.protocol === "https:" || url.protocol === "http:" && isLoopback(new URL(issuer).hostname);
|
|
72
|
+
} catch {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async function readRecord(response) {
|
|
77
|
+
const text = await readBodyText(response);
|
|
78
|
+
if (!text.ok) return null;
|
|
79
|
+
try {
|
|
80
|
+
const body = JSON.parse(text.text);
|
|
81
|
+
return isRecord(body) ? body : null;
|
|
82
|
+
} catch {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function optionalString(value) {
|
|
87
|
+
return value === void 0 || typeof value === "string";
|
|
88
|
+
}
|
|
89
|
+
function parseProject(value) {
|
|
90
|
+
if (!isRecord(value) || typeof value["id"] !== "string" || value["id"] === "" || typeof value["name"] !== "string" || typeof value["environment"] !== "string" || value["environment"] === "" || !optionalString(value["slug"]) || !optionalString(value["issuer"]) || !optionalString(value["updatedAt"])) return null;
|
|
91
|
+
const catalog = value["catalog"];
|
|
92
|
+
if (catalog !== void 0 && (!isRecord(catalog) || !Number.isInteger(catalog["version"]) || typeof catalog["fingerprint"] !== "string")) return null;
|
|
93
|
+
return compact({
|
|
94
|
+
id: value["id"],
|
|
95
|
+
name: value["name"],
|
|
96
|
+
environment: value["environment"],
|
|
97
|
+
slug: value["slug"],
|
|
98
|
+
issuer: value["issuer"],
|
|
99
|
+
catalog: isRecord(catalog) && typeof catalog["version"] === "number" && typeof catalog["fingerprint"] === "string" ? {
|
|
100
|
+
version: catalog["version"],
|
|
101
|
+
fingerprint: catalog["fingerprint"]
|
|
102
|
+
} : void 0,
|
|
103
|
+
updatedAt: value["updatedAt"]
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
function refusal$1(response) {
|
|
107
|
+
const challenge = bearerChallenge(response.headers.get("www-authenticate"));
|
|
108
|
+
const error = challenge?.params["error"];
|
|
109
|
+
const status = response.status;
|
|
110
|
+
if (status === 401) return new CloudAuthError("invalid-token", "PermDock Cloud refused the access token; refresh it or sign in again", compact({
|
|
111
|
+
status,
|
|
112
|
+
error: error ?? "invalid_token"
|
|
113
|
+
}));
|
|
114
|
+
if (status === 403 && error === "insufficient_scope") {
|
|
115
|
+
const scope = challenge?.params["scope"];
|
|
116
|
+
return new CloudAuthError("insufficient-scope", `The access token lacks ${scope ?? "a required scope"}; sign in again with it`, compact({
|
|
117
|
+
status,
|
|
118
|
+
error,
|
|
119
|
+
scope
|
|
120
|
+
}));
|
|
121
|
+
}
|
|
122
|
+
if (status === 403) return new CloudAuthError("forbidden", "The access token may not read this resource", compact({
|
|
123
|
+
status,
|
|
124
|
+
error
|
|
125
|
+
}));
|
|
126
|
+
if (status === 429) return new CloudAuthError("rate-limited", `PermDock Cloud rate-limited the request; retry after ${response.headers.get("retry-after") ?? "a while"} seconds`, { status });
|
|
127
|
+
return new CloudAuthError("unexpected-response", `PermDock Cloud answered HTTP ${String(status)}`, { status });
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* An OAuth 2.0 client of the PermDock Cloud platform issuer, for an app that
|
|
131
|
+
* signs its users in to PermDock Cloud and reads their projects. Endpoints come
|
|
132
|
+
* from the issuer's RFC 8414 metadata; every call throws a `CloudAuthError`.
|
|
133
|
+
*/
|
|
134
|
+
function cloudOAuth(options) {
|
|
135
|
+
const issuer = trimSlash(options.url ?? "https://permdock.com/api");
|
|
136
|
+
const fetchFn = options.fetch ?? globalThis.fetch.bind(globalThis);
|
|
137
|
+
const scopes = options.scopes ?? DEFAULT_SCOPES;
|
|
138
|
+
let discovered;
|
|
139
|
+
const discover = async () => {
|
|
140
|
+
const body = await discoverAuthorizationServer(issuer, { fetch: fetchFn });
|
|
141
|
+
const authorization = body === null ? void 0 : stringField(body, "authorization_endpoint");
|
|
142
|
+
const token = body === null ? void 0 : stringField(body, "token_endpoint");
|
|
143
|
+
const methods = body?.["code_challenge_methods_supported"];
|
|
144
|
+
if (authorization === void 0 || token === void 0 || !secureEndpoint(authorization, issuer) || !secureEndpoint(token, issuer) || !Array.isArray(methods) || !methods.includes("S256")) throw new CloudAuthError("discovery-failed", `No usable RFC 8414 metadata for ${issuer}`);
|
|
145
|
+
return {
|
|
146
|
+
authorization,
|
|
147
|
+
token
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
const endpoints = () => {
|
|
151
|
+
discovered ??= discover().catch((error) => {
|
|
152
|
+
discovered = void 0;
|
|
153
|
+
throw error;
|
|
154
|
+
});
|
|
155
|
+
return discovered;
|
|
156
|
+
};
|
|
157
|
+
const send = async (url, init) => {
|
|
158
|
+
try {
|
|
159
|
+
return await fetchFn(url, {
|
|
160
|
+
...init,
|
|
161
|
+
signal: timeoutSignal(OAUTH_TIMEOUT_MS)
|
|
162
|
+
});
|
|
163
|
+
} catch {
|
|
164
|
+
throw new CloudAuthError("unreachable", `PermDock Cloud at ${issuer} did not answer`);
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
const token = async (fields) => {
|
|
168
|
+
const headers = new Headers({
|
|
169
|
+
"content-type": "application/x-www-form-urlencoded",
|
|
170
|
+
accept: "application/json"
|
|
171
|
+
});
|
|
172
|
+
const form = new URLSearchParams(fields);
|
|
173
|
+
if (options.clientSecret === void 0) form.set("client_id", options.clientId);
|
|
174
|
+
else headers.set("authorization", `Basic ${btoa(`${formEncode(options.clientId)}:${formEncode(options.clientSecret)}`)}`);
|
|
175
|
+
const response = await send((await endpoints()).token, {
|
|
176
|
+
method: "POST",
|
|
177
|
+
headers,
|
|
178
|
+
body: form
|
|
179
|
+
});
|
|
180
|
+
const body = await readRecord(response);
|
|
181
|
+
if (body === null) throw new CloudAuthError("unexpected-response", "PermDock Cloud answered the token request with a body that is not a JSON object", { status: response.status });
|
|
182
|
+
const parsed = parseToken(body, secondsAt(options.now?.()));
|
|
183
|
+
if (!parsed.ok || !response.ok) {
|
|
184
|
+
const error = parsed.ok ? void 0 : parsed.error;
|
|
185
|
+
throw new CloudAuthError("token-refused", `PermDock Cloud refused the token request${error === void 0 ? "" : `: ${error}`}`, compact({
|
|
186
|
+
status: response.status,
|
|
187
|
+
error
|
|
188
|
+
}));
|
|
189
|
+
}
|
|
190
|
+
return parsed.credential;
|
|
191
|
+
};
|
|
192
|
+
return Object.freeze({
|
|
193
|
+
issuer,
|
|
194
|
+
async authorizeUrl(request = {}) {
|
|
195
|
+
const { authorization } = await endpoints();
|
|
196
|
+
const { verifier, challenge } = await pkce();
|
|
197
|
+
const state = randomToken(16);
|
|
198
|
+
const url = new URL(authorization);
|
|
199
|
+
url.searchParams.set("response_type", "code");
|
|
200
|
+
url.searchParams.set("client_id", options.clientId);
|
|
201
|
+
url.searchParams.set("redirect_uri", options.redirectUri);
|
|
202
|
+
url.searchParams.set("scope", (request.scopes ?? scopes).join(" "));
|
|
203
|
+
url.searchParams.set("state", state);
|
|
204
|
+
url.searchParams.set("code_challenge", challenge);
|
|
205
|
+
url.searchParams.set("code_challenge_method", "S256");
|
|
206
|
+
return Object.freeze({
|
|
207
|
+
url: url.href,
|
|
208
|
+
state,
|
|
209
|
+
codeVerifier: verifier
|
|
210
|
+
});
|
|
211
|
+
},
|
|
212
|
+
async exchangeCode(callback, pending) {
|
|
213
|
+
let params;
|
|
214
|
+
try {
|
|
215
|
+
params = new URL(callback).searchParams;
|
|
216
|
+
} catch {
|
|
217
|
+
throw new CloudAuthError("authorization-denied", "The callback is not a URL");
|
|
218
|
+
}
|
|
219
|
+
if (pending.state === "" || params.get("state") !== pending.state) throw new CloudAuthError("state-mismatch", "The callback does not echo the state of the authorization");
|
|
220
|
+
const iss = params.get("iss");
|
|
221
|
+
if (iss !== null && trimSlash(iss) !== issuer) throw new CloudAuthError("issuer-mismatch", `The callback names the issuer ${iss}, not ${issuer}`);
|
|
222
|
+
const error = params.get("error");
|
|
223
|
+
const code = params.get("code");
|
|
224
|
+
if (error !== null || code === null || code === "") throw new CloudAuthError("authorization-denied", `The authorization was not granted${error === null ? "" : `: ${error}`}`, error === null ? {} : { error });
|
|
225
|
+
return await token({
|
|
226
|
+
grant_type: "authorization_code",
|
|
227
|
+
code,
|
|
228
|
+
redirect_uri: options.redirectUri,
|
|
229
|
+
code_verifier: pending.codeVerifier
|
|
230
|
+
});
|
|
231
|
+
},
|
|
232
|
+
refresh(refreshToken) {
|
|
233
|
+
return token({
|
|
234
|
+
grant_type: "refresh_token",
|
|
235
|
+
refresh_token: refreshToken
|
|
236
|
+
});
|
|
237
|
+
},
|
|
238
|
+
async listProjects(accessToken, request = {}) {
|
|
239
|
+
const url = new URL(`${issuer}/v1/projects`);
|
|
240
|
+
if (request.cursor !== void 0) url.searchParams.set("cursor", request.cursor);
|
|
241
|
+
const response = await send(url, { headers: {
|
|
242
|
+
authorization: `Bearer ${accessToken}`,
|
|
243
|
+
accept: "application/json"
|
|
244
|
+
} });
|
|
245
|
+
if (!response.ok) throw refusal$1(response);
|
|
246
|
+
const body = await readRecord(response);
|
|
247
|
+
const raw = body?.["items"];
|
|
248
|
+
const items = Array.isArray(raw) ? raw.map(parseProject) : null;
|
|
249
|
+
const next = body?.["next"];
|
|
250
|
+
if (items === null || items.includes(null) || !optionalString(next)) throw new CloudAuthError("unexpected-response", "PermDock Cloud sent a project list that does not match cloud-api-v1.json", { status: response.status });
|
|
251
|
+
return Object.freeze(compact({
|
|
252
|
+
items: Object.freeze(items.filter((item) => item !== null)),
|
|
253
|
+
next
|
|
254
|
+
}));
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
//#endregion
|
|
11
259
|
//#region src/cloud/delivery.ts
|
|
12
260
|
function failed(cause, retryable, reason) {
|
|
13
261
|
return {
|
|
@@ -294,4 +542,4 @@ function cloudApprovalWaiter(options) {
|
|
|
294
542
|
});
|
|
295
543
|
}
|
|
296
544
|
//#endregion
|
|
297
|
-
export { approvalTokensOf, cloud, cloudApprovalWaiter, cloudDeliveryTransport, cloudEndpoints, cloudSigner, parseCloudEvent, verifyWebhook };
|
|
545
|
+
export { CLOUD_BASE_URL, CloudAuthError, approvalTokensOf, cloud, cloudApprovalWaiter, cloudDeliveryTransport, cloudEndpoints, cloudOAuth, cloudSigner, isCloudAuthError, parseCloudEvent, resolveCloudEndpoints, verifyWebhook };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as secretInput } from "./credentials-
|
|
1
|
+
import { n as secretInput } from "./credentials-BpuTwd7a.js";
|
|
2
2
|
import { t as defineLeaf } from "./command-L8EstFNm.js";
|
|
3
|
-
import { c as given, i as dryRunFlag } from "./flags-
|
|
3
|
+
import { c as given, i as dryRunFlag } from "./flags-aaeRAdiD.js";
|
|
4
4
|
//#region src/cli/commands/cloud.ts
|
|
5
5
|
const sharedFlags = {
|
|
6
6
|
url: {
|
|
@@ -30,7 +30,7 @@ const push = defineLeaf({
|
|
|
30
30
|
...sharedFlags,
|
|
31
31
|
project: {
|
|
32
32
|
type: "string",
|
|
33
|
-
description: "Cloud project id (default PERMDOCK_CLOUD_ENV, then
|
|
33
|
+
description: "Cloud project id (default PERMDOCK_CLOUD_ENV, then the key's environment)",
|
|
34
34
|
valueHint: "id"
|
|
35
35
|
},
|
|
36
36
|
...dryRunFlag,
|
|
@@ -41,7 +41,7 @@ const push = defineLeaf({
|
|
|
41
41
|
},
|
|
42
42
|
async run(ctx, { flags }) {
|
|
43
43
|
const env = await withStdinSecret(ctx, "key", flags["key-stdin"], "PERMDOCK_CLOUD_KEY");
|
|
44
|
-
return (await import("./push-
|
|
44
|
+
return (await import("./push-tVdG8dUL.js")).runCloud({
|
|
45
45
|
cwd: ctx.cwd,
|
|
46
46
|
config: ctx.config,
|
|
47
47
|
url: given(flags.url),
|
|
@@ -70,7 +70,7 @@ const pull = defineLeaf({
|
|
|
70
70
|
},
|
|
71
71
|
async run(ctx, { flags }) {
|
|
72
72
|
const env = await withStdinSecret(ctx, "token", flags["token-stdin"], "PERMDOCK_CLOUD_TOKEN");
|
|
73
|
-
const { runCloudPull } = await import("./pull-
|
|
73
|
+
const { runCloudPull } = await import("./pull-Cty6Ovyu.js");
|
|
74
74
|
return runCloudPull({
|
|
75
75
|
cwd: ctx.cwd,
|
|
76
76
|
config: ctx.config,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { n as CliError } from "./errors-
|
|
1
|
+
import { n as CliError } from "./errors-DpP_U6Bf.js";
|
|
2
2
|
import { a as rel } from "./files-D_JIzUrP.js";
|
|
3
3
|
import { t as beforeFirst } from "./text-BMFRfBqc.js";
|
|
4
|
-
import { n as ROOT } from "./manifest-
|
|
4
|
+
import { n as ROOT } from "./manifest-Dv6q4i5s.js";
|
|
5
5
|
import { i as renameMessage, n as DEFAULT_CHANGES, r as flagRename, t as COMMAND_MOVES } from "./renames-CGj7YwcQ.js";
|
|
6
|
-
import { r as refuseDirty, t as applyFiles } from "./files-
|
|
6
|
+
import { r as refuseDirty, t as applyFiles } from "./files-acUbNwWt.js";
|
|
7
7
|
import { readFileSync, readdirSync, statSync } from "node:fs";
|
|
8
8
|
import { extname, join, resolve } from "node:path";
|
|
9
9
|
import { Visitor, parseSync, visitorKeys } from "oxc-parser";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as defineLeaf } from "./command-L8EstFNm.js";
|
|
2
|
-
import { i as dryRunFlag } from "./flags-
|
|
2
|
+
import { i as dryRunFlag } from "./flags-aaeRAdiD.js";
|
|
3
3
|
//#region src/cli/commands/codemod.ts
|
|
4
4
|
const codemod = defineLeaf({
|
|
5
5
|
positionals: [{
|
|
@@ -7,7 +7,7 @@ const codemod = defineLeaf({
|
|
|
7
7
|
description: "The release to migrate to (0.5)",
|
|
8
8
|
required: true,
|
|
9
9
|
async complete() {
|
|
10
|
-
return (await import("./codemod-
|
|
10
|
+
return (await import("./codemod-BP6n8N9L.js")).codemodVersions();
|
|
11
11
|
}
|
|
12
12
|
}, {
|
|
13
13
|
name: "paths",
|
|
@@ -22,7 +22,7 @@ const codemod = defineLeaf({
|
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
async run(ctx, { flags, args, rest }) {
|
|
25
|
-
const { runCodemod } = await import("./codemod-
|
|
25
|
+
const { runCodemod } = await import("./codemod-BP6n8N9L.js");
|
|
26
26
|
return runCodemod({
|
|
27
27
|
cwd: ctx.cwd,
|
|
28
28
|
version: args["version"],
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { r as isRecord } from "./compact-CAf557ZB.js";
|
|
2
|
-
import {
|
|
3
|
-
import { o as isPermission } from "./permission-registry-
|
|
4
|
-
import { r as isOperationRisk } from "./permissions-
|
|
5
|
-
import { a as describeError, i as configError } from "./errors-
|
|
2
|
+
import { k as isOperationEffect } from "./src-DLFrtrrC.js";
|
|
3
|
+
import { o as isPermission } from "./permission-registry-DpPtSKNZ.js";
|
|
4
|
+
import { r as isOperationRisk } from "./permissions-CyH2MV_B.js";
|
|
5
|
+
import { a as describeError, i as configError } from "./errors-DpP_U6Bf.js";
|
|
6
6
|
import { a as rel, r as listSourceFiles, s as writeFileEnsuringDir, t as defaultSrcPath } from "./files-D_JIzUrP.js";
|
|
7
|
-
import {
|
|
8
|
-
import { a as loadModule, i as loadConfiguredPolicy, r as leavesOf, s as pickNamed, t as asPermissionTree } from "./load-
|
|
7
|
+
import { n as catalogForCompare, o as formatCatalogJson, r as catalogForDrift, t as buildCatalog } from "./catalog-doc-CV9s6B1S.js";
|
|
8
|
+
import { a as loadModule, i as loadConfiguredPolicy, r as leavesOf, s as pickNamed, t as asPermissionTree } from "./load-DxroEzH1.js";
|
|
9
9
|
import { t as catalogPath } from "./catalog-path-CnI0XTFK.js";
|
|
10
|
-
import { t as shortDiff } from "./text-diff-
|
|
10
|
+
import { t as shortDiff } from "./text-diff-DhITNCnD.js";
|
|
11
11
|
import { existsSync, readFileSync } from "node:fs";
|
|
12
12
|
import { dirname, relative, resolve } from "node:path";
|
|
13
13
|
import { Visitor, parseSync, visitorKeys } from "oxc-parser";
|
|
@@ -499,10 +499,19 @@ async function runCollect(input) {
|
|
|
499
499
|
};
|
|
500
500
|
const current = readFileSync(outPath, "utf8");
|
|
501
501
|
const currentDoc = JSON.parse(current);
|
|
502
|
+
const generatedDoc = input.scanPath === void 0 || samePaths(input.scanPath, srcPath) ? document : buildCatalog(tree, scanSources(input.cwd, listSourceFiles(input.cwd, srcPath), knownKeys), generatedAt, policy, operations);
|
|
502
503
|
const onDisk = catalogForCompare(currentDoc);
|
|
503
|
-
const generated = catalogForCompare(
|
|
504
|
+
const generated = catalogForCompare(generatedDoc);
|
|
504
505
|
if (onDisk !== generated) {
|
|
505
506
|
const file = rel(input.cwd, outPath);
|
|
507
|
+
if (catalogForDrift(currentDoc) === catalogForDrift(generatedDoc)) return {
|
|
508
|
+
code: 0,
|
|
509
|
+
document,
|
|
510
|
+
scan,
|
|
511
|
+
outPath,
|
|
512
|
+
positionsMoved: true,
|
|
513
|
+
message: `catalog usages moved (lines only): ${file}; run permdock collect to refresh`
|
|
514
|
+
};
|
|
506
515
|
return {
|
|
507
516
|
code: 1,
|
|
508
517
|
document,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as CliError } from "./errors-
|
|
1
|
+
import { n as CliError } from "./errors-DpP_U6Bf.js";
|
|
2
2
|
import { t as defineLeaf } from "./command-L8EstFNm.js";
|
|
3
|
-
import { o as fileOut, t as checkFlag } from "./flags-
|
|
3
|
+
import { o as fileOut, t as checkFlag } from "./flags-aaeRAdiD.js";
|
|
4
4
|
//#region src/cli/commands/collect.ts
|
|
5
5
|
const collect = defineLeaf({
|
|
6
6
|
flags: {
|
|
@@ -29,10 +29,10 @@ const collect = defineLeaf({
|
|
|
29
29
|
};
|
|
30
30
|
if (flags.watch) {
|
|
31
31
|
if (flags.check) throw new CliError("usage", "collect: --watch writes the catalog; drop --check", { code: "invalid_value" });
|
|
32
|
-
const { watchCollect } = await import("./watch
|
|
32
|
+
const { watchCollect } = await import("./watch-Bd9mx3rd.js");
|
|
33
33
|
return watchCollect(ctx, overrides);
|
|
34
34
|
}
|
|
35
|
-
const result = await (await import("./collect-
|
|
35
|
+
const result = await (await import("./collect-k_Dulxr5.js")).runCollect({
|
|
36
36
|
cwd: ctx.cwd,
|
|
37
37
|
config: ctx.config,
|
|
38
38
|
collect: overrides,
|
|
@@ -46,7 +46,8 @@ const collect = defineLeaf({
|
|
|
46
46
|
...result.document === void 0 ? {} : { data: {
|
|
47
47
|
out: result.outPath,
|
|
48
48
|
permissions: result.document.permissions.length,
|
|
49
|
-
...flags.check ? { stale: result.code !== 0 } : {}
|
|
49
|
+
...flags.check ? { stale: result.code !== 0 } : {},
|
|
50
|
+
...result.positionsMoved === true ? { positionsMoved: true } : {}
|
|
50
51
|
} }
|
|
51
52
|
};
|
|
52
53
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { r as runCollect } from "./collect-BaWeMjwV.js";
|
package/dist/compile/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { n as GraphSqlPart, r as RelationsMapping, t as GraphSql } from "../graph-sql-B-dsAT6j.js";
|
|
2
|
-
import { a as CompiledWhere, c as compileWhere, i as CompiledSql, l as escapeLike, n as CompiledCompare, o as MembershipTable, r as CompiledExists, s as MembershipsMapping, t as CompileWhereOptions } from "../compile-
|
|
2
|
+
import { a as CompiledWhere, c as compileWhere, i as CompiledSql, l as escapeLike, n as CompiledCompare, o as MembershipTable, r as CompiledExists, s as MembershipsMapping, t as CompileWhereOptions } from "../compile-COM2VKuN.js";
|
|
3
3
|
export { type CompileWhereOptions, type CompiledCompare, type CompiledExists, type CompiledSql, type CompiledWhere, type GraphSql, type GraphSqlPart, type MembershipTable, type MembershipsMapping, type RelationsMapping, compileWhere, escapeLike };
|
package/dist/compile/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as compileWhere, n as escapeLike } from "../compile-
|
|
1
|
+
export { t as compileWhere, n as escapeLike } from "../compile-BAEO5bOk.js";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { a as sole, n as isReadonlyArray, t as compact } from "./compact-CAf557ZB.js";
|
|
2
2
|
import { t as assertSafeKey } from "./paths-DXSHAMIa.js";
|
|
3
|
-
import {
|
|
3
|
+
import { a as resolveConditionRef, c as isConditionDate, d as parentHop, l as isConditionRef } from "./refs-CNJBiTFo.js";
|
|
4
4
|
import { n as PermDockValidationError } from "./validation-error-ZfUHbKvf.js";
|
|
5
5
|
import { t as expiredAt } from "./expiry-D4_YKRKD.js";
|
|
6
6
|
import { a as expandRelation, c as isEdgeRelation, d as isSelfParented, l as isFieldRelation, o as groupEntries, p as restrictedFor, u as isPrincipalRelation } from "./resource-relations-D_jw0BFx.js";
|
|
7
7
|
import { o as epochSeconds, t as INVALID_NOW } from "./time-DkWjdL98.js";
|
|
8
|
-
import {
|
|
8
|
+
import { f as scopeList, h as tenantOf, l as rootScope, m as subjectMemberships, s as resolveScope, u as scopeChain } from "./scopes-BHsc-wp-.js";
|
|
9
9
|
import { t as isoInstant } from "./instant-BluqDvyS.js";
|
|
10
10
|
//#region src/conditions/graph-sql.ts
|
|
11
11
|
/** A Postgres identifier, schema-qualified names split on `.`. */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Rt as Instant,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { Rt as Instant, fn as Scope, lr as Subject, mr as Condition } from "./policy-types-B-F-qAZk.js";
|
|
2
|
+
import { b as ResourceNode } from "./permission-types-DhNEmoRG.js";
|
|
3
|
+
import { u as WhereResult } from "./permdock-Dco6dyCK.js";
|
|
4
4
|
import { r as RelationsMapping, t as GraphSql } from "./graph-sql-B-dsAT6j.js";
|
|
5
5
|
//#region src/conditions/compile.d.ts
|
|
6
6
|
type MembershipTable = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as CliError } from "./errors-
|
|
2
|
-
import { a as suggestion, o as GLOBAL_FLAGS } from "./args-
|
|
3
|
-
import { a as resolve } from "./manifest-
|
|
1
|
+
import { n as CliError } from "./errors-DpP_U6Bf.js";
|
|
2
|
+
import { a as suggestion, o as GLOBAL_FLAGS } from "./args-CC3OwyHW.js";
|
|
3
|
+
import { a as resolve } from "./manifest-Dv6q4i5s.js";
|
|
4
4
|
import { t as defineLeaf } from "./command-L8EstFNm.js";
|
|
5
5
|
//#region src/cli/core/completion.ts
|
|
6
6
|
const SHELLS = [
|