permdock 0.6.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 +2 -3
- package/dist/{2020-C9VN-x8c.js → 2020-CJbO8Bvz.js} +1 -3
- package/dist/a2a/index.d.ts +7 -7
- package/dist/a2a/index.js +9 -9
- 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-DCYe60Pi.js → adoption-scan-BLs67P1l.js} +5 -5
- package/dist/agent/index.d.ts +3 -3
- package/dist/agent/index.js +1 -1
- package/dist/ai-sdk/index.d.ts +31 -10
- package/dist/ai-sdk/index.js +22 -12
- 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-DvSSPQJX.d.ts → approval-prompt-PYagyQUj.d.ts} +13 -11
- package/dist/approvals/index.d.ts +5 -5
- package/dist/approvals/index.js +7 -7
- package/dist/{approvals-p1PGoVjb.js → approvals-DnIBTuXE.js} +128 -78
- package/dist/{approvers-CqPOLD-o.js → approvers-B4r0N_Uz.js} +8 -2
- package/dist/{arazzo-41WuzHou.js → arazzo-3RhGfkAK.js} +2 -2
- package/dist/{arazzo-CaUVBn7D.js → arazzo-B5-ulWif.js} +6 -6
- package/dist/{args-IIolxxKA.js → args-0FrVs5EH.js} +125 -8
- package/dist/astro/index.d.ts +30 -12
- package/dist/astro/index.js +2 -2
- package/dist/{audience-DabClFLQ.js → audience-BAkBDMqn.js} +8 -8
- package/dist/{auth-DRLEizbL.js → auth--yPyZNgr.js} +21 -10
- package/dist/authzen/index.d.ts +171 -25
- package/dist/authzen/index.js +321 -149
- package/dist/{automation-BNM3TtDo.d.ts → automation-DqEoWHBc.d.ts} +42 -32
- package/dist/{automation-DVjOckjV.js → automation-x3KEUusw.js} +22 -21
- package/dist/base-url-BQbddZO5.js +9 -0
- package/dist/better-auth/index.d.ts +2 -2
- package/dist/better-auth/index.js +13 -7
- package/dist/better-supabase/index.d.ts +392 -220
- package/dist/better-supabase/index.js +293 -152
- package/dist/{bind-DOyrv6zi.d.ts → bind-Cp2hBHzP.d.ts} +27 -12
- package/dist/{bind-CAvgUuKs.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-Bu_eDqYw.js → build-instance-CNWaYJyr.js} +3 -3
- package/dist/{canonical-json-BC8_nMTw.js → canonical-json-DwilZ1iB.js} +6 -3
- package/dist/{capability-N1K9IpqS.js → capability-BqX94r07.js} +31 -25
- package/dist/{capability-Drg-1YhL.d.ts → capability-ChuiONQU.d.ts} +41 -29
- package/dist/{casbin-Dyu2gnUD.js → casbin-H0rKxBx2.js} +16 -8
- package/dist/{casbin-Cr7RLtA3.js → casbin-cbSbhT_k.js} +2 -2
- package/dist/{casl-64gpT-8x.js → casl-C4OINZHI.js} +2 -2
- package/dist/{casl-DjEDhTCP.js → casl-CHHoCldP.js} +19 -10
- package/dist/catalog/index.d.ts +104 -23
- package/dist/catalog/index.js +117 -8
- package/dist/{catalog-HD2gf5mY.js → catalog-BFpz2EmT.js} +57 -26
- package/dist/{catalog-DZVbrF-z.js → catalog-DCspHDc8.js} +3 -3
- package/dist/{catalog-doc-Cdn7-0pQ.js → catalog-doc-DjMKzJp9.js} +53 -16
- package/dist/{catalog-fingerprint-CCP0-yQS.js → catalog-fingerprint-e6aCWosn.js} +19 -15
- package/dist/catalog-mRQQQhNK.js +1 -0
- package/dist/catalog-operations-Dadrl7Z-.js +60 -0
- package/dist/{create-CQWIpUG-.js → challenge-DImNcR7B.js} +157 -39
- 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-CGkP3Z7A.js +40 -0
- 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 +186 -38
- package/dist/cloud/index.js +293 -31
- package/dist/{cloud-ytQ3uviA.js → cloud-BFlGMaak.js} +5 -6
- package/dist/{codemod-5mpSpnUY.js → codemod-DLQ9Zpo4.js} +3 -4
- package/dist/{codemod-ua2hHy7w.js → codemod-DWSN2erG.js} +523 -201
- package/dist/collect-B5BL3klN.js +1 -0
- package/dist/{collect-mLTY4nwb.js → collect-B7ZFAJU3.js} +36 -64
- package/dist/{collect-Ci6akVwH.js → collect-Bzv3le0A.js} +6 -6
- 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-1bsAezL0.d.ts → compile-BFzysW3o.d.ts} +36 -12
- package/dist/{compile-CMqMx_IN.js → compile-EzEMB-7v.js} +77 -33
- package/dist/{completion-BTFrHZhX.js → completion-saoYiRFO.js} +17 -8
- package/dist/config-BwPBfN0t.js +108 -0
- package/dist/{config-Bj2Ixq3d.js → config-DBeXXmBF.js} +2 -2
- package/dist/{config-report-DSpsLpCE.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-CYLQNMYq.js +434 -0
- package/dist/{context-B_u3_bDJ.js → context-BnIzxTNE.js} +4 -3
- package/dist/convex/index.d.ts +13 -7
- package/dist/convex/index.js +9 -6
- package/dist/core-H-mbhpZc.js +341 -0
- package/dist/core-hWIARPDz.d.ts +206 -0
- package/dist/{create-CBMmFie-.d.ts → create-BSNrVuxh.d.ts} +87 -34
- package/dist/{create-B30OMUOJ.d.ts → create-BVq1lNQE.d.ts} +49 -28
- package/dist/{create-D_NmPOdH.d.ts → create-CM1FciYG.d.ts} +37 -29
- package/dist/{create-CGm28gyI.js → create-Cq4Uox0f.js} +13 -9
- package/dist/{create-DCF2SvoT.js → create-_noSrY1T.js} +15 -21
- package/dist/{credential-BcoiejpY.js → credential-CyyyvCsL.js} +42 -39
- package/dist/{credentials-DPyHmYz5.js → credentials-CdDxp7jN.js} +6 -6
- package/dist/{deciding-columns-Sq12mEA6.js → deciding-columns-NB4wcyBf.js} +13 -2
- package/dist/{delegation-j6-rc37o.js → delegation-CDB6_keF.js} +31 -22
- package/dist/delivery/index.d.ts +5 -5
- package/dist/delivery/index.js +6 -5
- package/dist/{delivery-DCAgNyCn.js → delivery-BupfvJIV.js} +81 -20
- package/dist/{delivery-event-xX4obB8F.js → delivery-event-JioK5YbS.js} +6 -6
- package/dist/denied-text-CHNlVInN.d.ts +22 -0
- package/dist/{describe-BybMRY7A.js → describe-Bb4hGK5d.js} +6 -5
- package/dist/{describe-B5qgDvEW.d.ts → describe-ByS9LgHK.d.ts} +5 -5
- package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
- package/dist/{diff-CmuSD3vc.js → diff-CN8IYhC_.js} +2 -2
- package/dist/{diff-3jbx6Rm4.js → diff-iZWV65nC.js} +23 -14
- package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
- package/dist/{doctor-BdZw53-k.js → doctor-CHD1M9R5.js} +485 -141
- package/dist/{doctor-3ZqNHX_G.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-CWTY6uih.js → errors-Vpu6rKHl.js} +14 -10
- package/dist/{errors-DH5QEGXh.d.ts → errors-zi_4T-rx.d.ts} +22 -6
- package/dist/{evaluate-CNClBvcj.js → evaluate-Dd8Ta0Ie.js} +185 -80
- package/dist/{evaluations-beAooV0n.js → evaluations-IBceAeKT.js} +41 -20
- package/dist/{evaluations-C_1vdSZc.d.ts → evaluations-z8dQFDaN.d.ts} +12 -6
- 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-Dw0MTS3D.d.ts → fetch-adapter-C1DCvpqV.d.ts} +9 -6
- package/dist/{fetch-adapter-DD_gfmrC.js → fetch-adapter-JL43jD3E.js} +14 -11
- package/dist/fields-D0vUI6dq.js +498 -0
- package/dist/{files-C5ZI27eV.js → files-B3AA05f1.js} +21 -5
- package/dist/{files-D_JIzUrP.js → files-BSjrtIHw.js} +11 -4
- package/dist/{fixtures-B7XrLeY7.js → fixtures-A1_sp_tR.js} +15 -6
- package/dist/{flags-C3DktBDY.js → flags-DXjoTVbS.js} +2 -2
- package/dist/{freeze-CrU8nQeX.js → freeze-jjan0lCv.js} +4 -1
- package/dist/{from-snapshot-CTCMsFZk.js → from-snapshot-DCakWRsr.js} +26 -16
- package/dist/gen-B5kvbAoZ.js +58 -0
- package/dist/gen-DWCYcMQM.js +827 -0
- package/dist/generate-CRVV5V7l.js +165 -0
- package/dist/generate-CezbCaTI.js +275 -0
- package/dist/{grantee-hxrUsbpM.js → grantee-Dke-9rd1.js} +4 -4
- package/dist/{grantee-conditions-CcXf8hMM.js → grantee-conditions-BrYPe-w0.js} +12 -12
- package/dist/{grantee-match-DbENBHLB.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-CBYVMjwh.js → helpers-DJicaG6f.js} +40 -28
- package/dist/hono/index.d.ts +16 -10
- package/dist/hono/index.js +5 -5
- package/dist/{hosted-BPk51-kX.d.ts → hosted-Cmtxogd0.d.ts} +44 -20
- package/dist/{hosted-B46-5LYE.js → hosted-D0IzESu_.js} +68 -25
- package/dist/{http-ujKm0JXE.js → http-DH94eh6f.js} +4 -4
- package/dist/{http-BBoKefeS.js → http-DKLXrFGk.js} +13 -7
- package/dist/{http-DXJ37RDA.js → http-DOL33cO0.js} +11 -8
- package/dist/{import-wyqXUyjm.js → import-CST57XLp.js} +64 -51
- package/dist/{import-CNV7I2Dw.js → import-_YqhhwvX.js} +6 -6
- package/dist/{index-B8YjkEZ4.d.ts → index-B8s204GL.d.ts} +64 -52
- package/dist/{index-Ch8LpNDp.d.ts → index-BT5-1VsX.d.ts} +64 -25
- package/dist/{index-DuWxc5dt.d.ts → index-BW_0MZOS.d.ts} +388 -149
- package/dist/index-BhxEUY9J.d.ts +233 -0
- package/dist/index-Bv5iXPqU.d.ts +210 -0
- package/dist/{index-C-6Letxg.d.ts → index-_9UiQIkt.d.ts} +164 -77
- package/dist/index.d.ts +22 -21
- package/dist/index.js +35 -33
- package/dist/{init-GG6Jh8HD.js → init-Dz_PsHdv.js} +5 -5
- package/dist/{init-DeMYsnYJ.js → init-cE3A8aXq.js} +10 -10
- package/dist/{instance-options-BsVpyGIk.d.ts → instance-options-B0KXqTrJ.d.ts} +4 -4
- package/dist/{instance-snapshot-BOEhcqIF.js → instance-snapshot--JWiTrvO.js} +81 -56
- 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 +125 -17
- package/dist/jwt/index.js +157 -16
- package/dist/{kernel-D0NVb1cK.js → kernel-C-fYydV2.js} +151 -16
- 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-DFS_ry0W.js → load-DjSU5KXO.js} +6 -6
- package/dist/load-Dm0pSYH3.js +1 -0
- package/dist/{login-Dfe5RlYk.js → login-D-8tMqzo.js} +4 -4
- package/dist/{login-imhuwvn3.js → login-DplQ0s84.js} +18 -15
- package/dist/{manifest-dvL2XEe1.js → manifest-Cgiq5oqc.js} +67 -37
- package/dist/{manifest-mx5ghSFM.d.ts → manifest-CzzWtnAb.d.ts} +144 -28
- package/dist/{manifest-schema-C0kK_8V0.js → manifest-schema-2r37XRhD.js} +80 -9
- package/dist/{manifest-C8IzW3Do.js → manifest-wg8WkkpD.js} +11 -7
- package/dist/{map-claims-D3oRmTk0.js → map-claims-BNWCJtmP.js} +27 -18
- package/dist/{map-error-Dr70oA_3.js → map-error-pasIGqMT.js} +7 -7
- package/dist/{markers-C6joDI3o.js → markers-BeHZ4x9Q.js} +20 -5
- package/dist/mcp/index.d.ts +154 -47
- package/dist/mcp/index.js +200 -41
- package/dist/{migrate-CIq4-E9F.js → migrate-B7oP_sQU.js} +102 -31
- 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 +61 -30
- package/dist/openapi/index.js +2 -2
- package/dist/{openapi-B7HZ0f-r.js → openapi-BOsx0xn9.js} +34 -24
- package/dist/{openapi-C4dDTVEd.js → openapi-CBZUhA3l.js} +4 -5
- package/dist/{openapi-DD1SV-5-.js → openapi-VeHHU2l9.js} +23 -14
- package/dist/{operation-findings-DgATDpvh.js → operation-findings-CXtFzlKJ.js} +3 -3
- package/dist/{operations-X0VM7F3m.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-DhRBBE4n.js → output-files-BIQ_9pIs.js} +29 -17
- package/dist/{output-1im__-08.js → output-tkju6U7R.js} +15 -7
- package/dist/ownership-B4L59T9u.js +1054 -0
- package/dist/parse-1_ZheTW5.js +151 -0
- package/dist/parse-local-manifest-BQhTlLQS.d.ts +10 -0
- package/dist/parse-local-manifest-DEiCF4ah.js +69 -0
- 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 +23 -12
- package/dist/{peer-CRvC7Hg1.js → peer-C9LvBCcb.js} +1 -1
- package/dist/peer-Q0fuZ6hx.js +982 -0
- package/dist/{permdock-SV8ZINYT.d.ts → permdock-B6Sf4T_S.d.ts} +270 -117
- package/dist/{permdock-BrAscV28.js → permdock-L-_I_3zP.js} +226 -74
- package/dist/{permission-registry-Br4jSNVi.js → permission-registry-B8tYxPIt.js} +24 -11
- package/dist/{vocabulary-CN8H_9UF.d.ts → permission-types-CAY-GU7e.d.ts} +130 -104
- package/dist/{permissions-u_KHg-sN.d.ts → permissions-Bx6UI8n1.d.ts} +6 -2
- package/dist/{permissions-B-wCP5ZC.js → permissions-CVXmRILq.js} +3 -3
- package/dist/{permissions-BPxlwVhN.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-CnmmYqUZ.js +21 -0
- package/dist/{policy-77FSAq_V.d.ts → policy-Ba4bDhaj.d.ts} +5 -5
- package/dist/{policy-DbM5YYtV.js → policy-CLQ8__GF.js} +49 -20
- package/dist/{policy-from-catalog-C2gMa2Dj.js → policy-from-catalog-CJgOm6aq.js} +28 -25
- package/dist/{policy-module-CTlwMvLI.js → policy-module-xym9fnSq.js} +12 -6
- package/dist/{policy-types-n0uRTsW8.d.ts → policy-types-CCiDRZBH.d.ts} +802 -334
- package/dist/postgres-store-DcyrPS-r.js +1028 -0
- package/dist/{postgrest-DAjUkF9w.js → postgrest-D4nuPXIQ.js} +88 -36
- package/dist/{postgrest-CEgRbefE.d.ts → postgrest-DicQyqm-.d.ts} +60 -30
- package/dist/powersync-DHNQX06W.js +1117 -0
- package/dist/{powersync-DISt6SUe.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-DZdU0tne.js → preset-BjLzeFpp.js} +58 -34
- 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-BYc6drYW.js +938 -0
- package/dist/protected-action-BE7N_Luo.d.ts +58 -0
- package/dist/protected-action-DUYqb-Ma.js +80 -0
- package/dist/{protected-BlF0F6wL.js → protected-action-QEA8arRB.js} +48 -14
- package/dist/{provider-B1al-AZz.js → provider-C55OGXJ7.js} +5 -4
- package/dist/{provider-DILL9oPK.d.ts → provider-DXfq5c2d.d.ts} +1 -1
- package/dist/{provider-store-DM6DNcta.js → provider-store-CaTv00tr.js} +13 -9
- package/dist/pull-B65ndFNZ.js +1 -0
- package/dist/{pull-jEwbf80J.js → pull-CwpGaQSi.js} +12 -11
- package/dist/{push-BD4f15co.js → push-DgssgzkK.js} +62 -16
- package/dist/{pushed-policy-DCW91KQU.d.ts → pushed-policy-D1Eoi6NM.d.ts} +12 -6
- package/dist/{pushed-policy-CqtxkV4G.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 +104 -51
- package/dist/react-native/index.js +394 -67
- package/dist/{refs-K6eWUJ0H.js → refs-C8BKxc_e.js} +17 -3
- 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-Bkm-Ne4l.d.ts → replay-DNftIb_R.d.ts} +1 -1
- package/dist/{request-context-C81Pip9n.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-CALjIQ7e.js → retire-B2xffQgY.js} +15 -6
- package/dist/{revocations-R07lFBnX.d.ts → revocations-BaUXHM1N.d.ts} +6 -3
- package/dist/{rls-DTvYd-lI.js → rls-CNEH2_BG.js} +743 -624
- package/dist/{rls-BAqP4q66.js → rls-Ca8Jz9b5.js} +41 -10
- package/dist/{role-builder-uWQZ4v84.js → role-builder-BK2-T6oD.js} +41 -20
- package/dist/rolldown-runtime-C3I60J0A.js +4 -0
- package/dist/{row-conditions-h2HythXQ.js → row-conditions-BAGHOmVq.js} +4 -3
- package/dist/{rpc-VSl5ylaQ.js → rpc-fNqAIqQk.js} +8 -5
- package/dist/{run-CUKuz0A8.js → run-Bz26OTfO.js} +26 -23
- package/dist/run-D-JE8QWb.js +1 -0
- package/dist/{run-ticket-DocwaTKn.d.ts → run-ticket-DbWI9f99.d.ts} +33 -13
- package/dist/{run-ticket-sxFI6LAk.js → run-ticket-Dv7aF7Dk.js} +29 -8
- package/dist/{runtime-D3VTAiCA.js → runtime-BGnrOkVH.js} +5 -2
- package/dist/{saas-BCXRuXca.js → saas-iWnUdwCt.js} +42 -29
- package/dist/{scan-qvOe0hS3.js → scan-DCj1KQfn.js} +1 -1
- package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
- package/dist/{schema-yLuBWWsh.js → schema-Dst9I9Gs.js} +9 -5
- package/dist/scim/index.d.ts +3 -2
- package/dist/scim/index.js +3 -1
- package/dist/scim-D8YupzX1.js +44 -0
- package/dist/{scim-ClHtpyV3.js → scim-jJBJ7g1Z.js} +35 -551
- package/dist/{scopes-CUPSjo9q.js → scopes-0Up_UA2t.js} +42 -24
- package/dist/server/index.d.ts +12 -12
- package/dist/server/index.js +13 -13
- package/dist/{server-C3WXAHZj.js → server-3cVlTLde.js} +31 -31
- package/dist/{server-types-CKQiCnON.d.ts → server-types-CIlpSA2G.d.ts} +81 -46
- package/dist/{sha256-D9ihqmvd.js → sha256-C-4WXKIu.js} +4 -3
- package/dist/{shared-BAK8t4Uo.js → shared-Afctg7B0.js} +100 -61
- package/dist/{shared-DvvFzYXe.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-4-eQIRWf.d.ts → sink-Dvi7YZG_.d.ts} +44 -20
- package/dist/{skills-B6lVdD_W.js → skills-Bjj7BNEQ.js} +16 -12
- package/dist/{skills-CTYwkl44.js → skills-OuoMR49L.js} +3 -3
- package/dist/{snapshot-B7DkYg6g.js → snapshot-CXlzi69u.js} +21 -18
- package/dist/{snapshot-cache-PXI-vGpY.d.ts → snapshot-cache-BAXZ0KOp.d.ts} +21 -12
- package/dist/{snapshot-cache-DZHQ0KF6.js → snapshot-cache-Bx_4xC_6.js} +14 -11
- package/dist/solid/index.d.ts +55 -15
- 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-B1Os_YUu.d.ts +312 -0
- package/dist/{sources-vs5dGOsS.js → sources-CMAM-2A3.js} +156 -51
- package/dist/sources-qoIJQrJv.js +11 -0
- package/dist/{sql-B5T1IL83.js → sql-0WjxIp9g.js} +32 -7
- package/dist/sql-B80DFdpG.d.ts +10 -0
- package/dist/{src-Cu2m75uo.js → src-DZ0l9UAg.js} +305 -123
- package/dist/ssf/index.d.ts +4 -4
- package/dist/ssf/index.js +665 -224
- package/dist/{standard-webhooks-rbD7LS6h.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-BDutJkDL.js → store-RNFvaJJv.js} +43 -29
- package/dist/{store-options-u0ycEe8s.js → store-options-Dil3lraY.js} +105 -15
- package/dist/stores-C0Kta5Ft.d.ts +59 -0
- package/dist/{stores-CGhM8BN_.js → stores-DxZWDXCs.js} +42 -5
- package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
- package/dist/{stream-CeCMJmBB.d.ts → stream-ltuLdtTG.d.ts} +4 -3
- package/dist/{style-DiKWnAvn.js → style-DblOtSga.js} +1 -1
- package/dist/{style-Uao76wO7.js → style-Ds11Hmk4.js} +3 -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 -37
- package/dist/supabase/index.js +6 -6
- package/dist/supabase/middleware.d.ts +19 -13
- package/dist/supabase/middleware.js +7 -7
- package/dist/{supabase-x5JtR2tc.js → supabase-BL1qJzzY.js} +82 -36
- package/dist/{supabase-By_frk3U.js → supabase-D39cuGPt.js} +3 -3
- package/dist/{supabase-hook-BMoEhZir.js → supabase-hook-B-yXnzUl.js} +1206 -286
- package/dist/supabase-hook-H-MtE9Wd.js +1 -0
- package/dist/supautils-BU-pAEpf.js +808 -0
- package/dist/{support-session-C6xJQYut.js → support-session-BsmPCbz8.js} +22 -22
- 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-DqaJNJPn.js → tables-DeMNEy6V.js} +1025 -1085
- 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-DN2QAx9z.js → tenancy-5d1zVBvK.js} +36 -21
- package/dist/terminal/index.d.ts +23 -14
- package/dist/terminal/index.js +17 -20
- package/dist/testing/core.d.ts +2 -0
- package/dist/testing/core.js +1 -0
- package/dist/testing/fixtures/index.d.ts +15 -0
- package/dist/testing/fixtures/index.js +831 -0
- package/dist/testing/index.d.ts +235 -285
- package/dist/testing/index.js +502 -927
- 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-BtfSmdUo.js +444 -0
- package/dist/{thenable-yD7SabqG.js → thenable-BNSM1U2R.js} +12 -3
- package/dist/{time-DkWjdL98.js → time-nR1JesoH.js} +32 -8
- package/dist/{token-BLZcjQgt.js → token-DC9EQiet.js} +15 -13
- package/dist/{tool-refusal-CMLN5xhn.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-8RnwUAvE.d.ts → types-AMJ5qoU_.d.ts} +49 -30
- package/dist/{types-C_IiEs64.d.ts → types-B2mlGuhW.d.ts} +14 -11
- package/dist/{types-_WhUP7ud.d.ts → types-B4uqKDnp.d.ts} +25 -12
- package/dist/{types-CX7AvRqP.d.ts → types-BJk0BKRX.d.ts} +24 -14
- package/dist/types-B_d_g7T3.d.ts +262 -0
- package/dist/{types-BdtSDbBO.d.ts → types-B_tiYvk8.d.ts} +59 -32
- package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
- package/dist/{types-Dfv0aTER.d.ts → types-DC1Loeh3.d.ts} +449 -168
- package/dist/{types-lUlG3TVd.d.ts → types-DHKPcqzr.d.ts} +2 -2
- package/dist/{types-C791HFu9.d.ts → types-DjuMBNF9.d.ts} +68 -32
- package/dist/{types-C863OQiR.d.ts → types-HzqOtvsJ.d.ts} +23 -12
- package/dist/{types-Druu9wLM.d.ts → types-ZzRGoViD.d.ts} +77 -24
- package/dist/{types-BzzaHxt3.d.ts → types-ah9NlU6j.d.ts} +137 -48
- package/dist/{types-CVZSNocA.d.ts → types-djVzLlIV.d.ts} +31 -14
- package/dist/{types-BtHtcKMr.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-SveTRTyr.js → usage-CxEzS4ey.js} +50 -26
- package/dist/{usage-CRVl9V3t.js → usage-ab0PdusX.js} +2 -2
- package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
- package/dist/{validation-error-DHUrAkku.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-BaAKx7t6.js → verify-DZeqoWu5.js} +417 -489
- package/dist/version-DMQ0dnN5.js +48 -0
- package/dist/version-DizhmD72.js +1 -0
- package/dist/{views-DTIIO-oQ.js → views-CD8wuL4Z.js} +19 -6
- package/dist/vocabulary-DEJ5j4mR.d.ts +70 -0
- package/dist/vue/index.d.ts +71 -21
- package/dist/vue/index.js +50 -13
- package/dist/{waiter-B986w1oK.d.ts → waiter-Bu9zAlE0.d.ts} +13 -10
- package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
- package/dist/{watch-vea54PRw.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-C9vfEphl.js → where-scope-DlCdCM_8.js} +56 -30
- package/dist/{who-can-DWBAcaCQ.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-gX61EtpB.js → wrap-B2wziJI_.js} +11 -5
- package/dist/{wrap-C5jC6sKI.d.ts → wrap-DlJE3gS_.d.ts} +8 -5
- package/package.json +25 -14
- package/schemas/catalog-v1.json +3 -0
- package/schemas/cli-result-v1.json +1 -0
- package/schemas/cloud-api-v1.json +152 -7
- package/schemas/connector-v1.json +8 -0
- package/schemas/supabase-claims-v1.json +5 -0
- package/schemas/supabase-manifest-v1.json +308 -75
- package/skills/permdock/SKILL.md +1 -0
- package/skills/permdock-agents/references/runtimes.md +3 -1
- package/skills/permdock-approvals/references/stores-and-resume.md +2 -1
- package/skills/permdock-credentials/references/tokens-keys-links.md +8 -6
- package/skills/permdock-data/references/queries-and-rls.md +6 -2
- package/skills/permdock-tenancy/SKILL.md +1 -1
- package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -1
- package/skills/permdock-wire/references/adapters.md +28 -22
- package/skills/permdock-wire/references/policy-options.md +1 -0
- package/dist/catalog-BoWglDPI.js +0 -1
- package/dist/collect-D7eQDffE.js +0 -1
- package/dist/config-bs_kZeYq.js +0 -162
- package/dist/denied-text-CiFQNuMV.d.ts +0 -19
- package/dist/fields-OYG_JR78.js +0 -203
- package/dist/generate-CNU1pIOo.js +0 -171
- package/dist/headers-BIjfMaoC.js +0 -8
- package/dist/headers-CIbDTUTK.d.ts +0 -7
- package/dist/index-Cp_ilKi1.d.ts +0 -91
- package/dist/index-CueFnxQc.d.ts +0 -110
- package/dist/load-BxEtwlBS.js +0 -1
- package/dist/output-files-B3IZJksC.js +0 -1
- package/dist/package-root-Dk_ETdkp.js +0 -31
- package/dist/parse-Cxq0WxrA.js +0 -53
- package/dist/parse-local-manifest-5ODwqu8b.d.ts +0 -10
- package/dist/parse-local-manifest-CVSs6J9I.js +0 -34
- package/dist/peer-C8swJ2GH.js +0 -50
- package/dist/policies-DP2nqRoF.js +0 -295
- package/dist/powersync-BkWWCS1K.js +0 -538
- package/dist/powersync-MMJ2mI2q.js +0 -1
- package/dist/problem-details-B45V5d2b.d.ts +0 -7
- package/dist/prompt-DfZLJLIn.js +0 -32
- package/dist/protected-RFGpakN9.d.ts +0 -38
- package/dist/pull-CvpINcMK.js +0 -1
- package/dist/run-DDwUaJDU.js +0 -1
- package/dist/sources-Xc4zkszI.d.ts +0 -190
- package/dist/stores-BUGNbJTt.d.ts +0 -30
- package/dist/supabase-hook-CCw5m35C.js +0 -1
- package/dist/supautils-B6HYL9eL.js +0 -91
- package/dist/text-diff-BQcUapOb.js +0 -15
- package/dist/types-B3_ooZgZ.d.ts +0 -172
- package/dist/usage-CZpSQP6L.js +0 -1
- package/dist/version-CEbQ5UeM.js +0 -18
- package/dist/version-DXkYUISx.js +0 -1
- package/dist/watch--ovlPOc0.js +0 -1
|
@@ -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-Djf-zCpB.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-Djf-zCpB.js");
|
|
49
49
|
return runPowerSync({
|
|
50
50
|
cwd: ctx.cwd,
|
|
51
51
|
config: ctx.config,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { n as runPowerSync } from "./powersync-DHNQX06W.js";
|
package/dist/preset/index.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
//#region src/preset/catalog.d.ts
|
|
2
2
|
/**
|
|
3
|
-
* The preset catalogue: every choice `/create` and `permdock init` offer.
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* slot as `retired`.
|
|
3
|
+
* The preset catalogue: every choice `/create` and `permdock init` offer. Each
|
|
4
|
+
* list is append-only and its order is part of the preset code (`codec.ts`): a
|
|
5
|
+
* new choice goes at the end, and a removed one keeps its slot as `retired`.
|
|
7
6
|
*/
|
|
8
7
|
type ArchetypeId = "b2b" | "agent" | "marketplace" | "api" | "internal" | "consumer";
|
|
9
8
|
type FeatureId = "tenancy" | "custom-roles" | "approvals" | "operations" | "decision-log" | "limits" | "plans" | "ownership" | "api-keys" | "rls";
|
|
@@ -33,13 +32,16 @@ export declare const AUTH: readonly Choice<AuthId>[];
|
|
|
33
32
|
export declare const BACKENDS: readonly Choice<BackendId>[];
|
|
34
33
|
export declare const FRAMEWORKS: readonly Choice<FrameworkId>[];
|
|
35
34
|
/**
|
|
36
|
-
* Agent runtimes and UI recipes. The preset code keeps one bitset per
|
|
37
|
-
*
|
|
38
|
-
*
|
|
35
|
+
* Agent runtimes and UI recipes. The preset code keeps one bitset per `kind`,
|
|
36
|
+
* each in this list's order, so a new entry goes after the last one of its
|
|
37
|
+
* kind.
|
|
39
38
|
*/
|
|
40
39
|
export declare const INTEGRATIONS: readonly Integration[];
|
|
41
40
|
export declare const SERVICES: readonly Choice<ServiceId>[];
|
|
42
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
* A complete preset: every choice `/create` and `permdock init` offer,
|
|
43
|
+
* resolved.
|
|
44
|
+
*/
|
|
43
45
|
type Preset = {
|
|
44
46
|
readonly archetype: ArchetypeId;
|
|
45
47
|
readonly features: readonly FeatureId[];
|
|
@@ -49,7 +51,10 @@ type Preset = {
|
|
|
49
51
|
readonly integrations: readonly IntegrationId[];
|
|
50
52
|
readonly services: readonly ServiceId[];
|
|
51
53
|
};
|
|
52
|
-
/**
|
|
54
|
+
/**
|
|
55
|
+
* What a person picks; `resolvePreset` fills in the rest from
|
|
56
|
+
* `PRESET_DEFAULTS`.
|
|
57
|
+
*/
|
|
53
58
|
type PresetInput = Partial<Preset> & {
|
|
54
59
|
readonly archetype: ArchetypeId;
|
|
55
60
|
};
|
|
@@ -58,10 +63,9 @@ export declare const PRESET_DEFAULTS: Preset;
|
|
|
58
63
|
/** The integrations of one `kind` in `preset`, in catalogue order. */
|
|
59
64
|
export declare function integrationsOf(preset: Pick<Preset, "integrations">, kind: IntegrationKind): IntegrationId[];
|
|
60
65
|
/**
|
|
61
|
-
* The preset `input` describes, with every feature its archetype,
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
* no-op.
|
|
66
|
+
* The preset `input` describes, with every feature its archetype, integrations
|
|
67
|
+
* and other features require turned on, and lists in catalogue order. Features
|
|
68
|
+
* are only ever added, so resolving twice is a no-op.
|
|
65
69
|
*/
|
|
66
70
|
export declare function resolvePreset(input: PresetInput): Preset;
|
|
67
71
|
//#endregion
|
|
@@ -69,22 +73,25 @@ export declare function resolvePreset(input: PresetInput): Preset;
|
|
|
69
73
|
/** The preset code for `preset`, such as `p1AQIDBAc`. */
|
|
70
74
|
export declare function encodePreset(preset: Preset): string;
|
|
71
75
|
/**
|
|
72
|
-
* The preset a code stands for, resolved, or `undefined` for a code that
|
|
73
|
-
*
|
|
76
|
+
* The preset a code stands for, resolved, or `undefined` for a code that is not
|
|
77
|
+
* a version this package reads or does not decode.
|
|
74
78
|
*/
|
|
75
79
|
export declare function decodePreset(code: string): Preset | undefined;
|
|
76
80
|
//#endregion
|
|
77
81
|
//#region src/preset/flags.d.ts
|
|
78
|
-
/**
|
|
82
|
+
/**
|
|
83
|
+
* One `permdock init` flag per preset key, with the catalogue it takes values
|
|
84
|
+
* from.
|
|
85
|
+
*/
|
|
79
86
|
export declare const PRESET_FLAGS: { readonly [K in keyof Preset]: {
|
|
80
87
|
readonly flag: string;
|
|
81
88
|
readonly choices: readonly Choice<string>[];
|
|
82
89
|
readonly repeatable: boolean;
|
|
83
90
|
}; };
|
|
84
91
|
/**
|
|
85
|
-
* The `permdock init` flags that select `preset`, leaving out defaults and
|
|
86
|
-
*
|
|
87
|
-
*
|
|
92
|
+
* The `permdock init` flags that select `preset`, leaving out defaults and the
|
|
93
|
+
* features its archetype and integrations already turn on, so `permdock init
|
|
94
|
+
* <flags>` resolves to the same preset.
|
|
88
95
|
*/
|
|
89
96
|
export declare function presetFlags(preset: Preset): string[];
|
|
90
97
|
//#endregion
|
|
@@ -94,9 +101,9 @@ type GeneratedFile = {
|
|
|
94
101
|
readonly path: string;
|
|
95
102
|
readonly contents: string;
|
|
96
103
|
/**
|
|
97
|
-
* `owned`: the application's own code, edited freely and never
|
|
98
|
-
*
|
|
99
|
-
*
|
|
104
|
+
* `owned`: the application's own code, edited freely and never rewritten by
|
|
105
|
+
* an update. Every generated file is owned; rules, checks and verification
|
|
106
|
+
* stay in the `permdock` package, which these files only call.
|
|
100
107
|
*/
|
|
101
108
|
readonly kind: "owned";
|
|
102
109
|
};
|
|
@@ -113,9 +120,9 @@ type GeneratedPreset = {
|
|
|
113
120
|
readonly docs: readonly string[];
|
|
114
121
|
};
|
|
115
122
|
/**
|
|
116
|
-
* The files, dependencies and recipes for `preset`. Pure: no file system
|
|
117
|
-
*
|
|
118
|
-
*
|
|
123
|
+
* The files, dependencies and recipes for `preset`. Pure: no file system and no
|
|
124
|
+
* network, so the same function runs in the CLI, in a registry route and in the
|
|
125
|
+
* browser preview on /create.
|
|
119
126
|
*/
|
|
120
127
|
export declare function generatePreset(preset: Preset, options?: {
|
|
121
128
|
readonly src?: string;
|
|
@@ -124,7 +131,10 @@ export declare function generatePreset(preset: Preset, options?: {
|
|
|
124
131
|
//#region src/preset/matrix.d.ts
|
|
125
132
|
/** How one role reaches one action under a preset. */
|
|
126
133
|
type MatrixAccess = {
|
|
127
|
-
/**
|
|
134
|
+
/**
|
|
135
|
+
* `allow`: always; `own`: on rows it owns; `pro`: on the pro plan; `none`:
|
|
136
|
+
* never.
|
|
137
|
+
*/
|
|
128
138
|
readonly access: "allow" | "own" | "pro" | "none";
|
|
129
139
|
readonly approval: boolean;
|
|
130
140
|
readonly limit: boolean;
|
|
@@ -138,8 +148,8 @@ type PresetMatrix = {
|
|
|
138
148
|
}[];
|
|
139
149
|
};
|
|
140
150
|
/**
|
|
141
|
-
* Who may do what under `preset`, from the same model the generated policy
|
|
142
|
-
*
|
|
151
|
+
* Who may do what under `preset`, from the same model the generated policy is
|
|
152
|
+
* written from, for a page that shows the policy without running it.
|
|
143
153
|
*/
|
|
144
154
|
export declare function presetMatrix(preset: Preset): PresetMatrix;
|
|
145
155
|
//#endregion
|
package/dist/preset/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { s as ARCHETYPES, c as AUTH, l as BACKENDS, u as FEATURES, d as FRAMEWORKS, f as INTEGRATIONS, p as PRESET_DEFAULTS, r as PRESET_FLAGS, m as SERVICES, a as decodePreset, o as encodePreset, n as generatePreset, h as integrationsOf, i as presetFlags, t as presetMatrix, g as resolvePreset } from "../preset-
|
|
1
|
+
export { s as ARCHETYPES, c as AUTH, l as BACKENDS, u as FEATURES, d as FRAMEWORKS, f as INTEGRATIONS, p as PRESET_DEFAULTS, r as PRESET_FLAGS, m as SERVICES, a as decodePreset, o as encodePreset, n as generatePreset, h as integrationsOf, i as presetFlags, t as presetMatrix, g as resolvePreset } from "../preset-BjLzeFpp.js";
|
|
@@ -178,9 +178,9 @@ const FRAMEWORKS = [
|
|
|
178
178
|
}
|
|
179
179
|
];
|
|
180
180
|
/**
|
|
181
|
-
* Agent runtimes and UI recipes. The preset code keeps one bitset per
|
|
182
|
-
*
|
|
183
|
-
*
|
|
181
|
+
* Agent runtimes and UI recipes. The preset code keeps one bitset per `kind`,
|
|
182
|
+
* each in this list's order, so a new entry goes after the last one of its
|
|
183
|
+
* kind.
|
|
184
184
|
*/
|
|
185
185
|
const INTEGRATIONS = [
|
|
186
186
|
{
|
|
@@ -250,10 +250,9 @@ function requiredBy(choices, picked) {
|
|
|
250
250
|
return choices.filter((choice) => picked.includes(choice.id)).flatMap((choice) => choice.requires ?? []);
|
|
251
251
|
}
|
|
252
252
|
/**
|
|
253
|
-
* The preset `input` describes, with every feature its archetype,
|
|
254
|
-
*
|
|
255
|
-
*
|
|
256
|
-
* no-op.
|
|
253
|
+
* The preset `input` describes, with every feature its archetype, integrations
|
|
254
|
+
* and other features require turned on, and lists in catalogue order. Features
|
|
255
|
+
* are only ever added, so resolving twice is a no-op.
|
|
257
256
|
*/
|
|
258
257
|
function resolvePreset(input) {
|
|
259
258
|
const integrations = INTEGRATIONS.map((item) => item.id).filter((id) => (input.integrations ?? PRESET_DEFAULTS.integrations).includes(id));
|
|
@@ -282,12 +281,12 @@ function resolvePreset(input) {
|
|
|
282
281
|
//#endregion
|
|
283
282
|
//#region src/preset/codec.ts
|
|
284
283
|
/**
|
|
285
|
-
* Preset codes: `p1` followed by base64url bytes. Version 1 packs, in
|
|
286
|
-
*
|
|
287
|
-
*
|
|
288
|
-
*
|
|
289
|
-
*
|
|
290
|
-
*
|
|
284
|
+
* Preset codes: `p1` followed by base64url bytes. Version 1 packs, in order,
|
|
285
|
+
* one byte each for the archetype, auth, backend and framework index, then a
|
|
286
|
+
* bitset per multi-select list (features, agent integrations, UI integrations,
|
|
287
|
+
* services), each as many bytes as the list needs. A list only grows at the
|
|
288
|
+
* end, so a code keeps its meaning as the catalogue grows; a new layout gets a
|
|
289
|
+
* new version prefix.
|
|
291
290
|
*/
|
|
292
291
|
const VERSION = "p1";
|
|
293
292
|
const AGENT_INTEGRATIONS = INTEGRATIONS.filter((item) => item.kind === "agent");
|
|
@@ -349,8 +348,8 @@ function encodePreset(preset) {
|
|
|
349
348
|
]);
|
|
350
349
|
}
|
|
351
350
|
/**
|
|
352
|
-
* The preset a code stands for, resolved, or `undefined` for a code that
|
|
353
|
-
*
|
|
351
|
+
* The preset a code stands for, resolved, or `undefined` for a code that is not
|
|
352
|
+
* a version this package reads or does not decode.
|
|
354
353
|
*/
|
|
355
354
|
function decodePreset(code) {
|
|
356
355
|
if (!code.startsWith(VERSION)) return;
|
|
@@ -384,7 +383,10 @@ function decodePreset(code) {
|
|
|
384
383
|
}
|
|
385
384
|
//#endregion
|
|
386
385
|
//#region src/preset/flags.ts
|
|
387
|
-
/**
|
|
386
|
+
/**
|
|
387
|
+
* One `permdock init` flag per preset key, with the catalogue it takes values
|
|
388
|
+
* from.
|
|
389
|
+
*/
|
|
388
390
|
const PRESET_FLAGS = {
|
|
389
391
|
archetype: {
|
|
390
392
|
flag: "archetype",
|
|
@@ -423,9 +425,9 @@ const PRESET_FLAGS = {
|
|
|
423
425
|
}
|
|
424
426
|
};
|
|
425
427
|
/**
|
|
426
|
-
* The `permdock init` flags that select `preset`, leaving out defaults and
|
|
427
|
-
*
|
|
428
|
-
*
|
|
428
|
+
* The `permdock init` flags that select `preset`, leaving out defaults and the
|
|
429
|
+
* features its archetype and integrations already turn on, so `permdock init
|
|
430
|
+
* <flags>` resolves to the same preset.
|
|
429
431
|
*/
|
|
430
432
|
function presetFlags(preset) {
|
|
431
433
|
const implied = resolvePreset({
|
|
@@ -867,9 +869,9 @@ function quote(value) {
|
|
|
867
869
|
return JSON.stringify(value);
|
|
868
870
|
}
|
|
869
871
|
/**
|
|
870
|
-
* An environment read in the generated code. Built from parts so this
|
|
871
|
-
*
|
|
872
|
-
*
|
|
872
|
+
* An environment read in the generated code. Built from parts so this runtime
|
|
873
|
+
* chunk carries no `process.` token, which the WinterTC check reads as a Node
|
|
874
|
+
* global; the generated file has it whole.
|
|
873
875
|
*/
|
|
874
876
|
function env(name) {
|
|
875
877
|
return ["process", `env[${quote(name)}]`].join(".");
|
|
@@ -1224,7 +1226,10 @@ function backendFiles(ctx) {
|
|
|
1224
1226
|
default: return ctx.preset.backend;
|
|
1225
1227
|
}
|
|
1226
1228
|
}
|
|
1227
|
-
/**
|
|
1229
|
+
/**
|
|
1230
|
+
* What `permdock.ts` adds for the backend: imports, statements before
|
|
1231
|
+
* `defineApp`, and its options.
|
|
1232
|
+
*/
|
|
1228
1233
|
function backendApp(ctx) {
|
|
1229
1234
|
if (ctx.preset.backend !== "supabase") return {
|
|
1230
1235
|
imports: [],
|
|
@@ -1286,7 +1291,10 @@ ${entries.join("\n")}
|
|
|
1286
1291
|
});
|
|
1287
1292
|
`;
|
|
1288
1293
|
}
|
|
1289
|
-
/**
|
|
1294
|
+
/**
|
|
1295
|
+
* What a role's grant becomes under the preset's features; the matrix and the
|
|
1296
|
+
* code read the same answer.
|
|
1297
|
+
*/
|
|
1290
1298
|
function grantShape(preset, role, grant) {
|
|
1291
1299
|
const has = (feature) => preset.features.includes(feature);
|
|
1292
1300
|
const resource = DOMAINS[preset.archetype].resources.find((item) => item.name === grant.resource);
|
|
@@ -1378,7 +1386,7 @@ function appFile(ctx) {
|
|
|
1378
1386
|
const services = ctx.preset.services;
|
|
1379
1387
|
const cloudServices = services.length > 0;
|
|
1380
1388
|
if (cloudServices) preamble.push(`import { cloud } from "permdock/cloud";`);
|
|
1381
|
-
if (services.includes("cloud-hosted-grants")) preamble.push(`import {
|
|
1389
|
+
if (services.includes("cloud-hosted-grants")) preamble.push(`import { joseTokenVerifier } from "permdock/jwt";`);
|
|
1382
1390
|
if (ctx.has("decision-log")) {
|
|
1383
1391
|
if (services.includes("cloud-decision-log")) lines.push(" sink: permdockCloud.sink,");
|
|
1384
1392
|
else {
|
|
@@ -1397,7 +1405,7 @@ function appFile(ctx) {
|
|
|
1397
1405
|
valueImports.add("hostedPolicies");
|
|
1398
1406
|
lines.push(" policies: hostedPolicies(permdockCloud.policies),");
|
|
1399
1407
|
}
|
|
1400
|
-
const cloudCall = services.includes("cloud-hosted-grants") ? `cloud({\n verifier:
|
|
1408
|
+
const cloudCall = services.includes("cloud-hosted-grants") ? `cloud({\n verifier: ({ jwks }) => joseTokenVerifier({ jwks }),\n})` : "cloud()";
|
|
1401
1409
|
const snapshots = services.includes("cloud-snapshots") ? `\n/** A client's signed snapshot, served by PermDock Cloud for the caller's token. */\nexport const snapshotsFor = (token: string) => permdockCloud.snapshotsFor(token);\n` : "";
|
|
1402
1410
|
const cloudLine = cloudServices ? `\n// PERMDOCK_CLOUD_URL and PERMDOCK_CLOUD_KEY come from the environment.\nexport const permdockCloud = ${cloudCall};\n${snapshots}` : "";
|
|
1403
1411
|
const backend = backendApp(ctx);
|
|
@@ -1607,8 +1615,21 @@ export function decideReadKey(permdock: PermDock, id: string) {
|
|
|
1607
1615
|
}
|
|
1608
1616
|
function rlsOption(ctx) {
|
|
1609
1617
|
if (!ctx.has("rls")) return null;
|
|
1610
|
-
|
|
1611
|
-
|
|
1618
|
+
return ctx.preset.backend === "supabase" ? `supabaseRls({${ctx.has("tenancy") ? `\n memberships: {
|
|
1619
|
+
table: "org_members",
|
|
1620
|
+
tenant: "org_id",
|
|
1621
|
+
user: "user_id",
|
|
1622
|
+
role: "role",
|
|
1623
|
+
},\n ` : ""}})` : `{\n dialect: "guc",${ctx.has("tenancy") ? `\n memberships: {
|
|
1624
|
+
scopes: {
|
|
1625
|
+
tenant: {
|
|
1626
|
+
table: "org_members",
|
|
1627
|
+
columns: { tenant: "org_id" },
|
|
1628
|
+
user: "user_id",
|
|
1629
|
+
role: "role",
|
|
1630
|
+
},
|
|
1631
|
+
},
|
|
1632
|
+
},` : ""}\n }`;
|
|
1612
1633
|
}
|
|
1613
1634
|
function configFile(ctx) {
|
|
1614
1635
|
const rls = rlsOption(ctx);
|
|
@@ -1626,7 +1647,10 @@ ${options.join("\n")}
|
|
|
1626
1647
|
});
|
|
1627
1648
|
`);
|
|
1628
1649
|
}
|
|
1629
|
-
/**
|
|
1650
|
+
/**
|
|
1651
|
+
* The `@permdock` registry recipes for the preset's UI; native has the gate and
|
|
1652
|
+
* the upgrade prompt.
|
|
1653
|
+
*/
|
|
1630
1654
|
function recipesFor(ctx) {
|
|
1631
1655
|
const web = ["gated-button"];
|
|
1632
1656
|
if (ctx.has("approvals")) web.push("approval-request-dialog");
|
|
@@ -1675,9 +1699,9 @@ function docsFor(ctx) {
|
|
|
1675
1699
|
return [...new Set(docs)];
|
|
1676
1700
|
}
|
|
1677
1701
|
/**
|
|
1678
|
-
* The files, dependencies and recipes for `preset`. Pure: no file system
|
|
1679
|
-
*
|
|
1680
|
-
*
|
|
1702
|
+
* The files, dependencies and recipes for `preset`. Pure: no file system and no
|
|
1703
|
+
* network, so the same function runs in the CLI, in a registry route and in the
|
|
1704
|
+
* browser preview on /create.
|
|
1681
1705
|
*/
|
|
1682
1706
|
function generatePreset(preset, options = {}) {
|
|
1683
1707
|
const ctx = {
|
|
@@ -1713,8 +1737,8 @@ const NONE = {
|
|
|
1713
1737
|
limit: false
|
|
1714
1738
|
};
|
|
1715
1739
|
/**
|
|
1716
|
-
* Who may do what under `preset`, from the same model the generated policy
|
|
1717
|
-
*
|
|
1740
|
+
* Who may do what under `preset`, from the same model the generated policy is
|
|
1741
|
+
* written from, for a page that shows the policy without running it.
|
|
1718
1742
|
*/
|
|
1719
1743
|
function presetMatrix(preset) {
|
|
1720
1744
|
const domain = DOMAINS[preset.archetype];
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { t as freezeCopy } from "./freeze-
|
|
2
|
-
import { a as ownRecord } from "./paths-
|
|
1
|
+
import { t as freezeCopy } from "./freeze-jjan0lCv.js";
|
|
2
|
+
import { a as ownRecord } from "./paths-CUvURzHp.js";
|
|
3
3
|
//#region src/core/principal-source.ts
|
|
4
4
|
function nonEmpty(value) {
|
|
5
5
|
return typeof value === "string" && value.trim() !== "";
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
8
|
* A `PrincipalIdentity` in the form sources compare: an email trimmed and
|
|
9
|
-
* lower-cased with no provider or workspace, a chat identity with a
|
|
10
|
-
*
|
|
9
|
+
* lower-cased with no provider or workspace, a chat identity with a provider.
|
|
10
|
+
* Anything else, inherited fields included, is `undefined`.
|
|
11
11
|
*/
|
|
12
12
|
function normalizeIdentity(value) {
|
|
13
13
|
const record = ownRecord(value);
|
|
@@ -55,9 +55,9 @@ async function loadPrincipal(source, id, tenant) {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
/**
|
|
58
|
-
* `source.principalByIdentity(identity)` over the normalised identity,
|
|
59
|
-
*
|
|
60
|
-
*
|
|
58
|
+
* `source.principalByIdentity(identity)` over the normalised identity, failing
|
|
59
|
+
* closed: no source or method, an invalid identity, `null`, a throw or a
|
|
60
|
+
* rejection is `null`.
|
|
61
61
|
*/
|
|
62
62
|
async function loadPrincipalByIdentity(source, identity) {
|
|
63
63
|
const normalized = normalizeIdentity(identity);
|
|
@@ -69,9 +69,9 @@ async function loadPrincipalByIdentity(source, identity) {
|
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
72
|
-
* In-process principals for tests and single-replica apps. `identities`
|
|
73
|
-
*
|
|
74
|
-
*
|
|
72
|
+
* In-process principals for tests and single-replica apps. `identities` links
|
|
73
|
+
* an email or chat identity to a principal id; each answer is a fresh frozen
|
|
74
|
+
* copy. `tenant` is not a filter, as for a database source.
|
|
75
75
|
*/
|
|
76
76
|
function memoryPrincipalSource(input) {
|
|
77
77
|
const byId = /* @__PURE__ */ new Map();
|
package/dist/prisma/index.d.ts
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
|
-
import { Rt as Instant,
|
|
2
|
-
import {
|
|
3
|
-
import { r as RelationsMapping } from "../graph-sql-
|
|
4
|
-
import { n as
|
|
1
|
+
import { Rt as Instant, lr as Subject, mr as Condition } from "../policy-types-CCiDRZBH.js";
|
|
2
|
+
import { f as WhereResult } from "../permdock-B6Sf4T_S.js";
|
|
3
|
+
import { r as RelationsMapping } from "../graph-sql-BwFC4Qjs.js";
|
|
4
|
+
import { n as RowCheck, t as WithSubjectOptions } from "../subject-settings-vNW8qmUH.js";
|
|
5
5
|
//#region src/prisma/model-fields.d.ts
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* A model's non-nullable scalar fields and its scalar list fields, by Prisma
|
|
8
|
+
* field name.
|
|
9
|
+
*/
|
|
7
10
|
type PrismaModelFields = {
|
|
8
11
|
readonly required: readonly string[];
|
|
9
12
|
readonly lists: readonly string[];
|
|
10
13
|
};
|
|
11
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* The `datamodel` of Prisma's DMMF (`getDMMF`, or a generator's
|
|
16
|
+
* `options.dmmf.datamodel`).
|
|
17
|
+
*/
|
|
12
18
|
type PrismaDatamodel = {
|
|
13
19
|
readonly models: readonly {
|
|
14
20
|
readonly name: string;
|
|
@@ -21,8 +27,9 @@ type PrismaDatamodel = {
|
|
|
21
27
|
}[];
|
|
22
28
|
};
|
|
23
29
|
/**
|
|
24
|
-
* Reads a model's required and list fields from `schema.prisma` text or a DMMF
|
|
25
|
-
* the `model` option of `toWhere` and `toPredicate`. Relation
|
|
30
|
+
* Reads a model's required and list fields from `schema.prisma` text or a DMMF
|
|
31
|
+
* datamodel, for the `model` option of `toWhere` and `toPredicate`. Relation
|
|
32
|
+
* fields are skipped.
|
|
26
33
|
*/
|
|
27
34
|
export declare function prismaModelFields(datamodel: string | PrismaDatamodel, model: string): PrismaModelFields;
|
|
28
35
|
//#endregion
|
|
@@ -30,11 +37,17 @@ export declare function prismaModelFields(datamodel: string | PrismaDatamodel, m
|
|
|
30
37
|
type PrismaWhereOptions = {
|
|
31
38
|
readonly fields?: Readonly<Record<string, string>>;
|
|
32
39
|
readonly subject?: Subject;
|
|
33
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* The clock membership expiry is read at; a `Temporal.Instant` fits. Defaults
|
|
42
|
+
* to the current time.
|
|
43
|
+
*/
|
|
34
44
|
readonly now?: Instant;
|
|
35
45
|
readonly listFields?: readonly string[];
|
|
36
46
|
readonly requiredFields?: readonly string[];
|
|
37
|
-
/**
|
|
47
|
+
/**
|
|
48
|
+
* Required and list fields read from the schema by `prismaModelFields`; adds
|
|
49
|
+
* to `requiredFields` and `listFields`.
|
|
50
|
+
*/
|
|
38
51
|
readonly model?: PrismaModelFields;
|
|
39
52
|
};
|
|
40
53
|
export declare function toWhere<T extends Record<string, unknown> = Record<string, unknown>>(input: Condition | WhereResult, options?: PrismaWhereOptions): T;
|
|
@@ -48,43 +61,45 @@ export declare function permdockExtension(): {
|
|
|
48
61
|
};
|
|
49
62
|
};
|
|
50
63
|
type PrismaTransactionClient = {
|
|
51
|
-
$executeRawUnsafe(query: string, ...values: unknown[])
|
|
64
|
+
$executeRawUnsafe: (query: string, ...values: unknown[]) => Promise<number>;
|
|
52
65
|
};
|
|
53
66
|
type PrismaLike<Tx> = {
|
|
54
|
-
$transaction<T>(fn: (tx: Tx) => Promise<T>)
|
|
67
|
+
$transaction: <T>(fn: (tx: Tx) => Promise<T>) => Promise<T>;
|
|
55
68
|
};
|
|
56
69
|
/**
|
|
57
|
-
* Runs `fn` in an interactive transaction whose role and claims are
|
|
58
|
-
* the generated RLS policies decide for the same
|
|
70
|
+
* Runs `fn` in an interactive transaction whose role and claims are
|
|
71
|
+
* `permdock.subject`'s, so the generated RLS policies decide for the same
|
|
72
|
+
* subject as the in-process checks.
|
|
59
73
|
*/
|
|
60
74
|
export declare function withSubject<Tx extends PrismaTransactionClient, T>(prisma: PrismaLike<Tx>, permdock: {
|
|
61
75
|
readonly subject: Subject;
|
|
62
76
|
}, fn: (tx: Tx) => Promise<T>, options?: WithSubjectOptions): Promise<T>;
|
|
63
77
|
type PrismaDelegate = {
|
|
64
|
-
findFirst(args: {
|
|
78
|
+
findFirst: (args: {
|
|
65
79
|
readonly where: Record<string, unknown>;
|
|
66
|
-
})
|
|
80
|
+
}) => Promise<unknown>;
|
|
67
81
|
};
|
|
68
82
|
/**
|
|
69
|
-
* Checks one row by its unique key, for `findUnique`, `update` and `delete`,
|
|
70
|
-
* filter: `{ found: false }` when `unique` matches nothing,
|
|
71
|
-
* filter keeps the row. One query when
|
|
83
|
+
* Checks one row by its unique key, for `findUnique`, `update` and `delete`,
|
|
84
|
+
* which take no filter: `{ found: false }` when `unique` matches nothing,
|
|
85
|
+
* otherwise whether the permission filter keeps the row. One query when
|
|
86
|
+
* granted, two otherwise.
|
|
72
87
|
*/
|
|
73
88
|
export declare function checkRow(delegate: PrismaDelegate, input: Condition | WhereResult, unique: Record<string, unknown>, options?: PrismaWhereOptions): Promise<RowCheck>;
|
|
74
89
|
//#endregion
|
|
75
90
|
//#region src/prisma/predicate.d.ts
|
|
76
91
|
/** A Prisma 8 ORM field proxy: `u.email` inside `.where((u) => ...)`. */
|
|
77
92
|
type PrismaFieldProxy = {
|
|
78
|
-
eq(value: unknown)
|
|
79
|
-
neq(value: unknown)
|
|
80
|
-
gt(value: unknown)
|
|
81
|
-
gte(value: unknown)
|
|
82
|
-
lt(value: unknown)
|
|
83
|
-
lte(value: unknown)
|
|
84
|
-
like(pattern: string)
|
|
85
|
-
in(values: readonly unknown[])
|
|
86
|
-
isNull()
|
|
87
|
-
isNotNull()
|
|
93
|
+
eq: (value: unknown) => unknown;
|
|
94
|
+
neq: (value: unknown) => unknown;
|
|
95
|
+
gt: (value: unknown) => unknown;
|
|
96
|
+
gte: (value: unknown) => unknown;
|
|
97
|
+
lt: (value: unknown) => unknown;
|
|
98
|
+
lte: (value: unknown) => unknown;
|
|
99
|
+
like: (pattern: string) => unknown;
|
|
100
|
+
in: (values: readonly unknown[]) => unknown;
|
|
101
|
+
isNull: () => unknown;
|
|
102
|
+
isNotNull: () => unknown;
|
|
88
103
|
};
|
|
89
104
|
/** `import { and, or, not } from '@prisma/orm-postgres/orm-client'`. */
|
|
90
105
|
type PrismaCombinators = {
|
|
@@ -95,12 +110,21 @@ type PrismaCombinators = {
|
|
|
95
110
|
type PrismaPredicateOptions = {
|
|
96
111
|
readonly fields?: Readonly<Record<string, string>>;
|
|
97
112
|
readonly subject?: Subject;
|
|
98
|
-
/**
|
|
113
|
+
/**
|
|
114
|
+
* The clock membership expiry is read at; a `Temporal.Instant` fits. Defaults
|
|
115
|
+
* to the current time.
|
|
116
|
+
*/
|
|
99
117
|
readonly now?: Instant;
|
|
100
|
-
/**
|
|
118
|
+
/**
|
|
119
|
+
* Required and list fields from `prismaModelFields`; `contains` on a list
|
|
120
|
+
* field is refused.
|
|
121
|
+
*/
|
|
101
122
|
readonly model?: PrismaModelFields;
|
|
102
123
|
readonly listFields?: readonly string[];
|
|
103
|
-
/**
|
|
124
|
+
/**
|
|
125
|
+
* A non-null column (the primary key) that spells constant true and false.
|
|
126
|
+
* Default `id`.
|
|
127
|
+
*/
|
|
104
128
|
readonly key?: string;
|
|
105
129
|
/** Loaded from `@prisma/orm-postgres/orm-client` by default. */
|
|
106
130
|
readonly combinators?: PrismaCombinators;
|
|
@@ -108,16 +132,17 @@ type PrismaPredicateOptions = {
|
|
|
108
132
|
type Model = Readonly<Record<string, PrismaFieldProxy>>;
|
|
109
133
|
/**
|
|
110
134
|
* Compiles a condition into a Prisma 8 ORM predicate: pass the result to
|
|
111
|
-
* `db.orm.<ns>.<Model>.where(...)`. No grant compiles to a predicate that
|
|
135
|
+
* `db.orm.<ns>.<Model>.where(...)`. No grant compiles to a predicate that
|
|
136
|
+
* matches no row.
|
|
112
137
|
*/
|
|
113
138
|
export declare function toPredicate<M = Model>(input: Condition | WhereResult, options?: PrismaPredicateOptions): (model: M) => unknown;
|
|
114
139
|
//#endregion
|
|
115
140
|
//#region src/conditions/resolve-related.d.ts
|
|
116
141
|
type ResolveRelatedOptions = {
|
|
117
142
|
/**
|
|
118
|
-
* Runs one Postgres query with `$1`-style placeholders and returns its
|
|
119
|
-
*
|
|
120
|
-
*
|
|
143
|
+
* Runs one Postgres query with `$1`-style placeholders and returns its rows;
|
|
144
|
+
* each row's `id` is an id the filtered field may hold. With Prisma: `({ sql,
|
|
145
|
+
* values }) => prisma.$queryRawUnsafe(sql, ...values)`.
|
|
121
146
|
*/
|
|
122
147
|
readonly run: (query: {
|
|
123
148
|
readonly sql: string;
|
|
@@ -125,14 +150,17 @@ type ResolveRelatedOptions = {
|
|
|
125
150
|
}) => Promise<readonly Readonly<Record<string, unknown>>[]>;
|
|
126
151
|
/** Where the relation graph lives. */
|
|
127
152
|
readonly relations?: RelationsMapping;
|
|
128
|
-
/**
|
|
153
|
+
/**
|
|
154
|
+
* Turns an id (always text) into the field's type, e.g. `Number` for an
|
|
155
|
+
* integer key.
|
|
156
|
+
*/
|
|
129
157
|
readonly parse?: (id: string, field: string) => unknown;
|
|
130
158
|
};
|
|
131
159
|
/**
|
|
132
|
-
* `where` with every `related` node replaced by the ids it reaches, read in
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
160
|
+
* `where` with every `related` node replaced by the ids it reaches, read in one
|
|
161
|
+
* query per node, so an ORM without raw subqueries (Prisma) filters the graph
|
|
162
|
+
* with a plain `in`. The ids are read now: run the filtered query right after,
|
|
163
|
+
* in the same transaction when the graph may change in between.
|
|
136
164
|
*/
|
|
137
165
|
export declare function resolveRelated(where: WhereResult, options: ResolveRelatedOptions): Promise<WhereResult>;
|
|
138
166
|
//#endregion
|