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,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { r as
|
|
4
|
-
import {
|
|
5
|
-
import { r as
|
|
1
|
+
import { Ln as Decision, j as PolicyVocabulary, or as Membership } from "./policy-types-B-F-qAZk.js";
|
|
2
|
+
import { u as Permission } from "./permission-types-DhNEmoRG.js";
|
|
3
|
+
import { r as Role } from "./vocabulary-Bg3eeT2H.js";
|
|
4
|
+
import { r as DescribeOptions, t as DecisionDescription } from "./describe-O0SwYIK8.js";
|
|
5
|
+
import { a as FilterResult, c as PermissionSet, d as RolesOptions, f as SubjectView, l as PermissionState, o as GateMode, p as TenantView, r as ClientPermDock, s as GateView, t as ApprovalHandle } from "./types-CKV71kKh.js";
|
|
6
|
+
import { r as ProtectedProps } from "./types-CQVEQawv.js";
|
|
6
7
|
import { ReactNode } from "react";
|
|
7
8
|
//#region src/react/hooks.d.ts
|
|
8
9
|
declare function usePermDock<V extends PolicyVocabulary = PolicyVocabulary>(): ClientPermDock<V>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as storeOf } from "./store-options-
|
|
2
|
-
import { c as rolesView, d as subjectView, f as tenantView, i as gateView, l as scopedTenant, n as describeWith, o as permissionSet, r as filterResult, s as protectedView, t as approvalHandle, u as slotContent } from "./views-
|
|
1
|
+
import { n as storeOf } from "./store-options-B_poyYvg.js";
|
|
2
|
+
import { c as rolesView, d as subjectView, f as tenantView, i as gateView, l as scopedTenant, n as describeWith, o as permissionSet, r as filterResult, s as protectedView, t as approvalHandle, u as slotContent } from "./views-BB8E9dTP.js";
|
|
3
3
|
import { a as PermDockUiContext, i as PermDockStoreContext, r as PermDockSnapshotPromiseContext } from "./live-options-BaAFCIiu.js";
|
|
4
4
|
import { Suspense, use, useMemo, useSyncExternalStore } from "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { t as emptySnapshot } from "./from-snapshot-
|
|
3
|
-
import { t as adapterStore } from "./store-options-
|
|
2
|
+
import { t as emptySnapshot } from "./from-snapshot-Bz469dIh.js";
|
|
3
|
+
import { t as adapterStore } from "./store-options-B_poyYvg.js";
|
|
4
4
|
import { a as PermDockUiContext, i as PermDockStoreContext, n as useKeyed, r as PermDockSnapshotPromiseContext, t as useLiveOptions } from "./live-options-BaAFCIiu.js";
|
|
5
5
|
import { useLayoutEffect, useMemo } from "react";
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as PermDockProviderProps } from "./types-
|
|
1
|
+
import { n as PermDockProviderProps } from "./types-CQVEQawv.js";
|
|
2
2
|
import { ReactElement } from "react";
|
|
3
3
|
//#region src/react/provider.d.ts
|
|
4
4
|
declare function PermDockProvider(props: PermDockProviderProps): ReactElement;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { t as emptySnapshot } from "./from-snapshot-
|
|
3
|
-
import { i as isPromiseLike, t as adapterStore } from "./store-options-
|
|
2
|
+
import { t as emptySnapshot } from "./from-snapshot-Bz469dIh.js";
|
|
3
|
+
import { i as isPromiseLike, t as adapterStore } from "./store-options-B_poyYvg.js";
|
|
4
4
|
//#region src/client/provider-store.ts
|
|
5
5
|
/**
|
|
6
6
|
* Store options that read `read()` on every request, so a rotated token, a
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { r as isRecord } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { t as catalogFingerprint } from "./catalog-fingerprint-
|
|
3
|
-
import { a as describeError } from "./errors-
|
|
2
|
+
import { t as catalogFingerprint } from "./catalog-fingerprint-C144oW4M.js";
|
|
3
|
+
import { a as describeError } from "./errors-DpP_U6Bf.js";
|
|
4
4
|
import { s as writeFileEnsuringDir } from "./files-D_JIzUrP.js";
|
|
5
5
|
import { s as cliVersion } from "./version-CEbQ5UeM.js";
|
|
6
|
-
import {
|
|
6
|
+
import { o as formatCatalogJson } from "./catalog-doc-CV9s6B1S.js";
|
|
7
7
|
import { t as catalogPath } from "./catalog-path-CnI0XTFK.js";
|
|
8
|
-
import {
|
|
9
|
-
import { t as parseCatalog } from "./parse-
|
|
8
|
+
import { n as parseSupabaseManifest } from "./manifest-B79YuF2T.js";
|
|
9
|
+
import { t as parseCatalog } from "./parse-Ddhz2xf4.js";
|
|
10
10
|
import { t as POLICY_NOT_PUBLISHED } from "./problem-types-CJ2325SZ.js";
|
|
11
|
-
import { n as httpRequest, t as authFailure } from "./http-
|
|
12
|
-
import { l as cloudUrl, n as cliRuntime, o as readAuth } from "./auth-
|
|
11
|
+
import { n as httpRequest, t as authFailure } from "./http-Ca3Sr5x1.js";
|
|
12
|
+
import { l as cloudUrl, n as cliRuntime, o as readAuth } from "./auth-CscUX8Sy.js";
|
|
13
13
|
import { n as formatManifestJson } from "./manifest-json-CAGzls-C.js";
|
|
14
14
|
import { existsSync, readFileSync, rmSync } from "node:fs";
|
|
15
15
|
import { relative, resolve } from "node:path";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { n as runCloudPull } from "./pull-CN5OLxrF.js";
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { r as isRecord } from "./compact-CAf557ZB.js";
|
|
2
|
+
import { n as PermDockValidationError } from "./validation-error-ZfUHbKvf.js";
|
|
3
|
+
import { t as catalogFingerprint } from "./catalog-fingerprint-C144oW4M.js";
|
|
4
|
+
import { a as describeError, n as CliError } from "./errors-DpP_U6Bf.js";
|
|
3
5
|
import { s as cliVersion } from "./version-CEbQ5UeM.js";
|
|
4
|
-
import { i as loadConfiguredPolicy } from "./load-
|
|
5
|
-
import {
|
|
6
|
-
import { t as parseCatalog } from "./parse-
|
|
7
|
-
import { r as pushedPolicy } from "./pushed-policy-
|
|
8
|
-
import { n as runCatalog } from "./catalog-
|
|
9
|
-
import { n as httpRequest, t as authFailure } from "./http-
|
|
10
|
-
import { a as pushAuth, l as cloudUrl, n as cliRuntime, u as firstNonEmpty } from "./auth-
|
|
6
|
+
import { i as loadConfiguredPolicy } from "./load-DxroEzH1.js";
|
|
7
|
+
import { n as parseSupabaseManifest } from "./manifest-B79YuF2T.js";
|
|
8
|
+
import { t as parseCatalog } from "./parse-Ddhz2xf4.js";
|
|
9
|
+
import { r as pushedPolicy } from "./pushed-policy-CmYeSQqq.js";
|
|
10
|
+
import { n as runCatalog } from "./catalog-D69WhFii.js";
|
|
11
|
+
import { n as httpRequest, t as authFailure } from "./http-Ca3Sr5x1.js";
|
|
12
|
+
import { a as pushAuth, l as cloudUrl, n as cliRuntime, u as firstNonEmpty } from "./auth-CscUX8Sy.js";
|
|
11
13
|
import "./manifest-json-CAGzls-C.js";
|
|
12
14
|
import { existsSync, readFileSync } from "node:fs";
|
|
13
15
|
import { resolve } from "node:path";
|
|
@@ -34,6 +36,43 @@ function readManifest(cwd, flag) {
|
|
|
34
36
|
};
|
|
35
37
|
}
|
|
36
38
|
}
|
|
39
|
+
/** The built catalog, or a `catalog_invalid` problem listing every issue with its path. */
|
|
40
|
+
function checkedCatalog(output) {
|
|
41
|
+
try {
|
|
42
|
+
return parseCatalog(output);
|
|
43
|
+
} catch (error) {
|
|
44
|
+
if (!(error instanceof PermDockValidationError)) throw error;
|
|
45
|
+
const issues = error.issues.map((issue) => ({
|
|
46
|
+
path: (issue.path ?? []).map(String).join("."),
|
|
47
|
+
message: issue.message
|
|
48
|
+
}));
|
|
49
|
+
throw new CliError("failed", [`permdock cloud push: the catalog has ${String(issues.length)} ${issues.length === 1 ? "issue" : "issues"}`, ...issues.map((issue) => ` ${issue.path}: ${issue.message}`)].join("\n"), {
|
|
50
|
+
code: "catalog_invalid",
|
|
51
|
+
extensions: { issues }
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/** The environment `GET /v1/environment` names for the push credential. */
|
|
56
|
+
async function keyEnvironment(io, url, bearer) {
|
|
57
|
+
const response = await httpRequest(io, {
|
|
58
|
+
url: `${url}/v1/environment`,
|
|
59
|
+
service: "PermDock Cloud",
|
|
60
|
+
headers: {
|
|
61
|
+
authorization: `Bearer ${bearer}`,
|
|
62
|
+
accept: "application/json"
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
const body = response.ok ? await response.json().catch(() => void 0) : void 0;
|
|
66
|
+
const environment = isRecord(body) ? body["environment"] : void 0;
|
|
67
|
+
if (typeof environment === "string" && environment !== "") return environment;
|
|
68
|
+
throw new CliError("failed", `permdock cloud push: PermDock Cloud did not name the credential's environment (HTTP ${String(response.status)})`, { next: [{
|
|
69
|
+
command: "permdock cloud push --project <environment>",
|
|
70
|
+
when: "to name the environment"
|
|
71
|
+
}, {
|
|
72
|
+
command: "export PERMDOCK_CLOUD_ENV=<environment>",
|
|
73
|
+
when: "in CI"
|
|
74
|
+
}] });
|
|
75
|
+
}
|
|
37
76
|
async function runCloud(input) {
|
|
38
77
|
const manifest = readManifest(input.cwd, input.manifest);
|
|
39
78
|
if (!manifest.ok) return {
|
|
@@ -53,7 +92,7 @@ async function runCloud(input) {
|
|
|
53
92
|
code: built.code,
|
|
54
93
|
output: built.output
|
|
55
94
|
};
|
|
56
|
-
const catalog =
|
|
95
|
+
const catalog = checkedCatalog(built.output);
|
|
57
96
|
const fingerprint = catalogFingerprint(catalog);
|
|
58
97
|
const loaded = await loadConfiguredPolicy(input.cwd, input.config.policy);
|
|
59
98
|
const policy = loaded === void 0 ? void 0 : pushedPolicy(loaded);
|
|
@@ -68,17 +107,18 @@ async function runCloud(input) {
|
|
|
68
107
|
manifest: manifest.manifest !== void 0
|
|
69
108
|
};
|
|
70
109
|
const url = cloudUrl(input.url, input.env);
|
|
71
|
-
const
|
|
72
|
-
const describe = (verb) => input.json ? JSON.stringify({
|
|
110
|
+
const configured = firstNonEmpty(input.project, input.env["PERMDOCK_CLOUD_ENV"]);
|
|
111
|
+
const describe = (verb, environment) => input.json ? JSON.stringify({
|
|
73
112
|
...summary,
|
|
74
113
|
environment,
|
|
75
114
|
status: verb
|
|
76
115
|
}) : `${verb} catalog ${fingerprint} (${String(summary.permissions)} permissions, ${String(hostable.length)} hostable${summary.manifest ? ", with manifest" : ""}) to ${environment}`;
|
|
77
116
|
if (input.dryRun) return {
|
|
78
117
|
code: 0,
|
|
79
|
-
output: describe("would push")
|
|
118
|
+
output: describe("would push", configured === "" ? "the key's environment" : configured)
|
|
80
119
|
};
|
|
81
120
|
const auth = await pushAuth(url, input.env, cliRuntime(input.io, input.env));
|
|
121
|
+
const environment = configured === "" ? await keyEnvironment(input.io, url, auth.bearer) : configured;
|
|
82
122
|
const response = await httpRequest(input.io, {
|
|
83
123
|
url: `${url}/v1/environments/${encodeURIComponent(environment)}/catalog`,
|
|
84
124
|
method: "POST",
|
|
@@ -109,7 +149,7 @@ async function runCloud(input) {
|
|
|
109
149
|
};
|
|
110
150
|
return {
|
|
111
151
|
code: 0,
|
|
112
|
-
output: describe("pushed")
|
|
152
|
+
output: describe("pushed", environment)
|
|
113
153
|
};
|
|
114
154
|
}
|
|
115
155
|
//#endregion
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Fn as AppObligation, H as WireValidity, T as Policy, Yt as SnapshotScope, _ as GrantLimit, a as ApprovalRequirement, mr as Condition, u as BreakGlassSpec, v as GrantMeta, wn as Grantee } from "./policy-types-B-F-qAZk.js";
|
|
2
2
|
import { t as JsonSchemaNode } from "./json-schema-CN_iLFH2.js";
|
|
3
3
|
//#region src/catalog/pushed-policy.d.ts
|
|
4
4
|
/**
|
|
@@ -3,7 +3,7 @@ import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
|
|
|
3
3
|
import { n as PermDockValidationError } from "./validation-error-ZfUHbKvf.js";
|
|
4
4
|
import { n as RFC3339_PATTERN } from "./time-DkWjdL98.js";
|
|
5
5
|
import { i as wireValidity } from "./validity-CZ7-y0Cj.js";
|
|
6
|
-
import { n as snapshotScopes } from "./instance-snapshot-
|
|
6
|
+
import { n as snapshotScopes } from "./instance-snapshot-CjcwnEiV.js";
|
|
7
7
|
import { n as copyJson, r as forbiddenKeyPath, t as checkSchema } from "./json-schema-B-vAwlde.js";
|
|
8
8
|
//#region src/catalog/pushed-policy.ts
|
|
9
9
|
const strings = {
|
package/dist/react/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { n as requiredPlans } from "../problem-details-
|
|
2
|
-
import { i as describe } from "../describe-
|
|
1
|
+
import { n as requiredPlans } from "../problem-details-Tcfmj3bV.js";
|
|
2
|
+
import { i as describe } from "../describe-O0SwYIK8.js";
|
|
3
3
|
import { t as approvalHeaders } from "../headers-CIbDTUTK.js";
|
|
4
|
-
import { a as FilterResult, c as PermissionSet, f as SubjectView, i as ClientStatus, l as PermissionState, n as ApprovalState, o as GateMode, p as TenantView, r as ClientPermDock, s as GateView, t as ApprovalHandle } from "../types-
|
|
5
|
-
import { n as PermDockProviderProps, r as ProtectedProps, t as PermDockDefaults } from "../types-
|
|
6
|
-
import { a as useDescribe, c as useMemberships, d as usePermissions, f as useRoles, i as useAssignableRoles, l as usePermDock, m as useTenant, n as useApproval, o as useFilter, p as useSubject, r as useAssignablePermissions, s as useGate, t as Protected, u as usePermission } from "../protected-
|
|
7
|
-
import { t as PermDockProvider } from "../provider-
|
|
4
|
+
import { a as FilterResult, c as PermissionSet, f as SubjectView, i as ClientStatus, l as PermissionState, n as ApprovalState, o as GateMode, p as TenantView, r as ClientPermDock, s as GateView, t as ApprovalHandle } from "../types-CKV71kKh.js";
|
|
5
|
+
import { n as PermDockProviderProps, r as ProtectedProps, t as PermDockDefaults } from "../types-CQVEQawv.js";
|
|
6
|
+
import { a as useDescribe, c as useMemberships, d as usePermissions, f as useRoles, i as useAssignableRoles, l as usePermDock, m as useTenant, n as useApproval, o as useFilter, p as useSubject, r as useAssignablePermissions, s as useGate, t as Protected, u as usePermission } from "../protected-BwZYL1X_.js";
|
|
7
|
+
import { t as PermDockProvider } from "../provider-Csk-THAn.js";
|
|
8
8
|
export { type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type FilterResult, type GateMode, type GateView, type PermDockDefaults, PermDockProvider, type PermDockProviderProps, type PermissionSet, type PermissionState, Protected, type ProtectedProps, type SubjectView, type TenantView, approvalHeaders, describe, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useDescribe, useFilter, useGate, useMemberships, usePermDock, usePermission, usePermissions, useRoles, useSubject, useTenant };
|
package/dist/react/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { r as requiredPlans } from "../problem-details-cn5X30gZ.js";
|
|
3
|
-
import { t as describe } from "../describe-
|
|
3
|
+
import { t as describe } from "../describe-DZlnEtLy.js";
|
|
4
4
|
import { t as approvalHeaders } from "../headers-BIjfMaoC.js";
|
|
5
|
-
import { a as useDescribe, c as useMemberships, d as usePermissions, f as useRoles, i as useAssignableRoles, l as usePermDock, m as useTenant, n as useApproval, o as useFilter, p as useSubject, r as useAssignablePermissions, s as useGate, t as Protected, u as usePermission } from "../protected-
|
|
6
|
-
import { t as PermDockProvider } from "../provider-
|
|
5
|
+
import { a as useDescribe, c as useMemberships, d as usePermissions, f as useRoles, i as useAssignableRoles, l as usePermDock, m as useTenant, n as useApproval, o as useFilter, p as useSubject, r as useAssignablePermissions, s as useGate, t as Protected, u as usePermission } from "../protected-DXE3cQYg.js";
|
|
6
|
+
import { t as PermDockProvider } from "../provider-BQsTYYy0.js";
|
|
7
7
|
export { PermDockProvider, Protected, approvalHeaders, describe, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useDescribe, useFilter, useGate, useMemberships, usePermDock, usePermission, usePermissions, useRoles, useSubject, useTenant };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as PermDockProvider } from "../provider-
|
|
1
|
+
import { t as PermDockProvider } from "../provider-Csk-THAn.js";
|
|
2
2
|
export { PermDockProvider };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { t as PermDockProvider } from "../provider-
|
|
2
|
+
export { t as PermDockProvider } from "../provider-BQsTYYy0.js";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { Bt as
|
|
2
|
-
import {
|
|
3
|
-
import { n as requiredPlans } from "../problem-details-
|
|
4
|
-
import { i as describe } from "../describe-
|
|
5
|
-
import { t as parseLocalSnapshotManifest } from "../parse-local-manifest-
|
|
1
|
+
import { Bt as LocalMembershipRows, Gt as Snapshot, Ht as LocalRowValue, Rt as Instant, Ut as LocalSnapshotManifest, Vt as LocalRowColumn, Wt as LocalSnapshotRows, or as Membership, ot as SnapshotSource, tr as CustomRole } from "../policy-types-B-F-qAZk.js";
|
|
2
|
+
import { u as Permission } from "../permission-types-DhNEmoRG.js";
|
|
3
|
+
import { n as requiredPlans } from "../problem-details-Tcfmj3bV.js";
|
|
4
|
+
import { i as describe } from "../describe-O0SwYIK8.js";
|
|
5
|
+
import { t as parseLocalSnapshotManifest } from "../parse-local-manifest-e4mdwAKd.js";
|
|
6
6
|
import { t as approvalHeaders } from "../headers-CIbDTUTK.js";
|
|
7
|
-
import { a as FilterResult, c as PermissionSet, f as SubjectView, i as ClientStatus, l as PermissionState, m as ClientStore, n as ApprovalState, o as GateMode, p as TenantView, r as ClientPermDock, s as GateView, t as ApprovalHandle } from "../types-
|
|
8
|
-
import { r as ProtectedProps, t as PermDockDefaults } from "../types-
|
|
9
|
-
import { a as useDescribe, c as useMemberships, d as usePermissions, f as useRoles, i as useAssignableRoles, l as usePermDock, m as useTenant, n as useApproval, o as useFilter, p as useSubject, r as useAssignablePermissions, s as useGate, t as Protected, u as usePermission } from "../protected-
|
|
10
|
-
import { a as SubscribeOnline, i as SubscribeForeground, n as ReactNativePermDockProviderProps, r as SnapshotStorage, t as NativeRevalidate } from "../types-
|
|
7
|
+
import { a as FilterResult, c as PermissionSet, f as SubjectView, i as ClientStatus, l as PermissionState, m as ClientStore, n as ApprovalState, o as GateMode, p as TenantView, r as ClientPermDock, s as GateView, t as ApprovalHandle } from "../types-CKV71kKh.js";
|
|
8
|
+
import { r as ProtectedProps, t as PermDockDefaults } from "../types-CQVEQawv.js";
|
|
9
|
+
import { a as useDescribe, c as useMemberships, d as usePermissions, f as useRoles, i as useAssignableRoles, l as usePermDock, m as useTenant, n as useApproval, o as useFilter, p as useSubject, r as useAssignablePermissions, s as useGate, t as Protected, u as usePermission } from "../protected-BwZYL1X_.js";
|
|
10
|
+
import { a as SubscribeOnline, i as SubscribeForeground, n as ReactNativePermDockProviderProps, r as SnapshotStorage, t as NativeRevalidate } from "../types-CeIscIKp.js";
|
|
11
11
|
import { ReactElement } from "react";
|
|
12
12
|
//#region src/react-native/guards.d.ts
|
|
13
13
|
/** `true` once the provider has a snapshot to answer from: storage was read or a seed was given. Hide the splash screen on it. */
|
|
@@ -77,10 +77,24 @@ type PowerSyncSourceOptions<Q extends string> = {
|
|
|
77
77
|
readonly queries: Readonly<Record<Q, PowerSyncQuery>>;
|
|
78
78
|
/** Maps the rows of each query to the signed-in user's memberships and roles. */
|
|
79
79
|
readonly read: (rows: Readonly<Record<Q, readonly unknown[]>>) => LocalSnapshotData;
|
|
80
|
+
} | {
|
|
81
|
+
/** The manifest `permdock powersync generate` writes, with its `rows` section. */
|
|
82
|
+
readonly manifest: LocalSnapshotManifest;
|
|
83
|
+
/** The signed-in user's id; the source reads the rows `manifest.rows` names. */
|
|
84
|
+
readonly user: string;
|
|
85
|
+
/** The active tenant: the first scope's instance the UI shows. */
|
|
86
|
+
readonly tenant?: string;
|
|
87
|
+
/** Attributes conditions read, such as `claims` for `principal.claims.team_ids`. */
|
|
88
|
+
readonly attributes?: Readonly<Record<string, unknown>>;
|
|
89
|
+
readonly queries?: undefined;
|
|
90
|
+
readonly read?: undefined;
|
|
80
91
|
};
|
|
81
92
|
/**
|
|
82
93
|
* A `localSnapshot` source over a PowerSync database: `get` runs every query
|
|
83
|
-
* with `db.getAll`, and a `db.watch` per query reports changes.
|
|
94
|
+
* with `db.getAll`, and a `db.watch` per query reports changes. Without
|
|
95
|
+
* `queries` and `read`, it reads the tables `manifest.rows` names: the
|
|
96
|
+
* memberships of every source with null roles dropped, the global roles and
|
|
97
|
+
* the custom roles with their levels. A watch
|
|
84
98
|
* result with unchanged content re-renders nothing (`connectSource`). The source
|
|
85
99
|
* takes the database as an argument; `permdock/react-native` never imports
|
|
86
100
|
* `@powersync/*`.
|
|
@@ -156,4 +170,4 @@ type NativeStoreOptions = Omit<ReactNativePermDockProviderProps, "children" | "h
|
|
|
156
170
|
export declare function connectSource(store: ClientStore, source: SnapshotSource, subscribeForeground?: SubscribeForeground): () => void;
|
|
157
171
|
export declare function nativeStore(options: NativeStoreOptions): ClientStore;
|
|
158
172
|
//#endregion
|
|
159
|
-
export { type AppStateModule, type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type FilterResult, type GateMode, type GateView, type LocalSnapshotData, type LocalSnapshotManifest, type LocalSnapshotOptions, type MmkvInstance, type NativeRevalidate, type NetInfoModule, type PermDockDefaults, type PermissionSet, type PermissionState, type PowerSyncQuery, type PowerSyncSourceOptions, type PowerSyncWatchable, Protected, type ProtectedProps, type ReactNativePermDockProviderProps, type SecureStoreModule, type SnapshotSource, type SnapshotStorage, type SubjectView, type SubscribeForeground, type SubscribeOnline, type TenantView, approvalHeaders, describe, parseLocalSnapshotManifest, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useDescribe, useFilter, useGate, useMemberships, usePermDock, usePermission, usePermissions, useRoles, useSubject, useTenant };
|
|
173
|
+
export { type AppStateModule, type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type FilterResult, type GateMode, type GateView, type LocalMembershipRows, type LocalRowColumn, type LocalRowValue, type LocalSnapshotData, type LocalSnapshotManifest, type LocalSnapshotOptions, type LocalSnapshotRows, type MmkvInstance, type NativeRevalidate, type NetInfoModule, type PermDockDefaults, type PermissionSet, type PermissionState, type PowerSyncQuery, type PowerSyncSourceOptions, type PowerSyncWatchable, Protected, type ProtectedProps, type ReactNativePermDockProviderProps, type SecureStoreModule, type SnapshotSource, type SnapshotStorage, type SubjectView, type SubscribeForeground, type SubscribeOnline, type TenantView, approvalHeaders, describe, parseLocalSnapshotManifest, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useDescribe, useFilter, useGate, useMemberships, usePermDock, usePermission, usePermissions, useRoles, useSubject, useTenant };
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as compact } from "../compact-CAf557ZB.js";
|
|
2
|
+
import { r as isRecord, t as compact } from "../compact-CAf557ZB.js";
|
|
3
3
|
import { n as freezeDeep } from "../freeze-CrU8nQeX.js";
|
|
4
4
|
import { r as requiredPlans } from "../problem-details-cn5X30gZ.js";
|
|
5
|
-
import { t as describe } from "../describe-
|
|
5
|
+
import { t as describe } from "../describe-DZlnEtLy.js";
|
|
6
6
|
import { n as isThenable } from "../thenable-yD7SabqG.js";
|
|
7
7
|
import { h as secondsAt, m as rfc3339 } from "../time-DkWjdL98.js";
|
|
8
|
-
import {
|
|
9
|
-
import { o as flattenGrantee } from "../grantee-
|
|
10
|
-
import { d as resolveActiveTenant } from "../tenancy-
|
|
11
|
-
import { i as bindConditionRefs, n as parseSnapshot } from "../snapshot-
|
|
12
|
-
import { r as heldRoleNames, t as emptySnapshot } from "../from-snapshot-
|
|
13
|
-
import { t as parseLocalSnapshotManifest } from "../parse-local-manifest-
|
|
8
|
+
import { f as scopeList, h as tenantOf$1, o as normalizeMemberships, s as resolveScope } from "../scopes-BHsc-wp-.js";
|
|
9
|
+
import { o as flattenGrantee } from "../grantee-BrRANrpT.js";
|
|
10
|
+
import { d as resolveActiveTenant } from "../tenancy-CmeBQ6Nv.js";
|
|
11
|
+
import { i as bindConditionRefs, n as parseSnapshot } from "../snapshot-CbGmYiJx.js";
|
|
12
|
+
import { r as heldRoleNames, t as emptySnapshot } from "../from-snapshot-Bz469dIh.js";
|
|
13
|
+
import { t as parseLocalSnapshotManifest } from "../parse-local-manifest-T1Q8X3A2.js";
|
|
14
14
|
import { t as approvalHeaders } from "../headers-BIjfMaoC.js";
|
|
15
|
-
import { n as storeOf, r as isJws, t as adapterStore } from "../store-options-
|
|
15
|
+
import { n as storeOf, r as isJws, t as adapterStore } from "../store-options-B_poyYvg.js";
|
|
16
16
|
import { a as PermDockUiContext, i as PermDockStoreContext, n as useKeyed, t as useLiveOptions } from "../live-options-BaAFCIiu.js";
|
|
17
|
-
import { a as useDescribe, c as useMemberships, d as usePermissions, f as useRoles, i as useAssignableRoles, l as usePermDock, m as useTenant, n as useApproval, o as useFilter, p as useSubject, r as useAssignablePermissions, s as useGate, t as Protected, u as usePermission } from "../protected-
|
|
17
|
+
import { a as useDescribe, c as useMemberships, d as usePermissions, f as useRoles, i as useAssignableRoles, l as usePermDock, m as useTenant, n as useApproval, o as useFilter, p as useSubject, r as useAssignablePermissions, s as useGate, t as Protected, u as usePermission } from "../protected-DXE3cQYg.js";
|
|
18
18
|
import { useEffect, useMemo, useRef } from "react";
|
|
19
19
|
import { jsx } from "react/jsx-runtime";
|
|
20
20
|
//#region src/react-native/guards.ts
|
|
@@ -216,33 +216,221 @@ function localSnapshot(options) {
|
|
|
216
216
|
});
|
|
217
217
|
}
|
|
218
218
|
//#endregion
|
|
219
|
+
//#region src/react-native/powersync-rows.ts
|
|
220
|
+
function isColumns(roles) {
|
|
221
|
+
return Array.isArray(roles);
|
|
222
|
+
}
|
|
223
|
+
function quoted(name) {
|
|
224
|
+
return `"${name.replaceAll("\"", "\"\"")}"`;
|
|
225
|
+
}
|
|
226
|
+
/** The synced tables `rows` names, each read whole: the subject streams sync only the user's own rows. */
|
|
227
|
+
function rowTables(rows) {
|
|
228
|
+
const tables = /* @__PURE__ */ new Set();
|
|
229
|
+
const column = (item) => {
|
|
230
|
+
if ("through" in item) tables.add(item.through.table);
|
|
231
|
+
};
|
|
232
|
+
for (const source of rows.memberships) {
|
|
233
|
+
tables.add(source.table);
|
|
234
|
+
column(source.user);
|
|
235
|
+
if (isColumns(source.roles)) for (const item of source.roles) column(item);
|
|
236
|
+
}
|
|
237
|
+
if (rows.roles !== void 0) {
|
|
238
|
+
tables.add(rows.roles.table);
|
|
239
|
+
for (const item of rows.roles.roles) column(item);
|
|
240
|
+
}
|
|
241
|
+
if (rows.customRoles !== void 0) {
|
|
242
|
+
tables.add(rows.customRoles.permissions);
|
|
243
|
+
tables.add(rows.customRoles.includes);
|
|
244
|
+
}
|
|
245
|
+
return [...tables];
|
|
246
|
+
}
|
|
247
|
+
function rowQuery(table) {
|
|
248
|
+
return `SELECT * FROM ${quoted(table)}`;
|
|
249
|
+
}
|
|
250
|
+
function text(value) {
|
|
251
|
+
if (typeof value === "string") return value === "" ? void 0 : value;
|
|
252
|
+
return typeof value === "number" || typeof value === "bigint" ? String(value) : void 0;
|
|
253
|
+
}
|
|
254
|
+
function isSet(row, column) {
|
|
255
|
+
const value = column === void 0 ? void 0 : row[column];
|
|
256
|
+
return value !== void 0 && value !== null;
|
|
257
|
+
}
|
|
258
|
+
function rowsOf(tables, table) {
|
|
259
|
+
return (tables[table] ?? []).filter(isRecord);
|
|
260
|
+
}
|
|
261
|
+
/** The value a column holds, read through its referenced table or map; `undefined` for none. */
|
|
262
|
+
function columnValue(row, column, tables) {
|
|
263
|
+
const raw = text(row[column.column]);
|
|
264
|
+
if (raw === void 0) return;
|
|
265
|
+
if ("through" in column) {
|
|
266
|
+
const { through } = column;
|
|
267
|
+
const target = rowsOf(tables, through.table).find((item) => text(item[through.id]) === raw);
|
|
268
|
+
return target === void 0 ? void 0 : text(target[through.column]);
|
|
269
|
+
}
|
|
270
|
+
if ("map" in column) return Object.hasOwn(column.map, raw) ? column.map[raw] ?? void 0 : void 0;
|
|
271
|
+
return raw;
|
|
272
|
+
}
|
|
273
|
+
function membershipsOf(source, tables, user) {
|
|
274
|
+
const byInstance = /* @__PURE__ */ new Map();
|
|
275
|
+
for (const row of rowsOf(tables, source.table)) {
|
|
276
|
+
if (columnValue(row, source.user, tables) !== user || isSet(row, source.expiresAt) || isSet(row, source.disabledAt)) continue;
|
|
277
|
+
const scope = "value" in source.scope ? source.scope.value : text(row[source.scope.column]);
|
|
278
|
+
const id = text(row[source.id]);
|
|
279
|
+
const via = source.via === void 0 ? void 0 : "value" in source.via ? source.via.value : text(row[source.via.column]);
|
|
280
|
+
const roles = isColumns(source.roles) ? source.roles.flatMap((column) => {
|
|
281
|
+
const key = columnValue(row, column, tables);
|
|
282
|
+
return key === void 0 ? [] : [key];
|
|
283
|
+
}) : source.roles.value;
|
|
284
|
+
if (scope === void 0 || id === void 0 || roles.length === 0) continue;
|
|
285
|
+
const key = JSON.stringify([
|
|
286
|
+
scope,
|
|
287
|
+
id,
|
|
288
|
+
via ?? null
|
|
289
|
+
]);
|
|
290
|
+
const entry = byInstance.get(key) ?? {
|
|
291
|
+
scope,
|
|
292
|
+
id,
|
|
293
|
+
via,
|
|
294
|
+
roles: /* @__PURE__ */ new Set()
|
|
295
|
+
};
|
|
296
|
+
for (const role of roles) entry.roles.add(role);
|
|
297
|
+
byInstance.set(key, entry);
|
|
298
|
+
}
|
|
299
|
+
return [...byInstance.values()].map((entry) => compact({
|
|
300
|
+
scope: entry.scope,
|
|
301
|
+
id: entry.id,
|
|
302
|
+
roles: [...entry.roles].toSorted(),
|
|
303
|
+
via: entry.via
|
|
304
|
+
}));
|
|
305
|
+
}
|
|
306
|
+
function roleKeyOf(row) {
|
|
307
|
+
const name = text(row["role"]);
|
|
308
|
+
const scope = text(row["scope"]);
|
|
309
|
+
return name === void 0 || scope === void 0 ? void 0 : {
|
|
310
|
+
tenant: text(row["tenant_id"]),
|
|
311
|
+
scope,
|
|
312
|
+
id: text(row["scope_id"]),
|
|
313
|
+
name
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
function customRoleOf({ key, grants, includes }) {
|
|
317
|
+
const body = {
|
|
318
|
+
name: key.name,
|
|
319
|
+
grants,
|
|
320
|
+
includes
|
|
321
|
+
};
|
|
322
|
+
if (key.scope === "global") return {
|
|
323
|
+
...body,
|
|
324
|
+
scope: "global"
|
|
325
|
+
};
|
|
326
|
+
if (key.tenant === void 0) return {
|
|
327
|
+
...body,
|
|
328
|
+
shared: true,
|
|
329
|
+
scope: key.scope
|
|
330
|
+
};
|
|
331
|
+
return compact({
|
|
332
|
+
...body,
|
|
333
|
+
tenant: key.tenant,
|
|
334
|
+
scope: key.scope,
|
|
335
|
+
id: key.id
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
/** Custom roles from the custom-role rows: a tenant role, a shared role (no tenant) or a global role. */
|
|
339
|
+
function customRolesOf(permissions, includes) {
|
|
340
|
+
const roles = /* @__PURE__ */ new Map();
|
|
341
|
+
const entry = (key) => {
|
|
342
|
+
const id = JSON.stringify([
|
|
343
|
+
key.tenant ?? null,
|
|
344
|
+
key.scope,
|
|
345
|
+
key.id ?? null,
|
|
346
|
+
key.name
|
|
347
|
+
]);
|
|
348
|
+
const found = roles.get(id) ?? {
|
|
349
|
+
key,
|
|
350
|
+
grants: [],
|
|
351
|
+
includes: []
|
|
352
|
+
};
|
|
353
|
+
roles.set(id, found);
|
|
354
|
+
return found;
|
|
355
|
+
};
|
|
356
|
+
for (const row of permissions) {
|
|
357
|
+
const key = roleKeyOf(row);
|
|
358
|
+
const permission = text(row["permission"]);
|
|
359
|
+
const effect = row["effect"] === "deny" ? "deny" : "allow";
|
|
360
|
+
const level = text(row["level"]);
|
|
361
|
+
if (key !== void 0 && permission !== void 0) entry(key).grants.push(compact({
|
|
362
|
+
permission,
|
|
363
|
+
effect,
|
|
364
|
+
level
|
|
365
|
+
}));
|
|
366
|
+
}
|
|
367
|
+
for (const row of includes) {
|
|
368
|
+
const key = roleKeyOf(row);
|
|
369
|
+
const include = text(row["include_role"]);
|
|
370
|
+
if (key !== void 0 && include !== void 0) entry(key).includes.push(include);
|
|
371
|
+
}
|
|
372
|
+
return [...roles.values()].map(customRoleOf);
|
|
373
|
+
}
|
|
374
|
+
/** The user's memberships, global roles and custom roles from the rows of the tables `rows` names. */
|
|
375
|
+
function readRows(rows, tables, principal) {
|
|
376
|
+
const { id: user, tenant, attributes } = principal;
|
|
377
|
+
const memberships = rows.memberships.flatMap((source) => membershipsOf(source, tables, user));
|
|
378
|
+
const global = rows.roles;
|
|
379
|
+
const roles = global === void 0 ? [] : rowsOf(tables, global.table).flatMap((row) => text(row[global.user]) === user ? global.roles.flatMap((column) => {
|
|
380
|
+
const key = columnValue(row, column, tables);
|
|
381
|
+
return key === void 0 ? [] : [key];
|
|
382
|
+
}) : []);
|
|
383
|
+
const custom = rows.customRoles;
|
|
384
|
+
return {
|
|
385
|
+
principal: {
|
|
386
|
+
id: user,
|
|
387
|
+
roles: [...new Set(roles)].toSorted(),
|
|
388
|
+
memberships,
|
|
389
|
+
...tenant === void 0 ? {} : { tenant },
|
|
390
|
+
...attributes === void 0 ? {} : { attributes }
|
|
391
|
+
},
|
|
392
|
+
...custom === void 0 ? {} : { customRoles: customRolesOf(rowsOf(tables, custom.permissions), rowsOf(tables, custom.includes)) }
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
//#endregion
|
|
219
396
|
//#region src/react-native/powersync.ts
|
|
397
|
+
function planOf(options) {
|
|
398
|
+
if (!("user" in options)) return options;
|
|
399
|
+
const { rows } = options.manifest;
|
|
400
|
+
if (rows === void 0) throw new TypeError("PermDock: powerSyncSource needs queries and read, or a manifest with rows (run permdock powersync generate with powersync.manifest)");
|
|
401
|
+
const principal = compact({
|
|
402
|
+
id: options.user,
|
|
403
|
+
tenant: options.tenant,
|
|
404
|
+
attributes: options.attributes
|
|
405
|
+
});
|
|
406
|
+
return {
|
|
407
|
+
queries: Object.fromEntries(rowTables(rows).map((table) => [table, { sql: rowQuery(table) }])),
|
|
408
|
+
read: (tables) => readRows(rows, tables, principal)
|
|
409
|
+
};
|
|
410
|
+
}
|
|
220
411
|
/**
|
|
221
412
|
* A `localSnapshot` source over a PowerSync database: `get` runs every query
|
|
222
|
-
* with `db.getAll`, and a `db.watch` per query reports changes.
|
|
413
|
+
* with `db.getAll`, and a `db.watch` per query reports changes. Without
|
|
414
|
+
* `queries` and `read`, it reads the tables `manifest.rows` names: the
|
|
415
|
+
* memberships of every source with null roles dropped, the global roles and
|
|
416
|
+
* the custom roles with their levels. A watch
|
|
223
417
|
* result with unchanged content re-renders nothing (`connectSource`). The source
|
|
224
418
|
* takes the database as an argument; `permdock/react-native` never imports
|
|
225
419
|
* `@powersync/*`.
|
|
226
420
|
*/
|
|
227
421
|
function powerSyncSource(db, options) {
|
|
228
|
-
const
|
|
422
|
+
const plan = planOf(options);
|
|
229
423
|
return localSnapshot({
|
|
230
424
|
manifest: options.manifest,
|
|
231
425
|
read: async () => {
|
|
232
|
-
const results = await Promise.all(
|
|
233
|
-
const query = options.queries[name];
|
|
426
|
+
const results = await Promise.all(Object.entries(plan.queries).map(async ([name, query]) => {
|
|
234
427
|
return [name, await db.getAll(query.sql, [...query.parameters ?? []])];
|
|
235
428
|
}));
|
|
236
|
-
|
|
237
|
-
for (const [name, list] of results) rows[name] = list;
|
|
238
|
-
return options.read(rows);
|
|
429
|
+
return plan.read(Object.fromEntries(results));
|
|
239
430
|
},
|
|
240
431
|
subscribe: (listener) => {
|
|
241
432
|
const controller = new AbortController();
|
|
242
|
-
for (const
|
|
243
|
-
const query = options.queries[name];
|
|
244
|
-
db.watch(query.sql, [...query.parameters ?? []], { onResult: listener }, { signal: controller.signal });
|
|
245
|
-
}
|
|
433
|
+
for (const query of Object.values(plan.queries)) db.watch(query.sql, [...query.parameters ?? []], { onResult: listener }, { signal: controller.signal });
|
|
246
434
|
return () => {
|
|
247
435
|
controller.abort();
|
|
248
436
|
};
|
|
@@ -68,6 +68,20 @@ function createRef(path) {
|
|
|
68
68
|
}
|
|
69
69
|
const principal = createRef("principal");
|
|
70
70
|
const context = createRef("context");
|
|
71
|
+
/**
|
|
72
|
+
* `principal.claims.<path>` for a dot path such as `team_ids` or
|
|
73
|
+
* `attrs.region`, typed `SubjectRef` under `noUncheckedIndexedAccess` and
|
|
74
|
+
* `noPropertyAccessFromIndexSignature`.
|
|
75
|
+
*/
|
|
76
|
+
function claim(path) {
|
|
77
|
+
const segments = splitPath(path);
|
|
78
|
+
if (segments.length === 0) throw new Error("PermDock: claim() needs a claim path");
|
|
79
|
+
return createRef([
|
|
80
|
+
"principal",
|
|
81
|
+
"claims",
|
|
82
|
+
...segments
|
|
83
|
+
].join("."));
|
|
84
|
+
}
|
|
71
85
|
function isSubjectRef(value) {
|
|
72
86
|
if (value === null || typeof value !== "object" || !("ref" in value) || typeof value.ref !== "string") return false;
|
|
73
87
|
const ref = value.ref;
|
|
@@ -88,4 +102,4 @@ function resolveConditionRef(ref, resolved) {
|
|
|
88
102
|
}
|
|
89
103
|
}
|
|
90
104
|
//#endregion
|
|
91
|
-
export {
|
|
105
|
+
export { resolveConditionRef as a, isConditionDate as c, parentHop as d, principal as i, isConditionRef as l, context as n, hasConditionOp as o, isSubjectRef as r, isCondition as s, claim as t, isSqlFunctionField as u };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as assertAppData } from "./app-data-MuyzVqX8.js";
|
|
2
|
-
import { n as wrapPermDock } from "./wrap-
|
|
3
|
-
import { t as buildInstance } from "./build-instance-
|
|
2
|
+
import { n as wrapPermDock } from "./wrap-CiSc_KCq.js";
|
|
3
|
+
import { t as buildInstance } from "./build-instance-DxE7czo9.js";
|
|
4
4
|
//#region src/core/request-context.ts
|
|
5
5
|
/**
|
|
6
6
|
* Errors an adapter raises around one instance (a `context` hook that threw,
|
package/dist/resend/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { q as DecisionSink } from "../policy-types-
|
|
2
|
-
import { n as ApprovalUrl, t as ApprovalPrompt } from "../approval-prompt-
|
|
3
|
-
import { d as EmailTransport, o as DeliveryResult, u as EmailMessage } from "../types-
|
|
4
|
-
import { l as ReplayStore } from "../types-
|
|
1
|
+
import { q as DecisionSink } from "../policy-types-B-F-qAZk.js";
|
|
2
|
+
import { n as ApprovalUrl, t as ApprovalPrompt } from "../approval-prompt-K0faOLFp.js";
|
|
3
|
+
import { d as EmailTransport, o as DeliveryResult, u as EmailMessage } from "../types-g7Oy6Zg4.js";
|
|
4
|
+
import { l as ReplayStore } from "../types-cTos-H7p.js";
|
|
5
5
|
//#region src/resend/approval-email.d.ts
|
|
6
6
|
type ApprovalEmailOptions = {
|
|
7
7
|
/** The app's approval page: a base the request id is appended to, or a function of the prompt. Must be https. */
|