permdock 0.7.0 → 0.9.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 -3
- package/dist/a2a/index.d.ts +7 -7
- package/dist/a2a/index.js +8 -8
- package/dist/action-result-BcudBQOF.d.ts +19 -0
- package/dist/{adapter-context-CRhqyzCk.js → adapter-context-CIQpQxbE.js} +8 -2
- package/dist/{adoption-scan-D-feE7BE.js → adoption-scan-Ch07MdxN.js} +5 -5
- package/dist/agent/index.d.ts +2 -2
- package/dist/agent/index.js +1 -1
- package/dist/ai-sdk/index.d.ts +19 -13
- package/dist/ai-sdk/index.js +6 -6
- package/dist/{app-data-MuyzVqX8.js → app-data-UNNm07jV.js} +10 -7
- package/dist/{approval-header-CJACtHkv.js → approval-header-8QV6MU4H.js} +6 -3
- package/dist/{approval-prompt-K0faOLFp.d.ts → approval-prompt-3BqWczTt.d.ts} +13 -11
- package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
- package/dist/approvals/index.d.ts +4 -4
- package/dist/approvals/index.js +6 -6
- package/dist/{approvals-CMRfsbBh.js → approvals-DnIBTuXE.js} +66 -42
- package/dist/{approvers-CqPOLD-o.js → approvers-B4r0N_Uz.js} +8 -2
- package/dist/{arazzo-ClrF3PVb.js → arazzo-BpS7LnV0.js} +2 -2
- package/dist/{arazzo-rdeJ8n1J.js → arazzo-CmQaGPkM.js} +6 -6
- package/dist/{args-CC3OwyHW.js → args-0FrVs5EH.js} +14 -7
- package/dist/astro/index.d.ts +30 -12
- package/dist/astro/index.js +2 -2
- package/dist/{audience-BrMs8c4o.js → audience-DTjR8xet.js} +8 -8
- package/dist/{auth-CscUX8Sy.js → auth--yPyZNgr.js} +19 -7
- package/dist/authzen/index.d.ts +34 -28
- package/dist/authzen/index.js +23 -20
- package/dist/{automation-DOtAFWdy.d.ts → automation-C6Jg75xq.d.ts} +42 -32
- package/dist/{automation-ySsxp_Yp.js → automation-x3KEUusw.js} +22 -21
- package/dist/better-auth/index.d.ts +2 -2
- package/dist/better-auth/index.js +13 -7
- package/dist/better-supabase/index.d.ts +357 -227
- package/dist/better-supabase/index.js +219 -140
- package/dist/{bind-D1nO6fiC.js → bind-BNQA9JK9.js} +26 -10
- package/dist/{bind-JDuvxjuW.d.ts → bind-YYjvfpB9.d.ts} +32 -12
- package/dist/{body-CH5of8Ne.js → body-CJQwYVa8.js} +3 -3
- package/dist/{body-text-QcXok_SI.js → body-text-DQhcmqdY.js} +8 -4
- package/dist/{boundary-BM8a_P6E.js → boundary-BV3O1eud.js} +8 -2
- package/dist/{boundary-BmHxVH1J.d.ts → boundary-C9ck-3uK.d.ts} +13 -4
- package/dist/{budget-NbEtbJC_.js → budget-BELja5A9.js} +6 -3
- package/dist/{budget-JqcRqyhK.d.ts → budget-hYsPz_yE.d.ts} +6 -3
- package/dist/{build-instance-DxE7czo9.js → build-instance-BWXqwQYU.js} +3 -3
- package/dist/{capability-L7NnfhiE.js → capability-BqX94r07.js} +31 -25
- package/dist/{capability-D4UC9TTW.d.ts → capability-Di9tiUvi.d.ts} +41 -29
- package/dist/{casbin-BHijLuHY.js → casbin-B7_yS-oo.js} +2 -2
- package/dist/{casbin-BW9pS47J.js → casbin-bHyIxTNQ.js} +16 -8
- package/dist/{casl-CmJlgziS.js → casl-C4OINZHI.js} +2 -2
- package/dist/{casl-UbI8v-Wq.js → casl-CHHoCldP.js} +19 -10
- package/dist/catalog/index.d.ts +51 -30
- package/dist/catalog/index.js +18 -15
- package/dist/{catalog-D69WhFii.js → catalog-CGlSwU6j.js} +20 -19
- package/dist/catalog-D3oS2GH3.js +1 -0
- package/dist/{catalog-BaMQfQ6Y.js → catalog-amPDr0JQ.js} +3 -3
- package/dist/{catalog-doc-CV9s6B1S.js → catalog-doc-DjMKzJp9.js} +28 -14
- package/dist/{catalog-fingerprint-C144oW4M.js → catalog-fingerprint-e6aCWosn.js} +18 -14
- package/dist/catalog-operations-DeHTrJSV.js +60 -0
- package/dist/{challenge-nGWma08S.js → challenge-DImNcR7B.js} +48 -27
- package/dist/chat/index.d.ts +1 -1
- package/dist/chat/index.js +13 -10
- package/dist/chat-sdk/index.d.ts +44 -26
- package/dist/chat-sdk/index.js +17 -17
- package/dist/{checks-BC_0mPIq.js → checks-CGkP3Z7A.js} +4 -1
- package/dist/{claims-map-7oQ3ue4X.js → claims-map-CKkoAAYF.js} +5 -2
- package/dist/{claims-map-Ca-QX8C6.d.ts → claims-map-D1Pb5oRq.d.ts} +8 -5
- package/dist/claude-agent/index.d.ts +6 -6
- package/dist/claude-agent/index.js +6 -3
- package/dist/clerk/index.d.ts +11 -7
- package/dist/clerk/index.js +6 -6
- package/dist/cli/bin.js +4 -4
- package/dist/cli/index.d.ts +82 -7
- package/dist/cli/index.js +6 -6
- package/dist/{clients-C7zLFuWT.d.ts → clients-C_NOET3z.d.ts} +5 -5
- package/dist/{clients-DjU5ABMy.js → clients-DYr3U86j.js} +3 -3
- package/dist/cloud/index.d.ts +84 -52
- package/dist/cloud/index.js +53 -39
- package/dist/{cloud-CO8pYtwr.js → cloud-3kWfjnYy.js} +4 -5
- package/dist/{codemod-BP6n8N9L.js → codemod-Bv5i-Mzo.js} +523 -201
- package/dist/{codemod-i4N2BhDc.js → codemod-D9Aiii1r.js} +3 -4
- package/dist/{collect-DNm3oKOk.js → collect-B80GYEot.js} +4 -5
- package/dist/collect-D-eroIfV.js +1 -0
- package/dist/{collect-BaWeMjwV.js → collect-WCl8cJQV.js} +26 -63
- package/dist/{compare-pfyVnBjE.js → compare-DTfyUunF.js} +2 -2
- package/dist/compile/index.d.ts +2 -2
- package/dist/compile/index.js +1 -1
- package/dist/{compile-COM2VKuN.d.ts → compile-BEklRUYo.d.ts} +36 -12
- package/dist/{compile-BAEO5bOk.js → compile-EzEMB-7v.js} +77 -33
- package/dist/{completion-BNdVf7X2.js → completion-_bc0OUQ-.js} +17 -8
- package/dist/config-BwPBfN0t.js +108 -0
- package/dist/{config-DGZzMV1B.js → config-D5XrLWpk.js} +2 -2
- package/dist/{config-report-Cm7UITNA.js → config-report-BmWIskD7.js} +9 -6
- package/dist/config-shape-ykV0Vm2n.js +134 -0
- package/dist/{connection-DjhIJSs2.js → connection-B72dg5Q2.js} +23 -22
- package/dist/{connector-schema-_VCSsdtD.js → connector-schema-CYLQNMYq.js} +3 -2
- package/dist/{context--uM9V3Ui.js → context-BnIzxTNE.js} +4 -3
- package/dist/convex/index.d.ts +13 -7
- package/dist/convex/index.js +9 -6
- package/dist/{core-CQkE8Esr.d.ts → core-CFepFiDP.d.ts} +49 -22
- package/dist/{core-B5-w6Kw9.js → core-DzVINFbU.js} +26 -20
- package/dist/{create-Cb86Z8Im.js → create-6EwRQlig.js} +10 -7
- package/dist/{create-DJrlhEp9.js → create-BLPKnJKa.js} +35 -25
- package/dist/{create-UTnUVETj.d.ts → create-BPUopdfL.d.ts} +70 -37
- package/dist/{create-QHuuPw3q.d.ts → create-BamXmeob.d.ts} +37 -29
- package/dist/{create-B2-CQqCI.d.ts → create-DBvUsgzK.d.ts} +49 -28
- package/dist/{credential-CIM7wHwA.js → credential-CyyyvCsL.js} +41 -38
- package/dist/{credentials-BpuTwd7a.js → credentials-CdDxp7jN.js} +6 -6
- package/dist/{deciding-columns-DRo2QM6E.js → deciding-columns-NB4wcyBf.js} +2 -2
- package/dist/{delegation-C5rOdTp5.js → delegation-CDB6_keF.js} +31 -22
- package/dist/delivery/index.d.ts +4 -4
- package/dist/delivery/index.js +5 -5
- package/dist/{delivery-rwOKLWRm.js → delivery-BupfvJIV.js} +34 -22
- package/dist/{delivery-event-xX4obB8F.js → delivery-event-JioK5YbS.js} +6 -6
- package/dist/denied-text-DHldhVUv.d.ts +22 -0
- package/dist/{describe-DZlnEtLy.js → describe-Bb4hGK5d.js} +5 -5
- package/dist/{describe-O0SwYIK8.d.ts → describe-BbFPBSms.d.ts} +5 -5
- package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
- package/dist/{diff-Btr1c1Ow.js → diff-BwR1JdP2.js} +2 -2
- package/dist/{diff-DzT-xD13.js → diff-CQegtBAo.js} +22 -13
- package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
- package/dist/{doctor-BU1szn63.js → doctor-ClRVAtXQ.js} +287 -135
- package/dist/{doctor-BoK_y0KO.js → doctor-LPMYjSqO.js} +4 -4
- package/dist/drizzle/index.d.ts +33 -19
- package/dist/drizzle/index.js +17 -9
- package/dist/elysia/index.d.ts +17 -11
- package/dist/elysia/index.js +5 -5
- package/dist/{errors-BKy0EfhN.js → errors-B6R_lg2a.js} +13 -4
- package/dist/{errors-B_Qg9D3e.d.ts → errors-BIM4MFsJ.d.ts} +22 -6
- package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
- package/dist/{errors-DpP_U6Bf.js → errors-Vpu6rKHl.js} +13 -10
- package/dist/{evaluate-B_oqFbWC.js → evaluate-BAmf_AQd.js} +153 -82
- package/dist/{evaluations-BCddEOfO.d.ts → evaluations-DOWuBpWv.d.ts} +11 -5
- package/dist/{evaluations-DReoiVBw.js → evaluations-IBceAeKT.js} +40 -19
- package/dist/eve/index.d.ts +9 -6
- package/dist/eve/index.js +4 -4
- package/dist/{event-time-CsegxXxB.js → event-time-BGy48400.js} +8 -4
- package/dist/{expiry-D4_YKRKD.js → expiry-6XByK0dm.js} +8 -5
- package/dist/express/index.d.ts +9 -6
- package/dist/express/index.js +9 -6
- package/dist/fastify/index.d.ts +16 -10
- package/dist/fastify/index.js +8 -5
- package/dist/{fetch-adapter-CuhyYwC1.d.ts → fetch-adapter-BIbBAtPZ.d.ts} +9 -6
- package/dist/{fetch-adapter-De-u6vhJ.js → fetch-adapter-dPTgJVHd.js} +14 -11
- package/dist/fields-D0vUI6dq.js +498 -0
- package/dist/{files-acUbNwWt.js → files-B3AA05f1.js} +8 -5
- package/dist/{files-D_JIzUrP.js → files-BSjrtIHw.js} +11 -4
- package/dist/{fixtures-BTMW6zgU.js → fixtures-A1_sp_tR.js} +15 -6
- package/dist/{flags-aaeRAdiD.js → flags-DXjoTVbS.js} +2 -2
- package/dist/{freeze-CrU8nQeX.js → freeze-jjan0lCv.js} +4 -1
- package/dist/{from-snapshot-Bz469dIh.js → from-snapshot-DCakWRsr.js} +18 -15
- package/dist/gen-BFfzZSLH.js +58 -0
- package/dist/gen-BtfFWGbz.js +827 -0
- package/dist/{generate-3FNO5P5Q.js → generate-CRVV5V7l.js} +14 -8
- package/dist/generate-CezbCaTI.js +275 -0
- package/dist/{grantee-BrRANrpT.js → grantee-Dke-9rd1.js} +4 -4
- package/dist/{grantee-conditions-C6P1Tvol.js → grantee-conditions-BrYPe-w0.js} +12 -12
- package/dist/{grantee-match-0RtHWQDx.js → grantee-match-7RZZvoT_.js} +12 -6
- package/dist/{graph-sql-B-dsAT6j.d.ts → graph-sql-BwFC4Qjs.d.ts} +3 -3
- package/dist/h3/index.d.ts +10 -7
- package/dist/h3/index.js +3 -3
- package/dist/headers-B9jQxjtW.d.ts +10 -0
- package/dist/{helpers-DY3vXuGs.js → helpers-DJicaG6f.js} +40 -28
- package/dist/hono/index.d.ts +16 -10
- package/dist/hono/index.js +5 -5
- package/dist/{hosted-XBgU6RGT.js → hosted-D0IzESu_.js} +42 -21
- package/dist/{hosted-BmjzxQhp.d.ts → hosted-DVxlLZMe.d.ts} +33 -21
- package/dist/{http-ujKm0JXE.js → http-DH94eh6f.js} +4 -4
- package/dist/{http-BBoKefeS.js → http-DKLXrFGk.js} +13 -7
- package/dist/{http-Ca3Sr5x1.js → http-DOL33cO0.js} +11 -8
- package/dist/{import-DB2EG_iy.js → import-ACkOrv6g.js} +6 -6
- package/dist/{import-Bz0GefWg.js → import-CST57XLp.js} +64 -51
- package/dist/{index-CMiPH2Tv.d.ts → index-BinlXeU-.d.ts} +64 -37
- package/dist/{index-BSfRl0hZ.d.ts → index-CV-7DWeD.d.ts} +64 -52
- package/dist/{index-BE8y3moU.d.ts → index-DJwEgYzA.d.ts} +127 -82
- package/dist/{index-DH9DUDEM.d.ts → index-Dj2qF9VC.d.ts} +54 -30
- package/dist/{index-BTkwrK7v.d.ts → index-vYjMrXyK.d.ts} +336 -173
- package/dist/{index-DLwcuCN_.d.ts → index-ymept53A.d.ts} +51 -30
- package/dist/index.d.ts +22 -22
- package/dist/index.js +34 -34
- package/dist/{init-B-4t1NzC.js → init-BjuFDYT1.js} +10 -10
- package/dist/{init-5TXNji88.js → init-txYTuW9u.js} +5 -5
- package/dist/{instance-options-CU0YQCLH.d.ts → instance-options-CoHn-0e8.d.ts} +4 -4
- package/dist/{instance-snapshot-CjcwnEiV.js → instance-snapshot-DuWf1cT3.js} +86 -61
- package/dist/{instant-BluqDvyS.js → instant-DK3Iz83e.js} +2 -2
- package/dist/{internals-Dk8A8fX3.js → internals-B3IgHrvo.js} +6 -3
- package/dist/{json-schema-B-vAwlde.js → json-schema-BPGa-RjQ.js} +9 -3
- package/dist/{json-schema-CN_iLFH2.d.ts → json-schema-BfXgnRNT.d.ts} +4 -4
- package/dist/jwt/index.d.ts +57 -27
- package/dist/jwt/index.js +24 -21
- package/dist/{kernel-DVExUwkp.js → kernel-qv4cr9w8.js} +32 -23
- package/dist/kysely/index.d.ts +49 -33
- package/dist/kysely/index.js +9 -7
- package/dist/{live-options-BaAFCIiu.js → live-options-BBIT68le.js} +2 -2
- package/dist/{load-DxroEzH1.js → load-DjSU5KXO.js} +6 -6
- package/dist/load-Dm0pSYH3.js +1 -0
- package/dist/{login-ClSJh5t5.js → login-CfImTJGb.js} +4 -4
- package/dist/{login-WC9HPJpU.js → login-CgfCTO3F.js} +16 -9
- package/dist/{manifest-Dv6q4i5s.js → manifest-B2QPh19C.js} +49 -38
- package/dist/{manifest-BVhExYhw.d.ts → manifest-CzzWtnAb.d.ts} +126 -31
- package/dist/{manifest-schema-Cv492Qev.js → manifest-schema-2r37XRhD.js} +44 -3
- package/dist/{manifest-B79YuF2T.js → manifest-wg8WkkpD.js} +6 -6
- package/dist/{map-claims-etGIS_Dv.js → map-claims-C-nv08_n.js} +16 -9
- package/dist/{map-error-BQGyDm_M.js → map-error-pasIGqMT.js} +7 -7
- package/dist/{markers-C6joDI3o.js → markers-BeHZ4x9Q.js} +20 -5
- package/dist/mcp/index.d.ts +114 -61
- package/dist/mcp/index.js +70 -40
- package/dist/{migrate-Dodel0IJ.js → migrate-B7oP_sQU.js} +35 -17
- package/dist/module-values-BJTBdo6y.js +107 -0
- package/dist/nest/index.d.ts +23 -13
- package/dist/nest/index.js +18 -11
- package/dist/next/client.d.ts +5 -2
- package/dist/next/client.js +1 -1
- package/dist/next/index.d.ts +79 -26
- package/dist/next/index.js +121 -10
- package/dist/next/plugin.d.ts +1 -1
- package/dist/next/plugin.js +4 -3
- package/dist/node/index.d.ts +5 -5
- package/dist/node/index.js +3 -3
- package/dist/{ocsf-BFp-PZZA.js → ocsf-TcjRBgIs.js} +15 -5
- package/dist/openai/index.d.ts +13 -7
- package/dist/openai/index.js +3 -3
- package/dist/openapi/index.d.ts +51 -30
- package/dist/openapi/index.js +2 -2
- package/dist/{openapi-ztVaux6j.js → openapi-BGeuunWC.js} +23 -14
- package/dist/{openapi-DMocl1bh.js → openapi-BIpw3Mb7.js} +4 -5
- package/dist/{openapi-Ddb4628T.js → openapi-BOsx0xn9.js} +33 -18
- package/dist/{operation-findings-kRcEp8lE.js → operation-findings-CXtFzlKJ.js} +3 -3
- package/dist/{operations-BNLes61x.d.ts → operations-Ci_rT6Uo.d.ts} +10 -7
- package/dist/orpc/index.d.ts +68 -14
- package/dist/orpc/index.js +62 -13
- package/dist/otel/index.d.ts +7 -4
- package/dist/otel/index.js +8 -5
- package/dist/{output-DgSDLrta.js → output-DV5dwOTs.js} +9 -5
- package/dist/output-files-BHOIlrfD.js +1 -0
- package/dist/{output-files-CCMdcFWb.js → output-files-BIQ_9pIs.js} +29 -17
- package/dist/ownership-DA5YdYTm.js +1059 -0
- package/dist/{parse-Ddhz2xf4.js → parse-1_ZheTW5.js} +16 -13
- package/dist/parse-local-manifest-CCmbhnxP.d.ts +10 -0
- package/dist/{parse-local-manifest-T1Q8X3A2.js → parse-local-manifest-DEiCF4ah.js} +19 -7
- package/dist/{parse-request-D_tUXG6M.js → parse-request-CwCZpyjV.js} +7 -8
- package/dist/{paths-DXSHAMIa.js → paths-CUvURzHp.js} +4 -1
- package/dist/pdp/index.d.ts +9 -6
- package/dist/pdp/index.js +20 -13
- package/dist/{peer-DOzzMfZL.js → peer-C9LvBCcb.js} +1 -1
- package/dist/{peer-12Q5I_RH.js → peer-Q0fuZ6hx.js} +9 -3
- package/dist/{permdock-BfWEeMqk.js → permdock-BvjivVb9.js} +200 -140
- package/dist/{permdock-Dco6dyCK.d.ts → permdock-CprAPN3w.d.ts} +260 -129
- package/dist/{permission-registry-DpPtSKNZ.js → permission-registry-B8tYxPIt.js} +23 -10
- package/dist/{permission-types-DhNEmoRG.d.ts → permission-types-CAY-GU7e.d.ts} +127 -41
- package/dist/{permissions-CoqCOfJ3.d.ts → permissions-Bx6UI8n1.d.ts} +6 -3
- package/dist/{permissions-CyH2MV_B.js → permissions-CVXmRILq.js} +3 -3
- package/dist/{permissions-DArULThq.js → permissions-CYcHj_w7.js} +8 -5
- package/dist/pg-DQTqRrou.js +60 -0
- package/dist/{pins-8ILTftC9.js → pins-nqarl3oE.js} +4 -1
- package/dist/{pkce-5h8NgMQJ.js → pkce-CnmmYqUZ.js} +1 -1
- package/dist/{policy-B7dg_yzu.d.ts → policy-BycVKnXv.d.ts} +5 -5
- package/dist/{policy-DaJy4nK4.js → policy-CLQ8__GF.js} +43 -23
- package/dist/{policy-from-catalog-DFWYkNdu.js → policy-from-catalog-CU3An8uP.js} +28 -25
- package/dist/{policy-module-CTlwMvLI.js → policy-module-xym9fnSq.js} +12 -6
- package/dist/{policy-types-B-F-qAZk.d.ts → policy-types-DGIO_gxq.d.ts} +782 -357
- package/dist/{postgres-store-BL9M_CA1.js → postgres-store-DcyrPS-r.js} +43 -16
- package/dist/{postgrest-r5faDIzD.js → postgrest-5Dr3W64L.js} +84 -86
- package/dist/{postgrest-CYacM_u7.d.ts → postgrest-D5nUGm-c.d.ts} +55 -35
- package/dist/powersync-B701tvhE.js +1 -0
- package/dist/{powersync-13odBwiM.js → powersync-Bg8u-JcR.js} +3 -3
- package/dist/{powersync-53ryOZip.js → powersync-CJrT1DSc.js} +127 -69
- package/dist/preset/index.d.ts +38 -28
- package/dist/preset/index.js +1 -1
- package/dist/{preset-CHTbd-DQ.js → preset-BjLzeFpp.js} +56 -32
- package/dist/{principal-source-pHneukrx.js → principal-source-C6N60GtM.js} +10 -10
- package/dist/prisma/index.d.ts +69 -41
- package/dist/prisma/index.js +21 -17
- package/dist/{problem-CTviyH5L.js → problem-BVLHFK33.js} +41 -21
- package/dist/{problem-details-cn5X30gZ.js → problem-details-CLDgX1KV.js} +13 -4
- package/dist/{problem-types-CJ2325SZ.js → problem-types-DSsRfONQ.js} +4 -1
- package/dist/{prompt-DwtVemER.js → prompt-BYc6drYW.js} +4 -1
- package/dist/protected-action-D8x73IGm.d.ts +58 -0
- package/dist/protected-action-DUYqb-Ma.js +80 -0
- package/dist/{protected-DXE3cQYg.js → protected-action-QEA8arRB.js} +48 -14
- package/dist/{provider-BQsTYYy0.js → provider-C55OGXJ7.js} +5 -4
- package/dist/{provider-Csk-THAn.d.ts → provider-DfLeek9O.d.ts} +1 -1
- package/dist/{provider-store-IgqQipCO.js → provider-store-CaTv00tr.js} +13 -9
- package/dist/{pull-CN5OLxrF.js → pull-2nJr0qg_.js} +12 -11
- package/dist/pull-C3EEGzSw.js +1 -0
- package/dist/{push-tVdG8dUL.js → push-Bn-lMEmI.js} +19 -13
- package/dist/{pushed-policy-CmYeSQqq.js → pushed-policy-CDuOL2de.js} +10 -7
- package/dist/{pushed-policy-BbcY9r_4.d.ts → pushed-policy-CryQheKq.d.ts} +12 -6
- package/dist/react/index.d.ts +9 -8
- package/dist/react/index.js +7 -6
- package/dist/react/provider-client.d.ts +1 -1
- package/dist/react/provider-client.js +1 -1
- package/dist/react-native/index.d.ts +94 -55
- package/dist/react-native/index.js +200 -61
- package/dist/{refs-CNJBiTFo.js → refs-C8BKxc_e.js} +2 -2
- package/dist/{relation-walk-3OyDBF0S.js → relation-walk-DK_gkgL7.js} +12 -9
- package/dist/{relations-BnCWnJGI.js → relations-BxvRvDHK.js} +3 -3
- package/dist/{replay-Du1tJjG7.js → replay-BU09ad4L.js} +1 -1
- package/dist/{replay-DCDD_ZfL.d.ts → replay-Bs9Df2fQ.d.ts} +1 -1
- package/dist/{request-context-BykKLmyE.js → request-context-Duzdf0cd.js} +8 -8
- package/dist/{request-schema-CMreVuFM.js → request-schema-DhX7UbfQ.js} +4 -1
- package/dist/resend/index.d.ts +34 -28
- package/dist/resend/index.js +29 -29
- package/dist/resolve-names-ConCSj1y.js +201 -0
- package/dist/{resource-relations-D_jw0BFx.js → resource-relations-8-pCScBO.js} +18 -9
- package/dist/{retire-Wj6dkyDE.js → retire-B2xffQgY.js} +15 -6
- package/dist/{revocations-R07lFBnX.d.ts → revocations-BaUXHM1N.d.ts} +6 -3
- package/dist/{rls-Ck_PocSp.js → rls-Ba9wN0SP.js} +13 -6
- package/dist/{rls-CxBZb4rZ.js → rls-Cx0dtsB7.js} +310 -128
- package/dist/{role-builder-C1VJzvcr.js → role-builder-BK2-T6oD.js} +41 -20
- package/dist/{row-conditions-h2HythXQ.js → row-conditions-BAGHOmVq.js} +4 -3
- package/dist/{rpc-Bk1bE-ch.js → rpc-vHIwyXCp.js} +8 -5
- package/dist/run-Ck22anC2.js +1 -0
- package/dist/{run-uLD2aWuO.js → run-PbRlXTfh.js} +26 -23
- package/dist/{run-ticket-BpNi7BCi.d.ts → run-ticket-B2o2Kxz8.d.ts} +29 -14
- package/dist/{run-ticket-B5d_63Ma.js → run-ticket-Dv7aF7Dk.js} +9 -9
- package/dist/{runtime-Vif3_-zf.js → runtime-BGnrOkVH.js} +5 -2
- package/dist/{saas-Az_Kz-4D.js → saas-DK4V-3Is.js} +42 -29
- package/dist/{scan-DSljDE1Y.js → scan-CRTj6fke.js} +1 -1
- package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
- package/dist/{schema-gIcCx7zM.js → schema-BTsE1WRT.js} +8 -4
- package/dist/scim/index.d.ts +2 -2
- package/dist/scim/index.js +2 -2
- package/dist/{scim-C7JYhySg.js → scim-D8YupzX1.js} +2 -2
- package/dist/{scim-YNieBO1U.js → scim-jJBJ7g1Z.js} +33 -15
- package/dist/{scopes-BHsc-wp-.js → scopes-0Up_UA2t.js} +41 -23
- package/dist/server/index.d.ts +11 -11
- package/dist/server/index.js +12 -12
- package/dist/{server-Bnga6I50.js → server-3cVlTLde.js} +31 -31
- package/dist/{server-types-C4gZUEZy.d.ts → server-types-CyRN0-Cd.d.ts} +88 -46
- package/dist/{sha256-D9ihqmvd.js → sha256-C-4WXKIu.js} +4 -3
- package/dist/{shared-fMKOv8hP.js → shared-Afctg7B0.js} +65 -32
- package/dist/{shared-C8LjUdVU.js → shared-l0oGGetg.js} +9 -6
- package/dist/{signals-D3NcTKUS.js → signals-B1vHR3fN.js} +2 -2
- package/dist/{sink-Cp_Eot9W.d.ts → sink-B5zoUW_O.d.ts} +44 -20
- package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
- package/dist/{skills-g_3BS9NC.js → skills-C9uKfSF5.js} +3 -3
- package/dist/{skills-Dcjw9_1C.js → skills-CQQcuGBi.js} +12 -8
- package/dist/{snapshot-CbGmYiJx.js → snapshot-CXlzi69u.js} +21 -18
- package/dist/{snapshot-cache-Pahd3IYJ.d.ts → snapshot-cache-BjAWkchD.d.ts} +21 -12
- package/dist/{snapshot-cache-DT2Kx1F8.js → snapshot-cache-Bx_4xC_6.js} +14 -11
- package/dist/solid/index.d.ts +55 -16
- package/dist/solid/index.js +46 -12
- package/dist/solid-start/index.d.ts +30 -12
- package/dist/solid-start/index.js +3 -3
- package/dist/{sources-B-zYB4GS.js → sources-CMAM-2A3.js} +46 -27
- package/dist/{sources-DEEuGb8S.d.ts → sources-CWG32C0G.d.ts} +126 -53
- package/dist/{sql-B96movIM.js → sql-0WjxIp9g.js} +28 -7
- package/dist/{sql-CDEPCA0g.d.ts → sql-B80DFdpG.d.ts} +2 -2
- package/dist/{src-DLFrtrrC.js → src-C_pi2Rnh.js} +292 -101
- package/dist/ssf/index.d.ts +3 -3
- package/dist/ssf/index.js +47 -35
- package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
- package/dist/{standard-webhooks-B_qRg0ws.d.ts → standard-webhooks-DOYEuOLx.d.ts} +7 -7
- package/dist/{store-DSP9oGvh.js → store-RNFvaJJv.js} +32 -26
- package/dist/{store-options-B_poyYvg.js → store-options-Dil3lraY.js} +105 -15
- package/dist/stores-DZJvxFIZ.d.ts +59 -0
- package/dist/{stores-BqEuHC05.js → stores-DxZWDXCs.js} +42 -5
- package/dist/{stream-2Vwhl7Er.d.ts → stream-9y9qw51m.d.ts} +4 -3
- package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
- package/dist/{style-Ds1gNm77.js → style-DblOtSga.js} +1 -1
- package/dist/{style-Cqo7-73x.js → style-Ds11Hmk4.js} +2 -1
- package/dist/{subject-settings-CkEwrw3W.js → subject-settings-8sH5HlII.js} +8 -4
- package/dist/{row-check-Dt35czLy.d.ts → subject-settings-vNW8qmUH.d.ts} +30 -18
- package/dist/supabase/index.d.ts +48 -38
- package/dist/supabase/index.js +5 -5
- package/dist/supabase/middleware.d.ts +19 -13
- package/dist/supabase/middleware.js +7 -7
- package/dist/{supabase--0aJdLEd.js → supabase-DnMMg5Fn.js} +79 -35
- package/dist/{supabase-Bqp7iIY2.js → supabase-SBs3MYUE.js} +3 -3
- package/dist/supabase-hook-C0FyEACZ.js +1 -0
- package/dist/{supabase-hook-Dg0SrQWR.js → supabase-hook-CrgU06WH.js} +175 -196
- package/dist/{supautils-MESd81bF.js → supautils-ByezN3b8.js} +385 -219
- package/dist/{support-session-Cna49-3f.js → support-session-BsmPCbz8.js} +21 -21
- package/dist/svelte/PermissionBoundary.svelte +2 -6
- package/dist/svelte/Protected.svelte +2 -8
- package/dist/svelte/index.d.ts +9 -8
- package/dist/svelte/index.js +10 -9
- package/dist/svelte/runtime.d.ts +4 -4
- package/dist/svelte/runtime.js +4 -4
- package/dist/svelte/source.d.ts +9 -8
- package/dist/svelte/source.js +6 -5
- package/dist/sveltekit/index.d.ts +30 -12
- package/dist/sveltekit/index.js +2 -2
- package/dist/{ownership-Z2LpxsGa.js → tables-BqrxBCir.js} +641 -1104
- package/dist/tanstack-start/index.d.ts +22 -10
- package/dist/tanstack-start/index.js +2 -2
- package/dist/{target-Bw37TFNA.js → target-qdEAnnhU.js} +6 -6
- package/dist/{tenancy-CmeBQ6Nv.js → tenancy-5d1zVBvK.js} +25 -19
- package/dist/terminal/index.d.ts +23 -14
- package/dist/terminal/index.js +17 -20
- package/dist/testing/core.d.ts +1 -1
- package/dist/testing/core.js +1 -1
- package/dist/testing/fixtures/index.d.ts +8 -5
- package/dist/testing/fixtures/index.js +78 -17
- package/dist/testing/index.d.ts +225 -141
- package/dist/testing/index.js +352 -234
- package/dist/testing/saas/index.d.ts +43 -27
- 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 → text-diff-BtfSmdUo.js} +2 -2
- package/dist/{thenable-yD7SabqG.js → thenable-BNSM1U2R.js} +12 -3
- package/dist/{time-DkWjdL98.js → time-nR1JesoH.js} +32 -8
- package/dist/{token-2qYDvXz2.js → token-DC9EQiet.js} +14 -12
- package/dist/{tool-refusal-reAhIzdl.js → tool-refusal-Qpjs_W6M.js} +5 -2
- package/dist/trpc/index.d.ts +11 -8
- package/dist/trpc/index.js +15 -9
- package/dist/type-helpers-c7Xo_2Cu.d.ts +50 -0
- package/dist/{types-CfiKC5aN.d.ts → types-B2efzoSX.d.ts} +14 -11
- package/dist/{types-CIeZcG8v.d.ts → types-B6ExllNo.d.ts} +2 -2
- package/dist/{types-DBHftjgS.d.ts → types-BB-zWDcR.d.ts} +45 -33
- package/dist/{types-BfVmNJO5.d.ts → types-BMVDHvI0.d.ts} +128 -50
- package/dist/{types-DXmwu78Z.d.ts → types-CEinc15V.d.ts} +31 -14
- package/dist/{types-g7Oy6Zg4.d.ts → types-CN0LsqbK.d.ts} +47 -24
- package/dist/{types-CeIscIKp.d.ts → types-CWBsAwqn.d.ts} +23 -12
- package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
- package/dist/{types-BWZybqs9.d.ts → types-CzOeVvcC.d.ts} +384 -203
- package/dist/{types-DC44-hqb.d.ts → types-DLvhVm1r.d.ts} +59 -32
- package/dist/{types-D3A19w4A.d.ts → types-DlelvQk4.d.ts} +22 -13
- package/dist/{types-cTos-H7p.d.ts → types-DsHGPtkR.d.ts} +68 -32
- package/dist/{types-BXMYB7BY.d.ts → types-ZzRGoViD.d.ts} +77 -24
- package/dist/{types-CQVEQawv.d.ts → types-rCRV4Ge-.d.ts} +24 -14
- package/dist/types-tQB2CEnY.d.ts +262 -0
- package/dist/unplugin/index.d.ts +1 -1
- package/dist/unplugin/index.js +2 -2
- package/dist/usage-0hjZPIRX.js +1 -0
- package/dist/{usage-Bybmck7f.js → usage-B9EtHWLa.js} +50 -26
- package/dist/{usage-CDaLXCfL.js → usage-CBzgwfIs.js} +2 -2
- package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
- package/dist/{validation-error-CQpoquwj.d.ts → validation-error-uvp-kyfO.d.ts} +5 -2
- package/dist/{validity-CZ7-y0Cj.js → validity-Buc7w8E9.js} +13 -10
- package/dist/{verifier-DHuh-okk.js → verifier-DUV6pLqZ.js} +10 -4
- package/dist/{verify-pe8rL_Qw.js → verify-DlUcTDBz.js} +148 -487
- package/dist/version-DMQ0dnN5.js +48 -0
- package/dist/version-DizhmD72.js +1 -0
- package/dist/{views-BB8E9dTP.js → views-CD8wuL4Z.js} +19 -6
- package/dist/{vocabulary-Bg3eeT2H.d.ts → vocabulary-DEJ5j4mR.d.ts} +7 -4
- package/dist/vue/index.d.ts +71 -22
- package/dist/vue/index.js +50 -13
- package/dist/{waiter-DwEyouan.d.ts → waiter-CqUKX6CY.d.ts} +13 -10
- package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
- package/dist/{watch-C-4VmFlL.js → watch-BFDKqmUa.js} +8 -8
- package/dist/watch-ClLuO2TL.js +1 -0
- package/dist/webmcp/index.d.ts +11 -11
- package/dist/webmcp/index.js +8 -5
- package/dist/{where-scope-wq2coopv.js → where-scope-DlCdCM_8.js} +24 -18
- package/dist/{who-can-BwNsI_Js.js → who-can-BoDJm0Nc.js} +23 -20
- package/dist/workflow/index.d.ts +3 -3
- package/dist/workflow/index.js +13 -13
- package/dist/workflow-sdk/index.d.ts +19 -13
- package/dist/workflow-sdk/index.js +6 -6
- package/dist/{wrap-CiSc_KCq.js → wrap-B2wziJI_.js} +4 -4
- package/dist/{wrap-B6R0cMRL.d.ts → wrap-DxXB54Wu.d.ts} +8 -5
- package/package.json +8 -8
- package/schemas/catalog-v1.json +3 -0
- package/schemas/supabase-manifest-v1.json +33 -1
- package/skills/permdock-credentials/references/tokens-keys-links.md +8 -6
- package/skills/permdock-data/references/queries-and-rls.md +2 -1
- package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -2
- package/skills/permdock-wire/references/adapters.md +16 -23
- package/dist/catalog-BCCjSAdH.js +0 -1
- package/dist/collect-k_Dulxr5.js +0 -1
- package/dist/config-CoQHDrDi.js +0 -166
- package/dist/denied-text-D4qkEtFz.d.ts +0 -19
- package/dist/fields-ClcQLrVc.js +0 -238
- package/dist/generate-CNU1pIOo.js +0 -171
- package/dist/headers-BIjfMaoC.js +0 -8
- package/dist/headers-CIbDTUTK.d.ts +0 -7
- package/dist/load-DrMHXzgN.js +0 -1
- package/dist/output-files-DPAY7-GX.js +0 -1
- package/dist/package-root-Dk_ETdkp.js +0 -31
- package/dist/parse-local-manifest-e4mdwAKd.d.ts +0 -10
- package/dist/policies-B2lZIurj.js +0 -295
- package/dist/powersync-CExtTLyA.js +0 -1
- package/dist/problem-details-Tcfmj3bV.d.ts +0 -7
- package/dist/protected-BwZYL1X_.d.ts +0 -39
- package/dist/pull-Cty6Ovyu.js +0 -1
- package/dist/run-Bz7DXGEv.js +0 -1
- package/dist/stores-BAZwSYZA.d.ts +0 -31
- package/dist/supabase-hook-DJxC4PoP.js +0 -1
- package/dist/types-CKV71kKh.d.ts +0 -172
- package/dist/usage-y-kBNdqs.js +0 -1
- package/dist/version-CEbQ5UeM.js +0 -18
- package/dist/version-DXkYUISx.js +0 -1
- package/dist/watch-Bd9mx3rd.js +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as isRecord, t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { n as freezeDeep } from "./freeze-
|
|
3
|
-
import { d as isoNow } from "./time-
|
|
4
|
-
import { o as quoteSqlIdent, u as sqlRows } from "./sql-
|
|
2
|
+
import { n as freezeDeep } from "./freeze-jjan0lCv.js";
|
|
3
|
+
import { d as isoNow } from "./time-nR1JesoH.js";
|
|
4
|
+
import { o as quoteSqlIdent, u as sqlRows } from "./sql-0WjxIp9g.js";
|
|
5
5
|
//#region src/scim/types.ts
|
|
6
6
|
const SCIM_CONTENT_TYPE = "application/scim+json";
|
|
7
7
|
const USER_SCHEMA = "urn:ietf:params:scim:schemas:core:2.0:User";
|
|
@@ -11,7 +11,10 @@ const ERROR_SCHEMA = "urn:ietf:params:scim:api:messages:2.0:Error";
|
|
|
11
11
|
const PATCH_SCHEMA = "urn:ietf:params:scim:api:messages:2.0:PatchOp";
|
|
12
12
|
/** The RFC 7643 section 3.3 Group extension that carries PermDock roles. */
|
|
13
13
|
const ROLES_EXTENSION = "urn:ietf:params:scim:schemas:extension:permdock:2.0:Group";
|
|
14
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* The extension that carries the application's own data (`x`) on a User or a
|
|
16
|
+
* Group.
|
|
17
|
+
*/
|
|
15
18
|
const APP_DATA_EXTENSION = "urn:ietf:params:scim:schemas:extension:permdock:2.0:AppData";
|
|
16
19
|
var DirectoryUniquenessError = class extends Error {
|
|
17
20
|
name = "DirectoryUniquenessError";
|
|
@@ -30,11 +33,17 @@ var DirectoryNotFoundError = class extends Error {
|
|
|
30
33
|
function isNamedError(error, name, code) {
|
|
31
34
|
return error instanceof Error && error.name === name && Reflect.get(error, "code") === code;
|
|
32
35
|
}
|
|
33
|
-
/**
|
|
36
|
+
/**
|
|
37
|
+
* Matches by `name` and `code`, so an error from another copy of the module
|
|
38
|
+
* still maps.
|
|
39
|
+
*/
|
|
34
40
|
function isDirectoryUniquenessError(error) {
|
|
35
41
|
return isNamedError(error, "DirectoryUniquenessError", "uniqueness");
|
|
36
42
|
}
|
|
37
|
-
/**
|
|
43
|
+
/**
|
|
44
|
+
* Matches by `name` and `code`, so an error from another copy of the module
|
|
45
|
+
* still maps.
|
|
46
|
+
*/
|
|
38
47
|
function isDirectoryNotFoundError(error) {
|
|
39
48
|
return isNamedError(error, "DirectoryNotFoundError", "not-found");
|
|
40
49
|
}
|
|
@@ -231,7 +240,10 @@ function matchCompare(actual, op, expected) {
|
|
|
231
240
|
default: return op;
|
|
232
241
|
}
|
|
233
242
|
}
|
|
234
|
-
/**
|
|
243
|
+
/**
|
|
244
|
+
* RFC 7644 §3.4.2.2: `pr` needs a non-empty value; a multi-valued one needs an
|
|
245
|
+
* item.
|
|
246
|
+
*/
|
|
235
247
|
function present(value) {
|
|
236
248
|
if (Array.isArray(value)) return value.some(present);
|
|
237
249
|
return value !== void 0 && value !== null && value !== "";
|
|
@@ -537,13 +549,19 @@ function memoryDirectoryStore() {
|
|
|
537
549
|
}
|
|
538
550
|
//#endregion
|
|
539
551
|
//#region src/scim/postgres-store.ts
|
|
540
|
-
/**
|
|
552
|
+
/**
|
|
553
|
+
* The tables `permdock scim generate` writes; their names are the contract this
|
|
554
|
+
* store reads.
|
|
555
|
+
*/
|
|
541
556
|
const SCIM_TABLES = {
|
|
542
557
|
users: "scim_users",
|
|
543
558
|
groups: "scim_groups",
|
|
544
559
|
members: "scim_group_members"
|
|
545
560
|
};
|
|
546
|
-
/**
|
|
561
|
+
/**
|
|
562
|
+
* The constraints whose violation is a SCIM `409 uniqueness`, by the attribute
|
|
563
|
+
* they cover.
|
|
564
|
+
*/
|
|
547
565
|
const SCIM_UNIQUE = {
|
|
548
566
|
userName: "scim_users_user_name_key",
|
|
549
567
|
userExternalId: "scim_users_external_id_key",
|
|
@@ -623,7 +641,10 @@ function storedGroup(value) {
|
|
|
623
641
|
})
|
|
624
642
|
};
|
|
625
643
|
}
|
|
626
|
-
/**
|
|
644
|
+
/**
|
|
645
|
+
* A stored or IdP-sent `meta.created` the database can read; anything else is
|
|
646
|
+
* "now".
|
|
647
|
+
*/
|
|
627
648
|
function createdParam(created) {
|
|
628
649
|
return created !== "" && !Number.isNaN(Date.parse(created)) ? created : null;
|
|
629
650
|
}
|
|
@@ -653,7 +674,10 @@ function constraintOf(error) {
|
|
|
653
674
|
}
|
|
654
675
|
return "";
|
|
655
676
|
}
|
|
656
|
-
/**
|
|
677
|
+
/**
|
|
678
|
+
* A unique violation (`23505`) as `DirectoryUniquenessError`; any other error
|
|
679
|
+
* is rethrown.
|
|
680
|
+
*/
|
|
657
681
|
function uniqueness(error, kind) {
|
|
658
682
|
if (isRecord(error) && error["code"] === "23505") {
|
|
659
683
|
const constraint = constraintOf(error);
|
|
@@ -779,7 +803,10 @@ function groupParams(tenant, group, createdOrRevision, now) {
|
|
|
779
803
|
uniqueMembers(group)
|
|
780
804
|
];
|
|
781
805
|
}
|
|
782
|
-
/**
|
|
806
|
+
/**
|
|
807
|
+
* Reads the row, applies the operations and writes only if no other write
|
|
808
|
+
* landed in between; `write` answers `null` then.
|
|
809
|
+
*/
|
|
783
810
|
async function patch(read, ops, step, write, label) {
|
|
784
811
|
for (let attempt = 0; attempt < PATCH_ATTEMPTS; attempt += 1) {
|
|
785
812
|
const current = await read();
|
|
@@ -880,10 +907,10 @@ function findSql(kind, tables, clause, page) {
|
|
|
880
907
|
}
|
|
881
908
|
/**
|
|
882
909
|
* A `DirectoryStore` over the tables `permdock scim generate` writes, called
|
|
883
|
-
* through a `SqlQuery` that may read and write them (the table owner, or a
|
|
884
|
-
*
|
|
885
|
-
* transaction: a group and its members change together, and a PATCH that
|
|
886
|
-
*
|
|
910
|
+
* through a `SqlQuery` that may read and write them (the table owner, or a role
|
|
911
|
+
* granted on them). Every method is one statement, so a pool needs no
|
|
912
|
+
* transaction: a group and its members change together, and a PATCH that races
|
|
913
|
+
* another write re-reads the row and applies its operations again.
|
|
887
914
|
*/
|
|
888
915
|
function postgresDirectoryStore(query, options = {}) {
|
|
889
916
|
const schema = quoteSqlIdent(options.schema ?? "permdock");
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { r as isRecord, t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { n as freezeDeep } from "./freeze-
|
|
3
|
-
import { r as validateRecord } from "./thenable-
|
|
2
|
+
import { n as freezeDeep } from "./freeze-jjan0lCv.js";
|
|
3
|
+
import { r as validateRecord } from "./thenable-BNSM1U2R.js";
|
|
4
4
|
import { t as anonymousSubject } from "./subject-BGoM5o8B.js";
|
|
5
|
-
import { t as readClaim } from "./claims-map-
|
|
6
|
-
import { t as clientNameOf } from "./clients-
|
|
7
|
-
import "./budget-
|
|
8
|
-
import { a as hookApiNames } from "./sources-
|
|
5
|
+
import { t as readClaim } from "./claims-map-CKkoAAYF.js";
|
|
6
|
+
import { t as clientNameOf } from "./clients-DYr3U86j.js";
|
|
7
|
+
import "./budget-BELja5A9.js";
|
|
8
|
+
import { a as hookApiNames } from "./sources-CMAM-2A3.js";
|
|
9
9
|
//#region src/supabase/subject.ts
|
|
10
10
|
const REGISTERED = /* @__PURE__ */ new Set([
|
|
11
11
|
"sub",
|
|
@@ -28,14 +28,20 @@ const REGISTERED = /* @__PURE__ */ new Set([
|
|
|
28
28
|
"client_id",
|
|
29
29
|
"scope"
|
|
30
30
|
]);
|
|
31
|
-
/**
|
|
31
|
+
/**
|
|
32
|
+
* Top-level first, then `app_metadata`. `null` counts as absent: the RBAC hook
|
|
33
|
+
* writes `null` for a user with no role row.
|
|
34
|
+
*/
|
|
32
35
|
function claimNamed(claims, name) {
|
|
33
36
|
const top = Object.hasOwn(claims, name) ? claims[name] : void 0;
|
|
34
37
|
if (top !== void 0 && top !== null) return top;
|
|
35
38
|
const meta = claims["app_metadata"];
|
|
36
39
|
if (isRecord(meta) && Object.hasOwn(meta, name)) return meta[name] ?? void 0;
|
|
37
40
|
}
|
|
38
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
* A `ClaimPath`: a name read at the top level, then in `app_metadata`; or a
|
|
43
|
+
* function over the claims.
|
|
44
|
+
*/
|
|
39
45
|
function claimAt(claims, path) {
|
|
40
46
|
return typeof path === "string" ? claimNamed(claims, path) : readClaim(claims, path);
|
|
41
47
|
}
|
|
@@ -45,7 +51,10 @@ function asRoles(value, declared) {
|
|
|
45
51
|
const allowed = new Set(declared);
|
|
46
52
|
return raw.filter((role) => allowed.has(role));
|
|
47
53
|
}
|
|
48
|
-
/**
|
|
54
|
+
/**
|
|
55
|
+
* Reads the `memberships` claim; an entry it cannot read is dropped and its
|
|
56
|
+
* index reported.
|
|
57
|
+
*/
|
|
49
58
|
function readMemberships(value) {
|
|
50
59
|
if (!Array.isArray(value)) return {
|
|
51
60
|
memberships: [],
|
|
@@ -106,7 +115,10 @@ function memberOf(value) {
|
|
|
106
115
|
function asStrings(value) {
|
|
107
116
|
return Array.isArray(value) ? value.filter((item) => typeof item === "string") : [];
|
|
108
117
|
}
|
|
109
|
-
/**
|
|
118
|
+
/**
|
|
119
|
+
* `claims[plans][tenant]`: only the active tenant's entry, never another
|
|
120
|
+
* tenant's.
|
|
121
|
+
*/
|
|
110
122
|
function plansFor(claims, name, tenant) {
|
|
111
123
|
if (name === void 0 || tenant === void 0) return [];
|
|
112
124
|
const byTenant = claimAt(claims, name);
|
|
@@ -127,11 +139,13 @@ function isToolList(value) {
|
|
|
127
139
|
return Array.isArray(value) && value.every((tool) => typeof tool === "string" && tool !== "");
|
|
128
140
|
}
|
|
129
141
|
/**
|
|
130
|
-
* The outer `act` level by its `kind`, the marker a support tool writes: none
|
|
131
|
-
* or agent chain, `support` a support session (with
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
142
|
+
* The outer `act` level by its `kind`, the marker a support tool writes: none
|
|
143
|
+
* is an OAuth client or agent chain, `support` a support session (with
|
|
144
|
+
* `session_id`), `impersonation` an admin acting as the user, `agent` an agent
|
|
145
|
+
* run with the `tools` it may call. Any other `kind`, a support level without
|
|
146
|
+
* `session_id`, and an agent level with `session_id`, `tools` that are not
|
|
147
|
+
* non-empty strings or a `read_only` that is not a boolean are invalid, as
|
|
148
|
+
* better-supabase reads them.
|
|
135
149
|
*/
|
|
136
150
|
function actingParty(outer, id) {
|
|
137
151
|
const marked = Object.hasOwn(outer, "kind") ? outer["kind"] : void 0;
|
|
@@ -214,14 +228,15 @@ function readActor(claims) {
|
|
|
214
228
|
return NO_ACTOR;
|
|
215
229
|
}
|
|
216
230
|
/**
|
|
217
|
-
* Who acts for the user: the outermost `sub` of an RFC 8693 `act` chain (the
|
|
218
|
-
* actor; nested levels are prior actors, kept on `chain` for audit),
|
|
219
|
-
* OAuth `client_id` of a third-party app. The outer level's `kind`
|
|
220
|
-
* none is `oauth-client`, `support` a support session,
|
|
221
|
-
*
|
|
222
|
-
* `
|
|
223
|
-
*
|
|
224
|
-
*
|
|
231
|
+
* Who acts for the user: the outermost `sub` of an RFC 8693 `act` chain (the
|
|
232
|
+
* current actor; nested levels are prior actors, kept on `chain` for audit),
|
|
233
|
+
* else the OAuth `client_id` of a third-party app. The outer level's `kind`
|
|
234
|
+
* names the actor: none is `oauth-client`, `support` a support session,
|
|
235
|
+
* `impersonation` an admin acting as the user. Reads only `act` and
|
|
236
|
+
* `client_id`; the caller applies the role rule first (`anon` and
|
|
237
|
+
* `service_role` are anonymous and carry no actor). An `act` that is not a
|
|
238
|
+
* chain of objects each with a non-empty `sub`, that names another `kind`, or a
|
|
239
|
+
* support level without `session_id`, is `{ ok: false }` and must deny.
|
|
225
240
|
*/
|
|
226
241
|
function actorOf(claims) {
|
|
227
242
|
try {
|
|
@@ -346,6 +361,7 @@ function mapClaims(claims, options) {
|
|
|
346
361
|
});
|
|
347
362
|
const session = typeof claims["session_id"] === "string" ? claims["session_id"] : void 0;
|
|
348
363
|
const expiresAt = typeof claims["exp"] === "number" ? claims["exp"] : void 0;
|
|
364
|
+
const issuedAt = typeof claims["iat"] === "number" && Number.isFinite(claims["iat"]) ? claims["iat"] : void 0;
|
|
349
365
|
return freezeDeep(compact({
|
|
350
366
|
principal,
|
|
351
367
|
actor,
|
|
@@ -353,6 +369,7 @@ function mapClaims(claims, options) {
|
|
|
353
369
|
context: {},
|
|
354
370
|
session,
|
|
355
371
|
expiresAt,
|
|
372
|
+
issuedAt,
|
|
356
373
|
liveSession: options.liveSession === true && session !== void 0 ? true : void 0
|
|
357
374
|
}));
|
|
358
375
|
}
|
|
@@ -370,8 +387,9 @@ function subjectFromSupabase(claims, options = {}) {
|
|
|
370
387
|
}
|
|
371
388
|
}
|
|
372
389
|
/**
|
|
373
|
-
* A verified session object (`{ kind, claims }`) in, `Subject` out.
|
|
374
|
-
*
|
|
390
|
+
* A verified session object (`{ kind, claims }`) in, `Subject` out. Only `kind:
|
|
391
|
+
* 'user'` sessions map; `anon`, `service`, `invalid` and anything else are
|
|
392
|
+
* anonymous.
|
|
375
393
|
*/
|
|
376
394
|
function subjectFromSupabaseSession(session, options = {}) {
|
|
377
395
|
try {
|
|
@@ -442,7 +460,10 @@ function versionOf(value) {
|
|
|
442
460
|
const version = typeof value === "string" ? Number(value) : value;
|
|
443
461
|
return typeof version === "number" && Number.isFinite(version) ? version : void 0;
|
|
444
462
|
}
|
|
445
|
-
/**
|
|
463
|
+
/**
|
|
464
|
+
* Reads `subject_for`'s JSON; anything it cannot read is left out, and a
|
|
465
|
+
* malformed record is no record.
|
|
466
|
+
*/
|
|
446
467
|
function readSubjectRecord(value) {
|
|
447
468
|
if (!isRecord(value) || typeof value["id"] !== "string") return;
|
|
448
469
|
if (value["active"] !== true) return {
|
|
@@ -466,17 +487,21 @@ function readSubjectRecord(value) {
|
|
|
466
487
|
claims: isRecord(value["claims"]) && Object.keys(value["claims"]).length > 0 ? value["claims"] : void 0
|
|
467
488
|
});
|
|
468
489
|
}
|
|
490
|
+
function once(memo, key, read) {
|
|
491
|
+
return memo === void 0 ? read() : memo(key, read);
|
|
492
|
+
}
|
|
469
493
|
/**
|
|
470
494
|
* Membership, custom-role and subject sources over the `subject_for(p_user)`,
|
|
471
495
|
* `authz_version_for(p_user)` and `members_of(p_scope, p_id)` functions
|
|
472
|
-
* `permdock supabase hook generate` writes, for a backend that reaches
|
|
473
|
-
*
|
|
474
|
-
*
|
|
475
|
-
*
|
|
476
|
-
*
|
|
496
|
+
* `permdock supabase hook generate` writes, for a backend that reaches Postgres
|
|
497
|
+
* only through PostgREST. `memberships.version` reads only the version, so
|
|
498
|
+
* `claimsFirst` with `onStale: 'reread'` reads the full subject only for a
|
|
499
|
+
* stale token; when the version function is missing it falls back to
|
|
500
|
+
* `subject_for`. With `policy`, a token that claims a custom role has its
|
|
477
501
|
* subject read in one `subject_for` call instead, and custom roles are read
|
|
478
|
-
* only for a subject that holds one.
|
|
479
|
-
*
|
|
502
|
+
* only for a subject that holds one. It keeps no answers: create it once at
|
|
503
|
+
* module scope, and `getPermDock` shares each read within one instance. Pass
|
|
504
|
+
* `claimsFirst(…, { versions })` to share version reads across instances.
|
|
480
505
|
*/
|
|
481
506
|
function postgrestSources(client, options = {}) {
|
|
482
507
|
const api = options.api;
|
|
@@ -487,73 +512,46 @@ function postgrestSources(client, options = {}) {
|
|
|
487
512
|
const versionFn = options.versionFn ?? names?.authzVersionFor ?? "authz_version_for";
|
|
488
513
|
const declared = options.policy === void 0 ? void 0 : options.policy.index.declaredRoles;
|
|
489
514
|
const onlyDeclared = (held) => declared !== void 0 && held?.every((name) => declared.has(name)) === true;
|
|
490
|
-
const
|
|
491
|
-
|
|
492
|
-
const listed = /* @__PURE__ */ new Map();
|
|
493
|
-
const list = (query) => {
|
|
494
|
-
const key = JSON.stringify([query.scope, query.id]);
|
|
495
|
-
const cached = listed.get(key);
|
|
496
|
-
if (cached !== void 0) return cached.then((entries) => [...entries]);
|
|
497
|
-
const pending = Promise.resolve(callRpc(client, schema, membersFn, {
|
|
515
|
+
const list = async (query) => {
|
|
516
|
+
const result = await callRpc(client, schema, membersFn, {
|
|
498
517
|
p_scope: query.scope,
|
|
499
518
|
p_id: query.id
|
|
500
|
-
})).then((result) => {
|
|
501
|
-
if (result.error !== null) throw new Error(`PermDock: ${schema}.${membersFn} failed: ${result.error.message}`);
|
|
502
|
-
return readMemberEntries(result.data);
|
|
503
|
-
});
|
|
504
|
-
listed.set(key, pending);
|
|
505
|
-
return pending.then((entries) => [...entries]);
|
|
506
|
-
};
|
|
507
|
-
const record = (userId) => {
|
|
508
|
-
const cached = loaded.get(userId);
|
|
509
|
-
if (cached !== void 0) return cached;
|
|
510
|
-
const pending = Promise.resolve(callRpc(client, schema, fn, { p_user: userId })).then((result) => {
|
|
511
|
-
if (result.error !== null) throw new Error(`PermDock: ${schema}.${fn} failed: ${result.error.message}`);
|
|
512
|
-
return readSubjectRecord(result.data);
|
|
513
519
|
});
|
|
514
|
-
|
|
515
|
-
return
|
|
520
|
+
if (result.error !== null) throw new Error(`PermDock: ${schema}.${membersFn} failed: ${result.error.message}`);
|
|
521
|
+
return readMemberEntries(result.data);
|
|
516
522
|
};
|
|
517
|
-
const
|
|
518
|
-
const
|
|
519
|
-
if (
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
return
|
|
525
|
-
};
|
|
526
|
-
const live = async (userId) => {
|
|
527
|
-
const found = await record(userId);
|
|
523
|
+
const record = (userId, memo) => once(memo, `${schema}.${fn}:${userId}`, async () => {
|
|
524
|
+
const result = await callRpc(client, schema, fn, { p_user: userId });
|
|
525
|
+
if (result.error !== null) throw new Error(`PermDock: ${schema}.${fn} failed: ${result.error.message}`);
|
|
526
|
+
return readSubjectRecord(result.data);
|
|
527
|
+
});
|
|
528
|
+
const version = (userId, memo) => once(memo, `${schema}.${versionFn}:${userId}`, async () => {
|
|
529
|
+
const result = await callRpc(client, schema, versionFn, { p_user: userId });
|
|
530
|
+
return result.error === null ? versionOf(result.data) : (await record(userId, memo))?.authzVersion;
|
|
531
|
+
});
|
|
532
|
+
const live = async (userId, memo) => {
|
|
533
|
+
const found = await record(userId, memo);
|
|
528
534
|
return found?.active === true ? found : void 0;
|
|
529
535
|
};
|
|
530
536
|
return {
|
|
531
537
|
memberships: {
|
|
532
|
-
async membershipsFor(principal) {
|
|
533
|
-
return [...(await live(principal.id))?.memberships ?? []];
|
|
538
|
+
async membershipsFor(principal, query) {
|
|
539
|
+
return [...(await live(principal.id, query.memo))?.memberships ?? []];
|
|
534
540
|
},
|
|
535
|
-
version(principal) {
|
|
536
|
-
return declared !== void 0 && !onlyDeclared([...principal.roles ?? [], ...(principal.memberships ?? []).flatMap((membership) => membership.roles)]) ? record(principal.id).then((found) => found?.authzVersion) : version(principal.id);
|
|
541
|
+
version(principal, context) {
|
|
542
|
+
return declared !== void 0 && !onlyDeclared([...principal.roles ?? [], ...(principal.memberships ?? []).flatMap((membership) => membership.roles)]) ? record(principal.id, context?.memo).then((found) => found?.authzVersion) : version(principal.id, context?.memo);
|
|
537
543
|
},
|
|
538
544
|
list,
|
|
539
|
-
async globalRolesFor(principal) {
|
|
540
|
-
return [...(await live(principal.id))?.roles ?? []];
|
|
545
|
+
async globalRolesFor(principal, context) {
|
|
546
|
+
return [...(await live(principal.id, context?.memo))?.roles ?? []];
|
|
541
547
|
}
|
|
542
548
|
},
|
|
543
549
|
customRoles(principal) {
|
|
550
|
+
const held = async (context, keep) => onlyDeclared(context?.held) ? [] : ((await live(principal.id, context?.memo))?.customRoles ?? []).filter(keep);
|
|
544
551
|
return {
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
},
|
|
549
|
-
async globalRoles(context) {
|
|
550
|
-
if (onlyDeclared(context?.held)) return [];
|
|
551
|
-
return ((await live(principal.id))?.customRoles ?? []).filter((role) => role.scope === "global");
|
|
552
|
-
},
|
|
553
|
-
async sharedRoles(context) {
|
|
554
|
-
if (onlyDeclared(context?.held)) return [];
|
|
555
|
-
return ((await live(principal.id))?.customRoles ?? []).filter((role) => role.shared === true);
|
|
556
|
-
}
|
|
552
|
+
rolesFor: (tenant, context) => held(context, (role) => role.tenant === tenant),
|
|
553
|
+
globalRoles: (context) => held(context, (role) => role.scope === "global"),
|
|
554
|
+
sharedRoles: (context) => held(context, (role) => role.shared === true)
|
|
557
555
|
};
|
|
558
556
|
},
|
|
559
557
|
async subject(userId) {
|
|
@@ -601,7 +599,7 @@ function postgrestSources(client, options = {}) {
|
|
|
601
599
|
principal
|
|
602
600
|
};
|
|
603
601
|
},
|
|
604
|
-
record
|
|
602
|
+
record: (userId) => record(userId)
|
|
605
603
|
};
|
|
606
604
|
}
|
|
607
605
|
//#endregion
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { G as CustomRoleSource, T as Policy, fr as Membership, hr as Subject, nt as MembershipSource, pr as Principal, sr as CustomRole, tt as MemberEntry } from "./policy-types-DGIO_gxq.js";
|
|
2
2
|
//#region src/supabase/postgrest.d.ts
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* What a supabase-js `rpc` call resolves to: `data` or an `error` with a
|
|
5
|
+
* message.
|
|
6
|
+
*/
|
|
4
7
|
type SupabaseRpcResult = {
|
|
5
8
|
readonly data: unknown;
|
|
6
9
|
readonly error: {
|
|
@@ -13,13 +16,13 @@ type SupabaseRpcResult = {
|
|
|
13
16
|
* function, such as a `service_role` client after the grant the docs show.
|
|
14
17
|
*/
|
|
15
18
|
type SupabaseRpcClient = {
|
|
16
|
-
schema(name: string)
|
|
17
|
-
rpc(fn: string, args: Readonly<Record<string, unknown>>)
|
|
19
|
+
schema: (name: string) => {
|
|
20
|
+
rpc: (fn: string, args: Readonly<Record<string, unknown>>) => PromiseLike<SupabaseRpcResult>;
|
|
18
21
|
};
|
|
19
22
|
};
|
|
20
23
|
type SupabaseRpcCaller = {
|
|
21
|
-
schema(name: never)
|
|
22
|
-
rpc(fn: never, args: never)
|
|
24
|
+
schema: (name: never) => {
|
|
25
|
+
rpc: (fn: never, args: never) => PromiseLike<SupabaseRpcResult>;
|
|
23
26
|
};
|
|
24
27
|
};
|
|
25
28
|
type PostgrestSourcesOptions = {
|
|
@@ -34,18 +37,24 @@ type PostgrestSourcesOptions = {
|
|
|
34
37
|
readonly schema?: string;
|
|
35
38
|
readonly prefix?: string;
|
|
36
39
|
};
|
|
37
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* Schema of the functions. Default `permdock`, where the hook generates
|
|
42
|
+
* `subject_for` and `members_of`.
|
|
43
|
+
*/
|
|
38
44
|
readonly schema?: string;
|
|
39
45
|
/** Function name, for a wrapper in an exposed schema. Default `subject_for`. */
|
|
40
46
|
readonly fn?: string;
|
|
41
47
|
readonly membersFn?: string;
|
|
42
|
-
/**
|
|
48
|
+
/**
|
|
49
|
+
* The version-only function `memberships.version` calls. Default
|
|
50
|
+
* `authz_version_for`.
|
|
51
|
+
*/
|
|
43
52
|
readonly versionFn?: string;
|
|
44
53
|
/**
|
|
45
54
|
* The policy whose declared roles tell custom roles apart. With it,
|
|
46
|
-
* `customRoles` reads nothing while every role the subject holds is
|
|
47
|
-
*
|
|
48
|
-
*
|
|
55
|
+
* `customRoles` reads nothing while every role the subject holds is declared,
|
|
56
|
+
* and `memberships.version` reads the whole subject in one call when the
|
|
57
|
+
* token claims a custom role, which the custom roles need anyway.
|
|
49
58
|
*/
|
|
50
59
|
readonly policy?: Policy;
|
|
51
60
|
};
|
|
@@ -58,53 +67,64 @@ type SubjectRecord = {
|
|
|
58
67
|
readonly memberships: readonly Membership[];
|
|
59
68
|
readonly customRoles: readonly CustomRole[];
|
|
60
69
|
readonly authzVersion?: number;
|
|
61
|
-
/**
|
|
70
|
+
/**
|
|
71
|
+
* The token claims the hook adds besides the memberships: `team_ids` and each
|
|
72
|
+
* `supabase.hook.claims` entry.
|
|
73
|
+
*/
|
|
62
74
|
readonly claims?: Readonly<Record<string, unknown>>;
|
|
63
75
|
};
|
|
64
76
|
type PostgrestSources = {
|
|
65
77
|
/**
|
|
66
|
-
* Memberships and the authorization version of any principal, and `list`,
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
78
|
+
* Memberships and the authorization version of any principal, and `list`, the
|
|
79
|
+
* live members of one scope instance through `members_of`, for `countHolders`
|
|
80
|
+
* and `whoCan`. Wrap it in `claimsFirst` to read only when the token was
|
|
81
|
+
* truncated.
|
|
70
82
|
*/
|
|
71
83
|
readonly memberships: MembershipSource & {
|
|
72
|
-
list(query: {
|
|
84
|
+
list: (query: {
|
|
73
85
|
readonly scope: string;
|
|
74
86
|
readonly id: string;
|
|
75
|
-
})
|
|
87
|
+
}) => Promise<MemberEntry[]>;
|
|
76
88
|
};
|
|
77
89
|
/** The custom roles `principal` holds, for `createPermDock`'s `customRoles`. */
|
|
78
|
-
customRoles(principal: {
|
|
90
|
+
customRoles: (principal: {
|
|
79
91
|
readonly id: string;
|
|
80
|
-
})
|
|
81
|
-
/**
|
|
82
|
-
|
|
92
|
+
}) => CustomRoleSource;
|
|
93
|
+
/**
|
|
94
|
+
* The subject the hook would mint for `userId`: anonymous when the user is
|
|
95
|
+
* unknown or suspended.
|
|
96
|
+
*/
|
|
97
|
+
subject: (userId: string) => Promise<Subject>;
|
|
83
98
|
/**
|
|
84
99
|
* `subject` with its principal read again: roles, memberships and
|
|
85
100
|
* authorization version come from the database, the token's other claims
|
|
86
|
-
* stay, and `actor`, `delegation`, `session`, `expiresAt` and the context
|
|
87
|
-
*
|
|
101
|
+
* stay, and `actor`, `delegation`, `session`, `expiresAt` and the context are
|
|
102
|
+
* kept as they were, so a refreshed OAuth client keeps its ceiling. An
|
|
88
103
|
* unknown or suspended user becomes a subject with no principal that still
|
|
89
|
-
* carries the actor and delegation. A subject with no principal is returned
|
|
104
|
+
* carries the actor and delegation. A subject with no principal is returned
|
|
105
|
+
* as is.
|
|
90
106
|
*/
|
|
91
|
-
refresh<P extends Principal>(subject: Subject<P>)
|
|
107
|
+
refresh: <P extends Principal>(subject: Subject<P>) => Promise<Subject<P>>;
|
|
92
108
|
/** The raw record, `undefined` for an unknown user. */
|
|
93
|
-
record(userId: string)
|
|
109
|
+
record: (userId: string) => Promise<SubjectRecord | undefined>;
|
|
94
110
|
};
|
|
95
|
-
/**
|
|
111
|
+
/**
|
|
112
|
+
* Reads `subject_for`'s JSON; anything it cannot read is left out, and a
|
|
113
|
+
* malformed record is no record.
|
|
114
|
+
*/
|
|
96
115
|
declare function readSubjectRecord(value: unknown): SubjectRecord | undefined;
|
|
97
116
|
/**
|
|
98
117
|
* Membership, custom-role and subject sources over the `subject_for(p_user)`,
|
|
99
118
|
* `authz_version_for(p_user)` and `members_of(p_scope, p_id)` functions
|
|
100
|
-
* `permdock supabase hook generate` writes, for a backend that reaches
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
119
|
+
* `permdock supabase hook generate` writes, for a backend that reaches Postgres
|
|
120
|
+
* only through PostgREST. `memberships.version` reads only the version, so
|
|
121
|
+
* `claimsFirst` with `onStale: 'reread'` reads the full subject only for a
|
|
122
|
+
* stale token; when the version function is missing it falls back to
|
|
123
|
+
* `subject_for`. With `policy`, a token that claims a custom role has its
|
|
105
124
|
* subject read in one `subject_for` call instead, and custom roles are read
|
|
106
|
-
* only for a subject that holds one.
|
|
107
|
-
*
|
|
125
|
+
* only for a subject that holds one. It keeps no answers: create it once at
|
|
126
|
+
* module scope, and `getPermDock` shares each read within one instance. Pass
|
|
127
|
+
* `claimsFirst(…, { versions })` to share version reads across instances.
|
|
108
128
|
*/
|
|
109
129
|
declare function postgrestSources(client: SupabaseRpcCaller, options?: PostgrestSourcesOptions): PostgrestSources;
|
|
110
130
|
//#endregion
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { n as runPowerSync } from "./powersync-CJrT1DSc.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as defineLeaf } from "./command-L8EstFNm.js";
|
|
2
|
-
import { c as given, d as policyFlag, n as dbUrl, o as fileOut, r as dbUrlFlags, t as checkFlag } from "./flags-
|
|
2
|
+
import { c as given, d as policyFlag, n as dbUrl, o as fileOut, r as dbUrlFlags, t as checkFlag } from "./flags-DXjoTVbS.js";
|
|
3
3
|
//#region src/cli/commands/powersync.ts
|
|
4
4
|
const generate = defineLeaf({
|
|
5
5
|
flags: {
|
|
@@ -14,7 +14,7 @@ const generate = defineLeaf({
|
|
|
14
14
|
async run(ctx, { flags }) {
|
|
15
15
|
const out = fileOut("powersync", flags.out);
|
|
16
16
|
const from = given(flags.policy);
|
|
17
|
-
const { runPowerSync } = await import("./powersync-
|
|
17
|
+
const { runPowerSync } = await import("./powersync-B701tvhE.js");
|
|
18
18
|
return runPowerSync({
|
|
19
19
|
cwd: ctx.cwd,
|
|
20
20
|
config: ctx.config,
|
|
@@ -45,7 +45,7 @@ const verify = defineLeaf({
|
|
|
45
45
|
const db = await dbUrl(ctx, flags, { required: true });
|
|
46
46
|
const fixtures = given(flags.fixtures);
|
|
47
47
|
const from = given(flags.policy);
|
|
48
|
-
const { runPowerSync } = await import("./powersync-
|
|
48
|
+
const { runPowerSync } = await import("./powersync-B701tvhE.js");
|
|
49
49
|
return runPowerSync({
|
|
50
50
|
cwd: ctx.cwd,
|
|
51
51
|
config: ctx.config,
|