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,24 +1,25 @@
|
|
|
1
1
|
import { t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { c as isConditionDate, l as isConditionRef } from "./refs-
|
|
3
|
-
import { A as memoryCustomRoleSource, g as localSnapshotManifest } from "./src-
|
|
4
|
-
import { n as findPermission } from "./permission-registry-
|
|
5
|
-
import { f as scopeList, s as resolveScope } from "./scopes-
|
|
6
|
-
import {
|
|
2
|
+
import { c as isConditionDate, l as isConditionRef } from "./refs-C8BKxc_e.js";
|
|
3
|
+
import { A as memoryCustomRoleSource, g as localSnapshotManifest } from "./src-DZ0l9UAg.js";
|
|
4
|
+
import { n as findPermission } from "./permission-registry-B8tYxPIt.js";
|
|
5
|
+
import { f as scopeList, s as resolveScope } from "./scopes-0Up_UA2t.js";
|
|
6
|
+
import { l as policyLevels } from "./policy-CLQ8__GF.js";
|
|
7
7
|
import { t as requiresApproval } from "./approval-required-TzNB9oQA.js";
|
|
8
|
-
import { t as getPermDock } from "./permdock-
|
|
9
|
-
import { u as usageResult } from "./errors-
|
|
10
|
-
import { c as requirePolicy } from "./load-
|
|
11
|
-
import { s as quoteSqlLiteral, t as SQL_IDENT } from "./sql-
|
|
12
|
-
import {
|
|
13
|
-
import "./sources-
|
|
14
|
-
import { t as applyFiles } from "./files-
|
|
15
|
-
import { i as fileDrift } from "./output-files-
|
|
16
|
-
import { n as fixtureSubject, r as loadFixtures, t as fixtureRow } from "./fixtures-
|
|
17
|
-
import { O as quoteIdent, a as customRolesOn, t as CUSTOM_ROLES } from "./shared-
|
|
18
|
-
import {
|
|
8
|
+
import { t as getPermDock } from "./permdock-L-_I_3zP.js";
|
|
9
|
+
import { u as usageResult } from "./errors-Vpu6rKHl.js";
|
|
10
|
+
import { c as requirePolicy } from "./load-DjSU5KXO.js";
|
|
11
|
+
import { s as quoteSqlLiteral, t as SQL_IDENT } from "./sql-0WjxIp9g.js";
|
|
12
|
+
import { a as scopeMembershipTable, i as scopeColumn } from "./compile-EzEMB-7v.js";
|
|
13
|
+
import "./sources-CMAM-2A3.js";
|
|
14
|
+
import { t as applyFiles } from "./files-B3AA05f1.js";
|
|
15
|
+
import { i as fileDrift } from "./output-files-BIQ_9pIs.js";
|
|
16
|
+
import { n as fixtureSubject, r as loadFixtures, t as fixtureRow } from "./fixtures-A1_sp_tR.js";
|
|
17
|
+
import { O as quoteIdent, a as customRolesOn, t as CUSTOM_ROLES } from "./shared-Afctg7B0.js";
|
|
18
|
+
import { r as tableNames } from "./tables-DeMNEy6V.js";
|
|
19
|
+
import { d as andConditions, l as collectGrants, o as assignableRoles, p as contextRefs, t as ownershipRules, u as roleNames } from "./ownership-B4L59T9u.js";
|
|
19
20
|
import { t as membershipSourcesOf } from "./sources-qoIJQrJv.js";
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
21
|
+
import { n as pgConnector } from "./pg-DQTqRrou.js";
|
|
22
|
+
import { m as tableFor, t as canFixture } from "./verify-DZeqoWu5.js";
|
|
22
23
|
import { resolve } from "node:path";
|
|
23
24
|
//#region src/cli/powersync/names.ts
|
|
24
25
|
function ident(name) {
|
|
@@ -32,9 +33,9 @@ function parts(table) {
|
|
|
32
33
|
return [schema === "public" ? void 0 : schema, name];
|
|
33
34
|
}
|
|
34
35
|
/**
|
|
35
|
-
* The name a stream query and the device use for the table: its own name,
|
|
36
|
-
*
|
|
37
|
-
*
|
|
36
|
+
* The name a stream query and the device use for the table: its own name, or
|
|
37
|
+
* `<schema>_<table>` for a table outside `public` that shares its name with
|
|
38
|
+
* another synced table, since PowerSync drops the schema on the device.
|
|
38
39
|
*/
|
|
39
40
|
function bare(table, named) {
|
|
40
41
|
const [schema, name] = parts(table);
|
|
@@ -42,7 +43,10 @@ function bare(table, named) {
|
|
|
42
43
|
named.names?.seen.add(key);
|
|
43
44
|
return named.names?.renamed.get(key) ?? name;
|
|
44
45
|
}
|
|
45
|
-
/**
|
|
46
|
+
/**
|
|
47
|
+
* The table as a stream query reads it: Sync Streams need a schema other than
|
|
48
|
+
* `public` in double quotes.
|
|
49
|
+
*/
|
|
46
50
|
function quotedTable(table) {
|
|
47
51
|
const [schema, name] = parts(table);
|
|
48
52
|
return schema === void 0 ? name : `"${schema}"."${name}"`;
|
|
@@ -52,7 +56,10 @@ function fromTable(table, named) {
|
|
|
52
56
|
const [schema] = parts(table);
|
|
53
57
|
return schema === void 0 ? bare(table, named) : `${quotedTable(table)} AS ${bare(table, named)}`;
|
|
54
58
|
}
|
|
55
|
-
/**
|
|
59
|
+
/**
|
|
60
|
+
* `<schema>_<table>` for each table outside `public` whose name another
|
|
61
|
+
* referenced table shares.
|
|
62
|
+
*/
|
|
56
63
|
function renames(seen) {
|
|
57
64
|
const byName = /* @__PURE__ */ new Map();
|
|
58
65
|
for (const table of seen) {
|
|
@@ -70,7 +77,10 @@ function renames(seen) {
|
|
|
70
77
|
const CUSTOM_ROLE = "custom role";
|
|
71
78
|
//#endregion
|
|
72
79
|
//#region src/cli/powersync/sources.ts
|
|
73
|
-
/**
|
|
80
|
+
/**
|
|
81
|
+
* The sources that can hold scope `name`: every table source and the junction
|
|
82
|
+
* sources of that scope.
|
|
83
|
+
*/
|
|
74
84
|
function scopeSourcesOf(sources, name) {
|
|
75
85
|
return sources.filter((source) => source.sql.scope === void 0 || source.sql.scope === name);
|
|
76
86
|
}
|
|
@@ -99,7 +109,10 @@ function roleSources(roles) {
|
|
|
99
109
|
function anyOf(clauses) {
|
|
100
110
|
return clauses.length === 1 ? clauses[0] ?? "" : `(${clauses.join(" OR ")})`;
|
|
101
111
|
}
|
|
102
|
-
/**
|
|
112
|
+
/**
|
|
113
|
+
* The user's own rows of the source, of scope `scope` when the source has a
|
|
114
|
+
* scope column.
|
|
115
|
+
*/
|
|
103
116
|
function ownRows(stream, dialect, scope) {
|
|
104
117
|
const table = bare(stream.table, dialect);
|
|
105
118
|
const scoped = scope !== void 0 && "column" in stream.scope ? [`${dialect.column(table, stream.scope.column)} = ${dialect.literal(scope)}`] : [];
|
|
@@ -116,7 +129,10 @@ function ownRows(stream, dialect, scope) {
|
|
|
116
129
|
where: [`${dialect.column(users, stream.user.column)} = ${dialect.user}`, ...scoped]
|
|
117
130
|
};
|
|
118
131
|
}
|
|
119
|
-
/**
|
|
132
|
+
/**
|
|
133
|
+
* The filter of one role source for role `role`; `undefined` when the source
|
|
134
|
+
* never holds it.
|
|
135
|
+
*/
|
|
120
136
|
function roleFilter(stream, source, role, table, dialect) {
|
|
121
137
|
if (typeof source === "string") return {
|
|
122
138
|
join: "",
|
|
@@ -138,7 +154,10 @@ function roleFilter(stream, source, role, table, dialect) {
|
|
|
138
154
|
where: [`${dialect.column(keys, source.column)} = ${dialect.literal(role)}`, ...guarded].join(" AND ")
|
|
139
155
|
};
|
|
140
156
|
}
|
|
141
|
-
/**
|
|
157
|
+
/**
|
|
158
|
+
* The kinds filter of role `role`: `[]` for none, `undefined` when no row of
|
|
159
|
+
* the source has one of its kinds.
|
|
160
|
+
*/
|
|
142
161
|
function kindFilter(stream, role, table, ctx) {
|
|
143
162
|
const kinds = ctx.kinds[role];
|
|
144
163
|
if (kinds === void 0) return [];
|
|
@@ -170,7 +189,10 @@ function sourceIn(stream, scope, left, roles, ctx) {
|
|
|
170
189
|
}
|
|
171
190
|
return out;
|
|
172
191
|
}
|
|
173
|
-
/**
|
|
192
|
+
/**
|
|
193
|
+
* The roles tables the source joins through, each with the query of the rows
|
|
194
|
+
* the user's own rows reference.
|
|
195
|
+
*/
|
|
174
196
|
function roleTableRows(stream, dialect) {
|
|
175
197
|
if (isFixed(stream.roles)) return [];
|
|
176
198
|
const own = ownRows(stream, dialect);
|
|
@@ -232,10 +254,10 @@ function tableRows(table, scope, id, device) {
|
|
|
232
254
|
});
|
|
233
255
|
}
|
|
234
256
|
/**
|
|
235
|
-
* The manifest's `rows`: the tables the subject streams sync, as a device
|
|
236
|
-
*
|
|
237
|
-
*
|
|
238
|
-
*
|
|
257
|
+
* The manifest's `rows`: the tables the subject streams sync, as a device reads
|
|
258
|
+
* them. A scope's `rls.memberships` table, else its membership sources; the
|
|
259
|
+
* global roles table; and the custom-role tables in `database` mode. `devices`
|
|
260
|
+
* holds the plan's renamed tables.
|
|
239
261
|
*/
|
|
240
262
|
function localRows(policy, config, devices) {
|
|
241
263
|
const names = { names: {
|
|
@@ -282,7 +304,10 @@ function localRows(policy, config, devices) {
|
|
|
282
304
|
//#endregion
|
|
283
305
|
//#region src/cli/powersync/levels.ts
|
|
284
306
|
const ALIAS = "cr";
|
|
285
|
-
/**
|
|
307
|
+
/**
|
|
308
|
+
* The role key column of one role source, with the join to its roles table;
|
|
309
|
+
* `undefined` for a mapped column, which holds declared roles only.
|
|
310
|
+
*/
|
|
286
311
|
function roleKeyOf(role, table, dialect) {
|
|
287
312
|
if (typeof role === "string") return {
|
|
288
313
|
join: "",
|
|
@@ -300,8 +325,8 @@ function roleKeyOf(role, table, dialect) {
|
|
|
300
325
|
/**
|
|
301
326
|
* The `IN (SELECT …)` of each root-scope source: the row's `left` is a tenant
|
|
302
327
|
* where the user holds a custom role with an allow row of `key` at `level`
|
|
303
|
-
* (`null` for an allow with no level). A role column the source maps or
|
|
304
|
-
*
|
|
328
|
+
* (`null` for an allow with no level). A role column the source maps or fixes
|
|
329
|
+
* holds declared roles only, so it never names a custom role.
|
|
305
330
|
*/
|
|
306
331
|
function customRoleIn(ctx, root, left, key, level) {
|
|
307
332
|
const { dialect } = ctx;
|
|
@@ -336,12 +361,12 @@ function customRoleIn(ctx, root, left, key, level) {
|
|
|
336
361
|
return out;
|
|
337
362
|
}
|
|
338
363
|
/**
|
|
339
|
-
* What a custom role can reach on `resource` through `key`, in `database`
|
|
340
|
-
*
|
|
341
|
-
*
|
|
342
|
-
*
|
|
343
|
-
*
|
|
344
|
-
*
|
|
364
|
+
* What a custom role can reach on `resource` through `key`, in `database` mode
|
|
365
|
+
* when the root scope reads membership sources: each allow of `key` by an
|
|
366
|
+
* assignable role at the root scope (the ceiling), once for an allow with no
|
|
367
|
+
* level and once per level the resource declares, narrowed by that level's
|
|
368
|
+
* condition. `skipped` says why a root scope with custom roles reaching `key`
|
|
369
|
+
* has no custom-role stream.
|
|
345
370
|
*/
|
|
346
371
|
function customRoleItems(ctx, grants, resource, key, table) {
|
|
347
372
|
const rls = ctx.config.rls;
|
|
@@ -389,7 +414,10 @@ const POSTGRES = {
|
|
|
389
414
|
column: (table, name, numeric) => `${table}.${ident(name)}${numeric === true ? "" : "::text"}`,
|
|
390
415
|
literal: (value) => typeof value === "number" ? String(value) : quoteSqlLiteral(String(value))
|
|
391
416
|
};
|
|
392
|
-
/**
|
|
417
|
+
/**
|
|
418
|
+
* At most this many queries per stream; a wider `or` product is left out rather
|
|
419
|
+
* than truncated.
|
|
420
|
+
*/
|
|
393
421
|
const MAX_QUERIES = 32;
|
|
394
422
|
/** Every combination of one clause list from each input, ANDed. */
|
|
395
423
|
function product(lists) {
|
|
@@ -405,7 +433,10 @@ function every(parts) {
|
|
|
405
433
|
}
|
|
406
434
|
return out;
|
|
407
435
|
}
|
|
408
|
-
/**
|
|
436
|
+
/**
|
|
437
|
+
* A row value: a literal, or a principal ref the token carries. `undefined`
|
|
438
|
+
* when neither.
|
|
439
|
+
*/
|
|
409
440
|
function valueSql(value, ctx) {
|
|
410
441
|
if (isConditionRef(value)) {
|
|
411
442
|
if (value.ref === "principal.id") return ctx.dialect.user;
|
|
@@ -479,7 +510,10 @@ function conditionSql(condition, table, ctx) {
|
|
|
479
510
|
default: return condition;
|
|
480
511
|
}
|
|
481
512
|
}
|
|
482
|
-
/**
|
|
513
|
+
/**
|
|
514
|
+
* One `IN (SELECT …)` per role source of the membership table: the row's `left`
|
|
515
|
+
* is an instance the user holds `roles` in.
|
|
516
|
+
*/
|
|
483
517
|
function membershipIn(table, idColumn, left, roles, ctx) {
|
|
484
518
|
if (table.expiresAt !== void 0 || table.disabledAt !== void 0) return;
|
|
485
519
|
const name = bare(table.table, ctx.dialect);
|
|
@@ -504,7 +538,10 @@ function membershipIn(table, idColumn, left, roles, ctx) {
|
|
|
504
538
|
return [`${left} IN (SELECT ${ctx.dialect.column(name, idColumn)} FROM ${fromTable(table.table, ctx.dialect)} INNER JOIN ${fromTable(source.through, ctx.dialect)} ON ${ctx.dialect.column(keys, id)} = ${ctx.dialect.column(name, ref)} WHERE ${[...filters, `${ctx.dialect.column(keys, source.column)} IN (${list})`].join(" AND ")})`];
|
|
505
539
|
});
|
|
506
540
|
}
|
|
507
|
-
/**
|
|
541
|
+
/**
|
|
542
|
+
* The membership filter of scope `scope`: its `rls.memberships` table, else the
|
|
543
|
+
* union of its membership sources.
|
|
544
|
+
*/
|
|
508
545
|
function membershipSql(scope, left, roles, ctx) {
|
|
509
546
|
const table = scopeMembershipTable(ctx.config.rls?.memberships, ctx.scopes, scope);
|
|
510
547
|
if (table !== void 0) {
|
|
@@ -522,7 +559,10 @@ function membershipSql(scope, left, roles, ctx) {
|
|
|
522
559
|
return sourceIn(stream, scope, left, roles, ctx);
|
|
523
560
|
});
|
|
524
561
|
}
|
|
525
|
-
/**
|
|
562
|
+
/**
|
|
563
|
+
* Who the grant reaches, as alternatives of clauses; `undefined` when Sync
|
|
564
|
+
* Streams cannot express it.
|
|
565
|
+
*/
|
|
526
566
|
function accessSql(item, table, ctx) {
|
|
527
567
|
const { access } = item;
|
|
528
568
|
switch (access.kind) {
|
|
@@ -547,7 +587,10 @@ function accessSql(item, table, ctx) {
|
|
|
547
587
|
}
|
|
548
588
|
/** A table outside `public` as `quotedTable` writes it. */
|
|
549
589
|
const QUOTED_TABLE = /"(\w+)"\."(\w+)"/gu;
|
|
550
|
-
/**
|
|
590
|
+
/**
|
|
591
|
+
* `permdock_<table>`; a table in the `permdock` schema, `permdock_<table>`
|
|
592
|
+
* already, keeps one prefix.
|
|
593
|
+
*/
|
|
551
594
|
function subjectStreamName(table) {
|
|
552
595
|
return table.startsWith("permdock_") ? table : `permdock_${table}`;
|
|
553
596
|
}
|
|
@@ -555,9 +598,8 @@ function roleThroughs(role) {
|
|
|
555
598
|
return (Array.isArray(role) ? role : [role]).filter((item) => typeof item === "object" && item !== null && "through" in item);
|
|
556
599
|
}
|
|
557
600
|
/**
|
|
558
|
-
* The `SELECT`s of the root-scope ids the user is a member of: the root
|
|
559
|
-
*
|
|
560
|
-
* stream.
|
|
601
|
+
* The `SELECT`s of the root-scope ids the user is a member of: the root scope's
|
|
602
|
+
* `rls.memberships` table, else each of its sources that can filter a stream.
|
|
561
603
|
*/
|
|
562
604
|
function userTenantIds(ctx) {
|
|
563
605
|
const { dialect } = ctx;
|
|
@@ -576,7 +618,10 @@ function userTenantIds(ctx) {
|
|
|
576
618
|
return [`SELECT ${dialect.column(rows.table, stream.id)} FROM ${rows.from} WHERE ${rows.where.join(" AND ")}`];
|
|
577
619
|
});
|
|
578
620
|
}
|
|
579
|
-
/**
|
|
621
|
+
/**
|
|
622
|
+
* The stream forms of the sources of every scope `rls.memberships` maps no
|
|
623
|
+
* table for.
|
|
624
|
+
*/
|
|
580
625
|
function unmappedStreams(ctx) {
|
|
581
626
|
const out = /* @__PURE__ */ new Set();
|
|
582
627
|
for (const scope of ctx.scopes) {
|
|
@@ -586,10 +631,10 @@ function unmappedStreams(ctx) {
|
|
|
586
631
|
return [...out];
|
|
587
632
|
}
|
|
588
633
|
/**
|
|
589
|
-
* Streams of the rows a device builds the user's snapshot from: the user's
|
|
590
|
-
*
|
|
591
|
-
*
|
|
592
|
-
*
|
|
634
|
+
* Streams of the rows a device builds the user's snapshot from: the user's own
|
|
635
|
+
* membership and global-role rows, the roles tables they reference, and the
|
|
636
|
+
* custom roles of the user's tenants. Each query starts from the user's own
|
|
637
|
+
* rows.
|
|
593
638
|
*/
|
|
594
639
|
function subjectStreams(ctx) {
|
|
595
640
|
const rls = ctx.config.rls;
|
|
@@ -618,12 +663,7 @@ function subjectStreams(ctx) {
|
|
|
618
663
|
}
|
|
619
664
|
};
|
|
620
665
|
const memberships = rls?.memberships;
|
|
621
|
-
for (const table of [
|
|
622
|
-
...Object.values(memberships?.scopes ?? {}),
|
|
623
|
-
...memberships?.tenant === void 0 ? [] : [memberships.tenant],
|
|
624
|
-
...memberships?.team === void 0 ? [] : [memberships.team],
|
|
625
|
-
...Object.values(memberships?.resource ?? {})
|
|
626
|
-
]) own(table.table, table.user, table.role);
|
|
666
|
+
for (const table of [...Object.values(memberships?.scopes ?? {}), ...Object.values(memberships?.resource ?? {})]) own(table.table, table.user, table.role);
|
|
627
667
|
for (const stream of unmappedStreams(ctx)) {
|
|
628
668
|
const rows = ownRows(stream, dialect);
|
|
629
669
|
add(rows.table, typeof stream.user === "string" ? `SELECT * FROM ${rows.from} WHERE ${rows.where.join(" AND ")}` : `SELECT ${rows.table}.* FROM ${rows.from} WHERE ${rows.where.join(" AND ")}`, typeof stream.user === "string" ? stream.user : void 0);
|
|
@@ -668,7 +708,10 @@ function subjectStreams(ctx) {
|
|
|
668
708
|
}
|
|
669
709
|
return out;
|
|
670
710
|
}
|
|
671
|
-
/**
|
|
711
|
+
/**
|
|
712
|
+
* The membership sources as `rls generate` reads them: a tenant row of the
|
|
713
|
+
* custom roles table named like a declared role is no role.
|
|
714
|
+
*/
|
|
672
715
|
function guardedSources(policy, config) {
|
|
673
716
|
const roles = config.rls?.customRoleWrites?.roles;
|
|
674
717
|
const guard = roles?.tenant === void 0 ? void 0 : {
|
|
@@ -692,8 +735,8 @@ function unsupported(item) {
|
|
|
692
735
|
/**
|
|
693
736
|
* Sync Streams for each synced resource: the union of the rows its read
|
|
694
737
|
* permission's allow grants reach. A grant with any part Sync Streams cannot
|
|
695
|
-
* express syncs nothing, and a resource with a deny grant gets no stream, so
|
|
696
|
-
*
|
|
738
|
+
* express syncs nothing, and a resource with a deny grant gets no stream, so a
|
|
739
|
+
* stream never holds a row the policy denies.
|
|
697
740
|
*/
|
|
698
741
|
function powersyncPlan(policy, config, dialect = POWERSYNC) {
|
|
699
742
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -819,11 +862,17 @@ function planWith(policy, config, dialect) {
|
|
|
819
862
|
...outside.length === 0 ? {} : { publication: `alter publication powersync add table ${outside.join(", ")};` }
|
|
820
863
|
};
|
|
821
864
|
}
|
|
822
|
-
/**
|
|
865
|
+
/**
|
|
866
|
+
* A YAML scalar quoted as oxfmt and Prettier write it: single quotes around a
|
|
867
|
+
* `"`, unless a backslash needs a double-quoted escape.
|
|
868
|
+
*/
|
|
823
869
|
function yamlString(text) {
|
|
824
870
|
return text.includes("\"") && !text.includes("\\") ? `'${text.replaceAll("'", "''")}'` : JSON.stringify(text);
|
|
825
871
|
}
|
|
826
|
-
/**
|
|
872
|
+
/**
|
|
873
|
+
* `sync-config.yaml`: edition 3 Sync Streams, one auto-subscribed stream per
|
|
874
|
+
* synced resource.
|
|
875
|
+
*/
|
|
827
876
|
function powersyncYaml(plan) {
|
|
828
877
|
const lines = [
|
|
829
878
|
"# Generated by permdock powersync generate from the policy. Do not edit.",
|
|
@@ -905,7 +954,10 @@ function powersyncFiles(policy, config, out) {
|
|
|
905
954
|
...plan.publication === void 0 ? {} : { publication: plan.publication }
|
|
906
955
|
};
|
|
907
956
|
}
|
|
908
|
-
/**
|
|
957
|
+
/**
|
|
958
|
+
* The files whose content on disk is not what the policy compiles to, with
|
|
959
|
+
* `missing` for an absent one.
|
|
960
|
+
*/
|
|
909
961
|
function staleFiles(cwd, files) {
|
|
910
962
|
const stale = [];
|
|
911
963
|
for (const file of files) {
|
|
@@ -929,7 +981,10 @@ async function leaks(query, stream, user, fixture) {
|
|
|
929
981
|
for (const text of stream.queries) if ((await query(`select 1 from (${text}) q where q.${quoteIdent(user)}::text is distinct from $1::text and $2::jsonb is not null limit 1`, [fixture.subject.id, claimsJson(fixture)])).length > 0) return true;
|
|
930
982
|
return false;
|
|
931
983
|
}
|
|
932
|
-
/**
|
|
984
|
+
/**
|
|
985
|
+
* Whether the stream holds the fixture's row for its subject; `undefined` for a
|
|
986
|
+
* row with no id.
|
|
987
|
+
*/
|
|
933
988
|
async function synced(query, stream, fixture) {
|
|
934
989
|
const value = rowValue(fixture.row, stream.id);
|
|
935
990
|
if (value === void 0) return;
|
|
@@ -979,7 +1034,10 @@ async function verifyStreams(input) {
|
|
|
979
1034
|
notes
|
|
980
1035
|
};
|
|
981
1036
|
}
|
|
982
|
-
/**
|
|
1037
|
+
/**
|
|
1038
|
+
* PD058 when the `powersync` publication leaves out a synced table outside
|
|
1039
|
+
* `public`; a note when the database has no such publication.
|
|
1040
|
+
*/
|
|
983
1041
|
async function checkPublication(query, plan, mismatches, notes) {
|
|
984
1042
|
if (plan.outside.length === 0) return;
|
|
985
1043
|
if ((await query("select 1 from pg_catalog.pg_publication where pubname = 'powersync'", [])).length === 0) {
|
|
@@ -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";
|