permdock 0.7.0 → 0.8.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-CL-QCITA.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-BLs67P1l.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-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
- package/dist/{approval-prompt-K0faOLFp.d.ts → approval-prompt-PYagyQUj.d.ts} +13 -11
- 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-3RhGfkAK.js} +2 -2
- package/dist/{arazzo-rdeJ8n1J.js → arazzo-B5-ulWif.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-BAkBDMqn.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-DqEoWHBc.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-JDuvxjuW.d.ts → bind-Cp2hBHzP.d.ts} +27 -12
- package/dist/{bind-D1nO6fiC.js → bind-D_sZSVA3.js} +22 -10
- 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-CNWaYJyr.js} +3 -3
- package/dist/{capability-L7NnfhiE.js → capability-BqX94r07.js} +31 -25
- package/dist/{capability-D4UC9TTW.d.ts → capability-ChuiONQU.d.ts} +41 -29
- package/dist/{casbin-BW9pS47J.js → casbin-H0rKxBx2.js} +16 -8
- package/dist/{casbin-BHijLuHY.js → casbin-cbSbhT_k.js} +2 -2
- 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-BFpz2EmT.js} +20 -19
- package/dist/{catalog-BaMQfQ6Y.js → catalog-DCspHDc8.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-mRQQQhNK.js +1 -0
- package/dist/catalog-operations-Dadrl7Z-.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-BFlGMaak.js} +4 -5
- package/dist/{codemod-i4N2BhDc.js → codemod-DLQ9Zpo4.js} +3 -4
- package/dist/{codemod-BP6n8N9L.js → codemod-DWSN2erG.js} +523 -201
- package/dist/collect-B5BL3klN.js +1 -0
- package/dist/{collect-BaWeMjwV.js → collect-B7ZFAJU3.js} +26 -63
- package/dist/{collect-DNm3oKOk.js → collect-Bzv3le0A.js} +4 -5
- 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-BFzysW3o.d.ts} +36 -12
- package/dist/{compile-BAEO5bOk.js → compile-EzEMB-7v.js} +77 -33
- package/dist/{completion-BNdVf7X2.js → completion-saoYiRFO.js} +17 -8
- package/dist/config-BwPBfN0t.js +108 -0
- package/dist/{config-DGZzMV1B.js → config-DBeXXmBF.js} +2 -2
- package/dist/{config-report-Cm7UITNA.js → config-report-BipSWA6V.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-B5-w6Kw9.js → core-H-mbhpZc.js} +26 -20
- package/dist/{core-CQkE8Esr.d.ts → core-hWIARPDz.d.ts} +49 -22
- package/dist/{create-UTnUVETj.d.ts → create-BSNrVuxh.d.ts} +70 -37
- package/dist/{create-B2-CQqCI.d.ts → create-BVq1lNQE.d.ts} +49 -28
- package/dist/{create-QHuuPw3q.d.ts → create-CM1FciYG.d.ts} +37 -29
- package/dist/{create-Cb86Z8Im.js → create-Cq4Uox0f.js} +10 -7
- package/dist/{create-DJrlhEp9.js → create-_noSrY1T.js} +15 -21
- 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-CHNlVInN.d.ts +22 -0
- package/dist/{describe-DZlnEtLy.js → describe-Bb4hGK5d.js} +5 -5
- package/dist/{describe-O0SwYIK8.d.ts → describe-ByS9LgHK.d.ts} +5 -5
- package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
- package/dist/{diff-Btr1c1Ow.js → diff-CN8IYhC_.js} +2 -2
- package/dist/{diff-DzT-xD13.js → diff-iZWV65nC.js} +22 -13
- package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
- package/dist/{doctor-BU1szn63.js → doctor-CHD1M9R5.js} +287 -135
- package/dist/{doctor-BoK_y0KO.js → doctor-D3wo-yuz.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-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
- package/dist/{errors-DpP_U6Bf.js → errors-Vpu6rKHl.js} +13 -10
- package/dist/{errors-B_Qg9D3e.d.ts → errors-zi_4T-rx.d.ts} +22 -6
- package/dist/{evaluate-B_oqFbWC.js → evaluate-Dd8Ta0Ie.js} +140 -78
- package/dist/{evaluations-DReoiVBw.js → evaluations-IBceAeKT.js} +40 -19
- package/dist/{evaluations-BCddEOfO.d.ts → evaluations-z8dQFDaN.d.ts} +11 -5
- 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-C1DCvpqV.d.ts} +9 -6
- package/dist/{fetch-adapter-De-u6vhJ.js → fetch-adapter-JL43jD3E.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-B5kvbAoZ.js +58 -0
- package/dist/gen-DWCYcMQM.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-BmjzxQhp.d.ts → hosted-Cmtxogd0.d.ts} +33 -21
- package/dist/{hosted-XBgU6RGT.js → hosted-D0IzESu_.js} +42 -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-Bz0GefWg.js → import-CST57XLp.js} +64 -51
- package/dist/{import-DB2EG_iy.js → import-_YqhhwvX.js} +6 -6
- package/dist/{index-BSfRl0hZ.d.ts → index-B8s204GL.d.ts} +64 -52
- package/dist/{index-DH9DUDEM.d.ts → index-BT5-1VsX.d.ts} +54 -30
- package/dist/{index-BTkwrK7v.d.ts → index-BW_0MZOS.d.ts} +282 -172
- package/dist/{index-CMiPH2Tv.d.ts → index-BhxEUY9J.d.ts} +64 -37
- package/dist/{index-DLwcuCN_.d.ts → index-Bv5iXPqU.d.ts} +51 -30
- package/dist/{index-BE8y3moU.d.ts → index-_9UiQIkt.d.ts} +127 -82
- package/dist/index.d.ts +22 -22
- package/dist/index.js +33 -33
- package/dist/{init-5TXNji88.js → init-Dz_PsHdv.js} +5 -5
- package/dist/{init-B-4t1NzC.js → init-cE3A8aXq.js} +10 -10
- package/dist/{instance-options-CU0YQCLH.d.ts → instance-options-B0KXqTrJ.d.ts} +4 -4
- package/dist/{instance-snapshot-CjcwnEiV.js → instance-snapshot--JWiTrvO.js} +75 -55
- 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-C-fYydV2.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-D-8tMqzo.js} +4 -4
- package/dist/{login-WC9HPJpU.js → login-DplQ0s84.js} +16 -9
- package/dist/{manifest-Dv6q4i5s.js → manifest-Cgiq5oqc.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-BNWCJtmP.js} +14 -8
- 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 +72 -26
- package/dist/next/index.js +110 -6
- 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-Ddb4628T.js → openapi-BOsx0xn9.js} +33 -18
- package/dist/{openapi-DMocl1bh.js → openapi-CBZUhA3l.js} +4 -5
- package/dist/{openapi-ztVaux6j.js → openapi-VeHHU2l9.js} +23 -14
- 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-files-BHOIlrfD.js +1 -0
- package/dist/{output-files-CCMdcFWb.js → output-files-BIQ_9pIs.js} +29 -17
- package/dist/{output-DgSDLrta.js → output-tkju6U7R.js} +9 -5
- package/dist/ownership-B4L59T9u.js +1054 -0
- package/dist/{parse-Ddhz2xf4.js → parse-1_ZheTW5.js} +16 -13
- package/dist/parse-local-manifest-BQhTlLQS.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-Dco6dyCK.d.ts → permdock-B6Sf4T_S.d.ts} +253 -129
- package/dist/{permdock-BfWEeMqk.js → permdock-L-_I_3zP.js} +59 -35
- 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-mDcTWoBs.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-Ba4bDhaj.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-CJgOm6aq.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-CCiDRZBH.d.ts} +738 -349
- package/dist/{postgres-store-BL9M_CA1.js → postgres-store-DcyrPS-r.js} +43 -16
- package/dist/{postgrest-r5faDIzD.js → postgrest-D4nuPXIQ.js} +52 -33
- package/dist/{postgrest-CYacM_u7.d.ts → postgrest-DicQyqm-.d.ts} +54 -35
- package/dist/{powersync-53ryOZip.js → powersync-DHNQX06W.js} +127 -69
- package/dist/{powersync-13odBwiM.js → powersync-DXqGuq9A.js} +3 -3
- package/dist/powersync-Djf-zCpB.js +1 -0
- 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-BE7N_Luo.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-DXfq5c2d.d.ts} +1 -1
- package/dist/{provider-store-IgqQipCO.js → provider-store-CaTv00tr.js} +13 -9
- package/dist/pull-B65ndFNZ.js +1 -0
- package/dist/{pull-CN5OLxrF.js → pull-CwpGaQSi.js} +12 -11
- package/dist/{push-tVdG8dUL.js → push-DgssgzkK.js} +19 -13
- package/dist/{pushed-policy-BbcY9r_4.d.ts → pushed-policy-D1Eoi6NM.d.ts} +12 -6
- package/dist/{pushed-policy-CmYeSQqq.js → pushed-policy-ITwYKvvH.js} +10 -7
- 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-DNftIb_R.d.ts} +1 -1
- package/dist/{request-context-BykKLmyE.js → request-context-C25ilqiJ.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-CF7xXLSG.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-CxBZb4rZ.js → rls-CNEH2_BG.js} +299 -124
- package/dist/{rls-Ck_PocSp.js → rls-Ca8Jz9b5.js} +13 -6
- 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-fNqAIqQk.js} +8 -5
- package/dist/{run-uLD2aWuO.js → run-Bz26OTfO.js} +26 -23
- package/dist/run-D-JE8QWb.js +1 -0
- package/dist/{run-ticket-BpNi7BCi.d.ts → run-ticket-DbWI9f99.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-iWnUdwCt.js} +42 -29
- package/dist/{scan-DSljDE1Y.js → scan-DCj1KQfn.js} +1 -1
- package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
- package/dist/{schema-gIcCx7zM.js → schema-Dst9I9Gs.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-CIlpSA2G.d.ts} +81 -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-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
- package/dist/{sink-Cp_Eot9W.d.ts → sink-Dvi7YZG_.d.ts} +44 -20
- package/dist/{skills-Dcjw9_1C.js → skills-Bjj7BNEQ.js} +12 -8
- package/dist/{skills-g_3BS9NC.js → skills-OuoMR49L.js} +3 -3
- package/dist/{snapshot-CbGmYiJx.js → snapshot-CXlzi69u.js} +21 -18
- package/dist/{snapshot-cache-Pahd3IYJ.d.ts → snapshot-cache-BAXZ0KOp.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-DEEuGb8S.d.ts → sources-B1Os_YUu.d.ts} +126 -53
- package/dist/{sources-B-zYB4GS.js → sources-CMAM-2A3.js} +46 -27
- 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-DZ0l9UAg.js} +190 -100
- package/dist/ssf/index.d.ts +3 -3
- package/dist/ssf/index.js +47 -35
- package/dist/{standard-webhooks-B_qRg0ws.d.ts → standard-webhooks-C-qX4mJW.d.ts} +7 -7
- package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
- 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-C0Kta5Ft.d.ts +59 -0
- package/dist/{stores-BqEuHC05.js → stores-DxZWDXCs.js} +42 -5
- package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
- package/dist/{stream-2Vwhl7Er.d.ts → stream-ltuLdtTG.d.ts} +4 -3
- 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-BL1qJzzY.js} +79 -35
- package/dist/{supabase-Bqp7iIY2.js → supabase-D39cuGPt.js} +3 -3
- package/dist/{supabase-hook-Dg0SrQWR.js → supabase-hook-B-yXnzUl.js} +175 -196
- package/dist/supabase-hook-H-MtE9Wd.js +1 -0
- package/dist/{supautils-MESd81bF.js → supautils-BU-pAEpf.js} +166 -47
- 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-DeMNEy6V.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 +224 -141
- package/dist/testing/index.js +299 -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-BIPIDa6a.d.ts +50 -0
- package/dist/{types-DBHftjgS.d.ts → types-AMJ5qoU_.d.ts} +45 -33
- package/dist/{types-CfiKC5aN.d.ts → types-B2mlGuhW.d.ts} +14 -11
- package/dist/{types-D3A19w4A.d.ts → types-B4uqKDnp.d.ts} +22 -13
- package/dist/{types-CQVEQawv.d.ts → types-BJk0BKRX.d.ts} +24 -14
- package/dist/types-B_d_g7T3.d.ts +262 -0
- package/dist/{types-DC44-hqb.d.ts → types-B_tiYvk8.d.ts} +59 -32
- package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
- package/dist/{types-BWZybqs9.d.ts → types-DC1Loeh3.d.ts} +381 -202
- package/dist/{types-CIeZcG8v.d.ts → types-DHKPcqzr.d.ts} +2 -2
- package/dist/{types-cTos-H7p.d.ts → types-DjuMBNF9.d.ts} +68 -32
- package/dist/{types-CeIscIKp.d.ts → types-HzqOtvsJ.d.ts} +23 -12
- package/dist/{types-BXMYB7BY.d.ts → types-ZzRGoViD.d.ts} +77 -24
- package/dist/{types-BfVmNJO5.d.ts → types-ah9NlU6j.d.ts} +128 -50
- package/dist/{types-DXmwu78Z.d.ts → types-djVzLlIV.d.ts} +31 -14
- package/dist/{types-g7Oy6Zg4.d.ts → types-yUuPR5Hy.d.ts} +47 -24
- package/dist/unplugin/index.d.ts +1 -1
- package/dist/unplugin/index.js +2 -2
- package/dist/usage-CYeXek0p.js +1 -0
- package/dist/{usage-Bybmck7f.js → usage-CxEzS4ey.js} +50 -26
- package/dist/{usage-CDaLXCfL.js → usage-ab0PdusX.js} +2 -2
- package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
- package/dist/{validation-error-CQpoquwj.d.ts → validation-error-YGg2mXyH.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-DZeqoWu5.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-Bu9zAlE0.d.ts} +13 -10
- package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
- package/dist/{watch-C-4VmFlL.js → watch-Cx_WciLE.js} +8 -8
- package/dist/watch-DB42U1ib.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-rI7dCR9Q.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-DlJE3gS_.d.ts} +8 -5
- package/package.json +7 -7
- 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 +14 -22
- 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,5 +1,5 @@
|
|
|
1
1
|
import { t as defineLeaf } from "./command-L8EstFNm.js";
|
|
2
|
-
import { a as failOnFlag } from "./flags-
|
|
2
|
+
import { a as failOnFlag } from "./flags-DXjoTVbS.js";
|
|
3
3
|
//#region src/cli/commands/config.ts
|
|
4
4
|
const config = defineLeaf({
|
|
5
5
|
flags: {
|
|
@@ -10,7 +10,7 @@ const config = defineLeaf({
|
|
|
10
10
|
...failOnFlag
|
|
11
11
|
},
|
|
12
12
|
async run(ctx, { flags }) {
|
|
13
|
-
const { runConfig } = await import("./config-report-
|
|
13
|
+
const { runConfig } = await import("./config-report-BipSWA6V.js");
|
|
14
14
|
return runConfig({
|
|
15
15
|
cwd: ctx.cwd,
|
|
16
16
|
config: ctx.config,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { a as rel, t as defaultSrcPath } from "./files-
|
|
2
|
-
import { r as CONFIG_REPORT_SCHEMA } from "./version-
|
|
3
|
-
import { n as guessPermissions, t as barrelFile } from "./collect-BaWeMjwV.js";
|
|
1
|
+
import { a as rel, t as defaultSrcPath } from "./files-BSjrtIHw.js";
|
|
2
|
+
import { r as CONFIG_REPORT_SCHEMA } from "./version-DMQ0dnN5.js";
|
|
4
3
|
import { t as catalogPath } from "./catalog-path-CnI0XTFK.js";
|
|
5
|
-
import "./
|
|
6
|
-
import
|
|
4
|
+
import { n as guessPermissions, t as barrelFile } from "./collect-B7ZFAJU3.js";
|
|
5
|
+
import "./sources-CMAM-2A3.js";
|
|
6
|
+
import { t as DOCS_BASE } from "./manifest-Cgiq5oqc.js";
|
|
7
7
|
import { n as MIGRATION_DIRS, t as DEFAULT_SENSITIVE_ACTIONS } from "./constants-DcJABbLW.js";
|
|
8
8
|
//#region src/cli/config-report.ts
|
|
9
9
|
function configReport(input) {
|
|
@@ -27,7 +27,10 @@ function configReport(input) {
|
|
|
27
27
|
warnings: input.warnings
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* `permdock config`: the config's warnings, or with `--print` or `--json` the
|
|
32
|
+
* effective config.
|
|
33
|
+
*/
|
|
31
34
|
function runConfig(input) {
|
|
32
35
|
const report = configReport(input);
|
|
33
36
|
const code = input.strict && report.warnings.length > 0 ? 1 : 0;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
//#region src/cli/project/config-shape.ts
|
|
2
|
+
const STRING = ["string"];
|
|
3
|
+
const BOOLEAN = ["boolean"];
|
|
4
|
+
const ARRAY = ["array"];
|
|
5
|
+
const OBJECT = ["object"];
|
|
6
|
+
const BOOLEAN_OR_OBJECT = ["boolean", "object"];
|
|
7
|
+
const BOOLEAN_OR_ARRAY = ["boolean", "array"];
|
|
8
|
+
const BOOLEAN_OR_STRING = ["boolean", "string"];
|
|
9
|
+
const MODULE = ["string", "object"];
|
|
10
|
+
/**
|
|
11
|
+
* Every key PermDock reads, per section, with the kinds its value may take.
|
|
12
|
+
* `satisfies` ties each list to `keyof` its section type, so a new option
|
|
13
|
+
* cannot ship without the validator knowing it.
|
|
14
|
+
*/
|
|
15
|
+
const CONFIG_SHAPE = {
|
|
16
|
+
collect: {
|
|
17
|
+
srcPath: ARRAY,
|
|
18
|
+
out: STRING,
|
|
19
|
+
barrel: BOOLEAN_OR_STRING
|
|
20
|
+
},
|
|
21
|
+
catalog: { out: STRING },
|
|
22
|
+
openapi: { doc: ARRAY },
|
|
23
|
+
rls: {
|
|
24
|
+
tables: OBJECT,
|
|
25
|
+
dialect: STRING,
|
|
26
|
+
memberships: OBJECT,
|
|
27
|
+
membershipSources: ARRAY,
|
|
28
|
+
suspension: OBJECT,
|
|
29
|
+
functions: OBJECT,
|
|
30
|
+
inlineFunctions: BOOLEAN,
|
|
31
|
+
force: BOOLEAN,
|
|
32
|
+
fixtures: STRING,
|
|
33
|
+
verify: OBJECT,
|
|
34
|
+
tenantClaim: STRING,
|
|
35
|
+
scopeTypes: OBJECT,
|
|
36
|
+
roleClaim: STRING,
|
|
37
|
+
roleValues: OBJECT,
|
|
38
|
+
gucPrefix: STRING,
|
|
39
|
+
out: STRING,
|
|
40
|
+
drizzle: OBJECT,
|
|
41
|
+
prisma: OBJECT,
|
|
42
|
+
schema: STRING,
|
|
43
|
+
authorize: STRING,
|
|
44
|
+
policyPerRole: BOOLEAN,
|
|
45
|
+
customRoles: BOOLEAN_OR_OBJECT,
|
|
46
|
+
triggers: OBJECT,
|
|
47
|
+
audit: OBJECT,
|
|
48
|
+
capabilities: BOOLEAN,
|
|
49
|
+
anonymousSignIns: STRING,
|
|
50
|
+
fields: STRING,
|
|
51
|
+
revokeColumns: BOOLEAN,
|
|
52
|
+
policyName: STRING,
|
|
53
|
+
rbac: OBJECT,
|
|
54
|
+
roles: OBJECT,
|
|
55
|
+
actions: OBJECT,
|
|
56
|
+
helpersOnly: BOOLEAN,
|
|
57
|
+
rowHelpers: BOOLEAN_OR_ARRAY,
|
|
58
|
+
seeds: STRING,
|
|
59
|
+
treeValues: OBJECT,
|
|
60
|
+
trustedReaders: ARRAY,
|
|
61
|
+
migrate: OBJECT,
|
|
62
|
+
shims: BOOLEAN_OR_OBJECT,
|
|
63
|
+
tenants: STRING,
|
|
64
|
+
customRoleWrites: OBJECT,
|
|
65
|
+
anonExecute: BOOLEAN,
|
|
66
|
+
assignments: BOOLEAN_OR_OBJECT,
|
|
67
|
+
approvals: BOOLEAN_OR_OBJECT,
|
|
68
|
+
jsonSchema: BOOLEAN_OR_STRING,
|
|
69
|
+
ownershipTriggers: BOOLEAN_OR_OBJECT,
|
|
70
|
+
readOnlyActors: BOOLEAN_OR_ARRAY,
|
|
71
|
+
apiKeys: BOOLEAN_OR_OBJECT,
|
|
72
|
+
tokenScopes: BOOLEAN,
|
|
73
|
+
realtime: OBJECT,
|
|
74
|
+
storage: OBJECT
|
|
75
|
+
},
|
|
76
|
+
supabase: {
|
|
77
|
+
hook: OBJECT,
|
|
78
|
+
schemas: STRING
|
|
79
|
+
},
|
|
80
|
+
powersync: {
|
|
81
|
+
out: STRING,
|
|
82
|
+
resources: ARRAY,
|
|
83
|
+
action: STRING,
|
|
84
|
+
manifest: STRING
|
|
85
|
+
},
|
|
86
|
+
doctor: {
|
|
87
|
+
sensitiveActions: ARRAY,
|
|
88
|
+
memberships: STRING,
|
|
89
|
+
credentials: STRING,
|
|
90
|
+
clientEntries: ARRAY,
|
|
91
|
+
migrations: ARRAY,
|
|
92
|
+
claims: STRING,
|
|
93
|
+
srcPath: ARRAY,
|
|
94
|
+
sharedTables: ARRAY
|
|
95
|
+
},
|
|
96
|
+
gen: {
|
|
97
|
+
out: STRING,
|
|
98
|
+
kinds: ARRAY,
|
|
99
|
+
fieldMeta: BOOLEAN
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
const MODULE_KEYS = {
|
|
103
|
+
permissions: MODULE,
|
|
104
|
+
policy: MODULE,
|
|
105
|
+
operations: MODULE
|
|
106
|
+
};
|
|
107
|
+
function isSection(key) {
|
|
108
|
+
return Object.hasOwn(CONFIG_SHAPE, key);
|
|
109
|
+
}
|
|
110
|
+
function isModuleKey(key) {
|
|
111
|
+
return Object.hasOwn(MODULE_KEYS, key);
|
|
112
|
+
}
|
|
113
|
+
function kindOf(value) {
|
|
114
|
+
if (Array.isArray(value)) return "array";
|
|
115
|
+
const type = typeof value;
|
|
116
|
+
switch (type) {
|
|
117
|
+
case "string": return "string";
|
|
118
|
+
case "boolean": return "boolean";
|
|
119
|
+
case "number": return "number";
|
|
120
|
+
case "function": return "function";
|
|
121
|
+
case "object": return value === null ? void 0 : "object";
|
|
122
|
+
case "bigint":
|
|
123
|
+
case "symbol":
|
|
124
|
+
case "undefined": return;
|
|
125
|
+
default: return type;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
function describeKinds(kinds) {
|
|
129
|
+
const names = kinds.map((kind) => kind === "array" ? "an array" : kind === "object" ? "an object" : `a ${kind}`);
|
|
130
|
+
const last = names.splice(-1, 1).join("");
|
|
131
|
+
return names.length === 0 ? last : `${names.join(", ")} or ${last}`;
|
|
132
|
+
}
|
|
133
|
+
//#endregion
|
|
134
|
+
export { isSection as a, isModuleKey as i, MODULE_KEYS as n, kindOf as o, describeKinds as r, CONFIG_SHAPE as t };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { r as PermDockRevokedError } from "./errors-
|
|
3
|
-
import { a as durationOf, o as epochSeconds } from "./time-
|
|
2
|
+
import { r as PermDockRevokedError } from "./errors-B6R_lg2a.js";
|
|
3
|
+
import { a as durationOf, o as epochSeconds } from "./time-nR1JesoH.js";
|
|
4
4
|
//#region src/server/connection.ts
|
|
5
5
|
/** `setTimeout` stores delays in a signed 32-bit integer. */
|
|
6
6
|
const MAX_DELAY = 2147483647;
|
|
@@ -99,27 +99,28 @@ async function openConnection(input) {
|
|
|
99
99
|
return true;
|
|
100
100
|
};
|
|
101
101
|
let schedule;
|
|
102
|
+
const step = async () => {
|
|
103
|
+
if (controller.signal.aborted || closed) return;
|
|
104
|
+
let rebuilt;
|
|
105
|
+
try {
|
|
106
|
+
rebuilt = await input.rebuild();
|
|
107
|
+
} catch {
|
|
108
|
+
abort("subject-changed");
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const id = principalId(rebuilt);
|
|
112
|
+
if (id === void 0 || current === void 0 || id !== principalId(current)) {
|
|
113
|
+
abort("subject-changed");
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
if (!await admits(rebuilt)) return;
|
|
117
|
+
current = rebuilt;
|
|
118
|
+
for (const timer of timers) clearTimeout(timer);
|
|
119
|
+
timers.clear();
|
|
120
|
+
schedule?.(rebuilt);
|
|
121
|
+
};
|
|
102
122
|
const revalidate = () => {
|
|
103
|
-
chain = chain.then(
|
|
104
|
-
if (controller.signal.aborted || closed) return;
|
|
105
|
-
let next;
|
|
106
|
-
try {
|
|
107
|
-
next = await input.rebuild();
|
|
108
|
-
} catch {
|
|
109
|
-
abort("subject-changed");
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
const id = principalId(next);
|
|
113
|
-
if (id === void 0 || current === void 0 || id !== principalId(current)) {
|
|
114
|
-
abort("subject-changed");
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
if (!await admits(next)) return;
|
|
118
|
-
current = next;
|
|
119
|
-
for (const timer of timers) clearTimeout(timer);
|
|
120
|
-
timers.clear();
|
|
121
|
-
schedule?.(next);
|
|
122
|
-
}).catch(() => {
|
|
123
|
+
chain = chain.then(step).catch(() => {
|
|
123
124
|
abort("subject-changed");
|
|
124
125
|
});
|
|
125
126
|
};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { n as freezeDeep } from "./freeze-
|
|
1
|
+
import { n as freezeDeep } from "./freeze-jjan0lCv.js";
|
|
2
2
|
//#region src/delivery/connector-schema.ts
|
|
3
3
|
/**
|
|
4
4
|
* `schemas/connector-v1.json`: the body of a PermDock Cloud connector, one
|
|
5
5
|
* `oneOf` branch per kind with a closed `config`. Only the `otlp` and `siem`
|
|
6
|
-
* `headers` maps hold a secret; a store seals their values and lists names
|
|
6
|
+
* `headers` maps hold a secret; a store seals their values and lists names
|
|
7
|
+
* only.
|
|
7
8
|
*/
|
|
8
9
|
const CONNECTOR_SCHEMA = freezeDeep({
|
|
9
10
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import {
|
|
3
|
-
import { n as switchTenant, t as providerStore } from "./provider-store-
|
|
2
|
+
import { a as isPromiseLike } from "./store-options-Dil3lraY.js";
|
|
3
|
+
import { n as switchTenant, t as providerStore } from "./provider-store-CaTv00tr.js";
|
|
4
4
|
import { getContext, onDestroy, setContext } from "svelte";
|
|
5
5
|
import { toStore } from "svelte/store";
|
|
6
6
|
//#region src/svelte/context.ts
|
|
@@ -36,7 +36,8 @@ function connectSvelteStore(options) {
|
|
|
36
36
|
maxAge: options.maxAge,
|
|
37
37
|
onSnapshot: options.onSnapshot,
|
|
38
38
|
onClear: options.onClear,
|
|
39
|
-
approvalInterval: options.approvalInterval
|
|
39
|
+
approvalInterval: options.approvalInterval,
|
|
40
|
+
refreshOn: options.refreshOn
|
|
40
41
|
}), () => ({
|
|
41
42
|
headers: typeof headers === "function" ? headers() : headers,
|
|
42
43
|
fetch: options.fetch,
|
package/dist/convex/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { T as Policy, j as PolicyVocabulary, sr as Principal } from "../policy-types-
|
|
2
|
-
import { u as Permission } from "../permission-types-
|
|
3
|
-
import { a as PermDock } from "../permdock-
|
|
4
|
-
import { a as ProblemDetails, r as PermDockDeniedError } from "../errors-
|
|
5
|
-
import { t as InstanceOptions } from "../instance-options-
|
|
1
|
+
import { T as Policy, j as PolicyVocabulary, sr as Principal } from "../policy-types-CCiDRZBH.js";
|
|
2
|
+
import { u as Permission } from "../permission-types-CAY-GU7e.js";
|
|
3
|
+
import { a as PermDock } from "../permdock-B6Sf4T_S.js";
|
|
4
|
+
import { a as ProblemDetails, r as PermDockDeniedError } from "../errors-zi_4T-rx.js";
|
|
5
|
+
import { t as InstanceOptions } from "../instance-options-B0KXqTrJ.js";
|
|
6
6
|
//#region src/convex/types.d.ts
|
|
7
7
|
type ConvexContextLike = {
|
|
8
8
|
readonly auth?: {
|
|
@@ -20,9 +20,15 @@ type ConvexQueryBuilder = (definition: {
|
|
|
20
20
|
}) => unknown;
|
|
21
21
|
type ConvexPermDockOptions<TCtx, TUser = unknown> = InstanceOptions & {
|
|
22
22
|
readonly subject: ConvexSubject<TCtx, TUser>;
|
|
23
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* The active tenant: a fixed id or a function of the Convex context; a throw
|
|
25
|
+
* is no tenant.
|
|
26
|
+
*/
|
|
24
27
|
readonly tenant?: string | ((ctx: TCtx) => string | undefined | Promise<string | undefined>);
|
|
25
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* The agent or service acting for the subject; anything but an `Actor` is
|
|
30
|
+
* ignored.
|
|
31
|
+
*/
|
|
26
32
|
readonly actor?: (ctx: TCtx) => unknown;
|
|
27
33
|
readonly query?: ConvexQueryBuilder;
|
|
28
34
|
};
|
package/dist/convex/index.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { t as compact } from "../compact-CAf557ZB.js";
|
|
2
|
-
import { n as PermDockValidationError } from "../validation-error-
|
|
3
|
-
import { n as PermDockDeniedError, t as PermDockApprovalRequiredError } from "../errors-
|
|
4
|
-
import { l as withApp } from "../permdock-
|
|
5
|
-
import { n as resolveOrNull, t as buildInstance } from "../build-instance-
|
|
6
|
-
import { n as tenantScope, t as actorFrom } from "../adapter-context-
|
|
2
|
+
import { n as PermDockValidationError } from "../validation-error-CYg2kJEw.js";
|
|
3
|
+
import { n as PermDockDeniedError, t as PermDockApprovalRequiredError } from "../errors-B6R_lg2a.js";
|
|
4
|
+
import { l as withApp } from "../permdock-L-_I_3zP.js";
|
|
5
|
+
import { n as resolveOrNull, t as buildInstance } from "../build-instance-CNWaYJyr.js";
|
|
6
|
+
import { n as tenantScope, t as actorFrom } from "../adapter-context-CIQpQxbE.js";
|
|
7
7
|
//#region src/convex/create.ts
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Convex's runtime sends `data` to the client only for an error carrying this
|
|
10
|
+
* symbol.
|
|
11
|
+
*/
|
|
9
12
|
const CONVEX_ERROR = Symbol.for("ConvexError");
|
|
10
13
|
var ConvexError = class extends Error {
|
|
11
14
|
name = "ConvexError";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { A as memoryCustomRoleSource } from "./src-
|
|
2
|
-
import { c as listPermissions } from "./permission-registry-
|
|
3
|
-
import { f as scopeList } from "./scopes-
|
|
4
|
-
import { y as membershipsClaim } from "./evaluate-
|
|
5
|
-
import { n as parseSnapshot } from "./snapshot-
|
|
6
|
-
import { n as fromSnapshot } from "./from-snapshot-
|
|
7
|
-
import { t as getPermDock } from "./permdock-
|
|
8
|
-
import { c as quoteSqlTable, n as defaultSqlCommand, o as quoteSqlIdent, t as SQL_IDENT } from "./sql-
|
|
9
|
-
import "./budget-
|
|
1
|
+
import { A as memoryCustomRoleSource } from "./src-DZ0l9UAg.js";
|
|
2
|
+
import { c as listPermissions } from "./permission-registry-B8tYxPIt.js";
|
|
3
|
+
import { f as scopeList } from "./scopes-0Up_UA2t.js";
|
|
4
|
+
import { y as membershipsClaim } from "./evaluate-Dd8Ta0Ie.js";
|
|
5
|
+
import { n as parseSnapshot } from "./snapshot-CXlzi69u.js";
|
|
6
|
+
import { n as fromSnapshot } from "./from-snapshot-DCakWRsr.js";
|
|
7
|
+
import { t as getPermDock } from "./permdock-L-_I_3zP.js";
|
|
8
|
+
import { c as quoteSqlTable, n as defaultSqlCommand, o as quoteSqlIdent, t as SQL_IDENT } from "./sql-0WjxIp9g.js";
|
|
9
|
+
import "./budget-BELja5A9.js";
|
|
10
10
|
//#region src/testing/policy-matrix.ts
|
|
11
11
|
function isOutcomeCell(value) {
|
|
12
12
|
return value === "granted" || value === "denied" || value === "approval-required" || value !== null && typeof value === "object" && ("denials" in value || "outcome" in value || "alternatives" in value || "obligations" in value || "deniedBy" in value);
|
|
@@ -38,7 +38,10 @@ function decisionFailures(decision, cell) {
|
|
|
38
38
|
}
|
|
39
39
|
return failures;
|
|
40
40
|
}
|
|
41
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
* `deniedBy`, against the trace of a fresh `explain` call for the same
|
|
43
|
+
* arguments.
|
|
44
|
+
*/
|
|
42
45
|
function deniedByFailures(instance, permission, data, cell) {
|
|
43
46
|
if (typeof cell !== "object" || cell.deniedBy === void 0) return [];
|
|
44
47
|
const explained = instance.explain(permission, data);
|
|
@@ -82,7 +85,10 @@ function pendingCells(policy, config) {
|
|
|
82
85
|
}
|
|
83
86
|
return cells;
|
|
84
87
|
}
|
|
85
|
-
/**
|
|
88
|
+
/**
|
|
89
|
+
* Where each cell sits, without deciding it: a test runner registers one test
|
|
90
|
+
* per cell.
|
|
91
|
+
*/
|
|
86
92
|
function policyMatrixLayout(policy, config) {
|
|
87
93
|
return pendingCells(policy, config).map((cell) => cell.fixture === void 0 ? {
|
|
88
94
|
name: cell.name,
|
|
@@ -152,8 +158,8 @@ function setting(name, value) {
|
|
|
152
158
|
};
|
|
153
159
|
}
|
|
154
160
|
/**
|
|
155
|
-
* The session state the generated helpers read: JWT claims for `supabase`,
|
|
156
|
-
*
|
|
161
|
+
* The session state the generated helpers read: JWT claims for `supabase`, GUCs
|
|
162
|
+
* for `guc` (roles as a comma list, memberships as JSON).
|
|
157
163
|
*/
|
|
158
164
|
function subjectSettings(dialect, subject, gucPrefix, tenantClaim, roleClaim, customRoles, scopes) {
|
|
159
165
|
const roles = subject.roles ?? [];
|
|
@@ -181,8 +187,8 @@ function subjectSettings(dialect, subject, gucPrefix, tenantClaim, roleClaim, cu
|
|
|
181
187
|
return subject.tenant === void 0 ? settings : [...settings, setting(`${gucPrefix}.${tenantClaim}`, subject.tenant)];
|
|
182
188
|
}
|
|
183
189
|
/**
|
|
184
|
-
* The statement a case runs. With field views it reads back only the key, so
|
|
185
|
-
*
|
|
190
|
+
* The statement a case runs. With field views it reads back only the key, so a
|
|
191
|
+
* base table whose restricted columns are revoked does not reject it.
|
|
186
192
|
*/
|
|
187
193
|
function statementSql(action, table, keyOnly) {
|
|
188
194
|
const quoted = quoteSqlTable(table);
|
|
@@ -287,11 +293,11 @@ function subsetOf(small, large) {
|
|
|
287
293
|
}
|
|
288
294
|
/**
|
|
289
295
|
* ORM parity: for each scenario, the rows `permdock.filter()` keeps in memory
|
|
290
|
-
* must be exactly the rows the database returns for
|
|
291
|
-
* With a `relations` option, the graph is loaded
|
|
292
|
-
* in-memory side walks the same graph the database
|
|
293
|
-
* A partial `where()` (a closure grant it cannot compile) may be
|
|
294
|
-
* return fewer rows, never more.
|
|
296
|
+
* must be exactly the rows the database returns for
|
|
297
|
+
* `toWhere(permdock.where())`. With a `relations` option, the graph is loaded
|
|
298
|
+
* for the rows first, so the in-memory side walks the same graph the database
|
|
299
|
+
* query does. A partial `where()` (a closure grant it cannot compile) may be
|
|
300
|
+
* refused or return fewer rows, never more.
|
|
295
301
|
*/
|
|
296
302
|
async function testOrmParity(policy, scenarios, options) {
|
|
297
303
|
const idField = options.id ?? "id";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Ln as Decision, T as Policy, or as Membership, tr as CustomRole } from "./policy-types-
|
|
2
|
-
import { u as Permission } from "./permission-types-
|
|
3
|
-
import {
|
|
1
|
+
import { Ln as Decision, T as Policy, or as Membership, tr as CustomRole } from "./policy-types-CCiDRZBH.js";
|
|
2
|
+
import { u as Permission } from "./permission-types-CAY-GU7e.js";
|
|
3
|
+
import { f as WhereResult, o as PermDockOptions } from "./permdock-B6Sf4T_S.js";
|
|
4
4
|
//#region src/testing/policy-matrix.d.ts
|
|
5
5
|
type MatrixOutcome = "granted" | "denied" | "approval-required";
|
|
6
6
|
type MatrixCell = MatrixOutcome | {
|
|
@@ -10,7 +10,10 @@ type MatrixCell = MatrixOutcome | {
|
|
|
10
10
|
readonly reason: string;
|
|
11
11
|
}[];
|
|
12
12
|
readonly alternatives?: readonly string[];
|
|
13
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* Obligation kinds a granted decision carries, in order; `[]` asserts
|
|
15
|
+
* none.
|
|
16
|
+
*/
|
|
14
17
|
readonly obligations?: readonly string[];
|
|
15
18
|
/** The `name` of the deny grant `explain` reports as the one that won. */
|
|
16
19
|
readonly deniedBy?: string;
|
|
@@ -22,14 +25,18 @@ type DescribePolicyConfig<TSubject> = {
|
|
|
22
25
|
readonly exhaustive?: boolean;
|
|
23
26
|
readonly options?: PermDockOptions;
|
|
24
27
|
/**
|
|
25
|
-
* Also assert every granted or denied cell against
|
|
26
|
-
* the client a Server Component hands
|
|
28
|
+
* Also assert every granted or denied cell against
|
|
29
|
+
* `fromSnapshot(permdock.snapshot())`, the client a Server Component hands
|
|
30
|
+
* down. Closures cannot cross a snapshot and deny on the client.
|
|
27
31
|
*/
|
|
28
32
|
readonly snapshot?: boolean;
|
|
29
33
|
};
|
|
30
34
|
/** One cell of the matrix, decided. */
|
|
31
35
|
type PolicyMatrixCell = {
|
|
32
|
-
/**
|
|
36
|
+
/**
|
|
37
|
+
* `<permission> / <subject>`, or `<permission> / <fixture> / <subject>` for a
|
|
38
|
+
* nested row.
|
|
39
|
+
*/
|
|
33
40
|
readonly name: string;
|
|
34
41
|
readonly permission: string;
|
|
35
42
|
readonly subject: string;
|
|
@@ -84,21 +91,29 @@ type RlsParityOptions = {
|
|
|
84
91
|
readonly fixtures: readonly RlsParityFixture[];
|
|
85
92
|
/**
|
|
86
93
|
* `supabase` and `neon` set `request.jwt.claims`; a test database stubs
|
|
87
|
-
* `auth.jwt()` / `auth.uid()` or `auth.session()` / `auth.user_id()` over
|
|
94
|
+
* `auth.jwt()` / `auth.uid()` or `auth.session()` / `auth.user_id()` over
|
|
95
|
+
* it.
|
|
88
96
|
*/
|
|
89
97
|
readonly dialect?: "supabase" | "neon" | "guc";
|
|
90
98
|
readonly gucPrefix?: string;
|
|
91
99
|
readonly tenantClaim?: string;
|
|
92
|
-
/**
|
|
100
|
+
/**
|
|
101
|
+
* Claim (or `guc` setting) the RLS helpers read global roles from. Default
|
|
102
|
+
* `user_role`.
|
|
103
|
+
*/
|
|
93
104
|
readonly roleClaim?: string;
|
|
94
105
|
readonly role?: "authenticated" | "anon";
|
|
95
106
|
/**
|
|
96
|
-
* Tenant-defined roles the subjects' memberships may hold. `decide` resolves
|
|
97
|
-
* `CustomRoleSource`; each membership's claim carries them as
|
|
98
|
-
* helpers read in `jwt` mode. Seeding the
|
|
107
|
+
* Tenant-defined roles the subjects' memberships may hold. `decide` resolves
|
|
108
|
+
* them through a `CustomRoleSource`; each membership's claim carries them as
|
|
109
|
+
* the compact `grants` map, which the helpers read in `jwt` mode. Seeding the
|
|
110
|
+
* `database`-mode tables is the caller's job.
|
|
99
111
|
*/
|
|
100
112
|
readonly customRoles?: readonly CustomRole[];
|
|
101
|
-
/**
|
|
113
|
+
/**
|
|
114
|
+
* Also decide each case from the subject's serialized snapshot
|
|
115
|
+
* (`fromSnapshot`); it must agree.
|
|
116
|
+
*/
|
|
102
117
|
readonly snapshot?: boolean;
|
|
103
118
|
/**
|
|
104
119
|
* With `rls generate --fields views`: for each instance read, the row of
|
|
@@ -118,7 +133,10 @@ type RlsParityCase = {
|
|
|
118
133
|
readonly database: RlsDbOutcome;
|
|
119
134
|
/** The snapshot's decision, with `snapshot: true`. */
|
|
120
135
|
readonly snapshot?: boolean;
|
|
121
|
-
/**
|
|
136
|
+
/**
|
|
137
|
+
* The field view check, with `fieldViews: true`; `database` is an error code
|
|
138
|
+
* when the read failed.
|
|
139
|
+
*/
|
|
122
140
|
readonly fields?: RlsFieldsOutcome;
|
|
123
141
|
readonly ok: boolean;
|
|
124
142
|
};
|
|
@@ -131,9 +149,15 @@ declare function testRlsParity<TUser>(policy: Policy<TUser>, options: RlsParityO
|
|
|
131
149
|
//#region src/testing/orm-parity.d.ts
|
|
132
150
|
type OrmParityScenario<TUser = unknown> = {
|
|
133
151
|
readonly name: string;
|
|
134
|
-
/**
|
|
152
|
+
/**
|
|
153
|
+
* What the policy's `subject` mapper receives, as in `createPermDock(policy,
|
|
154
|
+
* user)`.
|
|
155
|
+
*/
|
|
135
156
|
readonly user: TUser;
|
|
136
|
-
/**
|
|
157
|
+
/**
|
|
158
|
+
* The active tenant and role sources, as in `createPermDock(policy, user,
|
|
159
|
+
* options)`.
|
|
160
|
+
*/
|
|
137
161
|
readonly options?: PermDockOptions;
|
|
138
162
|
/** An instance permission; its `where()` filters the table. */
|
|
139
163
|
readonly permission: Permission<string, unknown, "instance">;
|
|
@@ -145,7 +169,10 @@ type OrmParityRunInput<TUser = unknown> = {
|
|
|
145
169
|
readonly where: WhereResult;
|
|
146
170
|
};
|
|
147
171
|
type OrmParityOptions<TUser = unknown> = {
|
|
148
|
-
/**
|
|
172
|
+
/**
|
|
173
|
+
* Runs `toWhere(where)` against the database and returns the matching row
|
|
174
|
+
* ids.
|
|
175
|
+
*/
|
|
149
176
|
readonly run: (input: OrmParityRunInput<TUser>) => Promise<readonly unknown[]>;
|
|
150
177
|
/** The row id field; default `id`. */
|
|
151
178
|
readonly id?: string;
|
|
@@ -168,11 +195,11 @@ type OrmParityReport = {
|
|
|
168
195
|
};
|
|
169
196
|
/**
|
|
170
197
|
* ORM parity: for each scenario, the rows `permdock.filter()` keeps in memory
|
|
171
|
-
* must be exactly the rows the database returns for
|
|
172
|
-
* With a `relations` option, the graph is loaded
|
|
173
|
-
* in-memory side walks the same graph the database
|
|
174
|
-
* A partial `where()` (a closure grant it cannot compile) may be
|
|
175
|
-
* return fewer rows, never more.
|
|
198
|
+
* must be exactly the rows the database returns for
|
|
199
|
+
* `toWhere(permdock.where())`. With a `relations` option, the graph is loaded
|
|
200
|
+
* for the rows first, so the in-memory side walks the same graph the database
|
|
201
|
+
* query does. A partial `where()` (a closure grant it cannot compile) may be
|
|
202
|
+
* refused or return fewer rows, never more.
|
|
176
203
|
*/
|
|
177
204
|
declare function testOrmParity<TUser>(policy: Policy<TUser>, scenarios: readonly OrmParityScenario<TUser>[], options: OrmParityOptions<TUser>): Promise<OrmParityReport>;
|
|
178
205
|
//#endregion
|