permdock 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -3
- package/dist/a2a/index.d.ts +7 -7
- package/dist/a2a/index.js +8 -8
- package/dist/action-result-BcudBQOF.d.ts +19 -0
- package/dist/{adapter-context-CRhqyzCk.js → adapter-context-CIQpQxbE.js} +8 -2
- package/dist/{adoption-scan-D-feE7BE.js → adoption-scan-Ch07MdxN.js} +5 -5
- package/dist/agent/index.d.ts +2 -2
- package/dist/agent/index.js +1 -1
- package/dist/ai-sdk/index.d.ts +19 -13
- package/dist/ai-sdk/index.js +6 -6
- package/dist/{app-data-MuyzVqX8.js → app-data-UNNm07jV.js} +10 -7
- package/dist/{approval-header-CJACtHkv.js → approval-header-8QV6MU4H.js} +6 -3
- package/dist/{approval-prompt-K0faOLFp.d.ts → approval-prompt-3BqWczTt.d.ts} +13 -11
- package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
- package/dist/approvals/index.d.ts +4 -4
- package/dist/approvals/index.js +6 -6
- package/dist/{approvals-CMRfsbBh.js → approvals-DnIBTuXE.js} +66 -42
- package/dist/{approvers-CqPOLD-o.js → approvers-B4r0N_Uz.js} +8 -2
- package/dist/{arazzo-ClrF3PVb.js → arazzo-BpS7LnV0.js} +2 -2
- package/dist/{arazzo-rdeJ8n1J.js → arazzo-CmQaGPkM.js} +6 -6
- package/dist/{args-CC3OwyHW.js → args-0FrVs5EH.js} +14 -7
- package/dist/astro/index.d.ts +30 -12
- package/dist/astro/index.js +2 -2
- package/dist/{audience-BrMs8c4o.js → audience-DTjR8xet.js} +8 -8
- package/dist/{auth-CscUX8Sy.js → auth--yPyZNgr.js} +19 -7
- package/dist/authzen/index.d.ts +34 -28
- package/dist/authzen/index.js +23 -20
- package/dist/{automation-DOtAFWdy.d.ts → automation-C6Jg75xq.d.ts} +42 -32
- package/dist/{automation-ySsxp_Yp.js → automation-x3KEUusw.js} +22 -21
- package/dist/better-auth/index.d.ts +2 -2
- package/dist/better-auth/index.js +13 -7
- package/dist/better-supabase/index.d.ts +357 -227
- package/dist/better-supabase/index.js +219 -140
- package/dist/{bind-D1nO6fiC.js → bind-BNQA9JK9.js} +26 -10
- package/dist/{bind-JDuvxjuW.d.ts → bind-YYjvfpB9.d.ts} +32 -12
- package/dist/{body-CH5of8Ne.js → body-CJQwYVa8.js} +3 -3
- package/dist/{body-text-QcXok_SI.js → body-text-DQhcmqdY.js} +8 -4
- package/dist/{boundary-BM8a_P6E.js → boundary-BV3O1eud.js} +8 -2
- package/dist/{boundary-BmHxVH1J.d.ts → boundary-C9ck-3uK.d.ts} +13 -4
- package/dist/{budget-NbEtbJC_.js → budget-BELja5A9.js} +6 -3
- package/dist/{budget-JqcRqyhK.d.ts → budget-hYsPz_yE.d.ts} +6 -3
- package/dist/{build-instance-DxE7czo9.js → build-instance-BWXqwQYU.js} +3 -3
- package/dist/{capability-L7NnfhiE.js → capability-BqX94r07.js} +31 -25
- package/dist/{capability-D4UC9TTW.d.ts → capability-Di9tiUvi.d.ts} +41 -29
- package/dist/{casbin-BHijLuHY.js → casbin-B7_yS-oo.js} +2 -2
- package/dist/{casbin-BW9pS47J.js → casbin-bHyIxTNQ.js} +16 -8
- package/dist/{casl-CmJlgziS.js → casl-C4OINZHI.js} +2 -2
- package/dist/{casl-UbI8v-Wq.js → casl-CHHoCldP.js} +19 -10
- package/dist/catalog/index.d.ts +51 -30
- package/dist/catalog/index.js +18 -15
- package/dist/{catalog-D69WhFii.js → catalog-CGlSwU6j.js} +20 -19
- package/dist/catalog-D3oS2GH3.js +1 -0
- package/dist/{catalog-BaMQfQ6Y.js → catalog-amPDr0JQ.js} +3 -3
- package/dist/{catalog-doc-CV9s6B1S.js → catalog-doc-DjMKzJp9.js} +28 -14
- package/dist/{catalog-fingerprint-C144oW4M.js → catalog-fingerprint-e6aCWosn.js} +18 -14
- package/dist/catalog-operations-DeHTrJSV.js +60 -0
- package/dist/{challenge-nGWma08S.js → challenge-DImNcR7B.js} +48 -27
- package/dist/chat/index.d.ts +1 -1
- package/dist/chat/index.js +13 -10
- package/dist/chat-sdk/index.d.ts +44 -26
- package/dist/chat-sdk/index.js +17 -17
- package/dist/{checks-BC_0mPIq.js → checks-CGkP3Z7A.js} +4 -1
- package/dist/{claims-map-7oQ3ue4X.js → claims-map-CKkoAAYF.js} +5 -2
- package/dist/{claims-map-Ca-QX8C6.d.ts → claims-map-D1Pb5oRq.d.ts} +8 -5
- package/dist/claude-agent/index.d.ts +6 -6
- package/dist/claude-agent/index.js +6 -3
- package/dist/clerk/index.d.ts +11 -7
- package/dist/clerk/index.js +6 -6
- package/dist/cli/bin.js +4 -4
- package/dist/cli/index.d.ts +82 -7
- package/dist/cli/index.js +6 -6
- package/dist/{clients-C7zLFuWT.d.ts → clients-C_NOET3z.d.ts} +5 -5
- package/dist/{clients-DjU5ABMy.js → clients-DYr3U86j.js} +3 -3
- package/dist/cloud/index.d.ts +84 -52
- package/dist/cloud/index.js +53 -39
- package/dist/{cloud-CO8pYtwr.js → cloud-3kWfjnYy.js} +4 -5
- package/dist/{codemod-BP6n8N9L.js → codemod-Bv5i-Mzo.js} +523 -201
- package/dist/{codemod-i4N2BhDc.js → codemod-D9Aiii1r.js} +3 -4
- package/dist/{collect-DNm3oKOk.js → collect-B80GYEot.js} +4 -5
- package/dist/collect-D-eroIfV.js +1 -0
- package/dist/{collect-BaWeMjwV.js → collect-WCl8cJQV.js} +26 -63
- package/dist/{compare-pfyVnBjE.js → compare-DTfyUunF.js} +2 -2
- package/dist/compile/index.d.ts +2 -2
- package/dist/compile/index.js +1 -1
- package/dist/{compile-COM2VKuN.d.ts → compile-BEklRUYo.d.ts} +36 -12
- package/dist/{compile-BAEO5bOk.js → compile-EzEMB-7v.js} +77 -33
- package/dist/{completion-BNdVf7X2.js → completion-_bc0OUQ-.js} +17 -8
- package/dist/config-BwPBfN0t.js +108 -0
- package/dist/{config-DGZzMV1B.js → config-D5XrLWpk.js} +2 -2
- package/dist/{config-report-Cm7UITNA.js → config-report-BmWIskD7.js} +9 -6
- package/dist/config-shape-ykV0Vm2n.js +134 -0
- package/dist/{connection-DjhIJSs2.js → connection-B72dg5Q2.js} +23 -22
- package/dist/{connector-schema-_VCSsdtD.js → connector-schema-CYLQNMYq.js} +3 -2
- package/dist/{context--uM9V3Ui.js → context-BnIzxTNE.js} +4 -3
- package/dist/convex/index.d.ts +13 -7
- package/dist/convex/index.js +9 -6
- package/dist/{core-CQkE8Esr.d.ts → core-CFepFiDP.d.ts} +49 -22
- package/dist/{core-B5-w6Kw9.js → core-DzVINFbU.js} +26 -20
- package/dist/{create-Cb86Z8Im.js → create-6EwRQlig.js} +10 -7
- package/dist/{create-DJrlhEp9.js → create-BLPKnJKa.js} +35 -25
- package/dist/{create-UTnUVETj.d.ts → create-BPUopdfL.d.ts} +70 -37
- package/dist/{create-QHuuPw3q.d.ts → create-BamXmeob.d.ts} +37 -29
- package/dist/{create-B2-CQqCI.d.ts → create-DBvUsgzK.d.ts} +49 -28
- package/dist/{credential-CIM7wHwA.js → credential-CyyyvCsL.js} +41 -38
- package/dist/{credentials-BpuTwd7a.js → credentials-CdDxp7jN.js} +6 -6
- package/dist/{deciding-columns-DRo2QM6E.js → deciding-columns-NB4wcyBf.js} +2 -2
- package/dist/{delegation-C5rOdTp5.js → delegation-CDB6_keF.js} +31 -22
- package/dist/delivery/index.d.ts +4 -4
- package/dist/delivery/index.js +5 -5
- package/dist/{delivery-rwOKLWRm.js → delivery-BupfvJIV.js} +34 -22
- package/dist/{delivery-event-xX4obB8F.js → delivery-event-JioK5YbS.js} +6 -6
- package/dist/denied-text-DHldhVUv.d.ts +22 -0
- package/dist/{describe-DZlnEtLy.js → describe-Bb4hGK5d.js} +5 -5
- package/dist/{describe-O0SwYIK8.d.ts → describe-BbFPBSms.d.ts} +5 -5
- package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
- package/dist/{diff-Btr1c1Ow.js → diff-BwR1JdP2.js} +2 -2
- package/dist/{diff-DzT-xD13.js → diff-CQegtBAo.js} +22 -13
- package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
- package/dist/{doctor-BU1szn63.js → doctor-ClRVAtXQ.js} +287 -135
- package/dist/{doctor-BoK_y0KO.js → doctor-LPMYjSqO.js} +4 -4
- package/dist/drizzle/index.d.ts +33 -19
- package/dist/drizzle/index.js +17 -9
- package/dist/elysia/index.d.ts +17 -11
- package/dist/elysia/index.js +5 -5
- package/dist/{errors-BKy0EfhN.js → errors-B6R_lg2a.js} +13 -4
- package/dist/{errors-B_Qg9D3e.d.ts → errors-BIM4MFsJ.d.ts} +22 -6
- package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
- package/dist/{errors-DpP_U6Bf.js → errors-Vpu6rKHl.js} +13 -10
- package/dist/{evaluate-B_oqFbWC.js → evaluate-BAmf_AQd.js} +153 -82
- package/dist/{evaluations-BCddEOfO.d.ts → evaluations-DOWuBpWv.d.ts} +11 -5
- package/dist/{evaluations-DReoiVBw.js → evaluations-IBceAeKT.js} +40 -19
- package/dist/eve/index.d.ts +9 -6
- package/dist/eve/index.js +4 -4
- package/dist/{event-time-CsegxXxB.js → event-time-BGy48400.js} +8 -4
- package/dist/{expiry-D4_YKRKD.js → expiry-6XByK0dm.js} +8 -5
- package/dist/express/index.d.ts +9 -6
- package/dist/express/index.js +9 -6
- package/dist/fastify/index.d.ts +16 -10
- package/dist/fastify/index.js +8 -5
- package/dist/{fetch-adapter-CuhyYwC1.d.ts → fetch-adapter-BIbBAtPZ.d.ts} +9 -6
- package/dist/{fetch-adapter-De-u6vhJ.js → fetch-adapter-dPTgJVHd.js} +14 -11
- package/dist/fields-D0vUI6dq.js +498 -0
- package/dist/{files-acUbNwWt.js → files-B3AA05f1.js} +8 -5
- package/dist/{files-D_JIzUrP.js → files-BSjrtIHw.js} +11 -4
- package/dist/{fixtures-BTMW6zgU.js → fixtures-A1_sp_tR.js} +15 -6
- package/dist/{flags-aaeRAdiD.js → flags-DXjoTVbS.js} +2 -2
- package/dist/{freeze-CrU8nQeX.js → freeze-jjan0lCv.js} +4 -1
- package/dist/{from-snapshot-Bz469dIh.js → from-snapshot-DCakWRsr.js} +18 -15
- package/dist/gen-BFfzZSLH.js +58 -0
- package/dist/gen-BtfFWGbz.js +827 -0
- package/dist/{generate-3FNO5P5Q.js → generate-CRVV5V7l.js} +14 -8
- package/dist/generate-CezbCaTI.js +275 -0
- package/dist/{grantee-BrRANrpT.js → grantee-Dke-9rd1.js} +4 -4
- package/dist/{grantee-conditions-C6P1Tvol.js → grantee-conditions-BrYPe-w0.js} +12 -12
- package/dist/{grantee-match-0RtHWQDx.js → grantee-match-7RZZvoT_.js} +12 -6
- package/dist/{graph-sql-B-dsAT6j.d.ts → graph-sql-BwFC4Qjs.d.ts} +3 -3
- package/dist/h3/index.d.ts +10 -7
- package/dist/h3/index.js +3 -3
- package/dist/headers-B9jQxjtW.d.ts +10 -0
- package/dist/{helpers-DY3vXuGs.js → helpers-DJicaG6f.js} +40 -28
- package/dist/hono/index.d.ts +16 -10
- package/dist/hono/index.js +5 -5
- package/dist/{hosted-XBgU6RGT.js → hosted-D0IzESu_.js} +42 -21
- package/dist/{hosted-BmjzxQhp.d.ts → hosted-DVxlLZMe.d.ts} +33 -21
- package/dist/{http-ujKm0JXE.js → http-DH94eh6f.js} +4 -4
- package/dist/{http-BBoKefeS.js → http-DKLXrFGk.js} +13 -7
- package/dist/{http-Ca3Sr5x1.js → http-DOL33cO0.js} +11 -8
- package/dist/{import-DB2EG_iy.js → import-ACkOrv6g.js} +6 -6
- package/dist/{import-Bz0GefWg.js → import-CST57XLp.js} +64 -51
- package/dist/{index-CMiPH2Tv.d.ts → index-BinlXeU-.d.ts} +64 -37
- package/dist/{index-BSfRl0hZ.d.ts → index-CV-7DWeD.d.ts} +64 -52
- package/dist/{index-BE8y3moU.d.ts → index-DJwEgYzA.d.ts} +127 -82
- package/dist/{index-DH9DUDEM.d.ts → index-Dj2qF9VC.d.ts} +54 -30
- package/dist/{index-BTkwrK7v.d.ts → index-vYjMrXyK.d.ts} +336 -173
- package/dist/{index-DLwcuCN_.d.ts → index-ymept53A.d.ts} +51 -30
- package/dist/index.d.ts +22 -22
- package/dist/index.js +34 -34
- package/dist/{init-B-4t1NzC.js → init-BjuFDYT1.js} +10 -10
- package/dist/{init-5TXNji88.js → init-txYTuW9u.js} +5 -5
- package/dist/{instance-options-CU0YQCLH.d.ts → instance-options-CoHn-0e8.d.ts} +4 -4
- package/dist/{instance-snapshot-CjcwnEiV.js → instance-snapshot-DuWf1cT3.js} +86 -61
- package/dist/{instant-BluqDvyS.js → instant-DK3Iz83e.js} +2 -2
- package/dist/{internals-Dk8A8fX3.js → internals-B3IgHrvo.js} +6 -3
- package/dist/{json-schema-B-vAwlde.js → json-schema-BPGa-RjQ.js} +9 -3
- package/dist/{json-schema-CN_iLFH2.d.ts → json-schema-BfXgnRNT.d.ts} +4 -4
- package/dist/jwt/index.d.ts +57 -27
- package/dist/jwt/index.js +24 -21
- package/dist/{kernel-DVExUwkp.js → kernel-qv4cr9w8.js} +32 -23
- package/dist/kysely/index.d.ts +49 -33
- package/dist/kysely/index.js +9 -7
- package/dist/{live-options-BaAFCIiu.js → live-options-BBIT68le.js} +2 -2
- package/dist/{load-DxroEzH1.js → load-DjSU5KXO.js} +6 -6
- package/dist/load-Dm0pSYH3.js +1 -0
- package/dist/{login-ClSJh5t5.js → login-CfImTJGb.js} +4 -4
- package/dist/{login-WC9HPJpU.js → login-CgfCTO3F.js} +16 -9
- package/dist/{manifest-Dv6q4i5s.js → manifest-B2QPh19C.js} +49 -38
- package/dist/{manifest-BVhExYhw.d.ts → manifest-CzzWtnAb.d.ts} +126 -31
- package/dist/{manifest-schema-Cv492Qev.js → manifest-schema-2r37XRhD.js} +44 -3
- package/dist/{manifest-B79YuF2T.js → manifest-wg8WkkpD.js} +6 -6
- package/dist/{map-claims-etGIS_Dv.js → map-claims-C-nv08_n.js} +16 -9
- package/dist/{map-error-BQGyDm_M.js → map-error-pasIGqMT.js} +7 -7
- package/dist/{markers-C6joDI3o.js → markers-BeHZ4x9Q.js} +20 -5
- package/dist/mcp/index.d.ts +114 -61
- package/dist/mcp/index.js +70 -40
- package/dist/{migrate-Dodel0IJ.js → migrate-B7oP_sQU.js} +35 -17
- package/dist/module-values-BJTBdo6y.js +107 -0
- package/dist/nest/index.d.ts +23 -13
- package/dist/nest/index.js +18 -11
- package/dist/next/client.d.ts +5 -2
- package/dist/next/client.js +1 -1
- package/dist/next/index.d.ts +79 -26
- package/dist/next/index.js +121 -10
- package/dist/next/plugin.d.ts +1 -1
- package/dist/next/plugin.js +4 -3
- package/dist/node/index.d.ts +5 -5
- package/dist/node/index.js +3 -3
- package/dist/{ocsf-BFp-PZZA.js → ocsf-TcjRBgIs.js} +15 -5
- package/dist/openai/index.d.ts +13 -7
- package/dist/openai/index.js +3 -3
- package/dist/openapi/index.d.ts +51 -30
- package/dist/openapi/index.js +2 -2
- package/dist/{openapi-ztVaux6j.js → openapi-BGeuunWC.js} +23 -14
- package/dist/{openapi-DMocl1bh.js → openapi-BIpw3Mb7.js} +4 -5
- package/dist/{openapi-Ddb4628T.js → openapi-BOsx0xn9.js} +33 -18
- package/dist/{operation-findings-kRcEp8lE.js → operation-findings-CXtFzlKJ.js} +3 -3
- package/dist/{operations-BNLes61x.d.ts → operations-Ci_rT6Uo.d.ts} +10 -7
- package/dist/orpc/index.d.ts +68 -14
- package/dist/orpc/index.js +62 -13
- package/dist/otel/index.d.ts +7 -4
- package/dist/otel/index.js +8 -5
- package/dist/{output-DgSDLrta.js → output-DV5dwOTs.js} +9 -5
- package/dist/output-files-BHOIlrfD.js +1 -0
- package/dist/{output-files-CCMdcFWb.js → output-files-BIQ_9pIs.js} +29 -17
- package/dist/ownership-DA5YdYTm.js +1059 -0
- package/dist/{parse-Ddhz2xf4.js → parse-1_ZheTW5.js} +16 -13
- package/dist/parse-local-manifest-CCmbhnxP.d.ts +10 -0
- package/dist/{parse-local-manifest-T1Q8X3A2.js → parse-local-manifest-DEiCF4ah.js} +19 -7
- package/dist/{parse-request-D_tUXG6M.js → parse-request-CwCZpyjV.js} +7 -8
- package/dist/{paths-DXSHAMIa.js → paths-CUvURzHp.js} +4 -1
- package/dist/pdp/index.d.ts +9 -6
- package/dist/pdp/index.js +20 -13
- package/dist/{peer-DOzzMfZL.js → peer-C9LvBCcb.js} +1 -1
- package/dist/{peer-12Q5I_RH.js → peer-Q0fuZ6hx.js} +9 -3
- package/dist/{permdock-BfWEeMqk.js → permdock-BvjivVb9.js} +200 -140
- package/dist/{permdock-Dco6dyCK.d.ts → permdock-CprAPN3w.d.ts} +260 -129
- package/dist/{permission-registry-DpPtSKNZ.js → permission-registry-B8tYxPIt.js} +23 -10
- package/dist/{permission-types-DhNEmoRG.d.ts → permission-types-CAY-GU7e.d.ts} +127 -41
- package/dist/{permissions-CoqCOfJ3.d.ts → permissions-Bx6UI8n1.d.ts} +6 -3
- package/dist/{permissions-CyH2MV_B.js → permissions-CVXmRILq.js} +3 -3
- package/dist/{permissions-DArULThq.js → permissions-CYcHj_w7.js} +8 -5
- package/dist/pg-DQTqRrou.js +60 -0
- package/dist/{pins-8ILTftC9.js → pins-nqarl3oE.js} +4 -1
- package/dist/{pkce-5h8NgMQJ.js → pkce-CnmmYqUZ.js} +1 -1
- package/dist/{policy-B7dg_yzu.d.ts → policy-BycVKnXv.d.ts} +5 -5
- package/dist/{policy-DaJy4nK4.js → policy-CLQ8__GF.js} +43 -23
- package/dist/{policy-from-catalog-DFWYkNdu.js → policy-from-catalog-CU3An8uP.js} +28 -25
- package/dist/{policy-module-CTlwMvLI.js → policy-module-xym9fnSq.js} +12 -6
- package/dist/{policy-types-B-F-qAZk.d.ts → policy-types-DGIO_gxq.d.ts} +782 -357
- package/dist/{postgres-store-BL9M_CA1.js → postgres-store-DcyrPS-r.js} +43 -16
- package/dist/{postgrest-r5faDIzD.js → postgrest-5Dr3W64L.js} +84 -86
- package/dist/{postgrest-CYacM_u7.d.ts → postgrest-D5nUGm-c.d.ts} +55 -35
- package/dist/powersync-B701tvhE.js +1 -0
- package/dist/{powersync-13odBwiM.js → powersync-Bg8u-JcR.js} +3 -3
- package/dist/{powersync-53ryOZip.js → powersync-CJrT1DSc.js} +127 -69
- package/dist/preset/index.d.ts +38 -28
- package/dist/preset/index.js +1 -1
- package/dist/{preset-CHTbd-DQ.js → preset-BjLzeFpp.js} +56 -32
- package/dist/{principal-source-pHneukrx.js → principal-source-C6N60GtM.js} +10 -10
- package/dist/prisma/index.d.ts +69 -41
- package/dist/prisma/index.js +21 -17
- package/dist/{problem-CTviyH5L.js → problem-BVLHFK33.js} +41 -21
- package/dist/{problem-details-cn5X30gZ.js → problem-details-CLDgX1KV.js} +13 -4
- package/dist/{problem-types-CJ2325SZ.js → problem-types-DSsRfONQ.js} +4 -1
- package/dist/{prompt-DwtVemER.js → prompt-BYc6drYW.js} +4 -1
- package/dist/protected-action-D8x73IGm.d.ts +58 -0
- package/dist/protected-action-DUYqb-Ma.js +80 -0
- package/dist/{protected-DXE3cQYg.js → protected-action-QEA8arRB.js} +48 -14
- package/dist/{provider-BQsTYYy0.js → provider-C55OGXJ7.js} +5 -4
- package/dist/{provider-Csk-THAn.d.ts → provider-DfLeek9O.d.ts} +1 -1
- package/dist/{provider-store-IgqQipCO.js → provider-store-CaTv00tr.js} +13 -9
- package/dist/{pull-CN5OLxrF.js → pull-2nJr0qg_.js} +12 -11
- package/dist/pull-C3EEGzSw.js +1 -0
- package/dist/{push-tVdG8dUL.js → push-Bn-lMEmI.js} +19 -13
- package/dist/{pushed-policy-CmYeSQqq.js → pushed-policy-CDuOL2de.js} +10 -7
- package/dist/{pushed-policy-BbcY9r_4.d.ts → pushed-policy-CryQheKq.d.ts} +12 -6
- package/dist/react/index.d.ts +9 -8
- package/dist/react/index.js +7 -6
- package/dist/react/provider-client.d.ts +1 -1
- package/dist/react/provider-client.js +1 -1
- package/dist/react-native/index.d.ts +94 -55
- package/dist/react-native/index.js +200 -61
- package/dist/{refs-CNJBiTFo.js → refs-C8BKxc_e.js} +2 -2
- package/dist/{relation-walk-3OyDBF0S.js → relation-walk-DK_gkgL7.js} +12 -9
- package/dist/{relations-BnCWnJGI.js → relations-BxvRvDHK.js} +3 -3
- package/dist/{replay-Du1tJjG7.js → replay-BU09ad4L.js} +1 -1
- package/dist/{replay-DCDD_ZfL.d.ts → replay-Bs9Df2fQ.d.ts} +1 -1
- package/dist/{request-context-BykKLmyE.js → request-context-Duzdf0cd.js} +8 -8
- package/dist/{request-schema-CMreVuFM.js → request-schema-DhX7UbfQ.js} +4 -1
- package/dist/resend/index.d.ts +34 -28
- package/dist/resend/index.js +29 -29
- package/dist/resolve-names-ConCSj1y.js +201 -0
- package/dist/{resource-relations-D_jw0BFx.js → resource-relations-8-pCScBO.js} +18 -9
- package/dist/{retire-Wj6dkyDE.js → retire-B2xffQgY.js} +15 -6
- package/dist/{revocations-R07lFBnX.d.ts → revocations-BaUXHM1N.d.ts} +6 -3
- package/dist/{rls-Ck_PocSp.js → rls-Ba9wN0SP.js} +13 -6
- package/dist/{rls-CxBZb4rZ.js → rls-Cx0dtsB7.js} +310 -128
- package/dist/{role-builder-C1VJzvcr.js → role-builder-BK2-T6oD.js} +41 -20
- package/dist/{row-conditions-h2HythXQ.js → row-conditions-BAGHOmVq.js} +4 -3
- package/dist/{rpc-Bk1bE-ch.js → rpc-vHIwyXCp.js} +8 -5
- package/dist/run-Ck22anC2.js +1 -0
- package/dist/{run-uLD2aWuO.js → run-PbRlXTfh.js} +26 -23
- package/dist/{run-ticket-BpNi7BCi.d.ts → run-ticket-B2o2Kxz8.d.ts} +29 -14
- package/dist/{run-ticket-B5d_63Ma.js → run-ticket-Dv7aF7Dk.js} +9 -9
- package/dist/{runtime-Vif3_-zf.js → runtime-BGnrOkVH.js} +5 -2
- package/dist/{saas-Az_Kz-4D.js → saas-DK4V-3Is.js} +42 -29
- package/dist/{scan-DSljDE1Y.js → scan-CRTj6fke.js} +1 -1
- package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
- package/dist/{schema-gIcCx7zM.js → schema-BTsE1WRT.js} +8 -4
- package/dist/scim/index.d.ts +2 -2
- package/dist/scim/index.js +2 -2
- package/dist/{scim-C7JYhySg.js → scim-D8YupzX1.js} +2 -2
- package/dist/{scim-YNieBO1U.js → scim-jJBJ7g1Z.js} +33 -15
- package/dist/{scopes-BHsc-wp-.js → scopes-0Up_UA2t.js} +41 -23
- package/dist/server/index.d.ts +11 -11
- package/dist/server/index.js +12 -12
- package/dist/{server-Bnga6I50.js → server-3cVlTLde.js} +31 -31
- package/dist/{server-types-C4gZUEZy.d.ts → server-types-CyRN0-Cd.d.ts} +88 -46
- package/dist/{sha256-D9ihqmvd.js → sha256-C-4WXKIu.js} +4 -3
- package/dist/{shared-fMKOv8hP.js → shared-Afctg7B0.js} +65 -32
- package/dist/{shared-C8LjUdVU.js → shared-l0oGGetg.js} +9 -6
- package/dist/{signals-D3NcTKUS.js → signals-B1vHR3fN.js} +2 -2
- package/dist/{sink-Cp_Eot9W.d.ts → sink-B5zoUW_O.d.ts} +44 -20
- package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
- package/dist/{skills-g_3BS9NC.js → skills-C9uKfSF5.js} +3 -3
- package/dist/{skills-Dcjw9_1C.js → skills-CQQcuGBi.js} +12 -8
- package/dist/{snapshot-CbGmYiJx.js → snapshot-CXlzi69u.js} +21 -18
- package/dist/{snapshot-cache-Pahd3IYJ.d.ts → snapshot-cache-BjAWkchD.d.ts} +21 -12
- package/dist/{snapshot-cache-DT2Kx1F8.js → snapshot-cache-Bx_4xC_6.js} +14 -11
- package/dist/solid/index.d.ts +55 -16
- package/dist/solid/index.js +46 -12
- package/dist/solid-start/index.d.ts +30 -12
- package/dist/solid-start/index.js +3 -3
- package/dist/{sources-B-zYB4GS.js → sources-CMAM-2A3.js} +46 -27
- package/dist/{sources-DEEuGb8S.d.ts → sources-CWG32C0G.d.ts} +126 -53
- package/dist/{sql-B96movIM.js → sql-0WjxIp9g.js} +28 -7
- package/dist/{sql-CDEPCA0g.d.ts → sql-B80DFdpG.d.ts} +2 -2
- package/dist/{src-DLFrtrrC.js → src-C_pi2Rnh.js} +292 -101
- package/dist/ssf/index.d.ts +3 -3
- package/dist/ssf/index.js +47 -35
- package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
- package/dist/{standard-webhooks-B_qRg0ws.d.ts → standard-webhooks-DOYEuOLx.d.ts} +7 -7
- package/dist/{store-DSP9oGvh.js → store-RNFvaJJv.js} +32 -26
- package/dist/{store-options-B_poyYvg.js → store-options-Dil3lraY.js} +105 -15
- package/dist/stores-DZJvxFIZ.d.ts +59 -0
- package/dist/{stores-BqEuHC05.js → stores-DxZWDXCs.js} +42 -5
- package/dist/{stream-2Vwhl7Er.d.ts → stream-9y9qw51m.d.ts} +4 -3
- package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
- package/dist/{style-Ds1gNm77.js → style-DblOtSga.js} +1 -1
- package/dist/{style-Cqo7-73x.js → style-Ds11Hmk4.js} +2 -1
- package/dist/{subject-settings-CkEwrw3W.js → subject-settings-8sH5HlII.js} +8 -4
- package/dist/{row-check-Dt35czLy.d.ts → subject-settings-vNW8qmUH.d.ts} +30 -18
- package/dist/supabase/index.d.ts +48 -38
- package/dist/supabase/index.js +5 -5
- package/dist/supabase/middleware.d.ts +19 -13
- package/dist/supabase/middleware.js +7 -7
- package/dist/{supabase--0aJdLEd.js → supabase-DnMMg5Fn.js} +79 -35
- package/dist/{supabase-Bqp7iIY2.js → supabase-SBs3MYUE.js} +3 -3
- package/dist/supabase-hook-C0FyEACZ.js +1 -0
- package/dist/{supabase-hook-Dg0SrQWR.js → supabase-hook-CrgU06WH.js} +175 -196
- package/dist/{supautils-MESd81bF.js → supautils-ByezN3b8.js} +385 -219
- package/dist/{support-session-Cna49-3f.js → support-session-BsmPCbz8.js} +21 -21
- package/dist/svelte/PermissionBoundary.svelte +2 -6
- package/dist/svelte/Protected.svelte +2 -8
- package/dist/svelte/index.d.ts +9 -8
- package/dist/svelte/index.js +10 -9
- package/dist/svelte/runtime.d.ts +4 -4
- package/dist/svelte/runtime.js +4 -4
- package/dist/svelte/source.d.ts +9 -8
- package/dist/svelte/source.js +6 -5
- package/dist/sveltekit/index.d.ts +30 -12
- package/dist/sveltekit/index.js +2 -2
- package/dist/{ownership-Z2LpxsGa.js → tables-BqrxBCir.js} +641 -1104
- package/dist/tanstack-start/index.d.ts +22 -10
- package/dist/tanstack-start/index.js +2 -2
- package/dist/{target-Bw37TFNA.js → target-qdEAnnhU.js} +6 -6
- package/dist/{tenancy-CmeBQ6Nv.js → tenancy-5d1zVBvK.js} +25 -19
- package/dist/terminal/index.d.ts +23 -14
- package/dist/terminal/index.js +17 -20
- package/dist/testing/core.d.ts +1 -1
- package/dist/testing/core.js +1 -1
- package/dist/testing/fixtures/index.d.ts +8 -5
- package/dist/testing/fixtures/index.js +78 -17
- package/dist/testing/index.d.ts +225 -141
- package/dist/testing/index.js +352 -234
- package/dist/testing/saas/index.d.ts +43 -27
- package/dist/testing/saas/index.js +2 -2
- package/dist/testing/saas/permissions.d.ts +1 -1
- package/dist/testing/saas/permissions.js +1 -1
- package/dist/{text-diff-DhITNCnD.js → text-diff-BtfSmdUo.js} +2 -2
- package/dist/{thenable-yD7SabqG.js → thenable-BNSM1U2R.js} +12 -3
- package/dist/{time-DkWjdL98.js → time-nR1JesoH.js} +32 -8
- package/dist/{token-2qYDvXz2.js → token-DC9EQiet.js} +14 -12
- package/dist/{tool-refusal-reAhIzdl.js → tool-refusal-Qpjs_W6M.js} +5 -2
- package/dist/trpc/index.d.ts +11 -8
- package/dist/trpc/index.js +15 -9
- package/dist/type-helpers-c7Xo_2Cu.d.ts +50 -0
- package/dist/{types-CfiKC5aN.d.ts → types-B2efzoSX.d.ts} +14 -11
- package/dist/{types-CIeZcG8v.d.ts → types-B6ExllNo.d.ts} +2 -2
- package/dist/{types-DBHftjgS.d.ts → types-BB-zWDcR.d.ts} +45 -33
- package/dist/{types-BfVmNJO5.d.ts → types-BMVDHvI0.d.ts} +128 -50
- package/dist/{types-DXmwu78Z.d.ts → types-CEinc15V.d.ts} +31 -14
- package/dist/{types-g7Oy6Zg4.d.ts → types-CN0LsqbK.d.ts} +47 -24
- package/dist/{types-CeIscIKp.d.ts → types-CWBsAwqn.d.ts} +23 -12
- package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
- package/dist/{types-BWZybqs9.d.ts → types-CzOeVvcC.d.ts} +384 -203
- package/dist/{types-DC44-hqb.d.ts → types-DLvhVm1r.d.ts} +59 -32
- package/dist/{types-D3A19w4A.d.ts → types-DlelvQk4.d.ts} +22 -13
- package/dist/{types-cTos-H7p.d.ts → types-DsHGPtkR.d.ts} +68 -32
- package/dist/{types-BXMYB7BY.d.ts → types-ZzRGoViD.d.ts} +77 -24
- package/dist/{types-CQVEQawv.d.ts → types-rCRV4Ge-.d.ts} +24 -14
- package/dist/types-tQB2CEnY.d.ts +262 -0
- package/dist/unplugin/index.d.ts +1 -1
- package/dist/unplugin/index.js +2 -2
- package/dist/usage-0hjZPIRX.js +1 -0
- package/dist/{usage-Bybmck7f.js → usage-B9EtHWLa.js} +50 -26
- package/dist/{usage-CDaLXCfL.js → usage-CBzgwfIs.js} +2 -2
- package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
- package/dist/{validation-error-CQpoquwj.d.ts → validation-error-uvp-kyfO.d.ts} +5 -2
- package/dist/{validity-CZ7-y0Cj.js → validity-Buc7w8E9.js} +13 -10
- package/dist/{verifier-DHuh-okk.js → verifier-DUV6pLqZ.js} +10 -4
- package/dist/{verify-pe8rL_Qw.js → verify-DlUcTDBz.js} +148 -487
- package/dist/version-DMQ0dnN5.js +48 -0
- package/dist/version-DizhmD72.js +1 -0
- package/dist/{views-BB8E9dTP.js → views-CD8wuL4Z.js} +19 -6
- package/dist/{vocabulary-Bg3eeT2H.d.ts → vocabulary-DEJ5j4mR.d.ts} +7 -4
- package/dist/vue/index.d.ts +71 -22
- package/dist/vue/index.js +50 -13
- package/dist/{waiter-DwEyouan.d.ts → waiter-CqUKX6CY.d.ts} +13 -10
- package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
- package/dist/{watch-C-4VmFlL.js → watch-BFDKqmUa.js} +8 -8
- package/dist/watch-ClLuO2TL.js +1 -0
- package/dist/webmcp/index.d.ts +11 -11
- package/dist/webmcp/index.js +8 -5
- package/dist/{where-scope-wq2coopv.js → where-scope-DlCdCM_8.js} +24 -18
- package/dist/{who-can-BwNsI_Js.js → who-can-BoDJm0Nc.js} +23 -20
- package/dist/workflow/index.d.ts +3 -3
- package/dist/workflow/index.js +13 -13
- package/dist/workflow-sdk/index.d.ts +19 -13
- package/dist/workflow-sdk/index.js +6 -6
- package/dist/{wrap-CiSc_KCq.js → wrap-B2wziJI_.js} +4 -4
- package/dist/{wrap-B6R0cMRL.d.ts → wrap-DxXB54Wu.d.ts} +8 -5
- package/package.json +8 -8
- package/schemas/catalog-v1.json +3 -0
- package/schemas/supabase-manifest-v1.json +33 -1
- package/skills/permdock-credentials/references/tokens-keys-links.md +8 -6
- package/skills/permdock-data/references/queries-and-rls.md +2 -1
- package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -2
- package/skills/permdock-wire/references/adapters.md +16 -23
- package/dist/catalog-BCCjSAdH.js +0 -1
- package/dist/collect-k_Dulxr5.js +0 -1
- package/dist/config-CoQHDrDi.js +0 -166
- package/dist/denied-text-D4qkEtFz.d.ts +0 -19
- package/dist/fields-ClcQLrVc.js +0 -238
- package/dist/generate-CNU1pIOo.js +0 -171
- package/dist/headers-BIjfMaoC.js +0 -8
- package/dist/headers-CIbDTUTK.d.ts +0 -7
- package/dist/load-DrMHXzgN.js +0 -1
- package/dist/output-files-DPAY7-GX.js +0 -1
- package/dist/package-root-Dk_ETdkp.js +0 -31
- package/dist/parse-local-manifest-e4mdwAKd.d.ts +0 -10
- package/dist/policies-B2lZIurj.js +0 -295
- package/dist/powersync-CExtTLyA.js +0 -1
- package/dist/problem-details-Tcfmj3bV.d.ts +0 -7
- package/dist/protected-BwZYL1X_.d.ts +0 -39
- package/dist/pull-Cty6Ovyu.js +0 -1
- package/dist/run-Bz7DXGEv.js +0 -1
- package/dist/stores-BAZwSYZA.d.ts +0 -31
- package/dist/supabase-hook-DJxC4PoP.js +0 -1
- package/dist/types-CKV71kKh.d.ts +0 -172
- package/dist/usage-y-kBNdqs.js +0 -1
- package/dist/version-CEbQ5UeM.js +0 -18
- package/dist/version-DXkYUISx.js +0 -1
- package/dist/watch-Bd9mx3rd.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as defineLeaf } from "./command-L8EstFNm.js";
|
|
2
|
-
import { i as dryRunFlag } from "./flags-
|
|
2
|
+
import { i as dryRunFlag } from "./flags-DXjoTVbS.js";
|
|
3
3
|
//#region src/cli/commands/codemod.ts
|
|
4
4
|
const codemod = defineLeaf({
|
|
5
5
|
positionals: [{
|
|
@@ -7,7 +7,7 @@ const codemod = defineLeaf({
|
|
|
7
7
|
description: "The release to migrate to (0.5)",
|
|
8
8
|
required: true,
|
|
9
9
|
async complete() {
|
|
10
|
-
return (await import("./codemod-
|
|
10
|
+
return (await import("./codemod-Bv5i-Mzo.js")).codemodVersions();
|
|
11
11
|
}
|
|
12
12
|
}, {
|
|
13
13
|
name: "paths",
|
|
@@ -22,8 +22,7 @@ const codemod = defineLeaf({
|
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
async run(ctx, { flags, args, rest }) {
|
|
25
|
-
|
|
26
|
-
return runCodemod({
|
|
25
|
+
return (await import("./codemod-Bv5i-Mzo.js")).runCodemod({
|
|
27
26
|
cwd: ctx.cwd,
|
|
28
27
|
version: args["version"],
|
|
29
28
|
paths: rest,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as CliError } from "./errors-
|
|
1
|
+
import { n as CliError } from "./errors-Vpu6rKHl.js";
|
|
2
2
|
import { t as defineLeaf } from "./command-L8EstFNm.js";
|
|
3
|
-
import { o as fileOut, t as checkFlag } from "./flags-
|
|
3
|
+
import { o as fileOut, t as checkFlag } from "./flags-DXjoTVbS.js";
|
|
4
4
|
//#region src/cli/commands/collect.ts
|
|
5
5
|
const collect = defineLeaf({
|
|
6
6
|
flags: {
|
|
@@ -29,10 +29,9 @@ const collect = defineLeaf({
|
|
|
29
29
|
};
|
|
30
30
|
if (flags.watch) {
|
|
31
31
|
if (flags.check) throw new CliError("usage", "collect: --watch writes the catalog; drop --check", { code: "invalid_value" });
|
|
32
|
-
|
|
33
|
-
return watchCollect(ctx, overrides);
|
|
32
|
+
return (await import("./watch-ClLuO2TL.js")).watchCollect(ctx, overrides);
|
|
34
33
|
}
|
|
35
|
-
const result = await (await import("./collect-
|
|
34
|
+
const result = await (await import("./collect-D-eroIfV.js")).runCollect({
|
|
36
35
|
cwd: ctx.cwd,
|
|
37
36
|
config: ctx.config,
|
|
38
37
|
collect: overrides,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { r as runCollect } from "./collect-WCl8cJQV.js";
|
|
@@ -1,65 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { o as
|
|
4
|
-
import { r as
|
|
5
|
-
import {
|
|
6
|
-
import { a as rel, r as listSourceFiles, s as writeFileEnsuringDir, t as defaultSrcPath } from "./files-D_JIzUrP.js";
|
|
7
|
-
import { n as catalogForCompare, o as formatCatalogJson, r as catalogForDrift, t as buildCatalog } from "./catalog-doc-CV9s6B1S.js";
|
|
8
|
-
import { a as loadModule, i as loadConfiguredPolicy, r as leavesOf, s as pickNamed, t as asPermissionTree } from "./load-DxroEzH1.js";
|
|
1
|
+
import { a as describeError } from "./errors-Vpu6rKHl.js";
|
|
2
|
+
import { a as rel, r as listSourceFiles, s as writeFileEnsuringDir, t as defaultSrcPath } from "./files-BSjrtIHw.js";
|
|
3
|
+
import { n as catalogForCompare, o as formatCatalogJson, r as catalogForDrift, t as buildCatalog } from "./catalog-doc-DjMKzJp9.js";
|
|
4
|
+
import { a as loadModule, i as loadConfiguredPolicy, r as leavesOf, s as pickNamed, t as asPermissionTree } from "./load-DjSU5KXO.js";
|
|
5
|
+
import { t as loadConfiguredOperations } from "./catalog-operations-DeHTrJSV.js";
|
|
9
6
|
import { t as catalogPath } from "./catalog-path-CnI0XTFK.js";
|
|
10
|
-
import { t as shortDiff } from "./text-diff-
|
|
7
|
+
import { t as shortDiff } from "./text-diff-BtfSmdUo.js";
|
|
11
8
|
import { existsSync, readFileSync } from "node:fs";
|
|
12
9
|
import { dirname, relative, resolve } from "node:path";
|
|
13
10
|
import { Visitor, parseSync, visitorKeys } from "oxc-parser";
|
|
14
|
-
//#region src/cli/
|
|
15
|
-
function metaOf(name, value) {
|
|
16
|
-
const fail = (field) => {
|
|
17
|
-
throw configError(`PermDock CLI: operations.${name}.meta${field} is invalid`);
|
|
18
|
-
};
|
|
19
|
-
if (!isRecord(value)) return fail("");
|
|
20
|
-
const { risk, effects, title } = value;
|
|
21
|
-
if (risk !== void 0 && !isOperationRisk(risk)) return fail(".risk");
|
|
22
|
-
if (effects !== void 0 && (!Array.isArray(effects) || !effects.every(isOperationEffect))) return fail(".effects");
|
|
23
|
-
if (title !== void 0 && typeof title !== "string") return fail(".title");
|
|
24
|
-
return {
|
|
25
|
-
...risk === void 0 ? {} : { risk },
|
|
26
|
-
...effects === void 0 ? {} : { effects },
|
|
27
|
-
...title === void 0 ? {} : { title }
|
|
28
|
-
};
|
|
29
|
-
}
|
|
11
|
+
//#region src/cli/scan.ts
|
|
30
12
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* definitions object instead of the map.
|
|
13
|
+
* oxc reports recoverable problems as `Warning` or `Advice`; only `Error`
|
|
14
|
+
* leaves the program incomplete.
|
|
34
15
|
*/
|
|
35
|
-
function catalogOperations(value) {
|
|
36
|
-
if (!isRecord(value)) throw configError("PermDock CLI: operations export is not an operation map");
|
|
37
|
-
const out = [];
|
|
38
|
-
for (const name of Object.keys(value)) {
|
|
39
|
-
const operation = value[name];
|
|
40
|
-
if (!isRecord(operation) || operation["name"] !== name || !isPermission(operation["permission"])) throw configError(`PermDock CLI: operations.${name} is not an operation; export the defineOperations result`);
|
|
41
|
-
const results = operation["results"];
|
|
42
|
-
if (results !== void 0 && !isPermission(results)) throw configError(`PermDock CLI: operations.${name}.results is not a permission`);
|
|
43
|
-
out.push({
|
|
44
|
-
name,
|
|
45
|
-
permission: operation["permission"].key,
|
|
46
|
-
...results === void 0 ? {} : { results: results.key },
|
|
47
|
-
meta: metaOf(name, operation["meta"])
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
return out;
|
|
51
|
-
}
|
|
52
|
-
/** The configured operations module's catalog entries; `undefined` without one. Throws when it is missing or does not load. */
|
|
53
|
-
async function loadConfiguredOperations(cwd, path, options) {
|
|
54
|
-
if (path === void 0) return;
|
|
55
|
-
const abs = resolve(cwd, path);
|
|
56
|
-
if (!existsSync(abs)) throw configError(`PermDock CLI: operations module not found: ${rel(cwd, abs)}`);
|
|
57
|
-
const mod = await loadModule(abs, options);
|
|
58
|
-
return catalogOperations(pickNamed(mod, ["operations"]));
|
|
59
|
-
}
|
|
60
|
-
//#endregion
|
|
61
|
-
//#region src/cli/scan.ts
|
|
62
|
-
/** oxc reports recoverable problems as `Warning` or `Advice`; only `Error` leaves the program incomplete. */
|
|
63
16
|
const PARSE_ERRORS = /* @__PURE__ */ new Set(["Error"]);
|
|
64
17
|
const CHECK_CALLS = /* @__PURE__ */ new Set([
|
|
65
18
|
"can",
|
|
@@ -72,6 +25,7 @@ const CHECK_CALLS = /* @__PURE__ */ new Set([
|
|
|
72
25
|
"usePermission",
|
|
73
26
|
"getPermission",
|
|
74
27
|
"requirePermission",
|
|
28
|
+
"protectAction",
|
|
75
29
|
"protect",
|
|
76
30
|
"allow",
|
|
77
31
|
"deny",
|
|
@@ -159,7 +113,7 @@ function scanSources(cwd, files, knownKeys) {
|
|
|
159
113
|
function includeOf(options, isRoot) {
|
|
160
114
|
if (options?.type !== "ObjectExpression") return options === void 0 ? void 0 : null;
|
|
161
115
|
const property = options.properties?.find((item) => item.key?.name === "include");
|
|
162
|
-
if (property === void 0) return options.properties?.some((item) => item.type === "SpreadElement") ? null : void 0;
|
|
116
|
+
if (property === void 0) return options.properties?.some((item) => item.type === "SpreadElement") === true ? null : void 0;
|
|
163
117
|
const list = property.value;
|
|
164
118
|
if (list?.type !== "ArrayExpression") return null;
|
|
165
119
|
const keys = [];
|
|
@@ -179,7 +133,10 @@ function recordImport(node, roots, definitions) {
|
|
|
179
133
|
function isDefinePermissions(node) {
|
|
180
134
|
return node?.type === "CallExpression" && calleeName(node.callee) === "definePermissions";
|
|
181
135
|
}
|
|
182
|
-
/**
|
|
136
|
+
/**
|
|
137
|
+
* An import binding of a permission tree: by its imported name, or a default
|
|
138
|
+
* import named `permissions`.
|
|
139
|
+
*/
|
|
183
140
|
function importsRoot(spec, definitions) {
|
|
184
141
|
if (spec.type === "ImportSpecifier") {
|
|
185
142
|
const value = spec.imported?.value;
|
|
@@ -234,7 +191,10 @@ const FUNCTION_SCOPES = /* @__PURE__ */ new Set([
|
|
|
234
191
|
"FunctionExpression",
|
|
235
192
|
"ArrowFunctionExpression"
|
|
236
193
|
]);
|
|
237
|
-
/**
|
|
194
|
+
/**
|
|
195
|
+
* The names a scope node declares, each with whether it is a permission tree;
|
|
196
|
+
* `undefined` for a node that opens no scope.
|
|
197
|
+
*/
|
|
238
198
|
function bindingsOf(node, definitions) {
|
|
239
199
|
const bindings = /* @__PURE__ */ new Map();
|
|
240
200
|
const type = node.type;
|
|
@@ -420,7 +380,10 @@ function collectObjectKeys(node, into) {
|
|
|
420
380
|
if (typeof key?.value === "string") into.add(key.value);
|
|
421
381
|
}
|
|
422
382
|
}
|
|
423
|
-
/**
|
|
383
|
+
/**
|
|
384
|
+
* Every node in source order, with its parent: Oxc nodes carry none, so enter
|
|
385
|
+
* and exit keep a stack.
|
|
386
|
+
*/
|
|
424
387
|
function walk(program, visit) {
|
|
425
388
|
const stack = [];
|
|
426
389
|
const handlers = {};
|
|
@@ -553,14 +516,14 @@ function guessPermissions(cwd, srcPath) {
|
|
|
553
516
|
return [
|
|
554
517
|
"src/permissions.ts",
|
|
555
518
|
"permissions.ts",
|
|
556
|
-
...srcPath.map((entry) => `${entry.replace(
|
|
519
|
+
...srcPath.map((entry) => `${entry.replace(/\/$/u, "")}/permissions.ts`)
|
|
557
520
|
].find((file) => existsSync(resolve(cwd, file)));
|
|
558
521
|
}
|
|
559
522
|
function barrelFile(barrel) {
|
|
560
523
|
return barrel === true ? "src/permissions.generated.ts" : barrel;
|
|
561
524
|
}
|
|
562
525
|
function writeBarrel(abs, permissionsAbs) {
|
|
563
|
-
const specifier = relative(dirname(abs), permissionsAbs).
|
|
526
|
+
const specifier = relative(dirname(abs), permissionsAbs).replaceAll("\\", "/").replace(/\.tsx?$/u, ".js");
|
|
564
527
|
const body = `// @generated by permdock — do not edit
|
|
565
528
|
import { mergePermissions } from 'permdock'
|
|
566
529
|
import { permissions as collected } from '${specifier.startsWith(".") ? specifier : `./${specifier}`}'
|
|
@@ -570,4 +533,4 @@ export const permissions = mergePermissions(collected)
|
|
|
570
533
|
writeFileEnsuringDir(abs, body);
|
|
571
534
|
}
|
|
572
535
|
//#endregion
|
|
573
|
-
export {
|
|
536
|
+
export { scanSources as i, guessPermissions as n, runCollect as r, barrelFile as t };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
//#region src/core/compare.ts
|
|
2
2
|
/**
|
|
3
|
-
* Orders strings by UTF-16 code unit, the same in every locale and runtime,
|
|
4
|
-
*
|
|
3
|
+
* Orders strings by UTF-16 code unit, the same in every locale and runtime, so
|
|
4
|
+
* sorted output is byte-stable where `localeCompare` would follow the ICU
|
|
5
5
|
* build.
|
|
6
6
|
*/
|
|
7
7
|
function byCodePoint(a, b) {
|
package/dist/compile/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as GraphSqlPart, r as RelationsMapping, t as GraphSql } from "../graph-sql-
|
|
2
|
-
import { a as CompiledWhere, c as compileWhere, i as CompiledSql, l as escapeLike, n as CompiledCompare, o as MembershipTable, r as CompiledExists, s as MembershipsMapping, t as CompileWhereOptions } from "../compile-
|
|
1
|
+
import { n as GraphSqlPart, r as RelationsMapping, t as GraphSql } from "../graph-sql-BwFC4Qjs.js";
|
|
2
|
+
import { a as CompiledWhere, c as compileWhere, i as CompiledSql, l as escapeLike, n as CompiledCompare, o as MembershipTable, r as CompiledExists, s as MembershipsMapping, t as CompileWhereOptions } from "../compile-BEklRUYo.js";
|
|
3
3
|
export { type CompileWhereOptions, type CompiledCompare, type CompiledExists, type CompiledSql, type CompiledWhere, type GraphSql, type GraphSqlPart, type MembershipTable, type MembershipsMapping, type RelationsMapping, compileWhere, escapeLike };
|
package/dist/compile/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { n as compileWhere, r as escapeLike } from "../compile-EzEMB-7v.js";
|
|
@@ -1,22 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { b as ResourceNode } from "./permission-types-
|
|
3
|
-
import {
|
|
4
|
-
import { r as RelationsMapping, t as GraphSql } from "./graph-sql-
|
|
1
|
+
import { Wt as Instant, br as Condition, hr as Subject, vn as Scope } from "./policy-types-DGIO_gxq.js";
|
|
2
|
+
import { b as ResourceNode } from "./permission-types-CAY-GU7e.js";
|
|
3
|
+
import { f as WhereResult } from "./permdock-CprAPN3w.js";
|
|
4
|
+
import { r as RelationsMapping, t as GraphSql } from "./graph-sql-BwFC4Qjs.js";
|
|
5
5
|
//#region src/conditions/compile.d.ts
|
|
6
6
|
type MembershipTable = {
|
|
7
7
|
readonly table: string;
|
|
8
8
|
readonly user: string;
|
|
9
9
|
readonly role: string;
|
|
10
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* Per scope name, the column holding that scope's id (the row's own scope and
|
|
12
|
+
* its ancestors).
|
|
13
|
+
*/
|
|
11
14
|
readonly columns?: Readonly<Record<string, string>>;
|
|
12
15
|
/** Column of the first scope's id; shorthand for `columns[<first scope>]`. */
|
|
13
16
|
readonly tenant?: string;
|
|
14
17
|
/** Column of the second scope's id; shorthand for `columns[<second scope>]`. */
|
|
15
18
|
readonly team?: string;
|
|
16
19
|
readonly id?: string;
|
|
17
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* Column naming the membership's resource, when one table holds several
|
|
22
|
+
* kinds.
|
|
23
|
+
*/
|
|
18
24
|
readonly resource?: string;
|
|
19
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* Column holding the membership kind (`Membership.via`); roles with `for`
|
|
27
|
+
* need it.
|
|
28
|
+
*/
|
|
20
29
|
readonly via?: string;
|
|
21
30
|
/** Unix seconds, like `Membership.expiresAt`; `null` never expires. */
|
|
22
31
|
readonly expiresAt?: string;
|
|
@@ -33,9 +42,15 @@ type MembershipsMapping = {
|
|
|
33
42
|
type CompileWhereOptions = {
|
|
34
43
|
readonly subject?: Subject;
|
|
35
44
|
readonly memberships?: MembershipsMapping;
|
|
36
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* The clock membership expiry is read at; a `Temporal.Instant` fits. Defaults
|
|
47
|
+
* to the current time.
|
|
48
|
+
*/
|
|
37
49
|
readonly now?: Instant;
|
|
38
|
-
/**
|
|
50
|
+
/**
|
|
51
|
+
* The policy's scopes; `where()` results carry them. Defaults to the implicit
|
|
52
|
+
* `tenant` / `team` pair.
|
|
53
|
+
*/
|
|
39
54
|
readonly scopes?: readonly Scope[];
|
|
40
55
|
/** Where the relation graph lives; without it a `related` node is refused. */
|
|
41
56
|
readonly relations?: RelationsMapping;
|
|
@@ -61,7 +76,10 @@ type CompiledExists = {
|
|
|
61
76
|
readonly expiresAt?: string;
|
|
62
77
|
/** Unix seconds the `expiresAt` column is compared against. */
|
|
63
78
|
readonly now: number;
|
|
64
|
-
/**
|
|
79
|
+
/**
|
|
80
|
+
* A membership row matches when this column is `null` or equals
|
|
81
|
+
* `tenantValue`.
|
|
82
|
+
*/
|
|
65
83
|
readonly tenantColumn?: string;
|
|
66
84
|
readonly tenantValue?: string;
|
|
67
85
|
readonly resourceColumn?: string;
|
|
@@ -82,14 +100,20 @@ type CompiledWhere = {
|
|
|
82
100
|
readonly kind: "not";
|
|
83
101
|
readonly item: CompiledWhere;
|
|
84
102
|
} | CompiledExists | CompiledSql;
|
|
85
|
-
/**
|
|
103
|
+
/**
|
|
104
|
+
* A Postgres boolean over the row that is never NULL: a `related` node's
|
|
105
|
+
* subquery.
|
|
106
|
+
*/
|
|
86
107
|
type CompiledSql = {
|
|
87
108
|
readonly kind: "sql";
|
|
88
109
|
readonly parts: GraphSql;
|
|
89
110
|
/** What a `{ subject: true }` part binds. */
|
|
90
111
|
readonly subject: string;
|
|
91
112
|
};
|
|
92
|
-
/**
|
|
113
|
+
/**
|
|
114
|
+
* A `contains` pattern for `LIKE`: `%`, `_` and the escape itself match
|
|
115
|
+
* literally.
|
|
116
|
+
*/
|
|
93
117
|
declare function escapeLike(value: string): string;
|
|
94
118
|
declare function compileWhere(input: Condition | WhereResult, options?: CompileWhereOptions): CompiledWhere;
|
|
95
119
|
//#endregion
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { a as sole, n as isReadonlyArray, t as compact } from "./compact-CAf557ZB.js";
|
|
2
|
-
import { t as assertSafeKey } from "./paths-
|
|
3
|
-
import { a as resolveConditionRef, c as isConditionDate, d as parentHop, l as isConditionRef } from "./refs-
|
|
4
|
-
import { n as PermDockValidationError } from "./validation-error-
|
|
5
|
-
import { t as expiredAt } from "./expiry-
|
|
6
|
-
import { a as expandRelation, c as isEdgeRelation, d as isSelfParented, l as isFieldRelation, o as groupEntries, p as restrictedFor, u as isPrincipalRelation } from "./resource-relations-
|
|
7
|
-
import { o as epochSeconds, t as INVALID_NOW } from "./time-
|
|
8
|
-
import { f as scopeList, h as tenantOf, l as rootScope, m as subjectMemberships, s as resolveScope, u as scopeChain } from "./scopes-
|
|
9
|
-
import { t as isoInstant } from "./instant-
|
|
2
|
+
import { t as assertSafeKey } from "./paths-CUvURzHp.js";
|
|
3
|
+
import { a as resolveConditionRef, c as isConditionDate, d as parentHop, l as isConditionRef } from "./refs-C8BKxc_e.js";
|
|
4
|
+
import { n as PermDockValidationError } from "./validation-error-CYg2kJEw.js";
|
|
5
|
+
import { t as expiredAt } from "./expiry-6XByK0dm.js";
|
|
6
|
+
import { a as expandRelation, c as isEdgeRelation, d as isSelfParented, l as isFieldRelation, o as groupEntries, p as restrictedFor, u as isPrincipalRelation } from "./resource-relations-8-pCScBO.js";
|
|
7
|
+
import { o as epochSeconds, t as INVALID_NOW } from "./time-nR1JesoH.js";
|
|
8
|
+
import { f as scopeList, h as tenantOf, l as rootScope, m as subjectMemberships, s as resolveScope, u as scopeChain } from "./scopes-0Up_UA2t.js";
|
|
9
|
+
import { t as isoInstant } from "./instant-DK3Iz83e.js";
|
|
10
10
|
//#region src/conditions/graph-sql.ts
|
|
11
11
|
/** A Postgres identifier, schema-qualified names split on `.`. */
|
|
12
12
|
function quoteSqlName(name) {
|
|
@@ -49,7 +49,10 @@ function edgeRowFilter(spec, alias) {
|
|
|
49
49
|
function groupHolders(build, resource, relation) {
|
|
50
50
|
return build.options.holders?.(resource, relation) ?? holderIds(build, resource, relation);
|
|
51
51
|
}
|
|
52
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* Who a row of the edge names, when it is not a group of the edge's own
|
|
54
|
+
* resource.
|
|
55
|
+
*/
|
|
53
56
|
function edgeHolderFilter(build, node, spec, alias) {
|
|
54
57
|
const holder = col(alias, spec.subject ?? "user_id");
|
|
55
58
|
const groups = spec.groups;
|
|
@@ -79,14 +82,17 @@ function edgeHolderFilter(build, node, spec, alias) {
|
|
|
79
82
|
parts.push(text(")"));
|
|
80
83
|
return parts;
|
|
81
84
|
}
|
|
82
|
-
/**
|
|
85
|
+
/**
|
|
86
|
+
* The nested-group step of an edge whose groups include its own resource: the
|
|
87
|
+
* row names a group of `node`.
|
|
88
|
+
*/
|
|
83
89
|
function selfGroupWhere(spec, node, subject, alias) {
|
|
84
90
|
const column = spec.groups?.column;
|
|
85
91
|
return column === void 0 ? [text(`${subject} is not null`)] : [text(`${col(alias, column)} = `), { value: node.name }];
|
|
86
92
|
}
|
|
87
93
|
/**
|
|
88
|
-
* One concrete relation's arm: `select <id>::text as id ...` for every
|
|
89
|
-
*
|
|
94
|
+
* One concrete relation's arm: `select <id>::text as id ...` for every instance
|
|
95
|
+
* of `node` the subject holds `relation` on, through groups too.
|
|
90
96
|
*/
|
|
91
97
|
function relationArm(build, node, relation) {
|
|
92
98
|
const spec = node.relations[relation];
|
|
@@ -142,7 +148,10 @@ function holderIds(build, resource, relation) {
|
|
|
142
148
|
}
|
|
143
149
|
return out;
|
|
144
150
|
}
|
|
145
|
-
/**
|
|
151
|
+
/**
|
|
152
|
+
* One concrete relation's arm, for helpers that guard each arm by the relation
|
|
153
|
+
* asked for.
|
|
154
|
+
*/
|
|
146
155
|
function relationArmSql(resource, relation, options) {
|
|
147
156
|
const build = {
|
|
148
157
|
options,
|
|
@@ -163,7 +172,10 @@ function heldIds(build, condition) {
|
|
|
163
172
|
parts.push(text(") as v(id)"));
|
|
164
173
|
return parts;
|
|
165
174
|
}
|
|
166
|
-
/**
|
|
175
|
+
/**
|
|
176
|
+
* Instances of the condition's resource at or below the held ones, within its
|
|
177
|
+
* depth and never through a restricted child.
|
|
178
|
+
*/
|
|
167
179
|
function reached(build, condition) {
|
|
168
180
|
const held = heldIds(build, condition);
|
|
169
181
|
if (condition.depth === 0) return held;
|
|
@@ -192,7 +204,10 @@ function reached(build, condition) {
|
|
|
192
204
|
text(`) h union select ${col(t, node.id)}::text, ${d}.level + 1 from ${tableOf(build, node.name)} ${t} join ${d} on ${col(t, node.parent.field)}::text = ${d}.id where ${d}.level < ${String(condition.depth)}${restricted}) select ${d}.id from ${d}) ${d}`)
|
|
193
205
|
];
|
|
194
206
|
}
|
|
195
|
-
/**
|
|
207
|
+
/**
|
|
208
|
+
* Ids the row's `field` may hold: the reached instances, carried back over each
|
|
209
|
+
* link hop.
|
|
210
|
+
*/
|
|
196
211
|
function targets(build, condition) {
|
|
197
212
|
let set = reached(build, condition);
|
|
198
213
|
const hops = condition.hops ?? [];
|
|
@@ -219,7 +234,10 @@ function targets(build, condition) {
|
|
|
219
234
|
}
|
|
220
235
|
return set;
|
|
221
236
|
}
|
|
222
|
-
/**
|
|
237
|
+
/**
|
|
238
|
+
* The ids the row's field may hold for `condition` to match, as one text column
|
|
239
|
+
* `id`.
|
|
240
|
+
*/
|
|
223
241
|
function relatedTargetsSql(condition, options) {
|
|
224
242
|
return targets({
|
|
225
243
|
options,
|
|
@@ -258,15 +276,18 @@ function restrictedRowsSql(above, options) {
|
|
|
258
276
|
alias: 0
|
|
259
277
|
}, above);
|
|
260
278
|
}
|
|
261
|
-
/**
|
|
279
|
+
/**
|
|
280
|
+
* Whether the row's restricted column keeps it out of `condition` whatever the
|
|
281
|
+
* graph says.
|
|
282
|
+
*/
|
|
262
283
|
function relatedRowGuard(condition) {
|
|
263
284
|
const hopped = condition.hops !== void 0 && condition.hops.length > 0;
|
|
264
285
|
return (condition.parent === true || hopped) && condition.restricted !== void 0 ? condition.restricted : void 0;
|
|
265
286
|
}
|
|
266
287
|
/**
|
|
267
|
-
* `condition` as a boolean over the filtered row that is never NULL: the
|
|
268
|
-
*
|
|
269
|
-
*
|
|
288
|
+
* `condition` as a boolean over the filtered row that is never NULL: the row's
|
|
289
|
+
* field is among the reached ids, and with `parent` or `hops` the row is not
|
|
290
|
+
* restricted.
|
|
270
291
|
*/
|
|
271
292
|
function relatedSql(condition, options) {
|
|
272
293
|
const build = {
|
|
@@ -290,9 +311,8 @@ function relatedSql(condition, options) {
|
|
|
290
311
|
return out;
|
|
291
312
|
}
|
|
292
313
|
/**
|
|
293
|
-
* Renders parts to one SQL string: `placeholder(n)` names the n-th bound
|
|
294
|
-
*
|
|
295
|
-
* a value.
|
|
314
|
+
* Renders parts to one SQL string: `placeholder(n)` names the n-th bound value
|
|
315
|
+
* (from 1), `column` names a row column, and the subject id binds as a value.
|
|
296
316
|
*/
|
|
297
317
|
function renderGraphSql(parts, render) {
|
|
298
318
|
let sql = "";
|
|
@@ -310,16 +330,37 @@ function renderGraphSql(parts, render) {
|
|
|
310
330
|
}
|
|
311
331
|
//#endregion
|
|
312
332
|
//#region src/conditions/compile.ts
|
|
313
|
-
/** The
|
|
333
|
+
/** The alias scope `name` answers to by position: `tenant` first, `team` second. */
|
|
334
|
+
function aliasOf(scopes, name) {
|
|
335
|
+
if (name === scopes[0]?.name) return "tenant";
|
|
336
|
+
return name === scopes[1]?.name ? "team" : void 0;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* The entry of a per-scope record for scope `name`: its own key, else the
|
|
340
|
+
* `tenant` / `team` alias of its position.
|
|
341
|
+
*/
|
|
342
|
+
function byScope(record, scopes, name) {
|
|
343
|
+
if (record === void 0) return;
|
|
344
|
+
if (Object.hasOwn(record, name)) return record[name];
|
|
345
|
+
const alias = aliasOf(scopes, name);
|
|
346
|
+
return alias !== void 0 && Object.hasOwn(record, alias) ? record[alias] : void 0;
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* The membership table mapped for scope `name`, through the `tenant` / `team`
|
|
350
|
+
* aliases and shorthands.
|
|
351
|
+
*/
|
|
314
352
|
function scopeMembershipTable(mapping, scopes, name) {
|
|
315
|
-
const table = mapping?.scopes
|
|
353
|
+
const table = byScope(mapping?.scopes, scopes, name);
|
|
316
354
|
if (table !== void 0) return table;
|
|
317
355
|
if (name === scopes[0]?.name) return mapping?.tenant;
|
|
318
356
|
if (name === scopes[1]?.name) return mapping?.team;
|
|
319
357
|
}
|
|
320
|
-
/**
|
|
358
|
+
/**
|
|
359
|
+
* The column of `table` holding scope `name`'s id, through the `tenant` /
|
|
360
|
+
* `team` aliases and shorthands.
|
|
361
|
+
*/
|
|
321
362
|
function scopeColumn(table, scopes, name) {
|
|
322
|
-
const column = table.columns
|
|
363
|
+
const column = byScope(table.columns, scopes, name);
|
|
323
364
|
if (column !== void 0) return column;
|
|
324
365
|
if (name === scopes[0]?.name) return table.tenant;
|
|
325
366
|
if (name === scopes[1]?.name) return table.team;
|
|
@@ -361,7 +402,10 @@ function asPortableCondition(input) {
|
|
|
361
402
|
if ("condition" in input && !("op" in input)) return input.condition;
|
|
362
403
|
return input;
|
|
363
404
|
}
|
|
364
|
-
/**
|
|
405
|
+
/**
|
|
406
|
+
* A `contains` pattern for `LIKE`: `%`, `_` and the escape itself match
|
|
407
|
+
* literally.
|
|
408
|
+
*/
|
|
365
409
|
function escapeLike(value) {
|
|
366
410
|
return value.replaceAll(/[\\%_]/gu, (char) => `\\${char}`);
|
|
367
411
|
}
|
|
@@ -384,10 +428,10 @@ function anyOf(items) {
|
|
|
384
428
|
};
|
|
385
429
|
}
|
|
386
430
|
/**
|
|
387
|
-
* Negation normal form. In memory a comparison against a NULL field is
|
|
388
|
-
*
|
|
389
|
-
*
|
|
390
|
-
*
|
|
431
|
+
* Negation normal form. In memory a comparison against a NULL field is false,
|
|
432
|
+
* so its negation is true; SQL's `NOT (NULL)` stays NULL. Every negated
|
|
433
|
+
* comparison therefore also admits the NULL field explicitly, and `not` only
|
|
434
|
+
* ever wraps a comparison or an `exists`.
|
|
391
435
|
*/
|
|
392
436
|
function negate(node) {
|
|
393
437
|
switch (node.kind) {
|
|
@@ -614,4 +658,4 @@ function compileWhere(input, options = {}) {
|
|
|
614
658
|
}));
|
|
615
659
|
}
|
|
616
660
|
//#endregion
|
|
617
|
-
export {
|
|
661
|
+
export { scopeMembershipTable as a, relatedTargetsSql as c, restrictedRowsSql as d, scopeColumn as i, relationArmSql as l, compileWhere as n, relatedRowGuard as o, escapeLike as r, relatedSql as s, byScope as t, renderGraphSql as u };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as CliError } from "./errors-
|
|
2
|
-
import { a as suggestion, o as GLOBAL_FLAGS } from "./args-
|
|
3
|
-
import { a as resolve } from "./manifest-
|
|
1
|
+
import { n as CliError } from "./errors-Vpu6rKHl.js";
|
|
2
|
+
import { a as suggestion, o as GLOBAL_FLAGS } from "./args-0FrVs5EH.js";
|
|
3
|
+
import { a as resolve } from "./manifest-B2QPh19C.js";
|
|
4
4
|
import { t as defineLeaf } from "./command-L8EstFNm.js";
|
|
5
5
|
//#region src/cli/core/completion.ts
|
|
6
6
|
const SHELLS = [
|
|
@@ -11,13 +11,19 @@ const SHELLS = [
|
|
|
11
11
|
function flagNames(flags) {
|
|
12
12
|
return Object.entries(flags).filter(([, flag]) => flag.hidden !== true).map(([name]) => `--${name}`);
|
|
13
13
|
}
|
|
14
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* The flag `token` names when it waits for a separate value, as `--only` does
|
|
16
|
+
* and `--only=x` does not.
|
|
17
|
+
*/
|
|
15
18
|
function valueFlag(flags, token) {
|
|
16
19
|
if (token === void 0 || !token.startsWith("--") || token.includes("=")) return;
|
|
17
20
|
const flag = flags[token.slice(2)];
|
|
18
21
|
return flag === void 0 || flag.type === "boolean" ? void 0 : flag;
|
|
19
22
|
}
|
|
20
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* The positional the next bare word fills, after the words already typed past
|
|
25
|
+
* the leaf's path.
|
|
26
|
+
*/
|
|
21
27
|
function positionalAt(leaf, typed) {
|
|
22
28
|
let index = 0;
|
|
23
29
|
for (let i = 0; i < typed.length; i += 1) {
|
|
@@ -36,7 +42,10 @@ function positionalAt(leaf, typed) {
|
|
|
36
42
|
const last = positionals.at(-1);
|
|
37
43
|
return positionals[index] ?? (last?.variadic === true ? last : void 0);
|
|
38
44
|
}
|
|
39
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* Values from `complete`, matched against what follows the last comma when the
|
|
47
|
+
* value is a list.
|
|
48
|
+
*/
|
|
40
49
|
async function valuesFor(complete, partial, list) {
|
|
41
50
|
const cut = list ? partial.lastIndexOf(",") + 1 : 0;
|
|
42
51
|
const head = partial.slice(0, cut);
|
|
@@ -45,8 +54,8 @@ async function valuesFor(complete, partial, list) {
|
|
|
45
54
|
return (await complete()).filter((value) => value.startsWith(tail) && !taken.includes(value)).map((value) => head + value);
|
|
46
55
|
}
|
|
47
56
|
/**
|
|
48
|
-
* Candidates for the last word of `words`, the tokens typed after
|
|
49
|
-
*
|
|
57
|
+
* Candidates for the last word of `words`, the tokens typed after `permdock`.
|
|
58
|
+
* An empty list leaves the shell to complete file names.
|
|
50
59
|
*/
|
|
51
60
|
async function candidates(words) {
|
|
52
61
|
const partial = words.at(-1) ?? "";
|